Visión general: Flujos de reglas
Puede utilizar elementos de flujo de reglas diferentes para crear el flujo de reglas en un proyecto como, por ejemplo, iniciar y finalizar nodos, tareas o transiciones. Un flujo de reglas especifica cómo se encadenan las tareas: cómo, cuándo y en qué condiciones se ejecutan.
Los parámetros de flujo de reglas se utilizan para transferir información entre tareas de flujo de reglas y determinar qué vía de acceso debe seguirse a
través de las transiciones. Por ejemplo, puede transferir una variable de estado, como
isEligible, para determinar qué tarea irá a continuación.
También puede utilizar parámetros de conjunto de reglas para transferir información entre el flujo de reglas y la aplicación. La aplicación obtiene los resultados del proceso de flujo de reglas mediante parámetros de conjunto de reglas. Por ejemplo, una vez que finalice el flujo de reglas, el parámetro puede devolver un informe agregado, diagnósticos, un conjunto de excepciones de conformidad o valores calculados, como precios, tarifas o impuestos.
El diagrama siguiente muestra las partes principales de un flujo de reglas:
Nodo inicial 1
Tarea 2
Transición 3
Nodo final 4

Nodos iniciales y nodos finales
Un nodo de inicio
y un nodo final
son marcadores gráficos para el inicio y el final de un flujo de reglas. Cada flujo de reglas tiene un nodo
inicial y al menos un nodo final.
Tareas
Entre el nodo inicial y el nodo final, el flujo de reglas se compone de tareas enlazadas por transiciones.
Las tareas de un flujo de reglas contienen las instrucciones para todo aquello que debe ejecutarse y en qué orden:
- Tarea de regla
Una tarea de regla
contiene un conjunto de reglas que se ejecutarán en ese punto del flujo de reglas.En función de cómo se definan las propiedades de ejecución de una tarea de reglas, las reglas pueden ejecutarse por orden o seguir una lógica más compleja.
El modo de ejecución de una tarea de regla determina si las reglas se ejecutan en el orden mostrado (modo secuencial), en orden con algún tipo de optimización en tiempo de compilación (modo Fastpath), o en un orden que determine el motor de reglas (modo RetePlus).
El filtro de selección de reglas en tiempo de ejecución determina qué reglas de una determinada tareas de regla se ejecutan. El filtro de selección de reglas se aplica en tiempo de ejecución y el motor de reglas evalúa sólo las reglas el filtro. Un filtro de selección de reglas de tiempo de ejecución se escribe como una condición en una regla de acción, salvo que en la sentencia de filtro sólo puede utilizar reglas, propiedades de reglas y los parámetros del conjunto de reglas definidos para el proyecto de reglas.
Por ejemplo, puede escribir el siguiente filtro de selección de reglas de tiempo de ejecución:
el autor de 'la regla' es "Sally"
Con este filtro, el motor de reglas evalúa las reglas que ha creado Sally.
- Tarea de acción
Una tarea de acción
contiene sentencias de acción de regla que se van a ejecutar. Defina las acciones de una tarea de acción de la misma
forma que define las acciones para reglas de negocio, mediante BAL. Sin
embargo, a diferencia de las acciones de reglas de negocio, las
tareas de acción solo pueden utilizar las frases de acción asociadas
a los parámetros del conjunto de reglas. También puede definir
acciones en IRL.- Tarea de subflujo
Una tarea de subflujo
hace referencia a otro flujo de reglas que se va a ejecutar. El flujo de reglas al que se hace referencia
puede ser cualquier otro flujo de reglas en el proyecto de reglas. Puede hacer
referencia al mismo flujo de reglas, pero tenga cuidado de no generar un bucle infinito.Puede especificar acciones iniciales y finales en las tareas de subflujo.
Transiciones
Las transiciones conectan tareas en un flujo de reglas y definen la secuencia del flujo de reglas de una tarea a otra. Las transiciones son unidireccionales y pueden tener condiciones asociadas.
Las condiciones de transición determinan si una transición forma parte del flujo de ejecución. Puede definir estas condiciones de la misma forma que las condiciones de una regla de acción.
Por ejemplo, con la siguiente condición en la transición entre las tareas de elegibilidad y de regla de precios, la tarea de regla de precios solo puede realizarse cuando se acepta el contrato de alquiler del cliente; de lo contrario, el flujo de reglas finaliza.

Una única transición entre una tarea y otra no requiere una condición. Sin embargo, cuando varias transiciones se originan de una tarea, puede utilizar condiciones de transición para definir en qué condiciones se sigue una determinada vía de acceso en el flujo de reglas.
Una transición Else especifica la vía de acceso que debe tomarse cuando no se cumple una condición. Una tarea puede ir seguida de varias transiciones, pero sólo una de ellas puede ser una transición Else. Esto significa que todas las transiciones excepto la transición Else deben tener condiciones.
Siempre que varias transiciones proceden de una opción, las transiciones deben tener condiciones booleanas que especifican qué vía de acceso elegir durante la ejecución. La última transición vacía restante se calcula automáticamente como una transición Else.
Ramas
Una rama
es un nodo que organiza transiciones condicionales. Por ejemplo, una rama para la edad de un cliente
organiza transiciones con condiciones en un determinado intervalo de edades. En esa
rama pueden empezar y acabar varias transiciones. Como las transacciones creadas a partir
de una tarea, todas las transiciones creadas a partir de una rama deben tener una condición, excepto
la transición Else.
Bifurcaciones y uniones
Una bifurcación
es un nodo que divide el flujo de ejecución en varias vías de acceso paralelas. Las transiciones creadas a partir de una bifurcación
no tienen condiciones porque se siguen todas las transiciones creadas a partir de la bifurcación.
Una unión
es un nodo que combina todas las transiciones creadas a partir de una bifurcación cuando se completan todas las vías de acceso paralelas.
Acciones iniciales y finales
Puede definir acciones iniciales y acciones finales en las tareas. Las acciones iniciales se aplican antes de que se procese una tarea, mientras que las acciones finales se aplican después de procesar una tarea. Defina acciones iniciales y finales del mismo modo que define acciones para una tarea de acciones.
Una secuencia de ejecución de tareas consiste en ejecutar sus acciones iniciales, a continuación el cuerpo y, por último, sus acciones finales.
Las acciones iniciales o finales no son obligatorias y puede utilizarlas independientemente de otras.
También puede especificar acciones que deban ejecutarse en los nodos iniciales y finales. Por ejemplo, puede definir una acción en el nodo inicial para restablecer los datos utilizados en el flujo de reglas. Las acciones definidas para un nodo final también se aplican a los demás nodos finales del flujo de reglas.