توضیحات فرآیند
مدل BPMN در ProcessMaker برای فرم «درخواست درخواست مرخصی» به شکل ذیل عمل میکند:
مدل BPMN فرآیند «درخواست مرخصی» با یک Start Event از نوع «فرم شروع» شامل فیلدهای نام، جانشین، تاریخ شروع/پایان، نوع مرخصی (ساعتی/روزانه) و ساعت زمانی آغاز میشود. سپس یک User Task به نام «بررسی توسط مدیر واحد» قرار دارد که درخواست را تأیید یا رد میکند. پس از آن یک Exclusive Gateway (XOR) بر اساس تصمیم مدیر، مسیر «تأیید» یا «رد» را فعال میکند. مشابه همین مسیر برای مدیرعامل نیز جهت تائید وجود دارد، که نهایتاً در صورت تائید درخواست به شخص درخواست کننده، اعلامیه تائید مرخصی ارسال می شود و در صورت عدم تائید درخواست، مسیر فرآیند وارد یک Parallel Gateway شده که اقدام به اطلاع عدم تائید درخواست به مدیر واحد و شخص درخواست کننده می کند. در نهایت End Event موفق، دادهها را در جدول مرخصی ذخیره کرده و وضعیت را به روز میکند. تمام مسیرها دارای Condition Expression بر اساس متغیرهایی مانند {manager_approved}, {balance_ok} هستند.
مدل فرآیند مرخصی
قوانین کسب و کار فرآیند
Exclusive Gateway (XOR) – گره تصمیم انحصاری: پس از Task «بررسی مدیر مستقیم» و «بررسی مدیرعامل» قرار دارد. اگر متغیر manager_approved == true، مسیر «تأیید» فعال شده و در غیر این صورت مسیر «رد» فعال میگردد. فقط یکی از دو خروجی اجرا میشود. هیچ مسیر پیشفرضی تعریف نشده تا در صورت عدم تطابق، خطای زمان اجرا رخ دهد.
Parallel Gateway (AND) – گره موازی: در صورت عدم تائید مدیرعامل در مدل مذکور، درخواست به صورت موازی بین درخواست کننده و مدیر واحد توزیع می شود.
طراحی فرم مرخصی
فرم «ثبت درخواست مرخصی» به صورت داینامیک در Process Maker با قابلیت اتصال به دیتابیس کارکنان طراحی شده است. فیلد «نام و نام خانوادگی» به طور خودکار از متغیر جلسه (Session) مقداردهی شده و فقط خواندنی است. فیلد «نام جانشین» از نوع Dropdown با منبع دادهای از جدول کاربران سازمان (به جز خود شخص) و با قابلیت جستجو (Searchable) میباشد. دو فیلد «تاریخ شروع» و «تاریخ اتمام» از نوع DatePicker شمسی با مقدار پیشفرض (امروز) و اعتبارسنجی «تاریخ پایان نباید از تاریخ شروع کوچکتر باشد». فیلد «ساعت زمانی» فقط در صورت انتخاب نوع مرخصی «ساعتی» فعال میشود (کنترل شرطی با جاوااسکریپت) و نوع آن Time Picker با گام ۳۰ دقیقه است. فیلد «نوع مرخصی» از نوع Radio Button با دو گزینه «ساعتی» و «روزانه» که با تغییر آن، محاسبه خودکار تعداد روز/ساعت انجام میشود. دکمه «ثبت درخواست» پس از اعتبارسنجی کامل (تکمیل جانشین، تاریخها، و ساعت در صورت نیاز) فعال میشود. یک فیلد پنهان به نام request_date زمان ثبت درخواست را از سرور دریافت میکند. همچنین یک قانون تجاری (Business Rule) برای بررسی عدم تداخل مرخصی با مرخصیهای دیگر (با کوئری به دیتابیس) در سمت سرور پیادهسازی شده است.




