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:
e
mbedded: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.
oye esta serie de post están geniales! Me estoy introduciendo en este bpm y no he visto mejor explicación que la tuya.
ResponderEliminarSe 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?
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.
EliminarSaludos cordiales.
Oye están excelentes esta serie de post. Estoy iniciandome con este bpm y no he visto mejores explicaciones que las tuyas.
ResponderEliminarPodria crear un cliente web (Angular) para hacer estos formularios y via REST hacer la manipulacion de estas tareas?
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.
ResponderEliminarHola 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.
ResponderEliminarHola que tal,
ResponderEliminarmuy 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.