Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku pada: Azure Logic Apps (Standar)
Panduan ini menunjukkan cara menguji ruleset dengan menggunakan Microsoft Rules Composer dan menyertakan contoh output untuk pengujian aturan.
Mengapa aturan pengujian bertahap?
Saat Anda membangun set aturan untuk mengintegrasikan logika bisnis dengan alur kerja aplikasi logika Standar Anda, uji aturan Anda secara bertahap, atau setidaknya sebelum Anda menggunakan aturan di aplikasi Anda. Dengan demikian, Anda dapat mengonfirmasi bahwa setiap aturan berfungsi seperti yang Anda harapkan, atau menemukan dan memperbaiki masalah lebih cepat ketika aturan Anda kurang kompleks dan lebih mudah dipelajari.
Jika Anda menunggu untuk menguji semua aturan Anda pada saat yang sama, terutama ketika aturan Anda panjang atau kompleks, Anda mungkin mendapatkan lebih banyak kesalahan dari yang diharapkan, yang membutuhkan waktu lebih lama untuk diatasi dan lebih sulit untuk di-debug.
Prasyarat
Unduh dan instal Microsoft Rules Composer.
File XML yang berisi kumpulan aturan yang ingin Anda kerjakan dan fakta yang ingin Anda uji.
Untuk menambahkan fakta, tentukan nilainya dalam file XML yang Anda referensikan dari jendela Pilih Fakta yang terbuka setelah Anda memilih Aturan Pengujian dalam langkah-langkah berikut. Anda mungkin ingin membuat pembuat fakta untuk menambahkan fakta .NET. Untuk informasi selengkapnya, lihat Membangun pembuat dan pengambil fakta.
Menguji versi aturan
Buka Microsoft Rules Composer. Di jendela RuleSet Explorer , pilih versi ruleset yang ingin Anda uji, yang membuka jendela informasi versi.
Dari menu pintasan versi ruleset, pilih Uji Ruleset.
Dalam kotak Pilih Fakta yang muncul, jendela atas memperlihatkan jenis fakta yang diacu oleh aturan-aturan.
Untuk menambahkan instans fakta, di bawah Dokumen XML atau Kelas .NET, pilih jenis fakta yang sesuai, lalu pilih Tambahkan Instans.
Catatan
Jika Anda memasukkan kelas turunan ke dalam aturan, tetapi aturan ditulis langsung terhadap anggota kelas dasar, maka yang dinyatakan adalah instans kelas dasar, dan kondisi dievaluasi terhadap instans kelas dasar.
Untuk menghapus instans fakta, pilih jenis fakta yang sesuai, lalu pilih Hapus Instans.
Untuk menambahkan pembuat fakta yang Anda buat, di jendela Pembuat Fakta, pilih Tambahkan.
Setelah siap, pilih Uji.
Jendela Output menunjukkan output jejak pengujian ruleset.
Buka menu pintasan untuk jendela output pengujian, dan pilih opsi untuk menyimpan, menghapus, memilih, atau menyalin teks output sehingga Anda dapat meninjau hasilnya.
Tabel berikut ini menjelaskan perintah jendela Output yang bisa Anda gunakan untuk bekerja dengan teks output:
Tugas Perintah pintasan Hapus semua teks dari jendela Output. Hapus Semua Salin teks yang dipilih di jendela Output ke clipboard. Menyalin Pilih semua teks di jendela Output. Pilih Semua Simpan teks yang terkandung dalam jendela Output ke file tertentu. Simpan sebagai Berkas
Output pengujian pelacakan set aturan
Bagian ini menjelaskan informasi pelacakan dan aktivitas yang disertakan dengan trace saat Anda menguji set aturan menggunakan Microsoft Rules Composer. Output pelacakan dapat mencakup jenis pernyataan berikut:
- Aktivitas informasi
- Evaluasi kondisi
- Pembaruan agenda
- Aturan diaktifkan
Aktivitas Berbasis Fakta
Aktivitas ini menunjukkan perubahan pada fakta dalam memori kerja mesin. Contoh berikut menunjukkan contoh entri aktivitas fakta:
FACT ACTIVITY 3/16/2023 9:50:28 AM
Rule Engine Instance Identifier: 9effe3f9-d3ad-4125-99fa-56bb379188f7
Ruleset Name: LoanProcessing
Operation: Assert
Object Type: MyTest.test
Object Instance Identifier: 872
Tabel berikut ini menjelaskan informasi dalam entri ini:
| Barang | Deskripsi |
|---|---|
| Pengidentifikasi Instans Mesin Aturan | Pengidentifikasi unik untuk instansi RuleEngine yang menyediakan lingkungan eksekusi untuk penyalaan aturan. |
| Nama Ruleset | Nama aturan. |
| Operasi | Jenis operasi berikut dapat terjadi dalam aktivitas fakta: - Penegasan: Fakta ditambahkan ke memori kerja. Catatan: Jika jenis untuk fakta yang ditegaskan tidak cocok dengan jenis apa pun yang digunakan dalam ruleset, fungsi Assert menunjukkan kesalahan "Assert – Fact Unrecognized". - Pembaruan: Aturan memperbarui fakta, yang kemudian harus dimasukkan kembali ke dalam mesin untuk evaluasi ulang, berdasarkan data dan status baru. - Tarik Kembali: Fakta dihapus dari memori kerja. |
| Jenis Objek | Jenis fakta untuk aktivitas tertentu: - TypedXmlDocument Pernyataan ditampilkan untuk instans TypedXmlDocument induk dan anak. |
| Pengidentifikasi Instans Objek | ID instans unik untuk referensi fakta. |
Evaluasi kondisi
Aktivitas ini menunjukkan hasil dari mengevaluasi predikat individu. Contoh berikut menunjukkan entri evaluasi kondisi sampel:
CONDITION EVALUATION TEST (MATCH) 1/07/2023 5:33:13 PM
Rule Engine Instance Identifier: f1dd3ff2-b4a8-4fe1-8d46-4d9b3e2502d3
Ruleset Name: LoanProcessing
Test Expression: TypedXmlDocument:Microsoft.Samples.BizTalk.LoansProcessor.Case:Root.EmploymentType/TimeInMonths >= 18
Left Operand Value: 31
Right Operand Value: 18
Test Result: True
Tabel berikut ini menjelaskan informasi dalam entri ini:
| Barang | Deskripsi |
|---|---|
| Ekspresi Uji | Ekspresi unary atau biner sederhana dalam aturan. |
| Nilai Operand Kiri | Nilai istilah di sisi kiri ekspresi. |
| Nilai Operand Kanan | Nilai istilah di sisi kanan ekspresi. |
| Hasil Pengujian | Hasil dari evaluasi, yaitu True atau False. |
Pembaruan agenda
Aktivitas ini menunjukkan aturan yang ditambahkan ke agenda mesin aturan untuk eksekusi berikutnya. Contoh berikut menunjukkan contoh entri pembaruan agenda:
AGENDA UPDATE 1/07/2023 5:33:13 PM
Rule Engine Instance Identifier: f1dd3ff2-b4a8-4fe1-8d46-4d9b3e2502d3
Ruleset Name: LoanProcessing
Operation: Add
Rule Name: Employment Status Rule
Conflict Resolution Criteria: 0
Tabel berikut ini menjelaskan informasi dalam entri ini:
| Barang | Deskripsi |
|---|---|
| Operasi | Operasi yang menambahkan atau menghapus aturan dari agenda. |
| Nama Aturan | Nama untuk aturan yang ditambahkan atau dihapus dari agenda. |
| Kriteria Resolusi Konflik | Prioritas aturan, yang menentukan urutan relatif ketika tindakan dijalankan dan di mana tindakan berprioritas lebih tinggi dijalankan terlebih dahulu. |
Aturan diaktifkan
Aktivitas ini menunjukkan eksekusi tindakan aturan. Contoh berikut menunjukkan entri aturan yang diaktifkan:
RULE FIRED 1/07/2023 5:33:13 PM
Rule Engine Instance Identifier: f1dd3ff2-b4a8-4fe1-8d46-4d9b3e2502d3
Ruleset Name: LoanProcessing
Rule Name: Residency Status Rule
Conflict Resolution Criteria: 10
Memperbarui fungsi
Contoh ini menunjukkan contoh aturan "InventoryCheck" dan aturan "Kirim" dalam aturan sampel bernama "Order." Ketika aturan pertama kali diperiksa, kondisi yang terkait dengan aturan "Kirim" dievaluasi ke False. Namun, ketika aturan "InventoryCheck" diaktifkan, bidang InventoryAvailable pada Pesanan diubah, dan perintah Perbarui dikeluarkan ke mesin untuk "Objek pesanan", menyebabkan evaluasi ulang untuk aturan "Kapal". Kali ini, kondisi dievaluasi menjadi True, dan aturan "Ship" diaktifkan.
Catatan
Jika aturan Anda salah ditulis, penerusan rantai dengan fungsi Pembaruan dapat menyebabkan perulangan tak terbatas. Dalam peristiwa ini, ketika Anda menguji set aturan di Microsoft Rules Composer, Anda mendapatkan pesan kesalahan dengan teks "Mesin aturan mendeteksi perulangan eksekusi."
Aturan Pemeriksaan Inventaris
IF Inventory.AllocateInventory == True
THEN Order.InventoryAvailable == True
Update(Order)
Aturan pengiriman
IF Order.InventoryAvailable == True
THEN Shipment.ShipOrder
Hasil
RULE ENGINE TRACE for RULESET: Order 3/17/2023 10:31:17 AM
FACT ACTIVITY 3/17/2023 10:31:17 AM
Rule Engine Instance Identifier: 533f2fb6-a91f-49c1-8f36-e03a27ca9d72
Ruleset Name: Order
Operation: Assert
Object Type: TestClasses.Order
Object Instance Identifier: 448
CONDITION EVALUATION TEST (MATCH) 3/17/2023 10:31:17 AM
Rule Engine Instance Identifier: 533f2fb6-a91f-49c1-8f36-e03a27ca9d72
Ruleset Name: Order
Test Expression: TestClasses.Order.inventoryAvailable == True
Left Operand Value: null
Right Operand Value: True
Test Result: False
FACT ACTIVITY 3/17/2023 10:31:17 AM
Rule Engine Instance Identifier: 533f2fb6-a91f-49c1-8f36-e03a27ca9d72
Ruleset Name: Order
Operation: Assert
Object Type: TestClasses.Shipment
Object Instance Identifier: 447
FACT ACTIVITY 3/17/2023 10:31:17 AM
Rule Engine Instance Identifier: 533f2fb6-a91f-49c1-8f36-e03a27ca9d72
Ruleset Name: Order
Operation: Assert
Object Type: TestClasses.Inventory
Object Instance Identifier: 446
CONDITION EVALUATION TEST (MATCH) 3/17/2023 10:31:17 AM
Rule Engine Instance Identifier: 533f2fb6-a91f-49c1-8f36-e03a27ca9d72
Ruleset Name: Order
Test Expression: TestClasses.Inventory.AllocateInventory == True
Left Operand Value: True
Right Operand Value: True
Test Result: True
AGENDA UPDATE 3/17/2023 10:31:17 AM
Rule Engine Instance Identifier: 533f2fb6-a91f-49c1-8f36-e03a27ca9d72
Ruleset Name: Order
Operation: Add
Rule Name: InventoryCheck
Conflict Resolution Criteria: 0
RULE FIRED 3/17/2023 10:31:17 AM
Rule Engine Instance Identifier: 533f2fb6-a91f-49c1-8f36-e03a27ca9d72
Ruleset Name: Order
Rule Name: InventoryCheck
Conflict Resolution Criteria: 0
FACT ACTIVITY 3/17/2023 10:31:17 AM
Rule Engine Instance Identifier: 533f2fb6-a91f-49c1-8f36-e03a27ca9d72
Ruleset Name: Order
Operation: Update
Object Type: TestClasses.Order
Object Instance Identifier: 448
CONDITION EVALUATION TEST (MATCH) 3/17/2023 10:31:17 AM
Rule Engine Instance Identifier: 533f2fb6-a91f-49c1-8f36-e03a27ca9d72
Ruleset Name: Order
Test Expression: TestClasses.Order.inventoryAvailable == True
Left Operand Value: True
Right Operand Value: True
Test Result: True
AGENDA UPDATE 3/17/2023 10:31:17 AM
Rule Engine Instance Identifier: 533f2fb6-a91f-49c1-8f36-e03a27ca9d72
Ruleset Name: Order
Operation: Add
Rule Name: Ship
Conflict Resolution Criteria: 0
RULE FIRED 3/17/2023 10:31:17 AM
Rule Engine Instance Identifier: 533f2fb6-a91f-49c1-8f36-e03a27ca9d72
Ruleset Name: Order
Rule Name: Ship
Conflict Resolution Criteria: 0
FACT ACTIVITY 3/17/2023 10:31:17 AM
Rule Engine Instance Identifier: 533f2fb6-a91f-49c1-8f36-e03a27ca9d72
Ruleset Name: Order
Operation: Retract
Object Type: TestClasses.Order
Object Instance Identifier: 448
FACT ACTIVITY 3/17/2023 10:31:17 AM
Rule Engine Instance Identifier: 533f2fb6-a91f-49c1-8f36-e03a27ca9d72
Ruleset Name: Order
Operation: Retract
Object Type: TestClasses.Shipment
Object Instance Identifier: 447
FACT ACTIVITY 3/17/2023 10:31:17 AM
Rule Engine Instance Identifier: 533f2fb6-a91f-49c1-8f36-e03a27ca9d72
Ruleset Name: Order
Operation: Retract
Object Type: TestClasses.Inventory
Object Instance Identifier: 446
Contoh output jejak pengujian ruleset
Bagian ini menyediakan contoh yang menampilkan output pengujian ruleset untuk berbagai jenis fakta.
Jenis fakta Kelas .NET
Contoh ini adalah aturan sampel bernama "TestRule1" dalam set aturan bernama "LoanProcessing":
IF test.get_ID > 0
THEN <do something>
Hasil
RULE ENGINE TRACE for RULESET: LoanProcessing 3/16/2023 9:50:28 AM
FACT ACTIVITY 3/16/2023 9:50:28 AM
Rule Engine Instance Identifier: 9effe3f9-d3ad-4125-99fa-56bb379188f7
Ruleset Name: LoanProcessing
Operation: Assert
Object Type: MyTest.test
Object Instance Identifier: 872
CONDITION EVALUATION TEST (MATCH) 3/16/2023 9:50:28 AM
Rule Engine Instance Identifier: 9effe3f9-d3ad-4125-99fa-56bb379188f7
Ruleset Name: LoanProcessing
Test Expression: MyTest.test.get_ID > 0
Left Operand Value: 100
Right Operand Value: 0
Test Result: True
AGENDA UPDATE 3/16/2023 9:50:28 AM
Rule Engine Instance Identifier: 9effe3f9-d3ad-4125-99fa-56bb379188f7
Ruleset Name: LoanProcessing
Operation: Add
Rule Name: TestRule1
Conflict Resolution Criteria: 0
RULE FIRED 3/16/2023 9:50:28 AM
Rule Engine Instance Identifier: 9effe3f9-d3ad-4125-99fa-56bb379188f7
Ruleset Name: LoanProcessing
Rule Name: TestRule1
Conflict Resolution Criteria: 0
FACT ACTIVITY 3/16/2023 9:50:28 AM
Rule Engine Instance Identifier: 9effe3f9-d3ad-4125-99fa-56bb379188f7
Ruleset Name: LoanProcessing
Operation: Retract
Object Type: MyTest.test
Object Instance Identifier: 872
Jenis fakta TypedXmlDocument
Contoh ini menunjukkan bahwa entitas TypedXmlDocument dengan jenis dokumen bernama Microsoft.Samples.BizTalk.LoansProcessor.Case dinyatakan ke dalam mesin aturan. Berdasarkan Pemilih XPath yang ditentukan dalam aturan, mesin membuat dan menegaskan entitas turunan TypedXmlDocument dengan nama jenis Microsoft.Samples.BizTalk.LoansProcessor.Case:/Root/EmploymentType, berdasarkan jenis dokumen dan string pemilih. Entitas turunan TypedXmlDocument ini bernilai True dalam kondisi ini, menyebabkan pembaruan agenda dan pemicu aturan. Entitas induk dan turunan TypedXmlDocument kemudian ditarik kembali.
Contoh ini menunjukkan aturan sampel bernama "TestRule1" dalam set aturan bernama "LoanProcessing":
IF Microsoft.Samples.BizTalk.LoansProcessor.Case:/Root/EmploymentType.TimeInMonths >= 4
THEN <do something>
Hasil
RULE ENGINE TRACE for RULESET: LoanProcessing 3/17/2023 9:23:05 AM
FACT ACTIVITY 3/17/2023 9:23:05 AM
Rule Engine Instance Identifier: 51ffbea4-468f-4ce8-8ab7-977cadda2e2b
Ruleset Name: LoanProcessing
Operation: Assert
Object Type: TypedXmlDocument:Microsoft.Samples.BizTalk.LoansProcessor.Case
Object Instance Identifier: 858
FACT ACTIVITY 3/17/2023 9:23:05 AM
Rule Engine Instance Identifier: 51ffbea4-468f-4ce8-8ab7-977cadda2e2b
Ruleset Name: LoanProcessing
Operation: Assert
Object Type: TypedXmlDocument:Microsoft.Samples.BizTalk.LoansProcessor.Case:/Root/EmploymentType
Object Instance Identifier: 853
CONDITION EVALUATION TEST (MATCH) 3/17/2023 9:23:05 AM
Rule Engine Instance Identifier: 51ffbea4-468f-4ce8-8ab7-977cadda2e2b
Ruleset Name: LoanProcessing
Test Expression: TypedXmlDocument:Microsoft.Samples.BizTalk.LoansProcessor.Case:/Root/EmploymentType.TimeInMonths >= 4
Left Operand Value: 6
Right Operand Value: 4
Test Result: True
AGENDA UPDATE 3/17/2023 9:23:05 AM
Rule Engine Instance Identifier: 51ffbea4-468f-4ce8-8ab7-977cadda2e2b
Ruleset Name: LoanProcessing
Operation: Add
Rule Name: TestRule1
Conflict Resolution Criteria: 0
RULE FIRED 3/17/2023 9:23:05 AM
Rule Engine Instance Identifier: 51ffbea4-468f-4ce8-8ab7-977cadda2e2b
Ruleset Name: LoanProcessing
Rule Name: TestRule1
Conflict Resolution Criteria: 0
FACT ACTIVITY 3/17/2023 9:23:05 AM
Rule Engine Instance Identifier: 51ffbea4-468f-4ce8-8ab7-977cadda2e2b
Ruleset Name: LoanProcessing
Operation: Retract
Object Type: TypedXmlDocument:Microsoft.Samples.BizTalk.LoansProcessor.Case
Object Instance Identifier: 858
FACT ACTIVITY 3/17/2023 9:23:05 AM
Rule Engine Instance Identifier: 51ffbea4-468f-4ce8-8ab7-977cadda2e2b
Ruleset Name: LoanProcessing
Operation: Retract
Object Type: TypedXmlDocument:Microsoft.Samples.BizTalk.LoansProcessor.Case:/Root/EmploymentType
Object Instance Identifier: 853