✅ آموزش Define Expression و Activity Action در Bizagi
✅ بهینهسازی فرآیند درخواست سفر با قوانین کسبوکار
✅ مدیریت خودکار تصمیمات سازمانی در بیزاجی
فرآیندهای کسبوکار بر اساس قوانینی اجرا میشوند که تضمین میکنند همه چیز مطابق با استراتژیها، اهداف و ویژگیهای سازمان پیش میرود. این قوانین در بیزاجی (Bizagi) به ما امکان میدهند منطق تجاری و شرایط فرآیندی را کنترل کنیم و از بهینهسازی و خودکارسازی فرآیندها بهره ببریم.
📌 چرا باید قوانین کسبوکار را در Bizagi تنظیم کنیم؟
✔ کاهش خطاها و تأخیرها در اجرای فرآیندها
✔ بهبود سرعت تصمیمگیری بر اساس اطلاعات از پیش تعیینشده
✔ خودکارسازی فرآیند درخواست سفر و اعمال شرایط خاص سازمانی
در بیزاجی، دو روش برای تنظیم قوانین کسبوکار وجود دارد:
1️⃣ Define Expression – کنترل مسیرهای فرآیندی در Gatewayها
2️⃣ Activity Action – اجرای خودکار عملیات هنگام ورود، ذخیره یا خروج از یک فعالیت
در ادامه، هر دو روش را با مثال عملی در فرآیند درخواست سفر بررسی خواهیم کرد.
نوع اول: Define Expression
در حالت Define Expression، ما مسیر هایی که از یک gateway به چندین راه تقسیم میشود را کنترل میکنیم. یعنی در یک gateway تحت چه شرایطی مسیر مورد نظر از آن gateway انتخاب شود. مسیر هایی که برای آن قانون گذاری نکرده ایم به رنگ زرد است و زمانی که قانون گذاریم میکنیم از رنگ زرد درمیآید.
کنترل مسیر های فرآیند “درخواست سفر”
برسی مسیر های “تایید شد؟”: وارد فرآیند خود در بیزاجی استودیو شوید و به قسمت business rules بروید. گزینه define expressions را کلیک کنید. در gateway های چند مسیره به قسمت “تایید شد؟” میرویم و پیکان “بله” را کلیک میکنیم.
پنجره ای جدید باز میشود که ما تعیین کنیم که انتخاب yes بر اساس چه رفتاری انتخاب شود. گزینه based on the result of an expression را کلیک کنید. فلش کنار گزینه new را بزنید و قسمت standard را انتخاب کنید.
ما میخواهیم تعیین کنیم که اگر فیلد تایید درخواست سفر در موجودیت درخواست سفر مقدار true داشت، مسیر yes ادامه پیدا کند. Expression این قانون را در تصویر زیر پیاده سازی کردهایم. توجه داشته باشید نیازی به تایپ کردن XPath فیلدها نیست. تنها با کشیدن آن ها در پنجره Data Model در قسمت دلخواه XPath آن خودکار نوشته میشود.
اکنون تعیین قوانین مسیر “نه” در فرآیندمان است. بر روی آن کلیک کنید و در پنجره باز شده، گزینه else ار انتخاب میکنیم. یعنی اگر قانون جریان yes ما برقرار نبود، مسیر به صورت پیش فرض وارد جریان no میشود.
آنالیز مسیرهای “هتل یا پرواز نیاز است؟”: بر روی جریان yes کلیک کرده و در پنجره باز شده based on the result of an expression. فلش کنار گزینه new را بزنید و قسمت standard را انتخاب کنید. از آنجا که میخواهیم چندین قوانین داشته باشیم و اگر حتی یکی از آن دو عبارت معتبر باشد کل مسیر yes معتبر شود و ادامه مسیر را رود باید ما بین چند expression که خواهیم ساخت از or به جای and استفاده کنیم درنتیجه در پنجره manager expression در جلوی گزینه if آن را در any قرار میدهیم.
اگر فیلد هتل رزرو شود یا هواپیما رزرو شود به مقدار true باشد جریان yes ما معتبر میشود و ادامه میدهد. قوانین گفته شده به شکل زیر است:
برای جریان no نیز از حالت else استفاده میکنیم.
نوع دوم: activity action
در بیزاجی Activity Action یک قابلیت است که به ما امکان میدهد هنگام اجرای یک فعالیت (Activity) در یک فرآیند، یک عمل خاص را بهطور خودکار انجام دهیم. این عملیات میتواند شامل موارد زیر باشد:
- On Enter – زمانی که کاربر وارد یک فعالیت میشود، اجرا میشود.
- مثال: نمایش یک پیام خوشامدگویی یا مقداردهی اولیه به برخی فیلدها.
- On Save – هنگام ذخیره فرم در فعالیت اجرا میشود.
- مثال: بررسی اینکه تمام اطلاعات اجباری پر شدهاند یا نه.
- On Exit – هنگام خروج از فعالیت اجرا میشود.
- مثال: ارسال اعلان به مدیر در صورت تغییر اطلاعات درخواست.
در مثال های پایین ما از طریق activity action بسیاری از قوانین task های خود را تنظیم میکنیم.
تعیین زمان “تاریخ درخواست”
میخواهیم قوانینی برای تاریخ درخواست و متقاضی تعیین کنیم. در مرحله business rules، این بار بر روی activity actions کلیک میکنیم. به قسمت ثبت کردن درخواست سفر میرویم. در پنجره باز شده علامت + در قسمت on enter میزنیم.
سپس بر روی expression کلیک میکنیم. بر روی new بزنید و سپس اسمی برای آن تعیین کنید. بر روی کمان کلیک راست کنید و گزینه add expression بزنید. Ok را بزنید و بر روی expression جدید در صفحه دو بار کلیک کنید. اکنون در پنجره expression editor میخواهیم به دو فیلد از طریق XPath دسترسی پیدا کنیم. بر روی Data Model بزنید و در صفحه باز شده وارد موجودیت travel request شوید و فیلد “تاریخ درخواست” را انتخاب کنید.
اکنون ما XPath تاریخ درخواست سفر را ساختهایم.
اکنون بر جلوی XPath یک = بگذارید و بعد از آن بر روی گزینه ی Function کلیک کرده و Today را انتخاب کنید.
در خط بعدی دوباره به Data Model بروید و در موجودیت travel request گزینه “متقاضی” را انتخاب کنید. دوباره یک = بگذارید و در قسمت دیگر Functions را کلیک کنید. در category وارد case creator user شوید و در بین گزینه ها User Id of the case creator را انتخاب کنید.
توجه داشته باشید در آخر هر خط از ; استفاده کنید.
سپس در هر دو پنجره ok را بزنید تا تغییرا ذخیره شوند.
محاسبه “درصد تایید شده”
در این قسمت میخواهیم درصد تایید شده را محاسبه کنیم. برای این کار وارد تسک “صدور پیش پرداخت سفر” میشویم و دوباره پنجره edit expression را در قسمت on enter همانند مرحله قبل بالا میاوریم و اسم آن را “محاسبه درصد تایید شده” میگذاریم. اکنون وارد Data Model میشویم و از موجودیت travel request، فیلد “درصد تایید شده” را انتخاب میکنیم. جلوی آن علامت = میگذاریم و سپس دوباره وارد Data Model میشویم و اکنون فیلد “کل پیش پرداخت” را انتخاب میکنیم. برای بدست آوردن درصد، ما آن را در 100 ضرب و بعد بر “کل درخواست شده” که دوباره با Data Model به آن دسترسی داریم، تقسیم میکنیم.
محاسبه “کل درخواست شده”
اکنون میخواهیم کاری کنیم که “کل درخواست شده” (کل هزینه درخواست شده)، به صورت خودکار محاسبه شود. وارد تسک “تایید درخواست سفر” شوید. و همانند دفعات قبل در قسمت on enter یک قانون جدید بگذارید و اسم آن را محاسبه کل درخواست شده بگذارید. در کمانه، expression جدید را همانند دفعات قبل بسازید و در صفحه جدید وارد Data Model شوید و فیلد کل “کل درخواست شده” را انتخاب کنید. جلوی آن یک = بگذارید.
سپس بعد از آن وارد Function شوید و کتگوری Data Navigation را انتخاب کنید و سپس تابع sum را انتخاب کنید.
اکنون در صفحه اصلی ما یک sum میبینیم که باید درون آن یک XPath تعریف کنیم به این معنی که ما میخواهیم چه عناصر کالکشنی باهم جمع شوند. در موقعیت ما، هدف جمع مقادیر در کالکشن مخارج است در نتیجه ما XPath را انتخاب کرده و Data Model را انتخاب کلیک میکنیم. سپس مسیر عکس زیر را انتخاب میکنیم.
توجه داشته باشید که داخل پرانتز sum نباید <> وجود داشته باشد و بیرون عبارت فقط باید یک <> وجود داشته باشد.
expression را ذخیره کنید و بیرون بیایید.
محاسبه کل پیش پرداخت
دوباره وارد تسک “تایید سفر” میشویم و در قسمت On Enter یک Expression جدید با نام محاسبه کل پیش پرداخت میسازیم و در Data Model فیلد کل درخواست شده را انتخاب میکنیم و کنار آن = میگذاریم و دوباره از تابع sum استفاده میکنیم و در داخل XPath، کالکشن مخارج را انتخاب میکنیم و وقتی انتخاب شد دکمه Add Filter در پایین علامت مخارج را انتخاب میکنیم.
در صفحه جدید باید تعریف کنیم که فیلد “تایید شده؟” اگر مقدار True داشت، کالکشن مخارج انتخاب شود. عکس زیر این فیلتر را تعیین میکند.
سپس بعد از فیلتر گذاری، فیلد مقدار را انتخاب میکنیم و بیرون میاییم. Expression در آخر باید به شکل زیر باشد.
ساخت ایمیل رد درخواست خودکار
در مدل فرآیند وارد تسک “اطلاع عدم پذیرش” کلیک کرده و در قسمت On Enter با زدن گزینه + این بار قسمت e-Mail را انتخاب میکنیم.
در پنجره ی جدید گزینه to را انتخاب کنید و وارد موجودیت فرآیند Travel Request شوید و موجودیت متقاضی را پیدا کنید و در آن email را انتخاب کنید.
در قسمت subject عنوان را مینویسیم با یک case number که پویا است و بر اساس پرونده ای است که شکل میگیرد.
در نوشته زیر ما نام متقاضی را به سبک متغیر گذاشته ایم. همچنین فیلد توضیح که ناظر از قبل نوشته است را هم به صورت متغیر در متن گذاشته ایم. توجه داشته باشید که اگر فیلدی که متغیر است را میخواهید به متن اضافه کنید بر روی XPath Field کلیکک کنید و فیلد مورد نظر خود را پیدا کنید.
apply و save کنید و بیرون بیایید. اکنون ما تمام قوانین کسب و کار فرآیند”درخواست سفر” را پیکربندی کردهایم. در مرحله بعد وارد قسمت تخصیص کار فرآیندمان میشویم.
🔹 در این راهنما یاد گرفتیم که چگونه قوانین کسب و کار را در بیزاجی برای فرآیند “درخواست سفر” تنظیم کنیم.
🔹 با استفاده از Define Expression و Activity Action، میتوان فرآیندهای سازمانی را بهینه و خودکارسازی کرد.
🔹 برای آموزش تخصیص فعالیت ها در فرآیند درخواست سفر، اینجا کلیک کنید