فراخوانی اطلاعات از OrphanList

شرح صورت مسئله: فرض کنید در یک OrphanList مشخصات تعدادی راننده وجود دارد و در بخشی از فرآیند نام راننده مورد نظر را انتخاب می‌کنیم و در بخش بعدی قصد داریم مشخصات راننده منتخب را روی فرم نمایش دهیم .

ابتدا در مدل داده‌ای (DataModel) فرایند یک فیلد از جنس رابطه (Relation) تعریف می‌کنیم (DriverName) و OrphanList رانندگان (DriverProfile) را به آن اختصاص می‌دهیم و باقی اطلاعات راننده را طبق فیلدهای OrphanList  در مدل داده‌ای تعریف می‌کنیم. سپس در بخش پارامترهای خروجی فعالیت کاربری (UserTask) که نام راننده انتخاب شده، فیلد نام راننده را تعریف می‌کنیم (ازنوع Guid).

و درون یک فعالیت کدنویسی (ScriptTask) کد زیر را نوشته و در بخش پارامترهای خروجی آن تمامی فیلدهای مشخصات راننده را تعریف می‌کنیم. (PhoneNumber,CarName ,CarTag)

فیلدهای OrphanList

مدل داده‌ای

تنظیمات فیلد رابطه

تنظیمات نام راننده

ارسال درخواست

پارامترهای خروجی

راننده مورد نظر

using System;

using System.Data;

using System.Data.SqlClient;

using Chargoon.Didgah.BPMS.CommonApi;

namespace Chargoon.Didgah.BPMS.Runtime

{

public class ScriptTask : IScriptTask

{

public IExecution Execution { get; set; }

public void Execute()

{

//تعریف متغیرهایی قرار است در آن مشخصات راننده ریخته شود.//

string PhoneNumber =””;

string CarName =””;

string CarTag =””;

// اتصال به دیتابیس. BPMSConnection نام رشته اتصال است.//

SqlConnection conn = new SqlConnection(Execution.GetConnectionString(“BPMSConnection”) );

using (SqlCommand cmd = new SqlCommand())

{

cmd.Connection = conn;

cmd.CommandType =CommandType.Text;

// کوئری SQL که در آن با استفاده از نام راننده منتخب (DriverName@) اطلاعات آن از جدول ارفن// //موردنظر(DriverProfile) انتخاب می‌شود. //

cmd.CommandText =@” SELECT

PhoneNumber

,CarName

,CarTag

FROM [Didgah_DynamicDataModel].[dbo].[ddm_Orphan_DriverProfile]

WHERE Guid=@DriverName “;

cmd.Parameters.AddWithValue(“@DriverName”,Execution.GuidValue(“DriverName”));

conn.Open();

SqlDataReader reader = cmd.ExecuteReader();

while(reader.Read())

{

PhoneNumber = reader[0].ToString();

CarName =reader[1].ToString();

CarTag =reader[2].ToString();

}

conn.Close();

}

//مقداردهی فیلدهای روی فرم //

Execution.SetVariable(“PhoneNumber”,PhoneNumber);

Execution.SetVariable(“CarName”,CarName );

Execution.SetVariable(“CarTag”, CarTag );

}

}

}

همچنین لازم به ذکر است که اگر باقی فیلدها در مدل داده‌ای از جنس رابطه با همان OrphanList انتخاب کنیم، می‌توانیم در قسمتی که پارامت‌های ورودی را تعریف کرده‌ایم به فیلدها مقدار فیلد رابطه‌ای را بدهیم که در مرحله قبلی انتخاب شده است. (DriverName) تا بدون نیاز به کدنویسی این کار را انجام دهیم:

ساختار تکمیلی

ارسال درخواست 2

بررسی درخواست

فراخوانی اطلاعات راننده

نظرات کاربران 0 نظر

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

4 × چهار =