Workflows y Procesos
Documentación del sistema de flujos de trabajo y procesos de la intranet
Sistema de Workflows
Motor de flujos de trabajo configurable
El sistema utiliza un motor de workflows configurable data-driven que permite definir flujos de aprobación sin modificar código. Esto significa que los procesos de validación, aprobación y gestión de solicitudes pueden adaptarse a las necesidades del centro sin necesidad de cambios técnicos.
Gestión de Usuarios
Alta y validación de usuarios
Calendarios
Días libres y permisos
Validaciones
Horarios y documentación
Alta de Nuevo Usuario
request_new_user
Flujo de estados:
Día Libre Disposición
request_free_day
Flujo de estados:
Comunicación de Bajas
request_sick_leave
Flujo de estados:
Mantenimiento de Workflows
Cómo crear y modificar workflows
Pasos para crear un nuevo workflow:
Editar el archivo de configuración
prisma/seed/data/workflows.tsAñadir la definición del workflow
export const myNewWorkflow = {
code: 'my_workflow_code',
name: 'Nombre del Workflow',
description: 'Descripción',
entityType: 'REQUEST',
version: 1,
isActive: true,
states: [
{ code: 'pending', name: 'Pendiente', color: 'amber', order: 1, isInitial: true },
{ code: 'approved', name: 'Aprobado', color: 'green', order: 2, isFinal: true }
],
transitions: [
{ fromCode: 'pending', toCode: 'approved', allowedRoles: ['ADMIN'], requiresComment: true }
]
}Actualizar la exportación
Añadir el nuevo workflow al array allWorkflows
Aplicar cambios en BD
npx prisma db seedEstructura de Estados
| Propiedad | Tipo | Descripción |
|---|---|---|
| code | string | Identificador único |
| name | string | Nombre visible |
| color | string | Color UI (amber, green, red...) |
| order | number | Orden de aparición |
| isInitial | boolean | Estado inicial |
| isFinal | boolean | Estado terminal |
| isTerminal | boolean | Final sin salida |
Estructura de Transiciones
| Propiedad | Tipo | Descripción |
|---|---|---|
| fromCode | string | Estado origen |
| toCode | string | Estado destino |
| allowedRoles | string[] | Roles permitidos |
| requiresComment | boolean | ¿Requiere comentario? |
| validatorCode | string | Validación personalizada |
| autoActions | string[] | Acciones automáticas |
Acciones Automáticas Disponibles
Acciones que se ejecutan automáticamente en las transiciones
create_notification
Crea notificación al usuario cuando cambia el estado de su solicitud
remove_calendar_event
Elimina evento de calendario al cancelar una solicitud aprobada
