Nuevas características

Nuevos conectores para el BPM Engine

En esta release 6.0.0-Vegas de Onesait Platform, hemos incorporado un conector para el BPM Engine de la Plataforma, que permitirá interactuar con el resto de elementos de la Plataforma de forma fácil y sencilla.

Dicho conector nos va a permitir realizar diferentes tareas, que os explicamos a continuación.

¿Cómo funciona?

El conector se basa en las plantillas de Camunda, que nos permite usarlos en un diagrama BPMN de Camunda. A continuación, os explicamos 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».

Al seleccionar el botón «+ Select» aparecerá un listado con las plantillas disponibles para ese tipo de elemento. En este listado aparecerán los distintos conectores con la Plataforma, que nos va a permitir:

  • Hacer consultas sobre Entidades.
  • Realizar inserciones sobre Entidades.
  • Invocar APIs publicadas en el API Manager.
  • Invocar Dataflows.

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

¿Cómo consultar datos de una Entidad?

Para poder consultar una Entidad, previamente se habrá tenido que crear una, y haberla asociado a un Cliente Digital 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.
  • getCustomersService 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:
    • Como se recoge la variable where en el campo Query de manera parametrizada, lo que permite lanzar consultas dinámicas. En el caso de querer una consulta estática basta con meter la consulta 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.

Si estáis interesados, en este enlace os dejamos el BPMN que usamos en el ejemplo.

¿Cómo insertar datos en una Entidad?

Para insertar datos de una Entidad (que previamente tendrá que existir, por supuesto), tendremos 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».
  • insertTaskService 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 identificadores 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».

Como en el caso anterior, si estáis interesados en este enlace os dejamos el BPMN que usamos en el ejemplo.

¿Cómo lanzar un DataFlow?

Como en los casos previos, tendremos que tener generado un DataFlow previo. Para lanzarlo, tenemos que seleccionar la plantilla «Onesait Platform Dataflow»:

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

  • launchDataflowService 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 variable «dataflowResponse» vemos que el DataFlow se ha arrancado correctamente.

Como en casos anteriores, en este enlace os dejamos preparado el BPMN del ejemplo.

¿Cómo invocar un API de la Plataforma?

Para lanzar un API, en primer lugar tendremos que tener creado previamente un API. Cuando lo tengamos, tendremos que seleccionar la plantilla «Onesait Platform API»:

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

  • launchAPIService Task que implementa el template «Onesait Platform API» y lanza el API 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 «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.

Para finalizar, os dejamos el enlace al BPMN del ejemplo.


Si estáis interesados en conocer más acerca de estos conectores para el BPM Engine, no dudéis en dejarnos un comentario o mandarnos un aviso en nuestro canal de soporte de Onesait Platform.

Imagen de cabecera: Vincent Botta en Unsplash.

✍🏻 Author(s)

Deja una respuesta