Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: Azure Logic Apps (Standart)
Bu kılavuz, Microsoft Rules Composer kullanarak kural kümelerini test etme işlemini gösterir ve kural testi için çıkış örnekleri içerir.
Kural kümelerini neden artımlı olarak test edin?
İş mantığını Standart mantıksal uygulama iş akışlarınızla tümleştirmek için bir kural kümesi oluştururken, uygulamanızda kuralları kullanmadan önce kural kümesinizi artımlı olarak veya en azından test edin. Bu şekilde, her kuralın beklediğiniz gibi çalıştığını onaylayabilir veya kurallarınız daha az karmaşık ve daha kolay giderildiğinde sorunları daha erken bulup düzeltebilirsiniz.
Tüm kurallarınızı aynı anda test etmek için beklerseniz, özellikle de kurallarınız uzun veya karmaşık olduğunda beklenenden daha fazla hatayla karşılaşıyor olabilirsiniz. Bu hatanın çözülmesi daha uzun sürer ve hata ayıklaması daha zor olur.
Önkoşullar
Üzerinde çalışmak istediğiniz kural kümesini ve test etmek istediğiniz olguları içeren XML dosyası.
Olgu eklemek için, aşağıdaki adımlarda Test Kural Kümesi'ni seçtikten sonra açılan Olguları Seç penceresinde başvurduğunuz XML dosyalarında değerlerini belirtin. .NET olguları eklemek için bir olgu oluşturucusu oluşturmak isteyebilirsiniz. Daha fazla bilgi için bkz . Olgu oluşturucuları ve retriever'ları oluşturma.
Kural kümesi sürümünü test edin
Microsoft Rules Composer'u açın. RuleSet Explorer penceresinde, test etmek istediğiniz kural kümesi sürümünü seçin; bu sürüm bilgileri penceresini açar.
Kural kümesi sürümünün kısayol menüsünden Test Kural Kümesi'ni seçin.
Görüntülenen Olguları Seç kutusunda, en üstteki pencerede kural kümesi kuralları tarafından başvuruda bulunılan olgu türleri gösterilir.
Olgu örneği eklemek için, XML Belgeleri veya .NET Sınıfları'nın altında ilgili olgu türünü seçin ve ardından Örnek Ekle'yi seçin.
Not
Türetilmiş bir sınıfı bir kurala onaylarsanız, ancak kurallar doğrudan temel sınıf üyelerine yazılırsa, bunun yerine bir temel sınıf örneği onaylanır ve koşullar temel sınıf örneğine göre değerlendirilir.
Olgu örneğini kaldırmak için ilgili olgu türünü ve ardından Örneği Kaldır'ı seçin.
Oluşturduğunuz olgu oluşturucuyu eklemek için Olgu Oluşturucuları penceresinde Ekle'yi seçin.
Hazır olduğunuzda Test'i seçin.
Çıkış penceresinde kural kümesi test izleme çıkışı gösterilir.
Test çıkışı penceresinin kısayol menüsünü açın ve sonuçları gözden geçirebilmeniz için çıkış metnini kaydetme, temizleme, seçme veya kopyalama seçeneğini belirtin.
Aşağıdaki tabloda, çıkış metniyle çalışmak için kullanabileceğiniz Çıkış penceresi komutları açıklanmaktadır:
Görev Kısayol komutu Çıkış penceresindeki tüm metni temizleyin. Tümünü temizle Çıktı penceresindeki seçili metni panoya kopyalayın. Kopyala Çıkış penceresindeki tüm metni seçin. Tümünü Seç Çıktı penceresindeki metni belirtilen bir dosyaya kaydedin. Dosyaya Kaydet
Kural kümesi test izleme çıkışı
Bu bölümde, Microsoft Rules Composer kullanarak bir kural kümesini test ettiğinizde izlemeye dahil olan izleme bilgileri ve etkinlikler açıklanmaktadır. İzleme çıktısı aşağıdaki ifade türlerini içerebilir:
- Olgu etkinliği
- Koşul değerlendirmesi
- Ajanda güncelleştirmesi
- Kural etkinleştirildi
Olgu etkinliği
Bu etkinlik, motorun çalışma belleğindeki bilgilerde yapılan değişiklikleri gösterir. Aşağıdaki örnekte örnek olgu etkinliği girişi gösterilmektedir:
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
Aşağıdaki tabloda bu girdideki bilgiler açıklanmaktadır:
| Öğe | Açıklama |
|---|---|
| Kural Altyapısı Örneği Tanımlayıcısı | Kural çalıştırma işlemi için yürütme ortamını sağlayan RuleEngine örneğinin benzersiz bir tanımlayıcısı. |
| Kural Kümesi Adı | Kural kümesinin adı. |
| İşlem | Olgu etkinliğinde aşağıdaki işlem türleri oluşabilir: - Onay: Çalışma belleğine bir olgu eklenir. Not: Onaylanan bir olgu türü kural kümesinde kullanılan türlerden herhangi biriyle eşleşmiyorsa Assert işlevi "Assert – Fact Unrecognized" hatasını gösterir. - Güncelleme: Kural, yeni veri ve duruma bağlı olarak yeniden değerlendirilmesi için motora yeniden eklenmesi gereken bir olguyu günceller. - Geri çekme: Bir olgu çalışma belleğinden kaldırılır. |
| Nesne Türü | Belirli bir etkinliğin olgu türü: - TypedXmlDocument Doğrulamalar hem üst hem de alt TypedXmlDocument örnekleri için gösterilir. |
| Nesne Örneği Tanımlayıcısı | Olgu başvurusu için benzersiz örnek kimliği. |
Koşul değerlendirmesi
Bu etkinlik, tek tek önkoşulların değerlendirilmesinin sonucunu gösterir. Aşağıdaki örnekte örnek koşul değerlendirme girdisi gösterilmektedir:
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
Aşağıdaki tabloda bu girdideki bilgiler açıklanmaktadır:
| Öğe | Açıklama |
|---|---|
| Test İfadesi | Bir kural içindeki basit bir birli veya ikili ifade. |
| Sol İşlenen Değeri | Bir ifadenin sol tarafındaki terimin değeri. |
| Sağ Operand Değeri | İfadenin sağ tarafındaki terimin değeri. |
| Test Sonucu | Değerlendirme sonucunun Doğru veya Yanlış olduğunu belirtir. |
Ajanda güncelleştirmesi
Bu etkinlik, sonraki çalıştırma için kurallar motorunun gündemine eklenen kuralları gösterir. Aşağıdaki örnekte örnek ajanda güncelleştirme girdisi gösterilmektedir:
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
Aşağıdaki tabloda bu girdideki bilgiler açıklanmaktadır:
| Öğe | Açıklama |
|---|---|
| İşlem | Kuralları ajandaya ekleyen veya kaldıran işlem. |
| Kural Adı | Gündeme eklenen veya gündemden kaldırılan kuralın adı. |
| Çakışma Çözümleme Ölçütleri | Eylemlerin ne zaman yürütüleceği ve yüksek öncelikli eylemlerin ilk olarak yürütüldüğü göreli sırayı belirleyen kuralın önceliği. |
Kural etkinleştirildi
Bu etkinlik, kural eylemlerinin yürütülmesini gösterir. Aşağıdaki örnek, tetiklenen bir kural girdisini göstermektedir.
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
güncelleme işlevi
Bu örnekte, örnek bir "InventoryCheck" kuralı ve "Order" adlı bir örnek kurallar kümesinde "Ship" kuralı gösterilmektedir. Kural ilk kez kontrol edildiğinde, "Ship" kuralıyla ilişkili koşul, False olarak değerlendirilir. Ancak, "InventoryCheck" kuralı tetiklendiğinde, InventoryAvailable alanı Sipariş üzerinde değiştirilir ve Update komutu "Sipariş nesnesi" için motora verilir, bu da "Ship" kuralı için yeniden değerlendirmeye neden olur. Bu kez koşul True olarak değerlendirilir ve "Ship" kuralı tetiklenir.
Not
Kurallarınız yanlış yazılmışsa Update işleviyle iletme zincirleme sonsuz döngüye neden olabilir. Bu olayda, Microsoft Rules Composer'da kural kümesini test ettiğinizde, "Kural altyapısı bir yürütme döngüsü algılandı" metnini içeren bir hata iletisi alırsınız.
InventoryCheck kuralı
IF Inventory.AllocateInventory == True
THEN Order.InventoryAvailable == True
Update(Order)
Sevkiyat kuralı
IF Order.InventoryAvailable == True
THEN Shipment.ShipOrder
Çıktı
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
Kural kümesi test izleme çıkış örnekleri
Bu bölümde, farklı olgu türleri için kural kümesi test çıkışını gösteren örnekler sağlanır.
.NET Sınıfı olgu türü
Bu örnek, "LoanProcessing" adlı bir kural kümesinde "TestRule1" adlı örnek bir kuraldır:
IF test.get_ID > 0
THEN <do something>
Çıktı
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
TypedXmlDocument olgu türü
Bu örnekte, Microsoft.Samples.BizTalk.LoansProcessor.Case adlı belge türüne sahip bir TypedXmlDocument varlığının kural altyapısına onaylandığı gösterilmektedir. Kuralda tanımlanan XPath Seçicisi değerine bağlı olarak, motor, belge türüne ve seçici dizesine göre TypedXmlDocument birimi oluşturur ve Microsoft.Samples.BizTalk.LoansProcessor.Case:/Root/EmploymentType adlı alt varlığı onaylar. Bu alt TypedXmlDocument varlığı koşulda True olarak değerlendirilir ve ajanda güncellemesi ve kuralın çalıştırılmasına neden olur. Ebeveyn ve çocuk TypedXmlDocument varlıkları daha sonra geri çekilir.
Bu örnekte, "LoanProcessing" adlı bir kural kümesinde "TestRule1" adlı örnek kural gösterilmektedir:
IF Microsoft.Samples.BizTalk.LoansProcessor.Case:/Root/EmploymentType.TimeInMonths >= 4
THEN <do something>
Çıktı
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