Crear reglas con 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.
Las reglas rigen la lógica de funcionamiento de los procesos empresariales. Para ayudarle a crear estas reglas para utilizarlas con su proyecto Azure Logic Apps Rules Engine, Microsoft Rules Composer proporciona una herramienta visual para crear y versionar conjuntos de reglas y vocabularios.
Esta guía proporciona información general sobre el funcionamiento de las reglas y sobre cómo crear una regla con Microsoft Rules Composer.
Requisitos previos
Descargue e instale Microsoft Rules Composer.
Si tiene un conjunto de reglas existente sobre el que desea trabajar, necesita el archivo XML que contiene ese conjunto de reglas. En caso contrario, esta guía le muestra cómo crear un nuevo conjunto de reglas, que guardará como archivo XML.
Importante
Si su archivo XML existente depende de algún ensamblado .NET, o si los ensamblados que utiliza para agregar hechos tienen otras dependencias, asegúrese de mantener todos estos archivos en la misma carpeta y en un directorio local de Microsoft Rules Composer.
¿Qué es una regla?
Una regla es una instrucción declarativa que incluye una condición y acciones en las que se evalúa la condición. Si el resultado es verdadero, el motor de reglas realiza una o varias acciones. El siguiente formato define la sintaxis de las reglas en el motor de reglas de Azure Logic Apps:
Condición <SI> acción <THEN>
La siguiente regla de ejemplo determina si se debe realizar una transacción y aplica la lógica empresarial comparando dos valores monetarios con datos o hechos, que utilizan la forma de un importe de transacción y un descuento:
SI el importe de la compra es superior a la cantidad, THEN se aplica un descuento adicional al cliente
Condición: Expresión booleana de verdadero o falso que incluye uno o varios predicados que se aplican a los hechos. Un predicado es una cláusula que contiene un verbo y afirma algo sobre el sujeto. En nuestro ejemplo, el del predicado es mayor que se aplica al hecho de que importe adquirido. Esta condición siempre es verdadera o falsa. Puede combinar predicados con los operadores lógicos AND, O y NOT para formar una expresión lógica potencialmente larga, pero que siempre se evalúa como verdadero o falso.
Acción: una acción es una consecuencia funcional de la evaluación de una condición. Si se cumple la condición de una regla, se inicia la acción o acciones correspondientes. En nuestro ejemplo, aplicar un descuento adicional es una acción que solo se produce cuando la condición es verdadera, es decir, SI el importe de la compra es superior a 1 000 dólares. Las acciones se representan en el motor de reglas de Azure Logic Apps llamando a métodos, estableciendo propiedades en objetos o realizando operaciones de conjunto en documentos XML.
Hecho: un hecho es una información discreta sobre el mundo en la que operan las reglas. En nuestro ejemplo, el importe y la cantidad son hechos. Los hechos pueden proceder de muchas fuentes, como sistemas de eventos, objetos de aplicaciones híbridas, etc., y deben introducirse en el motor de reglas de Azure Logic Apps mediante uno de los siguientes elementos:
- Objetos .NET, como métodos, propiedades y campos.
- Documentos XML, como elementos, atributos y subsecciones de documentos.
Vocabulario: nombre amistoso de los hechos utilizados en condiciones y acciones. Para más información, consulte Crear y administrar vocabularios.
El diagrama y las secciones siguientes describen cómo encajan las condiciones, las acciones y los hechos:
Microsoft Rules Composer
Puede utilizar Microsoft Rules Composer para crear, modificar, versionar y guardar reglas. También puede realizar estas tareas mediante programación. Microsoft Rules Composer incluye los siguientes elementos de interfaz de usuario:
Periodo | Descripción |
---|---|
Explorador de RuleSet | Crear conjuntos de reglas que contengan una o más reglas. |
Editor de condiciones | Crear una condición para una regla. |
Editor de acciones | Crear acciones que se ejecutan cuando la condición se evalúa como verdadera. |
Explorador de hechos | Busque hechos XML y .NET, y luego arrástrelos al editor de condiciones o al editor de acciones. |
Crear y administrar un conjunto de reglas
Un conjunto de reglas es un conjunto de reglas que se agrupan en función del dominio, el contexto delimitado o cualquier límite empresarial. Para administrar conjuntos de reglas y reglas en el almacén de reglas, utilice el Explorador de RuleSet. Puede crear, modificar, probar o eliminar RuleSets y sus reglas.
En Microsoft Rules Composer, abra el menú Almacén de reglas y seleccione Cargar.
Busque y seleccione el archivo XML que contiene el almacén de reglas que desea abrir.
En la ventana Explorador de RuleSet , abra el menú contextual RuleSets y seleccione Agregar nuevo RuleSet .
Microsoft Rules Composer crea un nuevo conjunto de reglas vacío con una versión de conjunto de reglas numerada 1.0 como versión predeterminada.
Guarde el conjunto de reglas. En el menú Almacén de reglas, seleccione Guardar, lo que crea un archivo XML para el RuleSet.
La siguiente tabla describe otros comandos del Explorador de RuleSet que puede utilizar para trabajar con RuleSets:
Tarea | Get-Help |
---|---|
Crear un nuevo conjunto de reglas. | Agregar nuevo conjunto de reglas |
Cree una nueva versión vacía del conjunto de reglas seleccionado. Puede copiar reglas de otras versiones y pegarlas en la nueva. | Agregar nueva versión |
Copie la versión del conjunto de reglas seleccionado en el portapapeles. | Copiar |
Pegue una versión del conjunto de reglas y su contenido en un conjunto de reglas seleccionado. | Pegar |
Elimine la versión del conjunto de reglas seleccionada. | Eliminar |
Elimine el conjunto de reglas seleccionado y todas sus versiones. | Eliminar en el nivel del conjunto de reglas principal |
Vuelva a cargar la versión seleccionada del conjunto de reglas y sus reglas con la opción de descartar cualquier cambio actual en esa versión y restaurar el contenido desde el almacén de reglas. | Volver a cargar |
Guarde los cambios realizados en la versión seleccionada y sus reglas. | Guardar |
Pruebe la versión del conjunto de reglas seleccionado antes de utilizarlo con su proyecto de motor de reglas. | Conjunto de reglas de prueba |
La siguiente tabla describe las propiedades de una versión del conjunto de reglas:
Propiedad | Valor |
---|---|
Nombre | Nombre del conjunto de reglas. Nota: Nota: solo puede cambiar este valor actualizando la propiedad Nombre del conjunto de reglas, no la versión del conjunto de reglas. |
Versión actual | La versión del conjunto de reglas actualmente seleccionado en el Explorador de RuleSet. |
Recuperador de datos | El recuperador de hechos que se utilizará para suministrar hechos a la versión del conjunto de reglas. Microsoft Rules Composer permite crear y utilizar un recuperador de datos para suministrar datos. Para más información, consulte la siguiente documentación: - Realización de tareas avanzadas en conjuntos de reglas - Crear creadores y recuperadores de hechos |
Profundidad máxima del bucle de ejecución | La profundidad máxima del algoritmo de encadenamiento hacia delante antes de que se lance una excepción de bucle de ejecución. El número de bucles por defecto es 65 536 USD. |
Duración de traducción | La cantidad máxima de tiempo para traducir las reglas antes de que se lance una excepción de tiempo de espera de traducción. La duración por defecto es de 60 000 milisegundos. |
Traductor | El traductor que se utilizará para traducir las normas. Actualmente, Microsoft Rules Composer solo admite el traductor incorporado por defecto, pero también admite la extensibilidad para añadir más traductores. |
Descripción de la versión | La descripción de la versión actual. |
Para obtener más información sobre cómo trabajar con conjuntos de reglas, consulte Realizar tareas avanzadas en conjuntos de reglas.
Crear y administrar una regla
En Microsoft Rules Composer, en el menú Almacén de reglas, seleccione Cargar.
Busque y seleccione el archivo XML que contiene el almacén de reglas en el que desea trabajar.
En la ventana Explorador de RuleSet, busque la versión del RuleSet en la que desea agregar una regla.
Abra el menú contextual de la versión del conjunto de reglas y seleccione Agregar nueva regla.
El editor de reglas se abre para que pueda agregar sus condiciones y acciones.
La siguiente lista describe las formas en que puede modificar una regla:
Crear una nueva versión del conjunto de reglas.
Edite directamente una versión existente del conjunto de reglas. Puede modificar reglas individuales, agregar nuevas reglas o eliminar las existentes.
La siguiente tabla describe todos los comandos de acceso directo del Explorador de RuleSet que puede utilizar para trabajar con reglas:
Tarea | Comando de método abreviado |
---|---|
Crea una nueva regla en la versión del conjunto de reglas seleccionada. | Agregar una nueva regla |
Copiar la regla seleccionada en el portapapeles. | Copiar |
Copie la regla seleccionada en el portapapeles y elimínela. | Cortar |
Pegue una regla en la versión del conjunto de reglas seleccionada. | Pegar |
Elimine la regla seleccionada. | Eliminar |
La siguiente tabla describe las propiedades de una regla:
Propiedad | Valor |
---|---|
Nombre | El nombre de la regla. |
Activas | Indica si la regla está habilitada o deshabilitada. |
Prioridad | La prioridad de la regla dentro del conjunto de reglas. Cuanto mayor sea el índice, mayor será la prioridad de la regla. Las acciones de una regla de mayor prioridad se ejecutan primero. El valor por defecto es 0 y representa la prioridad media. Puede hacer que el valor sea positivo o negativo. Para más información, consulte Optimización de motores de reglas. |
Habilitar o deshabilitar una regla
Puede establecer una regla como inactiva para que no se ejecute cuando se ejecute el conjunto de reglas, o puede reactivar una regla que estaba desactivada.
En el Explorador de RuleSet, seleccione la regla.
En la ventana Propiedades, establezca la propiedad Activo en cualquiera de los siguientes valores:
- Falso: Deshabilitado
- Verdadero: Habilitado
Establecer la prioridad de las reglas
Puede establecer la prioridad de una regla para que las acciones se ejecuten antes o después de las acciones de otra regla con una prioridad diferente. Las prioridades son relativas, por lo que todas las acciones de una regla con una prioridad específica se ejecutan en orden antes que cualquier acción de una regla con un valor de prioridad inferior.
En el Explorador de RuleSet, seleccione la regla.
En la ventana Propiedades, establezca la Prioridad en el valor entero que desee.
Crear o editar una condición
Para crear, editar o ver una condición que activa una regla, utilice el editor de condiciones, que forma parte del editor de reglas. Para crear una condición, puede realizar las siguientes tareas:
Agregue predicados integrados o definidos por el usuario, si los hay.
Defina argumentos en predicados arrastrando elementos desde la ventana del Explorador de hechos.
Introduzca los valores de los argumentos en línea seleccionando un vínculo de argumento.
Mueva predicados y operadores lógicos dentro de una condición.
Nota:
El orden en que aparecen los predicados y los operadores lógicos no determina su orden de evaluación.
Elimine predicados y operadores lógicos de una condición.
Agregue un predicado a una condición
En el Explorador de RuleSet, seleccione la regla.
En la ventana SI, que es el editor de condiciones, abra el menú contextual Condiciones y elija una de las siguientes opciones:
Seleccione un operador lógico. En el menú contextual del operador, agregue los predicados u operadores lógicos anidados que desee evaluar.
Para obtener más información sobre la configuración de operadores lógicos, consulte Agregar operadores aritméticos y lógicos a las reglas
En el menú contextual Predicados, seleccione un predicado incorporado o un predicado definido por el usuario, si dispone de alguno.
Las siguientes tablas describen las expresiones de predicado disponibles para que las seleccione en los menús contextuales de Predicados:
Predicado integrado Descripción Después El predicado temporal que responde a la pregunta "¿El time1 es cronológicamente posterior al time2?" Antes El predicado temporal que responde a la pregunta "¿El time1 es cronológicamente anterior al time2?" Entre El predicado temporal que responde a la pregunta "¿El time1 está cronológicamente entre el time2 y el time3?" Es igual a El operador relacional de igualdad. Exists Predicado de existencia que responde a la pregunta "¿Existe el elemento o atributo XML especificado?" GreaterThan El operador relacional mayor que. GreaterThanEqual El operador relacional mayor o igual que. LessThan El operador relacional menor que. LessThanEqual El operador relacional menor o igual que. Coincidencia Determinar si existe una expresión regular en una cadena de entrada especificada. NotEqual El operador de desigualdad relacional. Range Determinar si un valor existe dentro de un rango.
Especificar un argumento para un predicado en una condición
Siga estos pasos, que son los mismos para una función en una acción.
Mover un operador lógico o predicado en una condición
En el editor de condiciones, realice uno de los siguientes pasos:
Arrastre el operador lógico o predicado sobre otro operador lógico o sobre el nodo Condiciones.
Abra el menú contextual del operador lógico o predicado y seleccione Subir o Bajar para mover el elemento una posición o nivel, respectivamente.
Crear o editar una acción
Para crear, editar o ver una acción que se ejecuta cuando se cumple una condición, utilice el editor de acciones, que forma parte del editor de reglas. Para crear una acción, puede realizar las siguientes tareas:
- Agregue funciones incorporadas o definidas por el usuario, si las hay.
- Defina argumentos en las funciones arrastrando elementos desde la ventana del Explorador de hechos.
- Introduzca los valores de los argumentos en línea seleccionando un vínculo de argumento.
- Desplazar funciones dentro de una acción.
Adición de una función
En el Explorador de RuleSet, seleccione la regla.
En la ventana THEN, que es el editor de acciones, abra el menú contextual Acciones y seleccione una función incorporada para agregar una acción y un argumento.
En la tabla siguiente se describen las funciones disponibles que puede seleccionar en el menú contextual Acciones:
Función Descripción Assert Agregue un nuevo hecho a la memoria de trabajo de la instancia del motor de reglas. Borrar Reinicia la memoria de trabajo y la agenda de la instancia del motor de reglas. Para más información sobre la memoria de trabajo y la agenda, consulte Optimización del motor de reglas. Halt Finalizar el procesamiento de reglas. Retract Eliminar un hecho de la memoria de trabajo de la instancia del motor de reglas. RetractByType Eliminar un hecho con el tipo especificado de la memoria de trabajo de la instancia del motor de reglas. Actualizar Actualizar un hecho en la memoria de trabajo de la instancia del motor de reglas.
Para más información, consulte Optimizar reglas con funciones de control.
Especificar un argumento para una función en una acción
Siga estos pasos, que son los mismos para un predicado en una condición.
Mover una función en una acción
Las acciones de una regla se ejecutan en el orden especificado, excepto las funciones de control del motor de reglas, que se ejecutan a continuación de otras acciones.
- En el editor de acciones, abra el menú contextual de la acción y seleccione Subir o Bajar para mover la acción una posición o nivel, respectivamente.
Especificar un argumento para un predicado en una condición o una función en una acción
En el editor de condiciones o en el editor de acciones correspondiente, realice uno de los siguientes pasos:
En el predicado o función, seleccione el argumento por defecto e introduzca el valor que desee o selecciónelo de una lista, si está disponible, cuando proceda.
En la ventana Explorador de hechos, seleccione la pestaña que contiene el término que desea utilizar como argumento y arrástrelo hasta el argumento del predicado o función en el editor correspondiente.
El término debe tener el tipo que espera el predicado o la función. De lo contrario, obtiene un error.
Para sustituir un argumento por un valor de cadena vacía, abra el menú contextual del argumento y seleccione Establecer como cadena vacía.
Para sustituir un argumento por una definición de constante nula, abra el menú contextual del argumento y seleccione Establecer como null.
Nota:
Esta opción puede no aparecer si el tipo de argumento no es un tipo que se pueda establecer como nulo.
Para agregar un operador aritmético o lógico a un argumento, consulte Agregar operadores aritméticos y lógicos a reglas.
Buscar la fuente del elemento en una condición o acción
En el editor de condiciones o acciones correspondiente, realice uno de los siguientes pasos:
Para localizar la definición de vocabulario en el Explorador de hechos que utilizó para crear un predicado en una condición, una función en una acción o un argumento en cualquiera de ellos, abra el menú contextual del predicado, función o argumento y seleccione Ir al vocabulario.
Para localizar un miembro .NET o un elemento XML en el Explorador de hechos que utilizó para crear un predicado en una condición, una función en una acción o un argumento en cualquiera de ellos, abra el menú contextual del predicado, función o argumento y seleccione Ir al hecho fuente.
Eliminar un predicado, un operador lógico o una acción
En el editor de condiciones, realice uno de los siguientes pasos:
Seleccione el elemento, y luego pulse la tecla Suprimir.
Seleccione el elemento, como un predicado, un operador lógico o una acción, y seleccione Eliminar <tipo de elemento>.
Para eliminar un argumento y los argumentos anidados y restablecer la definición por defecto, abra el menú contextual del argumento y seleccione Restablecer argumento.
Agregar datos a sus reglas
Es posible especificar referencias de origen de datos que puede guardar en el almacén de reglas para su posterior uso como hechos en reglas y vocabularios. Puede especificar ensamblados .NET que tengan clases y miembros de clases o esquemas XSD que tengan elementos y atributos de documentos XML.
Para examinar los datos que ya ha agregado desde un ensamblado .NET, un esquema XSD o como definiciones de vocabulario, en la ventana Explorador de hechos, seleccione la pestaña Vocabularios, la pestaña Esquemas XML o la pestaña Clases de .NET, en función de dónde existan los datos que desee.
Arrastre los datos desde la pestaña correspondiente hasta donde desee dentro de una condición en el editor de condiciones o dentro de una acción en el editor de acciones.
Agregar un ensamblado .NET como fuente de datos para hechos .NET
En la ventana Explorador de hechos, seleccione la pestaña Clases de .NET.
Abra el menú contextual del nodo Ensamblados .NET y seleccione Examinar.
Busque y abra el ensamblado .NET que desea utilizar.
En los ensamblados .NET, aparece el ensamblado seleccionado junto con sus clases y miembros, por ejemplo:
Importante
Si actualiza el ensamblado .NET en el directorio local, Microsoft Rules Composer no actualiza automáticamente el ensamblado .NET. Para conocer los pasos necesarios para actualizar las referencias a un ensamblado actualizado, consulte Actualizar referencias de ensamblados .NET.
Actualizar las referencias de ensamblado .NET
Si agrega un nuevo ensamblado .NET, ya sea con un nombre o una versión diferentes, debe actualizar el conjunto de reglas para que haga referencia al nuevo ensamblado. Para esta tarea, en Microsoft Rules Composer, debe crear una nueva versión del conjunto de reglas y actualizar las referencias al nuevo ensamblado, incluidas las clases, los métodos, etc. Para cargar el ensamblaje actualizado, asegúrese de reiniciar Microsoft Rules Composer.
Si el ensamblado .NET actualizado utiliza el mismo nombre, número de versión, etc., solo tiene que agregar el nuevo ensamblado al proyecto de la función del motor de reglas de Azure Logic Apps.
Eliminar un ensamblado .NET como fuente de datos
En la ventana Explorador de hechos, seleccione la pestaña Clases de .NET.
En ensamblados de .NET, abra el menú contextual del ensamblado y seleccione Quitar.
Agregar un esquema XML como fuente de datos para hechos XML
En la ventana Explorador de hechos, seleccione la pestaña Esquemas XML.
Abra el menú contextual del nodo Esquemas y seleccione Examinar.
En el cuadro Archivos de esquema, busque y seleccione el archivo de esquema XML (.xsd) y seleccione Abrir.
En Esquemas, aparece el esquema XML junto con sus elementos XML, por ejemplo:
Enlace de los elementos XML utilizados en los argumentos
En Business Rules Framework, la clase TypedXmlDocument es una biblioteca de clases compatible con Microsoft .NET que representa el tipo de documento XML y es una de las clases que implementa la interfaz ITypedFact. Estas clases se conocen como hechos con tipos.
Cuando utiliza un nodo de un documento XML como argumento en una regla, se crean dos expresiones XPath: un enlace de selector y un enlace de campo, basados en el nodo que elija utilizar:
Si el nodo tiene nodos secundarios, se crea un enlace selector, también conocido como enlace XmlDocument, para el nodo, pero no se crea ningún enlace de campo.
Si el nodo no tiene nodos hijos, se crea un enlace selector, también conocido como enlace XmlDocument, al nodo principal del nodo. Se crea un enlace de campo, también conocido como enlace XmlDocumentMember, al propio nodo. Este enlace de campo es relativo al enlace de selector.
Antes de arrastrar un nodo XML a un argumento de regla, puede cambiar las expresiones XPath predeterminadas para los nodos XML, y la nueva información de enlace se coloca en el conjunto de reglas.
Nota:
Cuando el esquema se vuelve a cargar en Microsoft Rules Composer, debe volver a introducir cualquier edición que haya realizado en las expresiones XPath en Microsoft Rules Composer.
Por ejemplo, supongamos que tiene el siguiente esquema XML:
Si utiliza el nodo Ingresos en un argumento, solo se crea un enlace de selector porque el nodo tiene nodos secundarios.
En la ventana Propiedades , la propiedad Selector XPath del nodo contiene la siguiente expresión XPath predeterminada:
/*[local-name()='Root' and namespace-uri()='http://LoansProcessor.Case']/*[local-name()='Income' and namespace-uri()='']
Si utiliza el nodo Nombre en un argumento, se creará tanto un enlace de selector como un de campo.
En la ventana Propiedades, la información de enlace del nodo aparece como la siguiente:
Propiedad Valor XPath Field *[local-name()='Name' and namespace-uri()='']
XPath Selector /*[local-name()='Root' and namespace-uri()='http://LoansProcessor.Case']