Muchas veces se requiere algo más que la asignación de permisos para que un usuario edite partes de un sitio Web – puede requerir asignar la tarea a un usuario que no puede publicarla hasta que la persona responsable revise el contenido final. Un flujo de trabajo sirve para establecer dicho ciclo de aprobación. En otros casos sólo consiste de una forma útil de colaborar transmitiendo el contenido de una página de una persona a otra dentro de un grupo de trabajo
¿Cómo se usa esto en la práctica cerrar? Dentro del sitio "FC Bigfeet" ya uso un flujo de trabajo. En éste se especificaba un usuario “news” que recibía la tarea (tarea pendiente) de crear nuevos elementos de noticias para el sitio Web. Al terminar, el usuario envía de nuevo la tarea pendiente al destinatario que revisará el contenido y, si todo está bien, finalizará el proceso lo que significa que el elemento se mueve automáticamente al archivo de noticias y posiblemente se muestre también dentro de la página principal.
Antes que nada, echemos un vistazo al usuario llamado "news". Intente abrir la sesión como "news" (contraseña "football"):
Ya se habituó a utilizar el módulo “Page” para realizar cierto número de tareas – pero el usuario "news" tiene restringido el acceso de forma tal que solamente podrá ver el módulo “Task Center” (centro de tareas). Esto debe ser suficiente para él puesto que sólo debe verificar las tareas pendientes dentro de su buzón de entrada (mismo que se encuentra vacío en este punto puesto que aún no se asignan tareas).
Cierre de nuevo la sesión y regresé al “backend” como usuario "admin". Intentará iniciar un nuevo proceso de flujo de tareas al asignar una tarea pendiente (To-Do) al usuario "news".
Crear la tarea
Vaya al módulo “Task Center” (centro de tareas), y haga clic en "Tasks" (tareas)...
Ahora cree un nuevo flujo de trabajo. Sólo existe uno por el momento (se le mostrará cómo configurar otros posteriormente):
Ahora tendrá que rellenar un formulario como el siguiente:
La parte más importante consiste en seleccionar destinatario (nº 1). Éste puede ser un grupo o un usuario específico. Hemos seleccionado al usuario "news" tal y como lo habíamos ya planeado. A continuación colocaremos un título (nº 2) dio una descripción (nº 4) – esto es simplemente una descripción del trabajo para que el usuario sepa lo que tiene que hacer cuando lo vea. Fije la fecha límite (nº 3) para llevar un control de aquellas tareas que se retrasan (esperando que esto no suceda).
Finalmente, puede hacer que el sistema envié un correo electrónico (nº 5) al destinatario cuando se haga clic sobre el botón "Create" (crear). Si el destinatario no es exactamente el tipo que siempre está usando TYPO3, enviarle un correo electrónico ¡es una muy buena idea! (requiere que la función de correo electrónico de PHP ya funcione).
Una vez finalizada la creación de nuevas tareas, se le mostrará una vez más todos los elementos pendientes:
Lo elementos "Outgoing To-Do items" (elementos pendientes salientes) son aquellos que acaba de crear y que esperan una acción de parte de otra persona. En este caso el usuario "news".
Haga clic en el título si desea ver los detalles:
Como podrá ver, la información ya está ahí. Aún no se asigna el estado del usuario "news".
Aceptando la tarea
Inicie la sesión como usuario "news":
CONSEJO: Si crear una nueva ventana del Navegador de Internet de Microsoft a partir del icono existente en su escritorio de trabajo (contrariamente a crearla utilizando el atajo CTRL+N) podrá iniciar una nueva sección como otro usuario – el usuario "news" – y tener dos ventanas distintas cada una de ellas con un usuario diferente. Esto es posible puesto que el Navegador de Internet no comparte las “galletas” (cookies) entre las dos ventanas.
Dentro del “Centro de Tareas” el usuario "news" verá lo siguiente:
Interesante. ¡La tarea "News" ya está ahí! Haga clic en el marco de la izquierda. Ahora podrá ver los detalles tal como lo realizó anteriormente con el usuario "admin":
Como usuario "news" seleccionó "Add Status" (agregar estado) a "Begin task now" (iniciar tarea) y luego creó una nota tal como "OK!" e hizó clic sobre el botón “Send new Status” (enviar nuevo estado).
Ahora verá aparecer el formulario para un nuevo elemento de noticias:
El elemento fue creado como parte del estado "Begin task now" (iniciar tarea) que agregó. Éste elemento se adjunta ahora a la tarea y todo lo que requiere hacer es rellenar el contenido. Una vez realizado esto, haga clic sobre el botón "Save document and close" (guardaran documento y cerrar) para regresar al centro de tareas (Task Center). Si hace clic sobre el título del elemento pendiente una vez más, se le muestran los detalles de la actualización:
Como puede ver el elemento se adjunta aquí y al hacer clic al lápiz de edición de puede proceder a modificarlo – hasta que esté listo para informar al usuario "admin" que su trabajo terminó.
Cuando el elemento esté listo para su publicación (en su opinión) puede cambiar su estado a "Pass on to another user/group" (enviar a otro usuario/grupo). Esto también puede utilizarse para enviar la tarea a otro colega que debe resolver si se publicará o no. Seleccione el destinatario (en este caso solamente el "Sender"; remitente), agregue una nota así considerar esto necesario y haga clic sobre el botón "Send new status" (enviar nuevo estado)..
Ahora la lista de tareas pendientes se encuentra vacía, esperando un nuevo trabajo.
Finalizando el flujo de trabajo
una vez más como usuario "admin" verá que la lista de tareas pendientes se le ha devuelto:
Si hace clic sobre el título del elemento verá los detalles. Haga clic sobre el lápiz de edición para revisar el contenido:
Aparte de verificar el contenido de los nuevos elementos, también tendrá que determinar si vale la pena colocar el elemento en la página principal. Este campo no está accesible al usuario "news" – es un campo de exclusión “excludeField”.
Una vez satisfecho con el elemento, puede activar el paso final al seleccionar "Finalize workflow" (finalizaron flujo de trabajo) dentro de la lista "Add Status" (agregar estado):
Eso es todo. Este paso finalmente mueve los elementos de noticias al archivo correspondiente y los hace disponibles en el “frontpage”:
"Done" (Finalizado)
El último paso consiste en mover el elemento de las tareas pendientes a la papelera de reciclaje: Sencillamente active la opción "Done" (finalizado) y luego la acción "Delete marked To-Do items" (borrar elementos pendientes marcados):
El flujo de trabajo que acabamos de recorrer se configura como un registro dentro de la raíz del árbol de páginas. Como todos los registros dentro de la raíz del árbol de páginas, tiene que ser el usuario administrador “admin” para editarlos y crearlos:
Tal registro contiene estos campos:
Además del título y descripción (nº 1), el registro define en primer lugar de qué tabla (nº 2) de elementos de TYPO3 se crea. Esto significa que el sistema de flujo de trabajo puede utilizarse para controlar el proceso de creación no sólo de las páginas, elementos de contenido de página o elementos de noticias, sino de ¡cualquier elemento!
Obviamente algunas tablas son más interesantes que otras en este contexto pero el principio se aplica a todas.
La “Página bosquejo”
El siguiente principio importante es la "Draft Page" (pa´gina de anteproyecto o de bosquejo (nº 3).
La carpeta de sistema sysFolder "News items draft page" (página bosquejo de elementos de noticias) se crea como un repositorio seguro de donde el usuario "news" puede realizar sus creaciones sin peligro. El sysFolder trabaja como una página de anteproyecto. Cuando el usuario "news" establece el estado "Begin task now" (iniciar tarea) el elementos de noticias adjunto a la tarea se crea automáticamente en esta carpeta.
El elemento de noticias se conserva en esta carpeta hasta que el proceso de trabajo finaliza y lo aprueba el remitente – luego se elimina del directorio y se inserta dentro de la página "News" ( tal y como lo indica el campo "Move to page when finalizing"; mover a página cuando se finaliza, nº 6).
Grupos destino y revisión de usuarios
Entre la página bosquejo y la página final (“Draft page” y "Final page") encontrará la configuración de los campos "permissions" (permisos) para el flujo de trabajo. En "Target groups for workflow" (grupos destinos para el flujo de trabajo) se puede especificar los usuarios que recibirán la tarea para crear el elemento. En éste caso sólo aquéllos usuarios que son miembros del grupo "News editor" recibe en la tarea.
El flujo de trabajo aquí es sencillo "[Editor] -> [Autor] -> [Editor]". En algunos casos se puede incluir a un tercero. El flujo de trabajo podría ser entonces "[Editor] -> [Autor] -> [Revisor] -> [Editor]". Si ése es su caso, deberá crear una relación al revisor utilizando el campo nº 5.
Finalmente, el campo "Unhide when finalizing" (mostrar al finalizar) indica que se mostrará el elemento cuando se termina la tarea.
¿Olvidamos algo? Ah, sí, no hemos discutido el campo "Groups allowed to assign workflow" (grupos que pueden asignar un flujo de trabajo). Dejemos que el pequeño icono "?" hable por sí mismo:
Sólo recuerde...
Para que este flujo de trabajo funcione – en términos de permisos para el usuario "news" – requerirá cumplir con ciertos requisitos.
El grupo de miembros
El usuario “news" es miembro del grupo "News editor" (editores de noticias). Ese grupo tiene que la opción "Access Lists" (lista de acceso) activa, tal como el grupo "GENERAL" que ya conocemos. Pero la configuración, claro está, es diferente:
Cómo puede ver (imagen inferior) sólo los módulos Usuario y Centro de Tareas están habilitados. La tabla de Noticias es la única que se puede editar. Así mismo, la opción “Allowed Excludefields” (campos de exclusión permitidos) son seleccionados en relación a la tabla “News” (noticias):
Los permisos de la página de bosquejo
Claro está que estos permisos deben estar configurados adecuadamente. En este caso, como estamos creando elementos de una página, podemos utilizar esta configuración (vea la imagen inferior). El grupo "News editor" es el propio tallo y cuenta con los permisos necesarios para crear nuevos contenidos de página:
Montar la base de datos
Requeriremos también montar la base de datos, aún cuando no haya un árbol de páginas disponible para el usuario "news":
Esto se debe a que el sistema de permisos predefinidos de TYPO3 verificar si la página donde se crea el registro pertenece a la base de datos montada por el usuario.
Pendientes del flujo de trabajo
Contamos con una pequeña lista de pendientes de desarrollo dentro del sistema de flujo de trabajo de TYPO3. La más obvia es la necesidad de poder volver a reciclar los elementos existentes dentro de un nuevo flujo de trabajo. Esto aún no es posible. Si esto cambia en un futuro, infórmenos para eliminar ésta sección... :-)