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
  6. Hola q tal, como puedo desplegar una formulario vue js en camunda.Agredeceria una respuesta, muchas gracias

    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…

Primeros pasos con Camunda BPM...

... e impresiones. En el competido mercado de las Soluciones de Business Process Management(BPMS) se encuentran diversos fabricantes con productos u opciones de diversa calidad. Por mi foco de carrera o área de trabajo me ha tocado prácticamente trabajar con la gran e inmensa mayoría de todas estas soluciones de software, desde las más sencillas y económicas, las más populares y conocidas, las comerciales, las de código abierto, y hasta las más costosas, “worldclass”, de estas soluciones de BPM.