آموزش 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 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 (درصد تخفیف)

۴. تعریف قوانین تصمیم‌گیری

customerTypepurchaseAmountdiscount
VIP> 100020%
VIP<= 100010%
عادی> 10005%
عادی<= 10000%

۵. ذخیره و انتشار مدل

پس از تکمیل جدول تصمیم، روی 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، سازمان‌ها می‌توانند فرایندهای تصمیم‌گیری را بهینه، شفاف و خودکار کنند. این فناوری به کسب‌وکارها کمک می‌کند تا قوانین تصمیم‌گیری را به‌راحتی تغییر داده و بدون نیاز به توسعه‌دهندگان، در فرآیندهای خود اعمال کنند.