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

درج اعضای گروه مجریان در ستون جدول در مدل داده‌ای پویا 2

گروه مجریان

بررسی نحوه درج اعضای گروه مجریان در یک ستون از جدول

طرح مسئله: در مواقعی نیاز است در فرایندی با ایجاد یک گروه مجریان، اعضای آن در داخل یک ستون از جدول درج گردند.

یک راهکار: در قسمت تعاریف نرم افزار مدیریت فرایندهای کسب و کار، گزینه گروه­‌بندی مجریان را انتخاب می‌کنیم (شکل 1).

شکل 1

با انتخاب گزینه ایجاد گروه جدید، گروه مورد نظر را ایجاد و پس از انتخاب کارمندان عضو گروه مجریان از ساختار سازمان با زدن دکمه ذخیره گروه مجریان را ذخیره می‌کنیم (شکل 2).

شکل 2

برای درج سمت‌های داخل گروه مجریان در یک ستون از نوع سمت سازمانی در جدول نیاز است در مدل داده‌ای پس از ایجاد یک رابطه از نوع جدول، رابطه‌­ای از نوع سمت سازمانی دیدگاه با جدول ایجاد شود تا در فرم‌ساز به عنوان یکی از ستون­‌های جدول مورد استفاده قرار گیرد (شکل 3).

شکل 3

در فعالیت کاربری که قرار است عملیات درج اعضای گروه مجریان در داخل جدول فرم آن صورت گیرد، در قسمت کدنویسی قبل از ساخت (شکل 4)، کد ارائه شده را قرار می‌دهیم.

شکل 4

کد قرار گرفته در قسمت کدنویسی قبل از ساخت عملیات زیر را انجام می­‌دهد:

  • یک رشته اتصال جهت اجرای کوئری مورد نیاز در پایگاه داده دیدگاه ایجاد می‌­شود.
  • کوئری مورد نیاز اعضای گروه مجریان پیشتر ایجاد شده را انتخاب و مقادیر مربوطه به این اعضا را در جداول مدل داده­‌ای فرایند وارد می­‌کند تا بر روی فرم نمایش داده شوند.
  • در کوئری ابتدا یک متغیر از نوع جدول جهت ذخیره مقادیر وارد شده در جدول Junction جدول حاوی ستون از نوع سمت سازمانی دیدگاه ایجاد می­‌شود. هدف از ذخیره این مقادیر نیازمندی به وارد کردن مقادیر PrimaryKey جدول Junction جدول داخل مدل داده‌­ای (جدولی که روی فرم فرایند قرار می­‌گیرد) در ستون ForeignKey جدول Junction مدل داده­‌ای اصلی فرایند است.
  • در ستون ForeignKey جدول Junction جدول داخل مدل داده­‌ای می‌­بایست Guid سمت‌­های عضو گروه مجریان پیشتر ایجاد را وارد نمود. پس از Join بین جدول اعضای گروه مجریان بر اساس ستون­‌های StaffId در جدول PerformerGroupMembers و Id از جدول Staff، ستون Guid از جدول Staff انتخاب و در ستون ForeignKey وارد می­‌شود. محدود کردن خروجی این قسمت از کوئری با استفاده از Id گروه مجریان پیشتر ایجاد شده انجام شده است.
  • مقادیر RelationGuid در جداول Junction این کوئری از جدول Relations در پایگاه داده Didgah_DynamicDataModel برای هر رابطه (رابطه بین مدل داده‌­ای و جدول و رابطه بین جدول و سمت سازمانی دیدگاه) استخراج و هنگام عملیات Insert به صورت ثابت در جدول Junction مورد نظر وارد شده است.
  • در نهایت برای نمایش اطلاعات بر روی فرم نمونه فرایند در جریان می­‌بایست مقدار شناسه BusinessKey نمونه فرایند در جریان را در ستون PrimaryKey جدول Junction مدل داده‌­ای فرایند وارد کنیم. این مقدار با استفاده از دستور AddWithValue و متغیر عمومی BusinessKey به کوئری منتقل شده است. مقادیر ستون‌­های دیگر در این عملیات Insert پیشتر توضیح داده شدند.

;using System

;using System.Data

;using System.Data.SqlClient

;using Chargoon.Didgah.BPMS.CommonApi

namespace Chargoon.Didgah.BPMS.Runtime

}

    public class ScriptUserTask : IScriptUserTask

}

        public IExecution Execution { get; set; }

()public void Execute

}

            using (SqlConnection conn = new SqlConnection(Execution.GetConnectionString(“BPMS”)))

  }

                using (SqlCommand cmd = new SqlCommand())

}

;cmd.Connection = conn

;cmd.CommandType = CommandType.Text

                    cmd.CommandText = @” declare @inserted table

RelationGuid uniqueidentifier)

JunctionPrimaryKey uniqueidentifier,

JunctionForeignKey uniqueidentifier,

(Deleted bit,

insert into [dbo].[ddm_Presenter_Table1Junction] ([RelationGuid],[PrimaryKey],[ForeignKey],[Deleted])

 output inserted.RelationGuid,inserted.[PrimaryKey],inserted.[ForeignKey],inserted.Deleted into @inserted

Select ‘9A6805E4-DE0D-3155-553F-86EC427F4BD9’,newid(),Staff.Guid,0

from   [dbo].[com_Staff] Staff

inner join [Didgah_BPMS].[dbo].[bpm_PerformerGroupMembers] PGM on PGM.StaffId=Staff.Id where PerformerGroupId=1010

insert into [dbo].[ddm_Presenter_Table1] ([Guid],[Deleted])

Select JunctionPrimaryKey,0

 from @inserted

insert into [Didgah_BPMS].[dbo].[ddm_PresenterJunction] ([RelationGuid],[PrimaryKey],[ForeignKey],[Deleted])

Select ‘8B44ABC8-4161-3A44-9D14-1634569CB985’,@BusinessKey,JunctionPrimaryKey,0

;”from @inserted

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

;()conn.Open

;()cmd.ExecuteNonQuery

;()conn.Close

{

{

{

{

{

پس از انتشار فرایند و اجرای آن همان‌طور که در شکل 5 مشاهده می­‌شود، سمت‌های سازمانی گروه مجریان در جدول درج خواهند شد.

شکل 5

نکته : در پیاده­‌سازی این راهکار در مشتری­‌های مختلف باید به نام‌­های ستون‌ها و نام رشته اتصال دقت نمود؛ زیرا می­‌توانند از آن‌چه که دراین اسکریپت­‌ آورده شده است متفاوت باشند.


[ratemypost]
دستیار هوشمند چارگون دستیار هوشمند چارگون