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