سبد (0)

آرگومان خروجی در Workflow

آرگومان های خروجی یا OutArgumentها در Workflow

در این قسمت از آموزش قصد داریم سیستم گردش فرم ای ایجاد کنیم که مقداری را بعنوان نتیجه برگرداند.

مراحل انجام کار

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

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

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

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

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


2 ایجاد گردش کار و تعریف آرگومانهای خروجی

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

  1. از پنل ToolBox، اکتیویتی Sequence را انتخاب کرده و به داخل صفحه طراحی گردش کار بکشید.
  2. در پایین صفحه طراحی گردش کار، تب Arguments را انتخاب نمایید و روی Create Argument کلیک نمایید، حالا یک آرگومان از نوع String و OutArgument بنام OutMessage ایجاد نمایید.
  3. از پنل ToolBox، اکتیویتی WriteLine را انتخاب کرده و به داخل  اکتیویتی Sequence بکشید و و رها کنید در ادامه مقدار Text آنرا با "... Start" تنظیم نمایید. حالا یک  اکتیویتی WriteLine دیگر داخل Sequence قرار دهید و مقدار Text آنرا با "End" تنظیم نمایید.
  4. از پنل ToolBox، اکتیویتی Assign را انتخاب کرده و به داخل صفحه طراحی گردش کار بکشید و مابین دو اکتیویتی WriteLine قرار دهید. در ادامه باکس سمت چپ را با نام آرگومان تعریف شده در قبل یعنی OutMessage تنظیم کرده و باکس سمت راست را با مقدار "This is a message from workflow" تنظیم نمایید.


3 نوشتن کدهای #C و تنظیم آرگومان خروجی (out)

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

فایل Program.cs

using System;
using System.Linq;
using System.Activities;
using System.Activities.Statements;
using System.Collections.Generic;

namespace UseOutArgument
{

    class Program
    {
        static void Main(string[] args)
        {
            IDictionary<string, object> output =
            WorkflowInvoker.Invoke(new Workflow1());
            Console.WriteLine(output["OutMessage"]);
            Console.ReadLine();
        }
    }
}

4 اجرای Workflow

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


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

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

فایل Program.cs

IDictionary<string, object> output = WorkflowInvoker.Invoke(new Workflow1());
Console.WriteLine(output["OutMessage"]);

همان طور که متوجه شدید OutMessage نام آرگومانی است که در Workflow1.xaml آنرا تعریف نمودیم. توجه فرمایید، مقداری که متد WorkflowInvoder.Invoke باز می گرداند یک object از نوع IDictionary است.

توجه: یک نوع سوم از آرگومان در Workflow بنام InOutArgument وجود دارد که بعنوان ورودی/خروجی استفاده می شود. در بیشتر مواقع ما بجای آرگومان های InArgument و OutArgument ترجیح می دهیم که از نوع InOutArgument استفاده کنیم. اما با این حال تفاوت هایی بین آنها وجود دارد، بعنوان مثال برای آرگومان InOutArgument نمی توان یک مقدار String تنظیم یا Assign نمود در حالی که در آرگومان InArgument می توان این کار را انجام داد.

{module خرید و دانلود فصل اول آموزش Workflow}

تمامی محصولات و خدمات این وبسایت، حسب مورد دارای مجوزهای لازم از مراجع مربوطه می‌باشند و فعالیت‌های این سایت تابع قوانین و مقررات جمهوری اسلامی ایران است.
logo-samandehi مجوز نشر دیجیتال از وزرات فرهنگ و ارشاد اسلامی پرداخت آنلاین -  بانک ملت معرفی بیاموز در شبکه سه