Dodawanie operatorów arytmetycznych i logicznych do reguł przy użyciu narzędzia Microsoft Rules Composer (wersja zapoznawcza)
Dotyczy: Azure Logic Apps (Standardowa)
Ważne
Ta funkcja jest dostępna w wersji zapoznawczej i podlega dodatkowym warunkom użytkowania wersji zapoznawczej platformy Microsoft Azure.
W tym przewodniku opisano sposób dodawania operatorów arytmetycznych i logicznych do reguł w zestawie reguł przy użyciu narzędzia Microsoft Rules Composer.
Wymagania wstępne
Pobierz i zainstaluj program Microsoft Rules Composer.
Plik XML zawierający zestaw reguł, nad którym chcesz pracować.
Dodawanie operatora arytmetycznego do reguły
Operator arytmetyczny można dodać do warunku lub akcji w regule. W poniższej tabeli opisano dostępne operatory arytmetyczne:
Operator arytmetyczny | opis |
---|---|
Dodaj | Operator dodawania, który dodaje element arg1 do arg2. |
Subtract | Operator odejmowania, który odejmuje arg1 z arg2. |
Mnożyć | Operator mnożenia, który mnoży arg1 przez arg2. |
Dzielić | Operator dzielenia, który dzieli arg1 przez arg2. |
Reszta | Operator reszty, który wykonuje arg1 modulo arg2. |
W narzędziu Microsoft Rules Composer załaduj plik XML zawierający magazyn reguł, nad którym chcesz pracować.
W oknie Eksplorator zestawu reguł znajdź i wybierz odpowiednią regułę.
W oknie Eksplorator faktów wybierz kartę Słownictwo.
W obszarze Słownictwo>Functions>w wersji 1.0 przeciągnij operator arytmetyczny, który ma zostać argumentem w warunku w edytorze warunków lub akcji w edytorze akcji.
W argumentach warunku lub akcji określ wartości argumentów operacji po lewej i prawej stronie.
Jeśli operandy mają różne typy, aparat reguł wykonuje automatyczne podwyższanie liczby, gdzie aparat konwertuje mniejszy typ operandu na większy typ operandu.
Załóżmy na przykład, że używasz operatora Dodaj na operandie, który ma typ int i operand o długim typie. Zanim aparat wykona operację Dodaj , aparat konwertuje typ int na długi typ.
Jeśli aparat może podwyższyć poziom obu operandów do wspólnego typu, aparat obsługuje podwyższanie poziomu podwójnego.
Załóżmy na przykład, że używasz operatora Dodaj na operandie, który ma typ int i operand z typem uint . Zanim aparat wykona operację Dodaj , aparat konwertuje oba typy operandów na długi typ.
Dodawanie operatora logicznego do reguły
Operator logiczny można dodać do predykatu w warunku. W poniższej tabeli opisano dostępne operatory logiczne:
Operator logiczny | opis |
---|---|
I | Połącz co najmniej dwa predykaty, aby utworzyć logiczne wyrażenie AND . Zwraca wartość true , jeśli oba predykaty mają wartość true. W przeciwnym razie zwraca wartość false. |
OR | Połącz co najmniej dwa predykaty, aby utworzyć wyrażenie logiczne OR . Zwraca wartość true , jeśli jeden predykat daje wartość true. W przeciwnym razie zwraca wartość false. |
NIE | Negowanie wyrażenia logicznego lub predykatu. Zwraca wartość true , jeśli predykat daje wartość false. W przeciwnym razie zwraca wartość false. |
W narzędziu Microsoft Rules Composer załaduj plik XML zawierający magazyn reguł, nad którym chcesz pracować.
W oknie Eksplorator zestawu reguł znajdź i wybierz odpowiednią regułę.
W okienku IF , który jest edytorem warunków, w menu skrótów Warunki wybierz jedno z następujących poleceń:
Operator logiczny opis Dodawanie wartości logicznej AND Połącz co najmniej dwa predykaty, aby utworzyć logiczne wyrażenie AND . Dodawanie logicznego OR Połącz co najmniej dwa predykaty, aby utworzyć wyrażenie logiczne OR . Dodaj wartość logiczną NOT Negowanie wyrażenia logicznego lub predykatu. W edytorze warunków otwórz menu skrótów operatora i dodaj żądane predykaty lub zagnieżdżone operatory logiczne.
Jeśli operandy mają różne typy, aparat reguł konwertuje typ jednego operandu, aby był zgodny z typem drugiego operandu, lub konwertuje typy dla obu operandów na wspólny typ przed oceną wyrażenia.
Obsługa wartości null
W poniższej sekcji opisano oczekiwane zachowania wartości null skojarzonych z różnymi typami i przedstawiono opcje sprawdzania wartości null lub istnienia określonego pola lub elementu członkowskiego.
Klasy platformy .NET
W przypadku typów pochodnych od typu obiektu można ustawić ich pola na wartość null.
Wartość null można przekazać jako argument parametrów, które nie są typami wartości, ale może wystąpić błąd środowiska uruchomieniowego na podstawie implementacji elementu członkowskiego.
Nie można użyć wartości null do porównania, jeśli zwracany typ nie jest typem obiektu .
Elementy XML
Dokument XML nigdy nie zwraca wartości XML jako null. Zamiast tego ta wartość jest ciągiem pustym lub błędem "nie istnieje". W przypadku pustego ciągu może wystąpić błąd konwersji niektórych typów, takich jak pola określone jako typ liczby całkowitej podczas tworzenia reguły.
Program Microsoft Rules Composer nie zezwala na ustawienie pola na wartość null lub ustawienie typu pola na Object.
Za pomocą modelu obiektu można ustawić typ na Object. W takim przypadku zwracana wartość ma typ, do którego zwracana jest wartość XPath, taka jak Float, Boolean lub String, na podstawie wyrażenia XPath.
Sprawdzanie wartości null lub istnienia
Podczas pisania reguł naturalnie chcesz sprawdzić, czy pole istnieje przed porównaniem jego wartości. Jeśli jednak pole ma wartość null lub nie istnieje, porównanie wartości powoduje błąd.
Załóżmy na przykład, że masz następującą regułę:
IF Product/Quantity Exists AND Product/Quantity > 1
Jeśli produkt/ilość nie istnieje, reguła zgłasza błąd. Aby obejść ten problem, możesz przekazać węzeł nadrzędny do metody pomocniczej zwracającej wartość Product/Quantity , jeśli ten element istnieje, lub zwrócić coś innego, jeśli ten element nie istnieje.
W poniższym przykładzie przedstawiono zaktualizowaną i nową regułę metody pomocniczej:
Reguła 1
IF Exists(Product/Quantity) THEN Assert(CreateObject(typeof(Helper), Product/Quantity))
Reguła 2
IF Helper.Value == X THEN...
Jako inne możliwe rozwiązanie można utworzyć regułę, taką jak poniższy przykład:
IF Product/Quantity Exists THEN CheckQuantityAndDoSomething(Product/Quantity)
W poprzednim przykładzie <CheckQuantityAndDoSomething>
funkcja sprawdza wartość parametru i wykonuje, jeśli warunek jest spełniony.
Uwaga
Alternatywnie można zmodyfikować właściwość XPath Field dla faktu XML, aby przechwycić błędy, ale takie podejście nie jest zalecane.