Menegaskan kembali
Untuk menegaskan ulang berarti memanggil fungsi Assert pada objek yang sudah ada di memori kerja mesin. Perintah penetapan ulang setara dengan mengeluarkan perintah pencabutan untuk objek, diikuti dengan perintah pernyataan.
Objek pertama kali dicabut dan tindakan apa pun pada agenda untuk aturan yang menggunakan objek (dalam predikat atau tindakan) dihapus. Objek kemudian ditegaskan kembali ke memori kerja dan dievaluasi sebagai objek apa pun yang baru ditegaskan. Ini berarti bahwa setiap aturan yang menggunakan objek dalam predikat dievaluasi kembali dan tindakannya ditambahkan ke agenda yang sesuai. Setiap aturan yang sebelumnya dievaluasi ke true dan hanya menggunakan objek dalam tindakannya akan menambahkan kembali tindakan mereka ke agenda.
Ketika TypedXmlDocument (TXD) tingkat atas dipastikan kembali, TXDanak yang dibuat ketika TXD tingkat atas awalnya dinyatakan memiliki perilaku yang berbeda tergantung pada status TXDanak. Dalam kasus simpul anak baru atau simpul anak yang kotor, yang berarti bahwa setidaknya salah satu bidangnya telah diubah dalam kebijakan dengan menggunakan tindakan aturan, tindakan tegas, atau penegasan ulang dilakukan pada simpul anak. Simpul anak yang ada yang tidak kotor tetap ada dalam memori kerja. Contoh berikut adalah skenario yang disederhanakan yang menjelaskan perilaku simpul anak ketika simpul induknya ditetapkan kembali.
Asumsikan ada tiga TXDyang saat ini berada dalam memori kerja: P, C1, C2, dan C3. P adalah TXD tingkat atas, node induk; setiap simpul anak berisi bidang x.
P
C1 (C1.x = 1)
C2 (C2.x = 1)
C3 (C3.x = 1)
Selanjutnya, asumsikan operasi berikut telah dilakukan sebagai akibat dari tindakan aturan:
Nilai bidang (x) untuk C2 diperbarui.
C3 dihapus dengan menggunakan kode pengguna.
Simpul anak tambahan, D, ditambahkan ke P dengan menggunakan kode pengguna.
Catatan
Simpul tidak akan ditandai kotor oleh Mesin Aturan Bisnis dari operasi, yang mesinnya tidak menyadarinya. Misalnya, menambahkan, menghapus, atau memodifikasi simpul secara terprogram dalam aplikasi eksternal.
Representasi baru objek dalam memori kerja adalah sebagai berikut.
P
C1 (C1.x = 1)
C2 (C2.x = 0)
D
Sekarang, tegaskan P. Poin-poin berikut merangkum perilaku simpul anak:
Node C2 dipastikan ulang, karena telah menjadi kotor setelah bidangnya diperbarui.
Simpul C3 dicabut dari memori kerja.
Simpul D dinyatakan ke dalam memori kerja.
Simpul C1 tetap tidak berubah dalam memori kerja, karena tidak diperbarui sebelum P dipertahankan kembali.
Jika Reassert dikeluarkan pada TypedDataRow, baris tersebut dicabut lalu ditegaskan ke dalam memori yang berfungsi. Jika Reassert dikeluarkan pada TypedDataTable, semua TypedDataRows terkait dicabut lalu ditegaskan.
Semua TypedDataRowyang diambil melalui DataConnection dicabut. Semua predikat yang menggunakan DataConnection kemudian dievaluasi kembali, menyebabkan DataConnection dikueri ulang untuk membuat TypedDataRowyang relevan.