Hinzufügen arithmetischer und logischer Operatoren zu Regeln mithilfe von Microsoft Rules Composer (Vorschau)
Gilt für: Azure Logic Apps (Standard)
Wichtig
Diese Funktion befindet sich in der Vorschauphase und unterliegt den Zusätzlichen Nutzungsbedingungen für Microsoft Azure-Vorschauversionen.
In diesem Leitfaden wird beschrieben, wie Sie den Regeln in Ihrem Regelsatz mithilfe von Microsoft Rules Composer arithmetische und logische Operatoren hinzufügen.
Voraussetzungen
Das heruntergeladene und installierte Tool Microsoft Rules Composer
XML-Datei mit dem Regelsatz, an dem Sie arbeiten möchten
Hinzufügen eines arithmetischen Operators zu einer Regel
Sie können einer Bedingung oder Aktion in einer Regel einen arithmetischen Operator hinzufügen. In der folgenden Tabelle werden die verfügbaren arithmetischen Operatoren beschrieben:
Arithmetischer Operator | Beschreibung |
---|---|
Add (Hinzufügen) | Additionsoperator, der arg1 zu arg2 hinzufügt |
Subtrahieren | Subtraktionsoperator, der arg1 von arg2 subtrahiert |
Multiplizieren | Multiplikationsoperator, der arg1 mit arg2 multipliziert |
Dividieren | Divisionsoperator, der arg1 durch arg2 teilt |
Remainder | Restoperator, der arg1 modulo arg2 ausführt |
Laden Sie in Microsoft Rules Composer die XML-Datei, die den Regelspeicher enthält, an dem Sie arbeiten möchten.
Suchen Sie im Fenster RuleSet-Explorer die von Ihnen gewünschte Regel, und wählen Sie diese aus.
Wählen Sie im Fenster Fakten-Explorer die Registerkarte Vokabulare aus.
Ziehen Sie unter Vokabulare>Funktionen>Version 1.0 den von Ihnen gewünschten arithmetischen Operator zum Argument in einer Bedingung im Bedingungs-Editor oder zu einer Aktion im Aktions-Editor.
Geben Sie in den Argumenten für Bedingungen oder Aktionen die Werte für linke und rechte Operanden an.
Wenn die Operanden unterschiedliche Typen aufweisen, führt die Regel-Engine eine automatische numerische Höherstufung durch, bei der die Engine den kleineren Operandentyp in den größeren Operandentyp konvertiert.
Beispiel: Angenommen, Sie verwenden den Operator Add für einen Operanden mit dem int-Typ und einen Operanden mit dem long-Typ. Bevor die Engine den Vorgang Add ausführt, konvertiert die Engine den int-Typ in den long-Typ.
Wenn die Engine beide Operanden in einen gemeinsamen Typ höher stufen kann, unterstützt die Engine die doppelte Höherstufung.
Beispiel: Angenommen, Sie verwenden den Operator Add für einen Operanden mit dem int-Typ und einen Operanden mit dem uint-Typ. Bevor die Engine den Vorgang Add ausführt, konvertiert die Engine beide Operandentypen in den long-Typ.
Hinzufügen eines logischen Operators zu einer Regel
Sie können in einer Bedingung einem Prädikat einen logischen Operator hinzufügen. Die folgende Tabelle beschreibt die verfügbaren logischen Operatoren.
Logischer Operator | Beschreibung |
---|---|
AND | Kombiniert zwei oder mehr Prädikate, um einen logischen AND-Ausdruck zu bilden. Gibt TRUE zurück, wenn beide Prädikate als TRUE ausgewertet werden. Andernfalls wird FALSE zurückgegeben. |
ODER | Kombiniert zwei oder mehr Prädikate, um einen logischen OR-Ausdruck zu bilden. Gibt TRUE zurück, wenn ein Prädikat als TRUE ausgewertet wird. Andernfalls wird FALSE zurückgegeben. |
NOT | Negiert einen logischen Ausdrucks oder ein Prädikat. Gibt TRUE zurück, wenn das Prädikat als FALSE ausgewertet wird. Andernfalls wird FALSE zurückgegeben. |
Laden Sie in Microsoft Rules Composer die XML-Datei, die den Regelspeicher enthält, an dem Sie arbeiten möchten.
Suchen Sie im Fenster RuleSet-Explorer die von Ihnen gewünschte Regel, und wählen Sie diese aus.
Wählen Sie im Bereich IF aus dem Kontextmenü Bedingungen einen der folgenden Befehle aus:
Logischer Operator Beschreibung Logisches AND hinzufügen Kombiniert zwei oder mehr Prädikate, um einen logischen AND-Ausdruck zu bilden. Logisches OR hinzufügen Kombiniert zwei oder mehr Prädikate, um einen logischen OR-Ausdruck zu bilden. Logisches NOT hinzufügen Negiert einen logischen Ausdrucks oder ein Prädikat. Öffnen Sie im Bedingungs-Editor das Kontextmenü des Operators, und fügen Sie die von Ihnen gewünschten Prädikate oder geschachtelten logischen Operatoren hinzu.
Wenn die Operanden unterschiedliche Typen aufweisen, konvertiert die Rege-Engine den Typ für einen Operanden in den Typ für den anderen Operanden, oder sie konvertiert die Typen für beide Operanden in einen gemeinsamen Typ, bevor sie den Ausdruck auswerten.
Behandeln von NULL-Werten
Im folgenden Abschnitt werden die erwarteten Verhaltensweisen für NULL-Werte beschrieben, die unterschiedlichen Typen zugeordnet sind. Zudem bietet er Optionen zum Überprüfen von NULL-Werten oder der Existenz eines bestimmten Felds oder Elements.
.NET-Klassen
Die Felder von Typen, die vom Object-Typ abgeleitet sind, können auf NULL festlegt werden.
Sie können NULL als Argument für Parameter übergeben, die keine Werttypen sind, jedoch tritt möglicherweise basierend auf der Implementierung des Members ein Laufzeitfehler auf.
Sie können NULL nicht für einen Vergleich verwenden, wenn der Rückgabetyp kein Object-Typ ist.
XML-Elemente
Ein XML-Dokument gibt niemals einen XML-Wert als NULL zurück. Stattdessen handelt es sich bei diesem Wert um eine leere Zeichenfolge oder den Fehler „Nicht vorhanden“. Bei einer leeren Zeichenfolge kann beim Erstellen einer Regel ein Fehler für die Konvertierung bestimmter Typen auftreten – beispielsweise bei Feldern, die als ganzzahliger Typ angegeben sind.
Microsoft Rules Composer ermöglicht es Ihnen nicht, ein Feld auf NULL festzulegen oder einen Feldtyp auf Object festzulegen.
Der Typ kann über das Objektmodell auf Object festgelegt werden. In diesem Fall weist der zurückgegebene Wert den Typ auf, mit dem der XPath-Ausdruck ausgewertet wird – basierend auf dem XPath-Ausdruck beispielsweise Float, Boolean oder String.
Überprüfen auf NULL oder Existenz
Beim Schreiben von Regeln sollten Sie selbstverständlich überprüfen, ob ein Feld vorhanden ist, bevor Sie den Wert des Felds vergleichen. Wenn das Feld jedoch einen NULL-Wert aufweist oder nicht vorhanden ist, tritt beim Vergleich des Werts ein Fehler auf.
Beispiel: Angenommen, Sie haben die folgende Regel:
IF Product/Quantity Exists AND Product/Quantity > 1
Wenn Product/Quantity nicht vorhanden ist, löst die Regel einen Fehler aus. Um dieses Problem zu umgehen, können Sie einen übergeordneten Knoten an eine Hilfsmethode übergeben, die den Product/Quantity-Wert zurückgibt, wenn dieses Element vorhanden ist, oder einen anderen Wert zurückgibt, wenn dieses Element nicht vorhanden ist.
Das folgende Beispiel veranschaulicht die aktualisierte und neue Regel für Hilfsmethoden:
Regel 1
IF Exists(Product/Quantity) THEN Assert(CreateObject(typeof(Helper), Product/Quantity))
Regel 2
IF Helper.Value == X THEN...
Als weitere mögliche Lösung können Sie eine Regel wie im folgenden Beispiel erstellen:
IF Product/Quantity Exists THEN CheckQuantityAndDoSomething(Product/Quantity)
Im vorherigen Beispiel überprüft die <CheckQuantityAndDoSomething>
-Funktion den Parameterwert und wird ausgeführt, wenn die Bedingung erfüllt ist.
Hinweis
Alternativ können Sie die Eigenschaft XPath Field für das XML-Fakt ändern, um Fehler abzufangen. Dieser Ansatz wird jedoch nicht empfohlen.