2. Laboratorio GeneXus X Evolution 2. “BPM Suite” | 2
Copyright 1988 - 2013| Artech Consultores S. R. L.
Todos los derechos reservados. Este documento no puede ser reproducido en cualquier medio sin el consentimiento
explícito de Artech Consultores S.R.L. La información contenida en este documento es para uso personal únicamente.
Marcas Registradas
Artech y GeneXus son marcas registradas de Artech Consultores S.R.L. Todas las demás marcas mencionadas en
este documento son propiedad de sus respectivos dueños.
3. Laboratorio GeneXus X Evolution 2. “BPM Suite” | 3
Contenido
Contenido..........................................................................................................................3
Objetivo ............................................................................................................................4
¿Qué es un proceso de negocio?..........................................................................................4
¿Qué es BPM? (Business Process Management) ....................................................................4
Introducción ......................................................................................................................4
Caso de estudio .................................................................................................................5
Paso 1. Modelando el proceso en GeneXus ...........................................................................5
Creación del Business Process Diagram ................................................................................6
Paso 2. Diseño del proceso de negocio.................................................................................8
Paso 3: Ejecución del proceso de negocio........................................................................... 19
Anexo 1. Definiendo la Seguridad (Opcional) ...................................................................... 25
Glosario........................................................................................................................... 30
4. Laboratorio GeneXus X Evolution 2. “BPM Suite” | 4
Objetivo
El objetivo de este laboratorio es que Ud. pueda desarrollar y probar una aplicación BPM
(Business Process Management) usando GeneXus y GXflow.
Usted encontrará una serie de ejercicios diseñados, con formato paso a paso, que le ayudarán a
iniciarse en la herramienta sin necesidad de contar con ningún conocimiento previo de GXflow
ni de GeneXus.
¿Qué es un proceso de negocio?
Es un conjunto de tareas relacionadas lógicamente llevadas a cabo para lograr un resultado de
negocio.
¿Qué es BPM? (Business Process Management)
Es una metodología que se enfoca en administrar y optimizar en forma continua las actividades
y procesos de negocio de la organización.
Introducción
Usted es el encargado de diseñar y poner en funcionamiento el proceso de negocio que
administra las Solicitudes de Crédito de su empresa. La aplicación asociada al proceso ya se
encuentra desarrollada, por lo que no es necesario programar. El objetivo del trabajo es
desarrollar únicamente el diagrama del proceso y luego ejecutarlo.
Mediante este tutorial, logrará describir la realidad presentada en GeneXus para generar un
caso de sistema de créditos en una plataforma Web utilizando el Generador .NET y base de
datos SQL Server. Partiremos de una base de conocimiento existente con algunos objetos ya
creados para concentrarnos en los procesos de negocio.
5. Laboratorio GeneXus X Evolution 2. “BPM Suite” | 5
Caso de estudio
Supongamos que una empresa requiere una aplicación que administre su Sistema de
Solicitud de Crédito. En este proceso una persona se presenta en la empresa solicitando un
crédito y lo atiende un administrativo quién iniciará el Proceso Solicitud.
Si esta persona no es actualmente cliente de la empresa se procede a Solicitarle los datos y
en caso contrario el proceso continúa. Luego el préstamo deberá ser Autorizado por el
Gerente de Préstamos. En caso de ser autorizado se le Otorgará el Crédito al cliente y en
caso contrario el proceso culmina.
Paso 1. Modelando el proceso en GeneXus
Abrir la Base de Conocimiento (Knowledge Base) desde las Recent Knowledge Bases como se
muestra en la figura siguiente.
6. Laboratorio GeneXus X Evolution 2. “BPM Suite” | 6
Una vez abierta la base de conocimiento, vamos a crear el primer diagrama, que representará
el proceso de Solicitud de Crédito. Para ello vea los siguientes pasos:
Creación del Business Process Diagram
Para crear un nuevo objeto hacemos CTRL+N, seleccionamos el tipo Business Process
Diagram y le ponemos el nombre, en este caso será Solicitud de Crédito.
7. Laboratorio GeneXus X Evolution 2. “BPM Suite” | 7
Para diseñar el proceso se utilizan los distintos Símbolos que le proporciona la barra de
herramientas (Toolbox). Si no visualiza la barra vaya a: View -> Other Tool Windows ->
Toolbox y podrá visualizarla.
Los elementos que deberá utilizar para realizar el diagrama de Solicitud de Crédito son los
siguientes:
Símbolo de Inicio de proceso (None Start Event). Cuando el proceso comienza, se utiliza
este símbolo. No es necesario utilizarlo, a no ser que la tarea inicial del proceso tenga aristas de
entrada.
Símbolo de Fin de proceso (None End Event). Cuando el proceso debe finalizar, se utiliza
este símbolo. No es necesario utilizarlo si no se desea.
Actividad Interactiva (User Task), sirve para que las personas puedan ejecutar sus
tareas. Cada actividad va asociada a una aplicación interactiva.
Actividad Batch (Script Task), sirve para ejecutar programas sin que sea necesaria la
intervención de personas. Se les asocian programas batch.
8. Laboratorio GeneXus X Evolution 2. “BPM Suite” | 8
Condicional (Inclusive). Se utiliza cuando es necesario tomar decisiones en el flujo del
proceso.
Condicional (Exclusive). Se utiliza cuando es necesario tomar decisiones en el flujo del
proceso.
Para insertar un símbolo en el diagrama, se arrastra desde la barra de herramientas hacia el
diagrama.
Paso 2. Diseño del proceso de negocio
Para comenzar, veamos la primera frase del problema planteado:
“En este proceso una persona se presenta en la empresa solicitando un crédito y lo atiende un
administrativo quién iniciará el proceso solicitud.”
Lo primero que debemos representar es el inicio del proceso. Para eso arrastramos el símbolo
de inicio de tipo None al diagrama.
9. Laboratorio GeneXus X Evolution 2. “BPM Suite” | 9
A continuación del inicio necesitamos una actividad para ingresar la información de la
solicitud. Para eso arrastramos el símbolo User Task al diagrama y lo conectamos al inicio y
modificamos su descripción en las propiedades. Le ponemos Name: Ingresar Solicitud.
Como conectar elementos:
Tip para aumentar su productividad: Luego de arrastrar una actividad al
diagrama presione F2 para modificar su descripción.
Vemos que la base de conocimiento contiene los siguientes objetos GeneXus ya creados:
Transacción: Loan
Transacción: Customer
Web Panel: GrantLoan
Web Panel: LoanAuthorization
10. Laboratorio GeneXus X Evolution 2. “BPM Suite” | 10
A la primer tarea Ingresar Solicitud le vamos a asociar un objeto que nos permita ingresar la
información del crédito que la persona está solicitando, para eso utilizamos la Transacción
Loan.
Para asociar esta Transacción a la tarea del proceso, seleccionamos la tarea y usamos la
propiedad Application como se muestra a continuación.
Elegimos la Transacción Loan y realizamos los pasos marcados en la siguiente imagen:
11. Laboratorio GeneXus X Evolution 2. “BPM Suite” | 11
Luego de esto, seguimos analizando la realidad que continúa con la siguiente frase:
“Si esta persona no es actualmente cliente de la empresa se procede a solicitarle los datos
y en caso contrario el proceso continúa.”
En este caso se tiene que evaluar una condición que indica si la persona es cliente o no y
solamente se puede dar una de las dos. Por eso vamos a utilizar el símbolo de Exclusive
Gateway y lo conectamos a la actividad anterior.
Ahora vamos a modelar el caso de que la persona no sea cliente.
En este paso vamos a usar otra alternativa para el diseño, arrastramos la Transacción
Customer ubicada en el Knowledge Base Navigator de GeneXus y la colocamos en nuestro
diagrama, como observamos en la siguiente imagen:
12. Laboratorio GeneXus X Evolution 2. “BPM Suite” | 12
Conectamos la actividad al Exclusive Gateway y presionando la tecla F2 le cambiamos la
descripción colocándole Ingresar Cliente, ya que en esta actividad solicitaremos los datos del
nuevo cliente.
Agregaremos un poco de lógica a nuestro proceso de solicitud de crédito…
Después del ingreso de la solicitud hay que evaluar si la persona que está realizando la solicitud
es cliente o no y para eso utilizaremos el atributo CustomerId, en caso que sea 0 debemos
registrar a la persona como cliente. Para eso seleccionamos el conector que va a la tarea de
Ingresar Cliente y en las propiedades seleccionamos la propiedad Condition Rule, allí la
condición que debe cumplirse es que Loan.CustomerId = 0 como se muestra en la siguiente
imagen:
13. Laboratorio GeneXus X Evolution 2. “BPM Suite” | 13
Siguiendo con la realidad planteada…
"Luego el préstamo deberá ser Autorizado por el Gerente de Préstamos”
Aquí aparece una tarea de Autorizar Crédito. Para eso vamos a incluir una nueva User Task
para la autorización y presionando F2 le colocamos el nombre. Conectamos el Exclusive
Gateway y la tarea Ingresar Cliente a esta nueva tarea como vemos en la imagen:
Ahora veamos el flujo cuando la persona ya es cliente de la empresa. En este caso debemos
expresar que si la otra condición no se cumple, este es el camino por defecto. Para eso
utilizamos el conector de tipo default como se muestra en la imagen:
14. Laboratorio GeneXus X Evolution 2. “BPM Suite” | 14
Para terminar nuestro diagrama de proceso veamos que pasa después de la autorización:
“En caso de ser autorizado se le otorgará el crédito al cliente y en caso contrario el
proceso culmina.”
Aquí nos encontramos con una evaluación y en caso de ser aprobado el préstamo con una
nueva tarea llamada Otorgar Crédito al cliente, de lo contrario termina el proceso. Para eso
vamos a utilizar un Exclusive Gateway, una User Task y además el símbolo de fin de un
proceso de tipo Message.
Los End Event: Message permiten representar que un proceso termina con un mensaje
genérico, podría ser un email, un llamado telefónico, o el otorgamiento de un crédito como en
este caso, etc.
15. Laboratorio GeneXus X Evolution 2. “BPM Suite” | 15
Seguiremos asociando lógica a nuestro proceso de negocio…
A la tarea de Autorizar Crédito le vamos a asignar el web panel LoanAuthorization, este
objeto recibe como parámetro la clave primaria LoanId, por lo tanto podremos establecer que
se actualice con el valor del dato relevante LoanId que se cargó inicialmente en el proceso
como se muestra en la siguiente imagen:
16. Laboratorio GeneXus X Evolution 2. “BPM Suite” | 16
En esta instancia debemos almacenar la decisión del gerente (si autoriza o no), en este caso no
vamos a agregar un atributo a la transacción Loan sino que vamos a utilizar una variable, o
sea un dato relevante de tipo boolean por ejemplo. Ese dato relevante se cargará con el
valor true en caso de que se autorice y false en caso contrario. Para definir el dato relevante
seleccionamos la pestaña Datos Relevantes del diagrama, presionamos la tecla enter y
agregamos un nuevo dato relevante llamado Authorized como se muestra en la siguiente
imagen:
Una vez almacenada la decisión del gerente hay que evaluarla por lo tanto al conector de
aprobación del préstamo vamos a asignarle la siguiente condición:
Este dato relevante se setea en la sección Eventos del web panel LoanAuthorization. Esta
sección ya se encuentra desarrollada.
17. Laboratorio GeneXus X Evolution 2. “BPM Suite” | 17
El otro conector lo dejamos como Default.
Para terminar asignamos a la tarea Otorgar Crédito el Web Panel Grant Loan.
18. Laboratorio GeneXus X Evolution 2. “BPM Suite” | 18
¡Felicitaciones!
Usted ha creado con éxito su primera aplicación BPM.
19. Laboratorio GeneXus X Evolution 2. “BPM Suite” | 19
Paso 3: Ejecución del proceso de negocio
Durante esta sección vamos a probar en ejecución el proceso que acabamos de diseñar, para
eso presionamos clic derecho sobre el objeto y en el menú contextual que se despliega
utilizamos la opción Run del diagrama.
20. Laboratorio GeneXus X Evolution 2. “BPM Suite” | 20
Se abrirá el cliente de GXflow con una tarea en la Bandeja de Entrada disponible para probar
nuestro proceso.
Lo primero que tenemos que hacer es ejecutarla, para eso seleccionamos la tarea y
presionamos el botón Execute, esto nos abrirá la aplicación asociada donde ingresaremos una
nueva solicitud con lo siguientes datos y confirmamos:
Ingresamos los datos del préstamo a solicitar con cualquier monto y seleccionamos Confirm
21. Laboratorio GeneXus X Evolution 2. “BPM Suite” | 21
La tarea fue ejecutada ahora resta completarla para eso presionamos el botón Send.
Dado que no ingresamos el código de cliente, el flujo continuará por el camino de registro del
cliente por lo tanto la próxima tarea que sea crea en nuestra bandeja de entrada será:
Ingresar Cliente.
22. Laboratorio GeneXus X Evolution 2. “BPM Suite” | 22
Al igual que la tarea anterior, la seleccionamos, presionamos el botón Execute e ingresamos
un cliente con los siguientes datos y confirmamos. La foto podemos encontrarla en el escritorio,
el nombre del archivo es Luisito.jpg.
Seleccionamos Confirm y luego para completar la tarea seleccionamos Send.
A continuación la siguiente tarea que veremos en la bandeja de entrada es la de Autorizar
Crédito.
23. Laboratorio GeneXus X Evolution 2. “BPM Suite” | 23
Al ejecutar la tarea seleccionamos la opción de autorizar en este caso:
Luego de seleccionar Authorize completamos la tarea seleccionando Send.
Luego de la autorización se procede a otorgarle el crédito al cliente por lo tanto se crea la tarea
Otorgar Crédito:
24. Laboratorio GeneXus X Evolution 2. “BPM Suite” | 24
La ejecutamos y presionamos el botón close.
Luego completamos la tarea con el botón Send.
Aquí termina la fase de prototipación de nuestro proceso donde nos aseguramos que todos los
caminos posibles del proceso reflejan la realidad que queremos representar.
En la siguiente sección veremos cómo representar los distintos roles y usuarios que estarán
involucrados en la ejecución del proceso.
25. Laboratorio GeneXus X Evolution 2. “BPM Suite” | 25
Anexo 1. Definiendo la Seguridad (Opcional)
Vemos que en la realidad planteada tenemos dos perfiles distintos: Administrativo y Gerente
de Préstamos. Estos perfiles los representamos como roles en GeneXus (Preferences –
Workflow – Roles) como vemos en la imagen a continuación:
Para asignar roles a las tareas contamos con la propiedad Roles como vemos en la siguiente
imagen:
26. Laboratorio GeneXus X Evolution 2. “BPM Suite” | 26
Al hacer clic se abre el siguiente diálogo para seleccionar el rol:
Vamos a asignarle roles a todos los elementos del diagrama, para esto vamos seleccionando el
elemento y cambiamos la propiedad Roles de cada uno.
1. Al símbolo de Inicio le asignamos el rol Employee.
2. A las tareas de Ingresar Cliente y Otorgar Crédito le asignamos el mismo rol
Employee.
3. Por último a la tarea Autorizar Crédito le asignamos el rol Loan Manager.
4. Una vez asignados los roles estamos en condiciones de probar la aplicación completa
como será ejecutada en producción, para eso debemos cambiar el modo de ejecución y
seleccionar StandardClient en las propiedades del Environment.
27. Laboratorio GeneXus X Evolution 2. “BPM Suite” | 27
Luego de modificar el modo de ejecución hacemos Run de un diagrama y veremos que en vez
de abrirnos el cliente para prototipar nos abre el Login de GXflow.
Vamos a ingresar con el usuario administrador para crear los usuarios que formarán parte del
sistema.
User: WFADMINISTRATOR
Password: WFADMINISTRATOR
28. Laboratorio GeneXus X Evolution 2. “BPM Suite” | 28
Al ingresar vamos al módulo de usuarios:
Y agregamos dos nuevos usuarios: USER1 y USER2 utilizando el botón NEW.
Ahora vamos a asignarle roles a estos usuarios utilizando el botón Roles:
Luego asignamos lo siguiente:
USER1: Employee
USER2: Loan Manager
29. Laboratorio GeneXus X Evolution 2. “BPM Suite” | 29
Una vez asignados los roles cerramos la sesión del administrador e ingresamos con el USER1.
1. Iniciamos una instancia de proceso utilizando el botón NEW, ingresamos la solicitud,
seleccionamos el cliente ingresado anteriormente y vemos que al enviar la tarea ya no
tenemos tareas pendientes en la bandeja de entrada.
2. Cerramos la sesión e ingresamos con el USER2 para la autorización del crédito.
3. Luego si autorizamos e ingresamos con el USER1 vemos la tarea de otorgar crédito.
Aquí termina el proceso y hemos visto como se resuelve la seguridad automáticamente luego
de asignados los roles.
¡Gracias por participar!
30. Laboratorio GeneXus X Evolution 2. “BPM Suite” | 30
Glosario
Sitio Web de GXflow
www.gxflow.com
Documentación técnica de GXflow
www.genexus.com/gxflowdocs