Condividi tramite


Aggiungere operatori aritmetici e logici alle regole usando Microsoft Rules Composer

Si applica: Azure Logic Apps (Standard)

Questa guida illustra come aggiungere operatori aritmetici e logici alle regole nel set di regole usando Microsoft Rules Composer.

Prerequisiti

Aggiungere un operatore aritmetico a una regola

È possibile aggiungere un operatore aritmetico a una condizione o a un'azione in una regola. Nella tabella seguente vengono descritti gli operatori aritmetici disponibili:

Operatore aritmetico Descrizione
Aggiunta Operatore di addizione che aggiunge arg1 a arg2.
Sottrai Operatore di sottrazione che sottrae arg1 da arg2.
Moltiplicare Operatore di moltiplicazione che moltiplica arg1 per arg2.
Dividere Operatore di divisione che divide arg1 per arg2.
Resto Operatore di resto che esegue arg1 modulo arg2.
  1. In Microsoft Rules Composer caricare il file XML contenente l'archivio regole su cui si vuole lavorare.

  2. Nella finestra Esplora set di regole, trova e seleziona la regola desiderata.

  3. Nella finestra Esplora Fatti, selezionare la scheda Vocabolari.

  4. In Vocabolari>Funzioni>Versione 1.0, trascinare l'operatore aritmetico che si desidera a un argomento in una condizione nell'editor delle condizioni o in un'azione nell'editor delle azioni.

  5. Negli argomenti condizione o azione specificare i valori per gli operandi sinistro e destro.

    • Se gli operandi hanno tipi diversi, il motore delle regole esegue la promozione numerica automatica in cui il motore converte il tipo di operando più piccolo nel tipo di operando più grande.

      Si supponga, ad esempio, di usare l'operatore Add su un operando con tipo int e un operando con tipo long. Prima che il motore esegua l'operazione Add, il motore converte il int nel tipo long.

    • Se il motore può promuovere entrambi gli operandi a un tipo comune, il motore supporta la doppia promozione.

      Si supponga, ad esempio, di usare l'operatore Add su un operando con tipo int e un operando con tipo uint. Prima che il motore esegua l'operazione Add, esso converte entrambi i tipi di operando nel tipo long.

Aggiungere un operatore logico a una regola

È possibile aggiungere un operatore logico a un predicato in una condizione. La tabella seguente descrive gli operatori logici disponibili:

Operatore logico Descrizione
E Combinare due o più predicati per formare un'espressione AND logica. Restituisce true se entrambi i predicati restituiscono true. In caso contrario, restituisce false.
OPPURE Combinare due o più predicati per formare un'espressione OR logica. Restituisce true se un predicato valuta true. In caso contrario, restituisce false.
NON Nega un'espressione logica o un predicato. Restituisce true se il predicato restituisce false. In caso contrario, restituisce false.
  1. In Microsoft Rules Composer caricare il file XML contenente l'archivio regole su cui si vuole lavorare.

  2. Nella finestra Esplora Set Regole, trova e seleziona la regola desiderata.

  3. Nel riquadro IF, ovvero l'editor condizioni, dal menu di scelta rapida Condizioni selezionare uno dei comandi seguenti:

    Operatore logico Descrizione
    Aggiungere l'operatore logico AND Combinare due o più predicati per formare un'espressione AND logica.
    Aggiungere OR logico Combinare due o più predicati per formare un'espressione OR logica.
    Aggiungere NOT logico Nega un'espressione logica o un predicato.
  4. Nell'editor delle condizioni aprire il menu di scelta rapida dell'operatore e aggiungere i predicati o gli operatori logici annidati desiderati.

    Se gli operandi hanno tipi diversi, il motore regole converte il tipo per un operando in modo che corrisponda al tipo per l'altro operando oppure converte i tipi per entrambi gli operandi in un tipo comune prima di valutare l'espressione.

Gestire i valori nulli

Nella sezione seguente vengono descritti i comportamenti previsti per i valori Null associati a tipi diversi e vengono fornite opzioni per controllare null o l'esistenza di un campo o di un membro specifico.

Classi .NET

  • Per i tipi derivati dal tipo Object , è possibile impostare i relativi campi su Null.

  • È possibile passare null come argomento per i parametri che non sono tipi valore, ma potrebbe verificarsi un errore a runtime, in base all'implementazione del membro.

  • Non è possibile usare Null per il confronto se il tipo restituito non è un tipo Object .

Elementi XML

  • Un documento XML non restituisce mai un valore XML come Null. Questo valore è invece una stringa vuota o un errore "non esiste". Per una stringa vuota, potrebbe verificarsi un errore per la conversione di determinati tipi, ad esempio i campi specificati come tipo integer quando si compila una regola.

  • Microsoft Rules Composer non consente di impostare un campo su Null o di impostare un tipo di campo su Object.

  • Tramite il modello a oggetti è possibile impostare il tipo su Object. In questo caso, il valore restituito ha il tipo a cui l'XPath valuta, ad esempio Float, Boolean o String, in base all'espressione XPath.

Verificare il valore null o l'esistenza

Quando si scrivono regole, naturalmente si vuole verificare che un campo esista prima di confrontarne il valore. Tuttavia, se il campo è Null o non esiste, il confronto del valore causa un errore.

Si supponga, ad esempio, di avere la regola seguente:

IF Product/Quantity Exists AND Product/Quantity > 1

Se Product/Quantity non esiste, la regola genera un errore. Per risolvere questo problema, è possibile passare un nodo padre a un metodo helper che restituisce il valore Product/Quantity se tale elemento esiste o restituire un altro elemento se tale elemento non esiste.

L'esempio seguente mostra la regola aggiornata e la nuova regola del metodo helper:

Regola 1

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

Regola 2

IF Helper.Value == X THEN...

Come un'altra possibile soluzione, è possibile creare una regola come l'esempio seguente:

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

Nell'esempio precedente la <CheckQuantityAndDoSomething> funzione controlla il valore del parametro ed esegue se la condizione viene soddisfatta.

Per determinare se un argomento esistente è nullo, usare il composer.

argument is equal to <null>

Nota

In alternativa, è possibile modificare la proprietà Campo XPath per il fatto XML per rilevare eventuali errori, ma questo approccio non è consigliato.