آموزش Workflow – آموزش کار با آرگومان ورودی و خروجی WorkflowReviewed by صابر بوستانی on Nov 10Rating: 4.0
آموزش Workflow – آموزش کار با آرگومان ورودی و خروجی Workflow

آموزش Workflow – آموزش کار با آرگومان ورودی و خروجی Workflow

با سلام و عرض ادب. در خدمت دوستان عزیز هستیم با آموزش Workflow – آموزش کار با آرگومان ورودی و خروجی Workflow از وب سایت آموزش برنامه نویسی سورس باران. در این دوره، آموزش Workflow در ۴۶ جلسه بصورت متنی به شما آموزش داده خواهد شد. در این بخش ، یک برنامه گردش کار یا Workflow ایجاد خواهیم کرد که در آن از آرگومان های InOutArgument استفاده خواهد شد. این نوع از آرگومان ها برای دریافت و ارسال مقادیر در Workflow استفاده می شوند..لطفا با ما همراه باشید…

آموزش کار با آرگومان ورودی و خروجی Workflow

پروژه گردش کار UseInOutArgument شامل چهار مرحله زیر است

  1. اضافه کردن یک پروژه از نوع Workflow Console Application
  2. ایجاد گردش کار و تعریف آرگومان InOutArgument
  3. نوشتن کدهای #C و مقداردهی و چاپ آرگومان ورودی/خروجی (InOut)
  4. اجرای Workflow

 

اضافه کردن یک پروژه جدید از نوع Workflow Console Application

در پنل Solution Explorer مطابق شکل زیر روی Solution Chapter01 راست کلیک کرده و از گزینه ADD زیر منوی New Project را انتخاب نمایید

در پنجره Add New Project گزینه workflow را انتخاب کرده و سپس از سمت راست پنجره گزینه Workflow Console Application را انتخاب نمایید. حالا قسمت Name را با مقدار UseOutArgument تنظیم نمایید و نهایتاً روی دکمه OK کلیک نمایید.

 

ایجاد گردش کار و تعریف آرگومان InOutArgumen

از پنل Solution Explorerr فایل Workflow1.xaml را باز کنید و Workflow را مطابق زیر طراحی نمایید:

  1. از پنل ToolBox، اکتیویتی Sequence را انتخاب کرده و به داخل صفحه طراحی گردش کار بکشید.
  2. در پایین صفحه طراحی گردش کار، تب Arguments را انتخاب نمایید و روی Create Argument کلیک نمایید، حالا یک آرگومان از نوع String و InOutArgument بنام InOutMessage ایجاد نمایید.
  3. از پنل ToolBox، اکتیویتی WriteLine را انتخاب کرده و به داخل  اکتیویتی Sequence بکشید و و رها کنید در ادامه مقدار Text آنرا با نام آرگومانی که در مرحله قبل تعریف نمودید، تنظیم نمایید.
  4. از پنل ToolBox، اکتیویتی Assign را انتخاب کرده و به داخل صفحه طراحی گردش کار بکشید. در ادامه باکس سمت چپ را با نام آرگومان تعریف شده در قبل یعنی InOutMessage تنظیم کرده و باکس سمت راست را با مقدار “Now, I am an OutMessage” تنظیم نمایید.

نوشتن کدهای #C و و مقداردهی و چاپ آرگومان ورودی/خروجی (InOut)

اما در ادامه فایل Program.cs را باز کنید و مطابق زیر کدها را تغییر دهید (قسمت قرمز رنگ)

 

اجرای Workflow

پروژه UseOutArgument را بعنوان پروژه StartUp تنظیم نمایید

در ادامه برای اجرای Workflow دکمه های میانبر Ctrl+F5 را فشار دهید. با این کار Workflow ذخیره شده و بدون عملیات debugging نتیجه نشان داده خواهد شد. همان طور که می بینید، نتیجه در Console ویندوز اجرا می شود و جلمه زیر چاپ می شود:

 

سیستم گردش کار بالا چگونه کار می کند؟

لطفاً به کد زیر توجه فرمایید

همان طور که می دانید با استفاده از IDictionary می توانیم جفت های Key/Value تعریف کنیم، به این صورت که ابتدا باید نوع Key و Value را مشخص کنیم و سپس مانند بالا Key/Value ها را مقداردهی نماییم. در کد بالا، Key از نوع String و Value از نوع Object است.

پس تا اینجا یک Key با نام "InOutMessage" داریم که با مقدار "Now, I am InMessage" تنظیم شده است.

در ادامه کد بالا، خط زیر اجرا خواهد شد. توجه داشته باشید که شی ء input تعریف شده در مرحله قبل به عنوان پارامتر در متد ()invoke استفاده شده است

همان طور که قبلاً گفته شد، متد ()invoke باعث می شود که Workflow1 اجرا شود. البته پارامتر input نیز به Workflow پاس داده می شود و چون قسمت Key در پارامتر input هم نام با آرگومان تعریف شده در زمان طراحی Workflow است، بصورت خودکار آرگومان InOutMessage با استفاده از پارامتر input مقداردهی می شود.

بنابراین با اجرای کد بالا، جلمه ی “Now, I am InMessage” در کنسول ویندوز چاپ خواهد شد. فراموش نکنید که، قسمت Text در اکتیویتی WriteLine با آرگومان InOutMessage تنظیم شد و به این ترتیب جلمه ی مذکور چاپ خواهد شد.

اما در ادامه، مقداری که متد ()invoke برمی گرداند که البته از نوع IDictionary است در متغیر output قرار می گیرد. اما سوالی که مطرح می شود این است که Workflow چه مقدار را برمی گرداند …!؟

حتماً به جواب سوال بالا رسیده اید، این مقدار چیزی نیست جز یک Key/Value که با استفاده از اکتیویتی Assign تنظیم خواهد شد. قسمت Key معادل “InOutMessage” و Value معادل “Now, I am an OutMessage” خواهد بود. پس تا اینجا متغیر  output شامل Key/Value مذکور است.

در ادامه اسکریبت، کد زیر را داریم که باعث می شود، رشته “Now, I am an OutMessage” در کنسول چاپ شود:

توجه!!! برای آرگومان InOutArgument نمی توان بصورت مستقیم یک مقدار String تنظیم نمود، بنابراین مجاز به استفاده از کد زیر نیستید:

موفق و پیروز باشید…

لیست جلسات قبل آموزش Workflow :

آموزش Workflow – Workflow چیست؟

آموزش Workflow – ساخت اولین برنامه Workflow

آموزش Workflow – آموزش ایجاد Workflow با استفاده از #C

آموزش Workflow – آموزش کار با آرگومان ورودی در Workflow

آموزش Workflow – آموزش کار با آرگومان خروجی در Workflow