پیوست فایل پیش‌فرض به فرم در مدل داده‌ای پویا 2

بررسی مسئله پیوست فایل به صورت پیش‌فرض بر روی فیلد فایل

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

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

همان‌طور که در شکل 1 مشخص است در ابتدای فرایند در فرم فعالیت کاربر (شکل 2) فایل مورد نظر را بارگذاری می‌کنیم.

شکل 1

شکل 2

با انجام این عملیات رکوردهای مربوط به فایل‌­های آپلودشده در جدول Junction مدل داده‌­ای فرایند وارد می­‌شوند که در کدنویسی از این رکوردها استفاده خواهد شد.

در فرایند نهایی یک فعالیت کدنویسی مانند شکل 3 اضافه می‌کنیم و کد ارائه‌شده را در قسمت کدنویسی قرار می‌دهیم.

شکل 3

;using Chargoon.Didgah.BPMS.CommonApi

;using System.Data.SqlClient

;using System.Data

public class ScriptTask : IScriptTask

}

    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 = @”insert into [Didgah_BPMS].[dbo].[ddm_RequestConsumerGoods1Junction]  ([RelationGuid]

[PrimaryKey],

[ForeignKey],

([Deleted],

‘select ‘19466DCB-C37E-EE41-F647-3B29F0C105BA

      BusinessKey@,

[ForeignKey],

0,

From[Didgah_BPMS].[dbo].[ddm_RequestConsumerGoods1Junction]

where PrimaryKey=’896D2188-6D80-4B9E-971E-BD330A35610D’

;”

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

;()conn.Open

;()cmd.ExecuteNonQuery

;()conn.Close

{

{

{

{

{

کد ارائه‌شده عملیات زیر را انجام می­‌دهد:

  • تعریف یک رشته اتصال برای اجرای کوئری مورد نیاز در پایگاه داده دیدگاه
  • کوئری مورداستفاده در کد ارائه‌شده به ازای فایل‌­های پیشتر آپلودشده در پایگاه داده رکوردهایی را به جدول Junction مدل داده­‌ای فرایند وارد می­‌کند. در ستون RelationGuid مقدار Guid اختصاص داده‌شده به رابطه بین مدل داده‌­ای فرایند و فیلد فایل مورد نظر وارد می‌­شود. این مقدار برابر با ستون Guid از جدول Relations در پایگاه داده Didgah_DynamicDataModel است. در ستون PrimaryKey مقدار شناسه BusinessKey نمونه فرایند جاری با استفاده از دستور AddWithValue و متغیر عمومی مربوطه وارد می‌­شود. در ستون ForeignKey مقادیر همین ستون به ازای فایل­‌های پیشتر آپلود شده بر روی فرم فرایند وارد می‌­شود. این مقادیر با برابر قرار دادن مقدار PrimaryKey در دستور Select مورد استفاده با شناسه BusinessKey نمونه فرایندی که برای آپلود فایل‌­ها مورد استفاده قرار گرفته قابل فیلتر کردن هستند. مقدار BusinessKey نمونه فرایندی که برای آپلود فایل‌ها مورد استفاده قرار گرفت، از جدول ProcessInstaces قابل استخراج است.

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

نظرات کاربران 0 نظر

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *