پرش به محتوای اصلی

انتخاب اقدام کننده با توجه به گزینه انتخابی در فرم

انتخاب اقدام‌کننده

شرح صورت مسئله

ممکن است اقدام کننده یک فعالیت کاربر توسط کاربر در فرم های قبلی فرایند انتخاب شود . یکی از این روش ها انتخاب اقدام کننده از یک فیلد رشته با ویجت نمایشی combo Box است. برای مثال در فرم زیر برای فیلد اقدام کننده ممکن است گزینه “آقای مهدی عامری” یا “آقای محمد اکبری” یا “خانم سمانه علیپور” انتخاب شود. و با پاس دادن این فیلد به فعالیت کاربر مورد نظر فرد انتخابی اقدام کننده فعالیت کاربر شود.

انتخاب اقدام‌کننده

 

در بخش پارامترهای خروجی فعالیت کاربر که در فرم مربوط به آن فیلد اقدام کننده مقداردهی می‌شود، نام انگلیسی فیلد اقدام کننده که در مدل داده ایی تعریف کرده اید( در اینجا FieldName)  را قرار دهید و همین نام را در بخش پارامترهای ورودی فعالیت کاربر که قرار است گزینه انتخابی، اقدام کننده اش باشد قرار دهید.

حال در بخش اقدام کننده از نوع کدنویسی مانند کد زیر می‌نویسیم:

using System;

using Chargoon.Didgah.BPMS.CommonApi;

namespace Chargoon.Didgah.BPMS.Runtime

{

public class OwnerSelector : IOwnerSelector

{

public IExecution Execution { get; set; }

public Owner GetOwner()

{

//تعریف یک متغییر از نوع عددصیح

int StaffId = 0;

//فراخوانی فیلد روی فرم که اقدام کننده از روی آن انتخاب میشود (اقدام کننده در تصویر بالا)

switch(Execution.StringValue(“FieldName”))

{

بررسی گزینه انتخابی و تخصیص StaffId مشخص هر فرد که این عدد را از دیتابیس بدست میاوریم و مقداردهی آن درون متغییر عدد صحیحی که در// ابتدا تعریف کردیم.

case “آقای مهدی عامری”:

StaffId = 64;

break;

case “آقای محمد اکبری”:

StaffId = 135;

break;

case “خانم سمانه علیپور”:

StaffId = 158 break;

//اگر هیچ یک از گزینه های فیلد اقدام کننده انتخاب نشده باشد این فرد به صورت پیشفرض اقدام کننده فعالیت کاربر باشد

default:

“___StarterStaffId” مقدار StaffId شروع کننده فرایند میباشد که برای مثال اینجا فرد شروع کننده//

//به عنوان اقدام کننده این فعالیت کاربر انتخاب میشود

StaffId = Execution.IntegerValue(“___StarterStaffId”);

break;

}

پاس دادن  متغییر عدد صحیحی که در ابتدا تعریف کردیم که درون این متغییر مقدار StaffId فرد انتخاب شده وجود دارد، به تابع// Owner

return new Owner(StaffId);

}

}

}


[ratemypost]