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

کد استخراج شماره پرسنلی

کد استخراج شماره پرسنلی

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

نمایش شماره پرسنلی فرد روی فرم:

فرض کنید در یک فرآیند نیاز است که روی فرم یک فعالیت کاربر (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]