Qflow Design¶
Introducción¶
Este manual explica cómo diseñar un proceso usando Qflow Design.
Organización de este manual¶
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ón de 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.
Guía rápida¶
El objetivo de esta sección es dar una introducción rápida a Qflow 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.
Un proceso sencillo de quejas¶
Una empresa quiere mejorar su sistema de atención a quejas de clientes mediante un proceso de Qflow. El proceso de quejas que implementarán es así:
Un cliente llama a la empresa para expresar una queja.
El receptor de la llamada inicia un proceso de Qflow 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.
El gerente comercial elige a un empleado como encargado de atender la queja.
El encargado de atender la queja la atiende y redacta un texto para enviarle por correo electrónico al cliente.
Se envía automáticamente un mensaje de correo electrónico al cliente, utilizando el texto ingresado en el paso anterior.
Termina la ejecución de proceso.
Construcción del proceso en Qflow¶
Para construir el proceso, podemos crear una plantilla (llamada “Quejas” para este ejemplo), y marcar la opción «Crear subpaquete contenedor del proceso», de modo que se creará automáticamente un paquete (con el mismo nombre con el que se crea la plantilla) con la plantilla creada dentro del mismo.
En caso de que queramos darle un nombre más específico al paquete, distinto del nombre de la plantilla, podemos crear el 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 abrirá el diseñador en el cual podemos interactuar con nuestra definición de proceso. Aquí se pueden agregar al diseño los elementos del proceso. La Figura 388 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, Qflow notificará al gerente comercial, que ingresará a Qflow Task 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.
Agregar los elementos al diseño del proceso¶
Para agregar los elementos al diseño:
Al crear la plantilla, se muestra el diseño del proceso (Figura 389). En caso de que no vea el diseño del proceso, puede usar la opción «Diseño del proceso» que se muestra en el menú contextual de la versión de la plantilla. Haga clic en la conexión y pulse la tecla “Suprimir”. Esto desconecta los pasos.
Para agregar la tarea “Elegir encargado de atender la queja”, seleccione el ícono que representa una actividad en la barra de herramientas (Figura 390, “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 390). Si selecciona el ícono que representa una actividad (Figura 390, “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 391.
Seleccione la herramienta de conexión en la barra de herramientas (Figura 392). 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.
Conecte también la última actividad al evento de fin, como lo muestra la Figura 395.
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 396, “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”.
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.
Roles del proceso¶
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”:
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 397).
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 398).
Haga clic en el botón con el símbolo “+” para agregar un rol.
En el formulario que aparece, escriba el nombre del rol (Figura 399). 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 Qflow. Si no sabe cuál es ese nombre, coloque el cursor sobre el menú de usuario en la parte de arriba a la derecha (Figura 400). É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.
Haga clic en el botón de Aceptar y crear otro (Figura 399, “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, Qflow le advertirá 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 401.
Datos de aplicación del proceso¶
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”:
Haga clic con el botón derecho del ratón en la plantilla del proceso, seleccione “Ítems” y “Datos de aplicación”.
Haga clic en el botón con el símbolo “+” para agregar un dato de aplicación.
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.
El listado de datos quedará como muestra la Figura 403.
Propiedades de los elementos del diseño¶
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 404, “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.
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 405). Después, haga clic en el botón correspondiente al alcance “Editable” (el segundo desde la izquierda, Figura 405). 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.
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 406).
A continuación, haga clic donde dice “Mensaje” para expandir la sección de propiedades del mensaje del formulario de propiedades (Figura 407).
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. Qflow muestra los ítems que se pueden seleccionar como etiqueta (Figura 408).
Seleccione en la lista el dato de aplicación “Nombre del cliente”. En ese momento, Qflow 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 409.
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 a Qflow Task 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 Qflow agregue una respuesta a la lista de respuestas que estaba vacía. La respuesta agregada tiene, por defecto, el texto “Respuesta 1” (Figura 410).
Haga clic en “Respuesta 1”. Eso le permitirá modificar el texto, como muestra la Figura 411.
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).
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, Qflow enviará la tarea a la cuenta de usuario que fue especificada como miembro de ese rol (Figura 413).
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 414).
En “Alcance de datos”, seleccione todos los datos y haga clic en el botón “Sólo lectura” (Figura 415).
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 416.
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 417).
Tarea de e-mail¶
Donde va el nombre de la tarea de e-mail, escriba “Notificar 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 418).
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 419). Así funcionan las propiedades que usan un área de texto (por ejemplo, el código de una tarea de código).
Al seleccionar la etiqueta, se mostrará como en la Figura 420.
Proteger plantilla y versión¶
Una vez que terminó de definir el proceso, 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 421).
Poner versión en producción¶
Finalmente, debe indicar que la versión 1.0 (la única, por ahora) es la versión en producción. De lo contrario, cuando ingrese a Qflow Task 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 422).
Iniciar un proceso¶
Para iniciar un proceso y poder realizar pruebas, utilice Qflow Task (Figura 423). Para más información, consulte el manual de Qflow Task.
Segunda versión de 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 Qflow Task, se podrá ver como muestra la Figura 424.
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 425. A continuación, se describe cómo diseñar la nueva versión.
Creación de la nueva versión¶
Desproteja la plantilla de proceso.
Hágale clic con el botón derecho y, en el menú contextual, haga clic en “Agregar versión” (Figura 426).
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 427).
Creación del nuevo dominio¶
Para crear el dominio de tipo lista “Categoría de queja”:
Desproteja la plantilla de proceso.
Seleccione la plantilla con el botón derecho y en el menú seleccione “Ítems” y después “Dominios de dato” (Figura 428).
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 para que Qflow muestre las propiedades de la lista.
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 430).
Repita el procedimiento para agregar dos filas más: “Mala atención” y “Otra”. Después, acepte los cambios.
Guarde los cambios en la lista mediante el botón de “Aceptar”.
Guarde los cambios en el dominio mediante el botón de “Aceptar”.
Creación del nuevo dato¶
Cree un dato de aplicación, nómbrelo “Categoría” y donde dice “Dominio de datos” seleccione “Categoría de queja”.
Modificación del diseño del proceso¶
Para modificar el diseño:
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 432.
Agregue dos tareas.
Conecte la compuerta exclusiva con las dos nuevas tareas.
Conectar las dos nuevas tareas con la tarea “Notificar al cliente”.
Renombre los elementos nuevos para que queden como los de la Figura 434.
Modifique el alcance del evento de inicio, de modo que el dato “Categoría” tenga alcance “Requerido”. Recuerde marcar la casilla “Mostrar datos con alcance ausente” para poder verlo, pues por defecto Qflow sólo muestra los datos con alcance editable.
Creación de dos nuevos roles¶
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 436.
Configuración de los nuevos pasos¶
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 437).
Abra el formulario de propiedades de la compuerta exclusiva.
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 438).
En la subsección correspondiente a la tarea “Atender Producto Defectuoso”, haga clic en “+Condición”. Esto agrega una condición vacía (Figura 439).
Donde dice “Empiece a escribir”, escriba “Categoría”. Cuando aparezca una lista con el dato de aplicación “Categoría”, selecciónelo (Figura 440).
En la caja de texto que aparece en la parte derecha de la condición, al lado del operador “igual”, escriba “Producto defectuoso” (Figura 441).
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 442 muestra cómo queda la configuración de la compuerta exclusiva.
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 443). De este modo, si ninguna de las otras expresiones se evalúa como verdadera, se utilizará esta conexión.
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).
Otras mejoras posibles¶
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 Qflow que todavía no se han mencionado.
Uso de un web service y de una base de datos propia¶
Existen distintas situaciones en donde se podría querer utilizar o modificar información proveniente de bases de datos externas al almacenamiento interno de Qflow.
En general, se utiliza un web service (SOAP o REST) para acceder a la base de datos y para proveer a Qflow 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 Qflow 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 Qflow 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).
Manipulación de datos del proceso en código propio¶
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 Qflow para interactuar con los datos de sus procesos se describen detalladamente en el manual de la Interfaz de Scripting.
Colas de trabajo¶
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 de Qflow Team. Ese manual también explica cómo crear colas de trabajo.
Operación de la interfaz de usuario¶
Esta sección explica cómo utilizar Qflow Design.
Descripción general de la interfaz de usuario¶
La Figura 444 muestra la pantalla principal de Qflow Design.
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.
El árbol de paquetes¶
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 451). 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.
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 pestañas 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 pestañas pueden estar abiertas simultáneamente, como se puede ver en la Figura 452.
Una pestaña se puede cerrar haciendo clic en la cruz que aparece cuando se posiciona el cursor del ratón sobre ella (Figura 453).
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, se 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.
Desproteger: desbloquea el elemento para el usuario que lo desprotegió, permitiéndole modificarlo, y lo bloquea para los demás.
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).
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.
Deshacer desprotección: libera el elemento para que otro usuario lo pueda modificar, pero sin guardar los cambios (los cambios se pierden).
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, Qflow 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). Se indica también en qué zona horaria se muestran las fechas.
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:
Definir el alcance de datos, roles, adjuntos y comentarios (ver Alcance de datos, roles, adjuntos y comentarios).
Definir formularios personalizados (ver Formularios personalizados).
Asociar validaciones a los formularios (ver Validaciones).
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 Qflow. 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.
Exportación de paquetes, plantillas y versiones¶
Para exportar un paquete, plantilla o versión, haga lo siguiente:
Haga clic con el botón derecho sobre el paquete, plantilla o versión en el explorador de soluciones. Qflow mostrará un menú contextual.
En el menú contextual, seleccione la opción “Exportar”. Qflow le mostrará una ventana como la de la Figura 455.
Para el caso de las versiones, seleccione el formato en el que desea exportar. Las opciones son el formato nativo de Qflow 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.
Para el caso de los paquetes y plantillas, si no quiere exportar todos los descendientes del paquete, desmarque la opción “Exportar paquetes descendientes”.
Haga clic en “Exportar”.
Importación de paquetes, plantillas y versiones¶
Para importar un archivo producido por una exportación anterior, haga lo siguiente:
Seleccione el paquete o plantilla donde desee importar el contenido del archivo y hágale clic con el botón derecho.
En el menú contextual, seleccione “Importar”. Qflow mostrará una ventana como la de la Figura 456.
Seleccione el formato del archivo a importar. Los formatos soportados son el nativo de Qflow y BPMN XML.
Seleccione el archivo a importar y marque las opciones que desee:
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.
Corregir referencias ausentes: esta opción le indica a Qflow 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, Qflow ignorará ese usuario en la importación. Si no se marca esta opción, cuando Qflow 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.
Haga clic en “Importar”. Si el paquete, plantilla o versión contenido en el archivo ya existe, Qflow 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.
Zona de edición¶
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 Qflow y es también allí donde se diseñan los procesos.
Página de inicio¶
Cuando un usuario ingresa a Qflow Design, o cuando hace clic en el ícono de inicio en el menú superior, Qflow 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 457.
La opción “Crear plantilla” 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.
El indicador de plantillas en producción muestra cuántas plantillas tienen una versión en producción.
La sección “Pestañas recientes” muestra las pestañas más recientes agrupadas por paquete, plantilla o versión. Los íconos corresponden a los tipos de pestañas (datos de aplicación, roles, etc.) Haga clic sobre el ícono para abrir la pestaña.
Trabajo con paquetes, plantillas de proceso y versiones¶
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.
Creación de un paquete¶
Para crear un paquete:
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 se muestre el menú contextual del paquete seleccionado.
Seleccione la opción “Agregar sub paquete”. Esto hace que se muestre un formulario como el de la Figura 459, 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.
Ingrese el nombre y la descripción del nuevo paquete y haga clic en el botón de guardar.
Creación de una plantilla de proceso¶
Para crear una plantilla de proceso, haga lo siguiente:
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 se muestre el menú contextual del paquete seleccionado.
Seleccione la opción “Agregar plantilla de proceso”. Esto hace que se muestre un formulario como el de la Figura 460, 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 460 la única opción que aparece es “Plantilla BPMN vacía”, pero se puede partir de un conjunto de plantillas pre-creadas por Qflow. Para más información sobre estas plantillas, vea Plantillas pre-creadas).
Ingrese el nombre y la descripción de la nueva plantilla, marque la opción “Crear subpaquete contenedor del proceso” si quiere que la nueva plantilla sea creada dentro de un subpaquete con el mismo nombre. Luego haga clic en el botón de aceptar.
Creación de una versión¶
Para crear una versión, haga lo siguiente:
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 se muestre el menú contextual de la plantilla seleccionada.
Seleccione la opción “Agregar versión del proceso”. Esto hace que se muestre un formulario como el de la Figura 461, 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 Qflow la copie. Por ejemplo, en la Figura 462 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 Qflow (“1.0”, “1.1”, etc.), Qflow 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”, Qflow 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.
Ingrese el nombre (si es necesario) y la descripción de la nueva versión y haga clic en el botón de aceptar.
Modificación de las propiedades de un paquete, plantilla de proceso o 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 Qflow muestre el formulario de edición del elemento seleccionado (Figura 463). Para el caso de los paquetes y plantillas se puede simplemente hacer doble clic en el elemento.
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 (todas las fechas y horas están expresadas en la zona horaria de la preferencia del usuario):
Fecha y hora en la que el elemento fue creado y quién lo creó.
Fecha y hora de la última modificación hecha al elemento y quién la hizo.
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.
Si el elemento es una plantilla de proceso, se muestra la versión en producción y se permite cambiarla.
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:
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, Qflow envía una notificación a su dueñ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.
Administrar permisos de paquetes, plantillas de proceso y versiones¶
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 464). Esto hace que Qflow muestre un formulario como el de la Figura 465. 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 que se explica en Listas de ítems y también se puede modificar, agregando, quitando y modificando elementos.
Para agregar un permiso:
Haga clic en el botón de agregar. Eso hace que Qflow muestre un buscador de roles (Figura 466).
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:
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).
Nodo
Grupo
Cola de trabajo
Usuario
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 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.
También puede suceder que el usuario no cumpla estas condiciones, pero sea sustituto de uno que sí las cumpla, y en ese caso también tendría permiso. Por más detalles acerca del manejo de permisos en Qflow, consulte el manual de Qflow Team, donde también se explica cómo asociar usuarios con roles de seguridad, nodos, grupos y colas de trabajo.
Plantillas pre-creadas¶
Además del patrón de plantilla vacía seleccionada por defecto, Qflow provee un conjunto de patrones creados al instalar el sistema. Estas plantillas representan algunos flujos y operaciones de negocio que comúnmente se quieren automatizar. Podemos seleccionar estas plantillas en la lista de «Patrón de plantilla» en el panel de creación de la misma.
Las plantillas que Qflow tiene pre-creadas por defecto son las siguientes:
Aprobación de documentos: este proceso contempla el caso de una aprobación de documentos, incluyendo las actividades de creación, revisión, aprobación y su notificación a elaboradores y lista de difusión, así como también opcionalmente una tarea para cargar el documento a un repositorio documental.
Solicitud de vacaciones: define un proceso por el cual un miembro de la organización puede hacer una solicitud para sus vacaciones. Incluye etapas de aprobación del supervisor, verificar y actualizar saldo de días disponbiles, definir suplencias y envío de recordatorios previos al comienzo del período de vacaciones.
Aprobación en dos etapas: define un proceso más generico en el cual se da una aprobación validada por dos usuarios aprobadores, mediante un formulario de petición en el que el usuario que inicie el proceso podrá ingresar el motivo y fecha planificada de lo que se quiera aprobar.
Rendición de gastos: define un proceso en el cual el usuario iniciador presenta uno o más gastos con su justificación, una etapa de aprobación en la cual el gasto puede ser aprobado o no (en caso de que no, permite una revisión de la solicitud para evaluar nuevamente), tareas para representar el movimiento de fondos de parte de personal financiero y notificaciones al usuario solicitante, tanto por aprobación como por rechazo.
Solicitud de compras: define un proceso en el cual el usuario iniciador presenta un gasto con justificación, monto y moneda utilizada, seguido de una aprobación que puede darse en dos etapas en caso que el monto supere un umbral preestablecido. Las aprobaciones tienen definidos controles de tiempo para asegurar que se de un cierre a las solicitudes. Incluye también notificaciones al usuario solicitante por aprobación o rechazo.
Selección de personal: contempla la revisión de currículums postulados y la coordinación y realización de entrevistas. Éstas pueden ser de varios tipos, incluyendo pre selección, por competencias, evaluación psicotécnica, evaluación técnica, verificación de referencias laborales, entre otras. Una vez realizadas las entrevistas, se procede al armado y realización de propuesta laboral. Al terminar el proceso, se notifica al candidato sobre el resultado de su postulación, ya sea de aceptación o rechazo. Además, el proceso cuenta con controles de tiempo para asegurar la eficiencia en la coordinación de entrevistas, con recordatorios semanales para no olvidar programarlas.
Nota
Estas plantillas tienen gran parte de la configuración del diseño ya resueltas, pero en varios casos será necesario que se adapten a las necesidades y particularidades de cada organización. Se recomienda leer las notas incluídas dentro del diseño de estas plantillas para dar las configuraciones finales del funcionamiento de los procesos.
Listas de ítems¶
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 Qflow Design para crear, modificar y eliminar ítems. Para más información sobre el uso de cada tipo de ítem y sus propiedades, consulte la sección Ítems del proceso.
La Figura 469 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).
En la parte superior izquierda están los íconos correspondientes a las siguientes operaciones:
Agregar: cuando se hace clic en este ícono, Qflow 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 470). 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, Qflow muestra el formulario de propiedades básicas del ítem (Figura 470), que es el mismo formulario que el que se usa para crear un ítem.
Cortar: permite cortar elementos para pegarlos en otro paquete: cuando se pegan, esos elementos son eliminados del paquete original. IMPORTANTE: si se corta un elemento y se pega en una rama del árbol distinta a la de origen, se pueden crear inconsistencias, pues otros elementos de la rama de origen que usaban el elemento movido ya no tendrán acceso a él. Además, es una buena práctica proteger ambos paquetes, tanto el de origen como el de destino, para guardar los cambios.
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. Además, si el paquete está protegido, la única posible de estas acciones es “Copiar”.
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 471).
Etapas¶
Qflow 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 Qflow Task.
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 472).
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 473). El tiempo esperado y el tiempo máximo se definen de la misma forma que otros plazos (se explica en Temporización).
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 474).
Diseño del proceso de una versión¶
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 Qflow muestre el diseñador del proceso en la zona de edición (Figura 475).
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. En la parte derecha del diseñador, hay una serie de botones cuyo objetivo es facilitar la visualización del diagrama, además de permitir guardarlo y exportarlo. Todas estas opciones se explican a continuación.
Herramientas de diseño¶
La Figura 476 muestra las herramientas de diseño.
Activar la herramienta de mano: 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í.
Activar la herramienta de lazo: 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.
Activar la herramienta de 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.
Activar la herramienta de conexiones global: esta herramienta permite conectar dos elementos, pero no es la única forma de hacerlo.
Elementos para agregar al diagrama¶
La Figura 477 muestra 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). También se puede adjuntar a una actividad, en cuyo caso es un evento intermedio de borde.
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.
Herramientas de visualización del grafo¶
La Figura 478 muestra 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 479).
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 480.
Atajos de teclado: muestra un cartel que indica todos los atajos de teclado disponibles, como muestra la Figura 481.
Diseño del proceso¶
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.
Agregar un elemento¶
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:
Se selecciona un elemento.
Entre los íconos que aparecen a la derecha, seleccione el que corresponde al tipo del elemento que se desea agregar a continuación.
El nuevo elemento también tiene íconos a la derecha y puede repetir la misma operación con ese elemento y los siguientes.
En la Figura 483 se puede ver un ejemplo donde a partir de un Evento de inicio, se crea una actividad.
Agregar eventos de borde¶
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 484). Para ver más información sobre los eventos de borde y qué actividades lo permiten, vea la sección Eventos intermedios de borde.
Cambiar subtipo del elemento¶
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 482). Qflow muestra entonces la lista de subtipos que se pueden asignar al elemento seleccionado, seleccione el que desee y Qflow lo asignará al elemento (Figura 485).
Eliminar elemento¶
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 482).
Conectar elementos¶
Para conectar dos elementos se puede utilizar la herramienta de conexión
de la caja de herramientas (DesignTools
); 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.
Ver o modificar propiedades de un elemento¶
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.
Modificar una conexión¶
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 Qflow muestre una caja de texto sobre la conexión. Escriba el texto que desee para la etiqueta y pulse la tecla “Enter” (Figura 486).
Para cambiar la forma de la conexión, posicione el cursor del ratón sobre la línea. Esto hace que Qflow muestre un pequeño círculo. Haga clic 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 487).
También se pueden mover los segmentos de una conexión de forma horizontal o vertical como se muestra en la Figura 488.
Ítems del proceso¶
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. Por ejemplo, un ítem que es específico de una versión se debe definir en una versión, mientras que usualmente se definen en la plantilla para poder compartirse entre versiones. Por otro lado, 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).
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.
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 (el código de los programas no se define en Qflow Design, sino que debe 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.
Worklets: permiten definir una porción de un proceso para utilizarla en varios procesos distintos.
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 usando Qflow Design, sino que tiene que ser construida por un programador; consulte el manual de Diseño de Formularios Personalizados por información al respecto).
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.
Datos de aplicación¶
Los datos de aplicación son datos que maneja Qflow 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.
Propiedades de un dato de aplicación¶
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 Qflow Task.
Avanzado (aparece al expandir el formulario): permite definir valores por defecto para el dato.
Dependencias (aparece si el dato tiene dependencias): 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 requeridas (esto aplica para todos los paneles). Esto quiere decir que, de no ser completadas, se mostrará un mensaje de error al intentar guardar el panel.
General¶
Nombre: se recomienda que no haya nombres repetidos entre datos, dado que puede ocasionar errores.
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 Qflow, 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:
Verdadero/Falso: los datos de este tipo sólo tienen dos valores posibles: verdadero o falso.
Fecha: los datos de este tipo almacenan fechas.
Hora: los datos de este tipo expresan horas.
Número: los datos de este tipo almacenan números.
Texto: los datos de este tipo almacenan textos.
Área de texto: los datos de este tipo almacenan textos con varias líneas.
Dinero: los datos de este tipo pueden almacenar números decimales.
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 de Qflow Task.
Bloque de línea: indica el bloque de líneas al cual pertenece el dato. El concepto de bloque de líneas se explica en Bloques de líneas. Para poder estar en una línea, el dato debe ser multivaluado.
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.
Presentación¶
Etiqueta: es el nombre con el que se mostrará el dato en Qflow Task. 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 Qflow Task. 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 Qflow Task, se visualiza la ayuda del grupo de datos al que pertenece.
Avanzado¶
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 Qflow Task para agregar un valor, el valor que se agrega será el indicado en esta propiedad.
Dependencias¶
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 492 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 “Nº de documento” para el parámetro “id”. Esto significa que el dominio, para obtener datos, usará el valor del dato de aplicación “Nº de documento”. Por ejemplo, cuando un usuario acceda a Qflow Task para, responder a una tarea, podrá ingresar un valor para el dato “Nº de documento” y cuando lo haga, el dominio obtendrá datos utilizando el número de documento ingresado.
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”.
Bloques de líneas¶
Cuando un conjunto de datos pertenece a un bloque de líneas, esos datos aparecen en Qflow Task agrupados bajo el mismo rótulo. Para que un dato pueda pertenecer a un bloque de líneas, debe aceptar múltiples valores.
En Qflow Task, 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 493) tiene tres datos. Ese bloque se muestra en Qflow Task como una tabla con tres columnas, una por cada dato: Dirección, Nombre y Teléfono. Vea el manual de Qflow Task por detalles de cómo un usuario interactúa con bloques de líneas.
Alcance: qué datos se pueden ver y modificar en cada interacción con un proceso¶
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.
Roles de plantilla de proceso¶
Cuando Qflow deba enviar el mensaje correspondiente a la tarea, verificará qué usuarios están desempeñando ese rol y enviará el mensaje a esos usuarios.
Las instalaciones y espacios de trabajo contarán por defecto con dos roles incluídos en el paquete raíz, uno que representa al usuario que inicia el proceso, y otro que representa al supervisor de dicho usuario. Al pertencer al paquete raíz, estos podrán ser utilizados en cualquiera de las plantillas o versiones de plantillas que se creen.
Propiedades de un rol¶
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 Qflow Task.
General¶
La sección “General” tiene las siguientes propiedades:
Nombre: se recomienda que no haya nombres repetidos entre roles, dado que puede ocasionar errores.
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.
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.
Supervisor de: si se aplica esta regla, los miembros serán los supervisores de los que se incluyen en la lista de miembros.
Usuario con menos tareas: si se aplica esta regla, Qflow 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.
Supervisor directo: si se aplica esta regla. Qflow 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.
Usuario con menos tareas de la plantilla de proceso: si se aplica esta regla, Qflow 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.
Restricciones¶
La sección “Restricciones” (Figura 495), 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.
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:
Ninguna: el miembro de rol seleccionado puede desempeñar el rol.
Supervisor de: los supervisores del miembro de rol seleccionado pueden desempeñar el rol.
Supervisados por: los usuarios que tengan como supervisor al miembro de rol seleccionado pueden desempeñar el rol.
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.
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.
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.
Presentación¶
Etiqueta: es el nombre con el que se mostrará el rol en Qflow Task. 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 Qflow Task, se visualiza la ayuda del grupo de los roles.
Roles pre-hechos¶
Qflow incluye dos roles que comúnmente se definen para usarlos en los procesos. Debido a que estos roles están situados al nivel del paquete raíz, podrán ser utilizados en cualquier paquete, plantilla o versión creada. Los roles son los siguientes:
Usuario iniciador del proceso: tomará el valor del usuario que inicia el proceso desde su formulario de inicio en Qflow Task.
Supervisor del usuario iniciador del proceso: tomará el valor del usuario supervisor del usuario que inicia el proceso desde el formulario de inicio en Qflow Task.
Alcance: qué roles se pueden ver y modificar en cada interacción con un proceso¶
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.
Dominios¶
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 Qflow, 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 Qflow Task. 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).
Qflow ofrece un conjunto de dominios básicos, pero es posible definir dominios adicionales.
Dominios básicos de Qflow¶
Los dominios básicos de Qflow son los siguientes:
Verdadero/Falso: 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 hora”.
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.
Propiedades de un dominio¶
El formulario de propiedades de un dominio tiene las siguientes secciones:
General
Propiedades
General¶
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 498) para especificar cómo se obtienen los datos. Los tipos de fuente disponibles son:
Ninguno: deje esta opción si no quiere que el dominio acceda a una fuente de datos.
Base de datos: permite especificar una conexión a una base de datos y una consulta para obtener los datos
Web service: permite especificar una conexión a un web service y un método del web service para obtener los datos.
Web service REST: análogo al anterior, pero para un web service de tipo REST.
Lista de SharePoint: permite especificar una lista de SharePoint y una consulta CAML para obtener los datos.
Lista de SharePoint Online: igual que la lista de SharePoint normal, pero para listas de SharePoint Online
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.
Propiedades¶
En “Propiedades” se puede especificar un conjunto de clases de estilos para aplicar al control que se usa paramostrar los datos del dominio en Qflow Task.
Comportamiento:
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.
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
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).
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:
Clase de estilos: nombre de la clase de estilos para mostrar en todos los casos.
Clase de estilos de sólo lectura: nombre de la clase de estilos a utilizar cuando un dato tiene alcance de sólo lectura.
Clase de estilos del contenedor: nombre de la clase de estilos del elemento que contiene el control.
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.
Atributos: conjunto de pares de nombres y valores de atributos HTML que Qflow 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.
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”, opción por defecto) o uno arriba del otro (“Vertical”).
Restricciones:
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, Qflow le mostrará el mensaje de error especificado en la propiedad “Mensaje de error de formato”.
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”.
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”.
Fecha a comparar: esta propiedad sólo existe cuando el tipo de dato del dominio es “Fecha”. Permite especificar una fecha con la cual Qflow, 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á.
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.
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.
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.
Fuentes de datos¶
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.
Configuración de la conexión¶
Para especificar la conexión, siempre hay dos opciones (Figura 500):
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.
Definición de la consulta a una base de datos¶
Definir la consulta a una base de datos requiere saber utilizar SQL.
La Figura 501 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 502). 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 501. “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 501.
Los parámetros de entrada se representan en la consulta con llaves. En la Figura 501, hay un parámetro de entrada llamado “País”.
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 501, “Probar consulta”). Si la consulta funciona, Qflow muestra el resultado de ejecutarla.
Parámetros de salida¶
Para definir parámetros de salida, es necesario probar la consulta, haciendo clic en el botón correspondiente como se muestra en la Figura 501. 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 503, 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.
Definición de la consulta a un web service (SOAP)¶
Una vez especificada la conexión a un web service SOAP (ver Configuración de la conexión), debe hacer clic en el botón de cargar (ver Figura 504) 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. El método seleccionado debe retornar una lista de objetos simples.
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 504) 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 504).
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. Qflow 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). Qflow 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. Qflow lo utiliza, por ejemplo, para pasar el texto ingresado en el selector de ítems. Ejemplo de un método para usar con este parámetro: GetCliente(string filtro).
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).
Mapeo de columnas y parámetros de salida¶
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 504). 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).
Definición de la consulta a un web service REST¶
Una vez especificada la conexión a un web service tipo REST (ver Configuración de la conexión), se debe especificar la acción a realizar, la cual es una URL correspondiente al web service que se desea consultar (Figura 505). Luego se debe seleccionar el método HTTP requerido (GET, POST o PUT).
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 los encabezados, como se explica abajo, y el objeto de entrada, que se explica en Objeto de entrada.
Encabezados HTTP¶
Se pueden especificar encabezados HTTP para enviar en la solicitud, que son pares clave-valor. La clave es un texto, y el valor debe ser un parámetro de tipo “Ninguno” o “Personalizado” que se encuentre definido en la tabla de la sección “Parámetros”.
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 505. Esto abrirá un menú como el de la Figura 506.
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 507 muestra un ejemplo de un árbol de propiedades y subpropiedades.
Para editar el nombre de una propiedad o subpropiedad, puede usar el botón indicado en la Figura 505 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 505). 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 508.
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 509 se muestra un ejemplo de resultado final.
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 504). 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 510, donde los campos con un símbolo de información son aquellos que tienen más subpropiedades, pero no se muestran.
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.
Tipos de control¶
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¶
Área donde se puede escribir varias líneas de texto. Es ideal para datos cuyos valores son textos largos.
Check Box¶
Casillero cuadrado para marcar o desmarcar una opción. Sólo es útil para datos de tipo verdadero/falso.
Combo Box¶
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.
Cuadro de texto con sugerencias¶
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.
Cuadro de texto¶
Caja de texto común con una sola línea (como la caja de texto donde se escribe el nombre de un dominio).
Cuadro de texto enriquecido¶
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.
Documento¶
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).
Etiqueta¶
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.
Hipervínculo¶
Control que, cuando se le hace clic, navega hacia una página web. Es útil cuando los datos representan direcciones web.
Lista de Check Box¶
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).
Lookup¶
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 Qflow muestra el valor correspondiente a ese identificador.
Radio button¶
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.
Selector de fecha y hora¶
Combinación de selector de fechas y selector de horas. Si posiciona el ratón sobre el símbolo del mundo, verá la zona horaria de preferencia del usuario.
Selector de ítems¶
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 Qflow los filtra a medida que el usuario escribe el nombre del elemento buscado.
Integraciones¶
Las integraciones permiten que Qflow 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 Qflow 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 Qflow. 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.
Propiedades de una 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.
General¶
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, haga clic en la opción seleccionada (puede ser “Ninguno”) y elija una operación de la lista que Qflow le muestra.
Parámetros¶
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.
Para agregar un parámetro, haga clic en el botón “+”. Eso hace que se 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 un parámetro son:
Nombre: nombre que identifica el parámetro.
Tipo de dato:
Texto
Número
Verdadero/Falso: dato con dos valores posibles: verdadero o falso
Fecha
GUID: identificador
Dirección:
Entrada
Salida
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.
Operaciones¶
Las operaciones también se muestran en una tabla (Figura 529). Cuando se agrega una operación, aparece el formulario del asistente para generarla (Figura 530). 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 Qflow 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, Qflow generará el código que ejecuta la operació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.
SharePoint Online: igual que el componente anterior, pero para listas de SharePoint Online.
Web service: un web service.
Nota
En la versión OnPremise de Qflow, también se pueden manejar operaciones de otros tipos: COM, Assembly (componente .Net) y Qflow Assembly (componente .Net que implementa una interfaz definida en Qflow). Estas operaciones no están disponibles en Qflow Design, pero sí en el diseñador clásico. Una vez definidas, es posible ver el código de estas operaciones en Qflow Design.
Para agregar un componente, haga clic en el botón de configurar la operación (Figura 530). 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 Qflow 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:
Conexión a Base de datos: Ver Configuración de una conexión a base de datos por instrucciones.
Conexión a lista de SharePoint: Ver Configuración de una conexión a SharePoint por instrucciones.
Conexión a lista de SharePoint Online: Ver Configuración de una conexión a SharePoint Online por instrucciones.
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).
Encabezados: permite especificar encabezados para la conexión con el web service REST. Para los valores de las claves se debe especificar un parámetro de la integración que sea de entrada o entrada/salida.
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 532) y asignarle un nombre seleccionándola, haciendo clic en “Editar propiedad” (Figura 532) 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.
Una vez especificado un componente, si hace clic en el botón de aceptar, el componente se agrega a la lista de componentes (Figura 533).
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 533, “Siguiente”). La pantalla cambia para mostrar las clases y métodos disponibles (Figura 534). 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 Qflow para representar comandos que se pueden enviar a la base de datos. Las clases son de los siguientes tipos:
[BaseDeDatos].Queries: estas clases permiten ejecutar consultas sencillas generadas automáticamente por Qflow. 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 “ProductosQuery”, 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.
[BaseDeDatos].Upserts: permiten ejecutar secuencias de comandos SQL generados automáticamente por Qflow 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 un único método.
Para listas de SharePoint y SharePoint Online: 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”).
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 “Texto”, aparecerán todos aquellos parámetros configurados como Salida o Entrada/Salida sin importar su tipo (Figura 535). 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.
Ejemplo (Figura 536): 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 535).
Una vez especificados los métodos con sus parámetros, vuelva a hacer clic en el botón de siguiente. Qflow 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 537).
Editor de código¶
Cuando se agrega una operación a una integración, Qflow 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.
Diferencia de versiones
El botón de Ejecutar no se encuentra disponible en la versión Cloud.
Parámetros de aplicación¶
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 tareas de servicio, en fuentes de datos para dominios que los usen, en integraciones, y como etiquetas o parámetros en otros pasos.
Propiedades de un parámetro de aplicación¶
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.
Conexión a SharePoint Online: el parámetro tiene los datos necesarios para conectarse a una lista de SharePoint Online.
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 539). 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).
La configuración de conexiones a bases de datos, web services y SharePoint se explica a continuación.
Configuración de una conexión a base de datos¶
Las propiedades de una conexión a una base de datos (Figura 540) 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, Qflow 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.
Configuración de una conexión a web service¶
Las propiedades de una conexión a web service (Figura 541) 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 Qflow. 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, Qflow abrirá la página del web service en una nueva pestaña del navegador.
Utilización de un parámetro de aplicación¶
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 dominio que usa un web service como fuente de datos, por ejemplo, es necesario especificar la URL del web service. El usuario puede optar por especificar la URL en las propiedades del propio dominio (“Definir en la configuración del origen de datos”) 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 tareas de servicio asícronas y síncronas 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 Qflow (que contienen clases derivadas de CodeScriptBase; ver el manual de la Interfaz de Scripting).
Formularios personalizados¶
Diferencia de versiones
La configuración de formularios personalizados no se encuentra disponible en la versión Cloud, así como tampoco el sitio Web Forms ni el manual de Diseño de Formularios Personalizados para dicho sitio.
Qflow permite sustituir los formularios que aparecen en Qflow Task por formularios personalizados. Qflow 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 Qflow.
Qflow incluye dos sitios para trabajar con procesos, con dos tecnologías distintas:
Qflow Task
Sitio Web Forms
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. Si está utilizando Qflow Cloud, sólo encontrará disponible el manual sobre Diseño de Formularios Personalizados.
Hay tres tipos de formularios en Qflow, 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 Qflow.
Formularios de los procesos: son los formularios que muestran información propia del proceso, y no de alguno de sus pasos. Hay dos tipos:
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, Qflow 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 Qflow Task si se definen los datos de aplicación sin un grupo. La Figura 544 y la Figura 545 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 544), los datos aparecen agrupados en cuadros diferentes, y se indica, para cada cuadro, el nombre del grupo al que corresponde. En el otro (Figura 545), los datos se muestran todos en un mismo formulario titulado “Datos de aplicación”.
El formulario básico de propiedades de un formulario personalizado muestra las siguientes propiedades:
Usar MVC: esta opción indica que el formulario es un formulario MVC, desarrollado para ser utilizado desde Qflow Task. Para especificar un formulario para el sitio Web Forms de Qflow, marque la opción “Usar Web Forms”, que aparece si se expande el formulario. Las propiedades de formularios que usan MVC son las siguientes:
Es área: indica que el formulario es un área portable, que es uno de los tipos de formularios personalizados MVC de Qflow. 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.
Url: escriba la URL relativa (con respecto a la URL básica del sitio Web Forms de Qflow) de la página ASPX que contiene el formulario. Los formularios provistos por Qflow 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.
Asignar un formulario personalizado a un elemento del diseño¶
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”. Seleccione allí el formulario que desee (Figura 547). Sólo aquellos formularios cuyo tipo aplique a ese elemento aparecerán.
Asignar formularios del proceso y de edición del proceso¶
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”. Qflow muestra un formulario con una sección, “Formulario”, 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”.
Diseño de formularios personalizados¶
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 Qflow 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.
Manejadores de eventos¶
Los manejadores de eventos son pequeños programas que Qflow 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.
Propiedades de los manejadores de eventos¶
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.
Propiedades del manejador¶
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, Qflow 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 549). 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.
Asociar un manejador de eventos con un evento¶
Para que Qflow ejecute un manejador de evento, hay que asociarlo a un evento de modo que cuando éste ocurra, Qflow 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.
Asociar un manejador a un evento de un elemento 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 Qflow 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 una tarea de usuario, 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 una tarea de usuario 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 con el símbolo de ✓.
Asociar un manejador a un evento del proceso¶
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 el botón con el símbolo de ✓.
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 finaliza el proceso.
Finalizar hilo: ocurre cuando finaliza un hilo.
Hilo en espera: ocurre cuando un hilo finaliza y espera la finalización de sus hilos hermanos.
Iniciar proceso: ocurre cuando inicia el proceso.
Iniciar hilo: ocurre cuando 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.
Worklets¶
Atención
Esta funcionalidad está deprecada y no se puede utilizar en Qflow Design.
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, Qflow Design 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).
Validaciones¶
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 Qflow 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).
Propiedades de una validación¶
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 Qflow, 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.
Asociación de una validación a un formulario¶
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. 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.
Bots¶
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 Qflow. Un bot puede incluso funcionar en un servidor diferente al que alberga los servicios de Qflow. 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:
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 Qflow Design.
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 Qflow.
Propiedades de un Bot¶
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 Integraciones por instrucciones.
Notificación:
No notificar: si se selecciona esta opción, Qflow 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.
Notificar a cola de mensajes: en este caso, Qflow 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.
Elementos del diseño de un proceso¶
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.
Propiedades generales¶
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 556).
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 Qflow Task, 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 Qflow Task.
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.
Temporización¶
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 Qflow 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. Qflow 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). Estos cálculos se realizan teniendo en cuenta la zona horaria configurada en el calendario. Por más detalles sobre los calendarios, consulte el manual de Qflow Team.
Información de tiempo: en esta propiedad se especifica el vencimiento, que se puede definir de cuatro formas:
Fecha fija: permite especificar una fecha.
Fecha variable: permite utilizar el valor de un dato de aplicación de tipo Fecha o FechaHora. Qflow 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.
Tiempo fijo: permite indicar un intervalo de tiempo en segundos, minutos, horas o días. Qflow 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, excepto que se use un calendario.
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 no cuentan a efectos de realizar el cálculo, excepto que se use un calendario.
Alcance de datos, roles, adjuntos y comentarios¶
Qflow 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 Qflow 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”.
Alcance de datos¶
El alcance de los datos de aplicación se modifica mediante una tabla (Figura 558) 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”.
Si se tienen dos datos con el mismo nombre y un alcance diferente de “Ausente”, se mostrará un error al guardar.
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 559 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:
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 559), que permite modificar propiedades del alcance específicas de esos datos (Figura 560):
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 558, 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.
Ordenamiento de grupos¶
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).
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. Aquellos datos que no tengan grupo quedarán dentro del grupo de “Datos de aplicación”, el cual no es ordenable.
Alcance de roles¶
El alcance de roles funciona de la misma forma que el alcance de datos.
Alcance de adjuntos¶
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:
Ninguno: Qflow no muestra los archivos adjuntos en el formulario.
Sólo listar: Qflow muestra los archivos adjuntos, pero no permite abrirlos ni modificarlos.
Sólo lectura: Qflow muestra los archivos adjuntos y permite abrirlos.
Editor: Qflow muestra los archivos adjuntos, permite abrirlos y modificarlos.
Total: Qflow 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:
Número máximo de archivos adjuntos: indica el número máximo de archivos adjuntos que puede tener el paso. Qflow no permitirá agregar adjuntos por encima de este valor, a menos que éste sea 0, que significa que no hay un máximo.
Número mínimo de archivos adjuntos: indica el número mínimo de archivos adjuntos que puede tener el paso. Qflow 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, Qflow no permitirá adjuntar archivos con tamaño mayor al especificado.
Mostrar solo: hace que Qflow muestre sólo los archivos que cumplan con alguna de las expresiones regulares ingresadas en esta propiedad. (*)
Editar solo: hace que Qflow permita editar solamente los archivos que cumplan con alguna de las expresiones regulares ingresadas en esta propiedad. (*)
Agregar solo: hace que Qflow permita agregar solamente adjuntos que cumplan con alguna de las expresiones regulares ingresadas en esta propiedad. (*)
Eliminar solo: hace que Qflow 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, para mas información.
Expresiones regulares de los filtros de los 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”, Qflow 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”, Qflow mostrará solamente los archivos que no tengan extensiones “bat” ni “exe”.
Alcance de comentarios¶
Los formularios de Qflow 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”.
Si se permite ver y agregar comentarios, al responder una tarea, por ejemplo, se ve el formulario como en la Figura 565.
La configuración de comentarios difiere para las tareas de usuario, en las cuales tenemos la capacidad de elegir si se requieren comentarios según la respuesta elegida por el usuario, así como también la opción de agregar la respuesta a la bitácora de comentarios. Para más información, vea la sección de Tarea de usuario.
Etiquetas¶
Muchas propiedades de los pasos de Qflow 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 Qflow 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 566). 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 566, 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.
Tipos de paso¶
En general, los pasos se dividen en tres tipos: eventos, actividades y compuertas. Un evento representa algo que ocurre en el proceso y hay tres tipos: de inicio, intermedio y de fin. Una actividad representa una unidad de trabajo a realizar en el proceso y puede ser una tarea, un proceso automático o un subproceso.
Eventos 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 568) 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 Qflow Task, 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: contiene 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.
Avanzado¶
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.
Nombre autogenerado: un texto con etiquetas para indicar cómo se deben formar los nombres de los procesos.
Descripción autogenerada: un texto con etiquetas para indicar cómo se deben formar las descripciones de los procesos.
Eventos de fin¶
Los eventos de fin que Qflow implementa son en Evento de fin simple, que llamaremos Evento de fin (Figura 569), y el Evento de fin terminal (Figura 570).
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, Qflow 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.
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 Qflow Task, 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 Qflow.
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 de datos, roles, adjuntos y comentarios).
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).
Mensaje¶
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 573). 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.
Comentario requerido: si se configura en “Sí”, indica que la respuesta de la tarea debe tener comentario.
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 respuesta 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 Qflow Task. La Figura 574 ilustra cada una de las opciones.
Permitir respuesta rápida: si la opción está marcada, permite que esta tarea se pueda responder desde la vista de «Mis tareas» en Qflow Task, además de poder ser respondida junto con otras tareas que compartan las mismas respuestas. Esta opción está disponible solamente para aquellas tareas que no tengan elementos requeridos en su alcance (de datos, roles o adjuntos). Para mas información sobre el uso de la funcionalidad, consulte el manual de Qflow Task.
Agregar respuesta a comentarios: permite que las respuestas sean agregadas a la bitácora de comentarios de Qflow Task.
Criterio de respuesta múltiple: permite especificar cuándo el proceso debe continuar, cuando tiene más de un destinatario. Las opciones son
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.
Controles de tiempo¶
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 575).
Al editar un control de tiempo, se muestra un formulario como el de la Figura 576.
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:
Recordatorio: Qflow envía una notificación con un recordatorio para el destinatario seleccionado.
Alerta: Qflow envía una notificación con una alerta para el destinatario seleccionado.
Delegación: Qflow reasigna la tarea, dándosela al destinatario seleccionado.
Vencimiento: Qflow 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.
Avanzado¶
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, Qflow 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.
Tarea de notificación a usuario¶
Una tarea de notificación envía una notificación a usuarios de Qflow. Los usuarios suelen recibir las notificaciones por correo electrónico, pero también las pueden ver en Qflow Task. 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 Qflow Task, 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.
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).
Origen¶
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 Qflow utiliza para enviar notificaciones. Esta es la opción por defecto.
Usar configuración personalizada. En este caso, deberá completar los siguientes datos:
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.
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.
Destinatarios¶
La sección de destinatarios (Figura 582) 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.
Contenido¶
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.
HTML: el cuerpo del mensaje está especificado en HTML.
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 “#”.
Adjuntos¶
La Figura 584 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 “-”.
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, así como la zona horaria para los datos de tipo fecha que se usen.
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.
En la subsección “Configuración de zona horaria” puede seleccionar una zona horaria para todas las fechas que se manejen en el paso. Las fechas en Qflow tienen una zona horaria que influye en los cálculos realizados con éstas. Dado que un proceso con fechas puede ser ejecutado en una zona horaria distinta a la del usuario (si el servidor está en otro lugar), para evitar ambigüedades, se puede indicar específicamente en qué zona se considera que están las fechas. En el caso de que se importe una tarea de fórmula de una versión anterior de Qflow, de forma automática estará seleccionada la opción “Zona horaria del servidor”.
Fórmula¶
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 587).
Las propiedades de una operación son las siguientes (Figura 587):
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:
Valor: un valor fijo. En este caso, escriba el valor.
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.
Función: el resultado de una función. Por ahora, la única función disponible es GetDate(), que devuelve la fecha actual según la zona horaria especificada en la tarea. Esta función se podrá seleccionar si empieza a escribir “GetDate()”.
Rol: un rol de plantilla de proceso. Se selecciona de forma similar a un dato de aplicación.
El primer operando depende del destino: si el destino es un rol, el operando debe serlo también. Si el destino es un dato, el valor que pueda tomar el primer operando depende del tipo de dato del destino.
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 de 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: los valores retornados en estas transformaciones son calculados según la zona horaria especificada en la tarea.
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.
+ (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).
- (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.
* (multiplicación)
/ (división)
mod (resto de dividir el primer operando entre el segundo)
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.
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.
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.
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.
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.
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 este operando son las mismas que las opciones para el primer operando. El segundo operando depende de todo lo anterior: el destino, el primer operando con su posible transformación y el operador. Por este motivo, puede que algunos datos no aparezcan como opción para el segundo operando.
Compuertas¶
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.
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.
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 591) 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).
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 592). Las opciones de esta sección se describen más abajo, en Propiedades de compuertas convergentes.
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).
Especificación de la conexión por defecto¶
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 594).
Finalmente la conexión debería quedar como se muestra en la Figura 595.
Especificación de condiciones¶
Las compuertas exclusivas e inclusivas contienen en sus propiedades condiciones que Qflow 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. En 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 Qflow agregue un elemento a la lista de condiciones (Figura 596).
Una vez agregada la condición, debe especificar sus componentes. Donde dice “Comience a escribir…” 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”, Qflow 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.
Ejemplo¶
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 597).
Luego se agrega un grupo con “+Grupo”, dos condiciones dentro del mismo con su botón “+Condición” y se presiona en “Alguna” (Figura 598) para poder llenar las dos condiciones que se evalúan con 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 599.
Propiedades de compuertas convergentes¶
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.
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.
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¶
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 haya terminado. Sólo si esta opción queda marcada se pueden actualizar los datos del proceso padre desde el proceso hijo.
Mapeos¶
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 603). 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.
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:
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.
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.
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 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: Qflow no copia los adjuntos del proceso padre al proceso hijo.
Agregar adjuntos al hijo: Al iniciar el proceso hijo, Qflow copia en él los adjuntos del proceso padre.
Agregar adjuntos al hijo y actualizar: al iniciar el proceso hijo, Qflow 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, Qflow 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.
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.
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 Qflow.
Propiedades de una tarea de código¶
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 Qflow. 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 Qflow.
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, Qflow 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.
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 611). Por instrucciones sobre cómo asociar datos de aplicación o parámetros a los parámetros del bot, consulte Tarea de servicio.
Eventos intermedios¶
Son aquellos eventos que pueden ocurrir entre el inicio y el fin de un proceso.
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.
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 elemento del diseño.
Evento intermedio simple¶
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
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.
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).
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).
Eventos intermedios de borde¶
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 Qflow 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.
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.
Artefactos¶
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 Qflow 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.
Referencia a objeto de datos y 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 624). 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 625).
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, Qflow 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.
Pool¶
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.
Una vez creado un pool, se pueden agregar andariveles con los botones que aparecen al seleccionar el pool (Figura 629). Los andariveles se pueden agrandar o achicar, seleccionándolos y usando el ratón para arrastrar sus bordes hacia uno u otro lado.