شرح صورت مسئله
در فرآیندهایی که یک Pool با رویداد پایان از نوع پیام خاتمه مییابد و در همان سند فرایندی Pool بعدی با رویداد شروع از نوع پیام شروع میشود نیاز است بعد از رویداد شروع پیام، با استفاده از کد زیر شروع کننده این Pool را مشخص کنیم تا در بخش شروع کننده، آرشیو فعالیتها و همچنین فرآیندهای اجرایی نمایش داده شود.
using System;
using System.Data;
using System.Data.SqlClient;
using System.Globalization;
using Chargoon.Didgah.BPMS.CommonApi;
namespace Chargoon.Didgah.BPMS.Runtime
{
public class ScriptTask : IScriptTask
{
public IExecution Execution { get; set; }
public void Execute()
{
// اتصال به دیتا بیس، BPMSConnection نام رشته اتصال میباشد.//
SqlConnection conn = new SqlConnection(Execution.GetConnectionString(“BPMSConnection”));
using ( SqlCommand cmd = new SqlCommand()) {
cmd.Connection = conn;
cmd.CommandType =CommandType.Text;
// کوئری SQL که در آن نام شروع کننده فرایند را در جدول ProcessInstances درج میکنیم. //
cmd.CommandText =@” UPDATE [Didgah_BPMS].[dbo].[bpm_ProcessInstances]
SET [StarterStaffId]=(SELECT [LastIntractorStaffId] FROM [Didgah_BPMS].[dbo].[bpm_ProcessInstances]
WHERE [ProcessId]=@ProcessId AND [BusinessKey]=@BusinessKey AND [Status]=3 )
WHERE [ProcessName]=N‘نام فرایند با شروع کننده از نوع پبام‘ AND [BusinessKey]= @BusinessKey ” ;
cmd.Parameters.AddWithValue(“@BusinessKey”,Execution.GuidValue(“___BusinessKey”));
cmd.Parameters.AddWithValue(“@ProcessId”, Execution.IntegerValue(“___ProcessId”));
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
}
}
}
[ratemypost]