شرح صورت مسئلهممکن است در بخشی از یک فرآیند ، این که فرآیند از چه مسیری ادامه پیدا کند برحسب گزینه انتخابی در فرم پیشین باشد و نیاز باشد با بررسی مقدار فیلد مورد نظر فرایند از مسیر انتخابی پیش رود.
برای مثال در فرآیند زیر، اقدامکننده در فرم بررسی درخواست میتواند گزینه “تایید” و یا “عدم تایید” را انتخاب کند. این متغیر را در پارامتر خروجی این فعالیت و در پارامتر ورودی دروازه انحصاری (Exclusive Gateway) قرار میدهیم و برای مثال با کلیک روی مسیر “تایید” و انتخاب کدنویسی، در صفحه باز شده کد زیر را مینویسم که اگر مقدار متغیر مورد نظر برابر با “تایید” بود از این مسیر فرآیند ادامه پیدا کند و در غیر این صورت از مسیر دیگر.
using System;
using Chargoon.Didgah.BPMS.CommonApi;
namespace Chargoon.Didgah.BPMS.Runtime
{
public class ConditionalFlow : IConditionalFlow
{
public IExecution Execution { get; set; }
public bool Evaluate()
{
ManagerApproval// نام متغییر روی فرم میباشد //
//حال بر روی مسیر موردنظر، به این شکل بررسی میکنیم اگر درون این متغییر مقدار “تایید” وجود دارد ،فرایند از همین مسیر ادامه پیدا کند و اگر نه از این مسیر نرود //
if(Execution.StringValue(“ManagerApproval”) == “تایید”)
return true;
else
return false;
}
}
}
همچنین کد زیر هم صحیح است:
using System;using Chargoon.Didgah.BPMS.CommonApi;
namespace Chargoon.Didgah.BPMS.Runtime
{
public class ConditionalFlow : IConditionalFlow
{
public IExecution Execution { get; set; }
public bool Evaluate()
{
return Execution.StringValue(“ManagerApproval”) == “تایید”;
}
}
}