Conectores de Plataforma para el BPM Engine

Disponible desde Release 6.0.0

Introducción

En esta release se ha creado un conector para el BPM Engine de Plataforma, que permitirá interactuar con el resto de elementos de plataforma, permitiendo:

  • Hacer consultas sobre Entidades

  • Realizar inserciones sobre Entidades

  • Invocar APIs publicadas en el API Manager

  • Invocar Dataflows

¿Cómo funciona?

El conector se basa en los Templates de Camunda, que nos permite usarlos en un diagrama BPMN de Camunda. A continuación se explica el funcionamiento de las plantillas.

A la hora de crear un diagrama de Camunda, al seleccionar un elemento aparecerá una opción en el menú lateral Template.

image-20240223-103358.png

Al seleccionar el botón + Select aparecerá un listado con los templates disponibles para ese tipo de elemento, en este listado aparecerán los distintos conectores con plataforma ,que nos permiten:

  • Hacer consultas sobre Entidades

  • Realizar inserciones sobre Entidades

  • Invocar APIs publicadas en el API Manager

  • Invocar Dataflows

image-20240223-103618.png

Una vez seleccionado el template correspondiente, se cargarán automáticamente las propiedades que necesita ese elemento para conectar con Plataforma y que el usuario tendrá que rellenar para el correcto funcionamiento:

¿Cómo consultar datos de una Entidad?

Previamente se habrá tenido que crear la Entidad que se quiere consultar y haberla asociado a un Digital Client de la Plataforma para poder obtener un token con el cual acceder a los datos.

Para consultar los datos de una Entidad tenemos que seleccionar la plantilla Onesait Platform Query

Vamos a ver el funcionamiento de esta plantilla con el siguiente ejemplo:

  • buildQuery: Service Task de tipo Java class que construye de manera dinámica la clausula where de la consulta que vamos a lanzar contra la entidad y la almacena en la variable where.

  • getCustomers: Service Task que implementa el template Onesait Platform Query y realiza la consulta contra la entidad deseada. Hay que observar varias cosas en la configuración:

    • Cómo se recoje la variable where en el campo Query de manera parametrizada, lo que permite lanzar queries dinámicas. En el caso de querer una query estática basta con meter la query sin mas.

    • El campo Platform enviornment es opcional, en el caso de no especificarlo se utilizará el endpoint del entorno en el que se haya desplegado el proceso.

    • El resultado de la consulta se almacena en la variable platformInstances y generalmente será siempre un JSON array.

  • customerAge: evalúa la variable platformInstances y verifica el campo age con la siguiente expresión

${platformInstances.elements().get(0).prop("customer").prop("age").numberValue() >= 18}
  • over/under 18: User Task que se queda esperando una acción del usuario.

Visualizar la ejecución del proceso

Una vez desplegado el proceso en el BPM Engine, podemos lanzarlo y veremos lo siguiente:

  • Los datos de la consulta a la Entidad aparecen en la variable platformInstances en formato JSON

  • La cláusula where creada dinámicamente almacenada en la variable where

  • Al inspeccionar la variable platformInstances podemos comprobar que efectivamente se ha traido el dato que concuerda con la clausula where

  • Se ha evaluado el JSON y el proceso está parado en over 18, lo que concuerda con los datos obtenidos de la entidad.

A continuación dejamos el BPMN del ejemplo:

¿Cómo insertar datos en una Entidad?

Previamente se habrá tenido que crear la Entidad que se quiere consultar y haberla asociado a un Digital Client de la Plataforma para poder obtener un token con el cual acceder a los datos.

Para insertar datos de una Entidad tenemos que seleccionar la plantilla Onesait Platform Insert

Vamos a ver el funcionamiento de esta plantilla con el siguiente ejemplo:

  • getData: Service Task de tipo Java class que construye de manera dinámica los datos que se quieren insertar en la entidad en formato JSON y los almacena en la variable data.

  • insertTask: Service Task que implementa el template Onesait Platform Insert y realiza la insercción de los datos en la entidad deseada. Hay que observar varias cosas en la configuración:

    • Cómo se recoje la variable data en el campo Data de manera parametrizada, lo que permite lanzar insercciones dinámicas. En el caso de querer una inserción de datos estáticos basta con meter el JSON sin mas en este campo.

    • El campo Platform enviornment es opcional, en el caso de no especificarlo se utilizará el endpoint del entorno en el que se haya desplegado el proceso.

    • El resultado de la insercción se almacena en la variable platformIds, donde tendremos los IDs de las instancias insertadas.

  • doSomething: User Task que se queda esperando una acción del usuario.

Visualizar la ejecución del proceso

Una vez desplegado el proceso en el BPM Engine, podemos lanzarlo y veremos lo siguiente:

  • Los datos de la inserción en la Entidad aparecen en la variable platformIds en formato JSON

  • los datos creados dinámicamente almacenada en la variable data

A continuación dejamos el BPMN del ejemplo:

¿Cómo lanzar un Dataflow?

Para lanzar un dataflow tenemos que seleccionar la plantilla Onesait Platform Dataflow

Vamos a ver el funcionamiento de esta plantilla con el siguiente ejemplo:

  • launchDataflow: Service Task que implementa el template Onesait Platform Dataflow y lanza el Dataflow deseado. Hay que observar varias cosas en la configuración:

    • El campo Platform enviornment es opcional, en el caso de no especificarlo se utilizará el endpoint del entorno en el que se haya desplegado el proceso.

    • El campo parameters es opcional, en el caso de que el dataflow que se quiera lanzar requiera de algún parámetro se le podrá indicar al BPM en este campo en formato JSON. También puede parametrizarse con la nomenclatura ${parameters} si queremos que los datos se monten dinámicamente.

    • El resultado de la ejecución del dataflow se almacena en la variable dataflowResponse.

  • doSomething: User Task que se queda esperando una acción del usuario.

Visualizar la ejecución del proceso

Una vez desplegado el proceso en el BPM Engine, podemos lanzarlo y veremos lo siguiente:

 

  • El resultado de la ejecución del dataflow se almacena en la variable dataflowResponse en formato JSON

  • Si inspeccionamos la varibale dataflowResponse vemos que el dataflow se ha arrancado correctamente

A continuación dejamos el BPMN del ejemplo:

¿Cómo invocar un API de Plataforma?

Para lanzar un API tenemos que seleccionar la plantilla Onesait Platform API

Vamos a ver el funcionamiento de esta plantilla con el siguiente ejemplo:

  • launchAPI: Service Task que implementa el template Onesait Platform API y lanza el APIdeseado. Hay que observar varias cosas en la configuración:

    • El campo Platform enviornment es opcional, en el caso de no especificarlo se utilizará el endpoint del entorno en el que se haya desplegado el proceso.

    • El campo API Path tiene que seguir la siguiente nomenclatura /<version>/<api_identification>/<operation_path> en el ejemplo vemos como parte del path está parametrizado con la expresión ${name}

    • El campo Body es opcional, en el caso de que se quiera lanzar una operación con un body se le podrá indicar al BPM en este campo en formato JSON. También puede parametrizarse con la nomenclatura ${body} si queremos que los datos se monten dinámicamente.

    • El resultado de la ejecución del dataflow se almacena en la variable apiResponse.

  • doSomething: User Task que se queda esperando una acción del usuario.

Visualizar la ejecución del proceso

Una vez desplegado el proceso en el BPM Engine, podemos lanzarlo y veremos lo siguiente:

 

  • El resultado de la ejecución del dataflow se almacena en la variable apiResponse en formato JSON

A continuación dejamos el BPMN del ejemplo: