با سلام خدمت همکاران محترم
در این مطلب می خواهیم توضیح دهیم چگونه یک فرایند را همزمان به دو شکل زیرگردش و فرایند مستقل (دستی) استفاده کنیم.
همانطور که می دانید روشهای فعال شدن یک فرایند به چهار شکل است:
- دستی
- از درون یک گردش کار
- از درون برنامه
- نوسط برنامه ریز ویندوز
حالت اول: فرایند در شکل زیرگردش، هیچ فراخوانی اطلاعاتی از فرایند اصلی ندارد.
در این حالت هیچ مشکلی پیش نمی آید و فقط کافی است گزینه فعال سازی دستی را در روشهای فعال سازی، تیک بزنید.
حالت دوم: زیرگردش فراخوانی اطلاعات از فرایند اصلی دارد
در این موارد معمولا و در وظیفه آغازین، مقادیر بعضی از فیلدهای زیرگردش تعیین و ذخیره می شود. یادآوری می کنم که این کار از طریق یک تابع اجرایی انجام می شود. به یک نمونه از این نوع توابع دقت کنید:
در این مثال، مقادیر تعدادی از فیلدهای فرایند "دمو" یا WorkState5 از فرایند اصلی "فروش بسته ها و خدمات نرم افزاری" یا WorkState1 فراخوانی می شود. بدیهی است که این تابع فقط در حالتی که فرایند "دمو" از درون فرایند اصلی "فروش بسته ها ..." فعال شده باشد، درست کار می کند و در غیر این صورت اگر بخواهیم آن را به شکل مستقل و دستی فعال کنیم سیستم WorkState1 را تشخیص نمی دهد و با پیغام خطایی روبرو خواهیم شد که می گوید WorkState1 تعریف نشده یا not defined است.
راه حل
برای حل این مشکل باید کاری کنیم تا این تابع فقط زمانی مقدار دهی کند که WorkState1 وجود داشته باشد. بنابراین تابع اجرایی به شکل زیر مشروط می شود:
ملاحظه می کنید که در ابتدای تابع، شرطی وجود دارد که نوع داده WorkState1 را چک می کند و در صورتی که تعریف نشده باشد، اجرای تابع متوقف می شود و به این ترتیب، این گردش کار می تواند به صورت یک فرایند دستی نیز مورد استفاده قرار بگیرد.
با تشکر