Bagikan melalui


Efek Samping Tindakan Aturan

Jika eksekusi tindakan memengaruhi status objek atau istilah yang digunakan dalam kondisi, tindakan tersebut dianggap memiliki efek samping pada objek.

Asumsikan kita memiliki aturan berikut.

Aturan 1

IF OrderForm.ItemCount > 100   
THEN OrderForm.Status = "important"  

Aturan 2

IF OrderList.IsFromMember = true   
THEN OrderForm.UpdateStatus("important")  

Dalam hal ini, OrderForm.UpdateStatus dikatakan memiliki efek samping pada OrderForm.Status. Ini tidak berarti bahwa OrderForm.UpdateStatus memiliki efek samping; sebaliknya, OrderForm.Status berpotensi dipengaruhi oleh satu atau beberapa tindakan.

Secara default, properti SideEffects untuk anggota kelas .NET adalah benar, yang mencegah mesin aturan membuat cache anggota dengan efek samping. Dalam contoh kami, mesin aturan tidak menyimpan OrderForm.Status dalam memori kerja; sebaliknya mendapatkan nilai orderForm.Status terbaru setiap kali Aturan 1 dievaluasi. Jika properti SideEffects diatur ke false, mesin aturan menyimpan cache nilai pertama kali mengevaluasi OrderForm.Status, tetapi untuk evaluasi nanti (dalam skenario rantai maju), ia menggunakan nilai cache.

Saat ini Komposer Aturan Bisnis tidak menyediakan cara bagi pengguna untuk memodifikasi SideEffects, namun, Anda hanya dapat mengatur properti SideEffects secara terprogram melalui Kerangka Kerja Aturan Bisnis. Anda mengaturnya saat mengikat, menggunakan kelas ClassMemberBinding untuk menentukan metode objek, properti, dan bidang yang digunakan dalam kondisi dan tindakan aturan. ClassMemberBinding memiliki properti, SideEffects, yang berisi nilai Boolean yang menunjukkan apakah mengakses anggota mengubah nilainya.

Lihat juga

Mesin Aturan