Professional Documents
Culture Documents
Tabla de contenidos
Prefacio ........................................................................................................................................................... 3
1. Ejercicio: Modelado de proceso bsico .............................................................................................................. 4
2. Ejercicio: Datos y formularios auto-generados .................................................................................................... 6
3. Ejercicio: Proceso con una puerta exclusiva ....................................................................................................... 8
4. Ejercicio: Formularios personalizados .............................................................................................................. 12
5. Ejercicio: Manejo de Actores ......................................................................................................................... 16
6. Ejercicio: Conector de notificacin .................................................................................................................. 18
Prefacio
El objetivo de los ejercicios es crear un proceso bsico de solicitud de vacaciones.
El proceso se ejecutar de la siguiente manera:
1. Un empleado solicita unas vacaciones
2. El supervisor del solicitante valida la solicitud
Para implementar este proceso vamos a seguir un acercamiento iterativo mezclando contenido terico y ejercicios prcticos. Cada
ejercicio le permitir construir un ejecutable y una versin ms completa del proceso.
Cada ejercicio se divide en 3 secciones:
Objetivo - Presenta los objetivos del ejercicio.
Instrucciones - Contiene un resumen de los pasos principales requeridos para completar el ejercicio.
Correccin - Contiene una descripcin detallada de los pasos requeridos para completar el ejercicio.
Instrucciones
Para hacer el ejercicio, crea un diagrama "Diagrama Solicitud de Vacaciones" en versin 1.0 que contenga un proceso "Solicitud
de Vacaciones" en versin 1.0.
El proceso debera contener los siguientes elementos BPMN:
Un evento de inicio llamado "Rellenar solicitud"
Una tarea humana llamada "Validar solicitud"
Un evento de terminacin llamado "Fin - Solicitud procesada"
Correccin
1. Inicia Bonita Studio.
2. Crea un nuevo diagrama de proceso.
3. Nombra el diagrama y el proceso.
Haz click en cualquier parte del fondo del diseo del diagrama pero fuera del pool (esto seleccionar el diagrama).
Navega hasta la pestaa "General / Diagrama" y pulsa sobre "Editar...".
Introduce "Diagrama Solicitud de Vacaciones" como nombre de diagrama y "Solicitud de Vacaciones" como nombre de
proceso.
8. Guarda el proceso.
Haz click en "Guardar" en el men superior del Studio.
9. Ejecuta el proceso.
Haz click en "Ejecutar" en el men superior del Studio y navegue por los distintos formularios.
Instrucciones
Duplica el diagrama de proceso del ejericio anterior para crear la versin 2.0.
Aade los siguientes datos a nivel de proceso:
diaInicio (Fecha)
numDias (Entero)
aprobado (Booleano)
Correccin
1. Duplica el diagrama de proceso del ejercicio anterior para crear la versin 2.0.
En el men superior del Studio, Haz click en "Proceso / Duplicar".
Modifica los nmeros de versin del diagrama y del proceso.
2. Aadir datos de proceso.
Selecciona el proceso.
Navega hasta la pestaa "General / Data" y Haz click en "Aadir".
Nombra a la variable como "diaInicio" (como es un nombre tcnico no debe contener espacios en blanco ni caracteres especiales).
6. Guarda el proceso.
Haz click en el botn "Guardar" del men superior del Studio.
7. Ejecuta el proceso.
Instrucciones
Duplica el diagrama de proceso del ejercicio anterior para crear la versin 3.0.
Modifica el diagrama para aadir los siguientes elementos despus de la tarea "Validar Solicitud":
una compuerta exclusiva llamada "Aceptado?"
una tarea de servicio llamada "Notificar aceptacin solicitud"
un evento de terminacin llamado "Fin - Solicitud rechazada"
una tarea de servicio llamada "Notificar rechazo de solicitud"
un evento de terminacin llamado "Fin - Solicitud aceptada"
Configura las transiciones salientes de la puerta exclusiva para que puedan controlar dinmicamente el flujo basndose en los
datos del proceso.
Correccin
1. Duplica el diagrama de proceso del ejercicio anterior para crear la versin 3.0.
2. Elimina el evento de terminacin.
Selecciona el evento en el diagrama y pulsa "Suprimir" en su teclado.
3. Aade una puerta exclusiva llamada "Aceptado?" seguida de la tarea humana "Validar Solicitud".
Selecciona la tarea "Validar Solicitud", pincha y arrastra del icono de compuerta del men contextual.
Cuando hayas creado la compuerta, utiliza el icono "herramientas"(1) para modificar el tipo a "Exclusiva"(2).
Despus, navega al men "Procesos" y selecciona la definicin de proceso "Solicitud de Vacaciones" con versin 3.0 y haz
click en "Iniciar".
14.Comprueba que el proceso se ha ejecutado correctamente desde la interfaz de administracin del Portal.
En el Portal, cambia al perfil "Administrador" desde el desplegable de arriba a la derecha.
Navega hasta el men "Gestin de Procesos / Casos"(1) luego, cambia a la pestaa "Casos Archivados"(2) y haz click en el
icono del ojo(3) para ver los detalles del caso.
10
11
Instrucciones
Duplica el diagrama de proceso del ejercicio anterior para crear la versin 4.0.
Crea los siguientes formularios:
Un formulario de instanciacin "Rellenar solicitud de vacaciones" donde agregar las variables "diaInicio" y "numDias".
Un formulario de tarea "Validar Solicitud de vacaciones" que muestre las variables "diaInicio" y "numDias" en solo lectura
y permita definir la variable "aprobado".
Correccin
1. Duplica el diagrama de proceso del ejercicio anterior para crear la versin 4.0.
2. Crea un formulario de instanciacin llamado "Rellenar solicitud de vacaciones".
Selecciona el pool del proceso y navega a la pestaa "Aplicacin / Formulario" y haz click en "Aadir"
Introduce el nombre del formulario. Marca los campos "diaInicio" y "numDias" y mrcalos como "Mandatorios". Haz click
en "Finalizar".
Selecciona el campo "Da inicio" y extiendelo a 2 columnuas con la flecha negra mostrada en el lado derecho del widget.
Repite la misma operacin con el campo "Nmero de das".
6. Aade un botn "Aceptar" en la parte inferior derecha del formulario.
Selecciona de la paleta a la izquierda del editor el widget "Enviar" y haz click en la ltima celda vaca.
Selecciona el widget recin aadido, navega a la pestaa "General / General", define el nombre del botn como "btnAceptar"
y cambia la etiqueta a "Aceptar".
7. Aade una accin al botn "Aceptar" para aceptar la solicitud.
Con el botn seleccionado, navega a la pestaa "General / Acciones" y haz click en Aadir.
Selecciona la variable "aprobado" en el campo "destino".
13
Haga click en el icono del lpiz a la derecha. Asegrese que est seleccionada la opcin "Constante". Defina el "Valor" a
"true" (sin comillas) y defina el tipo de retorno como "java.lang.Boolean". Pulse Aceptar.
14
11.Comprueba el detalle de los casos archivados para comprobar que se han tomado los caminos correctos.
15
Instrucciones
Duplica el diagrama de proceso del ejercicio anterior para crear una versin 5.0.
Aade una senda "Validador" al diagrama y mueve la tarea "Validar solicitud" a ella.
Aade un filtro de actor de tipo "Gerente del iniciador" a la senda "Validador".
Correccin
1. Duplica el diagrama de proceso del ejercicio anterior para crear una versin 5.0.
2. Aade una senda "Validador" al proceso.
Selecciona el elemento "Senda" de la paleta BPMN y pulsa sobre el proceso.
Con la senda seleccionada, navega a "General / Senda" y define su nombre como "Validador".
3. Renombra la otra senda a "Solicitante".
4. Pincha y arrastra la tarea "Validar Solicitud" a la senda "Validador".
5. Aade un filtro de actor "Gerente Iniciador" a la senda "Validador".
Selecciona la senda "Validador" y navega a la pestaa "General / Actores".
Selecciona el actor "Employee actor" del men desplegable.
Haz click en el boton "Definir" del filtro de actor.
Selecciona el filtro de actor "Gerente Iniciador" de la lista y haz click en "Siguiente".
Nmbralo como "managerSolicitante" y haz click en "Finalizar".
6. Asegrate que el diagrama es as:
16
17
Instrucciones
Duplica el diagrama de proceso del ejercicio anterior para crear la versin 6.0.
Aade un conector de email en las tareas automticas "Notificar aceptacin solicitud" y "Noficar rechazo de solicitud". Estas
tareas enviarn un correo electrnico al solicitante con el estado de la solicitud.
El siguiente cdigo ser utilizado para obtener el email del solicitante en el conector:
import
import
import
import
org.bonitasoft.engine.api.IdentityAPI;
org.bonitasoft.engine.api.ProcessAPI;
org.bonitasoft.engine.bpm.process.ProcessInstance;
org.bonitasoft.engine.identity.ContactData;
// Get APIs
ProcessAPI processAPI = apiAccessor.getProcessAPI();
IdentityAPI identityAPI = apiAccessor.getIdentityAPI();
// Get process initiator
ProcessInstance processInstance = processAPI.getProcessInstance(processInstanceId);
long initiatorUserId = processInstance.getStartedBy();
// Get email from process initiator
ContactData contactData = identityAPI.getUserContactData(initiatorUserId, false);
return contactData.getEmail();
Correccin
1. Duplica el diagrama de proceso del ejercicio anterior para crear la versin 6.0.
2. Prueba el conector de email para obtener la configuracin SMTP correcta.
Navega a "Desarrollo / Conectores / Probar Conector" en el men superior.
Selecciona el conector "Correo electrnico (SMTP)" bien haciendo una bsqueda en el filtro, o seleccionando la categoria
"Mensajera", despues haz clic en "Siguiente".
Rellena los parmetros de conexin basados en su cuenta de correo electrnico y pulse en "Siguiente".
Introduce tu email en los campos "De" y "A" y pulsa en "Siguiente".
Introduce "Bonita Test" como asunto y pulse en el botn "Prueba", confirma la siguiente ventana si aadir ninguna dependencia.
En este punto, deber recibir un mensaje similar al siguiente:
18
Asegrate que se recibe el email, (puede tomar unos minutos). Si no se recibe, modifica la configuracin del conector y reejectalo.
Una vez la configuracin es vlida, haga click en "Guardar".
org.bonitasoft.engine.api.IdentityAPI;
org.bonitasoft.engine.api.ProcessAPI;
org.bonitasoft.engine.bpm.process.ProcessInstance;
org.bonitasoft.engine.identity.ContactData;
// Get APIs
ProcessAPI processAPI = apiAccessor.getProcessAPI();
IdentityAPI identityAPI = apiAccessor.getIdentityAPI();
// Get process initiator
ProcessInstance processInstance = processAPI.getProcessInstance(processInstanceId);
long initiatorUserId = processInstance.getStartedBy();
// Get email from process initiator
19
20