Este
manual explica cómo diseñar un proceso mediante el diseñador web de
procesos del negocio de Q-flow.
Este
manual está dividido en las siguientes secciones:
·
Guía
rápida: explica
cómo diseñar un proceso sencillo, mediante un ejemplo, de forma tal
que el lector pueda familiarizarse con los conceptos más básicos y
con el funcionamiento de las operaciones más importantes de la
herramienta.
·
Operaciónde la interfaz de usuario: explica en detalle cómo funciona la interfaz de usuario.
También se muestran algunas de las operaciones más comunes, y
contiene una sección con instrucciones para diseñar un proceso (es
decir, construir el diagrama del proceso).
·
Ítems del
proceso: describe
detalladamente cada tipo de ítem de proceso (datos de aplicación,
roles y otros ítems que se usan para que los procesos manejen
datos, asignen tareas, accedan a otros sistemas de software, etc).
Incluye descripciones detalladas de las propiedades de cada
ítem.
·
Elementos del diseño de un
proceso: describe
detalladamente los elementos que se pueden incluir en el diseño de
un proceso: para qué sirve cada uno y qué propiedades
tiene.
El
objetivo de esta sección es dar una introducción rápida a Q-flow
mediante un ejemplo práctico, de forma que el lector pueda comenzar
a usar el producto y familiarizarse con él lo más pronto
posible.
Una
empresa quiere mejorar su sistema de atención a quejas de clientes
mediante un proceso de Q-flow. El proceso de quejas que
implementarán es así:
1.
Un cliente llama a la empresa
para expresar una queja.
2.
El receptor de la llamada
inicia un proceso de Q-flow con los siguientes datos:
·
Nombre del
cliente
·
Dirección de correo
electrónico del cliente: se usará para enviarle un mensaje una vez atendida la
queja.
·
Texto de la
queja: descripción
de la queja del cliente.
·
Texto para enviar al
cliente: el texto
que se le enviará al cliente vía correo electrónico una vez
atendida la queja.
3.
El gerente comercial elige a un
empleado como encargado de atender la queja.
4.
El encargado de atender la
queja la atiende y redacta un texto para enviarle por correo
electrónico al cliente.
5.
Se envía automáticamente un
mensaje de correo electrónico al cliente, utilizando el texto
ingresado en el paso anterior.
6.
Termina la ejecución de
proceso.
Para
construir el proceso, primero es conveniente crear un paquete en el
que se guardará la plantilla del proceso (ver “Creación de un paquete”). Una vez creado el paquete, cree una
plantilla de proceso con el nombre “Quejas” dentro de ese paquete
(ver “Creación de una
plantilla de proceso”).
La plantilla de proceso representa la especificación del
proceso.
Cuando
crea una plantilla de proceso, automáticamente se crea una versión
llamada 1.0. La versión contiene el diseño del proceso. El diseño
del proceso es una representación gráfica de éste. Una plantilla de
proceso puede tener varias versiones, pero sólo una es la versión
en producción, es decir, la que se usa cuando se inician procesos
basados en la plantilla. Cuando se cambia la versión en producción,
procesos que ya estaban ejecutándose siguen utilizando la versión
con la que fueron iniciados.
Una vez
creada la plantilla, se pueden agregar al diseño los elementos del
proceso. La Figura
1 muestra el diseño
planteado, que tendrá los siguientes elementos:
·
Evento de
inicio:indica dónde
empieza la ejecución del proceso. Todos los diseños tienen que
tener un elemento de inicio. Cuando se crea una versión, el diseño
viene con un evento de inicio y un evento de fin.
·
Elegir encargado de atender
la queja: es una
tarea de usuario. Las tareas de usuario asignan tareas a usuarios.
Este elemento le asigna al gerente comercial la tarea de elegir el
encargado de atender la queja. Cuando el proceso llegue a ese
elemento, Q-flow notificará al gerente comercial, que ingresará al
sitio de Q-flow y accederá al formulario de la tarea. Allí podrá
ver los datos del proceso, seleccionar el encargado de atender la
tarea e indicar que terminó.
·
Atender la
queja:también es una
tarea de usuario. Esta tarea se asigna al usuario que el gerente
comercial seleccionó en la tarea “Elegir encargado de atender la
queja”. El encargado de atender la queja ingresará al formulario de
la tarea, verá los datos del proceso e ingresará el texto que se le
enviará al cliente.
·
Notificar al
cliente: es una
tarea de e-mail, que envía un mensaje de correo electrónico a la
dirección especificada.
·
Evento de
fin:cuando un
proceso llega a un evento de fin, termina su ejecución. Este
proceso tiene solamente un evento de fin, pero es posible que un
proceso tenga varios.
Figura 1 Diseño del
proceso
Para
agregar los elementos al diseño:
1.
Haga clic con el botón derecho
en la versión de la plantilla y seleccione “Desproteger” en el menú
que aparece.
Figura 2 Desproteger una versión usando el menú
contextual
2.
Vuelva a hacer clic con el
botón derecho en la versión de la plantilla, pero esta vez
seleccione la opción “Diseño de proceso”. Esto hace que Q-flow abra
el diseño del proceso. El diseño viene con un evento de inicio y un
evento de fin conectados entre sí (Figura 3). Haga clic en la conexión y pulse la tecla “Suprimir”.
Esto desconecta los pasos.
Figura 3 Diseño sin
modificar de la versión
3.
Para agregar la tarea “Elegir
encargado de atender la queja”, seleccione el ícono que representa
una actividad en la barra de herramientas (Figura 4, “Botón para agregar una actividad”). Hágale clic
y después haga clic en el diseño. Esto agrega la actividad, aunque
sin especificar que es una tarea de usuario.
Note que al agregar la actividad, aparece una columna de íconos a
la derecha (Figura
4). Si selecciona el
ícono que representa una actividad (Figura 4, “Botón para agregar otra actividad a continuación”), se
puede agregar rápidamente otra actividad que quedará
automáticamente conectada a la primera. Haga clic en ese ícono para
agregar otra actividad (esta actividad será la tarea “Atender la
queja”).
Finalmente, repita la operación para agregar la actividad que se
usará para notificar al cliente. El diseño queda parecido al de
la Figura
5.
Figura 4 Diseño con una
actividad recién agregada
Figura 5 El diseño,
después de agregarle tres actividades
4.
Seleccione la herramienta de
conexión en la barra de herramientas (Figura 6). Haga clic en el evento de inicio y a continuación, en la
primera de las actividades. Esto conecta los dos elementos,
indicando que el proceso debe pasar del evento de inicio a esa
actividad.
Figura 6 Herramienta de
conexiones global
Otra forma de conectar dichos elementos es seleccionar el
evento de inicio, del cual se desplegará un menú con distintas
opciones (Figura
7). Entre ellas, aparece
la opción de “Conectar”, la cual debe ser seleccionada. Luego,
simplemente se debe hacer clic en la primera de las actividades,
logrando así conectar los elementos.
Figura 7 Crear conexión
desde un paso
Por
ambos caminos, se logra la conexión entre dos pasos, como lo
muestra la Figura
8.
Figura 8 Pasos
conectados
5.
Conecte también la última
actividad al evento de fin, como lo muestra la Figura 9.
Figura 9 El diseño, una
vez conectado el evento de inicio con la primera actividad, y la
última actividad con el evento de fin
6.
Las actividades todavía no
tienen ningún tipo: no se sabe si son tareas de usuario, tareas de
servicio, etc. La primera actividad debe ser una tarea de usuario.
Para especificar esto, selecciónela y haga clic en el ícono verde
con dos flechas blancas que apuntan en sentidos opuestos
(Figura
10, “Botón para
especificar el subtipo de un elemento”). Al hacer esto, aparece un
menú para elegir el tipo de la actividad. Seleccione “Tarea de
usuario”. Repita el procedimiento para la segunda actividad. Para
la tercera, haga lo mismo, pero en lugar de seleccionar “Tarea de
usuario”, seleccione “Tarea de e-mail”.
Figura 10 Especificación del tipo de una actividad
El diseño
ya tiene los pasos que se necesitan para el proceso. Ahora falta
especificar los nombres y propiedades de los elementos. Por
ejemplo, la primera tarea de usuario debería tener un nombre
descriptivo como “Elegir encargado de atender la queja”. También
habría que indicar: ¿a quién va dirigida la primera tarea? ¿A qué
dirección de correo electrónico se envía el mensaje de la tarea de
e-mail? Para poder especificar eso, primero hay que definir ítems a
los que se hará referencia en esas propiedades: para indicar a
quién asignar una tarea, se necesita un rol de proceso; para
guardar la dirección de correo electrónico se necesita un dato de
aplicación.
Por más información sobre cómo
diseñar un proceso, vea la sección “Diseño del proceso de una
versión”.
El proceso
necesita dos roles:
·
Gerente
comercial: es el que
elige al encargado de atender la queja. A este rol se le puede
asignar un usuario durante la definición del proceso (se sabe quién
es el gerente comercial). Este rol es el destinatario de la tarea
“Elegir encargado de atender la queja”.
·
Encargado de atender la
queja: es el que
recibe la tarea “Atender la queja”. A este rol se le asigna un
usuario durante la ejecución del proceso: es lo que hace el gerente
comercial. Este rol es el destinatario de la tarea “Atender la
queja”.
Los roles
se agregarán a la plantilla del proceso, no en la versión (por más
información sobre los roles, vea la sección “Roles de plantilla de
proceso”). Así, cuando
se hagan nuevas versiones, esos roles van a estar disponibles en
ellas y no va a ser necesario crear nuevos (ítems pertenecientes a
una plantilla de proceso están disponibles en sus versiones; ítems
pertenecientes a paquetes están disponibles en todos sus paquetes
descendientes, así como en plantillas y versiones de sus
descendientes).
Para crear
el rol “Gerente comercial”:
1.
Desproteja la plantilla:
encuéntrela en el árbol de paquetes y haga clic en ella con el
botón derecho del ratón. En el menú que aparece, seleccione
“Desproteger” (Figura
11).
Figura 11 Desproteger
plantilla "Quejas"
2.
Ahora vuelva a hacer clic con
el botón derecho en la plantilla. En el menú, seleccione “Ítems” y
después, “Roles de proceso”. Eso hace que aparezca una pantalla con
la lista de roles, que está vacía (Figura 12).
Figura 12 Lista de
roles
3.
Haga clic en el botón con el
símbolo “+” para agregar un rol.
4.
En el formulario que aparece,
escriba el nombre del rol (Figura 13).
Luego, para asignarle un usuario use su propia cuenta de usuario.
Para eso, donde dice “Comienza a escribir un usuario…”, comience a
escribir el nombre de la cuenta que está utilizando para probar
Q-flow. Si no sabe cuál es ese nombre, fíjese, en la parte de
arriba a la derecha, qué nombre aparece (Figura 14). Ése es el nombre que tiene que escribir. Cuando comience
a escribir, aparecerá una lista de usuarios. A medida que escribe,
la lista va mostrando menos elementos (muestra elementos cuyos
nombres contienen lo que usted escribe). Cuando vea el nombre de su
cuenta de usuario, hágale clic y su cuenta de usuario se agregará
como miembro del rol.
Figura 13 Propiedades
de un rol: se ingresó el nombre "Gerente comercial" y se le está
asignando el usuario "Viviana Luongo" como miembro
Figura 14 Parte de la
pantalla en la que se muestra el nombre del usuario actual
("Viviana Luongo", en este caso)
5.
Haga clic en el botón de
Aceptar y crear otro (Figura 13,
“Aceptar y crear otro”). Esto creará el rol (aparecerá en la lista
de roles) y le permitirá continuar creando roles sin cerrar el
panel, pero limpiando los datos anteriores.
Una vez
creado el rol “Gerente comercial”, cree el rol “Encargado de
atender la queja”. No es asignarle ningún miembro ya que el gerente
comercial seleccionará un usuario para asignarle a ese rol en la
tarea “Elegir encargado de atender la tarea”. En este caso, como no
necesita crear ningún otro rol, puede guardarlo con el botón de
Aceptar. Cuando intente guardar los cambios, Q-flow le advertirá de
que el rol no tiene miembros y le preguntará si desea continuar de
todas formas. Conteste que sí. El listado de roles quedará como se
muestra en la Figura
15.
Figura 15 Roles de la
plantilla creados
Los datos
de aplicación que se necesitan son:
·
Nombre del cliente
·
Dirección de correo
electrónico
·
Texto de la queja
·
Texto para enviar al
cliente
Para crear
el dato de aplicación “Nombre del cliente”:
1.
Haga clic con el botón derecho
del ratón en la plantilla del proceso, seleccione “Ítems” y “Datos
de aplicación”.
2.
Haga clic en el botón con el
símbolo “+” para agregar un dato de aplicación.
3.
Ingrese como nombre “Nombre del
cliente”, tipo de dato “Texto”, que es la opción por defecto y haga
clic en el botón de “Agregar y crear otro” (idéntico al que se ve
en el panel de Rol). Esto creará el dato y podrá agregar
otro.
Repita el
paso 3 para los otros datos de aplicación (para el último, use el
botón de Aceptar para guardar). Por más información sobre
datos de aplicación, vea la sección “Datos de aplicación”.
Figura 16 Creación del dato "Nombre del cliente"
El
listado de datos quedará como muestra la Figura 17.
Figura 17 Listado de
datos creados
Ahora ya
se puede configurar cada uno de los elementos del
diseño.
Evento de inicio
Para
configurar el evento de inicio, hágale doble clic. Lo único que se
necesita modificar es el alcance, que no aparece por defecto entre
las propiedades del evento de inicio. Para verlo, haga clic en el
ícono de expandir formulario (Figura 18,
“Expandir formulario”). Esto expande el formulario del evento de
inicio para mostrar más propiedades, que están organizadas en
varias secciones. Haga clic donde dice “Alcance” para que aparezcan
las propiedades relacionadas a dicho formulario.
Figura 18 Propiedades
del evento de inicio
El alcance
permite especificar qué datos y roles son visibles y modificables
en actividades interactivas, como lo es una tarea de usuario o en
un evento de inicio. En el inicio del proceso, interesa que el
usuario pueda asignar valores a los datos de aplicación. Entonces,
en la subsección “Alcance de datos”, marque todos los datos de
aplicación, haciendo clic en la caja que aparece al lado del
cabezal de la columna “Nombre de datos”. Esto hace que se marquen
todos los datos de aplicación (Figura 19).
Después, haga clic en el botón correspondiente al alcance
“Editable” (el segundo desde la izquierda, Figura 19). En la columna “Alcance”, todos los datos
pasarán a tener el valor “Editable”. Haga clic en el botón de
aceptar (✓) para guardar
los cambios. Para ver más información sobre el alcance, vaya a la
sección “Alcance de
datos, roles, adjuntos y comentarios”.
Figura 19 Asignación de
alcance "Editable" a todos los datos de aplicación
Tarea “Elegir encargado de atender la queja”
Presione
la tecla “E” en la tarea de usuario que está inmediatamente después
del evento de inicio y escriba “Elegir encargado de atender la
queja” en el nombre (Figura 20).
Figura 20 Cambio de
nombre de tarea
A
continuación, haga clic donde dice “Mensaje” para expandir la
sección de propiedades del mensaje del formulario de propiedades
(Figura
21).
Figura 21 Formulario
Mensaje de tarea de usuario
La primera
propiedad de esa sección es el asunto de la tarea (cuando se
utiliza el correo electrónico para notificar a un usuario de que
tiene una tarea, el asunto del mensaje de correo electrónico es el
que se ingresa en esta propiedad). Escriba “Elegir encargado de
queja de ”. El “de” del final (seguido de un espacio) es porque
vamos a incluir el nombre del cliente en el asunto. El nombre del
cliente no está disponible al momento de diseñar el proceso, pero
durante su ejecución estará en el dato “Nombre del cliente”. Se
puede incluir en el asunto mediante una etiqueta (ver
“Etiquetas”). Una
etiqueta permite tomar el valor de algún ítem del proceso y usarlo
en alguna propiedad de algún elemento.
Las propiedades para las que se pueden usar etiquetas se indican
con un ícono que representa una etiqueta (Figura 23).
Para
especificar una etiqueta, a continuación del texto que escribió en
el asunto, escriba el símbolo “#”, que significa que se usará una
etiqueta. Q-flow muestra los ítems que se pueden seleccionar como
etiqueta (Figura
22).
Figura 22 Insertando
etiqueta en asunto
Seleccione
en la lista el dato de aplicación “Nombre del cliente”. En ese
momento, Q-flow agrega la etiqueta al asunto. La etiqueta se
representa mediante un texto con símbolos especiales que indican
que ese texto es una etiqueta, un texto que indica qué tipo de ítem
se usa (en este caso, “Data”, que significa un dato de aplicación)
y el nombre del ítem (“Nombre del cliente”). Ver Figura 23.
Figura 23 Asunto de
tarea con etiqueta
Debajo del
asunto de la tarea se deben ingresar las respuestas posibles para
la tarea. Cuando a un usuario se le asigna una tarea, debe ingresar
al sitio de Q-flow para contestarla. Algunas tareas brindan varias
respuestas posibles. Por ejemplo, una tarea de un proceso puede ser
“¿Aprueba este gasto?” y esa tarea tendría dos respuestas,
“Aprobar” y “Rechazar”. En este caso, sólo se necesita una
respuesta que indique que se seleccionó al encargado de atender la
queja y el proceso puede continuar.
Para
agregar una respuesta, haga clic en el botón con el símbolo “+” que
aparece debajo de donde dice “Respuestas”. Eso hace que Q-flow
agregue una respuesta a la lista de respuestas que estaba vacía. La
respuesta agregada tiene, por defecto, el texto “Respuesta 1”
(Figura
24).
Figura 24 Agregar
respuesta
Haga clic
en “Respuesta 1”. Eso le permitirá modificar el texto, como muestra
la Figura
25.
Figura 25 Editando
respuesta
Escriba
“Terminada” y pulse la tecla “Enter”. En la fila de la respuesta
hay una columna Tipo que tiene como opción “Final”. No la cambie,
esto indica que, una vez que se selecciona una respuesta, el
proceso debe continuar y pasar al siguiente elemento del diseño
(los distintos tipos de respuesta de tarea se explican en más
detalle en la sección “Mensaje” dentro
de “Tarea de
usuario”).
Figura 26 Respuesta agregada
Luego hay
que seleccionar el destinatario de la tarea. El destinatario es el
rol al que se asignará la tarea (mediante el rol, la tarea se
asigna a usuarios: los miembros del rol). En este caso, el
destinatario es el rol “Gerente comercial”. Para seleccionarlo,
donde dice “Destinatarios”, escriba “Gerente comercial”. Mientras
lo esté escribiendo, aparecerá una lista en la que aparecerá ese
rol para seleccionar. Selecciónelo. Durante la ejecución del
proceso, Q-flow enviará la tarea a la cuenta de usuario que fue
especificada como miembro de ese rol (Figura 27).
Figura 27 Destinatario
de tarea ingresado
Finalmente, hay que especificar el alcance de datos y
roles. Para eso hay que expandir el formulario, como se hizo con el
evento de inicio. En este caso hay que modificar el alcance para
que el rol “Encargado de atender la queja” sea modificable y
requerido. Además, el usuario que desempeña esta tarea debería ver
los datos de la queja, por lo que en el alcance de datos se debe
especificar que los datos de aplicación sean visibles pero no
modificables (alcance de “Sólo lectura”). Seleccione entonces, en
“Alcance de roles”, el rol “Encargado de atender la queja”, y haga
clic en el botón “Requerido” (Figura 28).
Figura 28 Alcance de roles
En
“Alcance de datos”, seleccione todos los datos y haga clic en el
botón “Sólo lectura” (Figura 29).
Figura 29 Alcance de
datos Sólo lectura
Tarea “Atender la queja”
Escriba
“Atender la queja” como nombre del paso.
En el
asunto escriba “Atender la queja y escribir el texto para enviarle
al cliente” y a continuación use el dato de aplicación “Nombre del
cliente” como etiqueta, al igual que hizo con la otra tarea de
usuario.
El
destinatario es el rol “Encargado de atender la queja”, que hasta
el momento no tiene ningún miembro, pero cuando se esté ejecutando
el proceso, tendrá como miembro el usuario que seleccione el
gerente comercial en la tarea anterior.
Luego,
agregue una respuesta como final, para que el usuario pueda
responder el formulario. Por ejemplo, con clave y texto
“Resuelto”.
La
configuración del mensaje debería quedar como muestra la
Figura 30.
Figura 30 Formulario de
mensaje de la tarea “Atender la queja”
En esta
tarea, ningún rol debe ser visible ni modificable, pero todos los
datos deben ser visibles y particularmente el dato “Texto para
enviar al cliente” debe ser modificable. Por lo tanto, este dato
debe tener el alcance “Editable” y los demás, “Sólo lectura”
(Figura
31).
Figura 31 Alcance de
datos de la tarea “Atender la queja”
Tarea de e-mail
Donde va
el nombre de la tarea de e-mail, escriba “Enviar respuesta al
cliente”.
También
hay que especificar que el destinatario se tome del dato de
aplicación “Dirección de correo electrónico”. Esto también se hace
con una etiqueta, al igual que con las tareas de usuario, pero en
este caso, se debe seleccionar el dato de aplicación “Dirección de
correo electrónico”. Luego, hay que escribir un asunto para el
mensaje, escriba “Resolución de su queja” (Figura 32).
Figura 32 Configuración
de la tarea de e-mail hasta el momento
Finalmente, hay que especificar que el cuerpo del mensaje
debe ser lo ingresado en el dato “Texto para enviar al cliente” por
el encargado de resolver la queja. Esto se hace mediante una
etiqueta, pero en este caso, para abrir la lista de ítems que se
pueden usar como etiquetas, debe hacer clic en el área de texto y
pulsar Control + Espacio (Figura 33). Así
funcionan las propiedades que usan un área de texto (por ejemplo,
el código de una tarea de código).
Figura 33 Si se
selecciona un área de texto, al pulsar Control+Espacio aparece una
lista de ítems que se pueden agregar como etiqueta
Al
seleccionar la etiqueta, se mostrará como en la Figura 34.
Figura 34 Etiqueta
ingresada en cuerpo de mail
Una vez
que terminó de definir el proceso, debe indicar que la versión 1.0
(la única, por ahora) es la versión en producción. De lo contrario,
cuando ingrese al sitio web de Q-flow para iniciar un proceso, no
encontrará la plantilla que acaba de diseñar. Para eso, busque la
versión en el árbol de paquetes, haga clic en ella con el botón
derecho del ratón y seleccione, en el menú, “Asignar como versión
en producción” (Figura
35).
Figura 35 Asignar como
versión en producción
Finalmente, proteja la plantilla y la versión del proceso.
Para proteger cualquiera de esos ítems del árbol, hágale clic con
el botón derecho y, en el menú contextual, seleccione “Proteger”
(Figura
36).
Figura 36 Proteger
versión
Para
iniciar un proceso y poder realizar pruebas, utilice el sitio de
Q-flow (Figura
37). Consulte el manual
correspondiente al sitio que esté usando (sitio ASP. Net o sitio
MVC) por instrucciones.
Figura 37 Iniciar
proceso de Quejas
El proceso
anterior tiene el defecto de que el gerente comercial siempre tiene
que intervenir para seleccionar al encargado de atender la queja.
Si esta decisión se pudiera automatizar, al menos para algunos
casos, se podría mejorar el proceso.
Una
posibilidad es categorizar las quejas y definir un encargado para
cada categoría. Al iniciar un proceso, el iniciador ve una lista de
categorías de quejas y elige una. Una vez iniciado un proceso, se
asigna la tarea de atender la queja al encargado correspondiente a
la categoría seleccionada. Se puede incluir una categoría “Otra”
para contemplar quejas que no se ajustan a ninguna de las
categorías definidas. Quejas en esa categoría se comportan como
antes: el gerente comercial decide quién se encarga de
ellas.
Para hacer
este cambio, se necesita un nuevo dato para la categoría. Un dato
se asocia a un dominio, que indica, entre otras cosas, cómo se
muestra y qué tipo de datos tiene. Un dominio también puede definir
un conjunto de valores posibles para el dato (para conocer más
información acerca de los dominios, vea la sección
“Dominios”). Por
eso, crearemos un dominio nuevo que indicará que sus datos, en
lugar de mostrarse como una caja de texto cuando son editables,
deben mostrarse como listas desplegables (“Combo box”). El dominio
también definirá las categorías que aparecerán en la lista. En el
ejemplo, las categorías serán tres: “Producto defectuoso”, “Mala
atención” y “Otra”. En el sitio web de Q-flow, se podría ver como
muestra la Figura
38.
Figura 38 Combo box en
el sitio web
Para cada
categoría habrá una tarea de usuario dirigida al encargado de esa
categoría. Para decidir a cuál de ellas irá el proceso se usará una
compuerta exclusiva, que se conecta con varios elementos y asocia
una condición a cada uno de ellos. Cuando el proceso llega a una
compuerta exclusiva, evalúa las condiciones y sigue su camino yendo
al elemento asociado a la condición que se cumple. En este caso, la
compuerta exclusiva estará conectada con cada una de las tareas de
usuario correspondientes a cada categoría. Entonces, si la
categoría es “Producto defectuoso” o “Mala atención”, el proceso
seguirá su camino por la tarea con su correspondiente nombre. Si es
“Otra”, irá a la misma tarea que en la versión anterior (“Elegir
encargado de la queja”).
El diseño
de la nueva versión quedará como el de la Figura 39. A continuación, se describe cómo diseñar la nueva
versión.
Figura 39 Segunda
versión del proceso
1.
Desproteja la plantilla de
proceso.
2.
Hágale clic con el botón
derecho y, en el menú contextual, haga clic en “Agregar versión”
(Figura
40).
Figura 40 Agregar
versión de plantilla
3.
Seleccione, dentro de “Patrón
de la versión de la plantilla”, la versión “1.0” (esto creará una
nueva versión como copia de la seleccionada) e ingrese el nombre de
la versión como “2.0” (Figura 41).
Figura 41 Agregar
versión 2.0
Para crear
el dominio de tipo lista “Categoría de queja”:
1.
Desproteja la plantilla de
proceso.
2.
Seleccione la plantilla con el
botón derecho y en el menú seleccione “Ítems” y después “Dominios
de dato” (Figura
42).
Figura 42 Acceder a
dominios
3.
Haga clic en el botón de
agregar. En el formulario de propiedades, además de ingresar
“Categoría de queja” en el nombre, seleccione el tipo de control
“Combo box” (una lista que se despliega) y en “Origen de datos”,
seleccione “Lista”. Haga clic en el ícono del engranaje al lado
para que Q-flow muestre las propiedades de la lista.
Figura 43 Dominio
"Categoría de la queja"
4.
Haga clic en el botón de
agregar. Esto agrega una fila. Haga clic en “Ítem 1” en la columna
“Texto” e ingrese “Producto defectuoso”. Este valor se copiará
automáticamente en la columna “Clave” (Figura 44).
5.
Repita el procedimiento para
agregar dos filas más: “Mala atención” y “Otra”. Después, acepte
los cambios.
Figura 44 Definición de
los elementos de la lista
6.
Guarde los cambios en la lista
mediante el botón de “Aceptar”.
7.
Guarde los cambios en el
dominio mediante el botón de “Aceptar”.
Cree un
dato de aplicación, nómbrelo “Categoría” y donde dice “Dominio de
datos” seleccione “Categoría de queja”.
Figura 45 Dato "Categoría"
Para
modificar el diseño:
1.
Agregue una compuerta
exclusiva, para eso es necesario generar espacio entre el Evento de
inicio y la tarea de usuario. Utilice la herramienta de
crear/eliminar espacio como lo muestra la Figura 46.
Figura 46 Agregar paso
entre dos pasos
2.
Agregue dos tareas.
3.
Conecte la compuerta exclusiva
con las dos nuevas tareas.
Figura 47 Agregar dos tareas luego de la compuerta
exclusiva
4.
Conectar las dos nuevas tareas
con la tarea “Notificar al cliente”.
5.
Renombre los elementos nuevos
para que queden como los de la Figura 48.
Figura 48 Diseño del
proceso de Quejas 2.0 terminado
Cree dos
nuevos roles: “Encargado de productos” y “Encargado de atención”.
Asigne su cuenta de usuario como miembro (esto es sólo para probar:
naturalmente, en un caso real, cada uno tendría un miembro
distinto).
El listado
de roles debería quedar como muestra la Figura 49.
Figura 49 Listado de
roles del proceso de Quejas 2.0
1.
Configure la tarea “Atender
mala atención” para que el destinatario sea el rol “Encargado de
atención”. Haga lo mismo con la tarea “Atender producto defectuoso”
para que el destinatario sea el rol “Encargado de productos”
(Figura
50).
Figura 50 "Atender mala
atención" y "Atender producto defectuoso"
2.
Abra el formulario de
propiedades de la compuerta exclusiva.
3.
Expanda el formulario, haciendo
clic en el botón de expandir formulario y abra la sección
“Condiciones”. Ésta estará dividida en tres subsecciones, una para
cada una de las tareas a las cuales la compuerta está conectada
(Figura
51).
Figura 51 Sección
Avanzado de la compuerta exclusiva
4.
En la subsección
correspondiente a la tarea “Atender Producto Defectuoso”, haga clic
en “+Condición”. Esto agrega una condición vacía
(Figura
52).
Figura 52 Agregar
condición
5.
Donde dice “Empiece a
escribir”, escriba “Categoría”. Cuando aparezca una lista con el
dato de aplicación “Categoría”, selecciónelo (Figura 53).
Figura 53 Configurando
condición (1)
6.
En la caja de texto que aparece
en la parte derecha de la condición, al lado del operador “igual”,
escriba “Producto defectuoso” (Figura 54).
Figura 54 Configurando
condición (2)
7.
Haga lo mismo en la subsección
correspondiente a “Atender mala atención”, pero escribiendo “Mala
atención” en lugar de “Producto defectuoso” en la condición.
La Figura 55
muestra cómo queda la
configuración de la compuerta exclusiva.
Figura 55 Configuración
de la compuerta exclusiva
8.
Haga clic en la conexión que
une la compuerta a la tarea “Elegir encargado de atender queja”.
Haga clic en el ícono verde que muestra dos flechitas blancas y
seleccione “Conexión por defecto” (Figura 56). De este modo, si ninguna de las otras expresiones se
evalúa como verdadera, se utilizará esta conexión.
Figura 56 Asignar
conexión por defecto
9.
Guarde los cambios (usando el
botón en la barra de herramientas derecha).
Cuando
termine de hacer los cambios, proteja la plantilla del proceso y
ponga la nueva versión en producción (ver “Poner versión en
producción”).
A
continuación se describen otras mejoras que se le podrían hacer al
proceso y se explica, sin entrar en detalles, cómo se
implementarían, con el objetivo de mostrar cómo se utilizan otras
funcionalidades de Q-flow que todavía no se han
mencionado.
Algo
bastante común en el uso de Q-flow es utilizar una base de datos
para almacenar datos del proceso. Los datos que tienen que estar
disponibles en datos de aplicación, como por ejemplo, los que se
usan en etiquetas o en condiciones de compuertas se dejan en datos
de aplicación, pero otros se pasan a una base de datos para no
sobrecargar la base de datos de Q-flow u otros motivos relacionados
con la arquitectura del sistema.
En
general, se utiliza un web service (SOAP o REST) para acceder a la
base de datos y para proveer a Q-flow las funciones que permiten
obtener y guardar datos en ella, así como también para implementar
operaciones propias de la lógica del negocio. Para que Q-flow pueda
acceder a ese web service, se utiliza una integración (ver
“Integraciones”).
Una integración se define de forma similar a como se definen los
datos de aplicación, dominios y roles, y se debe especificar cómo
conectarse con un componente (en este caso, un web service) y qué
operación utilizar (un método del web service). También define cómo
intercambiar datos entre Q-flow y el web service (se asocian datos
de aplicación a los parámetros de la operación que se invoca y al
resultado que la operación devuelve).
Los datos
de conexión con el web service (o con otros componentes, en el caso
de integraciones con componentes de otros tipos) se suelen guardar
en parámetros de aplicación, que también se definen de forma
similar a los datos de aplicación, roles y dominios (ver
“Parámetros de
aplicación”).
Otra
práctica común es desarrollar código que obtiene y modifica datos
del proceso. Esto permite manejar algunos aspectos del proceso de
forma más flexible, de modo de facilitar cambios futuros. Por
ejemplo, en la segunda versión de este proceso, se usa una tarea de
usuario para cada categoría de queja. Pero esto no sería práctico
si hubiera muchas categorías de queja. Tampoco sería práctico si se
espera que las categorías cambien, ya que cada vez que se agregue
una categoría, habría que modificar el diseño del proceso,
probablemente creando una nueva versión.
Es más
práctico usar una única tarea de usuario y un único rol, en lugar
de una tarea de usuario y un rol por categoría. Para eso se puede
usar el rol “Encargado de atender la queja”, que no tiene un
miembro predefinido y asignarlo durante la ejecución del proceso,
como se hacía en la primera versión. La diferencia es que se tiene
que hacer automáticamente y no manual como en esa versión. Para eso
se puede usar una tarea de código.
En una
tarea de código se puede escribir código que accede a los datos del
proceso. Es posible escribir código que lea el valor de un dato de
aplicación y asigne un miembro a un rol. En este caso, se
escribiría código que leería el valor del dato “Categoría” y, según
su valor, se seleccionaría al encargado de atender la queja,
asignándolo como miembro del rol “Encargado de atender la
queja”.
Este
código se puede escribir en las propiedades de la tarea de código
(ver “Tarea de
código”), pero también
se puede escribir en una integración ad hoc (ver
“Integraciones”).
Las
funciones que provee Q-flow para interactuar con los datos de sus
procesos se describen detalladamente en el manual de la interfaz de
scripting.
Otra
práctica común es utilizar colas de trabajo como miembros de los
roles en lugar de cuentas de usuario. En lugar de asignar las
tareas a usuarios particulares, se asignan a colas de trabajo
(“Departamento de envíos”). Una cola de trabajo está asociada a
permisos que indican quiénes pueden tomar tareas asignadas a ella.
Por ejemplo, sólo los usuarios del departamento de envíos pueden
tomar tareas de la cola “Departamento de envíos”. Así, cuando una
tarea es asignada a esa cola de trabajo, todos los que pueden tomar
tareas de esa cola son notificados y cualquiera de ellos puede
tomar la tarea para sí y encargarse de ella. El concepto de cola de
trabajo está explicado en el manual del administrador del modelo
organizacional. Ese manual también explica cómo crear colas de
trabajo.
Esta
sección explica cómo utilizar el diseñador web de procesos del
negocio.
La
Figura 57 muestra la pantalla principal del
diseñador web.
Los
principales elementos de la interfaz son:
·
El menú superior:
tiene opciones para ir al
inicio, cerrar la sesión y acceder a la pantalla de
configuración.
·
El menú lateral:
permite operar con los
paquetes, plantillas de proceso, versiones y buscar
elementos.
·
El árbol de
paquetes: permite
ver la estructura jerárquica de plantillas de proceso, paquetes y
versiones, y seleccionar el elemento sobre el cual se desea
operar.
·
La zona de
edición: muestra los
elementos con los que se está trabajando y es donde se diseñan los
diagramas de las versiones.
Figura 57 Pantalla
principal del diseñador web
La
Figura 58 muestra el menú superior. A continuación,
se explica cada una de las funciones disponibles a través de
él.
Figura 58 Menú superior
Si se
hace clic en “Información de versión”, se mostrará la versión del
producto que se está usando.
Figura 59 Versión del producto
La
función de configuración tiene la opción de administración de
permisos de la herramienta, la cual se explica en el manual del
Modelo Organizacional Web.
El menú
lateral permite mostrar u ocultar el árbol de paquetes, acceder a
operaciones comunes que están disponibles también a través de los
menús contextuales de los elementos del árbol (estas operaciones se
explican en la sección sobre el árbol de paquetes) y buscar
elementos de la aplicación.
Figura 60 Menú lateral
Se
explican las opciones que requieren aclaraciones:
Para abrir
el panel de buscar elementos, se puede acceder presionando el icono
de lupa del menú lateral, o presionando “Ctrl + Shift +
F”.
Búsqueda rápida
Una
búsqueda rápida consiste en escribir en la caja de texto parte del
nombre del elemento que se busca. Los elementos que se pueden
buscar en esta modalidad son aquellos pertenecientes al árbol, es
decir, los paquetes, plantillas y versiones de toda la solución,
así como también los roles, dominios y datos que se encuentren en
el paquete que esté seleccionado en el árbol o en alguno de sus
padres. Q-flow responde filtrando los elementos que se muestran en
la zona de edición, ocultando aquellos que no contengan el texto
ingresado (Figura
61Error! Reference
source not found.).
Figura 61 Búsqueda
rápida
Búsqueda avanzada
La
búsqueda avanzada (Figura 62Error! Reference source not found.) se accede cliqueando en el checkbox de
“Búsqueda avanzada”, permite encontrar fácilmente ítems que se
utilizan en las especificaciones de los procesos (por ejemplo,
datos de aplicación). Esto es especialmente útil cuando se recuerda
parte del nombre de un elemento, pero no en qué paquete, plantilla
de proceso o versión se encuentra. La pantalla de búsqueda permite
ingresar los siguientes datos:
·
Nombre:
nombre del elemento que se
busca.
·
Tipo: Se podrá filtrar que tipos de elementos se
desea buscar (paquetes, pasos, datos de aplicación, roles de la
plantilla de proceso, dominios de dato, formularios personalizados,
integraciones, manejadores de eventos, worklets, validaciones, bots
y/o parámetros de aplicación). Además, es posible seleccionar dos o
más tipos, permitiendo en una única búsqueda obtener los distintos
elementos requeridos.
·
Buscar
en:permite
especificar en qué paquetes, plantillas de proceso o versiones
buscar (las opciones mencionan “paquetes”, pero plantillas de
proceso y versiones también se consideran paquetes a estos
efectos). Restringir los paquetes en los que buscar reduce el
tiempo de búsqueda. Las opciones son:
o
Paquete actual y
padres: busca en el
paquete actual y en los superiores a él en la jerarquía. No busca
en los paquetes contenidos en el paquete actual.
o
Paquete
actual:busca en el
paquete actual y en sus descendientes.
o
Toda la
solución:busca en
toda la jerarquía los elementos que se encontraban desde la última
vez que se encontraba protegido, no los nuevos que fueron agregados
en caso que se encuentre desprotegido.
Una vez
que se haga clic en el botón de buscar, los resultados aparecerán
en orden descendente por nombre de ítem en la parte inferior de la
pantalla y se podrá acceder al listado o diseño de proceso al que
pertenece el elemento, haciendo clic en “Ir al ítem”
(→). En
caso de querer acceder a un paquete, proceso o versión de proceso,
se habilitará un botón que le permitirá ver el elemento en el árbol
(Figura
61).
Figura 62 Búsqueda
avanzada
El árbol
de paquetes es similar a la estructura de carpetas de un disco
duro: tiene un paquete raíz, que puede tener subpaquetes (paquetes
hijos), que a su vez pueden tener subpaquetes, de la misma forma
que un sistema de archivos tiene una carpeta raíz con subcarpetas,
que a su vez pueden tener subcarpetas.
Además, un
paquete puede contener plantillas de proceso y éstas contener
versiones. Todos estos elementos se muestran en el árbol de
paquetes y pueden contener ítems de procesos (por ejemplo, datos de
aplicación), que no se muestran en el árbol. Sin embargo, las
opciones para verlos, crearlos y modificarlos sí son accesibles
desde el árbol de paquetes.
Un paquete
o plantilla se puede mostrar abierto (se muestran sus hijos) o
cerrado (no se muestran) (Figura 63). Para
abrir un paquete o plantilla, haga clic en el triángulo que está a
su izquierda, y que indica si está abierto o cerrado.
Figura 63 Árbol de
paquetes. Los paquetes Raíz y Operaciones están abiertos. La
plantilla Quejas está cerrada. La plantilla Test está abierta y se
puede ver que contiene una versión
Si se hace doble clic en un elemento del
árbol, se abre su formulario de propiedades en un panel (las
propiedades de los elementos del árbol se describen en
“Trabajo con paquetes,
plantillas de proceso y versiones”). Por otro lado se crean solapas cuando,
mediante el menú contextual de un elemento, se accede a alguna de
sus listas de ítems (por ejemplo, a la lista de datos de aplicación
de un paquete; ver “Listas de ítems”). Varias solapas pueden estar abiertas simultáneamente,
como se puede ver en la Figura 64.
Figura 64 Solapas. La que está abierta muestra datos de
aplicación
Una solapa
se puede cerrar haciendo clic en la cruz que aparece cuando se
posiciona el cursor del ratón sobre ella (Figura 65).
Figura 65 Cerrar
solapa
Para cada
elemento, hay disponibles varias operaciones a las cuales se accede
mediante un menú contextual que aparece cuando se le hace clic con
el botón derecho del ratón. Las opciones que pueden aparecer en el
menú contextual son las siguientes:
·
Ítems:
cuando se hace clic en esta
opción, aparece un submenú para seleccionar el tipo de los ítems
que se desean ver o modificar. Cuando se selecciona el tipo de
ítems, Q-flow abre una pantalla que muestra los ítems del tipo
seleccionado pertenecientes al paquete. En esa pantalla se pueden
ver y modificar los ítems existentes, además de crear nuevos. Las
listas de ítems se describen en general en “Listas de ítems”. Cada tipo de ítem y sus propiedades se
describen detalladamente en “Ítems del proceso”.
·
Opciones de control de
cambios: las
opciones de control de cambios impiden que un mismo elemento sea
modificado por más de un usuario simultáneamente. Esto evita
pérdidas de modificaciones que ocurrirían si no se hiciera este
control.
o
Desproteger:desbloquea el elemento para el usuario que lo desprotegió,
permitiéndole modificarlo, y lo bloquea para los demás.
o
Desproteger
compatible: desbloquea una plantilla de proceso o versión para el
usuario que lo desprotegió, pero no le permite hacer algunos
cambios que podrían afectar procesos que se están ejecutando (por
ejemplo, no le permite eliminar pasos).
o
Proteger:
guarda los cambios que un
usuario le hizo a un elemento que antes había desprotegido, y
libera el elemento para que otro usuario lo pueda
modificar.
o
Deshacer
desprotección: libera el elemento para que otro usuario lo pueda
modificar, pero sin guardar los cambios (los cambios se
pierden).
o
Proteger y seguir
editando: guarda los
cambios que un usuario le hizo a un elemento que antes había
desprotegido, pero lo mantiene desprotegido (es como protegerlo y
volver a protegerlo inmediatamente). Esto permite que otros vean
los cambios que el usuario le hizo al elemento sin que el usuario
renuncie a mantenerlo desprotegido para poder seguir
modificándolo.
·
Asignar como versión en
producción: sólo
disponible para versiones que no están en producción, esta opción
permite marcar la versión seleccionada como versión en producción
(la que se utiliza el iniciar nuevos procesos). Si había otra
versión en producción de la misma plantilla, ésa se quita de
producción (sólo puede haber una versión de una plantilla en
producción).
·
Desasignar como versión en
producción: sólo
disponible para versiones que están en producción, esta opción
permite sacar la versión seleccionada de producción. Note que, si
saca una versión de producción, ya no se podrán iniciar procesos de
la plantilla a la que pertenece, puesto que no habrá ninguna
versión en producción.
·
Agregar sub
paquete: sólo
disponible para paquetes, permite agregar un paquete dentro del
paquete seleccionado (esta opción sólo está disponible para
paquetes). Cuando se selecciona esta opción, Q-flow muestra en la
zona de edición un formulario para ingresar el nombre y la
descripción del nuevo paquete.
·
Agregar plantilla de
proceso: permite
agregar una plantilla de proceso dentro del paquete seleccionado
(esta opción sólo está disponible para paquetes).
·
Eliminar:
permite borrar el elemento
seleccionado. Esta opción sólo está disponible si el elemento
seleccionado no contiene otros elementos. Por ejemplo, si un
paquete contiene otros paquetes, o si contiene plantillas de
proceso, no es posible borrarlo sin antes borrar lo que
contiene.
·
Refrescar:actualiza en pantalla el elemento seleccionado y sus
descendientes para reflejar los últimos cambios ocurridos. Por
ejemplo, si un usuario agregó un paquete recientemente y otro
usuario no lo ve porque es demasiado nuevo, al actualizar el
paquete que lo contiene, el árbol reflejará el cambio y mostrará el
paquete nuevo.
·
Etapas:
muestra una pantalla con las
etapas definidas para la plantilla seleccionada, y permite
modificarlas. (Por detalles, consulte la sección Etapas).
·
Agregar versión de
proceso: agrega una
nueva versión a una plantilla.
·
Diseño de
proceso: abre el
diseño de proceso (diagrama) de una versión.
·
Historial:muestra la historia de acciones ejecutadas sobre el
elemento (quién le hizo qué y cuándo).
·
Propiedades:muestra el formulario de propiedades del elemento (es como
hacerle doble clic en el caso de los paquetes y
plantillas).
·
Formularios del
proceso: abre un
submenú con dos opciones: “Formulario de edición del proceso” y
“Formulario del proceso”. Estas opciones permiten abrir la ventana
de propiedades de esos formularios para:
o
Definir el alcance de datos,
roles, adjuntos y comentarios (ver “Alcance de datos, roles, adjuntos y
comentarios”).
o
Definir formularios
personalizados (ver “Formularios personalizados”).
o
Asociar validaciones a los
formularios (ver “Validaciones”).
o
Asociar manejadores de eventos
a los procesos (ver “Manejadores de eventos”).
·
Exportar:
exporta el elemento a un archivo XML, para que pueda ser importado
en otro lugar donde esté instalado Q-flow. Hay más información en
la sección “Exportación
de paquetes, plantillas y versiones”.
·
Importar:
importa un archivo XML que contiene la definición de paquetes o
plantillas. Hay más información en la sección “Importación de paquetes, plantillas y
versiones”.
Figura 66 Historial
Para
exportar un paquete, plantilla o versión, haga lo
siguiente:
1.
Haga clic con el botón derecho
sobre el paquete, plantilla o versión en el explorador de
soluciones. Q-flow mostrará un menú contextual.
2.
En el menú contextual,
seleccione la opción “Exportar”. Q-flow le mostrará una ventana
como la de la Figura
67.
3.
Para el caso de las versiones,
seleccione el formato en el que desea exportar. Las opciones son el
formato nativo de Q-flow y el formato BPMN XML. El formato nativo
preserva todos los elementos del proceso, mientras que el formato
BPMN XML exporta sólo el diseño.
4.
Para el caso de los paquetes y
plantillas, si no quiere exportar todos los descendientes del
paquete, desmarque la opción “Exportar paquetes
descendientes”.
5.
Haga clic en
“Exportar”.
Figura 67 Panel de
Exportar paquete
Para
importar un archivo producido por una exportación anterior, haga lo
siguiente:
1.
Seleccione el paquete o
plantilla donde desee importar el contenido del archivo y hágale
clic con el botón derecho.
2.
En el menú contextual,
seleccione “Importar”. Q-flow mostrará una ventana como la de
la Figura
68.
3.
Seleccione el formato del
archivo a importar. Los formatos soportados son el nativo de Q-flow
y BPMN XML.
4.
Seleccione el archivo a
importar y marque las opciones que desee:
a.
Actualizar los parámetros de
aplicación existentes: si esta opción está marcada, los valores de los parámetros
de aplicación serán sustituidos por los valores de los parámetros
de aplicación importados. De lo contrario, no. Esto es útil porque
los mismos parámetros pueden tener valores distintos en distintos
ambientes.
b.
Corregir referencias
ausentes: esta
opción le indica a Q-flow que debe corregir referencias a elementos
que no se encuentran en la base de datos en la cual se está
haciendo la importación. Por ejemplo, si no se encuentra un usuario
al que hace referencia un rol, Q-flow ignorará ese usuario en la
importación. Si no se marca esta opción, cuando Q-flow encuentre
una referencia a un elemento ausente, interrumpirá la importación,
y dejará la base de datos en el mismo estado en el que se
encontraba antes.
5.
Haga clic en “Importar”. Si el
paquete, plantilla o versión contenido en el archivo ya existe,
Q-flow le permitirá optar entre actualizar el paquete, plantilla o
versión ya existente con los datos importados, o crear uno nuevo.
Esto permite actualizar procesos que habían sido importados desde
entornos de desarrollo.
Figura 68 Panel de
Importar
La zona de
edición muestra los formularios en los que se muestran las
propiedades del ítem seleccionado y las listas de ítems. Es en la
zona de edición que se modifican las propiedades de los ítems que
componen los procesos de Q-flow y es también allí donde se diseñan
los procesos.
Cuando un
usuario ingresa al sitio del diseñador web de procesos, o cuando
hace clic en el ícono de inicio en el menú superior, Q-flow le
muestra la página de inicio. La zona de edición, en este caso, es
similar a lo que se muestra en la Figura 69.
La opción
“Crear plantilla de proceso”, que aparece en el medio, permite
crear una plantilla de proceso, si en el árbol de paquetes está
seleccionado un paquete, o crear una versión, en otro caso. La
plantilla o versión se crea dentro del elemento seleccionado en el
árbol al momento de crearla (a menos que esté seleccionada una
versión de una plantilla, en cuyo caso se crea otra versión de esa
plantilla). La siguiente sección tiene más detalles sobre la
creación de estos elementos.
Figura 69 Zona de
edición de la página de inicio
En esta
sección se explica cómo crear y modificar paquetes, plantillas de
proceso y versiones, pero no cómo diseñar el diagrama de una
versión. Para esto último, consulte la sección “Diseño del proceso de una
versión”.
Para crear
un paquete:
1.
En el árbol de paquetes, haga
clic con el botón derecho sobre el paquete dentro del cual desea
crear un nuevo paquete. Esto hace que Q-flow muestre el menú
contextual del paquete seleccionado.
2.
Seleccione la opción “Agregar
sub paquete”. Esto hace que Q-flow muestre un formulario como el de
la Figura
70, en el que se indica
en qué paquete se agregará el paquete nuevo y en el que hay dos
cajas de texto para ingresar el nombre y la descripción del nuevo
paquete.
3.
Ingrese el nombre y la
descripción del nuevo paquete y haga clic en el botón de
guardar.
Figura 70 Crear
paquete
Para crear
una plantilla de proceso, haga lo siguiente:
1.
En el árbol de paquetes, haga
clic con el botón derecho sobre el paquete dentro del cual desea
crear una plantilla. Esto hace que Q-flow muestre el menú
contextual del paquete seleccionado.
2.
Seleccione la opción “Agregar
plantilla de proceso”. Esto hace que Q-flow muestre un formulario
como el de la Figura
71, en el que se indica
en qué paquete se agregará la plantilla nueva y en el que hay dos
cajas de texto para ingresar el nombre y la descripción de la
plantilla. También debe seleccionar el patrón de plantilla (en
la Figura
71la única opción es
“Plantilla BPMN vacía”).
3.
Ingrese el nombre y la
descripción de la nueva plantilla y haga clic en el botón de
aceptar.
Figura 71 Crear nueva
plantilla
Para crear
una versión, haga lo siguiente:
1.
En el árbol de paquetes, haga
clic con el botón derecho sobre la plantilla de proceso dentro de
la cual desea crear la versión. Esto hace que Q-flow muestre el
menú contextual de la plantilla seleccionada.
2.
Seleccione la opción “Agregar
versión del proceso”. Esto hace que Q-flow muestre un formulario
como el de la Figura
72, en el que se indica
en qué plantilla se agregará la nueva versión y en el que hay dos
cajas de texto para ingresar el nombre y la descripción de la nueva
versión. Si la plantilla seleccionada ya tiene versiones, en el
campo “Patrón de la versión de plantilla” puede seleccionar una de
ellas para que Q-flow la copie. Por ejemplo, en la
Figura 73 se pueden seleccionar las versiones 1.0,
1.1 o 1.2. Si la versión seleccionada tiene un nombre que sigue el
estándar de Q-flow (“1.0”, “1.1”, etc.), Q-flow ingresará
automáticamente el nombre que, según ese estándar correspondería al
de la versión siguiente (si la versión seleccionada es “1.1”,
Q-flow pondrá “1.2” en la caja de texto del nombre). También puede
crear una versión sin copiar ninguna otra (“Patrón de la versión de
plantilla”). En este caso, la nueva versión se creará con un evento
de inicio y un evento de fin.
3.
Ingrese el nombre (si es
necesario) y la descripción de la nueva versión y haga clic en el
botón de aceptar.
Figura 72 Crear una
versión
Figura 73 Seleccionar
un patrón de versión
Paquetes,
plantillas de proceso y versiones tienen propiedades adicionales a
las que se muestran cuando se los crea (nombre y descripción). Para
modificar las propiedades de un paquete, plantilla o versión,
búsquelo en el árbol de paquetes, hágale clic derecho y seleccione
la opción “Propiedades”. Esto hace que Q-flow muestre el formulario
de edición del elemento seleccionado (Figura 74). Para el caso de los paquetes y plantillas se puede
simplemente hacer doble clic en el elemento.
Figura 74 Propiedades
de un paquete
Este
formulario de edición tiene dos partes:
·
General:
muestra y permite modificar el
nombre y la descripción, además de los siguientes datos:
o
Fecha y hora en la que el
elemento fue creado y quién lo creó.
o
Fecha y hora de la última
modificación hecha al elemento y quién la hizo.
o
Si el elemento está
desprotegido o no. Si está desprotegido, se indica la fecha y la
hora en la que fue desprotegido, y quién lo tiene
desprotegido.
o
Si el elemento es una plantilla
de proceso, se muestra la versión en producción y se permite
cambiarla.
o
Si el elemento es una versión,
se muestra si es un borrador o no. Un borrador es una versión que
no es válida para poner en producción (produciría errores al ser
ejecutada), pero que se puede guardar. Una vez que una versión es
puesta en producción, ya no es posible que vuelva a ser un
borrador.
·
Avanzado:
las propiedades del
subformulario avanzado son:
o
Comunes a paquetes,
plantillas de proceso y versiones:
§ Dueño: indica qué usuario es el dueño del elemento. El
dueño del elemento es un usuario del sistema. Además, si se marca
el casillero que indica que hay que enviar notificaciones cuando el
elemento es modificado, el dueño es el destinatario de esas
notificaciones. Se puede quitar el dueño haciendo clic en la cruz
que aparece en el rectángulo que contiene su nombre, de modo que el
elemento ya no tenga dueño. Para especificar el dueño, empiece a
escribir su nombre y al aparecer el nombre de usuario de la persona
que desea asignar al elemento, selecciónelo.
§ Notificar cambios en el
contenido: si se
marca este casillero, cada vez que el elemento sufre
modificaciones, Q-flow envía una notificación a su
dueño.
o
Las plantillas, además, tienen
la siguiente propiedad avanzada:
§ Notificar proceso en error:
si se marca este casillero,
cada vez que un proceso basado en esa plantilla tiene un error, se
envía una notificación al dueño.
Para
administrar los permisos de un paquete, plantilla o versión,
búsquelo en el árbol de paquetes, hágale clic derecho y seleccione
la opción “Administrar permisos de paquete” (Figura 75). Esto hace que Q-flow muestre un formulario como
el de la Figura
76. Ese formulario
muestra una tabla con todos los permisos definidos. Para cada uno
se muestra para qué rol es el permiso, la descripción del rol, una
lista de acciones permitidas y una lista de acciones denegadas. La
lista se puede filtrar de la forma usual y también se puede
modificar, agregando, quitando y modificando elementos.
Figura 75 Administrar
permisos de paquete
Figura 76 Panel de Administrar permisos de un
paquete
Para
agregar un permiso:
1.
Haga clic en el botón de
agregar. Eso hace que Q-flow muestre un buscador de roles
(Figura
77).
2.
Seleccione el destinatario del
permiso. Para eso, escriba parte de su nombre en el buscador (donde
dice “Comience a escribir un rol”) y cuando lo vea en la lista que
aparece, selecciónelo. El destinatario de un permiso puede ser un
elemento de cualquiera de estos tipos:
a.
Rol de seguridad (no confundir
con rol de proceso; los roles de proceso sirven para asignar tareas
en un proceso y no pueden ser seleccionados como destinatarios de
permisos).
b.
Nodo
c.
Grupo
d.
Cola de trabajo
e.
Usuario
Figura 77 Selección de
un rol
Estos
elementos se definen en el administrador del modelo organizacional.
Consulte el manual de esa herramienta si desea ver descripciones de
cada uno de esos tipos. Cuando se selecciona el destinatario de un
permiso, Q-flow muestra un formulario para seleccionar las acciones
que se incluyen en el nuevo permiso (Figura 78).
Figura 78 Permisos
3.
Para cada uno de los permisos
que se muestran en esa ventana, marque si se permite o se deniega y
si es heredable. Si un usuario tiene un permiso heredable sobre un
paquete o plantilla de proceso, tiene el mismo permiso sobre los
descendientes de ese paquete o plantilla, salvo que en algún
paquete descendiente se deniegue de manera explícita.
Los
permisos que se pueden asignar son:
·
Ver ítem:
permite ver el paquete y los
elementos definidos en él, como datos de aplicación, roles del
proceso, etc.
·
Editar
ítem: permite
modificar el paquete y los elementos definidos en él, como datos de
aplicación, roles del proceso, etc.
·
Crear
ítem:permite crear
elementos dentro del elemento.
·
Eliminar
ítem:permite borrar
el elemento.
·
Auditar:
permite visualizar información
de auditoría del elemento.
·
Administrar
seguridad: permite
agregar y modificar permisos sobre el elemento a usuarios, grupos o
roles.
Un usuario
tiene permiso para ejecutar una acción si y sólo si se cumple
simultáneamente que:
·
El usuario está asociado a
algún rol de seguridad, grupo, nodo o cola de trabajo que tiene
permiso para ejecutar esa acción, o su propia cuenta de usuario
tiene ese permiso directamente.
·
El usuario no está asociado a
algún rol de seguridad, grupo, nodo o cola de trabajo al que se le
haya negado ese permiso, o a su propia cuenta de usuario se le ha
negado ese permiso.
Por más
detalles acerca del manejo de permisos en Q-flow, consulte el
manual del administrador del modelo organizacional, donde también
se explica cómo asociar usuarios con roles de seguridad, nodos,
grupos y colas de trabajo.
El diseño
de un proceso también implica definir ítems que el proceso utiliza:
para asignar tareas a personas, se necesitan roles. Para manejar
datos, algunos de los cuales pueden ser necesarios para definir el
flujo del proceso, se necesitan datos de aplicación. Para acceder a
funcionalidades de sistemas externos, se necesitan integraciones y
es recomendable utilizar parámetros de aplicación que contengan
información de acceso a esos sistemas. Esta sección explica cómo
utilizar el diseñador web de procesos del negocio para crear,
modificar y eliminar ítems. No explica para qué sirve cada tipo de
ítem, ni qué propiedades tiene. Por información de ese tipo,
consulte la sección “Ítems del proceso”.
La
Figura 79 muestra la lista de datos de aplicación,
que es una típica lista de ítems. La lista de ítems se muestra como
una tabla con varias columnas, la primera de las cuales contiene
cajas que permiten seleccionar uno o más ítems (si se marca la caja
del cabezal, se seleccionan todos los ítems).
Figura 79 Datos de aplicación
En la
parte superior izquierda están los íconos correspondientes a las
siguientes operaciones:
·
Agregar:
cuando se hace clic en este
ícono, Q-flow muestra el formulario de propiedades básicas del
ítem. Para crear un ítem, llene sus propiedades y haga clic en el
botón de aceptar. Si se hace clic en el botón con tres puntitos
dispuestos verticalmente, se amplía el formulario y en algunos
casos se muestran más propiedades (Figura 80). Si se vuelve a hacer clic en ese botón, el formulario
vuelve a su formato original. La descripción detallada de las
propiedades de cada tipo de ítem se encuentra en
“Ítems del
proceso”.
·
Modificar:
cuando se selecciona un ítem y
se hace clic en este ícono, Q-flow muestra el formulario de
propiedades básicas del ítem (Figura 80), que
es el mismo formulario que el que se usa para crear un
ítem.
Figura 80 Formulario
normal y formulario expandido: el expandido tiene una sección
adicional de propiedades, "Avanzado".
·
Cortar:
permite cortar elementos para
pegarlos en otro paquete: cuando se pegan, esos elementos son
eliminados del paquete original.
·
Copiar:
permite copiar elementos para
pegarlos en el mismo u otro paquete. Cuando se pegan en el mismo
paquete, los nuevos elementos se renombrarán, agregando un “_1” o
cambiando el “_X1” por “_(X1 + 1)” si el
nombre finalizaba con “_X1” siendo “X1” un
número entero.
·
Pegar:
pega los elementos copiados o
cortados.
·
Eliminar:
cuando se seleccionan uno o más
elementos y se hace clic en este ícono, se eliminan los elementos
seleccionados, previa confirmación.
Estos
íconos se habilitan o deshabilitan según qué elementos estén
seleccionados. Por ejemplo, el ícono de “Modificar” sólo está
habilitado si hay exactamente un ítem seleccionado, porque si no
hay ítems seleccionados, no hay un ítem al cual se pueda aplicar la
operación de modificar, mientras que si hay más de uno, es
imposible determinar a cuál de ellos se aplica la
operación.
También en
la parte superior, pero hacia la derecha, hay una caja de texto que
permite filtrar los elementos que se muestran en la lista. Al
escribir un texto en esa caja, la lista ocultará aquellos elementos
que no contengan en ninguna de las columnas el texto
ingresado.
Finalmente, a la derecha de esa caja de texto, hay un botón
que permite especificar qué columnas se desea ver
(Figura
81).
Figura 81 Configuración
de columnas visibles en listados
Q-flow
permite definir etapas para una plantilla de proceso. Una etapa
define un “Tiempo esperado” y un “Tiempo máximo”, que determinan
dos plazos para el fin de la etapa. Tanto para el tiempo esperado
como para el tiempo máximo, se puede especificar una lista de roles
de plantilla de proceso que serán notificados si, una vez
transcurrido el tiempo especificado, todavía no se terminó la
etapa. El tiempo esperado es cuánto se estima que debería durar la
etapa en un caso normal. El tiempo máximo indica un plazo más
importante que el tiempo esperado: se supone que el proceso no
debería permanecer en la misma etapa por un tiempo superior al
indicado por el tiempo máximo.
Cuando un
proceso está dividido en etapas, tiene más opciones de seguimiento
en el sitio web.
Las etapas
se vinculan a secciones del proceso mediante el evento de inicio y
eventos intermedios.
Para
acceder al formulario que le permite definir etapas,
abra el menú contextual
de la plantilla haciéndole clic con el botón derecho en el árbol de
paquetes y seleccionando la opción “Etapas” (Figura 82).
Figura 82 Acceder a
listado de etapas
El
formulario de definición de etapas se comporta de la misma forma
que las listas de ítems. Para poder especificar el tiempo esperado
y el tiempo máximo, debe expandir el formulario para que aparezcan
las secciones que contienen esas propiedades (Figura 83). El tiempo esperado y el tiempo máximo se
definen de la misma forma que otros plazos (se explica en
“Temporización”).
Figura 83 Configuración
expandida de etapas
La opción
“Usar calendario” permite seleccionar un calendario para que sea
utilizado al calcular los vencimientos. Si no se se marca esta
opción, los vencimientos se calcularán sin tomar en cuenta fines de
semana, feriados, etc (Figura 84).
Figura 84 Configuración
de "Usar calendarios"
Para
modificar el diseño de una versión, primero debe desprotegerla.
Para ello, haga clic con el botón derecho en la versión y
seleccione, en el menú contextual, “Desproteger”.
Una vez
desprotegida la versión, vuelva a hacerle clic con el botón derecho
y seleccione “Diseño de proceso”, o simplemente haga doble clic en
la versión. Esto hace que Q-flow muestre el diseñador del proceso
en la zona de edición (Figura 85).
Figura 85 Diseñador
En la
parte izquierda del diseñador hay una caja de herramientas, que
está dividida en dos partes: la primera muestra herramientas de
diseño. La segunda, elementos que se pueden agregar al diagrama.
La Figura 86
muestra el significado de los
íconos que representan las herramientas de diseño. La
Figura 87 muestra el significado de los íconos que
representan elementos que se pueden agregar al diagrama. En la
parte derecha del diseñador, hay una serie de botones cuyo objetivo
es facilitar la visualización del diagrama. La Figura 88Error! Reference source not
found.muestra el
significado de estos.
A
continuación, se explica cómo usar cada una de las herramientas de
diseño:
·
Mover la superficie de
diseño: si
selecciona esta herramienta y mantiene el botón del ratón
presionado sobre la superficie de diseño mientras mueve el ratón,
moverá la superficie de diseño. Por ejemplo, si ya no queda espacio
libre en la superficie y desea agregar algo debajo de los elementos
que ya están en ella, puede usar la herramienta y, manteniendo el
botón apretado, mover el ratón hacia arriba. Esto desplazará la
superficie de diseño hacia arriba, como si la superficie fuera una
hoja de papel y usted la presionara con la mano y la empujara hacia
arriba, de modo que la parte superior del papel ya no es visible y
la parte inferior, sí.
·
Seleccionar varios
elementos: con esta
herramienta puede dibujar un rectángulo sobre la superficie de
diseño. Los elementos que queden dentro del rectángulo y las
conexiones entre ellos quedan seleccionados.
·
Crear/Eliminar
espacios: con esta
herramienta se puede crear espacio entre dos partes del diagrama,
manteniendo presionado el botón del ratón y moviendo el ratón hacia
la derecha. El efecto es como si se empujaran todos los elementos
que están a la derecha del ratón hacia ese lado, generando un
espacio entre sus nuevas posiciones y las que ocupaban antes. De
forma similar, se puede hacer lo mismo pero moviendo el ratón hacia
la izquierda, lo cual tiene el efecto inverso: se elimina el
espacio del medio.
·
Conectar:
esta herramienta permite
conectar dos elementos, pero no es la única forma de
hacerlo.
Figura 86 Herramientas
de diseño
A
continuación se describen los elementos que se pueden agregar al
diagrama. Los que son eventos, compuertas y actividades se
describen con mayor detalle en la sección “Elementos del diseño de un
proceso”.
·
Evento de
inicio:marca dónde
empieza la ejecución del proceso.
·
Evento
intermedio: permite
marcar un hito en la ejecución del proceso (por ejemplo, que
terminó una fase del proceso).
·
Evento de
fin:marca dónde
terminar la ejecución del proceso: cuando un proceso llega a un
evento de fin, finaliza su ejecución.
·
Compuerta:permite controlar el flujo del proceso. Compuertas
exclusivas permiten elegir un camino entre varios posibles de un
proceso. Compuertas inclusivas permiten crear varios caminos en
paralelo.
·
Actividad:representa una acción o tarea. Puede ser una tarea
desempeñada por una persona, pero también puede ser una acción
ejecutada automáticamente por algún componente del
sistema.
·
Subproceso:agrupa varios elementos.
·
Referencia a objeto de
datos: es un
elemento decorativo que representa datos que son utilizados en
alguna actividad. Se conecta a otro elemento, típicamente una
actividad, con una flecha punteada.
·
Referencia a base de
datos: lo mismo que
el dato, pero representa un almacén de datos (por ejemplo, una base
de datos).
·
Pool: permite crear andariveles para organizar
el proceso, agrupando dentro de un mismo nivel elementos
relacionados.
·
Grupo:
permite crear grupos, para
visualizar mejor una serie de pasos relacionados. Este elemento es
puramente visual, pues no influye en la ejecución de los pasos del
grupo de ningún modo.
Figura 87 Herramientas
para agregar elementos al diseño
A
continuación, se explica la funcionalidad de cada uno de los
botones que aparecen a la derecha en el diseñador.
·
Pantalla
completa: permite
ingresar al modo de pantalla completa, en el cual se expandirá la
zona de edición al máximo posible de su pantalla. Esto le permite
enfocarse en la creación y configuración del diagrama sin
interrupciones visuales. Para salir del modo pantalla completa,
presione la tecla “Esc” o haga clic en el botón de salir de
pantalla completa (Figura 89).
·
Restaurar
zoom:vuelve a
colocar el nivel de zoom donde estaba inicialmente.
·
Acercar:
aumenta el zoom.
·
Alejar:
reduce el zoom.
·
Guardar
temporalmente: guarda los cambios realizados en el diagrama, que se
almacenarán en el servidor, permitiendo acceder a ellos en otro
momento para continuar con su edición. Es recomendable guardar los
cambios cada cierto tiempo, para evitar que éstos se pierdan ante
algún error inesperado.
·
Exportar
diagrama: permite
exportar el diseño del diagrama realizado. Al hacer clic sobre el
botón tendrá las opciones de exportar la imagen del diagrama,
seleccionando la opción “Exportar diagrama”, o el archivo bpmn de
éste, seleccionando la acción “Exportar documento”, como muestra
la Figura
90Error! Reference
source not found..
·
Atajos de
teclado: muestra un
cartel que indica todos los atajos de teclado disponibles, como
muestra la Figura
91.
Figura 88 Herramientas
de visualización
Figura 89 Salir de
pantalla completa
Figura 90 Opciones de
exportación
Figura 91 Atajos de
teclado
Para
diseñar el proceso se utilizan las herramientas de diseño para
agregar elementos y conectarlos. Cada elemento tiene propiedades
que también se pueden modificar desde el diseño.
Para
agregar un elemento al diseño, selecciónelo en la caja de
herramientas y arrástrelo hacia la zona de diseño (también puede
hacerle clic y luego hacer clic en la zona de diseño). Si desea
agregar un elemento a continuación de otro que ya existe, de modo
que quede conectado a él, puede seguir los siguientes
pasos:
1.
Se selecciona un
elemento.
2.
Entre los íconos que aparecen a
la derecha, seleccione el que corresponde al tipo del elemento que
se desea agregar a continuación.
3.
Se hace clic donde se desea que
esté el nuevo elemento.
4.
El nuevo elemento también tiene
íconos a la derecha y puede repetir la misma operación con ese
elemento y los siguientes.
Figura 92 Menú de
opciones de un elemento
En
la Figura 93
se puede ver un ejemplo donde a
partir de un Evento de inicio, se crea una actividad.
Figura 93 Agregar tarea
a continuación de evento de inicio
Para
agregar un evento de borde al diseño, seleccione el evento
intermedio en la caja de herramientas y arrástrelo hacia la zona de
diseño sobre alguna de las actividades que lo permiten
(Figura
94). Para ver más
información sobre los eventos de borde y qué actividades lo
permiten, vea la sección “Eventos intermedios de borde”.
Figura 94 Crear evento
de borde en tarea de usuario
Una vez
agregado un elemento al diseño, puede ser necesario cambiar su
subtipo. Esto depende del tipo del elemento y de si se agregó a
través de la caja de herramientas o a través de los íconos que
permiten hacerlo desde el diseño.
Si se
agrega una actividad, ya sea desde la caja de herramientas o desde
el diseño, la nueva actividad no tiene ningún subtipo, por lo que
siempre hay que seleccionar uno. No se puede proteger un diseño que
contiene una actividad para la que no se haya seleccionado un
subtipo.
Para
cambiar el subtipo de un elemento, haga clic en el ícono de cambio
de subtipo (Figura
92). Q-flow muestra
entonces la lista de subtipos que se pueden asignar al elemento
seleccionado, seleccione el que desee y Q-flow lo asignará al
elemento (Figura
95).
Figura 95 Cambiar
subtipo de tarea
Para
borrar un elemento, selecciónelo y pulse la tecla “Suprimir” o haga
clic en el ícono de eliminar que aparece al seleccionar el elemento
(Figura
92).
Para
conectar dos elementos se puede utilizar la herramienta de conexión
de la caja de herramientas (Figura 86): se
hace clic en el ícono correspondiente a la herramienta y después se
hace clic en el elemento del que se desea salga la conexión y, sin
soltar el botón, se mueve el ratón hasta el elemento con el cual se
desea conectar el primero. Entonces se suelta el botón.
También se
puede utilizar el ícono de conexión que aparece al seleccionar un
elemento: en este caso, el elemento del cual sale la conexión es el
elemento seleccionado y se procede de la misma forma, moviendo el
ratón con el botón apretado hasta que el cursor esté sobre el
elemento al cual se desea conectar el elemento
seleccionado.
Si hace
clic sobre un elemento y presiona la tecla E, podrá editar el
nombre de dicho elemento. Por otro lado, si se hace clic en el
botón de ver o modificar propiedades de un elemento, aparece, a la
derecha de la zona de diseño, un formulario que muestra en la parte
superior sus propiedades básicas (en general, el nombre y la
descripción del paso) y en la parte inferior otro formulario con
propiedades avanzadas. Este otro formulario no aparece desplegado:
para que se despliegue, haga clic en el ícono con un símbolo de
“+”. Las propiedades de cada tipo de elemento se explican en
“Elementos del diseño de
un proceso”.
A una
conexión se le puede agregar una etiqueta. También se le pueden
agregar puntos de quiebre, para transformarla en una línea
poligonal.
Para
agregar una etiqueta a una conexión, haga doble clic en la
conexión. Esto hace que Q-flow muestre una caja de texto sobre la
conexión. Escriba el texto que desee para la etiqueta y pulse la
tecla “Enter” (Figura
96).
Figura 96 Agregar una
etiqueta a una conexión
Para
cambiar la forma de la conexión, posicione el cursor del ratón
sobre la etiqueta. Esto hace que Q-flow muestre un pequeño círculo.
Pulse el botón del ratón y, manteniéndolo presionado, mueva el
ratón. Esto crea un punto de quiebre en el lugar donde hizo clic y
al mover el ratón, la línea que antes era recta se parte en dos,
formando un ángulo en el punto de quiebre (Figura 97).
Figura 97 Agregar un punto de quiebre
También se
pueden mover las líneas horizontales y verticales de una conexión
en sentido perpendicular a ellas. Para hacer esto, ponga el cursor
del ratón sobre una de estas líneas y mueva el ratón hasta que
aparezca una flecha doble (Figura 98) y una porción de la línea quede de color amarillo.
Entonces, pulse el botón del ratón y, manteniéndolo apretado, mueva
el ratón para desplazar la línea hacia arriba y abajo (si la línea
es horizontal) o hacia los costados (si es vertical).
Figura 98 Desplazamiento de una línea horizontal hacia
abajo
Para
especificar un proceso, además de especificar un diseño, también se
definen otros ítems, que se pueden definir en una versión, en la
plantilla, en el paquete donde está la plantilla o en alguno de sus
ancestros. Dónde definir un ítem depende de consideraciones de
diseño y organización de la estructura: un ítem que es específico
de una versión se debe definir en una versión. Es más usual definir
ítems en la plantilla. Mientras que, en un paquete se definen ítems
que son comunes a varios procesos que pertenecen a esa plantilla
(por ejemplo, si varios procesos usan el mismo web service, es
conveniente almacenar los datos de conexión a ese web service en un
parámetro de aplicación perteneciente a un paquete que contenga a
todos esos procesos).
Los tipos
de ítems que se pueden definir para un proceso son los
siguientes:
·
Datos de
aplicación: son
datos que maneja un proceso, especialmente datos que son necesarios
en notificaciones a usuarios o para definir qué caminos sigue el
proceso (otros datos pueden almacenarse en bases de datos externas,
con ayuda de integraciones). Los elementos del proceso tienen
acceso a los datos de aplicación: se los puede usar para
especificar los mensajes que se envían a los usuarios (ver
“Etiquetas”).
También son útiles para cambiar la dirección del flujo: mediante el
uso de compuertas (ver “Compuertas”), el
valor de un dato de aplicación puede determinar que el flujo siga
un camino en lugar de otro, por ejemplo.
·
Roles de plantilla de
proceso: si una
actividad es desempeñada por una persona, un rol especifica quién
la desempeña, o quiénes la pueden desempeñar. Las tareas de usuario
(ver “Tarea de
usuario”) se asignan a
usuarios a través de roles. No se asignan directamente a los
usuarios.
·
Dominios:
definen tipos de datos de
aplicación (“Numérico”, “Texto”, “Fecha”) o, en los casos más
complejos, permiten restringir los valores que pueden tener datos
de aplicación mediante listas arbitrarias, resultados de consultas
a bases de datos o a otros sistemas. Un dominio define también cómo
se muestran los datos de aplicación pertenecientes a él (por
ejemplo, un dominio de tipo fecha se muestra como un selector de
fechas).
·
Formularios
personalizados: definen qué páginas web usar para mostrarle la información
a un usuario que desempeña una de las tareas definidas en el
proceso (la página web en sí no se define mediante el diseñador de
procesos del negocio, sino que tiene que ser construida por un
programador; consulte los dos manuales de diseño de formularios por
información al respecto).
·
Integraciones:definen cómo acceder a sistemas externos (por ejemplo,
servicios ofrecidos por software existente en la empresa) para
enviarles datos, o para recibir datos de ellos (por ejemplo, para
que un proceso guarde datos en la base de datos de uno de esos
sistemas, o para que obtenga datos de él). Las tareas de servicio
usan integraciones.
·
Manejadores de
eventos: son
pequeños programas que se ejecutan cuando ocurre algún evento
predefinido durante la ejecución de un proceso.
·
Worklets:permiten definir una porción de un proceso para utilizarla
en varios procesos distintos.
·
Validaciones:
son pequeños programas que se
desarrollan para validar los datos que se ingresan en los
formularios de los procesos.
·
Bots: como las integraciones, especifican la
interacción con programas externos, con la diferencia de que se
ejecutan asíncronamente para procesar los datos de un proceso (los
programas en sí no se definen en el diseñador de procesos, sino que
deben ser desarrollados por un programador).
·
Parámetros de
aplicación: especifican información de configuración (conexiones a
bases de datos, especificaciones de acceso a servicios,
contraseñas) para que sea usada desde el proceso.
A
continuación, se explica cómo trabajar con los ítems que se acaban
de describir. El propósito de esta sección es describir las
propiedades de estos ítems y para qué sirven. En el caso de algunos
aspectos específicos de un tipo de ítem, se explica cómo usar la
interfaz de usuario para definirlos, pero operaciones más
generales, comunes a todos (por ejemplo, cómo eliminar un ítem) se
describen en la sección “Listas de ítems”.
Los datos
de aplicación son datos que maneja Q-flow en los procesos. Cada
dato está asociado a un dominio, y éste está asociado a un tipo de
dato y a un tipo de control que determina cómo el dato será
mostrado en los formularios de los procesos.
El
formulario de propiedades de un dato de aplicación tiene las
siguientes secciones.
·
General:
contiene el nombre, la
descripción, el dominio y otras opciones que definen el
comportamiento del dato.
·
Presentación:
contiene propiedades que
definen aspectos de cómo el dato se verá en el sitio web de
Q-flow.
·
Avanzado (aparece al
expandir el formulario): permite definir valores por defecto para el
dato.
·
Dependencias (aparece si el
dominio del dato tiene parámetros): permite definir qué datos de aplicación se usan
para proveerle valores a los parámetros del dominio.
A
continuación, se muestra una lista de las propiedades para cada una
de las secciones, con explicaciones. Las propiedades que aparecen
con un asterisco son obligatorias de indicar (esto aplica para
todos los paneles). Esto quiere decir que, si no las completa, no
podrá crear el elemento en cuestión, y Q-flow le mostrará un
mensaje de error al intentar guardar.
Figura 99 Sección General de datos
·
Nombre
·
Descripción
- Dominio: es
el dominio del dato, que define el tipo y el control (el elemento
de interfaz de usuario) usado para mostrar el dato. El dominio de
dato puede ser cualquiera de los dominios básicos provistos por
Q-flow, pero también puede ser un dominio creado por un usuario y
que esté en el mismo paquete el dato, en el paquete padre o en
alguno de sus ancestros (ver “Dominios” por
instrucciones sobre la creación de dominios). Los dominios básicos
son:
o
Booleano:
los datos de este tipo sólo
tienen dos valores posibles: verdadero o falso.
o
Fecha:
los datos de este tipo
almacenan fechas.
o
Hora: los datos de este tipo expresan
horas.
o
Número:
los datos de este tipo
almacenan números.
o
Texto:
los datos de este tipo
almacenan textos.
o
Área de
texto:los datos de
este tipo almacenan textos con varias líneas.
- Dinero: los
datos de este tipo pueden almacenar números no enteros con dos
lugares después de la coma decimal (por ejemplo: 4,59). El valor
mínimo de un dato de este tipo es 0.
- Fecha hora: los datos de este tipo almacenan fecha y hora.
- Documento: los datos de este tipo almacenan una referencia a adjuntos
del proceso.
·
Grupo:
nombre del grupo al que
pertenecerá este dato. Para asignar el dato a un grupo, escriba el
nombre del grupo. Si el grupo ya existe, mientras escribe aparecerá
en una lista debajo del nombre que se esté escribiendo y podrá
seleccionarlo. Si no existe, se creará automáticamente cuando
guarde los cambios. Los datos que están en el mismo grupo son
mostrados juntos en la lista de datos cuando ésta está ordenada por
grupo, con el nombre del grupo como título (se ordena por grupo
haciendo clic en el cabezal de la columna “Grupo”). También son
mostrados juntos en los formularios del sitio web.
·
Bloque de
línea:si el dato
debe pertenecer a un bloque de líneas, indica el bloque de líneas
al cual pertenece el dato. El concepto de bloque de líneas se
explica más abajo.
·
Acepta múltiples
valores: si esta
opción está marcada, el dato puede tener varios valores. Es un
conjunto de datos en lugar de un dato.
Figura 100 Sección Presentación de datos
·
Etiqueta:
es el nombre con el que se
mostrará el dato en el sitio web. Los usuarios no verán el nombre
del dato, verán la etiqueta. La etiqueta puede tener símbolos que
no están permitidos en el nombre del dato.
·
Tabulación:Indica el orden en el que los datos serán mostrados en los
formularios por defecto en el sitio web. Por ejemplo, el dato con
el valor de tabulación 0 será el que se muestre primero; el que
tenga el valor 1, el que se muestre segundo y así sucesivamente. En
el caso de los datos de bloques de líneas, en el que cada dato
corresponde a una columna de una tabla, el dato que tenga índice 0
ocupará la primera columna, el que tenga índice 1 la segunda y así
sucesivamente.
- Sugerencia: es el texto que se muestra cuando, en el sitio web, se
visualiza la ayuda del grupo de datos al que pertenece.
Figura 101 Sección Avanzado de datos
·
Valores por
defecto: lista con
los valores con los cuales comenzará el dato cuando se inicie un
proceso. Si el dato no acepta múltiples valores, sólo se puede
definir un valor por defecto.
·
Nuevas
instancias: si el
dato acepta múltiples valores, cuando un usuario hace clic en el
sitio web para agregar un valor, el valor que se agrega será el
indicado en esta propiedad.
La sección
dependencias sólo aparece si el dato de aplicación está asociado a
un dominio que accede a una base de datos, web service o lista de
SharePoint, y que tiene parámetros de entrada o salida (consulte la
sección “Fuentes de
datos” para ver cómo se
configuran esos dominios).
Si un
dominio tiene parámetros de entrada, hay que especificar de qué
datos de aplicación se tomarán los valores que se utilizarán en
esos parámetros de entrada. Eso se hace en la sección
“Dependencias”: a cada parámetro de entrada del dominio se le
asocia un dato de aplicación.
Lo mismo
sucede con los parámetros de salida: cuando un dominio tiene
parámetros de salida, hay que especificar en qué datos de
aplicación se volcarán los valores de los parámetros de salida. Eso
también se hace en la sección “Dependencias”, asociando a cada
parámetro de salida un dato de aplicación.
La sección
“Dependencias” muestra los parámetros del dominio en una tabla con
tres columnas. En la primera columna se muestran los nombres de los
parámetros. En la segunda, el tipo: entrada o salida, indicado por
un ícono. En la tercera se debe elegir, para cada parámetro, qué
dato de aplicación se desea asociar a él.
La
Figura 102 muestra la sección de dependencias de un
dato del dominio “Cliente”. Este dominio tiene un parámetro de
entrada (“id”) y cuatro de salida (el resto). En la columna “Dato
de aplicación” se selecciona, para cada parámetro, un dato de
aplicación. En este caso, se seleccionó el dato de aplicación
“Cédula” para el parámetro “id”. Esto significa que el dominio,
para obtener datos, usará el valor del dato de aplicación “Cédula”.
Por ejemplo, cuando un usuario acceda al sitio web de Q-flow para,
responder a una tarea, podrá ingresar un valor para el dato
“Cédula” y cuando lo haga, el dominio obtendrá datos utilizando la
cédula ingresada.
El dominio
también tiene parámetros de salida asociados a datos de aplicación.
Por ejemplo, el parámetro “nombre” está asociado al dato de
aplicación “Nombre”, de modo que cuando se obtengan los datos, el
valor del parámetro “nombre” se cargará en el dato
“Nombre”.
Figura 102 Dependencias
de un dato de aplicación
Cuando un
conjunto de datos pertenece a un bloque de líneas, esos datos
aparecen en el sitio web agrupados bajo el mismo rótulo. Para que
un dato pueda pertenecer a un bloque de líneas, debe aceptar
múltiples valores.
En el
sitio web, los datos de un bloque se muestran como una tabla: cada
fila de la tabla tiene tantos valores como datos tiene el bloque.
Por ejemplo, el bloque Empleados (Figura 103) tiene tres datos. Ese bloque se muestra en el sitio web
como una tabla con tres columnas, una por cada dato: Dirección,
Nombre y Teléfono. Vea el manual del sitio web por detalles de cómo
un usuario interactúa con bloques de líneas.
Figura 103 Datos de un
bloque de línea
Por
defecto, los usuarios no pueden ver ni modificar los datos de
aplicación al iniciar un proceso o durante la ejecución de éste.
Para permitir que un usuario pueda ver o modificar los datos de
aplicación, configure el alcance de éstos en los pasos donde desea
que puedan ser vistos o modificados. También es posible
configurarlo en el formulario y el formulario de edición del
proceso. El alcance de los datos también especifica, para el caso
de los datos de bloques de líneas y datos que aceptan múltiples
valores, si los usuarios pueden agregar o borrar instancias, así
como también los límites a la cantidad de instancias que se pueden
tener. Para obtener información al respecto, consulte la sección
“Alcance de datos,
roles, adjuntos y comentarios”.
Los roles
representan uno o más usuarios que desempeñarán una determinada
función durante la ejecución de un proceso. Cuando una plantilla de
proceso especifica que Q-flow debe enviar una tarea a un usuario,
no especifica un usuario concreto, especifica un rol. Esto hace más
fácil el mantenimiento de las definiciones de los procesos.
Por ejemplo, la tarea “Aprobar gasto” puede ser asignada al rol
“Gerente de finanzas”. Si el gerente de finanzas es Juan Pérez, el
rol tendrá como miembro a esa persona. Si un día Juan Pérez se va
de la empresa y es sustituido por José López, no es necesario
actualizar todas las tareas de usuario en las que interviene Juan
Pérez por ser gerente de finanzas: basta con modificar el rol
“Gerente de finanzas”, sacando a Juan Pérez y poniendo como miembro
a José López.
Cuando
Q-flow deba enviar el mensaje correspondiente a la tarea,
verificará qué usuarios están desempeñando ese rol y enviará el
mensaje a esos usuarios.
El
formulario de un rol tiene las siguientes secciones:
·
General
·
Restricciones (sólo
disponible con el formulario expandido): permite restringir quiénes pueden ser
miembros del rol.
·
Presentación:
permite especificar cómo se
muestra el rol en el sitio web.
Figura 104 Sección General de roles
La sección
“General” tiene las siguientes propiedades:
·
Nombre
·
Descripción
·
Miembros del
rol:lista de
usuarios, roles, roles de sistema, grupos y colas de trabajo que
desempeñan el rol. Sólo puede haber más de un miembro si el rol
permite múltiples usuarios. Para que una cola de trabajo o un grupo
pueda ser miembro de un rol, también es necesario que éste permita
múltiples usuarios. Para agregar un miembro, comience a escribir su
nombre donde dice “Comience a escribir un usuario…”, y cuando vea
el rol que desea en la lista que aparece, selecciónelo.
·
Permitir múltiples
usuarios: si esta
opción está marcada, el rol puede tener muchos miembros o miembros
que tienen muchos usuarios (por ejemplo, grupos).
·
Aplicar regla:
aplica una regla que determina
quiénes son los miembros del rol.
o
Supervisados por:
si se aplica esta regla, los
miembros del rol no son los que están en la lista de miembros, sino
que son aquellos usuarios que sean supervisados por ellos. Ejemplo:
el usuario Pérez es supervisor de López y Gómez. Si Pérez está en
la lista y se aplica la regla “Supervisados por”, los miembros del
rol serán López y Gómez, y no Pérez. La regla, además, se aplica en
el momento en el que el rol es utilizado. Es decir, si en el
momento de definir el rol, López es supervisado por Pérez, pero
poco antes de que un proceso le envíe una tarea a ese rol alguien
le cambia el supervisor, entonces no recibirá la tarea, pues habrá
dejado de ser miembro del rol.
o
Supervisor de:
si se aplica esta regla, los
miembros serán los supervisores de los que se incluyen en la lista
de miembros.
o
Usuario con menos
tareas: si se aplica
esta regla, Q-flow toma como usuario que desempeña ese rol al
usuario que tenga menos tareas pendientes al momento de utilizar el
rol. Ejemplo: supongamos que el rol tiene como miembros a tres
usuarios: Pérez, López y Gómez. Una tarea está dirigida a ese rol y
utiliza la regla “Usuario con menos tareas”. Si, cuando el proceso
llega a esa tarea, Pérez es, de los tres usuarios, el que tiene
menos tareas pendientes, entonces la tarea será asignada a
Pérez.
o
Supervisor
directo: si se
aplica esta regla. Q-flow toma como usuario que cumple con ese rol
a cada supervisor directo de los miembros que se hayan agregado. Un
supervisor directo de un usuario es aquel asignado como supervisor
en el nodo organizacional donde se encuentra el usuario.
o
Usuario con menos tareas de
la plantilla de proceso: si se aplica esta regla, Q-flow toma como usuario que
cumple con ese rol al usuario que tenga menos tareas pendientes
pertenecientes a procesos de la misma plantilla. Ejemplo:
supongamos que el rol tiene como miembros a Pérez, López y Gómez.
Una tarea está dirigida a ese rol, que utiliza la regla “Usuario
con menos tareas de la plantilla de proceso”. La plantilla del
proceso se llama “Aprobaciones”. Si, cuando el proceso llega a la
tarea mencionada, Pérez es el que tiene menos tareas pendientes en
procesos de la plantilla “Aprobaciones” de los tres usuarios,
entonces la tarea será asignada a Pérez. Nótese que esta regla es
similar a “Usuario con menos tareas”, pero no se cuentan todas las
tareas que cada usuario tiene pendientes en el sistema, sino
solamente las de la plantilla del proceso al que pertenece la
tarea.
La sección
“Restricciones” (Figura
105), permite restringir
los usuarios que pueden ser seleccionados para este rol. Si desea
restringir quienes pueden desempeñar ese rol a una lista de
usuarios, marque la opción “Restringir selección de miembros del
rol”. Entonces podrá agregar restricciones a la lista. Sólo
usuarios que cumplen con las reglas especificadas en la lista
podrán desempeñar el rol. Para agregar una restricción, haga clic
en el botón con el símbolo de “+”. Esto agrega una fila.
Figura 105 Restricciones
Haga clic
en la columna “Nombre” de la fila seleccionada para escribir el
nombre del miembro (usuario, grupo, nodo o cola de trabajo) al cual
quiere restringir el rol. También puede seleccionar una regla,
haciendo clic en la columna “Regla” de la misma fila. La regla
indica cómo se usa ese miembro para definir la restricción. Por
ejemplo, la restricción más sencilla posible es seleccionar un
usuario como miembro y utilizar la regla “Ninguna”. En este caso,
la restricción indicará que el usuario seleccionado puede
desempeñar el rol, pero otros usuarios no (a menos que alguna otra
restricción indique que sí pueden). Las reglas posibles
son:
a.
Ninguna:
el miembro de rol seleccionado
puede desempeñar el rol.
b.
Supervisor
de:los supervisores
del miembro de rol seleccionado pueden desempeñar el
rol.
c.
Supervisados
por:los usuarios que
tengan como supervisor al miembro de rol seleccionado pueden
desempeñar el rol.
d.
Miembros de:
los miembros del miembro de rol
seleccionado pueden desempeñar el rol. Por ejemplo, si el miembro
de rol seleccionado es un grupo, la regla hace referencia a los
miembros de ese grupo. Naturalmente, esta regla no se puede aplicar
a un usuario.
e.
Visualizadores
de: esta regla sólo
es válida si el miembro de rol es una cola de trabajo. Significa
que usuarios que tengan permiso de visualización en esa cola de
trabajo pueden desempeñar el rol.
f.
Actuantes
de:esta regla sólo
es válida si el miembro de rol es una cola de trabajo. Significa
que usuarios que tengan permiso de actuar en la esa cola de trabajo
pueden desempeñar el rol.
Figura 106 Sección Presentación de roles
·
Etiqueta:
es el nombre con el que se
mostrará el rol en el sitio web. Los usuarios no verán el nombre
del rol, verán la etiqueta. La etiqueta puede tener símbolos que no
están permitidos en el nombre del rol.
·
Tabulación:indica el orden en el que se mostrarán los roles. Por
ejemplo, el rol que tenga el valor 0 se mostrará primero; el que
tenga el valor 1 se mostrará segundo, y así
sucesivamente.
·
Sugerencia:
es el texto que se muestra
cuando, en el sitio web, se visualiza la ayuda del grupo de los
roles.
Por
defecto, los usuarios no pueden ver ni modificar los roles de un
proceso durante su inicio o ejecución. Para permitir que los
usuarios puedan ver o modificar los roles de un proceso, configure
el alcance de los roles en los elementos del diseño donde desea que
sean vistos o modificados. El alcance de los roles también
especifica, para aquellos que aceptan valores múltiples, si los
usuarios pueden agregar o borrar miembros, y establece límites a la
cantidad de miembros que los usuarios pueden agregar o
borrar.
Por
información sobre cómo configurar el alcance, consulte
“Alcance de datos,
roles, adjuntos y comentarios”.
El dominio
de un dato especifica el conjunto de valores que el dato puede
tomar y está asociado a un tipo de dato. Por ejemplo, si un dato
sólo debe guardar valores correspondientes a fechas, el dominio de
ese dato es el conjunto de todas las fechas posibles. En Q-flow,
cada dato de aplicación está asociado a un dominio y éste está
asociado a un tipo de dato.
El tipo de
dato del dominio determina el tipo del dato de aplicación. Por
ejemplo, si un dato de aplicación está asociado al dominio “Fecha”,
su valor debe ser una fecha. Así, a través de su tipo de dato, el
dominio define los valores que los datos asociados a él pueden
tomar. Se puede limitar aún más estos valores si se asocia el
dominio con una operación que defina un conjunto más restringido de
valores (por ejemplo, el resultado de una consulta a una base de
datos).
Un
dominio, define también, la forma en que sus datos serán mostrados
y editados en el sitio web de Q-flow. Por ejemplo, datos del
dominio “Fecha” se muestran mediante un control (ítem del
formulario) que permite seleccionar una fecha (es decir, un
selector de fecha).
Q-flow
ofrece un conjunto de dominios básicos, pero es posible definir
dominios adicionales.
Los
dominios básicos de Q-flow son los siguientes:
·
Booleano:
está asociado al tipo de datos
“Verdadero/Falso” y al control “Check Box”.
·
Fecha:
está asociado al tipo de datos
“Fecha” y al control “Selector de fecha”.
·
Número:
está asociado al tipo de datos
“Número” y al control “Cuadro de texto”.
·
Texto:
está asociado al tipo de datos
“Texto” y al control “Cuadro de texto”.
·
Área de
texto:está asociado
al tipo de datos “Texto” y al control “Área de texto”.
·
Dinero:
está asociado al tipo de datos
“Número” y al control “Cuadro de texto”.
·
Hora: está asociado al tipo de datos “Hora” y al
control “Selector de horas”.
·
Fecha y
hora:está asociado
al tipo de dato “Fecha” y al control “Selector de fecha y
hora”.
·
Documento:
está asociado al tipo de dato
“Texto” y al control “Documento”.
Por más
información acerca de los tipos de control de los dominios,
consulte la sección “Tipos de control”.
El
formulario de propiedades de un dominio tiene las siguientes
secciones:
·
General
·
Propiedades
Figura 107 Sección General de dominios
- Nombre
- Descripción
- Tipo de control: es el tipo de control que se usará para ingresar o mostrar
valores de datos de ese dominio. Un control es un elemento de la
interfaz de usuario, como una lista, una caja de texto o un botón,
que le permite a éste interactuar con el sistema. Más abajo se
describe en mayor detalle cada tipo de control.
- Tipo de datos: tipo de los valores que tomarán los datos de aplicación
asociados al dominio. No todos los tipos son compatibles con todos
los controles. Por ejemplo, si el control es un selector de fechas,
el tipo del dato debe ser, necesariamente, Fecha. Los tipos de dato
son los siguientes:
-
- Texto
- Número
- Verdadero/Falso
- Fecha
- Hora
·
Tipo de fuente de
datos: esta opción
sólo es válida para algunos tipos de control. Permite seleccionar
un tipo de fuente de datos para después especificar cómo obtener
los datos de una fuente del tipo seleccionado. Una vez seleccionado
el tipo de fuente de datos, haga clic en el botón de configurar
(Figura
108) para especificar
cómo se obtienen los datos. Los tipos de fuente disponibles
son:
o
Ninguno:
deje esta opción si no quiere
que el dominio acceda a una fuente de datos.
o
Base de
datos:permite
especificar una conexión a una base de datos y una consulta para
obtener los datos
o
Web
service:permite
especificar una conexión a un web service y un método del web
service para obtener los datos.
o
Web service
REST:análogo al
anterior, pero para un web service de tipo REST.
o
Lista de
SharePoint: permite
especificar una lista de SharePoint y una consulta CAML para
obtener los datos.
o
Lista:
permite definir manualmente,
enumerando el conjunto de valores posibles mediante una lista. Cada
elemento de la lista tiene una clave y un texto asociado a
ella.
Figura 108 Formulario
de propiedades de un dominio
Figura 109 Sección de Propiedades de dominios
En
“Propiedades” se puede especificar un conjunto de clases de estilos
para aplicar, en el sitio web de Q-flow, al control que se usa para
mostrar los datos del dominio.
·
Comportamiento:
o
Agregar opción vacía al
Combo Box: permite
agregarle una opción a un dominio con tipo de control “Combo Box”
que, al ser seleccionada en un formulario, indica que no se eligió
ninguno de los valores del dominio.
o
Modo
especial:esta
propiedad sólo está disponible para dominios con tipo de control
“Cuadro de texto” y permite agregarle una propiedad adicional al
control con el que se muestran los datos del dominio, propia de
HTML5, para aprovechar las funcionalidades de validación y
semántica de este estándar. Los modos especiales disponibles
son:
§ Correo electrónico
§ Teléfono
§ Número
§ Contraseña
o
Formato
AM/PM:para dominios
que usan el tipo de dato “Hora” o tipo de control “Selector de
fecha y hora”. Si el valor de esta propiedad es “Verdadero”, los
datos del dominio se mostrarán en el formato AM/PM (“una de la
tarde” = 1:00 PM). De lo contrario, se mostrarán en formato 24
horas (“una de la tarde” = 13:00).
o
Mostrar
segundos:para
dominios que usan el tipo de dato “Hora”. Si el valor de esta
propiedad es “Verdadero”, los datos del dominio son mostrados
incluyendo los segundos. De lo contrario, no se muestran
segundos.
·
Disposición:
o
Clase de
estilos:nombre de la
clase de estilos para mostrar en todos los casos.
o
Clase de estilos de sólo
lectura: nombre de
la clase de estilos a utilizar cuando un dato tiene alcance de sólo
lectura.
o
Clase de estilos del
contenedor: nombre
de la clase de estilos del elemento que contiene el
control.
o
Clase de estilos del
contenedor sólo lectura: nombre de la clase de estilos del elemento que contiene el
control cuando un dato tiene alcance de sólo lectura.
o
Atributos:conjunto de pares de nombres y valores de atributos HTML
que Q-flow agregará al control que muestra los datos del dominio.
Use el botón con el símbolo “+” para agregar una fila a la lista de
atributos y después modifique la clave (nombre del atributo) y el
valor para especificar el atributo.
o
Dirección:
esta propiedad sólo está
disponible para dominios cuyo tipo de control sea “Radio button” o
“Lista de Check Box”. Permite especificar si las opciones de estos
controles deben ser mostrados uno al lado del otro (“Horizontal”) o
uno arriba del otro (“Vertical”, opción por defecto).
·
Restricciones:
o
Expresión
regular: esta
propiedad sólo existe cuando el tipo de dato del dominio es “Texto”
o “Documento”. Permite especificar una expresión regular para
validar los textos que se ingresen o el nombre del archivo que se
está subiendo. Si un usuario ingresa un texto que no está
contemplado en la expresión regular, Q-flow le mostrará el mensaje
de error especificado en la propiedad “Mensaje de error de
formato”.
o
Mensaje de error de
formato: texto del
mensaje de error que se mostrará al usuario si ingresa un valor que
no cumpla con la expresión regular definida en la propiedad
“Expresión regular”.
o
Operador de la
comparación: permite
especificar el operador que se utilizará para comparar una fecha
ingresada por un usuario con la fecha especificada en “Fecha a
comparar”.
o
Fecha a
comparar:esta
propiedad sólo existe cuando el tipo de dato del dominio es
“Fecha”. Permite especificar una fecha con la cual Q-flow, al
validar valores de datos de aplicación del dominio, comparará las
fechas ingresadas por los usuarios. La propiedad “Operador de la
comparación” permite especificar qué comparación se
hará.
o
Largo
máximo:esta
propiedad sólo existe cuando el tipo de dato del dominio es
“Texto”. Permite especificar un largo máximo para los valores de
los datos asociados a ese dominio.
o
Valor
máximo:esta
propiedad sólo existe cuando el tipo de dato del dominio es
“Número”. Permite especificar un valor máximo para los valores de
los datos asociados a ese dominio.
o
Valor
mínimo:esta
propiedad sólo existe cuando el tipo de dato del dominio es
“Número”. Permite especificar un valor mínimo para los valores de
los datos asociados a ese dominio.
Esta
sección explica cómo configurar el acceso a fuentes de datos de
cada tipo. La configuración suele tener dos partes: la
especificación de la conexión a la fuente y la especificación de
qué datos se traen (la consulta). La excepción a esto son las
fuentes de tipo Lista, para las cuales directamente se especifican
los elementos de la lista.
Para
especificar la conexión, siempre hay dos opciones
(Error! Reference
source not found.):
·
Usar un parámetro de
aplicación: en este
caso, seleccione el parámetro de aplicación que contiene la
especificación de la conexión.
·
Definir en la configuración
del origen de datos: en este caso, haga clic en el botón de
configurar.
Se
recomienda utilizar un parámetro de aplicación (por información
sobre cómo definir parámetros de aplicación, ver
“Parámetros de
aplicación”).
Si decide
especificar la ubicación de los datos en la configuración del
origen de datos, deberá completar los mismos datos de conexión que
si estuviese definiendo un parámetro de aplicación. La sección
“Propiedades de un
parámetro de aplicación”
tiene instrucciones para hacerlo.
Definir la
consulta a una base de datos requiere saber utilizar
SQL.
La
Figura 110 muestra el formulario en el que se define
una consulta a una base de datos. Para definir la consulta, puede
escribirla directamente en SQL o puede usar el constructor de
consultas (Figura
111). La primera columna
de la sentencia “Select” debe ser la columna que contiene la clave
de los datos. La segunda columna debe ser la que contenga la
descripción (ejemplo: “Select Id, Nombre From Clientes”). Se puede
incluir más columnas. En ese caso, para usar los datos que vienen
en las columnas adicionales se debe asociarlas a parámetros de
salida. Debajo de la consulta, hay una sección dedicada a estos
parámetros, la cual se explica más abajo.
Las
consultas pueden tener parámetros de entrada. Para crear un
parámetro de entrada, haga clic en el botón de “+” en la tabla que
aparece en la parte superior de la Figura 110. “Valor de prueba” es el valor que tendrá dicho parámetro
para probar la consulta. Puede editar y eliminar parámetros
existentes. Para insertar un parámetro de entrada en la consulta,
haga clic en el botón indicado en la Figura 110.
Los
parámetros de entrada se representan en la consulta con llaves. En
la Figura
110, hay un parámetro de
entrada llamado “País”.
Figura 110 Definición
de una consulta
Figura 111 Constructor
de consultas
El
constructor de consultas facilita la definición de la consulta al
mostrar los nombres de las tablas disponibles. Además, una vez
seleccionadas las tablas en la sección “From” de la consulta, las
columnas disponibles aparecen para seleccionar en la sección
“Select”. En “Order by” se agregan las columnas que se desean usar
para ordenar el resultado, y en “Where” se definen las condiciones
de filtro a través de una interfaz igual a la que se usa para
definir las condiciones de las compuertas (ver “Especificación de
condiciones”).
Probar consulta
Antes de
guardar la configuración del dominio, debe probar la consulta. Para
eso, haga clic en el botón de probar consulta (Figura 110, “Probar consulta”). Si la consulta funciona,
Q-flow muestra el resultado de ejecutarla.
Para
definir parámetros de salida, es necesario probar la consulta,
haciendo clic en el botón correspondiente como se muestra en
la Figura
110. Se mostrará, en
lugar del formulario de la consulta, las columnas que se obtuvieron
como resultado de ésta. Cierre este resultado y volverá al
formulario anterior, pero ahora, como se ve en la
Figura 112, los parámetros están habilitados para su
edición. Haga clic sobre el nombre en azul para
editarlo.
Los
nombres que escriba serán los que vea cuando configure algún dato
de aplicación para almacenar en él los valores de estos parámetros.
Los parámetros se asocian a datos de aplicación en el formulario de
propiedades de los datos de aplicación, en la sección
“Dependencias” (ver “Dependencias”).
Una vez
definida la consulta, haga clic en el botón de aceptar para
guardarla.
Figura 112 Parámetros
de salida
Una vez
especificada la conexión a un web service SOAP, debe hacer clic en
el botón de cargar (ver Figura 113) para
que se cargue la lista de métodos de ese web service. A
continuación, donde dice “Seleccionar método Web”, seleccione el
método que desee usar para el dominio. Al seleccionar el método, se
cargan los parámetros de éste. Los parámetros del método se asocian
a parámetros de entrada.
A cada
parámetro se le puede asignar un valor fijo. Si el tipo de control
es Lookup, Selector de Ítems o Combo Box, también se puede establecer que ese valor
sea parametrizable. Para
ello, en la tabla de parámetros (Figura 113) debe elegir el tipo de
cada parámetro. Hay dos tipos de parámetro:
·
Personalizado: un parámetro personalizado
funciona como los parámetros de los dominios que obtienen sus datos
de una base de datos: cuando se define un dato de aplicación de ese
dominio, se especifica otro dato de aplicación como parámetro (ver
“Dependencias”). Para un parámetro de
este tipo, ingrese un nombre (Figura 113).
·
Sistema: un parámetro de sistema se
usa con un método de web service desarrollado especialmente para
interactuar con el dominio de forma tal que la consulta sea más
eficiente. Por ejemplo, en lugar de tener un Lookup que trae todos
los elementos de una tabla, y recién en el código del cliente
filtra los datos por clave, se puede desarrollar un método que
reciba la clave por parámetro y devuelva solamente el registro que
tiene la clave que se pasó por parámetro. Los parámetros de sistema
no se asocian a datos de aplicación. Q-flow determina cómo invocar
un método en base a qué parámetros de sistema hay definidos. Hay
cuatro tipos de parámetros de sistema:
·
Filtro por clave: para usar con un método
que recibe por parámetro una clave (identificador).
Q-flow lo utiliza, por ejemplo, con controles de tipo Lookup.
Ejemplo de un método para usar con este parámetro:
GetCliente(string clave).
·
Filtro por texto: para usar con un método
que recibe por parámetro una descripción. Q-flow lo utiliza, por
ejemplo, para pasar el texto ingresado en el diálogo del selector
de ítems. Ejemplo de un método para usar con este parámetro:
GetCliente(string filtro).
·
Filtrar por prefijo: complementa el parámetro
Filtro por texto. Si, en un selector de ítems, el usuario
selecciona la opción “Comienza con”, Q-flow invocará el método
pasando este parámetro en “true”. Ejemplo: GetCliente(string
filtro, bool comienzaCon).
·
Cantidad máxima de ítems: útil si el método
del web service recibe un parámetro (de tipo “int”) que indica el
máximo de elementos que debe devolver. Ejemplo: GetCliente(string
filtro, bool comienzaCon, int cantMaxima). Otro ejemplo:
GetCliente(string clave, int cantMaxima).
Una
consulta a una fuente de datos para un dominio debe devolver, por
lo menos, dos columnas: una para la clave y una para la descripción
de las entidades que se devuelven. Si la fuente es de tipo base de
datos, la primera columna que se devuelve se toma como clave y la
segunda como descripción. Pero si la fuente es un web service, no
hay columnas, sino que hay propiedades de objetos, y no hay forma
de determinar cuál de las propiedades corresponde a la clave y cuál
a la descripción. Para hacer eso se utiliza el mapeo de
columnas.
El mapeo
de columnas consiste en definir columnas y asociar cada una de
ellas a una propiedad del objeto. Las dos primeras columnas se usan
para la clave y la descripción respectivamente. Columnas
adicionales son opcionales, y se pueden asociar a parámetros de
salida (ver más adelante).
Por defecto, la tabla de
mapeo tiene todas las propiedades mapeadas a un nombre de columna.
Si desea cambiar algún nombre, haga clic en el texto
correspondiente a “Nombre de columna” para ingresar el nombre de la
columna, y después de ingresarlo, pulse “Enter”. Si desea quitar
algún mapeo, haga clic en la fila y luego en el botón de “Limpiar
mapeo” (indicado en la Figura 113). También puede cambiar
el orden del mapeo con los botones correspondientes.
Después, cada columna
definida se asocia a un parámetro de salida mediante el botón de
“Parámetros de salida” (análogo a la consulta de base de datos): a
cada columna se le asigna un nombre de parámetro. Tanto los
parámetros de entrada como los de salida se asocian a datos de
aplicación a través de la sección “Dependencias” de los datos de
aplicación pertenecientes al dominio (ver “Dependencias”).
Figura 113 Consulta a
un web service
Una vez
especificada la conexión a un web service tipo REST, se debe
especificar la acción a realizar, la cual es una URL
correspondiente al web service que se desea consultar
(Figura
114). Luego se debe
seleccionar el método HTTP requerido (GET, POST o PUT).
Figura 114 Consulta a
un web service REST
Los
parámetros de entrada tienen los mismos tipos que en los web
services SOAP (ver sección “Parámetros de entrada”), pero a diferencia de éstos, no se cargan
automáticamente, sino que el usuario debe ingresarlos a mano. Puede
ponerles un nombre y un valor (ambos deben ser únicos) además del
tipo. Estos parámetros se usan para cargar valores en el objeto de
entrada, que se explica a continuación.
Objeto de entrada
El
objeto de entrada es de tipo JSON, y consiste en un objeto con
propiedades. Estas propiedades pueden ser valores (que se toman de
los parámetros de entrada) o subpropiedades, que a su vez tienen
más valores.
Para
crear una nueva propiedad, haga clic en el botón indicado en
la Figura
114. Esto abrirá un menú
como el de la Figura
115.
Figura 115 Menú de
propiedades
Si desea
agregar una propiedad con subpropiedades, elija la opción de
“Agregar propiedad” (luego podrá agregarle subpropiedades a la
propiedad principal). De lo contrario, elija la opción de “Agregar
propiedad con valor”. Esto le permitirá darle un valor a la
propiedad a partir de un parámetro de entrada. Opciones análogas se
muestran al hacer clic en el botón de “Agregar
subpropiedad”.
La Figura
116 muestra un ejemplo
de un árbol de propiedades y subpropiedades.
Figura 116 Árbol de
propiedades
Para
editar el nombre de una propiedad o subpropiedad, puede usar el
botón indicado en la Figura 114 o
presionar F2. Recuerde que, a la hora de hacer la consulta, las
propiedades que estén en el mismo nivel del árbol deben tener
nombres diferentes. También puede eliminar una propiedad, usando el
botón correspondiente (Figura 114).
Estas dos opciones también se muestran en un menú contextual si
hace clic derecho sobre la propiedad.
Una vez
creada la estructura de su árbol, debe ingresar los valores
necesarios. A todos los valores se les debe asignar un parámetro;
si desea enviar una propiedad con valor vacío, cree un parámetro
cuyo valor sea vacío (que no sea de tipo Sistema). Para asignar un
valor a un parámetro, haga clic derecho sobre el valor. Esto abrirá
un menú contextual como muestra la Figura 117.
Figura 117 Menú
contextual de valores
Si
posiciona el cursor sobre la opción “Asignar valor”, sobre la
derecha se desplegará un submenú con todos los parámetros
existentes. Haga clic sobre el que desee asignar, y el valor se
mostrará con el nombre de ese parámetro. Puede asignarle el mismo
parámetro a más de un valor. El botón de Limpiar le permite borrar
el parámetro actualmente asignado al valor.
En
la Figura 118
se muestra un ejemplo de
resultado final.
Figura 118 Árbol con
propiedades y parámetros cargados
Una vez
creado su objeto de entrada, debe probar la consulta, al igual que
en los web services SOAP, con el botón para dicho fin (análogo a
la Figura
113). El resultado de la
consulta debe ser un arreglo de objetos JSON. Dado que un objeto
JSON podría potencialmente tener varios niveles de subpropiedades,
hay un límite de la profundidad mostrada. Esto se puede ver en
la Figura
119, donde los campos
con un símbolo de información son aquellos que tienen más
subpropiedades, pero no se muestran.
Figura 119 Resultado de
consulta con nivel de profundidad no soportado
Luego de
probada la consulta, la tabla de Mapeos de columnas se cargará con
las propiedades encontradas. Se puede proceder entonces a realizar
los mapeos correspondientes y cargar los parámetros de salida como
se explica en la sección “Mapeo de columnas y parámetros de salida”.
La
definición de la consulta a una lista de SharePoint es similar a la
de una consulta a una base de datos (ver “Definición de la consulta a una base de
datos”), con la
diferencia de que la consulta se escribe en CAML en lugar de SQL.
También hay un constructor de consultas para facilitar la
tarea.
Esta
sección explica los tipos de control que pueden ser utilizados por
los dominios de datos. Los tipos de control posibles
son:
·
Área de texto
·
Check Box
·
Combo Box
·
Cuadro de texto
·
Cuadro de texto con
sugerencias
·
Cuadro de texto
enriquecido
·
Documento
·
Etiqueta
·
Hipervínculo
·
Lista de Check Box
·
Lookup
·
Radio Button
·
Selector de fecha y
hora
·
Selector de fechas
·
Selector de horas
·
Selector de ítems
Área donde
se puede escribir varias líneas de texto. Es ideal para datos cuyos
valores son textos largos.
Figura 120 Área de texto
Casillero
cuadrado para marcar o desmarcar una opción. Sólo es útil para
datos de tipo verdadero/falso.
Figura 121 Checkbox
Lista que,
al ser desplegada, muestra opciones de posibles valores del dato.
Es adecuada cuando el usuario debe elegir sólo una entre varias
opciones.
Figura 122 Combo Box
Un cuadro
de texto con sugerencias permite a un usuario escribir parte de un
texto y le muestra una lista de valores cuyos textos empiezan con
lo que él escribió. Esos valores se obtienen de algún origen de
datos. Por ejemplo, supongamos que un usuario tiene que seleccionar
el nombre de un producto de entre los productos que ofrece una
empresa. Si la empresa tiene muchos productos, tal vez no sea tan
práctico tener un combo box. Tal vez sea más práctico que el
usuario empiece a escribir el nombre del producto, y entonces una
lista va mostrando los productos cuyos nombres se asemejan a lo que
escribe el usuario, hasta que finalmente sean tan pocos que el
usuario puede encontrar el que desea fácilmente y
seleccionarlo.
Figura 123 Cuadro de texto con sugerencias
Caja de
texto común con una sola línea (como la caja de texto donde se
escribe el nombre de un dominio).
Figura 124 Cuadro de texto
Similar al
área de texto, pero permite modificar propiedades de formato del
texto como usar negrita, cursiva, alinear el texto, agregar listas
u otros elementos.
Figura 125 Cuadro de texto enriquecido
Un dato de
un dominio que usa este tipo de control se muestra, si es editable,
como un control para subir archivos (de lo contrario, sólo el valor
del dato). Cuando un usuario sube un archivo usando este control,
el archivo se adjunta al proceso, y además, en el valor del dato se
guardan el identificador de nuevo adjunto, la versión y la ruta del
archivo que se subió, separados por punto y coma (“;”). De este
modo, el usuario no sólo adjunta un archivo, sino que éste queda
asociado a un dato que le da un significado al archivo. Por
ejemplo, se puede requerir el ingreso de un currículum teniendo un
control de “Currículum Vitae”.
Para que
un usuario pueda subir un archivo, no sólo tiene que ser editable
el dato, sino que en el alcance debe estar permitido agregar
archivos (ver “Alcance
de adjuntos”).
Figura 126 Control de tipo "Documento", modificable
Control
que muestra un texto, pero no permite modificarlo, aun cuando el
alcance del dato defina que existe permiso de edición para el dato
en el paso que se está contestando o en el paso de
inicio.
Figura 127 Etiqueta
Control
que, cuando se le hace clic, navega hacia una página web. Es útil
cuando los datos representan direcciones web.
Figura 128 Un hipervínculo con su ventana de edición
Conjunto
de check boxes. Es útil
cuando se le quiere presentar al usuario una lista de opciones y el
usuario puede elegir varias de ellas. Los textos de las opciones
son copiados en el valor del dato uno a continuación del otro,
separados por saltos de línea (sólo dominios de tipo texto aceptan
este tipo de control). En el sitio web, los valores se ven
separados por espacios. Por ejemplo, el dato cuyo valor está siendo
editado en la Figura
129 se vería como “Rojo
Verde Negro” en el sitio.
Figura 129 Lista de
check boxes
Control
que permite obtener a partir de un identificador un valor
correspondiente a ese identificador, sacado de una base de datos,
de una lista o de un web service. El usuario escribe el
identificador en una caja de texto y Q-flow muestra el valor
correspondiente a ese identificador.
Figura 130 Lookup
Similar al
check box, pero cuando hay varios “radio buttons” en una misma
área, sólo uno de ellos puede estar marcado, por lo que, cuando se
marca uno, se desmarcan automáticamente los otros.
Figura 131 Radio Button
Combinación de selector de fechas y selector de
horas.
Figura 132 Selector de fecha y hora
Control
que despliega un calendario para seleccionar una fecha.
Figura 133 Selector de fechas
Es un
control que permite ingresar horas y las valida
automáticamente.
Figura 134 Selector de horas
Lista que
permite seleccionar un elemento particular de una colección con una
gran cantidad de elementos (por ejemplo, sacados de una base de
datos). Los elementos son mostrados en una lista y Q-flow los
filtra a medida que el usuario escribe el nombre del elemento
buscado.
Figura 135 Selector de ítems
Las
integraciones permiten que Q-flow interactúe con otros sistemas
mediante la ejecución de operaciones de componentes de software. Un
proceso puede ejecutar las operaciones de una integración a través
de una actividad de servicio (ver “Tarea de servicio”).
La
definición de una integración requiere conocimientos técnicos de
informática. Por eso Q-flow separa la definición de una integración
de su utilización.
Para
definir una integración, se debe definir una o más operaciones. Una
operación es un conjunto de llamadas a un componente externo a
Q-flow. Por ejemplo, si es una integración con un web service, es
un conjunto de llamadas a métodos de ese web service. Una de las
operaciones es seleccionada como operación en producción y ésa es
la que se ejecuta cuando se llama la integración.
El
formulario de propiedades de una integración tiene las siguientes
secciones:
·
General:
además de permitir especificar
el nombre y la descripción de la integración, permite seleccionar
la operación en producción.
·
Parámetros:permite definir los parámetros de la integración. Los
parámetros permiten que el proceso, al llamar a la integración, le
envíe datos y que cuando la integración termine su ejecución,
reciba datos de ella.
·
Operaciones:permite definir las operaciones de la integración. Una
operación de una integración que accede a un web service, por
ejemplo, se especifica mediante la URL del web service, del nombre
del método que se debe invocar y de los parámetros que se le pasan
a ese método.
Figura 136 Propiedades de una integración
Propiedades de la sección “General”:
·
Descripción
·
Ejecuta en
transacción: permite
especificar si la operación debe ser ejecutada en una transacción,
o sea, en un contexto en el que muchas operaciones son ejecutadas
y, si al menos una falla, entonces todas son canceladas y
deshechas. Esto es posible solamente con algunas operaciones (por
ejemplo, operaciones de bases de datos). NOTA TÉCNICA:
esta opción se implementa ejecutando el código de la integración
dentro de un TransactionScope.
·
Nombre de la operación en
producción: indica
cuál de las operaciones definidas en la integración es la que se
utilizará (vea más abajo cómo definir operaciones; inicialmente no
hay operaciones definidas y por lo tanto, no es posible elegir
una). Para elegir la operación en producción, empiece a escribir el
nombre de la operación y, cuando Q-flow la muestre,
selecciónela.
La sección
de parámetros muestra una tabla (inicialmente vacía) con los
parámetros de la integración. Los parámetros permiten enviar datos
a la operación que se ejecuta, o recibir datos del resultado de
ejecutar la operación. Por ejemplo, si la integración invoca un
método de un web service que tiene dos parámetros y que devuelve un
número, se deben crear tres parámetros: uno por cada parámetro del
método y uno para el resultado. Cuando se selecciona la integración
en una tarea de servicio (ver “Tarea de servicio”), se asocia cada parámetro de la integración a un dato o
parámetro de aplicación.
Figura 137 Parámetros de una integración
Para
agregar un parámetro, haga clic en el botón “+”. Eso hace que
Q-flow agregue una fila a la tabla. Para modificar una propiedad
del parámetro, haga clic en su valor (por ejemplo, para modificar
el nombre del parámetro, haga clic en el texto que aparece en la
columna “Nombre” de ese parámetro).
Para
eliminar un parámetro, selecciónelo y haga clic en el botón de
eliminar (✗).
Las
propiedades de los parámetros se modifican haciendo clic en ellas.
Las propiedades de un parámetro son:
·
Nombre:
nombre que identifica el
parámetro.
·
Tipo de
dato:
o
Texto
o
Número
o
Verdadero/Falso:dato con dos valores posibles: verdadero o falso
o
Fecha
o
GUID:identificador
o
Hora
·
Valor por
defecto: el valor
que toma el parámetro si no se le asocia ningún dato o parámetro de
aplicación en una tarea de servicio que usa la integración que se
está definiendo.
·
Dirección:
o
Entrada
o
Salida
o
Entrada y
Salida
·
Requerido:
si esta opción está marcada, es
obligatorio asociar un dato o parámetro de aplicación al parámetro
en las tareas de servicio que usen la integración que se está
definiendo.
Las
operaciones también se muestran en una tabla (Figura 138). Cuando se agrega una operación, aparece el
formulario del asistente para generarla (Figura 139). En la sección “General” de ese formulario se ingresan el
nombre y opcionalmente, la descripción de la operación. Debajo de
estas opciones están las opciones para agregar los componentes que
debe usar Q-flow para ejecutar la operación. Una vez definidos los
componentes, debe hacer clic en el botón de siguiente para ir al
siguiente paso. Al final del proceso, Q-flow generará el código que
ejecuta la operación.
Figura 138 Operaciones
de una integración
Figura 139 Propiedades
de una integración
Si se
marca la opción “Crear integración AdHoc”, no hace falta
especificar nada: una integración ad hoc se crea con un código que
no ejecuta nada. Se puede usar para pruebas o para generar una
operación cuyo código será escrito a mano más tarde.
De lo
contrario, hay que especificar uno o más componentes para la
operación. Los tipos de componente disponibles son:
·
Database:
un procedimiento almacenado, o
un script para hacer consultas (Queries) o insertar o actualizar
datos (Upserts).
·
Rest web
service:un web
service REST.
·
SharePoint:
una lista de SharePoint.
Se puede subir documentos y
crear elementos en una lista o biblioteca de documentos.
- Web
service: un web
service.
·
NOTA: Q-flow también puede manejar operaciones
de otros tipos: COM, Assembly (componente .Net) y Qflow Assembly
(componente .Net que implementa una interfaz definida en Q-flow).
Estas operaciones no están disponibles en el diseñador web, pero sí
en el diseñador clásico. Una vez definidas, es posible ver el
código de estas operaciones en el diseñador web.
Para
agregar un componente, haga clic en el botón de configurar la
operación (Figura
139). Aparece entonces
un menú que permite seleccionar el tipo de componente. Cuando
seleccione el tipo de componente, aparecerá un formulario para
especificar la conexión al componente. Ese formulario tiene dos
opciones:
·
Usar un parámetro de
aplicación: si marca
esta opción, en lugar de especificar la conexión, puede seleccionar
un parámetro de aplicación para que Q-flow obtenga los datos de la
conexión del parámetro de aplicación. Si la lista de parámetros de
aplicación para elegir está vacía, es porque no hay un parámetro de
aplicación disponible para el tipo de componente seleccionado (por
ejemplo, el tipo de componente es “Database” y no hay ningún
parámetro de aplicación de tipo “Conexión a base de datos”
disponible).
·
Definir en la configuración
del origen de datos: si marca esta opción, debe especificar los datos de la
conexión. Los datos de una conexión se especifican de la misma
forma que si uno estuviera definiendo una conexión en un parámetro
de aplicación. Por instrucciones sobre cómo configurar una
conexión, consulte la sección correspondiente en el apartado
“Parámetros de
aplicación”:
o
Conexión a Base de
datos: Ver
“Configuración de una
conexión a base de datos” por instrucciones.
o
Conexión a lista de
SharePoint: Ver
“Configuración de una
conexión a SharePoint”
por instrucciones.
o
Conexión a Web
service: Ver
“Configuración de una
conexión a web service”
por instrucciones.
En el caso
de un componente de tipo Rest Web service, para configurar
la conexión debe especificar los siguientes datos:
·
Url: la URL del web service. Por ejemplo:
“http://servidorWeb/api”.
·
Método
web:suponiendo que
se quiere acceder a las operaciones de altas, bajas y
modificaciones de empleados, un ejemplo sería poner.
“empleados”.
·
Método Http:
el método Http (get, post, put
o delete), que depende de qué operación se desea realizar
(obtención de un objeto, alta, modificación o
eliminación).
·
Parámetros:
permite especificar la
estructura de los objetos que se reciben por parámetros. Si el
parámetro es un valor simple (por ejemplo, el identificador de una
entidad), basta con hacer clic en “Agregar propiedad”
(Figura
140) y asignarle un
nombre seleccionándola, haciendo clic en “Editar propiedad”
(Figura
140) e ingresando el
nombre. Este nombre se usará más tarde para asociar el parámetro
con uno de los parámetros de entrada de la integración. El botón
“Agregar subpropiedad” sirve para especificar objetos complejos.
Combinando “Agregar propiedad” y “Agregar subpropiedad”, se puede
especificar un objeto que tiene dentro otros objetos. No es
necesario incluir todas las propiedades de los objetos: solamente
aquellas a las que se quiera asignar valores que están en
parámetros de la integración.
·
Objeto de
retorno: funciona de
la misma forma que Parámetros, pero para el objeto de
retorno.
Figura 140 Configuración de componente de tipo Rest Web service. En
este caso, el objeto recibe un parámetro simple, “id”, y devuelve
un objeto, del cual interesa la propiedad “Name” (la integración
tiene un parámetro de entrada para el “id” y uno de salida para
“Name”.
Una vez
especificado un componente, si hace clic en el botón de aceptar, el
componente se agrega a la lista de componentes (Figura 141).
Figura 141 Dos
componentes agregados a una operación
Cuando se terminó de agregar
componentes, hay que especificar qué operaciones de estos
componentes se ejecutarán en la operación. Para pasar a esta etapa
de la definición de la operación, haga clic en el botón de la
flecha (Figura 141, “Siguiente”). La pantalla
cambia para mostrar las clases y métodos disponibles
(Figura 142). Cuando se selecciona una
clase, la lista de métodos disponibles cambia para mostrar los
métodos de la clase seleccionada. Las clases que se muestran son
las siguientes:
·
Para bases de datos: como las bases de datos no
tienen clases, lo que se muestra son clases generadas por Q-flow
para representar comandos que se pueden enviar a la base de datos.
Las clases son de los siguientes tipos:
o
[BaseDeDatos].Queries: estas clases permiten
ejecutar consultas sencillas generadas automáticamente por Q-flow.
Cuando se selecciona esta opción, en la lista “Métodos disponibles”
se carga un elemento por cada tabla de la base de datos. Cada uno
de estos elementos representa un comando “SELECT” para traer los
datos de la tabla correspondiente. Por ejemplo, si la base de datos
tiene una tabla que se llama “Empleados”, en “Métodos disponibles”
aparece el “método” “EmpleadosQuery”. Si además tiene una tabla
llamada “Productos”, aparece el método “ProdutosQuery”,
etc.
- [BaseDeDatos].StoredProcedures: estas clases permiten ejecutar
procedimientos almacenados. Cuando se selecciona esta opción, en la
lista “Métodos disponibles” se cargan los procedimientos
almacenados de la base de datos.
o
[BaseDeDatos].Upserts: permiten ejecutar secuencias de comandos SQL
generados automáticamente por Q-flow para actualizar tablas. Cuando
se selecciona esta opción, en la lista “Métodos disponibles” se
carga un elemento por cada tabla de la base de datos. Cada uno de
estos elementos representa un comando que inserta o actualiza un
registro de una tabla, según si los valores que se le pasan
corresponden a un registro que ya existe o no. Por ejemplo, si la
base de datos tiene una tabla que se llama “Empleados”, en “Métodos
disponibles” aparece el método “EmpleadosUpsert”.
·
Para web services: se
muestra la clase que implementa las operaciones del web service. Si
se selecciona esa clase, se muestran los métodos que el web service
expone.
·
Para web services REST: se muestra la clase asociada al componente configurado, con
una única clase.
·
Para listas de SharePoint: las clases disponibles corresponden a los tipos de
contenido disponibles para la lista seleccionada. También está la
opción [DynamicContentType], que permite agregar un elemento o
subir un documento especificando el tipo de contenido mediante un
parámetro. Una vez seleccionada la clase, suelen aparecer dos
métodos disponibles: uno permite crear un elemento (“CreateItemX”,
donde X es el nombre del tipo de contenido seleccionado en
“ClasesDisponibles”). El otro permite subir un documento
(“UploadDocumentX”). En este caso, además de los parámetros
correspondientes a los campos del tipo de contenido, hay uno que
debe contener la ruta del archivo que se va a subir. Si la clase
seleccionada es [DynamicContentType], solamente aparecerá la opción
de crear un ítem (“CreateItemDynamicContentType”).
Figura 142 Seleccionar
métodos
Para
agregar un método, selecciónelo y haga clic en el botón “+”. Al
agregar un método, aparecen sus parámetros de entrada y de salida.
A cada uno de esos parámetros se le puede asociar uno de los
parámetros definidos para la integración. El ícono al lado de un
parámetro del método indica si es de entrada o salida; si deja el
cursor de un ratón sobre un parámetro, aparece una etiqueta que
dice “Entrada” o “Salida”.
Para
asociar un parámetro del método a un parámetro de la integración,
haga clic con el botón derecho donde dice “Valor” y seleccione
“Asignar valor”. Esto hace que aparezca la lista de parámetros de
la integración compatibles con el parámetro seleccionado del
método: los parámetros compatibles son los que tienen un tipo
convertible y la misma dirección (entrada o salida). Por ejemplo,
si el parámetro de entrada del método es de tipo “Número”, se
podrán seleccionar los parámetros configurados como Entrada o
Entrada/Salida y de tipo “Número”. Sin embargo, si el parámetro de
entrada del método es de tipo “Texto”, se podrán seleccionar todos
los parámetros configurados como Entrada o Entrada/Salida sin
importar el tipo, ya que un valor de cualquier tipo se puede
convertir en texto. Análogamente, si el parámetro del método es de
salida y tipo “Número”, aparecerán todos aquellos parámetros
configurados como Salida o Entrada/Salida sin importar su tipo
(Figura
143). Seleccione, de la
lista, el parámetro de la integración que desee asociar al
parámetro del método y ambos quedarán asociados.
Figura 143 Método con
sus parámetros
Ejemplo
(Figura
144): una integración
invoca un método de un web service, GetProductName, que
recibe como parámetro un número entero, productId, y devuelve un
texto.
Para la
integración se definen dos parámetros, ID, de tipo “Número” y de
entrada, y Resultado, de tipo “Texto” y de salida. ID sólo se puede
asociar al parámetro productId del método. No se puede asociar al
resultado del método porque éste es un texto, mientras que ID es un
número. Además, ID es un parámetro de entrada, por lo que, aun
cuando el resultado del método fuera un número, no sería posible
asociarlos. Lo mismo pasa con Resultado, que sólo se puede asociar
al resultado del método.
Para
quitar un método, selecciónelo y haga clic en el botón de eliminar
método (Figura
143).
Figura 144 Integración
con dos parámetros, y cómo se los asocia con los parámetros de un
método
Una vez
especificados los métodos con sus parámetros, vuelva a hacer clic
en el botón de siguiente.
Q-flow generará el código para llamar el método y guardar el
resultado en los parámetros de salida. Haga clic en el botón de
aceptar para guardar la operación.
Una vez
creada una operación, puede acceder al código generado mediante el
botón de editar (Figura
145).
Figura 145 Código
generado para una operación
Cuando se
agrega una operación a una integración, Q-flow genera el código que
ejecutará para invocar la operación. Este código se puede ver y
modificar. El código se muestra en el editor de código, que también
se usa al editar manejadores de eventos, tareas de códigos y
validaciones. El botón de compilar permite compilar el código. Si
hay errores, se muestran en la solapa “Error”. En algunos casos,
como por ejemplo en las tareas de código, es posible ejecutar el
código con un botón de “Ejecutar”. Tenga cuidado al usarlo: si, por ejemplo, el
código modifica una base de datos, al ejecutarlo desde el editor,
la base de datos puede ser modificada como si el código se
estuviese ejecutando desde un proceso. En el caso de las
integraciones esta opción no es posible.
Notar que
tanto el botón de Compilar como el de Ejecutar sólo aparecen en una
instalación local; en una instalación en la nube no los encontrará
en el editor.
Figura 146 Editor de código
Los
parámetros de aplicación son entidades que permiten separar datos
de configuración de las entidades que los utilizan. Por ejemplo,
puede suceder que muchas plantillas de proceso utilicen el mismo
servicio web desde tareas de servicio. Resulta incómodo tener que
especificar en cada una de las tareas la Url del servicio. Además,
si ésta cambia, hay que modificar todas las tareas. Por eso es más
conveniente que ese dato se guarde en un lugar solo, y que para
cada tarea de web service, en lugar de especificarse la Url del web
service, se especifique dónde está guardado ese dato.
De la
misma forma, puede haber varias integraciones distintas que usan el
mismo web service (cada una invocando una operación distinta, por
ejemplo). En ese caso también es preferible almacenar la
información del web service en un solo lugar del cual todas las
integraciones obtienen los datos de conexión. Los parámetros de
aplicación permiten guardar datos como esos, y utilizarlos en pasos
de web service, en pasos de datos, en integraciones, y como
etiquetas o parámetros en otros pasos.
El
formulario de edición de un parámetro de aplicación permite, además
de modificar su nombre y su descripción, definir el tipo del
parámetro y asignarle un valor. Los tipos de parámetro
son:
·
Contraseña:
el valor del parámetro es un
texto que se guarda cifrado en base de datos.
·
Texto:
el valor del parámetro es un
texto.
·
Conexión a base de
datos: el parámetro
tiene todos los datos necesarios para conectarse a una base de
datos.
·
Conexión a web
service: el
parámetro tiene todos los datos necesarios para conectarse a un web
service (ya sea SOAP o REST).
·
Conexión a
SharePoint: el
parámetro tiene los datos necesarios para conectarse a una lista de
SharePoint.
Para
asignarle un valor al parámetro, como por ejemplo su valor o los
datos de conexión a una base de datos, haga clic en el botón de
configurar (Figura
147). Para configurar un
parámetro de aplicación de tipo “Contraseña” o “Texto”, simplemente
se ingresa la contraseña o el texto del parámetro (en el caso de la
contraseña, se la ingresa dos veces).
Figura 147 Propiedades
de un parámetro
La
configuración de conexiones a bases de datos, web services y
SharePoint se explica a continuación.
Las
propiedades de una conexión a una base de datos (Figura 148) son las siguientes:
·
Tipo de
proveedor: proveedor
de acceso a la base de datos (por ejemplo, proveedor de SQL, OleDb,
ODBC, Oracle). Depende del tipo de base de datos para el cual se
está definiendo una conexión.
·
Servidor:
nombre del servidor donde se
encuentra la base de datos.
·
Seguridad
integrada: Esta
opción es para bases de datos SQL Server. Si esta opción está
marcada, la conexión se hace utilizando seguridad integrada. De lo
contrario, Q-flow habilita las propiedades “Usuario” y “Contraseña”
para ingresar el nombre de usuario de la base de datos y la
contraseña correspondiente.
·
Parámetros
adicionales: es una
grilla en la que se pueden agregar parámetros a la cadena de
conexión. La grilla tiene dos columnas, una para el nombre del
parámetro y otra para el valor. Por ejemplo, si se quiere
especificar un timeout de 60 segundos para la conexión a una base
SQL Server, se puede agregar un parámetro adicional con nombre
“Connection Timeout” y valor “60”.
·
Probar conexión:
haga clic en este botón para
comprobar que los datos ingresados son correctos. Si los datos son
correctos, podrá elegir un valor para la propiedad “Base de
datos”.
·
Base de datos:
la base de datos a la cual
desea conectarse.
Figura 148 Configuración de una conexión a una base de
datos
Las
propiedades de una conexión a web service (Figura 149) son las siguientes:
·
Url: la URL del web service (puede ser SOAP o
REST).
·
Credenciales de
red: deje marcada
esta opción si desea utilizar las credenciales del usuario cuya
cuenta utilizan los servicios de Q-flow. Si desea utilizar otras
credenciales, desmarque esta opción e ingrese el nombre de usuario
y la contraseña que desee utilizar.
·
Probar
conexión:si hace
clic en este botón, podrá verificar si la URL y las credenciales
ingresadas son correctas. Si lo son, Q-flow abrirá la página del
web service en una nueva solapa del navegador.
Figura 149 Configuración de conexión a web service
Las
propiedades de una conexión a SharePoint (Figura 150) son las siguientes:
·
URL del sitio:
la URL del sitio de SharePoint
en que está la lista de SharePoint a la que desea
acceder.
·
Credenciales de
red: marque la
opción si desea usar la cuenta de los servicios de Q-flow para
conectarse a SharePoint, o de lo contrario desmárquela e ingrese
nombre de usuario y contraseña. Utilice el botón “Probar conexión”
para comprobar que puede acceder al sitio del SharePoint
especificado mediante las credenciales que indicó. Si la prueba es
exitosa, podrá seleccionar la lista de SharePoint.
·
Lista:
este campo se habilita una vez
que haya probado que los datos anteriores son correctos, mediante
el botón de probar conexión. Seleccione aquí la lista de SharePoint
a la que desee acceder.
Figura 150 Configuración de conexión a una lista de
SharePoint
Un
parámetro se puede utilizar en varios contextos en los cuales es
necesario especificar el tipo de información que se guarda en un
parámetro de aplicación. En un paso de web service, por ejemplo, es
necesario especificar la URL del web service. El usuario puede
optar por especificar la URL en las propiedades del propio paso
(“Definir en la configuración del paso”) o utilizar un parámetro de
aplicación. Los parámetros de aplicación se pueden utilizar también
en integraciones. Un parámetro de aplicación de tipo “Texto” se
puede utilizar como etiqueta (consulte la sección
“Etiquetas”). Un
parámetro de aplicación de este tipo también se puede asociar a
parámetros de bots y de integraciones en pasos de bot y de
integración respectivamente. Además, estos parámetros están
disponibles en el código que se escribe en actividades de código o
en assemblies de tipo Q-flow (que contienen clases derivadas
de CodeScriptBase; ver el manual de la referencia de
scripting).
Q-flow
permite sustituir los formularios que aparecen en el sitio web por
formularios personalizados. Q-flow no posee una herramienta que
permita diseñar estos formularios, pero se puede utilizar otra
herramienta para diseñarlos (se recomienda Visual Studio) y luego
incluirlos en uno de los dos sitios de Q-flow.
Este
manual no explica cómo desarrollar los formularios personalizados,
sino que explica solamente cómo asociar esos formularios a los
procesos, mediante la creación y configuración de los ítems de tipo
“Formulario personalizado”. Por información sobre cómo desarrollar
formularios personalizados, consulte los dos manuales sobre el
asunto. Q-flow incluye dos sitios para trabajar con procesos, con
dos tecnologías distintas:
·
Sitio Web Forms
·
Sitio MVC
Hay tres
tipos de formularios en Q-flow, y, en consecuencia, tres tipos de
formularios personalizados:
·
Formularios de
inicio: son los
formularios que aparecen cuando un usuario hace clic sobre una
plantilla de proceso para iniciar un proceso. Permiten cargar su
nombre y descripción, pudiendo permitir cargar valores de datos de
aplicación, roles y archivos adjuntos.
·
Formularios de
respuesta: son los
formularios que permiten responder una tarea de Q-flow.
·
Formularios de los
procesos: son los
formularios que muestran información propia del proceso, y no de
alguno de sus pasos. Hay dos tipos:
o
Formularios del
proceso: muestran
datos del proceso, pero nunca permiten modificarlos. Son los
formularios que aparecen cuando un usuario hace clic sobre un
proceso. Muestran información de un proceso.
- Formularios de edición del proceso: muestran datos del proceso, y permiten
modificarlos. En un formulario de edición del proceso se puede
modificar, por ejemplo, su nombre. También es posible modificar
datos, roles y archivos adjuntos, si el alcance definido lo
permite.
Los
formularios estándar muestran agrupados por grupo los datos de
aplicación (ver “Datos
de aplicación”). Para el
caso del sitio Web Forms, Q-flow incluye además tres formularios
que funcionan como formularios personalizados y que tienen la misma
apariencia que los formularios estándar, salvo porque muestran los
datos de aplicación sin agrupar. Lo mismo se puede conseguir en el
sitio MVC si se definen los datos de aplicación sin un grupo.
La Figura 151
y la Figura 152 muestran la diferencia entre un caso y el otro. En las dos
se muestran los mismos cuatro datos. Dos de estos datos pertenecen
a un grupo llamado “Datos profesionales” y los otros dos a uno
llamado “Persona”. En el primer caso (Figura 151), los datos aparecen agrupados en cuadros diferentes, y se
indica, para cada cuadro, el nombre del grupo al que corresponde.
En el otro (Figura
152), los datos se
muestran todos en un mismo formulario titulado “Datos de
aplicación”.
Figura 151 Datos de
aplicación en un formulario estándar
Figura 152 Datos de
aplicación en un formulario que no agrupa
El
formulario básico de propiedades de un formulario personalizado
muestra las siguientes propiedades:
Figura 153 Sección General de formularios personalizados
·
Usar MVC:
esta opción indica que el
formulario es un formulario MVC, desarrollado para ser utilizado
desde el sitio MVC. Para especificar un formulario para el sitio
Web Forms de Q-flow, marque la opción “Usar Web Forms”, que aparece
si se expande el formulario. Las propiedades de formularios que
usan MVC son las siguientes:
o
Es área:
indica que el formulario es un
área portable, que es uno de los tipos de formularios
personalizados MVC de Q-flow. El otro tipo es “vista”.
§ Propiedades de formularios de tipo
Vista:
·
Vista:
nombre de la vista a utilizar.
Formularios de tipo vista utilizan el área predeterminada
(“CustomForms”) y un controlador predeterminado (“Flow”), por lo
que para estos formularios no se necesita especificar más
nada.
§ Propiedades de formularios de tipo
área:
·
Área: nombre del área que se debe
utilizar.
·
Controlador:nombre del controlador.
·
Acción:
nombre de la acción.
·
Usar Web
Forms:esta opción
sólo aparece si en el archivo de Web.config de BPM el value de
“ShowWebFormsProperties” es “true” y sólo se muestra al expandir el
formulario de propiedades.
o
Url: escriba la URL relativa (con respecto a la
URL básica del sitio Web Forms de Q-flow) de la página ASPX que
contiene el formulario. Los formularios provistos por Q-flow están
en la carpeta CustomForms del sitio Web Forms (los archivos
correspondientes tienen el sufijo “Default”). Puede tomarlos como
ejemplo, pero no los modifique, pues pondría en riesgo el
funcionamiento de los procesos que usan esos formularios (todos los
procesos que no usan formularios personalizados).
·
Es aplicable a:
esta opción permite indicar
para qué tipos de formulario se puede usar este formulario
personalizado. Los tipos de formulario están explicados al comienzo
de esta sección.
Para
asignar un formulario personalizado a un elemento del diseño, ya
sea un evento de inicio, una tarea de usuario o una tarea de
notificación a un usuario, haga doble clic en el elemento para
abrir su formulario de propiedades. A continuación, haga clic en el
botón de expandir el formulario para que aparezca la sección
“Formulario personalizado”. Seleccione allí el formulario que desee
(Figura
154). Sólo aquellos
formularios cuyo tipo aplique a ese elemento aparecerán.
Figura 154 Selección de
formulario
Para
especificar un formulario personalizado como formulario del
proceso, haga clic con el botón derecho en la versión en la que se
basan los procesos que lo deben usar y en el menú seleccione
“Formularios del proceso”, “Formulario del proceso”. Q-flow muestra
un formulario con una sección, “Formulario personalizado”, donde
puede seleccionar el formulario que desee (siempre que su tipo
aplique).
Para
especificar un formulario personalizado como formulario de edición
del proceso, haga lo mismo, pero seleccionando en el menú
“Formularios del proceso”, “Formulario de edición del
proceso”.
Figura 155 Asignar el formulario del proceso
El diseño
de formularios personalizados es una tarea de mayor complejidad
técnica, que requiere conocimientos de ASP.NET MVC o Web Forms,
dependiendo de cuál es el sitio de Q-flow en el que se va a usar el
formulario. Los manuales de diseño de formularios personalizados
MVC y Web Forms tienen información útil para quienes tengan que
desarrollar esos formularios.
Los
manejadores de eventos son pequeños programas que Q-flow ejecuta en
su contexto (tienen acceso a los datos del proceso) cuando ocurre
un determinado evento durante la ejecución de un proceso. Los
eventos que pueden disparar la ejecución de manejadores están
predefinidos. Definir un manejador consiste principalmente en
definir su código. Más tarde se lo asocia a algún evento, de modo
que cuando éste ocurre, se ejecuta el código del
manejador.
El
formulario de propiedades de un manejador de evento tiene las
siguientes secciones:
·
General:
nombre y descripción
·
Información del manejador
(aparece al expandir el formulario): permite definir el código del manejador y
determinar si es síncrono o asíncrono. Las propiedades de esta
sección se explican abajo.
·
Tipo de manejador:
-
- Síncrono: el
manejador se ejecuta de forma tal que el proceso lo espera y no
continúa hasta que la ejecución del manejador termine. El manejador
puede modificar datos del proceso.
- Asíncrono: el manejador se ejecuta de forma tal que el proceso no
espera que su ejecución termine. El manejador no puede modificar
datos del proceso.
- Orden: es un
número útil cuando hay más de un manejador asociado a un evento. En
ese caso, los manejadores se ejecutan en orden creciente usando ese
número. Por ejemplo, si hay tres manejadores para el mismo evento,
Q-flow ejecuta primero aquel cuyo valor para esta propiedad sea 0,
luego el que tenga como valor 1 y por último el que tenga como
valor 2.
- Usar integración: si se marca esta opción, el manejador utiliza el código de
una integración que ya está definida, en lugar de utilizar código
escrito específicamente para el manejador. Cuando esta opción está
marcada, la pantalla cambia para que se puede seleccionar una
integración y desaparecen las opciones que permiten escribir el
código del manejador (Figura 156). La
parte inferior de la pantalla cambia para mostrar los parámetros de
la integración, de modo que se pueda asociar datos de aplicación
con ellos, de la misma forma que en una tarea de servicio (ver
“Tarea de
servicio”).
-
- Propiedades si se usa una integración:
-
- Integración: lista para seleccionar la integración que contiene el
código que se desea asignar al manejador.
- Parámetros: especificación de la correspondencia entre datos de
aplicación y parámetros de la integración. Consulte
“Integraciones”
por detalles.
- Propiedades si no se usa una integración:
-
- Lenguaje: permite especificar el lenguaje de programación en el que
se escribirá el código del manejador. Las opciones son C# y Visual
Basic .NET.
- Código: debajo de las opciones de lenguaje aparece un área de texto
que permite escribir el código del manejador en el lenguaje
seleccionado.
Figura 156 Propiedades
de un manejador de eventos
Para que
Q-flow ejecute un manejador de evento, hay que asociarlo a un
evento de modo que cuando éste ocurra, Q-flow ejecute el código del
manejador.
Hay dos
tipos de eventos:
·
Eventos del proceso: estos eventos no están asociados a ningún paso en
particular.
- Eventos de los elementos del diseño: son eventos que están asociados a
elementos del diseño.
Para
asociar un manejador de eventos a un elemento del diseño,
seleccione el elemento y haga clic en el ícono de propiedades para
que Q-flow muestre el formulario de propiedades del elemento. A
continuación, expanda el formulario de propiedades para que
aparezca la sección “Eventos manejados”. Esa sección contiene una
lista de los eventos a los que se puede asignar el
manejador:
- Error en paso: ocurre cuando se produce un error durante la
ejecución del paso.
·
Finalizar
paso:ocurre cuando
el paso termina su ejecución.
·
Iniciar
paso:ocurre cuando
comienza la ejecución del paso.
·
Novedades en
paso: ocurre cuando
hay novedades en el paso. Por ejemplo, en el caso de un paso de
pregunta, cuando un destinatario contesta la pregunta. Nótese que
el hecho de que haya novedades en un paso no implica necesariamente
que el proceso o el hilo cambien de estado. Por ejemplo, si un paso
de pregunta tiene varios destinatarios y el proceso espera que
cinco de ellos contesten antes de continuar, el proceso no
abandonará el estado de espera hasta que cinco destinatarios
contesten, pero cuando el primero en contestar lo haga, estará
generando una novedad en el paso.
Para
asignar el manejador a un evento, seleccione el evento y haga clic
en el botón de modificar. En el formulario de propiedades del
evento, seleccione el manejador y haga clic en el botón de
“Seleccione”.
Figura 157 Asociar un manejador a un evento de un elemento del
diseño
Para
asociar un manejador de eventos a un evento del proceso, haga clic
con el botón derecho en la versión a la que pertenecen los procesos
que desee que utilicen el manejador y seleccione “Manejadores de
eventos” en el menú. Esto muestra una lista con los eventos del
proceso. Marque el evento al cual desee asociar el manejador,
después haga clic en el botón de editar, o doble clic en la fila
correspondiente. Aparece entonces una lista de manejadores, marque
el manejador deseado y haga clic en “Seleccione”.
Los
eventos del proceso son los siguientes:
·
Cambio de estado de
hilo: ocurre cuando
un hilo cambia de estado. Por ejemplo, si un hilo estaba esperando
que alguien ejecutara una tarea, y esa persona contesta la tarea,
el hilo pasa de estar en espera a estar ejecutándose.
·
Cambio de estado del
proceso: ocurre
cuando el proceso cambia de estado. Por ejemplo, si el proceso
llega a un paso de tarea, hay un cambio de estado, pues el proceso
adopta un estado en el que espera por la finalización o cancelación
de esa tarea.
·
Error en
hilo:ocurre cuando
se produce un error durante la ejecución de un hilo.
·
Etapa en
tiempo:ocurre cuando
la etapa actual del proceso supera el tiempo definido como
esperado. Por más información de las etapas consultar la sección
“Etapas”.
·
Etapa
retrasada:ocurre
cuando la etapa actual del proceso supera el tiempo máximo
definido.
·
Finalizar
proceso: ocurre
cuando Q-flow finaliza el proceso.
·
Finalizar
hilo:ocurre cuando
Q-flow finaliza un hilo.
·
Hilo en
espera:ocurre cuando
un hilo finaliza y espera la finalización de sus hilos
hermanos.
·
Iniciar
proceso:ocurre
cuando Q-flow inicia el proceso.
·
Iniciar
hilo:ocurre cuando
Q-flow inicia la ejecución de un nuevo hilo.
·
Separación de
hilo: ocurre cuando
un hilo se divide en varios hilos. Esto ocurre cuando un hilo llega
a una compuerta paralela divergente o a una compuerta inclusiva
divergente que inicia varios hilos.
·
Unión de
hilos:ocurre cuando
dos o más hilos se unen. Esto ocurre cuando el proceso llega a una
compuerta paralela convergente o a una compuerta inclusiva
convergente que une varios hilos.
Figura 158 Asignar un manejador a un evento del proceso (en este caso,
el manejador “Enviar alerta” se asigna al evento “Etapa
retrasada”).
Los
worklets son conjuntos de elementos de un diseño y conexiones entre
ellos. Estos conjuntos pueden ser utilizados en varios diseños como
si fueran una unidad. Un worklet tiene un diseño propio, pero no es
independiente, sino que debe ser usado dentro de un
diseño.
Actualmente, el diseñador web de procesos del negocio no
permite agregar worklets ni ver su contenido, aunque sí permite ver
la lista de worklets de un paquete. Si necesita trabajar con
worklets, utilice el diseñador de procesos de negocio de escritorio
(la versión clásica de la herramienta).
Las
validaciones son pequeños programas que se definen para ejecutar
operaciones en los formularios de los procesos. Para desarrollar
validaciones es necesario poseer conocimientos de scripting del
lado del cliente (Javascript). Hay dos tipos de
validaciones:
·
Las que se ejecutan cuando
Q-flow carga un formulario en la pantalla. Estas validaciones
permiten modificar el estado de los datos del formulario antes de
que el usuario pueda modificarlos. Para ello, se puede implementar
el método formLoad().
·
Las que se ejecutan cuando el
usuario hace clic en el botón de respuesta del formulario (el botón
que inicia el proceso en el caso de los formularios de inicio; el
botón que responde la tarea en el caso de los formularios de
respuesta; el botón “Guardar” en un formulario de edición del
proceso). Estas validaciones pueden ser utilizadas para verificar
los datos y emitir una alerta cuando éstos no son válidos,
impidiendo así que el usuario cometa errores que perjudiquen el
correcto funcionamiento del proceso. Para ello, se puede
implementar el método formSubmit().
Al igual
que los formularios personalizados, las validaciones son definidas
en un paquete, plantilla de proceso o versión y después son
asociadas a los formularios en los que se desea utilizar. Una
validación puede ser utilizada en varios formularios de varios
procesos diferentes. Una validación se puede asociar a un
formulario de cualquier tipo (formulario de inicio, formulario de
respuesta a tarea de usuario, formulario del proceso y formulario
de edición del proceso).
El
formulario de propiedades de una validación tiene las siguientes
propiedades que se pueden modificar:
·
Nombre
·
Descripción
·
Debajo de la descripción hay un
área de texto para escribir el código de la validación.
En
versiones anteriores de Q-flow, se permitía elegir el lenguaje de
programación de la validación, siendo las opciones JavaScript y
VBScript. Sin embargo, VBScript se considera obsoleto. Por este
motivo, la posibilidad de elegir el lenguaje sólo se muestra si el
código existente ya es de tipo VBScript. De lo contrario, el
lenguaje usado será JavaScript, sin opción de cambiar.
Figura 159 Propiedades de una validación
Para
asociar una validación a un elemento del diseño de un proceso, haga
doble clic en el elemento para abrir su formulario de propiedades
(el elemento puede ser un evento de inicio, para asociar la
validación al formulario de inicio, una tarea de usuario o una
tarea de notificación a un usuario). Después, expanda el formulario
de propiedades (la Figura 160 muestra con qué botón se expande el formulario). En la
sección “Validaciones”, marque las validaciones que desee asociar
al elemento seleccionado.
Para
asociar una validación al formulario del proceso o al formulario de
edición del proceso, abra las propiedades del formulario, haciendo
clic con el botón derecho en la versión y seleccionando
“Formularios del proceso”, “Formulario del proceso” o “Formulario
de edición del proceso”. Esto abre la ventana de propiedades del
formulario seleccionado. En la sección “Validaciones”, marque las
validaciones que desee asociar al elemento seleccionado.
Figura 160 Selección de
validaciones presentes en un formulario
Un bot es
un programa informático que realiza tareas que le son asignadas por
procesos, con los cuales se comunica asíncronamente. En general,
las tareas que son procesadas por bots son tareas que utilizan
muchos recursos de hardware (memoria, procesador), y que por eso
deben ser realizadas por un proceso separado de los procesos que
ejecutan los servicios de Q-flow. Un bot puede incluso funcionar en
un servidor diferente al que alberga los servicios de Q-flow. Los
bots no están pensados para tareas sencillas, que se ejecutan en
unos pocos segundos y pueden ejecutarse en actividades de servicio
o de código.
La
interacción entre un proceso y un bot se da de la siguiente
forma:
1.
Un proceso crea una tarea para
el bot mediante una tarea de servicio asíncrono. La creación de la
tarea consiste en almacenar en una cola la información de la tarea.
Esa información incluye los parámetros de la tarea e indicaciones
de cuál es el bot que debe ejecutarla. Estas indicaciones son lo
que se define en el diseñador web de procesos del
negocio.
2.
El bot verifica si tiene tareas
pendientes y al hacerlo, encuentra la nueva tarea e intenta
procesarla. El bot es un servicio, o al menos un proceso que
verifica periódicamente si tiene nuevas tareas en la cola. Para
ello, utiliza el web service WebBot, que provee métodos para
acceder a la cola y obtener los datos de las tareas pendientes para
procesarlas. También le provee métodos para abortar una tarea o
indicar que la tarea ya fue completada. Como la funcionalidad de
obtener tareas y actualizarlas es provista por un web service, el
bot puede estar en un servidor distinto al de los servicios de
Q-flow.
El
formulario de propiedades de un bot tiene las siguientes
secciones:
·
General:
permite ingresar una
descripción y, en la propiedad “Ejecutable por”, el nombre del
usuario cuyas credenciales se usarán para ejecutar el bot e invocar
el web service WebBot.
·
Parámetros:permite definir los parámetros del bot. Los parámetros del
bot se definen de la misma forma que los parámetros de una
integración. Consulte “Parámetros de aplicación” por instrucciones.
·
Notificación:
Figura 161 Sección Notificación de bots
o
No notificar:
si se selecciona esta opción,
Q-flow no notificará al bot cuando le asigne un nuevo trabajo. El
bot deberá consultar el web service WebBot periódicamente para
averiguar si tiene trabajo pendiente.
o
Notificar a cola de
mensajes: en este
caso, Q-flow notificará al bot que tiene un nuevo trabajo pendiente
mediante una cola de mensajes. El bot, en este caso, no debe
consultar periódicamente el web service WebBot, sino que debe
suscribirse a una cola de mensajes de MSMQ e implementar un
manejador para el evento que se disparará cuando haya un nuevo
trabajo. Si selecciona esta opción, debe especificar la ruta de la
cola de mensajes que será utilizada.
·
Vencimiento:
permite definir un plazo para
que el bot procese la tarea. Una vez vencido el plazo, si el bot no
ha terminado de procesar la tarea, el proceso continuará su
ejecución a través del conector de vencimiento de la tarea de
servicio asíncrono en el que se le había asignado el trabajo al
bot. Si la tarea de servicio asíncrono no tiene definido un paso
siguiente a través del conector de vencimiento, quedará en estado
de error. Consulte la sección “Temporización”
por instrucciones sobre cómo definir vencimientos.
Figura 162 Propiedades de un Bot
Esta
sección describe en detalle las propiedades de cada uno de los
elementos que pueden ser parte de un diseño. Las primeras secciones
son sobre aspectos comunes a varios pasos. Por ejemplo, tanto una
tarea de usuario como una tarea de notificación requieren la
selección de uno o más destinatarios.
Hay
propiedades que son comunes en todos los elementos que se pueden
agregar al diseño de un proceso: el nombre del elemento y su
descripción.
El nombre
aparece siempre en la parte superior del formulario de propiedades
de un elemento, junto a los botones de aceptar, cancelar y expandir
o contraer formulario (Figura 163).
La
descripción aparece en la sección “General” del formulario de
propiedades. Esta sección suele incluir también las siguientes
propiedades, disponibles en general en actividades y eventos (hay
excepciones), pero no en compuertas:
·
Progreso:porcentaje del progreso del proceso. Por ejemplo, si se
considera que haber terminado una determinada tarea de usuario
significa que ya se ejecutó la mitad del proceso, se puede poner
“50” como valor de esta propiedad en esa tarea de
usuario.
·
Bandera al
inicio: la bandera
del proceso es un texto a elección de quien diseña el proceso.
Cuando el proceso llega a un elemento que tiene un valor para la
bandera de inicio, la bandera del proceso cambia al valor indicado
allí. La bandera, entonces, es una forma de indicar el estado del
proceso. Cuando se ven los datos del proceso en el sitio web, uno
de los datos que aparecen es la bandera.
·
Bandera al
finalizar: valor que
tomará la bandera del proceso cuando la ejecución del elemento
termine. Eventos intermedios tienen una propiedad llamada
“Bandera”, que funciona tanto como “Bandera al inicio” como
“Bandera al finalizar” (es decir, estos eventos modifican la
bandera solamente una vez).
·
Importancia del
proceso: “Baja”,
“Media” o “Alta”. No incide en el desarrollo del proceso, pero se
muestra en el sitio web.
·
Ayuda en el
formulario: mensajes
en el formulario que pueden ser de utilidad para quien lo está
completando. La configuración se hace con un cuadro de texto
enriquecido, por lo que es posible darle formato al
mensaje.
Figura 163 Propiedades
generales de un paso
Para
algunos elementos de un diseño se pueden definir vencimientos. Por
ejemplo, las tareas de usuario tienen opciones para controlar
plazos y prevenir o mitigar atrasos mediante alertas, recordatorios
y delegaciones (llamados colectivamente “acciones”) que se disparan
cuando se vence un plazo. Otro ejemplo es el evento de
temporización, que detiene un hilo del proceso en espera de que se
venza un plazo. Esta sección describe cómo definir la temporización
de cualquier elemento que la utilice. Los formularios de
propiedades de estos elementos suelen tener una sección con las
siguientes propiedades:
·
Usar calendario:
cuando Q-flow calcula un
vencimiento, utiliza un calendario que define los horarios de
trabajo y los días hábiles para tener en cuenta, por ejemplo,
feriados y fines de semana. Q-flow puede manejar más de un
calendario. Esta opción permite especificar el calendario que se
desea utilizar para el cálculo (si no se especifica ninguno, se usa
el calendario por defecto). Por más detalles sobre los calendarios,
consulte el manual del administrador del modelo
organizacional.
·
Información de
tiempo: en esta
propiedad se especifica el vencimiento, que se puede definir de
cuatro formas:
o
Fecha
fija:permite
especificar una fecha.
o
Fecha
variable:permite
utilizar el valor de un dato de aplicación de tipo Fecha o
FechaHora. Q-flow ejecutará la acción en la fecha indicada por el
valor del dato de aplicación. Para poder elegir esta opción, debe
tener definido un dato de tipo Fecha o FechaHora.
o
Tiempo
fijo:permite indicar
un intervalo de tiempo en segundos, minutos, horas o días. Q-flow
ejecutará la acción una vez transcurrido ese intervalo, a partir
del momento en el que el proceso fue iniciado. Los días y horas no
laborables no cuentan a efectos de realizar el cálculo.
o
Tiempo
variable:esta opción
es similar a la anterior, pero permite utilizar el valor de un dato
de aplicación de tipo Número para indicar el valor del intervalo.
Este valor puede ser interpretado como expresado en segundos,
minutos, horas o días. Para poder elegir esta opción, debe tener
definido un dato de tipo Número. Los días y horas no laborables, de
acuerdo con el calendario utilizado, no cuentan a efectos de
realizar el cálculo.
Figura 164 Temporización
Q-flow
permite definir qué datos de aplicación, roles del proceso y
archivos adjuntos los usuarios pueden ver o modificar durante la
ejecución de un proceso y dónde pueden hacerlo. Lo mismo ocurre con
los comentarios, pero en este caso se pueden agregar o ver los
existentes.
Los puntos
de interacción entre usuarios y procesos son los formularios del
proceso.
·
Formulario de inicio del
proceso: es el
formulario que aparece al iniciar el proceso y está relacionado con
el evento de inicio.
·
Formularios de respuesta del
proceso: son los
formularios que los usuarios utilizan para responder a las tareas
de los procesos. Están asociados a tareas de usuario.
·
Formulario del
proceso: es el
formulario que aparece cuando alguien hace clic sobre un proceso
para examinar su información. Está asociado al proceso y no permite
modificar los datos.
- Formulario de edición del proceso: es un formulario similar al formulario del
proceso, pero que permite modificar datos.
Para
definir el nivel de acceso a la información del proceso, hay que
definirlo para cada uno de estos formularios y en el caso de los
formularios de respuesta, para cada una de las tareas de usuario.
No es necesario definir el acceso a la información en aquellos
formularios donde no se desee que estén disponibles datos, roles,
archivos adjuntos o comentarios, puesto que, por defecto, éstos no
están presentes en el formulario de respuesta.
El
formulario de inicio del proceso está asociado al evento de inicio,
puesto que aparece cuando se está iniciando el proceso. Para
modificar el nivel de acceso a la información del proceso durante
su inicio, abra el formulario de propiedades del evento de inicio y
busque la sección “Alcance”. Allí podrá especificar qué datos y
roles están presentes y se muestran en el formulario, y cuáles
pueden ser modificados por el usuario. También están las opciones
de alcance de adjuntos y comentarios. Más adelante se explican
estas opciones en detalle.
El caso de
los formularios de respuesta es similar. Los formularios de
respuesta de Q-flow están asociados a las tareas de usuario, puesto
que aparecen cuando un usuario desea responder a una tarea asignada
a él. Para modificar el alcance en una tarea de usuario, se procede
de la misma forma que con un evento de inicio.
Para
modificar el nivel de acceso en el formulario del proceso, acceda a
la ventana de propiedades del formulario del proceso haciendo clic
con el botón derecho en la versión y seleccionando la opción
“Formularios del proceso”, “Formulario del proceso”. Esa ventana
tiene una sección “Alcance”. Haga lo mismo para modificar el
alcance en el formulario de edición del proceso, pero seleccionando
“Formularios del proceso”, “Formulario de edición del
proceso”.
El alcance
de los datos de aplicación se modifica mediante una tabla
(Figura
165) que muestra la
lista de datos de aplicación. Se visualizarán todos los datos de
aplicación si todos ellos tienen el alcance “Ausente”, quedando
marcada automáticamente la opción “Mostrar datos con alcance
ausente”, de lo contrario se mostrarán los datos que tengan un
alcance distinto a “Ausente”, quedando la opción “Mostrar datos con
alcance ausente” desmarcada. Esto es útil, ya que podrían existir
un gran conjunto de datos no relevantes para el formulario,
típicamente con alcance “Ausente”.
Figura 165 Alcance de
datos
Para
modificar el alcance de un dato, selecciónelo y haga clic en uno de
los botones que aparecen arriba de la tabla (la Figura 166 muestra qué botón corresponde a qué alcance; para
verlo en la propia pantalla del sitio, posicione el cursor del
ratón sobre el botón). Se pueden seleccionar varios datos
simultáneamente. Los alcances posibles son:
Figura 166 Botones de alcance con sus significados
·
Requerido:
el usuario puede ver y
modificar el valor del dato, y además, si el dato no tiene un
valor, está obligado a ingresar uno (no podrá iniciar el proceso,
si está en el formulario de inicio, ni podrá responder la tarea, si
está en un formulario de respuesta, si no le provee un valor al
dato).
·
Editable:
el usuario puede ver y
modificar el valor del dato.
·
Sólo lectura
Editable: el usuario
puede ver el valor del dato, pero no puede modificarlo. Scripts de
la página sí pueden modificar el dato, y estos cambios se
guardan.
·
Sólo lectura:
el usuario puede ver el valor
del dato, pero no puede modificarlo. Si un script modifica el dato
en la pantalla, los cambios no se guardan.
·
Oculto
Editable:el usuario
no puede ver el valor del dato, pero el dato está presente en el
formulario, aunque invisible y si un script lo modifica, el cambio
se guarda.
·
Oculto:
el usuario no puede ver el
valor del dato. Si un script modifica el valor del dato, los
cambios no se guardan.
·
Ausente:
el dato no está en el
formulario. No se muestra ni puede ser accedido por un script. Es
como si no existiera.
Si un dato
acepta múltiples valores y tiene un alcance que permite su edición
(requerido, editable, sólo lectura editable u oculto editable), se
habilita el último botón (“Instancias”, ver Figura 166), que permite modificar propiedades del alcance
específicas de esos datos (Figura 167):
·
Permitir la
adición: especifica
si está permitido agregar nuevas instancias al dato o nuevas líneas
al bloque de líneas, si el dato pertenece a uno.
·
Permitir la
eliminación: especifica si está permitido eliminar instancias del dato o
líneas del bloque, si el dato pertenece a uno.
·
Número máximo de
instancias: especifica la cantidad máxima de instancias que puede tener
un dato o la cantidad máxima de líneas del bloque si el dato
pertenece a uno. Si el dato tiene esa cantidad de instancias, no se
permite agregar ninguna más, aunque se permita la
adición.
·
Número mínimo de
instancias: especifica la cantidad mínima de instancias que puede tener
un dato o la cantidad mínima de líneas del bloque si el dato
pertenece a uno. Si el dato tiene esa cantidad de instancias, no se
permite eliminar ninguna más, aunque se permita la
eliminación.
Si un dato
pertenece a un bloque de líneas, las propiedades del alcance que se
editen, aplicarán a todo el bloque de líneas. Por lo tanto, estas
propiedades pueden ser modificadas también a través de una grilla,
que aparece en la parte inferior de la pantalla. Esta grilla
aparece cuando, al menos uno de los datos que pertenece al bloque,
tiene un alcance que permite su edición (Figura 165, donde dice “Configuración de instancias de línea”; en la
figura, hay un bloque que se llama “Comentarios”). Para modificar
el número máximo o mínimo de instancias, haga clic en el número e
ingrese el valor deseado.
Figura 167 Opciones adicionales de alcance para datos que aceptan
múltiples valores
En
aquellos elementos que hacen uso de un formulario (evento de
inicio, tareas de usuario y la configuración de formularios del
proceso), el alcance de datos tiene una posibilidad adicional, que
es el ordenamiento de los grupos de los datos. Debajo de la sección
de instancias encontrará un checkbox que, al seleccionarlo, le
mostrará los grupos correspondientes a los datos que tengan un
alcance tal que se muestren en el formulario (Editable, Requerido,
Sólo Lectura, o Sólo Lectura Editable).
Figura 168 Ordenamiento de grupos
Puede
seleccionar el grupo que desee mover y luego hacer clic en las
flechas para moverlo hacia arriba o hacia abajo. También puede
arrastrar los grupos para ordenarlos. Este orden de grupos se verá
reflejado en el formulario de inicio. Aquellos datos que no tengan
grupo quedarán dentro del grupo de “Datos de aplicación”, el cual
no es ordenable.
Figura 169 Grupos ordenados
El alcance
de roles funciona de la misma forma que el alcance de
datos.
Las
opciones de alcance de adjuntos son las siguientes:
·
Accesibilidad:esta propiedad indica el nivel de acceso que los usuarios
tendrán a los archivos adjuntos. Las opciones posibles
son:
o
Ninguno:
Q-flow no muestra los archivos adjuntos en el
formulario.
o
Sólo
listar:Q-flow
muestra los archivos adjuntos, pero no permite abrirlos ni
modificarlos.
o
Sólo
lectura:Q-flow
muestra los archivos adjuntos y permite abrirlos.
o
Editor:
Q-flow muestra los archivos
adjuntos, permite abrirlos y modificarlos.
o
Total:
Q-flow muestra los archivos
adjuntos, permite abrirlos, modificarlos y borrarlos.
·
Permitir
adición:si esta
opción está marcada, los usuarios podrán agregar archivos adjuntos
en el formulario.
·
Límites:
o
Número máximo de archivos
adjuntos: indica el
número máximo de archivos adjuntos que puede tener el paso. Q-flow
no permitirá agregar adjuntos por encima de este valor, a menos que
éste sea 0, que significa que no hay un máximo.
o
Número mínimo de archivos
adjuntos: indica el
número mínimo de archivos adjuntos que puede tener el paso. Q-flow
no permitirá borrar archivos adjuntos cuando hacerlo implique que
la cantidad de adjuntos pase a ser inferior a este
valor.
·
Tamaño máximo de adjunto
(KB): permite
especificar el tamaño máximo, en kilobytes, que pueden tener los
adjuntos (la opción por defecto, 0, significa que no hay límite).
Si se especifica un valor, Q-flow no permitirá adjuntar archivos
con tamaño mayor al especificado.
- Mostrar solo: hace que Q-flow muestre sólo los archivos que cumplan con
alguna de las expresiones regulares ingresadas en esta propiedad.
Ver “Expresiones
regulares de los filtros de los adjuntos”.
- Editar solo: hace que Q-flow permita editar solamente los archivos que
cumplan con alguna de las expresiones regulares ingresadas en esta
propiedad. Ver “Expresiones regulares de los filtros de los
adjuntos”.
- Agregar solo: hace que Q-flow permita agregar solamente adjuntos que
cumplan con alguna de las expresiones regulares ingresadas en esta
propiedad. Ver “Expresiones regulares de los filtros de los
adjuntos”.
- Eliminar solo: hace que Q-flow permita eliminar solamente adjuntos que
cumplan con alguna de las expresiones regulares ingresadas en esta
propiedad. Ver “Expresiones regulares de los filtros de los
adjuntos”.
Figura 170 Alcance de adjuntos
Los
filtros de los adjuntos se especifican mediante expresiones
regulares similares a las que utiliza Windows para su sistema de
archivos, en las que el asterisco (“*”) sustituye cualquier
cantidad de caracteres. Ejemplo: la expresión “*.zip” significa
“todos los archivos con la extensión zip”.
Un filtro
puede usar varias expresiones separadas por “;” o por “|”. Por
ejemplo, si el filtro “Mostrar solo” tiene la expresión
“*.zip;*.rar;Licencia.pdf”, Q-flow mostrará solamente los archivos
con extensiones “zip”, “rar” y el archivo llamado
“Licencia.pdf”.
El
caracter “?” sustituye una ocurrencia de cualquier caracter.
Ejemplos: la expresión “*.???” representa cualquier archivo que
tenga una extensión de tres caracteres; la expresión
“documento?.doc” representa cualquier archivo cuyo nombre empiece
con “documento” y tenga un caracter adicional antes de la extensión
(“documento1.doc”, por ejemplo, pero no “documento12.doc” ni
“documento.doc”).
El
caracter “!” permite negar una expresión. Sólo se puede utilizar al
principio del filtro. Por ejemplo, si en el filtro “Mostrar solo”
se escribe la expresión “!*.exe;*.bat”, Q-flow mostrará solamente
los archivos que no tengan extensiones “bat” ni “exe”.
Los
formularios de Q-flow tienen la opción de agregar comentarios al
completarlos (en el caso de aquellos que no son de tipo sólo
lectura) y ver los comentarios existentes. Esto les permite a los
usuarios dar y obtener información extra sobre el proceso, que se
considere importante pero que no sea parte de los datos de éste.
Las opciones de alcance de estos comentarios son las
siguientes:
·
Permitir
adición:el usuario
puede agregar un comentario al formulario si lo desea.
·
Requerido:
el usuario está obligado a
ingresar un comentario; si no lo hace, no podrá completar el
formulario. Sólo se puede seleccionar esta opción si ya se ha
elegido “Permitir adición”.
·
Ver historial de
comentarios: el
usuario puede ver todos los comentarios que otros usuarios han
agregado. Notar que no tiene sentido permitir ver el historial de
comentarios en un formulario de inicio del proceso, pues aún no se
ha añadido ninguno.
Figura 171 Alcance de
comentarios
Si se
permite ver y agregar comentarios, al responder una tarea, por
ejemplo, se ve el formulario como en la Figura
172.
Figura 172 Formulario con
comentarios
Muchas
propiedades de los pasos de Q-flow permiten utilizar etiquetas.
Esto significa que los valores de estas propiedades no tienen que
ser determinados durante el diseño de un proceso, sino que Q-flow
los puede obtener de donde se le indique cuando los necesite
utilizar. Por ejemplo, es común incluir en los asuntos de las
tareas de usuarios el valor de algún dato de aplicación (como el
número de documento de un cliente o su nombre). En este caso, en
lugar de que la tarea diga algo así como “Atender la solicitud del
cliente”, puede decir “Atender la solicitud del cliente Juan Pérez,
CI 11111111”.
Las
propiedades para las cuales se puede usar etiquetas tienen un ícono
con una etiqueta al lado (Figura 173). Si
hace clic en este ícono, aparece una lista con los ítems que se
pueden seleccionar para la etiqueta. Si, al ver esta lista, usted
escribe, la lista se reducirá a los elementos que contengan el
texto que usted haya ingresado. También puede optar por mostrar en
la lista solamente ítems de algún tipo específico (sólo datos de
aplicación, por ejemplo). Para ello, haga clic en el ícono
correspondiente en la parte inferior de la lista
(Figura
173, abajo, donde dice
“Datos”, “Roles”, etc).
También se
puede ingresar una etiqueta sin hacer clic en el ícono de la
etiqueta, simplemente ingresando el símbolo “#” en la propiedad:
esto también hace aparecer la lista de ítems que se pueden usar
para la etiqueta.
Los tipos
de ítem que se pueden utilizar en etiquetas son:
·
Datos de
aplicación: se usa
el valor del dato.
·
Roles de plantilla de
proceso: se usa el
nombre del usuario que desempeña el rol.
·
Parámetros de aplicación de
tipo texto: se usa
el valor del parámetro.
·
Información del
proceso: por
ejemplo, el nombre del proceso, o su fecha de inicio.
·
Otros:
por ejemplo, la fecha
actual.
Figura 173 Etiquetas
Una
actividad representa una unidad de trabajo a realizar en el
proceso. Ésta puede ser una tarea, un proceso automático o un
subproceso.
Figura 174 Actividad de llamada
Una
actividad de llamada sirve para que un proceso inicie otro proceso,
al cual se le llama “proceso hijo” (del proceso que lo inició, se
dice que es su padre).
Cuando un
proceso llega a una actividad de llamada, inicia un proceso de la
plantilla indicada en la configuración de la actividad de llamada.
Una vez iniciado el proceso hijo, el proceso padre puede continuar
su ejecución sin esperar que finalice la ejecución del hijo, o
puede detenerse y esperar a que termine su ejecución para
continuar.
El
formulario de propiedades de una actividad de llamada está dividido
en las siguientes secciones:
·
General:
ver “Propiedades generales”.
·
Plantilla de
proceso: permite
especificar la plantilla que se usará para iniciar procesos desde
la actividad y algunas otras propiedades de los
procesos.
·
Mapeos:
permite especificar
correspondencias entre datos de aplicación del proceso padre y
datos de aplicación del proceso hijo, y entre roles del proceso
padre y roles del proceso hijo. Esto permite intercambiar
información entre los dos procesos, copiando el valor de datos o
roles de uno a los datos o roles correspondientes del otro. También
se puede especificar que se copien adjuntos de un proceso al
otro.
·
Inicio
Retrasado:marcando
la opción “Retrasar inicio”, se puede especificar que el proceso
hijo no se inicie apenas el proceso padre llegue a la actividad de
llamada, sino una vez que haya transcurrido cierto tiempo a partir
de ese momento. La forma de especificar ese plazo es igual que la
de cualquier vencimiento (ver “Temporización”).
·
Eventos
manejados: ver
“Asociar un manejador a
un evento de un elemento del diseño”.
- Plantilla de proceso: especifica de qué plantilla de proceso son los
procesos que se inician desde la actividad de llamada.
- Versión: especifica qué versión del proceso se usará para iniciar
los procesos.
-
- Usar versión en producción: marque esta opción si desea que siempre se utilice
la versión que esté en producción al momento de iniciar el proceso
hijo.
- Versión: esta opción permite seleccionar una versión
específica.
- Nombre del proceso: es el nombre del proceso a iniciar. Se puede utilizar una
etiqueta para que el nombre sea, por ejemplo, el valor de un dato
de aplicación. Por más detalles, consulte la sección
“Etiquetas”.
- Descripción del proceso: descripción del proceso a iniciar. Se puede
utilizar una etiqueta para que la descripción tome el valor, por
ejemplo, de un dato de aplicación. Por más detalles, consulte la
sección “Etiquetas”.
·
Esperar al fin del
subproceso para continuar: si esta opción está marcada, una vez iniciado el proceso
hijo, el proceso que lo creó no continúa su ejecución hasta que el
hijo no haya terminado. Sólo si esta opción queda marcada se pueden
actualizar los datos del proceso padre desde el proceso
hijo.
Figura 175 Propiedades de una actividad de llamada, "Plantilla de
proceso"
La sección
de mapeos muestra una tabla inicialmente vacía a la que se pueden
agregar filas. Cada fila representa una correspondencia entre un
dato o rol del proceso padre y un dato o rol del proceso hijo. En
la parte inferior están las opciones de mapeos de archivos
adjuntos.
Arriba de
la tabla con las correspondencias de datos y roles están los
botones que permiten agregar un mapeo de datos de aplicación,
agregar un mapeo de roles, y borrar el mapeo seleccionado
(Figura
176). Si todavía no se
llenaron las opciones de la sección “Plantilla de proceso”, los
botones están deshabilitados, puesto que es imposible saber qué
datos de aplicación y roles del proceso están disponibles en el
proceso que se inicia.
Figura 176 Mapeos
Cuando se
hace clic en uno de los botones que sirven para agregar un mapeo,
se agrega una nueva fila a la tabla de mapeos. Para especificar las
propiedades del mapeo, haga clic en cada celda de la nueva fila,
seleccionando los valores deseados.
Un mapeo
tiene las siguientes propiedades (cada una corresponde a una
columna de la tabla):
·
Tipo: indica si el mapeo es de roles o de datos.
Esto está determinado por qué botón se usó para agregar el mapeo y
no se puede modificar.
·
Origen:
dato de aplicación o rol del
proceso padre.
·
Objetivo:
dato de aplicación o rol del
proceso hijo.
·
Dirección:
indica si se copiará el valor
desde el dato o rol de origen al dato o rol de destino o
viceversa:
o
Entrada:
se copia el valor del dato o
rol del proceso padre al dato o rol del proceso hijo. Esto se hace
al momento de iniciar el proceso.
o
Salida:
se copia el valor del dato o
rol del proceso hijo al dato o rol del proceso padre. Esto se hace
cuando el proceso hijo termina su ejecución y sólo si el proceso
padre espera al proceso hijo. Si el proceso padre continúa su
ejecución inmediatamente después de iniciar el hijo, sin esperar la
finalización de éste, no se copian datos o roles del hijo al
padre.
o
Entrada/salida:se copia el valor del dato o rol del proceso padre al dato
o rol del proceso hijo, al momento de iniciar el proceso hijo. Una
vez finalizada la ejecución del proceso hijo, si y sólo si el padre
esperó la finalización del hijo antes de continuar, se copia el
valor del dato o rol del proceso hijo al dato o rol del proceso
padre.
IMPORTANTE: para que un dato o rol aparezca en la lista que permite
seleccionarlos como Objetivo, debe ser editable en el evento de
inicio del proceso hijo. Si un dato o rol no aparece en la lista de
objetivos posibles, revise el alcance que tiene en el evento de
inicio de la versión de que se usará para iniciar el proceso
hijo.
En la
parte inferior del formulario están las opciones para el mapeo de
adjuntos:
·
No agregar
adjuntos: Q-flow no
copia los adjuntos del proceso padre al proceso hijo.
·
Agregar adjuntos al
hijo: Al iniciar el
proceso hijo, Q-flow copia en él los adjuntos del proceso
padre.
·
Agregar adjuntos al hijo y
actualizar: al
iniciar el proceso hijo, Q-flow copia en él los adjuntos del
proceso padre. Una vez que el proceso hijo termina su ejecución, si
hubo cambios en esos adjuntos, los vuelve a copiar al proceso que
lo inició, pero sólo si el padre esperó la finalización del hijo
para continuar.
- Incorporar adiciones del hijo: si esta opción está marcada, Q-flow
incorpora al padre todos los archivos que hayan sido adjuntados al
hijo durante su ejecución. Esto sólo se hace si el padre espera por
el hijo.
Figura 177 Subproceso
Un
subproceso es un elemento que contiene varios elementos y permite
manejar una parte del diseño del proceso como si fuese una unidad.
Sirve para simplificar el diseño del proceso, ya que se puede
contraer, de modo que se vea como una actividad simple, o expandir,
mostrando todo su contenido, que puede ser modificado como si fuera
un diseño de proceso dentro del diseño de proceso.
Un subproceso recién creado tiene un evento de
inicio y un evento de fin. Cuando el proceso llega a la ejecución
de un subproceso, comienza por el evento de inicio y termina su
ejecución al llegar a un evento de fin.
Figura 178 Subproceso
expandido (izq.) y contraído (der.), con los botones que permiten
expandirlo y contraerlo
Figura 179 Tarea de código
Una tarea de código permite escribir un programa
para que un proceso lo ejecute. El código puede ser escrito en los
lenguajes C# o Visual Basic .NET y debe implementar una interfaz
definida en Q-flow.
Una tarea
de código, además del nombre y de la descripción, tiene las
siguientes propiedades:
·
Lenguaje de
programación: permite elegir el lenguaje de programación (C# o VB
.NET).
·
Código:
es el código del
script.
El código
contiene un procedimiento llamado “Execute”. Cuando un proceso
ejecute el código, llamará a ese procedimiento. El código se
escribe dentro de una clase derivada de la clase CodeScriptBase,
definida por Q-flow. Esa clase tiene un conjunto de métodos y
propiedades que permiten trabajar con los datos del proceso. Por
más información sobre cómo usar esos métodos y propiedades,
consulte el manual de referencia de la interfaz de scripting de
Q-flow.
Figura 180 Propiedades de una tarea de código
Figura 181 Tarea de e-mail
Una tarea
de e-mail envía un mensaje de correo electrónico a las casillas
especificadas en sus propiedades. Una tarea de e-mail utiliza la
configuración del servicio SMTP para enviar sus
mensajes.
El
formulario de propiedades de una tarea de e-mail tiene las
siguientes secciones:
·
General:
permite ingresar una
descripción.
·
Origen:
permite especificar el
remitente del mensaje. Se muestra cuando el formulario está
expandido.
·
Destinatarios:
permite especificar los
destinatarios del mensaje que se va a enviar.
·
Contenido:permite especificar el texto del mensaje que se va a
enviar, así como el formato de ese mensaje.
·
Adjuntos:
permite especificar qué
archivos adjuntos del proceso se enviarán como archivos adjuntos al
mensaje.
·
Eventos
manejados: permite
asociar manejadores de eventos a eventos del paso (ver
“Asociar un manejador a
un evento de un elemento del diseño”).
La sección
“Origen” permite especificar los datos del remitente del mensaje.
Hay dos opciones posibles:
·
Utilizar la configuración
del sistema. Si se
utiliza esta opción, el mensaje se enviará con el remitente que
Q-flow utiliza para enviar notificaciones. Esta es la opción por
defecto.
·
Usar configuración
personalizada. En
este caso, deberá completar los siguientes datos:
o
Origen
§ Nombre: nombre del remitente. Se puede utilizar una
etiqueta para, por ejemplo, obtener este nombre de un dato de
aplicación (ver “Etiquetas”).
§ Dirección: dirección de correo electrónico del remitente.
También para la dirección se puede utilizar una
etiqueta.
o
Credenciales SMTP
(Opcional): los
siguientes campos son necesarios solamente si las credenciales son
necesarias para enviar el mensaje:
§ Usuario: nombre de usuario habilitado para utilizar el
servicio SMTP.
§ Contraseña:contraseña del usuario.
Figura 182 Origen
La sección
de destinatarios (Figura
183) muestra un espacio
para escribir la dirección de correo electrónico de un destinatario
y un botón (“+”) para agregar más destinatarios. Si aprieta este
botón, se generará un espacio para ingresar la dirección de otro
destinatario. En ambos casos se puede usar una etiqueta para
especificar la dirección (ver “Etiquetas”).
Utilice el botón “-” que aparece al lado de un destinatario para
quitarlo.
Figura 183 Destinatarios
La sección
“Contenido” contiene las siguientes propiedades:
·
Asunto:
texto del asunto del mensaje.
Se puede usar una etiqueta (ver “Etiquetas”).
·
Cuerpo:
texto principal del mensaje. Se
puede usar una etiqueta (ver “Etiquetas”).
·
Lenguaje de
programación: indica
si el cuerpo del mensaje está especificado en HTML o mediante texto
plano.
o
HTML: el cuerpo del mensaje está especificado en
HTML.
o
Texto:
el cuerpo del mensaje está
especificado mediante texto plano, sin marcas de HTML.
En la
parte inferior se escribe el mensaje, pudiendo utilizar etiquetas
para tomar, por ejemplo, valores de un dato de aplicación. Para
esto, escriba “#”
Figura 184 Propiedades del contenido del mensaje
La
Figura 185 muestra la solapa “Adjuntos”. Ésta
funciona de la misma forma que la de destinatarios: para agregar un
adjunto, haga clic en “+” y escriba el nombre del adjunto o use una
etiqueta para especificarlo. Para quitar un adjunto, haga clic en
“-”.
Figura 185 Adjuntos
Figura 186 Tarea de fórmula
Una tarea
de fórmula toma datos de aplicación o roles del proceso, hace
operaciones con ellos y genera un resultado que se almacena también
en algún dato de aplicación o rol, según corresponda.
El
formulario de propiedades de la tarea de fórmula tiene las
siguientes secciones:
·
General:
permite ingresar la descripción
de la tarea y definir la fórmula que se va a ejecutar cuando el
proceso llegue a la tarea.
·
Eventos
manejados: ver
“Asociar un manejador a
un evento de un elemento del diseño”.
La
ejecución de esta tarea, llevará a cabo las operaciones en el orden
especificado, pudiendo utilizar un valor pre-calculado y almacenado
en algún dato de aplicación o rol, en una operación
posterior.
Figura 187 Propiedades
de una fórmula, con las propiedades de una expresión (Total =
Subtotal + Impuestos)
La sección
“Fórmula” de una tarea de fórmula muestra una tabla, inicialmente
vacía, con la definición de la fórmula, que está compuesta de
operaciones (cada fila de la tabla corresponde a una operación).
Para agregar una operación a la fórmula, haga clic en el botón “+”.
Esto abre el formulario de la nueva operación, a la derecha de la
tabla de la fórmula (Figura 187).
Figura 188 Definición
de una expresión
Las
propiedades de una operación son las siguientes (Figura 188):
·
Destino:
es la primera de las
propiedades. Donde dice “Comience a escribir…”, empiece a escribir
el nombre del dato de aplicación o rol, en el cual desea guardar el
resultado de la fórmula.
·
Primer operando:
después de donde dice “Es igual
a”, se puede ingresar el primer operando, escribiendo donde dice
“Comience a escribir…”. El operando puede ser:
o
Valor:
un valor fijo. En este caso,
escriba el valor.
o
Dato de
aplicación: un dato
de aplicación de cualquier tipo. Si empieza a escribir el nombre de
un dato de aplicación, pronto aparecerá el dato en una lista que se
despliega mientras escribe.
o
Función:
el resultado de una función.
Por ahora, la única función disponible es GetDate(), que devuelve
la fecha actual y ésta se podrá seleccionar si empieza a escribir
“GetDate()”.
o
Rol: un rol de plantilla de proceso. Se
selecciona de forma similar a un dato de aplicación.
- Transformación: esta opción permite aplicar al operando una transformación
antes de operar con él. Las transformaciones posibles dependen del
tipo de dato del operando.
§ Datos numéricos:en general, estas transformaciones sólo
tienen sentido si el operando es un dato que admite múltiples
valores.
·
Average:
calcula el promedio de los
valores.
·
Count:
cuenta la cantidad de
valores.
·
Max: toma el máximo de los valores.
·
Min: toma el mínimo de los valores.
·
Sum: toma la suma los valores.
§ Datos de texto:
·
Left: toma sólo los primeros caracteres del
operando. La cantidad de caracteres a tomar se especifica en la
propiedad “Largo”.
·
Left Trim:
corta todos los espacios en
blanco que pueda haber al principio del operando.
·
Mid: toma sólo los caracteres del medio del
operando. La posición a partir de dónde debe tomar los caracteres
se indica en la propiedad “Inicio” (el 0 corresponde a la primera posición). La
cantidad de caracteres a tomar a partir de esa posición se
especifica en la propiedad “Largo”. Por ejemplo, si el valor del
operando es “Hola Mundo!”, Inicio = 5 y Largo = 5, el resultado de
la transformación será “Mundo”. Para el mismo operando, si Inicio =
0 y Largo = 4, el resultado será “Hola”.
·
Right:
toma sólo los últimos
caracteres del operando. La cantidad de caracteres a tomar se
especifica en la propiedad “Largo”.
·
Right Trim:
corta todos los espacios en
blanco que pueda haber al final del operando.
·
Trim: corta todos los espacios en blanco que
pueda haber tanto al principio como al final del
operando.
§ Fecha:
·
GetDay:
toma sólo el día.
·
GetHour:
toma sólo la hora.
·
GetMinutes:
toma sólo los
minutos.
·
GetMonth:
toma sólo el mes.
·
GetSeconds:
toma sólo los
segundos.
·
GetYear:
toma sólo el año.
·
Operador:
operador de la operación. Es
posible no elegir ningún operador y sólo aplicarle una
transformación al primer operando, sin realizar ninguna
operación.
o
+ (suma): en el caso de los roles, funciona
como una unión de conjuntos (el resultado de sumar dos roles es un
conjunto con los miembros de ambos roles).
o
- (resta): en el caso de los roles, funciona
como una resta de conjuntos: el resultado son todos los miembros
del primer rol que no estén en el segundo rol.
o
* (multiplicación)
o
/ (división)
o
mod (resto de dividir el primer operando entre
el segundo)
o
AddDay:
le suma a un primer operando de
tipo fecha la cantidad de días indicada por el segundo operando. El
segundo operando debe ser un número.
o
AddHour:
le suma a un primer operando de
tipo fecha la cantidad de horas indicada por el segundo operando.
El segundo operando debe ser un número.
o
AddMinutes:
le suma a un primer operando de
tipo fecha la cantidad de minutos indicada por el segundo operando.
El segundo operando debe ser un número.
o
AddMonth:
le suma a un primer operando de
tipo fecha la cantidad de meses indicada por el segundo operando.
El segundo operando debe ser un número.
o
AddSeconds:
le suma a un primer operando de
tipo fecha la cantidad de segundos indicada por el segundo
operando. El segundo operando debe ser un número.
o
AddYear:
le suma a un primer operando de
tipo fecha la cantidad de años indicada por el segundo operando. El
segundo operando debe ser un número.
·
Segundo operando:
seleccione el segundo operando
de las opciones. Las opciones para el segundo operando son las
mismas que las opciones para el primer operando.
Figura 189 Tarea de notificación a usuario
Una tarea
de notificación envía una notificación a usuarios de Q-flow. Los
usuarios suelen recibir las notificaciones por correo electrónico,
pero también las pueden ver en el sitio web de Q-flow. En eso una
tarea de notificación es similar a una tarea de usuario. La
diferencia es que no requiere acción de su destinatario, que se
limita a acceder al formulario que le presenta la información. Este
formulario puede ser, como en el caso de otros pasos que utilizan
formularios, personalizado.
El
formulario de propiedades de una tarea de notificación de usuario
tiene las siguientes secciones:
·
General:
ver “Propiedades generales”. También permite especificar un texto de ayuda
para los usuarios (sólo se muestra en el caso de que el panel esté
expandido). Cuando vean la notificación en el sitio web, podrán ver
el texto de ayuda al hacer clic en el ícono de ayuda (“?”). El
texto puede contener código HTML.
·
Mensaje:
permite especificar las
propiedades del mensaje que se va a enviar. Consulte la sección
“Mensaje”, dentro
de la descripción de las tareas de usuario, para ver una
descripción del funcionamiento de esa sección.
·
Alcance:
permite definir qué datos de
aplicación, roles, adjuntos y comentarios son visibles y
modificables en la tarea. Ver “Alcance de datos, roles, adjuntos y
comentarios”.
·
Formulario:
permite especificar un
formulario personalizado. Ver “Asignar un formulario personalizado a un elemento del
diseño”.
·
Validaciones:
permite asociar validaciones a
la tarea. Ver “Asociación de una validación a un
formulario”.
·
Eventos
manejados: ver
“Asociar un manejador a
un evento de un elemento del diseño”.
Figura 190 Configuración básica de tarea de notificación a
usuario
Figura 191 Tarea de servicio
Una tarea
de servicio ejecuta una integración (ver “Integraciones”). Al configurar una tarea de servicio, se
especifica:
·
Integración a
ejecutar.
·
Para cada parámetro de entrada,
qué dato de aplicación le proveerá valor.
·
Para cada parámetro de salida,
en qué dato de aplicación se almacenará su valor.
La sección
“General” permite configurar las siguientes propiedades:
·
Integración:permite elegir una de las integraciones definidas. Por
información acerca de cómo definir una integración, consulte la
sección “Integraciones”.
·
Mapeo de
parámetros: es una
tabla que muestra los parámetros de la integración. A cada
parámetro requerido de la integración se debe asociar un parámetro
o dato de aplicación del mismo tipo. Para elegir un dato de
aplicación, haga clic en “Datos” en la columna “Tipo de ítem” de la
fila correspondiente al parámetro para el cual desea elegir un
dato. Para elegir un parámetro de aplicación, seleccione
“Parámetros”. Para elegir el dato o parámetro de aplicación al que
asociará el parámetro de la integración, haga clic en “No
especificado”, en la columna “Item” de la fila que está
modificando. Si un parámetro es de entrada, éste recibirá el valor
del dato o parámetro de aplicación antes de la ejecución de la
integración. Si el parámetro es de salida, sólo tiene sentido
asociarlo a un dato de aplicación (un proceso no puede modificar un
parámetro de aplicación). Una vez ejecutada la operación de la
integración, el valor del parámetro será copiado en el dato de
aplicación asociado. Esta es la forma de que una operación devuelva
resultados que puedan ser utilizados por el proceso. Si el
parámetro es de entrada y salida, tampoco tiene sentido asociarlo a
un parámetro de aplicación. El valor del dato de aplicación
asociado es copiado al parámetro antes de la ejecución de la
integración y una vez ejecutada ésta, el valor del parámetro es
copiado al dato de aplicación.
·
Auto mapear:
este botón permite intentar
hacer automáticamente la correspondencia entre parámetros de la
integración y datos o parámetros de aplicación. Al hacer clic sobre
él, Q-flow buscará, para cada parámetro de la integración, un dato
(o parámetro, según el valor elegido en “Tipo de ítem”) de
aplicación con el mismo nombre y tipo que éste, si encuentra uno lo
asociará al parámetro. De este modo, el mapeo de parámetros se
puede hacer automáticamente, siempre y cuando exista un dato o
parámetro de aplicación igual a cada parámetro en nombre y
tipo.
La sección
“Eventos manejados” permite configurar las siguientes
propiedades:
Ver
“Asociar un manejador a
un evento de un elemento del diseño”.
Figura 192 Propiedades de una tarea de servicio
Figura 193 Tarea de servicio asíncrono
Una tarea
de servicio asíncrono permite asignarle un trabajo a un bot. Un bot
puede tener parámetros, al igual que una integración. Una tarea de
servicio asíncrono es muy similar a una tarea de servicio, con la
única diferencia de que, en lugar de seleccionar una integración
para ejecutar, se selecciona un bot (ver “Bots”)
al cual se le asigna un trabajo (Figura 194). Por instrucciones sobre cómo asociar datos de aplicación
o parámetros a los parámetros del bot, consulte “Tarea de servicio”.
Figura 194 Propiedades
de una tarea de bot. Como se puede ver, son prácticamente iguales a
las de una tarea de servicio
Figura 195 Tarea de usuario
Una tarea
de usuario asigna una tarea a un usuario o conjunto de usuarios.
Los destinatarios de la tarea se especifican mediante roles de
plantilla de proceso.
Una tarea
de usuario tiene un conjunto de respuestas. Cuando un usuario
accede al formulario de una tarea en el sitio web, debe seleccionar
una respuesta para actualizar el estado de la tarea. El formulario
de propiedades de una tarea tiene las siguientes
secciones:
·
General:
ver “Propiedades generales”.
·
Mensaje:
permite especificar los
destinatarios de la tarea, el mensaje que se les muestra y las
posibles respuestas.
·
Controles de
tiempo: permite
definir vencimientos, recordatorios y alertas para la
tarea.
·
Avanzado:contiene opciones sobre cómo mostrar la tarea en un
formulario estándar de Q-flow.
·
Eventos
manejados: ver
“Asociar un manejador a
un evento de un elemento del diseño”.
·
Alcance:
permite especificar el acceso a
datos, roles y adjuntos (ver “Alcance: qué roles se pueden ver y modificar en cada
interacción con un proceso”).
·
Formulario:permite asociar un formulario personalizado a la tarea (ver
“Asignar un formulario
personalizado a un elemento del diseño”)
·
Validaciones:permite asociar validaciones a la tarea (ver
“Asociación de una
validación a un formulario”).
- Asunto del mensaje: el texto del asunto del mensaje que se enviará o mostrará a
los destinatarios. Si la tarea está configurada para enviar
notificaciones, se usa en el asunto del mensaje de correo
electrónico que se envía a los destinatarios. Se puede especificar
mediante una etiqueta (ver “Etiquetas”).
- Destinatarios: lista de los destinatarios de la tarea. Los destinatarios
son roles de plantilla de proceso. Para especificar un
destinatario, comience a escribir su nombre y selecciónelo cuando
aparezca como opción.
- Respuestas: una tabla que contiene las respuestas que estarán
disponibles para quienes desempeñen las tareas. Los botones
permiten agregar o quitar respuestas, además de reordenarlas
mediante las flechas (Figura 196).
Cada respuesta tiene las siguientes propiedades, que se modifican
en la propia tabla donde se muestran:
-
- Texto: texto
de la respuesta. Es lo que se le muestra al usuario. Cuando se
agrega una respuesta, el texto queda con un texto predeterminado.
Para modificarlo, haga clic en ese texto.
- Clave: un
texto que identifica la respuesta, pero que no se muestra al
usuario. La clave se usa en evaluaciones de condiciones que la
utilizan. La clave se modifica de la misma forma que el texto,
haciendo clic sobre ella.
- Tipo: indica
el tipo de respuesta, que puede ser no final, final o final
terminal. Cuando un usuario elige una respuesta final, da su tarea
por terminada y ya no puede seguir trabajando en ella. Cuando elige
una respuesta que no es final, se guardan los cambios que hizo en
los datos, pero su tarea sigue pendiente. Como una tarea
puede estar asignada a varios destinatarios, el hecho de que un
destinatario seleccione una respuesta final no significa
necesariamente que el proceso vaya a continuar su ejecución, porque
otros destinatarios pueden no haber dado por terminadas sus partes
de la tarea. En este caso, los criterios de respuestas múltiples
(ver más abajo) definen bajo qué condiciones el proceso dará toda
la tarea por terminada y continuará su ejecución. Esto no aplica
para cuando el usuario selecciona una tarea final terminal; en este
caso, la tarea finalizará aunque los otros destinatarios no hayan
contestado aún, sin importar los criterios de respuestas
múltiples.
- Modo de presentación de la respuesta:
permite configurar cómo se
muestran las respuestas de la tarea en un formulario estándar en el
sitio web de Q-flow. La Figura 197Error! Reference source not found. ilustra cada una de las
opciones.
- Criterio de respuesta múltiple: permite especificar cuándo el proceso debe
continuar, cuando tiene más de un destinatario. Las opciones
son
o
Continuar después de
que:
§ Algún usuario haya respondido:
cuando un usuario seleccione
una respuesta final, el proceso finalizará la tarea y continuará su
ejecución.
§ Todos los usuarios hayan
respondido: el
proceso continuará su ejecución solamente cuando todos los
destinatarios hayan seleccionado una respuesta final.
§ Por lo menos “X” usuarios hayan
respondido: cuando
una cantidad (X) de usuarios haya respondido, el proceso continuará
su ejecución. Si se selecciona esta opción, se habilita el campo
“Cantidad/Porcentaje” para especificar la cantidad (X).
§ Por lo menos un porcentaje “X” de usuarios
haya respondido: similar a la opción anterior, pero se indica un porcentaje
de usuarios en lugar de una cantidad absoluta.
Figura 196 Propiedades
del mensaje
Figura 197 Modo de
presentación
Los
controles de tiempo sirven para prevenir o mitigar atrasos en las
tareas mediante alertas, recordatorios, delegaciones y
vencimientos. Las alertas y recordatorios son notificaciones que se
envían cuando vence un plazo. Las delegaciones consisten en
reasignar tareas y los vencimientos permiten que el proceso tome un
camino alternativo al que hubiese seguido si no se hubiese vencido
un plazo.
La sección
de controles de tiempo muestra una tabla con los controles que se
hayan definido. Ésta tiene tres botones para agregar, modificar y
eliminar controles de tiempo (Figura 198).
Figura 198 Controles de
tiempos
Al editar
un control de tiempo, se muestra un formulario como el de la
Figura 199.
Figura 199 Control de
tiempos
Este
formulario tiene las siguientes propiedades:
·
Tipo de acción:
se muestran varios botones.
Cada uno corresponde a una clase de acción. Se marca una de las
clases haciendo clic en ella. Las clases posibles son:
o
Recordatorio:Q-flow envía una notificación con un recordatorio para el
destinatario seleccionado.
o
Alerta:
Q-flow envía una notificación
con una alerta para el destinatario seleccionado.
o
Delegación:Q-flow reasigna la tarea, dándosela al destinatario
seleccionado.
o
Vencimiento:
Q-flow interrumpe la espera,
abandonando la ejecución del paso y continuando con la ejecución
del proceso por medio del evento de borde temporizador, para más
detalles sobre cómo agregar los eventos de borde vea
“Agregar eventos de
borde”.
- Información de tiempo: estas propiedades definen el plazo del
vencimiento que disparará la acción especificada más arriba. Por
instrucciones, vea “Temporización”.
·
Destinatarios:seleccione aquí los destinatarios de la acción. Para
alertas y recordatorios, los destinatarios son quienes recibirán
las notificaciones. Para delegaciones, son a quienes se les
reasignará la tarea. Los vencimientos no tienen destinatarios. Para
agregar un destinatario, empiece a escribir el nombre de un rol de
que esté disponible en la plantilla que está utilizando, y cuando
lo vea en la lista que aparece, selecciónelo.
Figura 200 Sección Avanzado de tarea de usuario
- Enviar notificaciones: permite definir si se desea que el paso envíe
notificaciones por correo electrónico a sus destinatarios. Si la
opción está desmarcada, Q-flow no enviará mensajes de correo
electrónico para notificar a sus destinatarios que tienen una tarea
pendiente.
·
Encargado de la
tarea: permite
especificar un rol, que será el encargado de la tarea. El encargado
puede responder por cualquiera de los destinatarios. También puede
delegar la tarea y enviar alertas.
·
Destinatario
alternativo: permite
especificar un rol, de modo que, si el destinatario original de la
tarea no puede completarla, sea posible elegir a los miembros de
ese rol como destinatarios al delegarla.
Un evento
representa algo que ocurre en el proceso. Éstos se pueden
clasificar como Eventos de inicio, Eventos intermedios y Eventos de
fin.
Figura 201 Evento de inicio
El evento
de inicio que Q-flow implementa es el evento de inicio simple, que
llamaremos Evento de inicio.
El evento
de inicio marca el inicio de un proceso. También representa el
punto en el que un usuario inicia un proceso. Por ejemplo, para
seleccionar un formulario personalizado como formulario de inicio
del proceso, se lo asocia al evento de inicio. Cuando un proceso es
iniciado, empieza su ejecución en el evento de inicio, que debe ser
único.
El
formulario de propiedades de un evento de inicio
(Figura
202) tiene las
siguientes secciones:
·
General:
contiene propiedades generales
(ver “Propiedades
generales”), además de
la propiedad “Etapa”, que permite asociar el evento de inicio a una
etapa del proceso (ver “Etapas”).
Y texto de ayuda que permite
especificar un texto de ayuda para el paso. Cuando un usuario esté
iniciando un proceso en el sitio web, podrá ver el mensaje de ayuda
definido si hace clic en el ícono de ayuda. Este mensaje puede
contener código HTML.
·
Alcance:
ver “Alcance de datos, roles, adjuntos y
comentarios”.
·
Avanzado:
permite especificar un texto de
ayuda para el formulario de inicio y opciones para generar
automáticamente los nombres y las descripciones de los
procesos.
·
Formulario:permite asignar un formulario personalizado como formulario
de inicio del proceso (ver “Asignar un formulario personalizado a un elemento del
diseño”).
·
Validaciones:permite elegir validaciones, de entre las existentes, para
que se ejecuten en el formulario de inicio (ver “Asociación de una validación a un
formulario”).
·
Eventos
manejados: permite
asociar manejadores a los eventos del elemento. ver
“Asociar un manejador a
un evento de un elemento del diseño”.
La tercera
solapa, “Avanzado”, tiene las siguientes propiedades:
·
Autogenerar nombre y
descripción: estas
propiedades permiten especificar de antemano los nombres y las
descripciones de los procesos, usando etiquetas, de modo que no sea
necesario que el usuario los ingrese al iniciar un
proceso.
o
Nombre
autogenerado: un
texto con etiquetas para indicar cómo se deben formar los nombres
de los procesos.
o
Descripción
autogenerada: un
texto con etiquetas para indicar cómo se deben formar las
descripciones de los procesos.
Figura 202 Sección
"Avanzado" de las propiedades de un evento de inicio
Los
eventos de fin que Q-flow implementa son en Evento de fin simple,
que llamaremos Evento de fin (Figura 203), y
el Evento de fin terminal (Figura 204).
Figura 203 Evento de
fin
Figura 204 Evento de
fin terminal
Los
eventos de fin y fin terminal finalizan la ejecución de los
procesos. Un evento de fin terminal termina la ejecución del
proceso aun cuando todavía haya hilos en ejecución. En ese caso,
Q-flow finaliza esos hilos y el proceso termina su ejecución. Un
evento de fin, por el contrario, espera que todos los hilos
terminen y una vez terminados, finaliza el proceso.
El
formulario de propiedades de estos eventos tiene las siguientes
secciones:
·
General:
ver “Propiedades generales”. La caja que dice “Progreso = 100%” permite
indicar que cuando el proceso termine, se debe poner el progreso en
100%.
·
Eventos
manejados: permite
asociar manejadores a los eventos del elemento. ver
“Asociar un manejador a
un evento de un elemento del diseño”.
Figura 205 Propiedades de un evento de fin
Son
aquellos eventos que pueden ocurrir entre el inicio y el fin de un
proceso.
Figura 206 Evento de temporización
Un evento
de temporización permite especificar una demora. Cuando un proceso
llega a un evento de temporización, se detiene durante el tiempo
especificado en él.
Las
propiedades de un evento de temporización están divididas en las
siguientes secciones:
·
General:
ver “Propiedades generales”. La caja que dice “Progreso = 100%” permite
indicar que cuando el proceso termine, se debe poner el progreso en
100%.
·
Temporización:
es donde se especifica cuánto
debe esperar el evento. Consulte la sección “Temporización” por instrucciones.
·
Eventos
manejados: permite
asociar manejadores a los eventos del elemento. Ver
“Asociar un manejador a
un evento de un ”.
Figura 207 Propiedades de temporización
Figura 208 Evento intermedio
Un evento
intermedio simple, que llamaremos evento intermedio, permite marcar
el avance de un proceso, modificando las propiedades que tienen ese
propósito (progreso, bandera y etapa). El formulario de propiedades
de un evento intermedio tiene las siguientes secciones:
·
General:
en esta sección están las
propiedades que permiten marcar el avance del proceso.
·
Eventos
manejados: permite
asociar manejadores a los eventos del elemento. ver
“Asociar un manejador a
un evento de un elemento del diseño”.
General
Figura 209 Sección general de evento intermedio
Tiene las
propiedades usuales (Progreso, Bandera, Importancia del proceso;
ver “Propiedades
generales”) y algunas
adicionales:
·
Etapa:
permite asociar el evento a una
etapa, indicando así que la etapa seleccionada empieza en ese paso.
Iniciar una nueva etapa da por terminada la etapa actual. También
se puede dar por terminada la etapa actual sin iniciar una nueva.
Para eso, en lugar de seleccionar una etapa en la propiedad
“Etapa”, seleccione la opción “[Terminar la etapa actual]” (ver
“Etapas”).
·
Reanudar etapa si ya
existe: esta opción
se muestra si está seleccionada la etapa “[Terminar la etapa
actual]”. Está pensada para casos en los que existe una vuelta
atrás en el proceso. Si esta opción está marcada, cuando se vuelva
a ejecutar el paso, se reanuda también la etapa en la que se
encontraba de modo que al contabilizar el tiempo que se tardó en
ejecutar la etapa se considera el tiempo sumado de todas las
ejecuciones.
Figura 210 Evento de atrapar señal
Un evento
de atrapar señal permite poner al hilo en espera hasta que se
reciba una señal proveniente de un evento de lanzar señal. Se
utiliza en escenarios donde es necesario sincronizar el trabajo de
dos o más hilos que se ejecutan simultáneamente. Las dos
propiedades específicas de estos eventos son las
siguientes:
·
Esperar señal
de:evento de lanzar
señal por el cual se espera.
·
Continuar si la señal ya fue
lanzada: en caso de
que la señal se haya lanzado previamente al intento de atraparla,
especifica si se debe esperar una nueva señal o simplemente
continuar.
Los
eventos de atrapar señal también tienen otras propiedades, en común
con otros pasos (ver “Propiedades generales”).
Figura 211 Propiedades de evento de atrapar señal
Figura 212 Evento de lanzar señal
Un evento
de lanzar señal permite notificar a eventos de atrapar señal que lo
están esperando para que continúen su ejecución. La configuración
de este evento es similar a la de un evento intermedio (ver
“Evento intermedio
simple”).
Figura 213 Evento intermedio de borde genérico
Los
eventos intermedios de borde, son eventos que se pueden adjuntar a
ciertas actividades. Si durante la ejecución de la actividad se
provoca alguno de los eventos definidos, el proceso continúa por un
flujo que lo contemple. Los eventos que Q-flow admite como eventos
de borde son:
·
Evento
temporizador: estos
eventos se pueden adjuntar a tareas de usuario o tareas de servicio
asincrónico, el proceso seguirá este camino al ocurrir el
vencimiento definido en la propia actividad.
Figura 214 Evento temporizador de borde
·
Evento de error:
estos eventos se pueden
adjuntar a tareas de servicio, tareas de código, tareas de fórmula
y tareas e-mail, el proceso seguirá este camino al ocurrir algún
error en la ejecución de la actividad.
Figura 215 Evento de error de borde
Las
compuertas permiten modificar el flujo de un proceso, ya sea
creando varios caminos paralelos en el proceso o seleccionando un
camino de varios posibles posteriores a la compuerta.
Todas las
compuertas se conectan con varios elementos a través de sus
conectores. Lo que cambia según el tipo de compuerta es si, una vez
que un proceso pasa por ella, continúa utilizando todos los
caminos, algunos de ellos o solamente uno.
Las
compuertas pueden ser de los siguientes tipos:
·
Compuerta
exclusiva: selecciona uno de varios posibles caminos para que el
proceso continúe su ejecución.
·
Compuerta
inclusiva: selecciona uno o más de varios posibles caminos para que el
proceso continúe su ejecución, de modo que puede generar varios
hilos paralelos.
·
Compuerta
paralela: genera
tantos caminos paralelos como conexiones salientes
tenga.
Las
compuertas se usan de a dos: se agrega una compuerta y, en el lugar
en el que terminan los caminos que se iniciaron con ella, se
incluye otra compuerta. En el caso de la compuerta exclusiva, esto
no es obligatorio. En el caso de las compuertas que generan
paralelismo (la paralela y la inclusiva), la segunda compuerta del
par (compuerta convergente) es obligatoria y tiene propiedades que
permiten definir bajo qué condiciones el proceso continuará su
ejecución al terminar de ejecutar uno de los caminos.
Figura 216 Compuerta exclusiva
Una
compuerta exclusiva selecciona uno de varios posibles caminos para
que el proceso continúe su ejecución. Define una condición para
cada una de sus conexiones salientes. Si alguna condición es
verdadera cuando el proceso llega a la compuerta, el proceso
utiliza esa conexión para continuar su ejecución. Si ninguna
condición es verdadera, el proceso utiliza la conexión por defecto
para continuar su ejecución (ver “Especificación de la conexión por
defecto” por
instrucciones para definir la conexión por defecto). Si más de una
condición es verdadera, el proceso utiliza la primera de las
condiciones para continuar su ejecución. En ningún caso se utiliza
más de una conexión: la compuerta exclusiva no genera caminos
paralelos.
Figura 217 Sección Avanzado de compuerta exclusiva, en la que se
definen las condiciones para evaluar
Figura 218 Compuerta paralela
Las
compuertas paralelas se utilizan de a dos: la primera (compuerta
paralela divergente) divide el proceso en varios hilos: el proceso
llega a la compuerta paralela y sigue su ejecución usando todas las
conexiones salientes de la compuerta. La segunda compuerta
(compuerta paralela convergente) une los hilos, haciendo que todos
los caminos en los que se había dividido el proceso converjan
nuevamente en uno.
El
formulario de propiedades de la compuerta que efectúa la separación
es muy sencillo (Figura
219) y sólo permite
ingresar un nombre y una descripción, además de la sección “Eventos
manejados”, que permite asociar manejadores a los eventos de la
compuerta (ver “Asignar
un formulario personalizado a un elemento del
diseño”).
Figura 219 Formulario
de compuerta paralela divergente
El de la
segunda compuerta, que une los hilos, tiene una sección de opciones
avanzadas que permiten definir bajo qué condiciones el proceso debe
continuar su ejecución (si tiene que esperar que todos los hilos
finalicen, por ejemplo) y, en caso de no esperar todos los hilos,
qué hacer con los hilos pendientes de finalizar. Para ver la
sección de opciones avanzadas, expanda el formulario con el botón
de expandir formulario (Figura 220). Las
opciones de esta sección se describen más abajo, en “
Propiedades de compuertas convergentes”.
Figura 220 Formulario
de compuerta paralela convergente
Figura 221 Compuerta inclusiva
Una
compuerta inclusiva es una suerte de híbrido de compuerta exclusiva
y compuerta paralela: selecciona uno o más de varios posibles
caminos para que el proceso continúe su ejecución, de modo que
puede generar varios hilos paralelos. Define una condición para
cada uno de los conectores salientes. Una vez evaluadas las
condiciones, el proceso continúa su ejecución a través de todas las
conexiones cuyas condiciones se cumplan. Si más de una condición es
verdadera, la compuerta genera varios caminos paralelos.
Al igual
que las compuertas paralelas, las compuertas inclusivas se deben
usar en pares, y la segunda compuerta de un par (la compuerta
convergente) tiene propiedades que permiten definir cuándo el
proceso debe continuar su ejecución al llegar a la compuerta y qué
debe hacer con hilos pendientes. Estas propiedades están en la
sección “Avanzado” de la compuerta convergente. Las opciones de
esta sección se describen más abajo, en “
Propiedades de compuertas convergentes”.
El
formulario de propiedades de la primera compuerta (compuerta
divergente) es muy sencillo y sólo permite ingresar un nombre y una
descripción, además de la sección “Eventos manejados”, que permite
asociar manejadores a los eventos de la compuerta (ver
“Asociar un manejador a
un evento de un elemento del diseño”).
La
conexión por defecto es la que usa una compuerta exclusiva cuando
ninguna de las condiciones que contiene es evaluada como verdadera.
Para definir una conexión por defecto, seleccione una de las
conexiones de la compuerta, haga clic sobre ella con el botón
derecho y seleccione, en el menú contextual, “Conexión por defecto”
(Figura
222).
Figura 222 Especificando conexión por defecto
Finalmente la conexión
debería quedar como se muestra en la Figura
223.
Figura 223 Conexión por
defecto
Las
compuertas exclusivas e inclusivas contienen en sus propiedades
condiciones que Q-flow evalúa cuando llega a alguna de ellas. Estas
condiciones determinan por qué camino (en el caso de la compuerta
exclusiva) o caminos (en el caso de la compuerta inclusiva)
continuará su ejecución el proceso, una vez abandonada la
compuerta.
Para
especificar las condiciones de una compuerta, abra el formulario de
propiedades y haga clic en el ícono de los tres puntos para ver el
formulario expandido. Esto hace que aparezca la sección
“Condiciones”. Si abre la sección “Condiciones” verá que está
dividida en subsecciones, una por cada elemento al cual la
compuerta está conectada mediante su conector saliente. En cada una
de esas subsecciones se puede definir una condición.
Para
definir una condición simple, haga clic en el botón “+Condición”.
Eso hace que Q-flow agregue un elemento a la lista de condiciones
(Figura
224).
Figura 224 Nueva
condición en lista de condiciones
Una vez
agregada la condición, debe especificar sus componentes. Donde dice
“Comience a escribir el ítem destino…” debe escribir el nombre del
ítem que desea usar en la condición. El ítem puede ser un dato de
aplicación o una tarea de usuario que se haya ejecutado antes. Una
vez seleccionado el ítem, seleccione el operador a utilizar y
finalmente, el valor con el cual desea comparar. Si el ítem
seleccionado es una tarea de usuario, se podrá seleccionar el
criterio de votación, que permite especificar cómo evaluar la
respuesta si los destinatarios de la tarea son muchos:
·
Algún usuario ha
contestado: si algún
destinatario contestó lo especificado en la combinación de operador
y valor, la expresión es verdadera. De lo contrario, es
falsa.
·
Todos los usuarios han
contestado: si todos
los destinatarios de la tarea contestaron lo especificado en la
combinación de operador y valor, la expresión es verdadera. De lo
contrario, es falsa.
·
Ningún usuario ha
contestado: si
ningún destinatario contestó lo especificado en la combinación de
operador y valor, la expresión es verdadera. De lo contrario, es
falsa.
·
X usuarios han
contestado: si X
destinatarios contestaron lo especificado en la combinación de
operador y valor, la expresión es verdadera. De lo contrario, es
falsa. Si esta opción está seleccionada, se habilita un casillero
para especificar el valor de X.
·
X% de usuarios han
contestado: si X% de
los destinatarios contestaron lo especificado en la combinación de
operador y valor, la expresión es verdadera. De lo contrario, es
falsa. Si esta opción está seleccionada, se habilita un casillero
para especificar el valor de X.
·
La respuesta más
seleccionada fue: Si
la respuesta más seleccionada fue la especificada en la combinación
de operador y valor, la expresión es verdadera. De lo contrario, es
falsa.
El valor
puede ser puede ser un valor fijo como “2”, pero también puede
escribir el nombre de un dato de aplicación para que la comparación
se haga con el valor de ese dato, el valor de una clave de
respuesta de tarea de usuario o el nombre de ésta. En este último
caso, la comparación se hará con la clave de la respuesta que se
haya dado a la tarea de usuario que se contestó antes. Esto permite
construir condiciones como “Si el dato de aplicación ‘Estado’ es
igual a la respuesta que se dio a la tarea de usuario
‘Aprobar’”.
Si agrega
otra condición, debe decidir si la segunda condición se debe
cumplir simultáneamente con la primera, es decir, si lo que se
evalúa es “Se cumple la primera condición Y se cumple la segunda
condición” o “Se cumple la primera condición O la segunda
condición”. Para eso están los botones “Todas” y “Alguna”. Si hace
clic en “Todas”, Q-flow muestra a la izquierda de las condiciones
el texto “Y”. Si hace clic en “Alguna”, basta con que se cumpla una
de las condiciones y a la izquierda de las condiciones aparece el
texto “O”.
Para poder
combinar “Y” y “O” hay que usar grupos de condiciones. Para agregar
un grupo, haga clic en “+Grupo”. Después puede agregar condiciones
dentro del grupo. El grupo tiene sus propios botones de “Todas” y
“Alguna”, para determinar cómo se combinan las condiciones dentro
del grupo (se combinan todas con “Y” o se combinan todas con “O”).
A su vez, los grupos se combinan de la misma forma que las
condiciones, con “Y” y “O”. Un grupo puede contener grupos:
combinando grupos de condiciones unidas con “Y”, con grupos de
condiciones unidas con “O”, se puede construir cualquier condición
compleja.
Suponga
que una plantilla de proceso tiene un dato numérico “Monto” y otro
dato “Tipo de producto”. Se desea construir la condición “Si Monto
> 5000 y (Tipo de Producto = 1 o Tipo de Producto =
2)”.
Para eso
se necesita una condición “Si Monto > 5000” y un grupo para
“(Tipo de Producto = 1 o Tipo de Producto = 2)”, puesto que esta
última condición se debe evaluar primero para después comparar el
resultado con “Si Monto > 5000”. Los grupos cumplen la misma
función que los paréntesis.
En primer
lugar se crea una condición con “+Condición” y se ingresan de
izquierda a derecha el dato de aplicación “Monto”, el operador
“mayor a” y el valor “5000” (Figura 225).
Figura 225Construcción de la condición “Si Monto >
5000”
Luego se
agrega un grupo con “+Grupo”, dos condiciones dentro del mismo con
su botón “+Condición” y se presiona en “Alguna” (Figura 226) para poder llenar las dos condiciones que se
evalúan con el operador “O”.
Figura 226 Construcción de grupo con dos condiciones bajo el operador
“O”.
Una vez
hecho esto se procede a completar los campos de las condiciones: la
primera, de izquierda a derecha, con el dato de aplicación “Tipo de
Producto”, el operador “igual” y el valor “1”. La segunda condición
se completa de la misma forma pero con el valor “2” al final,
obteniendo la condición final como indica la Figura 227.
Figura 227 “Si
Monto > 5000”, y un grupo para “(Tipo de Producto = 1 o Tipo de
Producto = 2)”
Las
compuertas paralelas y las compuertas inclusivas se usan de a
pares. La segunda compuerta tiene opciones para determinar bajo qué
condiciones el proceso debe continuar al llegar a ella y qué hacer
con hilos que quedan pendientes. Estas opciones son:
- Continuar después de:
-
- Todos los hilos han finalizado: el proceso se detiene en la compuerta
divergente y espera hasta que todos los hilos finalicen para
continuar.
- Algún hilo ha terminado: el proceso continuará ni bien una cierta cantidad
de hilos haya terminado, y no esperará la finalización de los otros
hilos. La cantidad de hilos a esperar se especifica donde dice
“Número de hilos”.
- Los hilos provenientes de los pasos han
terminado: permite
especificar qué hilos el proceso debe esperar. El formulario
muestra el nombre del último elemento de cada hilo acompañado de
una caja de verificación que se puede marcar. El proceso continuará
cuando hayan terminado todos los hilos correspondientes a los
elementos que se han marcado.
o
Finalizar hilos
hermanos: si esta
opción está marcada, todos los hilos que no hayan terminado serán
finalizados antes de que el proceso continúe.
Figura 228 Propiedades avanzadas de una compuerta
convergente
Los
artefactos son objetos cuyo propósito es hacer más manejable y
comprensible el proceso. En el diseño del proceso, tienen un
comportamiento distinto al de otros elementos: no son parte del
flujo del proceso. Se los puede conectar a actividades, eventos y
compuertas, pero sólo para señalar que están relacionados con
ellos. Son elementos informativos que no afectan al
proceso.
Los
artefactos disponibles en Q-flow son:
·
Referencia de objeto de
datos: representa un
conjunto de datos que se usa en alguna actividad.
·
Referencia a base de
datos: representa un
almacén de datos, como por ejemplo una base de datos.
·
Anotación:permite escribir un texto y asociarlo a algún elemento del
diseño.
Figura 229 Referencia a objeto de datos
Figura 230 Referencia a base de datos
Tanto una
referencia a objeto de datos como una referencia a base de datos se
agregan al diseño y se conectan con el elemento al que se refiere.
Por ejemplo, si una tarea de servicio actualiza una base de datos,
se puede agregar una referencia a base de datos para indicar cuál
es la base de datos que actualiza (Figura 231). Para escribir el nombre de la base de datos, haga doble
clic en la referencia a base de datos. Debajo del objeto aparece
una caja para escribir un texto.
Otro
ejemplo: si un usuario utiliza determinado conjunto de datos para
desempeñar una tarea, se puede incluir en el diseño un objeto de
datos que indique cuál es el conjunto de datos (Figura 232).
Figura 231 Referencia a
base de datos en tarea de servicio
Figura 232 Referencia a
objeto de datos en tarea de usuario
Figura 233 Anotación
Cuando se
selecciona un elemento del diseño del proceso, una de las opciones
que aparece sirve para agregar una anotación. Si hace clic en el
botón correspondiente, Q-flow crea una anotación y le permite
posicionarla en el lugar que desee. Una vez posicionada la
anotación, hágale doble clic para ingresar un texto. Se puede
aumentar el tamaño de una anotación para que el texto
quepa.
Figura 234 Opciones de un elemento con botón de agregar
anotación
Figura 235 Diseño con anotación
Un pool
permite crear andariveles para organizar el proceso, agrupando
dentro de un mismo nivel elementos relacionados.
Cuando se
agrega un pool, todos los elementos del diseño quedan dentro de él.
No está permitido arrastrar elementos hacia afuera del pool: todos
los elementos del diseño deben estar dentro.
Figura 236 Pool
Una vez
creado un pool, se pueden agregar andariveles con los botones que
aparecen al seleccionar el pool (Figura 236). Los andariveles se pueden agrandar o achicar,
seleccionándolos y usando el ratón para arrastrar sus bordes hacia
uno u otro lado.
Figura 237 Proceso con andariveles