Configuración del motor de reglas de negocio

Explicación de las funciones centrales de BRFplus

Objectives

After completing this lesson, you will be able to:
  • Comprender los roles y el uso de reglas y conjuntos de reglas
  • Utilizar expresiones BRFplus en reglas
  • Utilizar acciones BRFplus en reglas
  • Comprender la generación de código
  • Comprender la funcionalidad de simulación y trace en BRFplus

Reglas y conjuntos de reglas

Conjuntos de reglas

Los conjuntos de reglas sirven como contenedores para las reglas y están asociados con funciones. Una función BRFplus individual puede tener uno o más conjuntos de reglas asignados y el mismo conjunto de reglas se puede vincular a varias funciones. Cuando se llama una función, ejecuta todos los conjuntos de reglas asignados en el orden en que están vinculados.

Al asignar varios conjuntos de reglas a una función, se debe especificar el orden de ejecución. Es esencial garantizar que el contexto del conjunto de reglas siga siendo coherente. Las variables utilizadas para cálculos y validaciones dentro de las reglas deben estar disponibles en el contexto del conjunto de reglas. Los conjuntos de reglas heredan su contexto de las funciones a las que están asignados. Por lo tanto, las reglas dentro de un conjunto de reglas pueden realizar acciones como cálculos y validaciones en variables que se encuentran en el contexto Función. Cualquier variable adicional o de ayuda utilizada para cálculos intermedios debe definirse dentro del contexto Conjunto de reglas como variable de conjunto de reglas por separado.

Reglas

Las reglas son los componentes fundamentales de los conjuntos de reglas, responsables de ejecutar operaciones y cálculos en los datos de entrada de las aplicaciones BRFplus. Pueden desencadenar acciones o modificar el conjunto de datos de resultado en función de los requisitos específicos del proceso. En BRFplus, una regla representa una regla empresarial simple para un caso empresarial en particular. Las reglas se pueden adaptar a la creciente complejidad del caso empresarial añadiendo acciones o expresiones, y se pueden combinar en conjuntos de reglas. Las reglas solo se pueden desencadenar dentro del contexto de un conjunto de reglas al que están asignadas; no se pueden desencadenar de forma independiente.

La regla tiene las siguientes funciones:

  • Una regla incluye una condición If que el sistema evalúa cuando se desencadena la regla. En función del resultado de la condición, la regla realiza un conjunto de operaciones. La condición debe incluir una rama Verdadera, mientras que la rama Falso es opcional.
  • La ejecución de reglas puede depender de varias condiciones, como la activación de reglas, dependencias de tiempo, etc. Estas condiciones adicionales se pueden controlar dentro del contexto de los conjuntos de reglas a los que está vinculada una regla.
  • Dentro de una regla, puede acceder y manipular datos de contexto. Acceder a datos de contexto desde una regla significa utilizar los datos de contexto disponibles para la regla a través del conjunto de reglas asociado.
  • Se puede asignar una única regla a varios conjuntos de reglas. En consecuencia, el sistema concede el acceso a reglas solo a objetos de datos de contexto compartidos por todos los conjuntos de reglas de referencia. Esto garantiza la consistencia.

Tipos de operación admitidos para reglas

  • Desencadenar una acción.
  • Procesar una expresión, con el resultado de la expresión actualizando potencialmente el contexto.
  • Inicialización o actualización de objetos de datos de contexto.

Expresiones

Resumen

Los tipos de expresión forman el motor computacional central de BRFplus. Cada tipo de expresión representa una unidad computacional autónoma con una lógica bien definida. Las expresiones utilizan un contexto y pueden anidar otras expresiones para calcular, determinar o derivar resultados. Una expresión se puede ver como una instancia de un tipo de expresión, siguiendo la lógica definida por ese tipo. Estas expresiones se pueden reutilizar como módulos dentro de las reglas, empezando por una función como expresión superior.

BRFplus ofrece una serie de clases de expresión estándar y regularmente se añaden nuevas clases para ampliar la funcionalidad. También tiene la flexibilidad de crear tipos de expresión personalizados para utilizarlos en sus reglas.

Tipos de expresión predefinidos

BRFplus viene con un conjunto de clases de expresión comunes y se amplía regularmente con nuevas clases de expresión. También puede crear sus propias clases de expresión y utilizarlas en las reglas.

BRFplus ofrece una lista de las clases de expresión predefinidas más utilizadas. Puede explorar cada clase de expresión en detalle en SAP Help Portal.

Sin embargo, para ampliar las capacidades funcionales de BRFplus más allá de lo que proporcionan las clases de expresión integradas, puede crear sus propias clases de expresión personalizadas. Estas clases de expresión definidas por el usuario le permiten abordar requisitos específicos que pueden no estar cubiertos adecuadamente o no ser fáciles de utilizar con las opciones predefinidas.

BRFplus incluye potentes tipos de expresión predefinidos como tablas de decisiones, árboles de búsqueda y fórmulas, que se adaptan a una amplia gama de escenarios de reglas empresariales. Sin embargo, puede haber casos en los que estos tipos predefinidos sean insuficientes o no se alineen con su caso de uso específico. En estas situaciones, tiene la flexibilidad de crear clases de expresión específicas de su empresa.

Es importante tener en cuenta que el enfoque para los tipos de expresión definidos por el usuario refleja el de los integrados. Estos tipos definidos por el usuario aprovechan la misma infraestructura técnica utilizada por SAP para los tipos predefinidos. En consecuencia, puede esperar que sus tipos de expresión personalizados muestren un comportamiento similar a los integrados en términos de rendimiento, control de acceso y más. Son una ampliación del concepto BRFplus, lo que garantiza una integración perfecta en lugar de servir como un add-on separado.

Para obtener más información, consulte SAP Help Portal: Tipo de expresión

Expresión de caso

La expresión Case en cuestión se parece mucho a la sentencia ABAP CASE. Funciona tomando un parámetro de caso y comparando su valor con un conjunto de parámetros de prueba. Para cada uno de estos parámetros de test, se define un parámetro de retorno correspondiente dentro de la tabla Cuándo.

Cuando se produce una coincidencia entre uno de los parámetros de test y el parámetro de caso, se evalúa el parámetro de retorno asociado y se genera un resultado. En los casos en los que ninguno de los parámetros de test se alinea con el parámetro de caso, se evalúa un parámetro diferente para determinar el resultado.

Es importante tener en cuenta que todos los parámetros implicados pueden ser objetos de datos de contexto o expresiones anidadas. Normalmente, el parámetro de caso es un objeto de datos de contexto, los parámetros de test son constantes y los parámetros de resultado se expresan como expresiones anidadas.

Operación de tabla

La expresión de operación de tabla ofrece una amplia gama de funcionalidades para gestionar de forma eficiente y acceder a los datos almacenados en un objeto de datos BRFplus del tipo de tabla. Este tipo de expresión permite a los usuarios realizar varias tareas administrativas y obtener información estadística sobre los objetos de datos de tabla. Si bien algunas de las funciones disponibles se parecen a las que se encuentran en los modos de agregación y verificación de existencia de la expresión de búsqueda en la base de datos, su enfoque difiere ligeramente.

La expresión de operaciones Tabla admite varias funciones para interactuar con objetos de datos de tabla, incluidas capacidades como Tiene al menos, Tiene exactamente, No tiene más de, Recuento, Mínimo, Máximo, Total, Promedio, Primera fila, Última fila, Todas las líneas, Ordenar, Eliminar primera fila, Eliminar última fila y Eliminar todas las líneas.

En todas estas operaciones, también existe la opción de no proporcionar una condición de selección. En estos casos, la operación se aplica a todas las filas dentro de la tabla especificada.

Cabe destacar que entre las operaciones enumeradas anteriormente, Mínimo, Máximo, Total y Promedio solo se pueden utilizar junto con un campo de tabla numérico. El workbench BRFplus ayuda a los usuarios a identificar columnas adecuadas dentro de una tabla determinada presentando solo aquellos campos que se alinean con los requisitos de una operación específica.

Tablas de decisiones

Una expresión de tabla de decisiones es una herramienta potente para comparar una entrada determinada con un conjunto de combinaciones predefinidas de condiciones. Cada combinación está asociada con un resultado específico, que se convierte en la salida de la expresión cuando los datos de entrada se alinean con esa combinación en particular.

La tabla de decisiones en sí se estructura como una tabla con los siguientes elementos clave y opciones:

  • Una o más columnas que representan distintas condiciones para comparar datos de entrada.
  • Una o más columnas están designadas para contener el resultado devuelto por la expresión cuando se cumplen todas las condiciones de una fila.
  • Una o más filas, cada una única en términos de sus condiciones combinadas.

Cuando se ejecuta una expresión de tabla de decisiones, procesa las reglas empresariales secuencialmente en función de un conjunto de valores de entrada. En el tiempo de ejecución, los datos de entrada proporcionados se comparan con las condiciones definidas, empezando por la primera fila. Cada celda se evalúa comparando el valor de la columna con un conjunto de comparaciones de rango, lo que da como resultado un resultado booleano. Si todas las celdas de una fila se evalúan como verdaderas, la evaluación finaliza y la expresión devuelve el resultado correspondiente a las condiciones actuales. Si no es así, el procesamiento continúa con la siguiente fila de la tabla hasta que se encuentra un conjunto de condiciones coincidente o hasta que se alcanza el final de la tabla.

Debido a la naturaleza secuencial del procesamiento de reglas, se recomienda definir reglas empezando por la condición más específica en la primera fila, seguida de reglas con condiciones progresivamente menos específicas. Este enfoque evita situaciones en las que una entrada que cumpla una condición amplia da lugar a un resultado sin permitir que el sistema pruebe si una condición más específica sería una mejor coincidencia para los datos de entrada.

Vale la pena tener en cuenta que las funciones de verificación BRFplus pueden ayudar a identificar muchos errores de acuerdo secuenciales y alertarle de posibles problemas.

Además, en el contexto de las tablas de decisiones, tiene la flexibilidad de exportar datos a Excel e importar datos de Excel a la tabla de decisiones, lo que mejora la facilidad de uso y la gestión de datos.

Fórmula

Otro tipo de expresión versátil es la expresión de fórmula. Las fórmulas de este tipo pueden realizar cálculos en objetos de datos de una amplia gama de maneras, abarcando operaciones matemáticas y un conjunto diverso de funciones de fórmula. Estas funciones pueden utilizar objetos de datos del contexto, los devueltos de otras expresiones o incluso aceptar valores de entrada directa para crear la fórmula. La creación de la fórmula se puede lograr mediante módulos predefinidos o introduciéndola directamente en texto libre utilizando el modo experto.

Las funciones de fórmula disponibles se pueden filtrar convenientemente por categorías o patrones de búsqueda, y cada función va acompañada de documentación que explica su propósito y sintaxis. Los usuarios también tienen la capacidad de crear funciones de fórmula personalizadas.

Las funciones de fórmula se organizan en las siguientes categorías:

  • Funciones de fecha y hora: permiten cálculos que implican intervalos de tiempo, varias unidades de medida de tiempo, determinación de año bisiesto y extracción de componentes de tiempo específicos.
  • Funciones de cadena: facilitan la manipulación de cadenas, incluida la concatenación, extracción, determinación de longitud de cadena y evaluaciones de similitud de cadena.
  • Funciones matemáticas: esta categoría abarca operaciones matemáticas como logaritmos, exponenciación y funciones trigonométricas.
  • Funciones del sistema: estas funciones recuperan información específica del sistema, como detalles del calendario de fábrica, especificaciones del sistema operativo e idioma de trabajo.
  • Funciones de tabla: diseñadas específicamente para objetos de datos de tabla BRFplus, estas funciones recuperan información de estos objetos o realizan cálculos en ellos, incluida la determinación de valores máximos y mínimos, la suma, el cálculo de promedios y el recuento de filas.
  • Funciones varias: esta categoría incluye funciones para conversiones de cantidad e importe, redondeo de números y verificación de valores iniciales.

Acciones

Las acciones son un tipo especial de expresiones que no devuelven un valor.

Las acciones son una categoría distinta de expresiones diseñadas para realizar tareas que no producen un valor de retorno. Mientras que los tipos de acción comparten similitudes con los tipos de expresión, no producen valores de resultado; en su lugar, su objetivo principal suele ser la manipulación de datos. Al igual que las expresiones, pueden utilizar parámetros de contexto e incorporar expresiones o acciones anidadas. Además, las acciones se pueden vincular a una lista de acciones siguientes.

El paquete BRFplus estándar incluye cuatro tipos de acción predefinidos:

  • Enviar correo electrónico
  • Iniciar workflow
  • Mensaje de log
  • Llamada de procedimiento

Vale la pena señalar que TRM introduce acciones específicas, que se analizarán más a fondo en la Lección 4: Explicación de las funciones BRFplus específicas de TRM.

El tipo de acción Mensaje de log está diseñado para añadir uno o varios mensajes a un log de aplicación. Estos mensajes se pueden dirigir a logs específicos definidos por un objeto y un subobjeto dentro de la transacción SLG0. Tiene la flexibilidad de elegir entre persistir estos mensajes o almacenarlos temporalmente en la memoria. Además, puede especificar el tipo de mensaje, como "Información, Estado, Advertencia, Error, Cancelar o Salir.

El texto para estos mensajes se puede generar dinámicamente incorporando valores de expresiones, parámetros de contexto o valores predefinidos. Los marcadores de posición se utilizan para insertar sin problemas estos valores en el texto.

Para revisar y analizar el log, puede acceder a él mediante la transacción SLG1, aprovechando los parámetros de objeto para un examen detallado.

Generación de código

  • La generación de códigos se produce automáticamente cuando se llama la función BRFplus por primera vez.
  • La generación manual de códigos se puede iniciar en la IU de función o mediante el programa de generación en masa.

Para garantizar un rendimiento óptimo, las reglas BRFplus se transforman en código ABAP, lo que da como resultado una clase con un método puro de proceso que se ejecuta en tiempo de ejecución. Por defecto, la generación de código se inicia automáticamente la primera vez que se llama una función BRFplus. Sin embargo, tiene dos opciones manuales para desencadenar la generación de códigos. El primer método implica navegar a la pestaña Generación de códigos y seleccionar Generar función dentro de la interfaz de usuario de la función BRFplus. El segundo método utiliza el programa de generación de código en masa FDT_GENERATE_MANY_FUNCTIONS. Estos programas le permiten generar la función según sea necesario, específicamente cuando hay modificaciones de regla para la función BRFplus. En otras palabras, la generación de código se produce de forma selectiva, solo se desencadena en respuesta a las modificaciones realizadas en las reglas de la función BRFplus.

Como práctica recomendada, después de importar cualquier modificación BRFplus a un entorno de producción, se recomienda regenerar la función BRFplus con la herramienta de generación BRFplus en masa (programa ABAP FDT_GENERATE_MANY_FUNCTIONS). Este enfoque proactivo ayuda a evitar problemas de rendimiento cuando la función BRFplus se llama por primera vez como parte de un proceso empresarial. En caso de que encuentre algún problema relacionado con la generación, puede utilizar el informe FDT_GENERATION_TOOL para analizar la causa raíz e iniciar el proceso de regeneración según sea necesario.

Funcionalidad de simulación y trace

Para ver el trace de función BRFplus, puede acceder a él de dos maneras. Primero, haciendo clic en el botón Trace dentro del workbench BRFplus para una función específica. En segundo lugar, para una agrupación de formularios determinada, puede acceder al trace BRFplus mediante el historial de transacciones.

Para activar el trace BRFplus y visualizarlo correctamente, asegúrese de que las opciones de trace estén activadas en la configuración relevante (por ejemplo, para el procesamiento de formularios, active el trace para el tipo de agrupación de formularios) y que el proceso de generación de códigos se complete sin errores.