Business process/Task

Business Rule Task

Business Rule Task

Business Rule Task digunakan untuk menghubungkan proses bisnis (BPMN) dengan Decision Table (DMN). Elemen ini memungkinkan proses menjalankan logika keputusan secara otomatis berdasarkan aturan yang telah didefinisikan dalam DMN.

Dengan kata lain, Business Rule Task akan mengeksekusi decision yang dirujuk (melalui Decision Reference), kemudian menyimpan hasilnya sebagai variabel yang dapat digunakan oleh task berikutnya.

Fungsi Utama

  • Mengintegrasikan proses dengan decision table DMN.
  • Menjalankan aturan keputusan untuk menentukan hasil berdasarkan input data.
  • Menghasilkan output variabel yang dapat dipakai oleh task lain dalam alur proses.
  • Memastikan keputusan yang kompleks tetap terstandarisasi dan reusable di seluruh proses bisnis.

Properties

DMN Properties

1. Decision Reference

Menentukan decision ID dari DMN yang akan dipanggil oleh Business Rule Task. Decision ID harus sesuai dengan decision id yang terdefinisi di file dmn. Contoh: creditApprovalDecision

DMN Definition

2. Tenant ID

Menentukan konteks tenant untuk eksekusi decision.

3. Binding

Menentukan versi DMN yang akan digunakan ketika Business Rule Task dijalankan untuk memastikan konsistensi antara versi decision table dan proses bisnis yang memanggilnya. Opsi:

  • latest → menggunakan versi DMN terbaru yang dideploy.
  • deployment → menggunakan DMN yang dideploy bersamaan dengan process definition.
  • versionTag → menggunakan DMN dengan tag versi tertentu.

4. Result Variable

Nama variabel tempat menyimpan hasil eksekusi DMN agar dapat digunakan oleh task lain

5. Map Decision Result

Menentukan cara hasil DMN akan dipetakan ke dalam variabel proses.

Map Decision ResultDeskripsiContoh Hasil Akhir (decisionResult)
singleResultMengembalikan satu objek hasil (key-value). Cocok untuk hasil tunggal dari satu rule.{ "approval": "YES" }
singleEntryMengembalikan satu nilai dari single output. Cocok jika DMN hanya memiliki satu kolom output."YES"
resultListMengembalikan list berisi objek dari seluruh rule yang match.[ { "approval": "YES" }, { "approval": "NO" } ]
collectEntriesMenggabungkan semua hasil output ke dalam list nilai sederhana (tanpa key).[ "YES", "NO" ]