Skapa regler med hjälp av 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.
Regler styr affärslogik för hur affärsprocesser fungerar. För att hjälpa dig att skapa dessa regler för användning med ditt Azure Logic Apps Rules Engine-projekt tillhandahåller Microsoft Rules Composer ett visuellt verktyg för redigering och versionshantering av regeluppsättningar och vokabulärer.
Den här guiden ger en översikt över hur regler fungerar och hur du skapar en regel med hjälp av Microsoft Rules Composer.
Förutsättningar
Ladda ned och installera Microsoft Rules Composer.
Om du har en befintlig regeluppsättning som du vill arbeta med behöver du XML-filen som innehåller regeluppsättningen. Annars visar den här guiden hur du skapar en ny regeluppsättning som du sparar som en XML-fil.
Viktigt!
Om din befintliga XML-fil är beroende av .NET-sammansättningar, eller om de sammansättningar som du använder för att lägga till fakta har andra beroenden, se till att behålla alla dessa filer i samma mapp och i en katalog som är lokal för Microsoft Rules Composer.
Vad är en regel?
En regel är en deklarativ instruktion som innehåller ett villkor och åtgärder där villkoret utvärderas. Om resultatet är sant utför regelmotorn en eller flera åtgärder. I följande format definieras syntaxen för regler i Azure Logic Apps-regelmotorn:
IF-villkor <>DÅ åtgärd <>
Följande exempelregel avgör om en transaktion ska genomföras och affärslogik tillämpas genom att jämföra två monetära värden med data eller fakta, som använder formen av ett transaktionsbelopp och rabatt:
Om det köpta beloppet är större än kvantiteten ger du kunden ytterligare rabatt
Villkor: Ett sant eller falskt booleskt uttryck som innehåller en eller flera predikat som tillämpas på fakta. Ett predikat är en sats som innehåller ett verb och anger något om ämnet. I vårt exempel är predikatet större än vad som gäller för det köpta faktabeloppet. Det här villkoret utvärderas alltid till antingen sant eller falskt. Du kan kombinera predikat med de logiska operatorerna AND, OR och NOT för att skapa ett potentiellt långt logiskt uttryck, men utvärderas alltid till antingen sant eller falskt.
Åtgärd: En åtgärd är en funktionell konsekvens av villkorsutvärdering. Om ett regelvillkor uppfylls startas en motsvarande åtgärd eller åtgärder. I vårt exempel är en extra rabatt en åtgärd som bara inträffar när villkoret är sant, vilket är om det köpta beloppet är större än 1 000 USD. Åtgärder representeras i Azure Logic Apps-regelmotorn genom att anropa metoder, ange egenskaper för objekt eller utföra uppsättningsåtgärder i XML-dokument.
Fakta: Ett faktum är en diskret information om världen om vilka regler som fungerar. I vårt exempel är belopp och kvantitet fakta. Fakta kan komma från många källor, till exempel händelsesystem, objekt i hybridprogram och så vidare, och måste matas in i regelmotorn i Azure Logic Apps med något av följande element:
- .NET-objekt, till exempel metoder, egenskaper och fält.
- XML-dokument, till exempel element, attribut och dokumentunderavsnitt.
Vokabulär: Ett eget namn för fakta som används i villkor och åtgärder. Mer information finns i Skapa och hantera vokabulärer.
I följande diagram och avsnitt beskrivs hur villkor, åtgärder och fakta passar ihop:
Microsoft Rules Composer
Du kan använda Microsoft Rules Composer för att skapa, ändra, version och spara regler. Du kan också utföra dessa uppgifter programmatiskt. Regelkompositören innehåller följande gränssnittselement:
Fönster | beskrivning |
---|---|
RuleSet Explorer | Skapa regeluppsättningar som innehåller en eller flera regler. |
Villkorsredigeraren | Skapa ett villkor för en regel. |
Åtgärdsredigeraren | Skapa åtgärder som körs när villkoret utvärderas till sant. |
Faktautforskaren | Bläddra efter XML- och .NET-fakta och dra sedan dessa fakta till villkorsredigeraren eller åtgärdsredigeraren. |
Skapa och hantera en regeluppsättning
En regeluppsättning är en uppsättning regler som du grupperar tillsammans baserat på domän, begränsad kontext eller någon affärsgräns. Om du vill hantera regeluppsättningar och regler i regelarkivet använder du RuleSet Explorer. Du kan skapa, ändra, testa eller ta bort regeluppsättningar och deras regler.
Öppna menyn Regelarkiv i Microsoft Rules Composer och välj Läs in.
Leta upp och välj den XML-fil som innehåller det regelarkiv som du vill öppna.
I fönstret RuleSet Explorer öppnar du snabbmenyn RuleSets och väljer Lägg till ny regeluppsättning.
Microsoft Rules Composer skapar en ny tom regeluppsättning med en regeluppsättningsversion numrerad 1.0 som standardversion.
Spara regeluppsättningen. På menyn Regelarkiv väljer du Spara, vilket skapar en XML-fil för regeluppsättningen.
I följande tabell beskrivs andra RuleSet Explorer-kommandon som du kan använda för att arbeta med regeluppsättningar:
Uppgift | Command |
---|---|
Skapa en ny regeluppsättning. | Lägg till ny regeluppsättning |
Skapa en ny tom version av den valda regeluppsättningen. Du kan kopiera regler från andra versioner och klistra in dem i den nya versionen. | Lägg till ny version |
Kopiera den valda regeluppsättningsversionen till Urklipp. | Kopiera |
Klistra in en regeluppsättningsversion och dess innehåll i en vald regeluppsättning. | Klistra |
Ta bort den valda regeluppsättningsversionen. | Ta bort |
Ta bort den valda regeluppsättningen och alla dess versioner. | Ta bort på den överordnade regeluppsättningsnivån |
Läs in den valda regeluppsättningsversionen igen och dess regler med alternativet att ta bort eventuella aktuella ändringar i den versionen och återställa innehållet från regelarkivet. | Reload |
Spara ändringar som gjorts i den valda versionen och dess regler. | Spara |
Testa den valda regeluppsättningsversionen innan du använder med ditt regelmotorprojekt. | Testregleruppsättning |
I följande tabell beskrivs egenskaperna för en regeluppsättningsversion:
Property | Värde |
---|---|
Namn | Namnet på regeluppsättningen. Obs! Du kan bara ändra det här värdet genom att uppdatera egenskapen Name för regeluppsättningen, inte regeluppsättningsversionen. |
Aktuell version | Den version av regeluppsättningen som för närvarande har valts i RuleSet Explorer. |
Faktahämtning | Den faktahämtning som ska användas för att tillhandahålla fakta till regeluppsättningsversionen. Microsoft Rules Composer stöder funktionsbygget och använder en faktahämtare för att ange fakta. Mer information finns i följande dokumentation: - Utföra avancerade uppgifter på regeluppsättningar - Skapa faktaskapare och hämtningar |
Maximalt körningsslingdjup | Det maximala djupet för framåtlänkningsalgoritmen innan ett körningsloop-undantag genereras. Standardantalet för loopar är 65 536. |
Översättningstid | Den maximala tiden för att översätta reglerna innan ett timeout-undantag för översättning utlöses. Standardvaraktigheten är 60 000 millisekunder. |
Översättare | Översättaren som ska användas för att översätta reglerna. Microsoft Rules Composer stöder för närvarande endast den inbyggda standardöversättaren, men stöder även utökningsbarhet för att lägga till fler översättare. |
Versionsbeskrivning | Beskrivningen av den aktuella versionen. |
Mer information om hur du arbetar med regeluppsättningar finns i Utföra avancerade uppgifter på regeluppsättningar.
Skapa och hantera en regel
Välj Läs in på menyn Regelarkiv i Microsoft Rules Composer.
Leta upp och välj den XML-fil som innehåller det regelarkiv som du vill arbeta med.
I fönstret RuleSet Explorer hittar du den regeluppsättningsversion där du vill lägga till en regel.
Öppna snabbmenyn för regeluppsättningsversionen och välj Lägg till ny regel.
Regelredigeraren öppnas så att du kan lägga till dina villkor och åtgärder.
I följande lista beskrivs hur du kan ändra en regel:
Skapa en ny version av regeluppsättningen.
Redigera en befintlig regeluppsättningsversion direkt. Du kan ändra enskilda regler, lägga till nya regler eller ta bort befintliga regler.
I följande tabell beskrivs alla genvägskommandon för RuleSet Explorer som du kan använda för att arbeta med regler:
Uppgift | Genvägskommando |
---|---|
Skapa en ny regel i den valda regeluppsättningsversionen. | Lägg till ny regel |
Kopiera den valda regeln till Urklipp. | Kopiera |
Kopiera den markerade regeln till Urklipp och ta bort regeln. | Skära |
Klistra in en regel i den valda regeluppsättningsversionen. | Klistra |
Ta bort den valda regeln. | Ta bort |
I följande tabell beskrivs egenskaperna för en regel:
Property | Värde |
---|---|
Namn | Namnet på regeln. |
Aktiv | Anger om regeln är aktiverad eller inaktiverad. |
Prioritet | Prioriteten för regeln i regeluppsättningen. Desto högre index, desto högre regelprioritet. Åtgärderna för en regel med högre prioritet körs först. Standardvärdet är 0 och representerar mellanprioritet. Du kan göra värdet positivt eller negativt. Mer information finns i Regelmotoroptimering. |
Inaktivera eller aktivera en regel
Du kan ange en regel till inaktiv så att regeln inte körs när regeluppsättningen körs, eller så kan du återaktivera en regel som har inaktiverats.
I RuleSet Explorer väljer du regeln.
I fönstret Egenskaper anger du egenskapen Aktiv till något av följande värden:
- Falskt: Inaktiverad
- Sant: Aktiverat
Ange regelprioritet
Du kan ange prioriteten för en regel så att åtgärder körs före eller efter åtgärderna i en annan regel med en annan prioritet. Prioriteterna är relativa, så alla åtgärder i en regel med en specifik prioritet körs i ordning före åtgärder i en regel med ett lägre prioritetsvärde.
I RuleSet Explorer väljer du regeln.
I fönstret Egenskaper anger du Prioritet till det heltalsvärde som du vill använda.
Skapa eller redigera ett villkor
Om du vill skapa, redigera eller visa ett villkor som utlöser en regel använder du villkorsredigeraren, som är en del av regelredigeraren. Om du vill skapa ett villkor kan du utföra följande uppgifter:
Lägg till inbyggda eller användardefinierade predikat, om några.
Definiera argument i predikat genom att dra objekt från fönstret Faktautforskaren.
Ange argumentvärden infogade genom att välja en argumentlänk.
Flytta predikat och logiska operatorer inom ett villkor.
Kommentar
I vilken ordning predikaten och logiska operatorerna visas avgör inte deras utvärderingsordning.
Ta bort predikat och logiska operatorer från ett villkor.
Lägga till ett predikat i ett villkor
I RuleSet Explorer väljer du regeln.
I IF-fönstret, som är villkorsredigeraren, öppnar du snabbmenyn Villkor och väljer något av följande:
Välj en logisk operator. Från operatorns snabbmeny lägger du till predikat eller kapslade logiska operatorer som du vill utvärdera.
Mer information om hur du konfigurerar logiska operatorer finns i Lägga till aritmetiska operatorer och logikoperatorer i regler
På snabbmenyn Predikat väljer du ett inbyggt predikat eller användardefinierat predikat, om du har något.
I följande tabeller beskrivs tillgängliga predikatuttryck som du kan välja från snabbmenyerna Predikat:
Inbyggt predikat beskrivning Efter Det tidsmässiga predikat som besvarar frågan"Är time1 kronologiskt efter time2?" Före Det tidsmässiga predikat som svarar på frågan "Är time1 kronologiskt före time2?" Mellan Det tidsmässiga predikat som besvarar frågan "Är tid1 kronologiskt mellan tid 2 och tid3?" Lika med Relationsjämlikhetsoperatorn. Finns Existenspredikatet som besvarar frågan "Finns det angivna XML-elementet eller attributet?" GreaterThan Relationen är större än operatorn. GreaterThanEqual Relationen är större än eller lika med operatorn. LessThan Relations mindre än operatorn. LessThanEqual Relationen är mindre än eller lika med operatorn. Tändsticka Avgör om ett reguljärt uttryck finns i en angiven indatasträng. NotEqual Operatorn för relationsskillnader. Intervall Avgör om ett värde finns inom ett intervall.
Ange ett argument för ett predikat i ett villkor
Följ dessa steg, som är samma för en funktion i en åtgärd.
Flytta en logisk operator eller predikat i ett villkor
Utför något av följande steg i villkorsredigeraren:
Dra den logiska operatorn eller predikatet till en annan logisk operator eller till noden Villkor .
Öppna snabbmenyn för den logiska operatorn eller predikatet och välj Flytta upp eller Flytta ned för att flytta objektet en position eller nivå.
Skapa eller redigera en åtgärd
Om du vill skapa, redigera eller visa en åtgärd som körs när ett villkor uppfylls använder du åtgärdsredigeraren, som är en del av regelredigeraren. Om du vill skapa en åtgärd kan du utföra följande uppgifter:
- Lägg till inbyggda eller användardefinierade funktioner, om några.
- Definiera argument i funktioner genom att dra objekt från fönstret Faktautforskaren.
- Ange argumentvärden infogade genom att välja en argumentlänk.
- Flytta funktioner inom en åtgärd.
Lägga till en funktion
I RuleSet Explorer väljer du regeln.
I fönstret THEN , som är åtgärdsredigeraren, öppnar du snabbmenyn Åtgärder och väljer en inbyggd funktion för att lägga till en åtgärd och ett argument.
I följande tabell beskrivs de tillgängliga funktioner som du kan välja från snabbmenyn Åtgärder :
Function beskrivning Assert Lägg till ett nytt faktum i arbetsminnet för regelmotorinstansen. Klar Återställ arbetsminnet och agendan för regelmotorinstansen. Mer information om arbetsminne och agenda finns i Regelmotoroptimering. Stoppa Avsluta regelbearbetningen. Dra tillbaka Ta bort ett faktum från arbetsminnet för regelmotorinstansen. RetractByType Ta bort ett faktum med den angivna typen från arbetsminnet för regelmotorinstansen. Uppdatering Uppdatera ett faktum i arbetsminnet för regelmotorinstansen.
Mer information finns i Optimera regler med kontrollfunktioner.
Ange ett argument för en funktion i en åtgärd
Följ dessa steg, som är desamma för ett predikat i ett villkor.
Flytta en funktion i en åtgärd
Åtgärderna i en regel körs baserat på den angivna ordningen förutom kontrollfunktionerna för regelmotorn, som körs efter andra åtgärder.
- I åtgärdsredigeraren öppnar du åtgärdens snabbmeny och väljer Flytta upp eller Flytta ned för att flytta åtgärden en position eller nivå.
Ange ett argument för ett predikat i ett villkor eller en funktion i en åtgärd
Utför något av följande steg i villkorsredigeraren eller åtgärdsredigeraren:
I predikatet eller funktionen väljer du standardargumentet och anger det värde som du vill ha eller väljer från en lista, om det är tillgängligt, där det är lämpligt.
I fönstret Faktautforskaren väljer du den flik som har den term som du vill använda som argument och drar termen till argumentet i predikatet eller funktionen i respektive redigerare.
Termen måste ha en typ som predikatet eller funktionen förväntar sig. Annars får du ett felmeddelande.
Om du vill ersätta ett argument med ett tomt strängvärde öppnar du argumentets snabbmeny och väljer Ange till tom sträng.
Om du vill ersätta ett argument med en null-konstant definition öppnar du argumentets snabbmeny och väljer Ange till null.
Kommentar
Det här alternativet kanske inte visas om argumenttypen inte är en typ som du kan ange till null.
Information om hur du lägger till en aritmetik- eller logisk operator i ett argument finns i Lägga till aritmetiska och logiska operatorer i regler.
Hitta objektkällan i ett villkor eller en åtgärd
Utför något av följande steg i villkors- eller åtgärdsredigeraren:
Om du vill hitta ordförrådsdefinitionen i Faktautforskaren som du använde för att skapa ett predikat i ett villkor, en funktion i en åtgärd eller ett argument i någon av dem öppnar du snabbmenyn för predikatet, funktionen eller argumentet och väljer Gå till vokabulär.
Om du vill hitta ett .NET-medlem- eller XML-element i Faktautforskaren som du använde för att skapa ett predikat i ett villkor, en funktion i en åtgärd eller ett argument i någon av dem öppnar du snabbmenyn för predikatet, funktionen eller argumentet och väljer Gå till källfakta.
Ta bort en predikat, logisk operator eller åtgärd
Utför något av följande steg i villkorsredigeraren:
Välj objektet och tryck sedan på ta bort.
Välj objektet, till exempel predikat, logisk operator eller åtgärd, och välj Ta bort< objekttyp>.
Om du vill ta bort ett argument plus kapslade argument och återställa standarddefinitionen öppnar du argumentets snabbmeny och väljer Återställ argument.
Lägga till fakta i dina regler
Du kan ange datakällans referenser som du kan spara i regellagret för senare användning som fakta i dina regler och ordförråd. Du kan ange .NET-sammansättningar som har klasser och klassmedlemmar eller XSD-scheman som har XML-dokumentelement och -attribut.
Om du vill bläddra bland data som du redan har lagt till från en .NET-sammansättning, XSD-schema eller som ordförrådsdefinitioner väljer du fliken Vokabulärer, fliken XML-scheman eller .NET-klasser, baserat på var de data du vill ha finns.
Dra data från motsvarande flik till den plats där du vill använda ett villkor i villkorsredigeraren eller inuti en åtgärd i åtgärdsredigeraren.
Lägg till en .NET-sammansättning som datakälla för .NET-fakta
I fönstret Faktautforskaren väljer du fliken .NET-klasser .
Öppna snabbmenyn för noden .NET-sammansättningar och välj Bläddra.
Leta upp och öppna den .NET-sammansättning som du vill använda.
Under .NET-sammansättningar visas den valda sammansättningen tillsammans med dess klasser och medlemmar, till exempel:
Viktigt!
Om du uppdaterar .NET-sammansättningen i den lokala katalogen uppdaterar Inte Microsoft Rules Composer .NET-sammansättningen automatiskt. Anvisningar för hur du uppdaterar referenser till en uppdaterad sammansättning finns i Uppdatera .NET-sammansättningsreferenser.
Uppdatera .NET-sammansättningsreferenser
Om du lägger till en ny .NET-sammansättning, antingen med ett annat namn eller en annan version, måste du uppdatera regeluppsättningen för att referera till den nya sammansättningen. För den här uppgiften måste du i Microsoft Rules Composer skapa en ny regeluppsättningsversion och uppdatera referenserna till den nya sammansättningen, inklusive klasser, metoder och så vidare. Om du vill läsa in den uppdaterade sammansättningen måste du starta om Microsoft Rules Composer.
Om den uppdaterade .NET-sammansättningen använder samma namn, versionsnummer och så vidare behöver du bara lägga till den nya sammansättningen i ditt Azure Logic Apps Rules Engine-funktionsprojekt.
Ta bort en .NET-sammansättning som en datakälla
I fönstret Faktautforskaren väljer du fliken .NET-klasser .
Under .NET-sammansättningar öppnar du sammansättningens snabbmeny och väljer Ta bort.
Lägga till ett XML-schema som datakälla för XML-fakta
I fönstret Faktautforskaren väljer du fliken XML-scheman .
Öppna snabbmenyn för noden Schemas och välj Bläddra.
I rutan Schemafiler letar du upp och väljer XML-schemafilen (.xsd) och väljer Öppna.
Under Scheman visas XML-schemat tillsammans med dess XML-element, till exempel:
Bindningar för XML-element som används i argument
I Business Rules Framework är klassen TypedXmlDocument en Microsoft . NET-kompatibelt klassbibliotek som representerar XML-dokumenttypen och är en av klasserna som implementerar ITypedFact-gränssnittet . Dessa klasser kallas för inskrivna fakta.
När du använder en nod från ett XML-dokument som ett argument i en regel skapas två XPath-uttryck: en selektorbindning och en fältbindning baserat på den nod som du väljer att använda:
Om noden har underordnade noder skapas en selektorbindning, även kallad en XmlDocument-bindning , till noden, men ingen fältbindning skapas.
Om noden inte har underordnade noder skapas en selector-bindning, även kallad en XmlDocument-bindning , till nodens överordnade nod. En fältbindning, även kallad xmldocumentMember-bindning, skapas till själva noden. Den här fältbindningen är relativ till väljarebindningen.
Innan du drar en XML-nod till ett regelargument kan du ändra standarduttrycken för XPath för XML-noderna och den nya bindningsinformationen placeras i regeluppsättningen.
Kommentar
När schemat läses in på nytt i Microsoft Rules Composer måste du ange eventuella ändringar som du har gjort i XPath-uttrycken i Microsoft Rules Composer.
Anta till exempel att du har följande XML-schema:
Om du använder noden Inkomst i ett argument skapas endast en väljarebindning eftersom noden har underordnade noder.
I fönstret Egenskaper innehåller nodens XPath Selector-egenskap följande XPath-standarduttryck:
/*[local-name()='Root' and namespace-uri()='http://LoansProcessor.Case']/*[local-name()='Income' and namespace-uri()='']
Om du använder noden Namn i ett argument skapas både en väljarebindning och en fältbindning.
I fönstret Egenskaper visas nodens bindningsinformation som följande:
Property Värde XPath-fält *[local-name()='Name' and namespace-uri()='']
XPath-väljare /*[local-name()='Root' and namespace-uri()='http://LoansProcessor.Case']