Reglas de librería

<< Clic para mostrar Tabla de Contenidos >>

Navegación:  Bizagi Studio > Asistente de Procesos > Reglas de Negocio > Reutilizar reglas de negocio >

Reglas de librería

Introducción

Hay situaciones comunes en las que una regla o expresión pueden utilizarse en diferentes escenarios en un proyecto, para realizar una acción en específico.

Para evitar la necesidad de escribir la misma regla o expresión en cada uno de esos escenarios, Bizagi cuenta con las Reglas de librería.

 

Las Reglas globales, como también se les conoce, pueden ser reutilizadas a través de todas las aplicaciones y procesos contenidas en el mismo proyecto, en cada una de las situaciones. De esta manera, los usuario que desarrollan los procesos solo deben escribir la regla una vez y aplicarla siempre que sea necesaria.

 

Aplicabilidad y conceptos

Algunos ejemplo de esos escenarios son: obtener la fecha de hoy, obtener el ID del creador del caso, validar si una fecha es feriado, etc.

 

Las reglas de librería funcionan tal como las de negocio, pero no tienen un contexto asociado pues pueden ser invocadas desde cualquier parte del proyecto. Esto significa que las reglas de librería no tienen acceso al Modelo de datos, por lo que en ellas no se pueden usar Xpaths.

 

Mantener las reglas de librería organizadas

En algunos proyectos puede necesitarse muchas reglas de librería, lo que potencialmente crea dificultades para identificar la regla específica que se necesita usar y también dificulta el mantenimiento de las reglas y el proyecto. Para mantener sus reglas organizadas, se recomienda usar Familias de expresiones, las cuales permiten crear grupos de reglas.

 

Por lo tanto, antes de empezar a usar las reglas de librería, debe primero crear una familia de expresiones.

Para usar esta opción, vaya a la Vista de experto, escoja la opción de Reglas de negocio y seleccione el nodo de Reglas de librería. Luego haga clic en Nueva familia de expresiones.

 

LR-01

 

Saldrá una ventana pidiendo que ingrese un nombre para su Familia de expresiones.

Entre el nombre deseado y haga clic en Ok.

Luego, en la ventana principal podrá ver la Familia de expresiones recién creada.

 

Por ejemplo, si el nombre entrado es "Date", el resultado será el siguiente.

 

LR-02

 

En cada Familia de expresiones se puede añadir la cantidad de reglas que se desee.

 

Crear reglas de librería

Las reglas de librería se pueden crear independientemente o como parte de una Familia de expresiones existente. Para crear una regla sola, haga clic en Nueva regla de librería, al lado de la opción de Nueva familia de expresiones. Si desea añadir una regla como pare de una familia, haga clic derecho en la familia y seleccione la opción Nueva regla de librería que se muestra en el menú.

De cualquier manera, una ventana similar a la siguiente se mostrará.

 

LR-03

 

Allí puede construir su regla, similar a lo que haría al construir una expresión.

Configure un nombre, descripción, la familia a la que va a pertenecer la regla, tipo de retorno y parámetros.

Luego construya su regla como lo haría normalmente en un editor de expresiones.

 

Recuerde que cuando construye reglas de librería no se tiene un contexto, lo que significa que no se puede navegar el Modelo de datos y que los Xpaths no pueden ser usados.

 

Usar reglas de librería

Cuando ya haya configurado una regla de librería, puede querer usarla en alguna parte de su proyecto. Es importante mencionar que siempre que las expresiones estén disponibles para ser utilizadas, se puede invocar una regla de librería. Para hacerlo, haga clic en la opción de Reglas de librería en el editor de expresiones, como se muestra abajo.

 

LR-04

 

Saldrá una ventana con una vista de árbol con todas las reglas configuradas. Note que están organizadas por Familias de expresiones.

 

LR-05

 

Seleccione la regla que desea añadir y haga clic en Ok. Saldrá una ventana emergente en donde debe especificar donde almacenar el valor retornado.

 

LR-06

 

Hay dos maneras para almacenar el valor. En la primera (el primer botón de izquierda a derecha) deberá escoger una variable existente o crear una nueva. En la segunda, tendrá que escoger un atributo del Modelo de datos para almacenar el valor. El tercer botón limpiará lo que haya configurado previamente, úselo en caso de que desee arreglar un error o realizar un cambio.

 

En ambos casos, el resultado será una instrucción de asignación, en cuya parte izquierda, el atributo o variable escogida estará presente, y en la parte derecha se incluirá una expresión que retorna el valor al que evalúa la regla de librería. Esto se evidencia en la siguiente imagen.

 

LR-07

 

Ejemplos

Ejemplo 1 - Fecha de hoy

Suponga que usted trabaja en un banco. Se desea que cuando se realicé una solicitud para un crédito, la fecha de la solicitud quede definida por defecto. De esta forma se asegura que cuando se cree un nuevo caso, se asigne a la fecha de la solicitud la fecha de Hoy.

Otro ejemplo, en el Proceso de Solicitud de Compras es necesario configurar un valor de fecha mínima para realizar la entrega de los productos: Es necesario que la fecha sea después de hoy debido a que la entrega se hace al menos un día después.

Ya que pueden existir muchos escenarios que necesitan verificar la fecha actual (hoy), tiene mucho sentido crear una sola regla y utilizarla varias veces a través de los procesos.

Note que esta regla no necesita un contexto. No hay ninguna manipulación del modelo de datos, solo se necesita la fecha de hoy.

 

Por lo cual, hemos creado una regla Global que devuelve la fecha de Hoy utilizando una función de la categoría de Fechas y Tiempos.

En la vista de Experto, seleccione la opción Reglas de negocio. dé clic derecho en Expresiones de la clasificación de las Reglas de Negocio y dé clic sobre Nueva Expresión de Script.

Cuando se crea una nueva regla es posible ubicarla dentro de una familia de reglas, seleccione la familia de la lista desplegable si aplica, de lo contrario deje el espacio en blanco.

 

Where to use business rules36

 

Vamos a utilizar esta regla en el Modelador de Formas de un proceso para definir el valor por defecto o una fecha mínima o máxima.

Abra el modelador de formas y seleccione el atributo donde se quiere incluir la regla. Seleccione la propiedad valor por defecto y luego asigne la regla.

 

Where to use business rules50

 

LR-07

 

Ejemplo 2 - Reutilizar plantillas de correo electrónico

Supongamos que tiene muchos procesos configurados como parte de un proyecto, y muchas de las tareas envían correos electrónicos a Jefes o usuarios como notificaciones. Su supervisor le indicó que todos los correos enviados como parte de un proceso automático deben cumplir con el estándar organizacional: todos deben ciertos elementos visuales y todos deben incluir un mensaje de aviso en la parte de abajo indicando que la información contenida en el correo es altamente restringida y que no puede ser compartida o reproducida.

 

Como el desarrollador de los procesos, usted debe cambiar los correos enviados automáticamente por Bizagi, de tal manera que se cumpla con el estándar. No obstante, no se cuenta con el tiempo y la disposición para hacerlo a mano. La mejor manera de realizarlo será configurar una regla de librería que retorne el HTML del correo y que reciba como parámetro el texto personalizado que se debe usar.

 

Para este ejemplo, el resultado final se verá como el siguiente correo:

 

LR-08

 

Note que el correo está embebido en una plantilla corporativa, contiene el mensaje personalizado y el texto informando sobre confidencialidad que se había mencionado.

 

Para lograrlo, el primer paso es configurar una regla de librería que retorne la plantilla HTML y reciba un parámetro para personalizar el mensaje. En este ejemplo, el texto personalizado es el nombre del usuario.

 

LR-09

 

Como se puede ver, se configuró una regla llamada Email template. La regla almacena en la variable name el valor recibido en el parámetro Name. Y luego almacena y retorna la plantilla HTML en la variable msg. El parámetro Name fue simplemente configurado en la opción de Lista de parámetros como un String, de la siguiente manera (note que el parámetro Me está configurado por defecto y no debe ser cambiado):

 

LR-10

 

Utilizando concatenación de Strings, se usa el parámetro para inyectarlo como texto al mensaje del correo, tal como se puede ver la siguiente imagen:

 

LR-11

 

Luego, en la acción de la actividad del correo, y en el cuerpo del mensaje seleccione la opción de Campo de expresión. Allí, configure una expresión usando y retornando la regla de librería que acaba de configurar.

 

LR-12

 

Note que al invocar la regla, se envía un parámetro adicional. En este caso debe seleccionar el Nombre completo del usuario del Modelo de datos, de tal manera que pueda ser inyectado en la plantilla de HTML y resuelto en el correo como un mensaje personalizado. El cuerpo del correo terminará viéndose de esta manera cuando haya sido configurado.

 

LR-13

 

En este punto ya habrá establecido una regla de librería para reutilizar una plantilla de HTML satisfactoriamente! Ahora puede proceder a reutilizar la plantilla en todas sus tareas de correo sin la necesidad de copiar y pegar el contenido en cada tarea, solo deberá llamar la regla y cambiar el mensaje que se envía para que satisfaga sus necesidades específicas.