/
Notifications to the BPM Engine from insertion in Entities

Notifications to the BPM Engine from insertion in Entities

Available since Release 6.0.0

Introduction

This functionality allows to launch BPM Engine processes associated to the insertion of data in an Entity. The BPM Engine notifications are used for this purpose.

How does it work?

To give a general idea of how this functionality works we will follow a very simple example using the following diagram:

image-20240228-103824.png

Cargar BPM con Event Messages

Para poder notificar al BPM desde la inserciĆ³n de entidades, hay que crearse un proceso que empiece con un Start Event Message, vamos a analizar en detalle el diagrama de ejemplo:

image-20240228-105503.png

Ā 

  • Start Message: se trata de un Start Event Message, es importante darle un nombre al mensaje, ya que es el que utilizaremos para configurar las notificaciones desde la entidad. Este nodo recibirĆ” la variable platformEntity con los datos insertados en la entidad en formato JSON.

image-20240223-093016.png
  • checkJSON: comprueba si el JSON recibido por el Start Message es un array o no, para ello utiliza las siguiente expresiĆ³n. Hay que destacar que evaluamos la variable platformEntity que es donde nos vendrĆ”n los datos insertados:

Ā 

image-20240228-105606.png
  • checkAge: en este nodo chequeamos si la persona tiene mas de 18 aƱos, para ello volvemos a utilizar la varible platformEntity y chequeamos la propiedad age

Ā 

image-20240228-105846.png

En el caso de que los datos vengan en formato array la expresiĆ³n seria la siguiente:

${JSON(platformEntity).elements().get(0).prop("person").prop("age").numberValue() >= 18}

En caso contratrio:

${JSON(platformEntity).prop("person").prop("age").numberValue() >= 18}
  • doSomething: aque el proceso queda a la espera de una acciĆ³n del usuario.

Una vez creado el diagrama lo cargamos en nuestro BPM a travĆ©s de la opciĆ³n de menĆŗ Development > My BPM Tenants

Para mas informaciĆ³n sobre cĆ³mo trabajar con el BPM Engine de Plataforma leer la secciĆ³n BPM Engine

Habilitar notificaciones al BPM Engine desde la entidad

A la hora de crear una entidad hay que marcar la opciĆ³n Allow BPM Notifications que se encuentra en la pestaƱa de Advanced Settings. Al marcar esta opciĆ³n aparecerĆ” una tabla en la cual habrĆ” que aƱadir los Event Messages que se quieren notificar, para ello primero seleccionamos el proceso BPM correspondiente y se cargarĆ”n todos los Event Messages existentes en dicho proceso:

image-20240228-110148.png

Una vez se han aƱadido todas las relaciones proceso-mensaje a la tabla, creamos la entidad.

Para este ejemplo vamos a crear la entidad Person con el siguiente esquema:

{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "person", "type": "object", "required": [ "person" ], "properties": { "person": { "type": "string", "$ref": "#/datos" } }, "datos": { "description": "Properties for DataModel person", "type": "object", "required": [ "name", "age", "city" ], "properties": { "name": { "type": "string" }, "age": { "type": "number" }, "city": { "type": "string" } } }, "description": "person", "entitydclass": [], "additionalProperties": true }

Visualizar la ejecuciĆ³n del proceso

De esta forma, cada vez que se inserte un dato en una entidad configurada para notificar al BPM, se notificarƔn a los Event Messages configurados y se lanzarƔ el proceso correspondiente con los datos insertados en la entidad.

image-20240228-110428.png

Podemos observar varias cosas:

  • Los datos vienen almacenados en la variable platformEntity en formato JSON

  • Los datos siguen el esquema de la ontologĆ­a person que nos hemos creado al principio

  • Como los datos no vienen en formato array, el proceso ha evaluado correctamente si es un array o no y ha elegido el camino inferior del diagrama

  • El proceso se ha paralizado en la User Task a la espera de alguna acciĆ³n por parte del usuario

A continuaciĆ³n dejamos disponible el BPMN del ejemplo:

Ā 

Related content