ارسال نامه از ProcessMaker با استفاده از api های فراگستر

مقدمه

در این مقاله نحوه ارسال  نامه در  نرم افزار Processmaker را با استفاده از api های فراگستر تشریح می کنیم. به این ترتیب شما می توانید نامه ای را با موضوع و بدنه دلخواه از فرستنده به یک گیرنده مورد نظرتان ارسال کنید. برای این منظور تنها کافی است Trigger ای که تابع ارسال نامه را با مقادیر مناسب پر کنید و در قسمتی از فرایند (مثلا بعد از آخرین Task در فرایند فروش) اضافه می کنیم.

پیش نیاز

معرفی کلاس class.pmFunctions

فایل class.pmFunctions حاوی تنظیماتی است که تابع های نرم افزار Processmaker (مانند getCurrentTime که زمان جاری را بر می گرداند) را برای کاربران در بخش Trigger فراهم می سازد. به این ترتیب ما در این بخش تعریف تابع ارسال نامه را اضافه می کنیم تا امکان استفاده از این تابع در بخش Trigger های نرم افزار فراهم شود.

نحوه اضافه کردن فرایند به Processmaker

نرم افزار Processmaker این امکان را دارد که کل فرایند شامل نماد ها یا BPMN، فرم ها، تریگر های و … را در قالب یک فایل با فرمت pmx خروجی بدهد. اما این خروجی شامل کاربران تخصیص داده شده به Task ها نمی باشد یعنی کاربرانی که به Task ها اختصاص داده شده است در خروجی فرایند ذکر نمی شود.

برای اضافه کردن فرایند جدید از منوی Designer دکمه import را انتخاب می کنیم. سپس در پنجره باز شده فایل pmx را آدرس می دهیم. در پنجره بعدی از شما می پرسد که تمایل دارید فرایند اضافه شده با شناسه های جدید وارد سیستم شود یا با همان شناسه هایی که در سیستم مبدا دارد در این سیستم اضافه شود

نحوه اضافه کردن فرایند به Processmaker

بعد از انتخاب گزینه Save فرایند به سیستم اضافه شده و به صورت اتوماتیک، صفحه نقشه فرایند باز می شود. در ادامه باید اصلاحاتی در این فرایند انجام شود مانند تعیین ایفاکنندگان فرایند ها، اصلاح اتصال های پایگاه داده یا Database Connection ها و … .

ساخت اتصال پایگاه داده یا Database Connection به پایگاه داده اتوماسیون

برای ساخت اتصال به پایگاه داده بعد از ورود به فرایند، از منوی سمت راست گزینه Database Connection را انتخاب می کنیم.

ساخت اتصال پایگاه داده یا Database Connection به پایگاه داده اتوماسیون

سپس از پنجره باز شده گزینه Create را انتخاب می کنیم.

ساخت اتصال پایگاه داده یا Database Connection به پایگاه داده اتوماسیون

در پنجره باز شده مقادیر لازم برای اتصال به پایگاه داده را وارد می کنیم. ابتدا نوع پایگاه داده را از Mysql به Microsoft sql server تغییر می دهیم. در بخش Server اطلاعات سرور پایگاه داده و نام Instance نصب شده را تنظیم می کنیم. در فیلد های بعدی نام پایگاه داده، نام کاربر پایگاه داده و رمز عبور آن کاربر پایگاه داده را وارد می کنید. در پایان Port اتصال را وارد می کنیم که به صورت پیشفرض 1433 می باشد

ساخت اتصال پایگاه داده یا Database Connection به پایگاه داده اتوماسیون

سپس گزینه Test Connection را زده و در صورتی که اطلاعات وارد شده درست باشد به پایگاه داده اتوماسیون متصل می شویم. در نهاییت از این اتصال پایگاه داده می توانید در Trigger یا در فرم های این فرایند استفاده کنید.

دانلود فایل های مورد نیاز

ابتدا فایل های مورد نیاز را دانلود فرمایید.

دانلود فایل های مورد نیاز

کپی فایل ها و اصلاح فایل class.pmFunctions

برای فعال شدن قابلیت ارسال نامه ابتدا لازم است که فایل های مربوطه را در مسیر مناسب اضافه کنید. برای این منظور ابتدا فایل Faragostar_SendLetter_ws.php را در مسیر مربوطه کپی می کنیم.

کپی فایل ها و اصلاح فایل CLASS.PMFUNCTIONS

سپس در این مسیر فایل class.pmFunctions.php را پیدا کرده و این فایل را با نرم افزار ویرایش متن مانند Notepad یا wordpad باز کرده و تکته کد زیر را به انتهای این فایل اضافه می کنیم. سپس تغییرات را ذخیره کرده و فایل را می بندیم.

// ————— Faragostar —————

include ‘Faragostar_SendLetter_ws.php’;

در پایان سه فایل دیگر را در درایو C کپی می کنیم.

کپی فایل ها و اصلاح فایل CLASS.PMFUNCTIONS

اضافه کردن فرایند آموزشی ارسال نامه در Processmaker

در قدم بعدی مطابق الگوی آموزش داده شده فایل pmx فرایند آموزشی ارسال نامه را در Processmaker اضافه می کنیم. برای این منظور از منوی Designer گزینه import را انتخاب می کنیم. سپس در پنجره باز شده فرایند را آدرس داده و اضافه می کنیم.

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

این فرایند شامل دو فرم به نام های Before Send Letter Form که در task اول قرار داده شده است و فرم After Sending Letter Form که در task دوم قرار داده شده است می باشد.

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

فرم اولی شامل ویجت هایی مانند فرستنده و گیرنده نامه و دبیرخانه و فرمتی که فرستنده نامه به آن دسترسی دارد می باشد. امضای فرستنده نامه نیز در فیلد دیگر نمایش داده می شود که کاربر می تواند امضای مد نظر را انتخاب کند.  فیلد های پایانی این فرم موضوع نامه و بدنه نامه است که کاربر آن ها را پر کرده و دکمه Submit را انتخاب می کند. سپس Trigger مربوطه اجرا شده و فرایند به Task دوم هدایت می شود. در Task دوم نتیجه Trigger نمایش داده می شود. در صورتی که فراخوانی با شکست مواجه شود نتیجه برگشتی نمایش داده می شود. در صورت موفقیت شماره رهگیری نامه نمایش داده می شود.

در بخش Trigger های فرایند تریگر Call Send Letter Web Service را مشاهده می کنید. قطعه کدی که وب سرویس ارسال نامه در فرایند را فراخوانی می کند در این Trigger نوشته شده است.

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

در این قسمت لازم است که نام کابری و رمز عبور در متغیرهای username و password وارد شود. این کاربر به عنوان ایجاد کننده نامه در سیستم ثبت می شود. پیشنهاد می‌شود ایجاد کننده و فرستنده نامه یک کاربر ثابت باشد و دسترسی های لازم منجمله دسترسی به دبیرخانه و امضا و امکان ارسال نامه به تمام سازمان به این فرد داده شود. در متغیر automation_url مقدار آدرس اتوماسیون وارد می‌شود. بقیه مقادیر از فرم وارد شده و در این قسمت این مقادیر به متغیرهای مربوطه کپی می‌شود.

بعد از فراخوانی تابع ارسال نامه، مقدار برگشتی بررسی می شود و در صورتیکه ارسال نامه موفقیت آمیز بود متغیر Status با True و در غیر این صورت با False پر می‌شود و همچنین نتیجه برگشتی در متغیر ReturnResult پر می‌شود.

در پایان لازم است اتصال پایگاه داده که در بخش Database Connection وارد شده است با مقادیر مناسب پر شود. پیشنهاد می‌شود که مقادیر موجود در بخش Database Connection اصلاح شود. برای این منظور مطابق توضیحات داده شده از بخش بالا ابتدا مقادیر مرتبط با پایگاه داده اتوماسیون را وارد می‌کنیم. سپس روی گزینه test connection کلیک کرده و در صورتیکه مقادیر به درستی وارد شده باشد به پایگاه داده اتوماسیون متصل می‌شود.

در قدم بعدی لازم است فرم Before Send Letter Form بررسی شده و روی ویجت های Dropdown کلیک کرده و بررسی فرمایید از منوی سمت چپ بخش DB Connection با مقدار Database Connection مربوطه پر شود.

اصلاح یا تکمیل اطلاعات فرایند و آماده کردن فرایند برای اجرا

بعد از بررسی بخش های مختلف فرایند، برای تکمیل اطلاعات هر کدام از Task های فرایند را به کاربر مربوطه اختصاص می دهیم.

اجرای فرایند

برای اجرای فرایند هم این امکان وجود دارد که از کارتابل کابر تخصیص داده شده اقدام کرد هم در صورتی که به کاربر مدیر سیستم در Processmaker اختصاص داده شود می توان از سربرگ Home فرایند جدید را ایجاد و اجرا کرد.

اجرای فرایند

سپس روی گزینه Submit کلیک می کنیم. در قدم بعدی فرایند به Task بعدی هدایت شده و کار در کارتابل کسی که Task به او تخصیص شده است می رود. در صورتی که این کاربر مدیر سیستم Processmaker باشد از همین صفحه از بخش inbox فرم بعدی را باز می کنیم.

در صورتی که ارسال نامه با موفقیت انجام شود پیامی مشابه تصویر را مشاهده خواهید کرد. دقت کنید که رهگیری نامه نیز در تصویر نمایش داده شده است.

اجرای فرایند

در صورتی که ارسال نامه با خطا مواجه شود در این فرم پیغام مرتبط و مقدار برگشتی نمایش داده می شود.

اجرای فرایند

معرفی خطا های احتمالی

  • در صورتی که هیچ مقداری در ویجت های فرم Before Send Letter Form نمایش داده نمی شود Database Connection را بررسی کنید. شما باید حتما قبل از اجرای فرایند Database Connection را مقدار دهی کرده و تست کنید که به درستی به پایگاه داده اتوماسیون متصل شود. همچنین باید Database Connection مربوطه در تمام ویجت های فرم Before Send Letter Form  در بخش DB Connection انتخاب شده باشد.
معرفی خطا های احتمالی
  • اگر در تریگر آدرس اتوماسیون یا نام کاربری و رمز عبور را اشتباه وارد کرده باشید فراخوانی تابع ارسال نامه با خطا مواجه می شود.

در پایان نمونه سورس کامل پروژه در قالب فایل rar برای دانلود قرار داده شده است.