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

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

سمت سازمانی

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

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

یک راهکار: می­توان مطابق تصویر شماره 1 از یک فعالیت کدنویسی پس از فعالیت کاربری که در آن فیلد سمت سازمانی دیدگاه مقدار می‌­گیرد استفاده نمود تا در فعالیت کاربر بعد از فعالیت کدنویسی عنوان سمت انتخاب شده در فعالیت اول را در توضیحات آن درج نماییم.

شکل 1

در فعالیت کدنویسی ایجاد شده کد زیر را قرار می‌دهیم:

;using Chargoon.Didgah.BPMS.CommonApi

;using System.Data

;using System.Data.SqlClient

namespace Chargoon.Didgah.BPMS.Runtime

}

 public class ScriptTask : IScriptTask

}

        public IExecution Execution { get; set; }

()public void Execute

 }

;string name

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

}

                using (SqlCommand cmd = new SqlCommand())

}

                    ;cmd.Connection = conn

; cmd.CommandType = CommandType.Text

                    cmd.CommandText = @”Select

                    [FullTitle]

                    from [Didgah_Common].[dbo].[com_Staff]

inner join [Didgah_BPMS].[dbo].[ddm_HelpEducationJunction] on [Didgah_Common].[dbo].[com_Staff].[Guid] = [Demo_Didgah_BPMS].[dbo].[ddm_HelpEducationJunction].[ForeignKey]

;”where [RelationGuid] = ‘E27790F3-F509-B0A4-270E-CFD272F9BF40’ and  PrimaryKey=@BusinessKey

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

;()conn.Open

;()name = cmd.ExecuteScalar().ToString

;()conn.Close

; ;Execution.SetVariable(“Name”, name)

{

{

{

{

{

کد قرار گرفته در فعالیت کدنویسی “توضیحات” موارد زیر را انجام می‌­دهد:

  • تعریف یک متغیر با نام name که از آن برای ذخیره خروجی کوئری استفاده می‌شود.
  • ایجاد رشته اتصال برای اجرای کوئری در پایگاه داده دیدگاه.
  • کوئری به کار رفته در کد ستون FullTitle از جدول Com_Staff از پایگاه داده Didgah_Common را که در واقع همان عنوان سمت کامل است برای سمت سازمانی انتخاب شده در فیلد سمت سازمان دیدگاه Select می­‌کند. برای فیلتر خروجی کوئری ابتدا با جدول Junction مدل داده‌­ای فرایند بر اساس برابری ستون ForeignKey از جدول Junction و ستون Guid از جدول Com_Staff یک Join زده شده است. در واقع پس از انتخاب سمت توسط کاربر در فیلد سمت سازمانی دیدگاه بر روی فرم مقدار StaffGuid که همان مقدار Guid سمت انتخاب شده در جدول Com_staff است در ستون ForeignKey جدول Junction مدل داده‌­ای فرایند ذخیره می­‌شود. برای محدود کردن خروجی کوئری به رکورد ثبت شده توسط نمونه فرایند در حال اجرا ستون PrimaryKey با شناسه نمونه فرایند یا BusinessKey فیلتر شده است. این مقدار با استفاده از دستور AddWithValue به کوئری منتقل می‌­شود. همچنین برای محدود کردن رکوردهای جدول Junction به فیلد سمت سازمانی مورد نظر، کوئری را بر اساس RelationGuid رابطه موجود بین سمت سازمانی دیدگاه و مدل داده‌­ای فرایند محدود می‌­کنیم. این مقدار از ستون Guid جدول Relations در پایگاه داده Didgah_DynamicDataModel استخراج می‌شود.
  • خروجی کوئری با استفاده از دستور ExecuteScalar برای مقداردهی به متغیر name مورد استفاده قرار می‌­گیرد.
  • با استفاده از متغیر name به پارامتر Name که به عنوان پارامتر خروجی روی فعالیت کدنویسی تعریف خواهد شد مقداردهی می‌­نماییم.

در تب ورودی و خروجی فعالیت کدنویسی، در قسمت خروجی متغیری از نوع رشته ایجاد می‌کنیم و نام آن را برابر با متغیر ایجاد شده در کد (Name) قرار می‌دهیم (شکل 2).

شکل 2

در فعالیت کاربر بعد از فعالیت کدنویسی در تب عمومی در قسمت توضیحات داخل براکت نام متغیری که در داخل کد ایجاد شده است را وارد می‌­کنیم (شکل 3).

شکل 3

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

شکل 4

شکل 5


[ratemypost]