Menghentikan
Anda dapat menggunakan fungsi Hentikan untuk menghentikan eksekusi mesin aturan saat ini. Fungsi Halt mengambil satu parameter jenis Boolean
. Jika Anda menentukan nilai untuk parameter sebagai true
, mesin aturan juga menghapus agenda yang berisi aturan kandidat yang tertunda.
Metode Policy.Execute pada dasarnya adalah pembungkus di sekitar metode RuleEngine.Execute . Ini memiliki kode yang mirip dengan kode berikut:
RuleEngine.Assert(facts);
RuleEngine.Execute();
RuleEngine.Retract(facts);
Jika Anda menggunakan metode Policy.Execute untuk menjalankan kebijakan, mesin aturan mengembalikan kontrol ke metode Policy.Execute saat fungsi Halt dijalankan. Metode Policy.Execute mencabut fakta dan mengembalikan kontrol ke pemanggil. Oleh karena itu, eksekusi kebijakan yang dihentikan tidak dapat dilanjutkan dalam kasus ini. Hal yang sama terjadi ketika Anda menggunakan bentuk Aturan Panggilan untuk memanggil kebijakan.
Namun, jika Anda menggunakan metode RuleEngine.Execute secara langsung untuk menjalankan kebijakan, Anda dapat melanjutkan eksekusi kebijakan yang dihentikan dengan aturan tertunda berikutnya yang diaktifkan hanya dengan memanggil RuleEngine.Execute lagi (asalkan Anda tidak mencabut objek apa pun yang diperlukan di antara dua panggilan). Kode sampel untuk melanjutkan eksekusi kebijakan yang dihentikan adalah sebagai berikut:
//assert facts into working memory of the rule engine instance
RuleEngine.Assert(facts);
//execute the policy
RuleEngine.Execute();
//policy invokes the Halt method when executing actions.
//control is returned to here when the Halt method is invoked
//when engine is halted do the following
//Add your code here
//To resume the halted rule engine execution
RuleEngine.Execute();
//retract or remove facts frm the working memory of the rule engine
RuleEngine.Retract(facts);
Perhatikan bahwa metode Policy.Execute menyimpan instans mesin aturan untuk performa yang lebih baik. Saat Anda menggunakan metode RuleEngine.Execute secara langsung, instans mesin aturan tidak di-cache.