با سلام خدمت همکاران محترم
همانطور که وعده کرده بودم. در این مطلب سعی می کنم با ذکر یک مثال، جستجوی کارها با SearchWork را به شکل پیشرفته تر یا دقیق تر توضیح دهم:
فرض کنید یک گردش کار به شرح زیر داریم:
نام گردش کار اصلی: ارزیابی کارشناسان
کد گردش کار: 19
نام فیلدهای مبادله ای: نام کارشناس (ExpertName)؛ تعداد کارهای موفق کارشناس (WellDoneNo) ؛ تعداد کارهای ناموفق کارشناس (FailedNo)
در این گردش کار قرار است تعداد کارهای موفق و ناموفق یک کارشناس را از گردش کار 13 (ارجاعات پشتیبانی) استخراج و ذخیره کنیم و پس از پردازشهای خاصی، امتیاز ارزشیابی کارشناسان را به دست بیاوریم.
نام گردش کار فرعی (فراخوانی شونده): ارجاعات پشتیبانی
کد گردش کار:13
نام فیلد مبادله ای: کارشناس ارجاع شده (Expert_Selected)؛ وضعیت انجام کار (Work_Status)
توضیح اینکه فیلد وضعیت انجام کار یک فیلد از نوع منطقی است که نشان می دهد کار انجام شده (Done) یا ناموفق بوده (Failed)
جستجوی کارها
فرض کنید می خواهیم تعداد کارهای موفق و ناموفق کارشناسی به نام احمدی را بازابی کنیم. برای این کار باید در گردش کار 19 (ارزیابی کارشناسان)، تابع SearchWork را در دو مرحله و به شکل زیر بنویسیم:
جستجو برای کارهای موفق
همانطور که مشاهده می کنید، در اینجا جستجو از طریق افزودن عنصر دقیق تر شده است. در اولین سطر تعیین شده است که فیلد کارشناس ارجاع شده (Expert_Selected) برابر "احمدی" باشد و در سطر دوم تعیین شده است که وضعیت کار او انجام شده (Done) باشد.
در سطر آخر، تابع SearchWork اجرا شده و خروجی WorkKey_Done را تولید کرده است. تعداد عناصر یا مقادیر این آرایه نشان دهنده تعداد کارهای موفق خواهد بود.
محاسبه تعداد کارهای موفق
تعداد عناصر یک آرایه از طریق ویژگی length بدست می آید. بنابراین مقدار WorkKey_Done.length نشانگر تعداد کارهای موفق خواهد بود.
تعیین مقدار فیلد WellDoneNo
بنابراین تعداد کارهای موفق را در فیلد WellDoneNo از گردش کار 19 قرار می دهیم.
WorkState19.WellDoneNo=WorkKey_Done.length;
مشابه همین کار را برای کارهای ناموفق هم انجام می دهیم و در نهایت تابع اجرایی محاسبه ارزیابی کارشناس به شکل زیر خواهد بود:
تابع اجرایی محاسبه ارزیابی کارشناس
حال دو مقدار تعداد کارهای موفق و ناموفق در دسترس است که می تواند به همراه پارامترهای دیگر مانند مدت زمان انجام کارها، میزان سختی کار و ... معیاری برای ارزیابی کارشناس باشد.
امیدوارم این توضیحات برای همکاران محترم مفید و قابل استفاده باشد. منتظر سوالها و توضیحات شما در ادامه این پست هستم.
موفق باشید