Testa regeluppsättningar med Microsoft Rules Composer (förhandsversion)
Gäller för: Azure Logic Apps (Standard)
Viktigt!
Den här funktionen är i förhandsversion och omfattas av kompletterande användningsvillkor för Förhandsversioner av Microsoft Azure.
När du skapar regeluppsättningen så att du kan integrera affärslogik med dina Standard-arbetsflöden testar du regeluppsättningen stegvis eller innan du använder reglerna i ditt program. På så sätt kan du kontrollera att reglerna fungerar som du förväntar dig längs vägen, eller så kan du hitta och åtgärda problem tidigare när dina regler är mindre komplexa och enklare att felsöka.
Om du väntar på att testa dina regler samtidigt eller när du är klar, och reglerna är långa eller komplexa, kan du få fler fel eller problem än du trodde, vilket kan ta längre tid att lösa eller visa sig vara svåra att felsöka.
Förutsättningar
Ladda ned och installera Microsoft Rules Composer.
XML-filen som innehåller den regeluppsättning som du vill arbeta med och de fakta som du vill testa.
Om du vill lägga till fakta anger du deras värden i DE XML-filer som du refererar till i fönstret Välj fakta som öppnas när du har valt Testregler i följande steg. Du kanske vill skapa en faktaskapare för att lägga till .NET-fakta. Mer information finns i Skapa faktaskapare och hämtningar.
Testa en regeluppsättningsversion
Öppna Microsoft Rules Composer. I fönstret RuleSet Explorer väljer du den regeluppsättningsversion som du vill testa, vilket öppnar fönstret versionsinformation.
I regeluppsättningsversionens snabbmeny väljer du Testa regeluppsättning.
I rutan Välj fakta som visas visar det övre fönstret de faktatyper som refereras till av regeluppsättningsreglerna.
Om du vill lägga till en faktainstans under XML-dokument eller .NET-klasser väljer du en motsvarande faktatyp och väljer sedan Lägg till instans.
Kommentar
Om du hävdar en härledd klass i en regel, men reglerna skrivs direkt mot basklassmedlemmarna, hävdas en basklassinstans i stället och villkoren utvärderas mot basklassinstansen.
Om du vill ta bort en faktainstans väljer du motsvarande faktatyp och väljer sedan Ta bort instans.
Om du vill lägga till en faktaskapare som du har skapat väljer du Lägg till i fönstret Faktaskapare.
När du är klar väljer du Test.
Fönstret Utdata visar regeluppsättningens testspårningsutdata.
Öppna snabbmenyn för testutdatafönstret och välj ett alternativ för att spara, rensa, markera eller kopiera utdatatexten så att du kan granska resultatet.
I följande tabell beskrivs de utdatafönsterkommandon som du kan använda för att arbeta med utdatatexten:
Uppgift Genvägskommando Rensa all text från utdatafönstret. Rensa alla Kopiera den markerade texten i utdatafönstret till Urklipp. Kopiera Markera all text i utdatafönstret. Välj alla Spara texten i utdatafönstret till en angiven fil. Spara i fil
Utdata för regeluppsättningstestspårning
I det här avsnittet beskrivs spårningsinformation och aktiviteter som ingår i spårningen när du testar en regeluppsättning med hjälp av Microsoft Rules Composer. Spårning av utdata kan innehålla följande instruktionstyper:
- Faktaaktivitet
- Villkorsutvärdering
- Uppdatering av agenda
- Regeln utlöstes
Faktaaktivitet
Den här aktiviteten anger ändringar i fakta i motorns arbetsminne. I följande exempel visas ett exempel på en faktaaktivitetspost:
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
I följande tabell beskrivs informationen i den här posten:
Objekt | beskrivning |
---|---|
Instansidentifierare för regelmotor | En unik identifierare för RuleEngine-instansen som tillhandahåller körningsmiljön för regelavfyrningen. |
Namn på regeluppsättning | Namnet på regeluppsättningen. |
Åtgärd | Följande åtgärdstyper kan inträffa i en faktaaktivitet: - Assert: Ett faktum läggs till i arbetsminnet. Obs! Om typen för ett kontrollerat faktum inte matchar någon av de typer som används i regeluppsättningen visar funktionen Assert felet "Assert – Fact Unrecognized". - Uppdatering: En regel uppdaterar ett faktum som sedan måste bekräftas i motorn för omvärdering, baserat på nya data och tillstånd. - Återkalla: Ett faktum tas bort från arbetsminnet. |
Objekttyp | Faktatypen för en viss aktivitet: – TypedXmlDocument Försäkran visas för både överordnade och underordnade TypedXmlDocument-instanser . |
Objektinstansidentifierare | Det unika instans-ID:t för faktareferensen. |
Villkorsutvärdering
Den här aktiviteten anger resultatet från utvärdering av enskilda predikat. I följande exempel visas en exempel på en utvärderingspost för villkor:
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
I följande tabell beskrivs informationen i den här posten:
Objekt | beskrivning |
---|---|
Testuttryck | Ett enkelt unary- eller binärt uttryck i en regel. |
Vänster operandvärde | Värdet för termen till vänster i ett uttryck. |
Höger operandvärde | Värdet för termen till höger i ett uttryck. |
Testresultat | Resultatet från utvärderingen, som antingen är Sant eller Falskt. |
Uppdatering av agenda
Den här aktiviteten anger de regler som läggs till i regelmotorns agenda för efterföljande körning. I följande exempel visas ett exempel på en uppdateringspost för agendan:
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
I följande tabell beskrivs informationen i den här posten:
Objekt | beskrivning |
---|---|
Åtgärd | Åtgärden som lägger till eller tar bort regler från dagordningen. |
Regelnamn | Namnet på regeln som läggs till eller tas bort från dagordningen. |
Konfliktlösningsvillkor | Prioriteten för en regel, som avgör den relativa ordningen för när åtgärder körs och var åtgärder med högre prioritet körs först. |
Regeln utlöstes
Den här aktiviteten anger körningen av en regels åtgärder. I följande exempel visas en regel som utlösts:
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
Funktionen Update
Det här exemplet visar ett exempel på en "InventoryCheck"-regel och en "Ship"-regel i en exempelregeluppsättning med namnet "Order". När regeln först kontrolleras utvärderas villkoret som är associerat med "Ship"-regeln till False. Men när "InventoryCheck"-regeln utlöses ändras fältet InventoryAvailable i ordern och kommandot Uppdatera utfärdas till motorn för "Order-objektet", vilket orsakar omvärdering för "Ship"-regeln. Den här gången utvärderas villkoret till True och regeln "Ship" utlöses.
Kommentar
Om dina regler är felaktigt skrivna kan vidarebefordran av länkning med funktionen Uppdatera orsaka en oändlig loop. I det här fallet får du ett felmeddelande när du testar regeluppsättningen i Microsoft Rules Composer med texten "Regelmotorn identifierade en körningsloop".
InventoryCheck-regel
IF Inventory.AllocateInventory == True
THEN Order.InventoryAvailable == True
Update(Order)
Leveransregel
IF Order.InventoryAvailable == True
THEN Shipment.ShipOrder
Output
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
Utdataexempel för regeluppsättningstestspårning
Det här avsnittet innehåller exempel som visar regeluppsättningens testutdata för olika typer av fakta.
Faktatyp för .NET-klass
Det här exemplet är en exempelregel med namnet "TestRule1" i en regeluppsättning med namnet "LoanProcessing":
IF test.get_ID > 0
THEN <do something>
Output
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 faktatyp
Det här exemplet visar att en TypedXmlDocument-entitet med dokumenttypen Microsoft.Samples.BizTalk.LoansProcessor.Case bekräftas i regelmotorn. Baserat på XPath Selector-värdet som definierats i regeln skapar och kontrollerar motorn en underordnad TypedXmlDocument-entitet med typen Microsoft.Samples.BizTalk.LoansProcessor.Case:/Root/EmploymentType, baserat på dokumenttypen och väljaresträngen. Den här underordnade Entiteten TypedXmlDocument utvärderas till True i villkoret, vilket orsakar en uppdatering av agendan och regelavfyrning. De överordnade och underordnade TypedXmlDocument-entiteterna återkallas sedan.
Det här exemplet visar exempelregeln med namnet "TestRule1" i en regeluppsättning med namnet "LoanProcessing":
IF Microsoft.Samples.BizTalk.LoansProcessor.Case:/Root/EmploymentType.TimeInMonths >= 4
THEN <do something>
Output
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