Ir al contenido principal

Primeros pasos con Camunda BPM – Agregar Formularios HTML al Proceso BPMN


Es común cuando se trabaja con procesos en BPM bajo la notación BPMN el considerar formularios de entrada tanto para el inicio del proceso como para sus Tareas Humanas, sobre todo cuando se desea aprovechar las bondades que ofrece el motor de BPM, en este caso la plataforma BPM de Camunda.

En esta publicación vamos a tratar el tema de cómo agregar formularios de HTML personalizados para nuestras actividades de Inicio de Proceso y Tareas Humanas en el proceso BPMN que desplegamos en nuestra publicación anterior.

Así que síganme los buenos y manos a las sobras…




Crear carpeta FORMS en Eclipse


Vayamos a nuestro proyecto Maven-Java en eclipse, que ya hemos configurado en publicaciones anteriores, y ubiquemos la ruta:

bpm_demo/src/main/webapp

Allí agregamos la carpeta de nombre: forms



Agregar archivos HTML


Dentro de la carpeta forms recién creada, creemos un archivo denominado:
init_proc_prestamo.html
con el siguiente contenido:

<form name="requestPrestamo">
  <div class="form-group">
    <label for="customerId">Customer ID</label>
    <input class="form-control"
           cam-variable-type="String"
           cam-variable-name="customerId"
           name="customerId" />
  </div>
  <div class="form-group">
    <label for="amount">Amount</label>
    <input class="form-control"
           cam-variable-type="Double"
           cam-variable-name="amount"
           name="amount" />
  </div>
</form>


Note que declaramos dos campos de entrada correspondientes a las variables customerId y amount.

En ese mismo directorio creemos el archivo denominado:
check_prestamo.html
con el siguiente contenido:

<form name="checkPrestamo">
  <div class="form-group">
    <label for="customerId">Customer ID</label>
    <input class="form-control"
           cam-variable-type="String"
           cam-variable-name="customerId"
           name="customerId"
           readonly="true" />
  </div>
  <div class="form-group">
    <label for="amount">Amount</label>
    <input class="form-control"
           cam-variable-type="Double"
           cam-variable-name="amount"
           name ="amount" />
  </div>
</form>


Con esto ya tenemos listos los archivos .html que debemos asociar con nuestras actividades del proceso BPMN, lo cual realizaremos sin demora en el próximo paso.



Agregar Formularios al proceso BPMN


Vayamos a nuestro fabuloso editor, modeler, de Camunda BPM y abramos nuestro proceso denominado:

bpm_demo/src/main/resources/diagrama_sol_pretamo_1.bpmn

Seguidamente, ubiquemos el elemento “evento de inicio”, selecciónelo pinchando o haciendo click sobre él. En la barra de propiedades, seleccione la pestaña o sección “Forms” y agregue a la propiedad “Form Key” el siguiente valor:

embedded:app:forms/init_proc_prestamo.html



Esto significa que vamos a usar un formulario incrustado en la ventana de inicio y que se encuentra dentro de los recursos de la aplicación.

De igual forma vamos a asociar nuestra tarea humana “Solicitar Préstamo” con el formulario “check_prestamo.html”. Pare ello seleccionemos la actividad humana en cuestión, vayamos a la barra de propiedades, sección de formularios y establecemos la propiedad “Form Key” con el siguiente valor:

embedded:app:forms/check_prestamo.html



Guarde los cambios, vaya al eclipse y reconstruya y re despliegue el proceso.

Iniciar una Instancia de Proceso

Iniciemos el servidor de BPM de Camunda, vayamos al "TaskList" con el usuario Demo y busquemos la opción "Start Process", seleccionamos el proceso "Solicitar Préstamo" y podemos ver lo siguiente:



Cerremos la sesión, e iniciemos con el usuario John.

Vemos que tiene asignada la tarea “Solicitar Préstamo”, hacemos click en la tarea y podemos observar lo siguiente:



Que es justamente lo que queríamos demostrar.


Saludos y hasta una próxima entrega.

Comentarios

  1. oye esta serie de post están geniales! Me estoy introduciendo en este bpm y no he visto mejor explicación que la tuya.

    Se puede crear un cliente web (Angular por ejemplo) que mediante peticiones REST le muestre un cliente y formularios totalmente distintos para la manipulación de las tareas?

    ResponderEliminar
    Respuestas
    1. Claro que si. Puede desarrollar su cliente con el framework de su preferencia e invocar y controlar camunda por su API REST. Es la mejor manera de trabajar.

      Saludos cordiales.

      Eliminar
  2. Oye están excelentes esta serie de post. Estoy iniciandome con este bpm y no he visto mejores explicaciones que las tuyas.

    Podria crear un cliente web (Angular) para hacer estos formularios y via REST hacer la manipulacion de estas tareas?

    ResponderEliminar
  3. Hola buenas tardes, como puedo crear una sección en camunda, en Bizagi en el menú está la opción de "milestone" pero en camunda no identifico la forma de crearla.

    ResponderEliminar
  4. Hola buenas tardes, como puedo crear una sección en camunda, en Bizagi en el menú está la opción de "milestone" pero en camunda no identifico la forma de crearla.

    ResponderEliminar
  5. Hola que tal,

    muy buen tutorial.
    Estoy teniendo problemas al intentar iniciar una instancia de proceso que tenga formularios html.
    El error que tengo es el siguiente: Form failure: Not Found
    Podrias ayudarme ? estoy trabajando sobre mi proyecto de fin de grado con su tutorial.

    Saludos y gracias.
    Christian.

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

El Melange todavía corre

Ese era el estribillo de un capítulo de unas de mis series favoritas de la infancia, Meteoro o Speed Racer. En ese capítulo un auto “fantasma” el X-3, aparecía de imprevisto y dejaba a todos asombrados con su rendimiento y prestaciones y volvía a desaparecer. Traigo ese episodio a colación puesto que recientemente sostuve una amena charla con un querido amigo, en la que el me manifestaba como los Mainframes habían muerto, o mejor dicho, el concepto de la computación distribuida basada en Mainframes había desaparecido. Para variar, yo no estuve de acuerdo, y le dije que por el contrario, el modelo de computación basado en Mainframes está mas vigente que nunca. Estos fueron mis argumentos:

Primeros pasos con Camunda BPM – Modelando un Proceso BPMN 2.0

Tenemos entre manos la tercera publicación de nuestra serie sobre la Plataforma de BPM de Camunda .  El día de hoy vamos, por fin, a empezar a modelar o construir nuestro primer proceso sencillo en notación BPMN 2.0. Para ello vamos a usar el modelador o editor que ya hemos instalado en nuestra primera publicación , y vamos a guardarlo en la sección de recursos del proyecto Maven Java que configuramos en la segunda publicación . Así que, como ya es costumbre, manos a las sobras…

Como configurar jBPM para usar nuestra propia Base de Datos en un sólo paso

Llevo un buen rato trabajando con jBPM en su serie 6.x, y mi opinión sobre este producto en la versión mecionada no ha mejorado para nada. Es una herramienta plena de funciones y caracteristicas avanzadas, pero tambien está llena de Bugs y es realmente inestable, sobre todo en el ambiente de modelamiento.  Así mismo, debo decir que tiene una muy aceptable API REST y que el motor de procesos y la consecuente ejecución de los procesos es estable y bastante rápida. En esta publicación daré inicio a una serie de artículos que hablan sobre ciertas configuraciones comunes e importantes que se hacen con jBPM. Hoy iniciamos con la configuración de jBPM para que use nuestra base de datos favorita. Esto tiene sentido porque el producto viene con la base de datos H2 por omisión, la cual es excelente para pruebas y evaluaciones rápidas de la herramienta, pero es completamente inaceptable en un ambiente de desarrollo, QA o producción cualquiera. Así que manos a l