آموزش ساخت فرآیند "اعلام سفارش حمل کالا با کشتی" در ProcessMaker

1398/3/17
آموزش ساخت فرآیند "اعلام سفارش حمل کالا با کشتی" در ProcessMaker

نرم افزار پراسس میکر (ProcessMaker) یک سیستم مدیریت فرآیند تحت وب است که امکان طراحی، خودکارسازی و استقرار فرآیندهای کسب و کار را برای سازمان ها فراهم می کند. این ابزار با فراهم ساختن رابط کاربری drag and drop محیطی برای مدل سازی و طراحی جریان کارها و همچنین ساخت فرم های پویا دراختیار کاربر قرار می دهد.
در این مطلب به معرفی و پیاده سازی یکی فرآیندهای مرتبط با حوزه کاری سازمان های بازرگانی تحت عنوان "اعلام سفارش حمل کالا با کشتی"، در ابزار پراسس میکر (ProcessMaker) می پردازیم. روال کلی این فرآیند به این صورت است که یک سفارش حمل برای نوعی کالا توسط واحد بازرگانی به سازمان اعلام شده و محموله موردنظر باید از طریق کشتی به مشتری ارسال گردد.
برای ایجاد هر فرآیند و طراحی بخش های مختلف آن در ProcessMaker باید مراحلی طی شود که در یکی از مطالب گذشته تحت عنوان (مراحل ساخت فرآیند در پراسس میکر) به طور کامل شرح داده شده است. اکنون در این مطلب هر یک از مراحل موردنظر را بر روی این فرآیند شرح می دهیم و فرآیند مربوطه را از طریق طی کردن تک تک گام های مطلب قبلی پیاده سازی می کنیم. در انتهای این مطلب شما قادر خواهید بود تا این فرآیند را به طور کامل در ProcessMaker پیاده سازی کنید. همچنین، فایل دیاگرام فرآیند و فرم اصلی طراحی شده آن نیز به انتهای این مطلب ضمیمه شده است.

مرحله 1 (طراحی مدل فرآیند):
همیشه در اولین مرحله از پیاده سازی یک فرآیند، باید مدل آن فرآیند را تحلیل و طراحی کرد. اگر با چرخه عمر مدیریت فرآیند (BPM Life Cycle) آشنایی داشته باشید (در صورت عدم آشنایی می توانید به این مطلب رجوع کنید)، می دانید که تحلیل و طراحی یک فرآیند باید قبل از پیاده سازی آن انجام شود. در سیستم های مدیریت فرآیندهای کسب و کار (BPMS) همچون ProcessMaker، ما یک فرآیند را بعد از تحلیل و شناسایی کامل بخش های مختلف آن پیاده سازی می کنیم. تنها زمانی می توانید یک فرآیند را در BPMS موردنظر خود پیاده سازی کنید که به روند انجام و نحوه جریان آن مسلط باشید. عدم آشنایی و تسلط بر مدل فرآیند در زمان پیاده سازی آن، می تواند منجر به ایجاد دوباره کاری ها و یا بهینه نبودن فرآیند شود. اشتباهی که بسیاری از سازمان ها در زمان پیاده سازی فرآیندها مرتکب می شوند و درنهایت، آن بهره وری لازم را مشاهده نخواهند کرد!
در مثال مورد بحث ما، فرآیند اعلام سفارش حمل کالا با کشتی توسط کارشناس بازرگانی سازمان آغاز می شود. این شخص وظیفه ثبت سفارشی که به دستش رسیده را در سیستم دارد. پس همان طور که در دیاگرام زیر مشاهده می کنید، پس از رویداد آغازین (Start Event) فرآیند، اولین فعالیت به نام "ثبت سفارش حمل با کشتی" توسط کارشناس بازرگانی انجام می شود.

پس از ثبت سفارش در سیستم توسط کارشناس بازرگانی، درخواست به کارشناس عملیات بازرگانی ارسال می شود. کارشناس عملیات بازرگانی وظیفه بررسی و بازبینی اطلاعات سفارش ثبت شده توسط کارشناس بازرگانی را برعهده دارد. آیا این شخص در صورت مشاهده ایرادات در سفارش باید این اختیار را داشته باشد که خودش آن را اصلاح کند؟ یا باید آن را جهت اصلاح به کارشناس بازرگانی برگشت بزند؟ این بستگی به شرایط و قوانین سازمان و واحد بازرگانی شما دارد. در این مثال همان طور که در دیاگرام بالا مشاهده می کنید، در مقابل فعالیت کارشناس عملیات یک Exclusive Gateway وجود دارد که به معنای یک شرط است. این gateway دو خروجی دارد. یک خروجی فرآیند را به مدیر بازرگانی هدایت می کند (که در صورت تایید سفارش توسط کارشناس عملیات است) و خروجی دیگر، آن را جهت اصلاح به کارشناس بازرگانی ارجاع می دهد (در صورتی که سفارش نیاز به اصلاح داشته باشد).
پس از تایید سفارش توسط کارشناس عملیات بازرگانی، سفارش به مدیر بازرگانی ارسال می شود. طبیعی است که مدیر بازرگانی باید این اختیار را داشته باشد که درخواست را تایید کرده و یا جهت اصلاح به کارشناس های خود بازگرداند. نماد Exclusive Gateway مقابل او نیز نمایان گر این شرط است. اما این که در صورت نیاز به اصلاح، خودش آن را اصلاح کند و یا به کارشناسان ارجاع دهد، باز هم به شرایط سازمان و واحد مربوطه بستگی دارد.
در ابزارهای مدیریت فرآیند همچون نرم افزار ProcessMaker شما در بخش های مختلف فرآیند ممکن است نیاز به تعامل با database و ذخیره اطلاعات به دست آمده از فرآیند در database داشته باشید. در این مثال نیز، از آن جا که تایید سفارش توسط مدیر بازرگانی به معنای نهایی شدن آن سفارش است، لذا می توان اطلاعات سفارش را در database سیستم ثبت کرد. بدین ترتیب، نیازمند یک فعالیت سیستمی (Script Task) هستیم که اطلاعات را در سیستم ثبت کند (در این مورد در مراحل بعد بیش تر توضیح می دهیم). موازی با ثبت اطلاعات در سیستم، فرآیند باید به واحد کشتیرانی (دریانوردی) هدایت شود تا مشخص گردد که محموله با چه کشتی و با چه مشخصاتی به مقصد ارسال خواهد شد. لذا پس از فعالیت مدیر بازرگانی، از یک Parallel Gateway جهت ارسال موازی فرآیند به هر دو مسیر ثبت اطلاعات در سیستم و فعالیت واحد کشتیرانی استفاده کرده ایم. به عبارتی این دو فعالیت از آن جا که وابستگی به هم ندارند، می توانند به صورت موازی با هم اجرا شوند.
بدین ترتیب پس از تایید سفارش توسط مدیر بازرگانی، از آن جا که سفارش موردتایید واحد بازرگانی بوده، هم اطلاعات سفارش در databse ثبت می شود و هم فرآیند جهت ادامه کار و مشخص کردن کشتی (و یا کشتی ها) به کارشناس واحد کشتیرانی ارسال می گردد. واضح است که واحد کشتیرانی هیچ اختیاری در رد کردن سفارشی که توسط واحد بازرگانی تایید شده است، نخواهد داشت (مگر در شرایط استثنا که باز هم به سازمان شما بستگی دارد). پس از ثبت اطلاعات کشتی توسط واحد کشتیرانی، مجددا نیاز به ثبت اطلاعات در database داریم. لذا با استفاده از یک فعالیت سیستمی، اطلاعات کشتی ها را در سیستم ثبت خواهیم کرد. همچنین با مشخص شدن کشتی ها، می توان اطلاعیه آن را به واحد بازرگانی ارسال کرد. بدین ترتیب باز هم با استفاده از یک Parallel Gateway، موازی با ثبت اطلاعات کشتی ها در سیستم، فرآیند را یه واحد بازرگانی جهت مشاهده کشتی ها ارسال خواهیم کرد.
همان طور که مشاهده می کنید، فعالیت "اعلام ثبت نهایی سفارش حمل با کشتی" یک فعالیت از نوع Parallel Task است و نماد روی آن، این را به شما نشان می دهد. این فعالیت را به عنوان Parallel Task تعریف کرده ایم، چون می خواهیم یک فعالیت با یک فرم به چند نفر در واحد بازرگانی (کارشناس بازرگانی، کارشناس عملیات بازرگانی و مدیر بازرگانی) ارسال شود. در صورت عدم استفاده از Parallel Task، می توانید به ازای هر یک از این افراد یک task مجزا در فرآیند قرار دهید.
در انتهای هر یک از مسیرهای مجزای فرآیند، با قرار دادن یک رویداد پایانی (End Event)، خاتمه آن مسیر را مشخص می کنیم. همان طور که در این مثال مشاهده می کنید، یک فرآیند ممکن است چندین رویداد پایانی داشته باشد. اما همیشه تنها یک رویداد آغازین باید داشته باشد!
مرحله 2 (تعریف متغیرهای فرآیند):
متغیرها (variables)، اطلاعات و داده هایی که در فرم های فرآیند وارد می شوند را در خود ذخیره می کنند تا در قسمت های دیگر آن فرآیند بتوان آن ها را فراخوانی کرده و از مقدار داخل آن ها استفاده کرد. به عبارت دیگر، متغیرها در ProcessMaker مدل داده فرآیند ما را تشکیل می دهند.
برای مشخص کردن متغیرهای فرآیند باید ببینید در هر مرحله و هر فعالیت چه اطلاعاتی توسط اشخاص مختلف ثبت می شود. به عبارتی، در هر مرحله از فرآیند چه داده هایی در سیستم وارد شده و یا از سیستم خوانده و نمایش داده می شوند؟ بدین ترتیب در زمان پیاده سازی هر فعالیت از فرآیند، باید از شخص انجام دهنده آن فعالیت بپرسید که چه اطلاعاتی را به نفر بعدی تحویل می دهد و همچنین چه اطلاعاتی را از نفر قبل از خود دریافت می کند. در مثال مورد بحث این مطلب، ابتدا باید طی صحبت با کارشناس بازرگانی سازمان، اطلاعاتی که او از آن سفارش جدید باید در سیستم وارد کند را گرفت.
به طور کلی ما در این فرآیند، متغیرهایی همچون شماره سفارش، نام مشتری، مقدار سفارش، مقصد، مهلت تحویل، نام کشتی و ... داریم. هر یک از متغیرها باید در قسمت Variables در فرآیند تعریف شوند. در زمان تعریف هر متغیر بسته به نوع داده ای که قرار است در خود ذخیره کند، باید نوع داده (Data Type) آن را نیز مشخص کرد.
مرحله 3 (ساخت فرم ها):
در این مرحله به ازای هر یک از فعالیت های مدل فرآیند باید یک فرم طراحی کرد تا کاربر مربوطه در زمان اجرای فعالیت، فرم آن را مشاهده نماید. بدین ترتیب، از قسمت Dynaforms فرم های هر فعالیت را ایجاد و طراحی می کنیم.
به ازای هر یک از فیلدهای روی فرم که کاربر با آن سروکار دارد، باید control مربوط به آن را از قسمت Web Controls در منوی سمت چپ صفحه فرم ساز ProcessMaker به صورت drag and drop به فرم اضافه کرد.

با اضافه کردن هر control بر روی فرم، از شما می خواهد که یک متغیر به آن اختصاص دهید. چنانچه متغیرها را در مرحله قبل و در قسمت Variables تعریف کرده باشید، می توانید متغیر مربوط به هر control را به آن اختصاص دهید و چنانچه قبلا متغیرها را تعریف نکرده باشید، می توانید در حین اضافه کردن هر control به فرم نیز این کار را انجام دهید.
فرم کامل این فرآیند که شامل همه مراحل آن است، در شکل زیر مشاهده می شود.

لازم به ذکر است که نیازی نیست همه افراد در فرآیند، همه قسمت های این فرم را مشاهده کنند. شما می توانید در فرم مربوط به هر فعالیت، فیلدهای موردنیاز شخص درگیر در همان فعالیت را قرار دهید.
مرحله 4 (تخصیص فرم ها به فعالیت ها):
در مدل فرآیند رسم شده، روی هر فعالیت (به غیر از فعالیت های script) راست کلیک کرده و با ورود به قسمت steps،  فرم مربوط به فعالیت را از منوی سمت چپ به صورت drag and drop به قسمت سمت راست بیندازید. بدین ترتیب، فرم شما به فعالیت متصل شده و با اجرای آن فعالیت، فرم برای کاربر نمایش داده می شود.

مرحله 5 (تعریف قوانین مسیریابی):
در مدل فرآیندی مورد بررسی، دو Exclusive Gateway وجود دارد که مربوط به تعیین مسیر فرآیند پس از قسمت های کارشناس عملیات بازرگانی و مدیر بازرگانی است. به عبارتی با توجه به انتخاب هر یک از این دو نفر، ادامه مسیر فرآیند تعیین می شود. با ورود به قسمت properties هر gateway می توان شرط مربوط به هر مسیر را ثبت کرد.
لازم به ذکر است که شرط ها بر مبنای متغیرهایی هستند که در فرم ها مقدار گرفته اند. مثلا در فرم مربوط به مدیر بازرگانی می تواند یک control از نوع Radio با متغیر ManagerOrder وجود داشته باشد که دارای دو گزینه "تایید" و "عدم تایید" است. زمانی gateway باید فرآیند را به سمت فعالیت های "تکمیل سفارش حمل با کشتی" و "ذخیره اطلاعات سفارش در سیستم" هدایت کند که متغیر ManagerOrder دارای مقدار مربوط به گزینه "تایید" باشد و زمانی باید جریان کار را به فعالیت "ثبت سفارش حمل با کشتی" انتقال دهد که این متغیر دارای مقدار مربوط به گزینه "عدم تایید" باشد. تمامی این شرط ها در قسمت properties آن gateway نوشته می شود.
مرحله 6 (تعیین ایفاکنندگان فرآیند):
در آخرین مرحله از پیاده سازی یک فرآیند، زمان تخصیص کاربر به فعالیت های آن است. لازم به ذکر است که به فعالیت ها کاربر اختصاص داده می شود، نه پست سازمانی. اتصال کاربران به پست های سازمانی مرتبط، در زمان تعریف چارت سازمانی انجام می شود.
جهت اختصاص کاربر به هر فعالیت باید روی آن فعالیت راست کلیک کرده و وارد قسمت Assignment Rules شوید. به غیر از فعالیت "اعلام ثبت نهایی سفارش حمل با کشتی" که از نوع Parallel Task است و می تواند به چند کاربر اختصاص داده شود، بقیه فعالیت ها را فقط به یک کاربر اختصاص می دهیم. همچنین لازم به ذکر است که به فعالیت های سیستمی (Script Task) کاربری اختصاص داده نمی شود، چراکه ساختار اسکریپتی دارند و توسط سیستم اجرا می شوند، نه کاربر.
بدین ترتیب، هر یک از فعالیت های مربوط به کارشناس بازرگانی، کارشناس عملیات بازرگانی، مدیر بازرگانی و کارشناس دریانوردی به کاربر مربوطه اختصاص داده و فعالیت "اعلام ثبت نهایی سفارش حمل با کشتی" را نیز به هر سه کاربر کارشناس بازرگانی، کارشناس عملیات بازرگانی و مدیر بازرگانی می دهیم.
تریگرها (triggers) و فعالیت های سیستمی:
همان طور که مشاهده می کنید، در مدل فرآیند دو فعالیت سیستمی جهت ذخیره سازی اطلاعات در database وجود دارد که پیش تر گفته شد هیچ کاربری به آن ها تعلق نمی گیرد. عملیات سایر فعالیت های فرآیند توسط کاربران انجام می شود و عملیات مربوط به فعالیت های سیستمی توسط کدها و تریگرها. به ازای هر فعالیت سیستمی، شما می توانید از قسمت Triggers یک تریگر ایجاد کنید و آن را به فعالیت مربوطه متصل نمایید. تریگرها شامل کدهایی هستند که به زبان PHP نوشته می شوند و می توانند در قسمت های مختلف فرآیند اجرا شوند. به هر یک از این دو فعالیت سیستمی یک تریگر متصل شده است که کدهای PHP اتصال به database و ذخیره سازی اطلاعات در آن ها نوشته شده است.
تریگرها عملیات back-end سیستم را اجرا می کنند. شما می توانید در قسمت های مختلف فرآیند، هر جا که نیاز به اجرای عملیاتی در back-end و در قبل و بعد از فعالیت ها داشتید، عملیات موردنظر را در قالب تریگر اجرا کنید.

با انجام مراحل بالا، شما می توانید فرآیند "اعلام سفارش حمل کالا با کشتی" را در ProcessMaker پیاده سازی کنید. لازمه پیاده سازی هر فرآیندی در پراسس میکر، تسلط بر انجام تک تک این مراحل است. لذا بعد از خواندن این مطلب، به تمرین و پیاده سازی این فرآیند در محیط پراسس میکر بپردازید و تک تک مراحل را به طور کامل انجام دهید. به خاطر داشته باشید که رمز تسلط بر پیاده سازی هر سیستمی بر روی هر محیط نرم افزاری، تمرین و کار بر روی آن نرم افزار است.
جهت راهنمایی بیش تر، فایل های مربوط به دیاگرام فرآیند و فرم کامل آن به انتهای مطلب ضمیمه شده است. سعی کنید این فرآیند را به طور کامل در پراسس میکر بسازید و آن را اجرا کنید. در صورت هر گونه سوال یا ابهامی می توانید آن را از طریق آدرس bpmsupport[at]parsbpms.com با اینجانب و سایر کارشناسان ما مطرح نمایید.

 

دیدگاه ها

هیچ دیدگاهی تا به این لحظه در این صفحه ثبت نشده است

دیدگاه خود را در مورد این مطلب بیان کنید.




تماس فوری
تماس فوری