---
title: "Ejemplos del BPM Engine"
canonical: "https://onesaitplatform-es.refined.site/space/DOC/2216114328/Ejemplos%20del%20BPM%20Engine"
format: markdown
---
> Macro (toc)

# Introducción

En esta guía vamos a ilustrar algunos ejemplos de procesos BPMN para cubrir algunos casos de uso.

## Recursos relevantes:

- API REST Camunda: [https://docs.camunda.org/manual/7.8/reference/rest/](https://docs.camunda.org/manual/7.8/reference/rest/)
- Conector HTTP Camunda: [https://docs.camunda.org/manual/7.8/reference/connect/http-connector/](https://docs.camunda.org/manual/7.8/reference/connect/http-connector/)
- Plugin SPIN (JSON) Camunda: [https://docs.camunda.org/manual/7.8/reference/spin/json/](https://docs.camunda.org/manual/7.8/reference/spin/json/)
- Formularios de tareas de usuario de Camunda: [https://docs.camunda.org/manual/7.8/user-guide/task-forms/](https://docs.camunda.org/manual/7.8/user-guide/task-forms/)

# Proceso de negocio que involucra formularios de usuario con tareas de usuario 

Recursos:

Vamos a crear un proceso que comienza con un formulario personalizado embebido (start-form.html) que le pide al usuario que introduzca su edad. Cuando se envía, un administrador del proceso tiene que aprobar la solicitud enviando otro formulario (task-form.html). Por último, hay un gateway (puerta de enlace) que bifurca el flujo del proceso en función de la edad de entrada (<= 21 ó > 21).

![image](media://5ddeb231-b82f-4747-aabd-16ca1daa26d0)

Ambos formularios están referenciados en sus respectivas tareas.

Se hace referencia al primer formulario en el evento de inicio:

![image](media://448b94cc-acf6-498a-95fc-5074a5a70363)

El segundo está referenciado en la tarea 'Aprobar cliente':

![image](media://36d8d8e0-3724-4cec-aad0-cb2ae0aa6f2c)

Estos formularios deben implementarse junto con el proceso .bpmn. Para hacer esto, puedes usar la API REST de la siguiente manera:

(Recuerda el encabezado de autorización con el token de portador de plataforma de onesait)

![image](media://5c55f38a-6160-4edb-b6b6-f4a8edec82d6)

De todos modos, este proceso ya está disponible como ejemplo por defecto en el motor BPMN.

Para iniciar el proceso, puedes usar la API REST o ir a la aplicación web Camunda de la lista de tareas a través de Controlpanel.

<u>API REST</u>  
Esto se demostrará en el siguiente ejemplo de proceso (MSO).

## <u>Webapp de lista de tareas Camunda</u>  


Ve a BPMN tenants (inquilinos) y haz clic en '<u>View it'</u> (verlo).

![image](media://2f4281e2-3dd1-41ea-b436-8af36017f40f)

Serás redirigido a la aplicación web Camunda. Luego, haz clic en '<u>Tasklist</u>' (Lista de tareas).

![image](media://313a9df7-85fb-4600-9b4c-1df0f2b8b77e)

Entonces, en la barra superior, en el lado derecho, haz clic en '<u>Start process</u>' (Iniciar proceso) y selecciona '<u>Customer Data Process</u>' (Proceso de datos del cliente).

![image](media://277ec6f9-c668-4001-a301-07b5d8870b17)

![image](media://545514bc-1aff-4666-a00a-9b5ce6f131b6)

Se te presentará el formulario. Complétalo y haz clic en Start (Iniciar).

![image](media://f9759165-18e8-437e-8762-02e34fa9e868)

El proceso se desencadenará y aparecerá una nueva tarea en la lista de tareas.

![image](media://0adfefba-4f43-43fb-9925-7fa588172960)

![image](media://ad22aca5-b2a0-46d8-8c5c-b5802708ce04)

  
Puedes reclamarla y aprobar la solicitud.

![image](media://5b6a93bb-7719-484c-8558-2f8ec55a3d3b)

Finalmente, el proceso se detendrá en la tarea '<u>Over 21</u>' (Más de 21). ¡Reclámala y complétala!

![image](media://c7ee5301-2e5c-4adb-bae6-dc0c15408515)

# Proceso de negocio que involucra la orquestación de microservicios (Micro Service Orchestration, MSO)

Recursos:

El proceso básicamente acepta o rechaza una operación de pago. Esto implica la validación de un token (tarjeta de crédito) y el saldo disponible.

En este proceso vamos a organizar algunos microservicios/llamadas API. El flujo implementa la siguiente lógica:

- El proceso comienza con dos parámetros: token y cantidad para la operación. El parámetro token está asociado con una tarjeta de crédito en otra base de datos, y la cantidad es la cantidad de crédito que se utilizará en la operación.
- El token se valida llamando al microservicio A, que devuelve el número de tarjeta de crédito asociado.
- Si se recupera el número de tarjeta de crédito, entonces se recupera el saldo de esta cuenta bancaria (microservicio B), y si el saldo es mayor que la cantidad, entonces el proceso acepta la operación de pago. De lo contrario, se rechaza.
- Por último, se realiza una transacción al microservicio C, como una solicitud POST.

![image](media://6075fd67-2360-4ed0-a0ae-5a057d78a628)

Este ejemplo también está disponible de forma predeterminada en el motor BPMN, pero probablemente tengas que cambiar las direcciones URL de los conectores http.

## <u>Tareas de servicio (llamadas a la API REST)</u>

Las tres tareas principales de servicio implementan un [conector http](https://docs.camunda.org/manual/7.8/reference/connect/http-connector/) para realizar las llamadas. Este conector se configura dentro de la configuración de la tarea, seleccionando Details>Implementation>Connector (Detalles>Implementación>Conector).

Después aparecerá una nueva pestaña para establecer los parámetros del conector.

![image](media://e8bd33f6-3486-4c07-b3f1-dc608605943c)

![image](media://8e1e632d-6b83-4dfc-a341-3695a94527c2)

En los encabezados establecemos el Content-type (tipo de contenido), aceptar (Accept), autorización (Authorization), etc.

El método es el método HTTP.

La url es la url de la API REST.

La carga útil o payload (opcional) es el cuerpo de la solicitud. Cuando necesites enviar cargas útiles JSON, usa el Script de Tipo de Parámetro (Parameter Type Script) para hacer uso del [Plugin](https://docs.camunda.org/manual/7.8/reference/spin/json/) [Spin](https://docs.camunda.org/manual/7.8/reference/spin/json/).

![image](media://1d2fd50d-d09c-443b-883d-fc7a65541674)

Vamos a comenzar el proceso a través de la API REST de Camunda

Primero necesitas conocer la ID de definición del proceso. Puedes recuperarla haciendo la siguiente solicitud.

**(Recuerda el encabezado de autorización con el token de portador de plataforma)**

![image](media://0cd6174a-f279-4665-b6b0-e27b693f7884)

Para empezar el proceso, realiza la siguiente petición con los parámetros de entrada (token y cantidad) en el cuerpo de la solicitud.

![image](media://f6c88936-9845-4767-807d-7733b1ca7d22)

Como este proceso no tiene ninguna tarea de usuario, terminará y tú tendrás en la respuesta las variables creadas a lo largo de la ejecución del proceso:

![image](media://04a652c7-7853-4642-a36b-c4b2af44e4cd)