Automatización de procesos 2

39
Automatización de procesos 2 Gestión de Procesos y Servicios

description

Automatización de procesos 2. Gestión de Procesos y Servicios. Introducción. Camunda BPMS. ¡IMPORTANTE!. Todo lo que viene a continuaci ón es válido para la versión 7.1.0-alpha1 de Camunda. Si usas otra versión, las cosas puedes funcionar de manera distinta. - PowerPoint PPT Presentation

Transcript of Automatización de procesos 2

Page 1: Automatización de procesos 2

Automatización de procesos 2

Gestión de Procesos y Servicios

Page 2: Automatización de procesos 2

Introducción

Page 3: Automatización de procesos 2

Camunda BPMS

Page 4: Automatización de procesos 2

Todo lo que viene a continuación es válido para la versión 7.1.0-alpha1 de Camunda. Si usas otra versión, las cosas puedes funcionar de

manera distinta.

¡IMPORTANTE!

Page 5: Automatización de procesos 2

Antes de seguir, un poco de configuración…

Page 6: Automatización de procesos 2

Añadir dos ficherso a src/main/webapp/WEB-INF

• El código de ambos está disponible en la enseñanza virtual.

Page 7: Automatización de procesos 2

Modificar el fichero pom.xml tal como se muestra a continuación

Page 8: Automatización de procesos 2

IntroducciónConceptos básicos

Page 9: Automatización de procesos 2

Datos en el proceso

• El motor de procesos ignora completamente cualquier objeto de datos de BPMN.

• La forma de tener datos en el proceso es mediante variables del proceso.

• Las variables pueden ser tipos básicos de Java (int, boolean, String…) y colecciones de tipos básicos (List<String>…)

Page 10: Automatización de procesos 2

Expresiones

• Se pueden utilizar en diversos sitios: condiciones en gateways, tareas, eventos, definición de asignación o candidatos, propiedades multi-instance…

• Hay dos tipos:– ${expresion} para variables o evaluar expresiones sobre

variables. – #{expresion} para llamar a métodos de clases definidas en el

fichero applicationContext.xml

Page 11: Automatización de procesos 2

¿Qué devuelven las siguientes expresiones?

• ${rfcName}• ${decision == “approved”}• ${!resolved}• #{prepareHelpers.resolveUsersForTasks(users)}

Page 12: Automatización de procesos 2

IntroducciónConceptos básicos

Eventos

Page 13: Automatización de procesos 2

Recepción de mensajes

Usa sólo eventos de recepción de mensajes. Las tareas de recepción de mensaje estándiseñadas para ser usadas en el contexto de una aplicación

Page 14: Automatización de procesos 2

Envío de mensajes (1)

Page 15: Automatización de procesos 2

Envío de mensajes (2): El código Java

Page 16: Automatización de procesos 2

¿Qué es la información de correlación?

• Es la forma de indicar a cuál instancia del proceso debe ir a parar el mensaje.

• El motor buscará la instancia cuyas variables de proceso coincidan con las indicadas en la llamada a correlateMessage

Page 17: Automatización de procesos 2

Envío de mensajes (3): La configuración

Page 18: Automatización de procesos 2

¿Cómo enviar información junto al mensaje?

Page 19: Automatización de procesos 2

Eventos de tiempo

Consultar en http://en.wikipedia.org/wiki/ISO_8601 la forma de especificar los tiempos

Page 20: Automatización de procesos 2

IntroducciónConceptos básicos

EventosTareas

Page 21: Automatización de procesos 2

Tareas automáticas

• Service task• Business rule task• Send task• Receive task• Script task

Page 22: Automatización de procesos 2

Tareas automáticas

• Service task• Business rule task• Send task• Receive task• Script task

Page 23: Automatización de procesos 2

Tareas automáticas

Page 24: Automatización de procesos 2

Tareas automáticas

• Service task• Business rule task• Send task• Receive task: No usar. Utilizar eventos en su lugar.• Script task

Page 25: Automatización de procesos 2

Tareas automáticas

• Service task• Business rule task• Send task• Receive task• Script task

Page 26: Automatización de procesos 2

Script task

• Require tener el motor del lenguaje de script disponible.

• JDK 7 trae por defecto el motor de JavaScript

• Como recomendación, es mejor utilizar un service task en su lugar

Page 27: Automatización de procesos 2

User task

• Asocia a distintos usuarios o grupos separando por comas

• Indica que el formulario está definido en el fichero src/main/webapp/forms/form-analyse-rfc.html

• El due date se especifica en el formato ISO8601 o en un tipo Date de Java

Page 28: Automatización de procesos 2

Formularios

Page 29: Automatización de procesos 2

Formularios

Page 30: Automatización de procesos 2

Formularios

• Aplicar formato con hoja de estilos: http://getbootstrap.com/2.3.2/base-css.html#forms

• Validación: http://docs.angularjs.org/api/ng.directive:input

Page 31: Automatización de procesos 2

Tareas con Loops

• Las tareas de loop no están implementadas en Camunda. Por tanto, es necesario modificarlos a un ciclo con un gateway

Page 32: Automatización de procesos 2

Multi-instance (1)

Page 33: Automatización de procesos 2

Multi-instance (2)

Page 34: Automatización de procesos 2

Multi-instance (3)

Page 35: Automatización de procesos 2

Multi-instance (4)

• Desde cada instancia se puede consultar las siguientes variables:– nrOfInstances: El número total de instancias creadas– nrOfActiveInstances: El número de instancias que quedan activas– nrOfCompletedInstances: El número de instancias ya completas– loopCounter: El índice en el iterador para cada instancia

Page 36: Automatización de procesos 2

IntroducciónConceptos básicos

EventosTareas

Consejos

Page 37: Automatización de procesos 2

Consejos

• Organizar todas las clases usadas en un proceso en el mismo paquete Java

• Añadir expresiones a los nombres de los user tasks para que la lista de las tareas sea más comprensible

Page 38: Automatización de procesos 2

Consejos: Usar Loggers

Page 39: Automatización de procesos 2

Manuales de referencia

• Sobre el uso de BPMN 2.0 en Camunda: http://docs.camunda.org/latest/api-references/bpmn20/

• Sobre el uso de código Java con Camunda: http://docs.camunda.org/latest/guides/user-guide/#process-engine-delegation-code

• Sobre los formularios: http://docs.camunda.org/latest/guides/user-guide/#tasklist