آموزش DMN بر بستر نرمافزار Flowable
مقدمه
در دنیای مدیریت فرآیندهای کسبوکار (BPM)، تصمیمگیری نقش کلیدی در اتوماسیون فرآیندها ایفا میکند. یکی از استانداردهای مطرح در این زمینه DMN (Decision Model and Notation) است که امکان مدلسازی، مدیریت و اجرای تصمیمات را فراهم میآورد. یکی از قدرتمندترین موتورهای متنباز برای مدیریت فرآیندها و اجرای DMN، نرمافزار Flowable است. در این مقاله، نحوهی پیادهسازی و استفاده از DMN در بستر Flowable را بهصورت گامبهگام بررسی خواهیم کرد.
DMN چیست و چه کاربردی دارد؟
DMN یک استاندارد برای مدلسازی تصمیمات در فرآیندهای کسبوکار است که توسط Object Management Group (OMG) ارائه شده است. این استاندارد با ارائهی جداول تصمیمگیری و منطق شرطی، به مدیران و توسعهدهندگان کمک میکند تا تصمیمات پیچیدهی سازمانی را ساختارمند و خودکار کنند. مزایای اصلی DMN عبارتند از:
- افزایش خوانایی تصمیمات برای تحلیلگران کسبوکار و توسعهدهندگان.
- سازگاری با BPMN برای بهبود اتوماسیون فرآیندها.
- امکان پیادهسازی و اجرا در موتورهای تصمیمگیری مانند Flowable.
- کاهش وابستگی به توسعهدهندگان و افزایش انعطافپذیری در تغییر قوانین کسبوکار.
Flowable چیست و چرا از آن استفاده کنیم؟
Flowable یک موتور متنباز BPM و Case Management است که امکان اجرای BPMN، CMMN و DMN را فراهم میکند. این نرمافزار دارای ویژگیهای زیر است:
- سبک، قدرتمند و انعطافپذیر
- پشتیبانی از استانداردهای BPMN، DMN و CMMN
- امکان ادغام با سایر سیستمها از طریق APIهای REST و Java
- مناسب برای اتوماسیون فرآیندها در سازمانها و شرکتهای مختلف
به کمک Flowable میتوان تصمیمات پیچیدهی سازمانی را در DMN Engine اجرا کرد و آنها را بهعنوان بخشی از فرآیندهای کسبوکار بهکار گرفت.
نصب و راهاندازی Flowable برای استفاده از DMN
برای نصب نرم افزار Flowable از مقاله قبلی ما استفاده کنید.
نصب و راه اندازی Flowable
راهاندازی Flowable UI
برای مدیریت بصری فرآیندها و تصمیمات، میتوان از Flowable Modeler استفاده کرد. پس از اجرای سرور، با مراجعه به http://localhost:8080/flowable-ui
میتوان وارد محیط مدیریتی شد.
ساخت مدل DMN در Flowable
پس از راهاندازی Flowable، نوبت به ایجاد یک مدل DMN میرسد. مراحل زیر را دنبال کنید:
۱. ورود به Flowable Modeler
به http://localhost:8080/flowable-ui/modeler/
بروید و با نام کاربری admin
و رمز عبور test
وارد شوید.
۲. ایجاد یک مدل DMN جدید
- در داشبورد، گزینه New Model را انتخاب کنید.
- نوع مدل را Decision Table قرار دهید.
- یک نام برای مدل انتخاب کنید (مثلاً
DiscountDecision
).
۳. تعریف ورودیها و خروجیها
- ورودی اول:
customerType
(نوع مشتری: عادی، VIP) - ورودی دوم:
purchaseAmount
(مبلغ خرید) - خروجی:
discount
(درصد تخفیف)
۴. تعریف قوانین تصمیمگیری
customerType | purchaseAmount | discount |
---|---|---|
VIP | > 1000 | 20% |
VIP | <= 1000 | 10% |
عادی | > 1000 | 5% |
عادی | <= 1000 | 0% |
۵. ذخیره و انتشار مدل
پس از تکمیل جدول تصمیم، روی Save و سپس Deploy کلیک کنید تا مدل آمادهی استفاده شود.
اجرای مدل DMN در Flowable Engine
برای اجرای DMN از طریق Flowable API، میتوان از REST API یا Java API استفاده کرد.
اجرای DMN با REST API
curl -X POST "http://localhost:8080/flowable-rest/dmn-api/decision-tables/execute" \
-H "Content-Type: application/json" \
-d '{
"decisionKey": "DiscountDecision",
"inputVariables": {
"customerType": "VIP",
"purchaseAmount": 1500
}
}'
اجرای DMN در جاوا
DecisionService decisionService = processEngine.getDecisionService();
Map<String, Object> variables = new HashMap<>();
variables.put("customerType", "VIP");
variables.put("purchaseAmount", 1500);
DmnDecisionTableResult result = decisionService.createExecuteDecisionBuilder()
.decisionKey("DiscountDecision")
.variables(variables)
.execute();
System.out.println("Discount: " + result.getSingleResult().getEntry("discount"));
جمعبندی
در این مقاله، نحوهی پیادهسازی و اجرای DMN بر بستر Flowable را بررسی کردیم. با استفاده از Flowable DMN Engine، سازمانها میتوانند فرایندهای تصمیمگیری را بهینه، شفاف و خودکار کنند. این فناوری به کسبوکارها کمک میکند تا قوانین تصمیمگیری را بهراحتی تغییر داده و بدون نیاز به توسعهدهندگان، در فرآیندهای خود اعمال کنند.