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

پیوست فایل پیش‌فرض به فرم در مدل داده‌ای پویا 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 قابل استخراج است.

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


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