Download - BPMN Camp - Sesión 2- Ejercicios

Transcript
Page 1: BPMN Camp - Sesión 2- Ejercicios

Ejercicios

Copyright © 2015 Bonitasoft

Page 2: BPMN Camp - Sesión 2- Ejercicios

2

Tabla de contenidosPrefacio ........................................................................................................................................................... 31. Ejercicio: Modelado de proceso básico .............................................................................................................. 42. Ejercicio: Datos y formularios auto-generados .................................................................................................... 63. Ejercicio: Proceso con una puerta exclusiva ....................................................................................................... 84. Ejercicio: Formularios personalizados .............................................................................................................. 125. Ejercicio: Manejo de Actores ......................................................................................................................... 166. Ejercicio: Conector de notificación .................................................................................................................. 18

Page 3: BPMN Camp - Sesión 2- Ejercicios

3

PrefacioEl objetivo de los ejercicios es crear un proceso básico 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 teórico y ejercicios prácticos. Cadaejercicio le permitirá construir un ejecutable y una versión más 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.

• Corrección - Contiene una descripción detallada de los pasos requeridos para completar el ejercicio.

Page 4: BPMN Camp - Sesión 2- Ejercicios

4

1. Ejercicio: Modelado de proceso básicoObjetivo

El objetivo de este ejercicio es crear una primera versión básica del diagrama de proceso de solicitud de vacaciones.

En esta fase el proceso es ejecutable pero tiene un valor limitado desde el punto de vista de negocio ya que no dispone aún deformularios o datos. Lo extenderemos en los ejercicios siguientes.

InstruccionesPara hacer el ejercicio, crea un diagrama "Diagrama Solicitud de Vacaciones" en versión 1.0 que contenga un proceso "Solicitudde Vacaciones" en versión 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 terminación llamado "Fin - Solicitud procesada"

Corrección1. 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 diseño del diagrama pero fuera del pool (esto seleccionará el diagrama).

Navega hasta la pestaña "General / Diagrama" y pulsa sobre "Editar...".

Introduce "Diagrama Solicitud de Vacaciones" como nombre de diagrama y "Solicitud de Vacaciones" como nombre deproceso.

4. Renombra el evento de inicio a "Rellenar solicitud".

Selecciona el evento de inicio del proceso.

Navega hasta la pestaña "General / General" e introduce el nuevo nombre.

5. Renombra la tarea humana a "Validar solicitud".

Page 5: BPMN Camp - Sesión 2- Ejercicios

Ejercicio: Modelado de proceso básico

5

6. Añade un evento de terminación llamado "Fin - Solicitud procesada".

Selecciona la tarea humana, y arrastra el icono de evento (A) desde el menú contextual y selecciona el evento de terminación(B).

Una vez creado el evento, renómbralo.

7. Asegurate que el diagrama coincide con el siguiente:

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.

Page 6: BPMN Camp - Sesión 2- Ejercicios

6

2. Ejercicio: Datos y formularios auto-generadosObjetivo

El objetivo de este ejercicio es continuar con la implementación del proceso de solicitud de vacaciones añadiéndole datos.

Una vez completado, el proceso será ejecutable y mostrará los formularios generados automáticamente.

InstruccionesDuplica el diagrama de proceso del ejericio anterior para crear la versión 2.0.

Añade los siguientes datos a nivel de proceso:

• diaInicio (Fecha)

• numDias (Entero)

• aprobado (Booleano)

Corrección1. Duplica el diagrama de proceso del ejercicio anterior para crear la versión 2.0.

En el menú superior del Studio, Haz click en "Proceso / Duplicar".

Modifica los números de versión del diagrama y del proceso.

2. Añadir datos de proceso.

Selecciona el proceso.

Navega hasta la pestaña "General / Data" y Haz click en "Añadir".

Nombra a la variable como "diaInicio" (como es un nombre técnico no debe contener espacios en blanco ni caracteres espe-ciales).

Page 7: BPMN Camp - Sesión 2- Ejercicios

Ejercicio: Datos y for-mularios auto-generados

7

Selecciona como tipo "Fecha".

Haz click "Acabar & Añadir".

3. Añade una variable "numDias" de tipo "Entero".

Haz click "Acabar & Añadir".

4. Añade una variable "aprobado" de tipo "Booleano".

Haz click "Finalizar".

5. Asegúrese que los datos del proceso están definidos como en la siguiente imagen:

6. Guarda el proceso.

Haz click en el botón "Guardar" del menú superior del Studio.

7. Ejecuta el proceso.

Page 8: BPMN Camp - Sesión 2- Ejercicios

8

3. Ejercicio: Proceso con una puertaexclusiva

ObjetivoEl objetivo de este ejercicio es extender el proceso existente añadiendo una validación dinámica a la solicitud de vacaciones. Paraalcanzar dicho objetivo usaremos una compuerta exclusiva que derivará en dos caminos distintos: el primero cuando la solicitudse acepte, y la otra se rechace.

InstruccionesDuplica el diagrama de proceso del ejercicio anterior para crear la versión 3.0.

Modifica el diagrama para añadir los siguientes elementos después de la tarea "Validar Solicitud":

• una compuerta exclusiva llamada "¿Aceptado?"

• una tarea de servicio llamada "Notificar aceptación solicitud"

• un evento de terminación llamado "Fin - Solicitud rechazada"

• una tarea de servicio llamada "Notificar rechazo de solicitud"

• un evento de terminación llamado "Fin - Solicitud aceptada"

Configura las transiciones salientes de la puerta exclusiva para que puedan controlar dinámicamente el flujo basándose en losdatos del proceso.

Corrección1. Duplica el diagrama de proceso del ejercicio anterior para crear la versión 3.0.

2. Elimina el evento de terminación.

Selecciona el evento en el diagrama y pulsa "Suprimir" en su teclado.

3. Añade 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).

Page 9: BPMN Camp - Sesión 2- Ejercicios

Ejercicio: Proceso conuna puerta exclusiva

9

Cambia el nombre de la compuerta a "¿Aceptado?".

4. Crea una tarea de servicio llamada "Notificar aceptación solicitud" después de la compuerta.

5. Añade un evento de terminación llamado "Fin - Solicitud aceptada" seguida de la recién creada tarea automática.

6. Crea una tarea de servicio llamada "Notificar rechazo de solicitud" después de la compuerta.

7. Añade un evento de terminación llamado "Fin - Solicitud rechazada" seguida de la recién creada tarea automática.

8. Agrega una etiqueta a las dos transiciones salientes de la compuerta

La transición que conecta con "Notificar aceptación solicitud" deberá llamarse "Si" y la otra "No".

9. Configura la condicion en la transicion "Si" usando la variable "aprobado".

Selecciona el flujo y selecciona la variable "aprobado" del desplegable.

10.Define el flujo "No", como flujo por defecto.

Selecciona el flujo y marca el check "Flujo por defecto".

11.Valida el diagrama.

Cuando las condiciones de los flujos estén definidas, podrás validar el diagrama. Para ello, haz click en "Proceso / Validar"del menú superior del Studio.

12.Asegúrese que su diagrama coincide con:

13.Ejecuta varias veces el proceso para comprobar los distintos caminos.

Aviso: no hagas click varias veces en el botón "Ejecutar", esto redesplegará el proceso y limpiará el historico. Para crear unasegunda instancia de proceso, deberás navegar por el Bonita Portal.

Abre el Portal con el botón con dicho nombre en la barra de iconos superior o desde el link de la esquina superior derechadel entorno web:

Page 10: BPMN Camp - Sesión 2- Ejercicios

Ejercicio: Proceso conuna puerta exclusiva

10

Después, navega al menú "Procesos" y selecciona la definición de proceso "Solicitud de Vacaciones" con versión 3.0 y hazclick en "Iniciar".

14.Comprueba que el proceso se ha ejecutado correctamente desde la interfaz de administración del Portal.

En el Portal, cambia al perfil "Administrador" desde el desplegable de arriba a la derecha.

Navega hasta el menú "Gestión de Procesos / Casos"(1) luego, cambia a la pestaña "Casos Archivados"(2) y haz click en elicono del ojo(3) para ver los detalles del caso.

Comprueba la sección "Tareas Hechas" para validar la ejecución del procesos:

Page 11: BPMN Camp - Sesión 2- Ejercicios

Ejercicio: Proceso conuna puerta exclusiva

11

Page 12: BPMN Camp - Sesión 2- Ejercicios

12

4. Ejercicio: Formularios personalizados

ObjetivoEl objetivo de este ejercicio es disponer de una interfaz amigable para la ejecución del proceso.

InstruccionesDuplica el diagrama de proceso del ejercicio anterior para crear la versión 4.0.

Crea los siguientes formularios:

• Un formulario de instanciación "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 lecturay permita definir la variable "aprobado".

Corrección1. Duplica el diagrama de proceso del ejercicio anterior para crear la versión 4.0.

2. Crea un formulario de instanciación llamado "Rellenar solicitud de vacaciones".

Selecciona el pool del proceso y navega a la pestaña "Aplicación / Formulario" y haz click en "Añadir"

Introduce el nombre del formulario. Marca los campos "diaInicio" y "numDias" y márcalos como "Mandatorios". Haz clicken "Finalizar".

3. Modifica la etiqueta del botón "Enviar" para hacerlo más amigable.

Selecciona el widget "Enviar1" y navega a la pestaña "General / General" y cambia el texto de la etiqueta a "Enviar".

Page 13: BPMN Camp - Sesión 2- Ejercicios

Ejercicio: Formularios personalizados

13

4. Crea el formulario "Validar Solicitud de vacaciones" en la tarea humana "Validar Solicitud".

Selecciona la tarea humana y navega a la pestaña "Aplicación / Formulario" y haz click en "Añadir".

Introduce el nombre del formulario. Marca los campos "diaInicio" y "numDias" y márcalos como "Solo lectura". Haz clicken "Finalizar".

5. Crea una nueva columna en el formulario y reparte los dos campos en dos columnas.

Haz clic en el símbolo "+" verde de la esquina superior derecha de la grilla del formulario para crear una nueva columna.

Selecciona el campo "Día inicio" y extiendelo a 2 columnuas con la flecha negra mostrada en el lado derecho del widget.

Repite la misma operación con el campo "Número de días".

6. Añade un botón "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 vacía.

Selecciona el widget recién añadido, navega a la pestaña "General / General", define el nombre del botón como "btnAceptar"y cambia la etiqueta a "Aceptar".

7. Añade una acción al botón "Aceptar" para aceptar la solicitud.

Con el botón seleccionado, navega a la pestaña "General / Acciones" y haz click en Añadir.

Selecciona la variable "aprobado" en el campo "destino".

Page 14: BPMN Camp - Sesión 2- Ejercicios

Ejercicio: Formularios personalizados

14

Haga click en el icono del lápiz a la derecha. Asegúrese que está seleccionada la opción "Constante". Defina el "Valor" a"true" (sin comillas) y defina el tipo de retorno como "java.lang.Boolean". Pulse Aceptar.

Después de configurar la acción, el resultado debería ser:

8. Seleccione el botón "Enviar1" y modifique su nombre a "btnRechazar" y su etiqueta a "Rechazar".

9. Añade una acción al botón "Rechazar" para rechazar la solicitud.

Procede de la misma manera que para el botón "Aceptar": añade una acción que agregará el valor "false" (sin comillas) a lavariable "aprobado".

10.Ejecuta el proceso varias veces para testar los diferentes caminos y asegúrate de que los datos son guardados correc-tamente de un formulario al otro.

Page 15: BPMN Camp - Sesión 2- Ejercicios

Ejercicio: Formularios personalizados

15

11.Comprueba el detalle de los casos archivados para comprobar que se han tomado los caminos correctos.

Page 16: BPMN Camp - Sesión 2- Ejercicios

16

5. Ejercicio: Manejo de Actores

ObjetivoEl objetivo de este ejercicio es añadir colaboración al proceso existente repartiendo los formularios (tareas) entre 2 actores: unsolicitante y un validador.

InstruccionesDuplica el diagrama de proceso del ejercicio anterior para crear una versión 5.0.

Añade una senda "Validador" al diagrama y mueve la tarea "Validar solicitud" a ella.

Añade un filtro de actor de tipo "Gerente del iniciador" a la senda "Validador".

Corrección1. Duplica el diagrama de proceso del ejercicio anterior para crear una versión 5.0.

2. Añade 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. Añade un filtro de actor "Gerente Iniciador" a la senda "Validador".

Selecciona la senda "Validador" y navega a la pestaña "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".

Nómbralo como "managerSolicitante" y haz click en "Finalizar".

6. Asegúrate que el diagrama es así:

Page 17: BPMN Camp - Sesión 2- Ejercicios

Ejercicio: Manejo de Actores

17

7. Ejecuta el proceso con los dos actores.

Ejecuta el proceso desde el Studio (se usará el usuario "Walter Bates").

Envia el formulario "Solicitar vacaciones". Si los actores están correctamente definidos, la tarea "Validar solicitud de vaca-ciones" ya no debería estar disponible.

Desconecta del portal pulsando en el nombre de usuario en la esquina superior derecha y haz click en "Cerrar Sesión".

Conecta con el usuario "helen.kelly" y contraseña "bpm".

Si el filtro de actor se ha ejecutado correctamente, la tarea "Validar solicitud de vacaciones" deberá estar disponible en lalista de tareas.

Page 18: BPMN Camp - Sesión 2- Ejercicios

18

6. Ejercicio: Conector de notificación

ObjetivoEl objetivo de este ejercicio es de demostrar la interación de Bonita BPM con un sistema externo mediante el uso de un conector.En este contexto, vamos a notificar al solicitante de vacaciones sobre el estado de su solicitud con un conector de email.

InstruccionesDuplica el diagrama de proceso del ejercicio anterior para crear la versión 6.0.

Añade un conector de email en las tareas automáticas "Notificar aceptación solicitud" y "Noficar rechazo de solicitud". Estastareas enviarán un correo electrónico al solicitante con el estado de la solicitud.

El siguiente código será utilizado para obtener el email del solicitante en el conector:

import org.bonitasoft.engine.api.IdentityAPI; import org.bonitasoft.engine.api.ProcessAPI; import org.bonitasoft.engine.bpm.process.ProcessInstance; import 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();

Corrección1. Duplica el diagrama de proceso del ejercicio anterior para crear la versión 6.0.

2. Prueba el conector de email para obtener la configuración SMTP correcta.

Navega a "Desarrollo / Conectores / Probar Conector" en el menú superior.

Selecciona el conector "Correo electrónico (SMTP)" bien haciendo una búsqueda en el filtro, o seleccionando la categoria"Mensajería", despues haz clic en "Siguiente".

Rellena los parámetros de conexión basados en su cuenta de correo electrónico 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 botón "Prueba", confirma la siguiente ventana si añadir ninguna depen-dencia.

En este punto, deberá recibir un mensaje similar al siguiente:

Page 19: BPMN Camp - Sesión 2- Ejercicios

Ejercicio: Conector de notificación

19

Asegúrate que se recibe el email, (puede tomar unos minutos). Si no se recibe, modifica la configuración del conector y re-ejecútalo.

Una vez la configuración es válida, haga click en "Guardar".

Nombra la configuración del conector "emailConfig" y guárdela.

Cierra la pantalla de test de conector.

3. Añade un conector de email en la tarea "Notificar aceptación solicitud".

Selecciona la tarea, navega hasta la pestaña "General / Conectores" y haga click en "Añadir"..

Selecciona el conector "Correo electrónico (SMTP)" .

Nómbralo "enviarEmailAceptacionSolicitud" y haga click en "Siguiente".

No rellenee los parámetros, selecciona el botón "Carga":

Selecciona la configuración "emailConfig" y continue hasta la página "Dirección de email".

Introduce tu email en el campo "De".

Utiliza el icono de lápiz para editar la expresión en el campo "A".

Selecciona como tipo de expresion "Script", nombra el script como "obtenerEmailSolicitante" y pega el siguiente código enla zona de edición:

import org.bonitasoft.engine.api.IdentityAPI; import org.bonitasoft.engine.api.ProcessAPI; import org.bonitasoft.engine.bpm.process.ProcessInstance; import 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

Page 20: BPMN Camp - Sesión 2- Ejercicios

Ejercicio: Conector de notificación

20

ContactData contactData = identityAPI.getUserContactData(initiatorUserId, false); return contactData.getEmail();

Avanza a la siguiente página y define como asunto "Solicitud de Vacaciones Aprobada".

Haz click en "Finalizar".

4. Añade un conector de email en la tarea "Noficar rechazo solicitud".

Repite los pasos previos nombrando el conector como "enviarEmailRechazoSolicitud" y configurando "Solicitud de Vaca-ciones Rechazada" como asunto.

5. Modifica el email del usuario "Walter Bates" que usaremos para la prueba.

Abre el Portal desde el Studio usando el botón en el menú superior:

Cambia al perfil "Administrador" y navega al menú "Organización / Usuarios".

Selecciona el usuario "Walter Bates" y haz click en botón "Más".

Haga click en "Actualizar Usuario".

Selecciona la pesataña "Tarjeta de Visita".

Introduce su email en el campo correspondiente.

Guarda los cambios y cierra el Portal.

6. Ejecuta varias veces el proceso para comprobar los distintos caminos, y comprobar que recibe el email correspondiente.