Delen via


Rekenkundige en logische operators toevoegen aan regels met Behulp van Microsoft Rules Composer (preview)

Van toepassing op: Azure Logic Apps (Standard)

Belangrijk

Deze mogelijkheid is in preview en is onderworpen aan de aanvullende gebruiksvoorwaarden voor Microsoft Azure Previews.

In deze handleiding wordt beschreven hoe u rekenkundige en logische operators toevoegt aan de regels in uw regelset met behulp van Microsoft Rules Composer.

Vereisten

Een rekenkundige operator toevoegen aan een regel

U kunt een rekenkundige operator toevoegen aan een voorwaarde of actie in een regel. In de volgende tabel worden de beschikbare rekenkundige operatoren beschreven:

Rekenkundige operator Beschrijving
Toevoegen De optellingsoperator die arg1 toevoegt aan arg2.
Aftrekken De aftrekkingsoperator die arg1 aftrekken van arg2.
Vermenigvuldigen De vermenigvuldigingsoperator die arg1 vermenigvuldigt met arg2.
Verdelen De divisieoperator die arg1 deelt door arg2.
Rest De restoperator die arg1 modulo arg2 uitvoert.
  1. Laad in Microsoft Rules Composer het XML-bestand met het regelarchief waaraan u wilt werken.

  2. Zoek en selecteer in het venster RuleSet Explorer de gewenste regel.

  3. Selecteer in het venster Feitenverkenner het tabblad Woordenlijsten .

  4. Sleep onder Woordenlijstfuncties>>versie 1.0 de rekenkundige operator die u wilt gebruiken in een voorwaarde in de voorwaardeneditor of een actie in de actie-editor.

  5. Geef in de voorwaarde- of actieargumenten de waarden op voor linker- en rechteroperanden.

    • Als de operanden verschillende typen hebben, voert de regelengine automatische numerieke promotie uit waarbij de engine het kleinere operandtype converteert naar het grotere operandtype.

      Stel dat u de operator Toevoegen gebruikt voor een operand met een int-type en een operand met een lang type. Voordat de engine de bewerking Toevoegen uitvoert, converteert de engine het int-type naar het lange type.

    • Als de engine beide operanden naar een gemeenschappelijk type kan promoveren, ondersteunt de engine dubbele promotie.

      Stel dat u de operator Toevoegen gebruikt voor een operand met int-type en een operand met uint-type . Voordat de engine de bewerking Toevoegen uitvoert, converteert de engine beide operandentypen naar het lange type.

Een logische operator toevoegen aan een regel

U kunt een logische operator toevoegen aan een predicaat in een voorwaarde. In de volgende tabel worden de beschikbare logische operators beschreven:

Logische operator Beschrijving
EN Combineer twee of meer predicaten om een logische AND-expressie te vormen. Retourneert waar als beide predicaten waar opleveren. Anders wordt onwaar geretourneerd.
OF Combineer twee of meer predicaten om een logische OR-expressie te vormen. Retourneert waar als één predicaat waar oplevert. Anders wordt onwaar geretourneerd.
NIET Een logische expressie of predicaat negate. Retourneert waar als het predicaat onwaar oplevert. Anders wordt onwaar geretourneerd.
  1. Laad in Microsoft Rules Composer het XML-bestand met het regelarchief waaraan u wilt werken.

  2. Zoek en selecteer in het venster RuleSet Explorer de gewenste regel.

  3. Selecteer in het snelmenu Voorwaarden een van de volgende opdrachten in het deelvenster ALS, de editor voor voorwaarden:

    Logische operator Beschrijving
    Logische AND toevoegen Combineer twee of meer predicaten om een logische AND-expressie te vormen.
    Logische OR toevoegen Combineer twee of meer predicaten om een logische OR-expressie te vormen.
    Logische NOT toevoegen Een logische expressie of predicaat negate.
  4. Open in de voorwaardeneditor het snelmenu van de operator en voeg de gewenste logische predicaten of geneste logische operators toe.

    Als de operanden verschillende typen hebben, converteert de regelengine het type voor één operand zodat deze overeenkomt met het type voor de andere operand of converteert de typen voor beide operanden naar een gemeenschappelijk type voordat de expressie wordt geëvalueerd.

Omgaan met null-waarden

De volgende sectie beschrijft het verwachte gedrag voor null-waarden die zijn gekoppeld aan verschillende typen en biedt opties voor het controleren van null of het bestaan van een specifiek veld of lid.

.NET-klassen

  • Voor typen die zijn afgeleid van het objecttype , kunt u de bijbehorende velden instellen op null.

  • U kunt null doorgeven als argument voor parameters die geen waardetypen zijn, maar u krijgt mogelijk een runtimefout op basis van de implementatie van het lid.

  • U kunt null niet gebruiken voor vergelijking als het retourtype geen objecttype is.

XML-elementen

  • Een XML-document retourneert nooit een XML-waarde als null. In plaats daarvan is deze waarde een lege tekenreeks of een fout 'bestaat niet'. Voor een lege tekenreeks kan er een fout optreden voor de conversie van bepaalde typen, zoals velden die zijn opgegeven als een geheel getaltype wanneer u een regel bouwt.

  • Met Microsoft Rules Composer kunt u een veld niet instellen op null of een veldtype instellen op Object.

  • Via het objectmodel kunt u het type instellen op Object. In dit geval heeft de geretourneerde waarde het type waarnaar de XPath evalueert, zoals Float, Booleaanse waarde of Tekenreeks, op basis van de XPath-expressie.

Controleren op null of bestaan

Wanneer u regels schrijft, wilt u natuurlijk controleren of er een veld bestaat voordat u de waarde ervan vergelijkt. Als het veld echter null is of niet bestaat, veroorzaakt het vergelijken van de waarde een fout.

Stel dat u de volgende regel hebt:

IF Product/Quantity Exists AND Product/Quantity > 1

Als er geen product/hoeveelheid bestaat, genereert de regel een fout. Als u dit probleem wilt omzeilen, kunt u een bovenliggend knooppunt doorgeven aan een helpermethode die de waarde Product/Hoeveelheid retourneert als dat element bestaat of iets anders retourneren als dat element niet bestaat.

In het volgende voorbeeld ziet u de bijgewerkte en nieuwe helpermethoderegel:

Regel 1

IF Exists(Product/Quantity) THEN Assert(CreateObject(typeof(Helper), Product/Quantity))

Regel 2

IF Helper.Value == X THEN...

Als een andere mogelijke oplossing kunt u een regel maken, zoals het volgende voorbeeld:

IF Product/Quantity Exists THEN CheckQuantityAndDoSomething(Product/Quantity)

In het voorgaande voorbeeld controleert de <CheckQuantityAndDoSomething> functie de parameterwaarde en wordt uitgevoerd als aan de voorwaarde wordt voldaan.

Notitie

U kunt ook de eigenschap XPath-veld voor het XML-feit wijzigen om fouten te detecteren, maar deze methode wordt niet aanbevolen.