Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

Available since Release 6.0.0

Introduction

In this release we have created a connector for the Platform BPM Engine, which will allow interacting with the rest of the platform elements, allowing:

  • Make queries on Entities

  • Perform insertions on Entities

  • Invoking APIs published in the API Manager

  • Invoke 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:

image-20240223-103814.png

¿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

image-20240228-142129.png

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

image-20240228-142248.png
  • 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.

image-20240228-142553.png
  • 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.

image-20240228-142826.png
  • customerAge: evalúa la variable platformInstances y verifica el campo age con la siguiente expresión

image-20240228-143259.png
${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:

image-20240228-143657.pngimage-20240228-144035.png
  • 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

image-20240228-144543.png

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

image-20240229-083026.png
  • 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.

image-20240229-083148.png
  • 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.

image-20240229-083252.png
  • 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:

image-20240229-083606.png
  • 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?

Previamente se habrá tenido que crear el dataflow que se quiere lanzar

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

image-20240229-093613.png

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

image-20240229-093636.png
  • 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.

image-20240229-093745.png
  • 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:

image-20240229-094021.png

image-20240229-094145.png

  • 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?

Previamente se habrá tenido que crear el API que se quiere lanzar

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

image-20240229-165902.png

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

image-20240229-165926.png
  • 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.

image-20240229-170025.png
  • 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:

image-20240229-170522.png

  • 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:

  • No labels