Drools - Sintaks Aturan
Seperti yang Anda lihat, .drl (file aturan) memiliki sintaksnya sendiri, mari kita bahas beberapa bagian dari sintaks Aturan dalam bab ini.
Ketentuan dalam Aturan
Sebuah aturan dapat berisi banyak kondisi dan pola seperti -
- Akun (saldo == 200)
- Pelanggan (name == “Vivek”)
Kondisi di atas memeriksa apakah saldo Rekening 200 atau nama Nasabah adalah "Vivek".
Variabel dalam Aturan
Nama variabel di Drools dimulai dengan simbol Dollar ($).
- $ account - Akun ()
- $ account adalah variabel untuk kelas Account ()
Drools dapat bekerja dengan semua tipe Java asli dan bahkan Enum.
Komentar di Rules
Karakter khusus, # atau //, dapat digunakan untuk menandai komentar satu baris.
Untuk komentar banyak baris, gunakan format berikut:
/*
Another line
.........
.........
*/
Variabel Global
Variabel global adalah variabel yang ditugaskan ke sesi. Mereka dapat digunakan untuk berbagai alasan sebagai berikut -
Untuk parameter masukan (misalnya, nilai konstan yang dapat disesuaikan dari sesi ke sesi).
Untuk parameter keluaran (misalnya, pelaporan — aturan dapat menulis beberapa pesan ke variabel laporan global).
Titik masuk untuk layanan seperti logging, yang dapat digunakan dalam aturan.
Fungsi dalam Aturan
Fungsi adalah fitur kenyamanan. Mereka dapat digunakan dalam kondisi dan konsekuensi. Fungsi mewakili alternatif dari kelas utilitas / pembantu. Sebagai contoh,
function double calculateSquare (double value) {
return value * value;
}
Dialek
Dialek menentukan sintaks yang digunakan dalam ekspresi kode apa pun yang berada dalam kondisi atau konsekuensi. Ini mencakup nilai balik, evals, evals inline, predikat, ekspresi arti-penting, konsekuensi, dan sebagainya. Nilai defaultnya adalahJava. Drools saat ini mendukung satu dialek lagi yang disebutMVEL. Dialek default dapat ditentukan pada tingkat paket sebagai berikut -
package org.mycompany.somePackage
dialect "mvel"
MVEL Dialek
MVEL adalah bahasa ekspresi untuk aplikasi berbasis Java. Ini mendukung akses lapangan dan metode / pengambil. Ini didasarkan pada sintaks Java.
Salience
Salience adalah fitur yang sangat penting dari Rule Syntax. Salience digunakan oleh strategi resolusi konflik untuk memutuskan aturan mana yang akan diaktifkan terlebih dahulu. Secara default, ini adalah kriteria utama.
Kita bisa menggunakan arti-penting untuk menentukan urutan aturan pengaktifan. Salience memiliki satu atribut, yang mengambil ekspresi apa pun yang mengembalikan sejumlah tipe int (bilangan positif dan negatif valid). Semakin tinggi nilainya, semakin besar kemungkinan aturan akan diterapkan oleh strategi resolusi konflik.
salience ($account.balance * 5)
Nilai arti-penting default adalah 0. Kita harus mengingat hal ini saat menetapkan nilai arti-penting ke beberapa aturan saja.
Ada banyak fitur / parameter lain dalam Sintaks Aturan, tetapi kami hanya membahas yang penting di sini.
Kata Kunci Konsekuensi Aturan
Kata Kunci Konsekuensi Aturan adalah kata kunci yang digunakan dalam "then"Bagian dari aturan.
Modify - Atribut fakta dapat dimodifikasi di then bagian dari Aturan.
Insert - Berdasarkan beberapa kondisi, jika benar, seseorang dapat memasukkan fakta baru ke dalam sesi Mesin Aturan saat ini.
Retract - Jika kondisi tertentu benar dalam sebuah Aturan dan Anda tidak ingin melakukan hal lain atas fakta tersebut, Anda dapat menarik fakta tersebut dari Mesin Aturan.
Note- Ini dianggap praktik yang sangat buruk untuk memiliki logika kondisional (pernyataan if) dalam konsekuensi aturan. Seringkali, aturan baru harus dibuat.