Agenda dan Prioritas
Untuk memahami bagaimana mesin Aturan Bisnis mengevaluasi aturan dan menjalankan tindakan, Anda perlu memahami konsep agenda dan prioritas.
Agenda
Agenda adalah jadwal yang digunakan oleh mesin untuk mengantrekan aturan untuk eksekusi. Agenda ini ada untuk instans mesin, dan bertindak berdasarkan satu kebijakan, bukan pada serangkaian kebijakan. Ketika fakta dinyatakan dalam memori kerja dan kondisi aturan tertentu terpenuhi, aturan ditempatkan pada agenda dan dijalankan sesuai dengan prioritas. Tindakan aturan dijalankan secara berurutan dari atas ke bawah, lalu tindakan aturan berikutnya pada agenda dijalankan.
Tindakan milik aturan diperlakukan sebagai blok, sehingga semua tindakan dijalankan sebelum melanjutkan ke aturan berikutnya. Semua tindakan dalam blok aturan akan dijalankan terlepas dari tindakan lain di blok tersebut. Untuk informasi selengkapnya tentang pernyataan, lihat Fungsi Kontrol Mesin.
Contoh berikut menunjukkan cara kerja agenda.
Aturan1
IF
Fact1 == 1
THEN
Action1
Action2
Aturan2
IF
Fact1 > 0
THEN
Action3
Action4
Kami menegaskan fakta1, yang memiliki nilai 1, ke dalam mesin. Karena kondisi Aturan 1 dan Aturan 2 terpenuhi, kedua aturan dipindahkan ke agenda untuk eksekusi tindakan mereka.
Memori kerja | Agenda |
---|---|
Fact1 (nilai=1) | Aturan1 - Tindakan1 - Tindakan2 Aturan2 - Action3 - Tindakan4 |
Prioritas
Prioritas untuk eksekusi ditetapkan pada setiap aturan individual, dengan prioritas default 0 untuk semua aturan. Prioritas dapat berkisar di salah satu sisi 0, dengan angka yang lebih besar memiliki prioritas yang lebih tinggi. Tindakan dijalankan secara berurutan dari prioritas tertinggi hingga prioritas terendah.
Contoh berikut menunjukkan bagaimana prioritas memengaruhi urutan eksekusi untuk aturan.
Rule1 (prioritas = 0)
IF
Fact1 == 1
THEN
Discount = 10%
Rule2 (prioritas = 10)
IF
Fact1 > 0
THEN
Discount = 15%
Kondisi untuk kedua aturan telah terpenuhi, tetapi Rule2 dijalankan terlebih dahulu karena memiliki prioritas yang lebih tinggi. Diskon akhir adalah 10 persen, karena merupakan hasil dari tindakan yang dijalankan untuk Rule1, seperti yang ditunjukkan pada tabel berikut.
Memori kerja | Agenda |
---|---|
Fact1 (nilai=1) | Aturan2 Diskon = 15% Aturan1 Diskon = 10% |