وب سرویس PROCESSMAKER_ESB*
منتشر شده توسط , ویرایش شده توسط: در تاریخ 1399/6/24 دوشنبه 09:38

از آنجایی که فرایندهای سازمانی با اتصال و انتقال اطلاعات بین سیستم‌ها و منابع اطلاعاتی مختلف سازمان نمود بیشتری داشته و ایجاد ارزش خواهد نمود، در این بخش با ایجاد یک پروژه نمونه مثال های مختلفی از ارتباط بین سیستم ها را نشان دادیم.

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

لازم به توضیح است این پروژه بصورت نمونه ارائه شده و صرفاً هدف ارائه آن نشان دادن روش استفاده از Web Service ها در ایجاد ارتباط با سایر منابع اطلاعاتی سازمان در فرآیند ها است. سعی کردیم از تکنولوژی های ساده و روانی در این مثال ها استفاده شود ولی شما می توانید به فراخور نیاز سازمان تکنولوژی و قواعد فنی پیاده سازی Web Service ها را تغییر دهید.

  • تنظیمات اولیه

جهت استفاده از این متدهای وب سرویس ProcessMaker_ESB.asmx ابتدا لازم است دو نکته مورد توجه قرار گیرد.

۱- در این وب سرویس فرض بر استفاده از یک پایگاه داده دیگر در نزد سازمان مشتری (به عنوان مثال پایگاه داده سامانه انبار) جهت فراخوانی، درج، حذف و ویرایش اطلاعات است. برای اتصال به این پایگاه داده لازم است در فایل config پروژه ProcessMaker_ESB مسیر اتصال به پایگاه داده مقصد (سامانه انبار) تنظیم شود. برای این مهم وارد فایل web.config شوید و اطلاعات (نام سرور، نام پایگاه داده، نام کاربری و رمز عبور) را مطابق تنظیمات و  دسترسی های تعریف شده در سازمان خود تنظیم نمایید:

۲- نکته دوم میزبابی یا HOST نمودن وب سرویس asmx بر روی IIS می‌باشد. برای این کار بر روی سرور میزبان .net framework 3.5 به بالا لازم است. همچنین جهت تست و اجرای وب سرویس ProcessMaker_ESB.asmx بعد از ساخت یک وب سایت در مسیر پروژه مشابه تصویر ذیل وارد پوشه Services شوید و وب سرویس ProcessMaker_ESB.asmx  را Browse نمایید در صورت مشاهده تصویر ذیل در مرورگر متدهای وب سرویس شما آماده استفاده می‌باشد.

  • درج یک رکورد جدید از داخل یک فرایند ( متد : AddNewItem)

فرض می‌کنیم در یک فرایند درخواست کالا می‌خواهیم مشخصات یک کالای درخواست شده شامل (نام کالا، واحد سنجش، مقدار و توضیحات) را در پایگاه داده سیستم انبار به عنوان یک رکورد جدید درج کنیم. برای این کار متد پیشنهادی AddNewItem است.

در این متد، در متغیر  queryString کوئری درج مطابق با نام جدول و نام فیلدهای مورد نظرتان را وارد نمایید. همچنین دقت کنید پارامترها ورودی متد می‌بایست با پارامتر کوئری از لحاظ عناوین و نوع پارامتر همخوانی داشته باشند.

  • ویرایش یک رکورد از داخل فرایند ( متد : UpdateItem)

فرض می‌کنیم در فرایند درخواست کالا می‌خواهیم مشخصات کالایی که به اشتباه وارد شده را اصلاح کنیم برای انجام این کار میتوانیم از متد UpdateItem استفاده کنیم.

عملکرد این متد بدین صورت است که با استفاده از شناسه کالا میتوان نام کالا را اصلاح کرد در این متد، در متغیر  queryString کوئری درج مطابق با نام جدول و نام فیلد های مورد نظرتان را وارد نمایید. همچنین دقت کنید پارامتر ها ورودی متد می بایست با پارامتر کوئری از لحاظ عناوین و نوع پارامتر همخوانی داشته باشند.

  • حذف یک رکورد از داخل فرایند ( متد : DeleteItem)

فرض می‌کنیم در طول اجرای فرایند می‌خواهیم کالایی را از پایگاه داده حذف کنیم برای انجام این کار می‌توانیم از متد DeleteItem استفاده کنیم.

عملکرد این متد بدین صورت است که با استفاده از شناسه کالا میتوان کالا را از پایگاه داده حذف کرد در این متد، در متغیر queryString کوئری درج مطابق با نام جدول و نام فیلد های مورد نظرتان را وارد نمایید. همچنین دقت کنید پارامتر ها ورودی متد می‌بایست با پارامتر کوئری از لحاظ عناوین و نوع پارامتر همخوانی داشته باشند.

  • فراخوانی یک رکورد از داخل فرایند ( متد : GetItemById)

فرض می‌کنیم در طول اجرای فرایند می‌خواهیم مشخصات کالایی را از پایگاه داده فراخوانی کنید و در داخل فرایند از آن استفاده کنید برای انجام این کار میتوانیم از متد GetItemById استفاده کنیم.

عملکرد این متد بدین صورت است که با استفاده از شناسه کالا میتوان رکورد مربوط به آن کالا را فراخوانی و فیلد مورد نظر را در فرایند استفاده کرد در این متد، در متغیر queryString کوئری درج مطابق با نام جدول و نام فیلدهای مورد نظرتان را وارد نمایید. همچنین دقت کنید پارامترها ورودی متد می‌بایست با پارامتر کوئری از لحاظ عناوین و نوع پارامتر همخوانی داشته باشند.

  • تنظیمات اولیه جهت ارسال SMS و Email

جهت استفاده از این متدهای وب سرویس ProcessMaker_ESB.asmx ابتدا لازم است به نکات زیر توجه فرمایید.

۱- برای استفاده از متدهای ارسال SMS و Email باید سرویس‌های آن در داخل سامانه اتوماسیون فعال و تنظیمات آن انجام شده باشد و همچنین مشابه تصویر ذیل سرویس Operation نیز فعال باشد.

۲- در این وب سرویس ابتدا باید با پایگاه داده WebOfficeData اتصال برقرار کرد برای اتصال به این پایگاه داده لازم است در فایل config پروژه ProcessMaker_ESB مسیر اتصال به پایگاه داده WebOfficeData تنظیم شود. برای این مهم وارد فایل web.config شوید و اطلاعات (نام سرور، نام پایگاه داده، نام کاربری و رمز عبور) را مطابق تنظیمات و دسترسی‌های تعریف شده در سازمان خود تنظیم نمایید:

  • ارسال SMS از داخل فرایند ( متد : SendSms)

فرض می‌کنیم در طول اجرای فرایند نیاز به ارسال SMS و اطلاع رسانی به کاربر باشد برای انجام این کار میتوانیم از متد SendSms استفاده کنیم.

عملکرد این متد بدین صورت است که با درج رکورد در جدول SmsSendBuffer شروع به ارسال Sms توسط سرویس FaragostarOperationService  میشود. در این متد، در متغیر queryString کوئری درج مطابق با نام جدول و نام فیلدهای مورد نظرتان را وارد نمایید.

همچنین دقت کنید پارامترها ورودی متد می‌بایست با پارامتر کوئری از لحاظ عناوین و نوع پارامتر همخوانی داشته باشند. لازم به ذکر است فیلد SmsLineID جهت انتخاب اطلاعات Provider که مقدار آن از جدول SmsLine گرفته میشود، فیلد Phone که شماره همراه دریافت کننده SMS و فیلد body که متن SMS در آن قرار میگیرد.

  • ارسال Email از داخل فرایند ( متد : SendEmail)

متد SendEmail نیز همانند متد SendSms جهت اطلاع رسانی به کاربر در قسمت‌های مختلف فرایند استفاده میشود. عملکرد این متد بدین صورت است که با درج رکورد در جدول EmailSendBuffer شروع به ارسال Sms توسط سرویس FaragostarOperationService  میشود.

در این متد، در متغیر queryString کوئری درج مطابق با نام جدول و نام فیلدهای مورد نظرتان را وارد نمایید. همچنین دقت کنید پارامترها ورودی متد می‌بایست با پارامتر کوئری از لحاظ عناوین و نوع پارامتر همخوانی داشته باشند.

لازم به ذکر است فیلد emailAccountId جهت انتخاب وب سرور ایمیل تعریف شده که مقدار آن از جدول EmailAccount گرفته میشود و مابقی فیلدها نیز اطلاعات گیرنده ایمیل، موضوع و بدنه ایمیل می‌باشد.

  • فراخوانی وب سرویس از داخل فرایند (Trigger)

جهت استفاده از وب سرویس در ProcessMaker نیاز به ایجاد Trigger می‌باشد. برای ساخت Trigger بصورت زیر عمل میکنیم:

۱- از منوی Process Object گزینه Trigger را انتخاب کرده در پنجره‌ای ظاهر شده Trigger جدید را ایجاد و کدهای وب سرویس را داخل قسمت Code وارد میکنیم سپس Trigger  را ذخیره می‌کنیم.

۲- Trigger ساخته شده را میتوان در یکی از Event های نمایش داده شده در تصویر قرار داد.