سبد (0)

اکتیویتی Confirm

اکتيويتي Confirm

در مطلب قبل (اکتیویتی Compensate) مشاهده فرمودید که چگونه با استفاده از متغیر token اکتیوتی Compensate را به CompensableActivity متصل کردیم، اما روش کار در اکتیویتی Confirm دقیقاً مشابه اکتیوتی Compensate است. با استفاده از اکتيويتي Confirm مي توان عمليات confirmation یا تأييد را انجام داد.

توجه داشته باشید که عملیات confirmation، بصورت اتوماتیک زماني که Workflow با موفقيت به پايان رسيد اجرا خواهد شد.


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

 پروژه گردش کار UseConfirmActivity شامل مراحل زير است:

  1. ايجاد يک پروژه از نوع Workflow Console Application
  2. ايجاد و طراحي Workflow
  3. اجراي Workflow
  4. پروژه ي گردش کار UseConfirmActivity چگونه عمل مي کند؟

ايجاد يک پروژه از نوع Workflow Console Application

در پنل Solution Explorer روي Solution Chapter03 راست کليک کرده و از گزينه ADD زير منوي New Project را انتخاب نماييد. سپس در پنجره Add New Project گزينه workflow را انتخاب کرده و سپس از سمت راست پنجره گزينه Workflow Console Application را انتخاب نماييد. حالا قسمت Name را با مقدار UseConfirmActivity تنظيم نماييد و نهايتاً روي دکمه OK کليک کنيد.


ايجاد و طراحي Workflow

فايل Workflow1.xaml را باز کنيد و کارهاي زير را انجام دهيد:

  1. از پنل Toolbox، اکتيويتي Sequence را بداخل صفحه بکشيد و مطابق عکس زير، متغير token را از نوع CompensationToken تعريف نماييد. (براي تنظيم "Variable type" ابتدا از ليست کشويي گزينه ي Browse for type را انتخاب کنيد و سپس در پنجره نمايان شده کلمه ي "CompensationToken" را وارد نماييد.)
  2. دو عدد اکتيويتي CompensableActivity به داخل Sequence بکشید و قسمت Body و ConfirmationHandler آنرا مطابق تصوير زير تنظيم نماييد. فراموش نکنيد که خصوصيت Result اکتيويتي دوم را با متغير token تنظيم نماييد.
  3. در آخر اکتيويتي Confirm را بداخل Sequence کشيده و خصوصيت target آنرا را با متغير token تنظيم نماييد.


اجراي Workflow

پروژه UseConfirmActivity را بعنوان پروژه StartUp تنظيم نماييد و در ادامه براي اجراي Workflow دکمه هاي ميانبر Ctrl+F5 را فشار دهيد:


پروژه ي گردش کار UseConfirmActivity  چگونه عمل مي کند؟

همان طور که متوجه شديد، با استفاده از متغير token، اکتيويي Confirm را به compensableActivity2 متصل کرديم. حالا از اين طريق اکتيوتي Confirm متوجه خواهد شد که کدام CompensableActivity عمليات تأیید يا همان Confirm را انجام خواهد داد ...!

اما اگر با دقت به نتیجه نگاه کنیم، متوجه خواهیم شد که compensableActivity1 و compensableActivity2 پشت سر هم اجرا شده اند، در حالی که اکتیویتی Confirm را تنها به compensableActivity2 متصل کردیم...!

زمانی که Workflow آغاز می شود، ابتدا قسمت body دو اکتیویتی compensableActivity1 و compensableActivity2 اجرا می شود و سپس اکتیوتی Confirm اجرا می شود، این اکتیویتی از طریق متغیر token متوجه می شود که باید قسمت ConfirmationHandler مربوط به compensableActivity2 را اجرا کند. بنابراین پیغام این قسمت در کنسول چاپ خواهد شد. اما در این مرحله اجرای Workflow با موفقیت به پایان رسیده است. ولی قبل از اینکه پایان یابد، قسمت ConfirmationHandler مربوط به CompensableActivity1 این بار بصورت اتوماتیک اجرا خواهد شد.

توجه: برای صرف نظر کردن از چاپ رشته ی آخر می توان قسمت ConfirmationHandler مربوط به CompensableActivity1 را خالی گذاشت.

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