شرح صورت مسئلهنمایش اطلاعات فرد روی فرم:
فرض کنید در یک فرآیند نیاز است که روی فرم یک فعالیت کاربر (UserTask) نام واحد سازمانی یک فرد را نمایش دهیم.
با استفاده از کد زیر درون یک فعالیت-کدنویسی(ScriptTask) و همچنین نام فیلدی را که نام واحد سازمانی را نشان میدهد درون بخش پارامترهای خروجی فعالیت کدنویسی (ScriptTask) و درون بخش پارامترهای ورودی فعالیت کاربر(UserTask) بعدی تعریف کنیم. در اینجا این فیلد ApplicantUnit است.
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()
{
// تعریف متغییر UnitName از جنس رشته تا مقداردهی شود.//
string UnitName = “”;
// اتصال به دیتا بیس. BPMS نام رشته اتصال میباشد.//
SqlConnection sqlConnection = new SqlConnection(Execution.GetConnectionString(“BPMS”));
using (SqlCommand SqlCommand1 = new SqlCommand())
{
SqlCommand1.Connection = sqlConnection;
SqlCommand1.CommandType = CommandType.Text;
// کوئری SQL که در آن نام واحد سازمانی را از جدول Departments و Staff با استفاده از متغییر @StaffID فرد مورد نظر، نام واحد سازمانی شخص را بدست میاوریم. //
SqlCommand1.CommandText = @”SELECT dep.[Title]
FROM Didgah_Common.dbo.com_Departments as dep
INNER JOIN Didgah_Common.dbo.com_Staff as staff
ON dep.[id] = staff.[DepartmentId]
where staff.Id = @StaffID”;
//متغییر @StaffID را در این بخش مقداردهی میکنیم. برای مثال در این بخش ___StarterStaffId که مقدار
StaffIdفردشروع کننده میباشد را درون این متغییر میریزیم.//
SqlCommand1.Parameters.AddWithValue(“@StaffID”,
Execution.IntegerValue(“___StarterStaffId”));
sqlConnection.Open();
SqlDataReader reader = SqlCommand1.ExecuteReader();
while (reader.Read())
{
// خروجی کوئری بالا که نام واحد سازمانی فرد شروع کننده میباشد را درون متغییر UnitNameمیریزیم.//
UnitName = reader[0].ToString();
}
sqlConnection.Close();
// متغییر UnitName را درون فیلدی که روی فرم هست و قرار است نام واحد درخواست دهنده(ApplicantUnit) را نمایش دهد میریزیم.//
Execution.SetVariable(“ApplicantUnit”,UnitName);
}
}
}