Ir al contenido

Initiation form

El formulario Initiation es una tarea especial que recopila datos del usuario antes de que un flujo de trabajo comience su ejecución. Cuando se define en un proceso de flujo de trabajo, el formulario de inicio se presenta al usuario en el momento en que inicia el flujo de trabajo, permitiéndole aportar datos iniciales que estarán disponibles durante todo el ciclo de vida del flujo de trabajo.

Técnicamente, el formulario Initiation es un nodo Task con el nombre reservado run_config. Cuando el motor de flujos de trabajo detecta este nombre de tarea, presenta automáticamente el formulario al usuario que inicia el proceso antes de comenzar la ejecución del flujo de trabajo. Esto permite parametrizar y personalizar los flujos de trabajo según los datos introducidos por el usuario en el momento de inicio.

El formulario Initiation usa la misma interfaz de configuración que un nodo Task, pero la mayoría de las propiedades no se utilizan, ya que esta tarea cumple un propósito específico previo a la ejecución.

Propiedad Tipo Uso Descripción
Name Texto Obligatorio Debe establecerse a run_config (nombre reservado). Este nombre especial indica al motor de flujos de trabajo que trate esta tarea como el formulario de inicio.
Id Número Automático Identificador único generado automáticamente por el sistema.
Due date Días / Horas No se usa Este campo no es aplicable al formulario de inicio, ya que el formulario se presenta inmediatamente al iniciar el flujo de trabajo.
Repeat Días / Horas No se usa Este campo no es aplicable al formulario de inicio.
Source position Desplegable No aplica El formulario de inicio no tiene posiciones de origen ni destino, ya que no está conectado a otros nodos en el diagrama del flujo de trabajo. Se ejecuta antes de que se inicie el flujo de trabajo.
Target position Desplegable No aplica El formulario de inicio no tiene posiciones de origen ni destino, ya que no está conectado a otros nodos en el diagrama del flujo de trabajo.
Description Área de texto Opcional Campo opcional para documentar el propósito del formulario de inicio y qué datos recopila.
Form definition Editor XML Campo principal Es la propiedad principal usada en el formulario de inicio. Define los campos del formulario que se presentarán al usuario cuando inicie el flujo de trabajo. La definición del formulario sigue la misma estructura XML que los formularios de los nodos Task.
El editor ofrece tres herramientas accesibles mediante iconos sobre el área de texto:
- Edit (maximizar): abre la definición del formulario en una ventana emergente para facilitar la edición
- Diseñador gráfico: abre una interfaz visual de creación de formularios
- Preview: muestra una vista previa de cómo aparecerá el formulario a los usuarios
El editor admite autocompletado. Pulse Ctrl+Espacio mientras escribe para ver las opciones disponibles y sugerencias de código.
Assign expression Editor de scripts Obligatorio (vacío) Aunque este campo no se usa funcionalmente en el formulario de inicio, no puede dejarse vacío debido a la validación del sistema. El valor recomendado es devolver una cadena vacía:
<br>return "";<br>

Cuando un flujo de trabajo incluye un formulario de inicio:

  1. El usuario inicia el flujo de trabajo (por ejemplo, desde un documento, una carpeta o manualmente)
  2. Antes de que comience la ejecución del flujo de trabajo, se presenta el formulario de inicio al usuario
  3. El usuario completa los campos del formulario y lo envía
  4. Los valores de los campos del formulario se guardan en las variables de contexto del flujo de trabajo
  5. La ejecución del flujo de trabajo comienza en el nodo Start con las variables de contexto ya rellenadas

Si el flujo de trabajo no define un formulario de inicio (sin tarea run_config), el flujo de trabajo se inicia inmediatamente sin solicitar datos al usuario.

Cuando un usuario completa y envía el formulario de inicio, los valores de los campos del formulario se guardan automáticamente en las variables de contexto del flujo de trabajo usando el atributo name de cada campo.

Por ejemplo, un campo de formulario definido como:

<input label="Purchase amount" name="purchaseAmount" />

Creará una variable de contexto llamada purchaseAmount que contiene un objeto Input con el valor introducido por el usuario. Esta variable estará accesible durante toda la ejecución del flujo de trabajo.

Este es un ejemplo de formulario de inicio que recopila información básica de una solicitud de compra:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE workflow-form PUBLIC "-//OpenKM//DTD Workflow Form 1.0//EN"
"https://www.openkm.com/dtd/workflow-form-1.0.dtd">
<workflow-form>
<input label="Requester name" name="requesterName" />
<input label="Department" name="department" />
<textarea label="Purchase description" name="description" />
<input label="Estimated amount" name="amount" />
<select label="Priority" name="priority">
<option label="Low" value="low" />
<option label="Medium" value="medium" />
<option label="High" value="high" />
</select>
</workflow-form>

Este formulario de inicio creará las siguientes variables de contexto al enviarse:

  • requesterName - objeto Input con el nombre del solicitante
  • department - objeto Input con el nombre del departamento
  • description - objeto TextArea con la descripción de la compra
  • amount - objeto Input con el importe estimado
  • priority - objeto Select con el valor de prioridad seleccionado

Como se ha mencionado en la tabla de propiedades, el campo Assign expression debe contener un valor, pero no se usa funcionalmente en el formulario de inicio. Use la siguiente expresión sencilla:

return "";

Esto devuelve una cadena vacía, satisfaciendo el requisito de validación del sistema sin afectar al comportamiento del formulario.

Los formularios se definen mediante sintaxis XML según la especificación de formularios de flujo de trabajo de OpenKM. La definición del formulario establece los campos y la estructura con los que interactuarán los usuarios al iniciar el flujo de trabajo.

Escenarios habituales en los que resultan útiles los formularios de inicio:

  • Solicitudes de compra: recopilar información del solicitante, departamento, importe y descripción antes de iniciar un flujo de aprobación
  • Revisión de documentos: permitir que el iniciador especifique revisores, fechas límite o prioridades de revisión
  • Solicitudes de cambio: recopilar detalles del cambio, evaluación de impacto y prioridad antes de enrutar la solicitud a través de la aprobación
  • Solicitudes de vacaciones: recopilar fecha de inicio, fecha de fin, tipo de vacaciones e información de cobertura
  • Inicio de proyectos: capturar el nombre del proyecto, objetivos, partes interesadas e información de plazos
  • Mantenga los formularios de inicio enfocados: recopile únicamente la información esencial necesaria para iniciar el flujo de trabajo
  • Use etiquetas de campo claras y descriptivas para que los usuarios entiendan qué información deben aportar
  • Añada reglas de validación para garantizar la calidad de los datos antes de que se inicie el flujo de trabajo
  • Considere usar campos Select para datos estandarizados en lugar de texto libre
  • Documente el propósito de cada campo en la propiedad Description
  • Pruebe a fondo el formulario de inicio con usuarios representativos para asegurarse de que es intuitivo
  • Use la función de vista previa para ver cómo aparecerá el formulario antes de desplegarlo