Compartir vía


Agregar operadores aritméticos y lógicos a las reglas mediante Microsoft Rules Composer (versión preliminar)

Se aplica a: Azure Logic Apps (estándar)

Importante

Esta funcionalidad está en versión preliminar y está sujeta a las Condiciones de uso complementarias para las versiones preliminares de Microsoft Azure.

Esta guía describe cómo agregar operadores aritméticos y lógicos a las reglas de su conjunto de reglas mediante Microsoft Rules Composer.

Requisitos previos

  • Descargue e instale el Microsoft Rules Composer.

  • El archivo XML que contiene el conjunto de reglas sobre el que desea trabajar.

Agregar un operador aritmético a una regla

Puede agregar un operador aritmético a una condición o acción de una regla. La siguiente tabla describe los operadores aritméticos disponibles:

Operadores aritméticos Descripción
Add (Agregar) El operador de suma que agrega arg1 a arg2.
Restar El operador de sustracción que resta arg1 de arg2.
Multiplicar El operador de multiplicación que multiplica arg1 por arg2.
Dividir El operador de división que divide arg1 entre arg2.
Remainder El operador que realiza arg1 modulo arg2.
  1. En Microsoft Rules Composer, cargue el archivo XML que contiene el almacén de reglas en el que desea trabajar.

  2. En la ventana Explorador RuleSet, busque y seleccione la regla que desee.

  3. En la ventana Explorador de hechos, seleccione la pestaña Vocabularios.

  4. En Vocabularios>Funciones>versión 1.0, arrastre el operador aritmético que desea a un argumento en una condición en el editor de condiciones o una acción en el editor de acciones.

  5. En los argumentos de condición o acción, especifique los valores de los operandos izquierdo y derecho.

    • Si los operandos tienen tipos diferentes, el motor de reglas realiza una promoción numérica automática en la que el motor convierte el tipo de operando menor en el tipo de operando mayor.

      Por ejemplo, supongamos que utilizamos el operador Agregar sobre un operando que tiene tipo int y un operando que tiene tipo largo. Antes de que el motor realice la operación Agregar, el motor convierte el tipo int al tipo largo.

    • Si el motor puede promover ambos operandos a un tipo común, el motor admite la doble promoción.

      Por ejemplo, supongamos que utilizamos el operador Agregar sobre un operando que tiene tipo int y un operando que tiene tipo uint. Antes de que el motor realice la operación de Agregar, convierte ambos tipos de operandos al tipo largo.

Agregar un operador lógico a una regla

Puede agregar un operador lógico a un predicado en una condición. La siguiente tabla describe los operadores lógicos disponibles:

Operador lógico Descripción
AND Combina dos o más predicados para formar una expresión lógica AND. Devuelve Verdadero si ambos predicados se evalúan como Verdadero. En caso contrario, devuelve Falso.
OR Combina dos o más predicados para formar una expresión lógica Y. Devuelve verdadero si un predicado se evalúa como verdadero. En caso contrario, devuelve Falso.
NOT Negar una expresión lógica o predicado. Devuelve verdadero si un predicado se evalúa como falso. En caso contrario, devuelve Falso.
  1. En Microsoft Rules Composer, cargue el archivo XML que contiene el almacén de reglas en el que desea trabajar.

  2. En la ventana Explorador RuleSet, busque y seleccione la regla que desee.

  3. En el panel SI, que es el editor de condiciones, en el menú contextual Condiciones, seleccione uno de los siguientes comandos:

    Operador lógico Descripción
    Agregar operador lógico AND Combina dos o más predicados para formar una expresión lógica AND.
    Agregar operador lógico OR Combina dos o más predicados para formar una expresión lógica Y.
    Agregar operador lógico NOT Negar una expresión lógica o predicado.
  4. En el editor de condiciones, abra el menú contextual del operador y agregue los predicados u operadores lógicos anidados que desee.

    Si los operandos tienen tipos diferentes, el motor de reglas convierte el tipo de un operando para que coincida con el tipo del otro operando, o convierte los tipos de ambos operandos a un tipo común antes de evaluar la expresión.

Control de valores NULL

En la siguiente sección se describen los comportamientos esperados para los valores nulos asociados a distintos tipos y se ofrecen opciones para comprobar la existencia de nulos o la existencia de un campo o miembro específico.

clases .NET

  • En el caso de los tipos derivados del tipo Objeto, puede establecer sus campos en NULL.

  • Puede pasar nulo como argumento para los parámetros que no son tipos de valor, pero puede obtener un error en tiempo de ejecución, en función de la implementación del miembro.

  • No se puede utilizar nulo para la comparación si el tipo de retorno no es un tipo Objeto.

elementos XML

  • Un documento XML nunca devuelve un valor XML como nulo. En su lugar, este valor es una cadena vacía o un error "no existe". En el caso de una cadena vacía, puede producirse un error en la conversión de determinados tipos, como los campos especificados como tipo entero al crear una regla.

  • Microsoft Rules Composer no permite establecer un campo en NULL o establecer un tipo de campo en Object.

  • A través del modelo de objeto, puede establecer el tipo a Objeto. En este caso, el valor devuelto tiene el tipo al que evalúa el XPath, como Float, Booleano, o Cadena, basado en la expresión XPath.

Comprobar si es nulo o si existe

Cuando escriba reglas, naturalmente querrá comprobar que un campo existe antes de comparar su valor. Sin embargo, si el campo es nulo o no existe, al comparar el valor se produce un error.

Por ejemplo, suponga que tiene la siguiente regla:

IF Product/Quantity Exists AND Product/Quantity > 1

Si Producto/Cantidad no existe, la regla arroja un error. Para solucionar este problema, puede pasar un nodo principal a un método auxiliar que devuelva el valor Producto/Cantidad si ese elemento existe, o devuelva otra cosa si ese elemento no existe.

El siguiente ejemplo muestra la regla actualizada y el nuevo método de ayuda:

Regla 1

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

Regla 2

IF Helper.Value == X THEN...

Como otra posible solución, puede crear una regla como la del siguiente ejemplo:

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

En el ejemplo anterior, la función <CheckQuantityAndDoSomething> comprueba el valor del parámetro y se ejecuta si se cumple la condición.

Nota:

Alternativamente, puede modificar la propiedad XPath Field para que el hecho XML detecte cualquier error, pero este enfoque no es recomendable.