شرح صورت مسئله
زمانی نیاز است تصمیمگیری مسیر ادامه فرایند بر اساس اقدامکنندهای تسکهای پیشین آن فرایند صورت گیرد.
فرض کنید در فرآیندی بعد از ثبت درخواست اگر ثبتکننده کارمند باشد، بررسی درخواست توسط مدیر انجام میشود و اگر ثبتکننده مدیر باشد، بررسی درخواست باید توسط مدیرعامل انجام شود.
برای این کار ابتدا باید از دیتایس Common جدول Staff ستون Id، Id فرد مورد نظر را بیابیم تا از آن در کد به صورت زیر استفاده کنیم.
مطابق تصویر بالا روی مسیری که ثبتکننده مدیر است کد زیر را مینویسم و Id افرادی را که از دیتابیس یافتیم در این کد به جای اعداد 111و 222 میگذاریم.
به این معنی که اگر اخرین اقدامکننده این افراد بودند فرایند از این مسیر برود در غیر اینصورت از مسیر دیگر.
___LastIntractorStaffId متغییر عمومی هست که درآن Id آخرین اقدام کننده فرایند قرار میگیرد.
using System;
using Chargoon.Didgah.BPMS.CommonApi;
namespace Chargoon.Didgah.BPMS.Runtime
{
public class ConditionalFlow : IConditionalFlow
{
public IExecution Execution { get; set; }
public bool Evaluate()
{
if (Execution.IntegerValue(“___LastIntractorStaffId”) == 111 || Execution.IntegerValue(“___LastIntractorStaffId”) == 222 )
return true;
else
return false;
}
}
}
[ratemypost]