Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

...

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

...

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?

Info

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

...

How does it work?

The connector is based on Camunda Templates, which allows us to use them in a Camunda BPMN diagram. The operation of the templates is explained below.

When creating a Camunda diagram, when selecting an element an option will appear in the Template side menu.

...

When you select the + Select button, a list of templates available for that type of element will appear. In this list, the different platform connectors will appear, which allow us to:

  • Make queries Entities

  • Make insertions about Entities

  • Invoke published APIs in the API Manager

  • Invoke Dataflows

...

Once the corresponding template has been selected, the properties that the element needs to connect with the Platform will be automatically loaded and the user will have to fill out for correct operation:

...

How to get data from an Entity?

Info

You will have previously had to create the Entity you want to consult and associate it with a Digital Client of the Platform in order to obtain a token with which to access the data.

To get the data of an Entity we have to select the Onesait Platform Query template

...

Let's see how this template works with the following example:

...

  • buildQuery: Service Taskde 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 whereof type Java classthat dynamically constructs the where clause of the query that we are going to launch against the entity and stores it in the where variable.

...

  • getCustomers: Service Task que implementa el template that implements the 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

    template and performs the query against the desired entity. There are several things to observe in the configuration:

    • How the where variable is collected in the Query field in a parameterized manner, which allows launching dynamic queries. If you want a static query, just enter the query without further ado.

    • The Platform enviornment field is optional; if not specified, the endpoint of the environment in which the process has been deployed will be used.

    • The result of the query is stored in the platformInstances variable and will generally always be a JSON array.

...

  • customerAge: evalúa la variable platformInstances y verifica el campo age con la siguiente expresiónevaluates the platformInstances variable and checks the age field with the following expression

...

Code Block
${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.

...

  • that waits for a user action.

View process execution

Once the process is deployed in the BPM Engine, we can launch it and we will see the following:

...

  • The data from the Entity query appears in the platformInstances variable in JSON format

  • Dynamically created where clause stored in where variable

  • By inspecting the platformInstances variable we can verify that the data that matches the where clause has actually been brought.

  • The JSON has been evaluated and the process is stopped at over 18, which agrees with the data obtained from the entity.

Below we leave the BPMN of the example:

View file
namequeryEntityData.bpmn

¿Cómo insertar datos en una Entidad?

Info

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

...

How to insert data into an Entity?

Info

You will have previously had to create the Entity you want to consult and associate it with a Digital Client of the Platform in order to obtain a token with which to access the data.

To insert data from an Entity we have to select the Onesait Platform Insert template

...

Let's see how this template works with the following example:

...

  • 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 dataof type Java class that dynamically constructs the data that you want to insert into the entity in JSON format and stores it in the data variable.

...

  • 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

    that implements the Onesait Platform Insert template and inserts the data into the desired entity. There are several things to observe in the configuration:

    • How the data variable is collected in the Data field in a parameterized manner, which allows dynamic insertions to be launched. If you want to insert static data, simply enter the JSON in this field.

    • The Platform enviornment field is optional; if not specified, the endpoint of the environment in which the process has been deployed will be used.

    • The result of the insertion is stored in the platformIds variable, where we will have the IDs of the inserted instances.

...

  • 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

...

  • that waits for a user action.

View process execution

Once the process is deployed in the BPM Engine, we can launch it and we will see the following:

...

  • The data of the insertion in the Entity appears in the platformIds variable in JSON format

  • Dynamically created data stored in data variable

Below we leave the BPMN of the example:

View file
nameinsertEntity.bpmn

...

How to launch a Dataflow?

Info

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

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

...

You will have previously had to create the dataflow that you want to launch.

To launch a dataflow we have to select the Onesait Platform Dataflow template

...

Let's see how this template works with the following example:

...

  • launchDataflow: Service Task que implementa el template that implements the 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

    template and launches the desired Dataflow. There are several things to observe in the configuration:

    • The Platform enviornment field is optional; if not specified, the endpoint of the environment in which the process has been deployed will be used.

    • The parameters field is optional, in the event that the dataflow to be launched requires some parameter, it can be indicated to the BPM in this field in JSON format. It can also be parameterized with the nomenclature ${parameters} if we want the data to be mounted dynamically.

    • The result of the dataflow execution is stored in the dataflowResponse variable.

...

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

Visualizar la ejecución del proceso

...

  • that waits for a user action.

View process execution

Once the process is deployed in the BPM Engine, we can launch it and we will see the following:

...

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

...

  • The result of the dataflow execution is stored in the dataflowResponse variable in JSON format

  • If we inspect the dataflowResponse variable we see that the dataflow has been started correctly

Below we leave the BPMN of the example:

View file
namelaunchDataflow.bpmn

...

How to invoke a Platform API?

Info

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

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

...

You will have previously had to create the API that you want to launch.

To launch an API we have to select the Onesait Platform API template

...

Let's see how this template works with the following example:

...

  • launchAPI: Service Task que implementa el template that implements the 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

    API template and launches the desired API. There are several things to observe in the configuration:

    • The Platform enviornment field is optional; if not specified, the endpoint of the environment in which the process has been deployed will be used.

    • The API Path field must follow the following nomenclature /<version>/<api_identification>/<operation_path>en el ejemplo vemos como parte del path está parametrizado con la expresión . In the example we see how part of the path is parameterized with the expression ${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 apiResponseThe Body field is optional. If you want to launch an operation with a body, you can indicate it to the BPM in this field in JSON format. It can also be parameterized with the nomenclature ${body} if we want the data to be mounted dynamically.

    • The result of the dataflow execution is stored in the apiResponse variable.

...

  • 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.pngImage Removed

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

...

  • that waits for a user action.

View process execution

Once the process is deployed in the BPM Engine, we can launch it and we will see the following:

image-20240229-170522.pngImage Added

  • The result of the dataflow execution is stored in the apiResponse variable in JSON format

Below we leave the BPMN of the example:

View file
namelaunchApi.bpmn

...