Számtani és logikai operátorok hozzáadása a szabályokhoz a Microsoft Rules Composer (előzetes verzió) használatával
A következőkre vonatkozik: Azure Logic Apps (Standard)
Fontos
Ez a funkció előzetes verzióban érhető el, és a Microsoft Azure előzetes verziójának kiegészítő használati feltételei vonatkoznak.
Ez az útmutató bemutatja, hogyan adhat hozzá számtani és logikai operátorokat a szabálykészlet szabályaihoz a Microsoft Rules Composer használatával.
Előfeltételek
Töltse le és telepítse a Microsoft Rules Composert.
A használni kívánt szabálykészletet tartalmazó XML-fájl.
Számtani operátor hozzáadása egy szabályhoz
A szabályban szereplő feltételhez vagy művelethez aritmetikai operátort is hozzáadhat. Az alábbi táblázat a rendelkezésre álló számtani operátorokat ismerteti:
Számtani operátor | Leírás |
---|---|
Hozzáadás | A hozzáadási operátor, amely hozzáadja az arg1-et az arg2-hez. |
Kivon | Az a kivonási operátor, amely kivonja az arg1-et az arg2-ből. |
Szoroz | Az a szorzási operátor, amely megszorozza az arg1-et az arg2-vel. |
Oszt | Az arg1 és arg2 osztás operátora. |
Maradék | Az arg1 modulo arg2-t végrehajtó fennmaradó operátor. |
A Microsoft Rules Composerben töltse be a használni kívánt szabálytárolót tartalmazó XML-fájlt.
A RuleSet Explorer ablakban keresse meg és válassza ki a kívánt szabályt.
A Tényfeltáró ablakban válassza a Vocabularies lapot.
A Vocabularies>Functions>1.0-s verziójában húzza a feltételszerkesztő egyik feltételében lévő argumentumként használni kívánt számtani operátort, vagy egy műveletet a műveletszerkesztőben.
A feltétel- vagy műveletargumentumokban adja meg a bal és a jobb operandus értékeit.
Ha az operandusok különböző típusúak, a szabálymotor automatikus numerikus előléptetést hajt végre, ahol a motor a kisebb operandus típust a nagyobb operandus típussá alakítja.
Tegyük fel például, hogy az Add operátort egy int típusú operanduson és egy hosszú típusú operanduson használja. Mielőtt a motor végrehajtja a Hozzáadás műveletet, a motor a int típust hosszú típussá alakítja.
Ha a motor mindkét operandust elő tudja mozdítani egy közös típusra, a motor támogatja a dupla előléptetést.
Tegyük fel például, hogy az Add operátort egy int típusú operanduson és egy uint típusú operanduson használja. Mielőtt a motor végrehajtja a Hozzáadás műveletet, a motor mindkét operandustípust hosszú típussá alakítja.
Logikai operátor hozzáadása szabályhoz
A feltételes predikátumhoz logikai operátort is hozzáadhat. Az alábbi táblázat a rendelkezésre álló logikai operátorokat ismerteti:
Logikai operátor | Leírás |
---|---|
ÉS | Két vagy több predikátum egyesítése logikai ÉS kifejezés létrehozásához. Igaz értéket ad vissza, ha mindkét predikátum értéke igaz. Ellenkező esetben hamis értéket ad vissza. |
VAGY | Két vagy több predikátum egyesítése logikai VAGY kifejezés létrehozásához. Igaz értéket ad vissza, ha egy predikátum igaz értéket ad vissza. Ellenkező esetben hamis értéket ad vissza. |
NEM | Logikai kifejezés vagy predikátum tagadása. Igaz értéket ad vissza, ha a predikátum értéke hamis. Ellenkező esetben hamis értéket ad vissza. |
A Microsoft Rules Composerben töltse be a használni kívánt szabálytárolót tartalmazó XML-fájlt.
A RuleSet Explorer ablakban keresse meg és válassza ki a kívánt szabályt.
A feltételek szerkesztője, a HA panelen a Feltételek helyi menüben válassza az alábbi parancsok egyikét:
Logikai operátor Leírás Logikai ÉS Két vagy több predikátum egyesítése logikai ÉS kifejezés létrehozásához. Logikai VAGY Két vagy több predikátum egyesítése logikai VAGY kifejezés létrehozásához. Logikai NOT hozzáadása Logikai kifejezés vagy predikátum tagadása. A Feltételek szerkesztőben nyissa meg az operátor helyi menüjét, és adja hozzá a kívánt predikátumokat vagy beágyazott logikai operátorokat.
Ha az operandusok különböző típusúak, a szabálymotor az egyik operandus típusát a másik operandus típusának megfelelővé alakítja, vagy mindkét operandus típusát egy közös típussá alakítja a kifejezés kiértékelése előtt.
A null értékek kezelése
Az alábbi szakasz a különböző típusokhoz társított null értékek várt viselkedését ismerteti, és lehetőséget biztosít a null érték ellenőrzésére, illetve egy adott mező vagy tag meglétének ellenőrzésére.
.NET-osztályok
Az objektumtípusból származtatott típusok esetében a mezőket null értékre állíthatja.
A nem érték típusú paraméterek argumentumaként null értéket adhat át, de futásidejű hibát kaphat a tag implementációja alapján.
Nem használható null érték az összehasonlításhoz, ha a visszatérési típus nem objektumtípus .
XML-elemek
Egy XML-dokumentum soha nem ad vissza null értékű XML-értéket. Ehelyett ez az érték egy üres sztring vagy egy "nem létezik" hiba. Üres sztring esetén hiba léphet fel bizonyos típusok, például a szabály létrehozásakor egész számtípusként megadott mezők konvertálása során.
A Microsoft Rules Composer nem teszi lehetővé, hogy null értékűre állítson be egy mezőt, vagy egy mezőtípust objektumra állítson be.
Az objektummodellen keresztül a típust Objektum értékre állíthatja. Ebben az esetben a visszaadott érték az XPath által kiértékelt típussal rendelkezik, például lebegtetés, logikai vagy sztring az XPath-kifejezés alapján.
Null érték vagy létezés ellenőrzése
Szabályok írásakor természetesen ellenőriznie kell, hogy létezik-e mező, mielőtt összehasonlítja az értékét. Ha azonban a mező null értékű, vagy nem létezik, az érték összehasonlítása hibát okoz.
Tegyük fel például, hogy a következő szabályt követi:
IF Product/Quantity Exists AND Product/Quantity > 1
Ha a termék/mennyiség nem létezik, a szabály hibát jelez. A probléma megoldásához átadhat egy szülőcsomópontot egy segédmetódusnak, amely visszaadja a Termék/Mennyiség értéket, ha az elem létezik, vagy visszaadhat valami mást, ha az elem nem létezik.
Az alábbi példa a frissített és az új segédmetódus-szabályt mutatja be:
1. szabály
IF Exists(Product/Quantity) THEN Assert(CreateObject(typeof(Helper), Product/Quantity))
2. szabály
IF Helper.Value == X THEN...
Egy másik lehetséges megoldásként létrehozhat egy szabályt, például a következő példát:
IF Product/Quantity Exists THEN CheckQuantityAndDoSomething(Product/Quantity)
Az előző példában a <CheckQuantityAndDoSomething>
függvény ellenőrzi a paraméter értékét, és végrehajtja, ha a feltétel teljesül.
Feljegyzés
Másik lehetőségként módosíthatja az XML-tény XPath Mező tulajdonságát, hogy hibákat észleljen, de ez a megközelítés nem ajánlott.