Gestión de Incidencias

Creado por Marta Paniagua, Modificado el Mar, 5 May a 9:13 A. M. por Marta Paniagua

Disponibles a partir de la versión 9.0.0.1



Sistema de detección, clasificación y resolución de incidencias en jornadas laborales. Las incidencias pueden ser bloqueantes (impiden la validación) o informativas, con mecanismos de auto-resolución y flujos de validación de periodos.

Ciclo de Vida de una Jornada

Las jornadas pasan por tres estados principales. Durante todo el ciclo, el sistema evalúa continuamente las condiciones de incidencia.

?
StatusId = 0
Generada
StatusId = 1
Validada
?
StatusId = 2
En Balance

Tipos de Incidencias

? Bloqueante

Impide que la jornada pase a estado Validado. La jornada no se puede cerrar hasta que la incidencia se resuelva.

Ejemplos:
  • Missing Markings (falta de fichaje)
  • Fraude Horario (desfase en reloj del dispositivo)
  • Secuencia ilógica de fichajes
ℹ️ Informativa

Son meramente informativas. No impiden la validación pero quedan registradas para análisis y auditoría.

Ejemplos:
  • Salida anticipada
  • Marcaje fuera de turno
  • Incumplimiento de descanso reglamentario

Detección de Incidencias

Las incidencias se calculan en múltiples momentos según su "peso de procesamiento":

A Tiempo Real (Cache Rápida)
Al consultar pantallas de cuadrante o insertar fichajes, el proceso pEmployees_Assistence_RecalcMetrics evalúa los DayTypes (ausencias, festivos, falta de fichajes directos). Muy rápido porque lee registros de Employees_Assistence.
⏱️
Procesamiento Asíncrono (Cron Fast)
pCron_Incidences_Fast corre cada ~5-10 minutos evaluando los últimos 3 días. Detecta: secuencias ilógicas, fraude horario, salidas anticipadas, marcajes fuera de turno y alteraciones en días cerrados mediante el DirtyFlag.
?
Validación de Cumplimiento (Cron Global)
pCron_Incidences_Global bajo demanda para detectar incumplimientos mensuales: falta de descansos reglamentarios, fines de semana libres, etc. No bloquean el cierre mensual.

Auto-Resolución de Incidencias

El sistema está diseñado para limpiar automáticamente incidencias cuya condición ya no se cumple. Los tipos con AutoResolvable = 1 en el catálogo WorkdayIncidenceType se gestionan así:

Situación: Incidencia activa
Ej: Empleado con Missing Markings porque olvidó fichar la salida. La incidencia está en estado StatusCode = 'PENDING'.
?
Acción: Corrección
El administrador añade el fichaje de salida manualmente. El recálculo detecta que la condición ya no se cumple.
Resultado: Auto-resolución
El recálculo marca la incidencia con StatusCode = 'RESOLVED' y ResolutionType = 'AUTO_RESOLVED'. Si se borra ese fichaje después, la incidencia se reabre automáticamente.

Validación de Periodos

Al terminar el mes, Recursos Humanos ejecuta el proceso de "Cierre de Periodo" (pDateEmployee_Validate_Period):

1
Filtrado: Selecciona jornadas con StatusId = 0 (pendientes de validar).
2
Recálculo fresco: Llama síncronamente a los procesos de recálculo (Fast y Metrics) para asegurar datos actualizados.
3
Filtrado de bloqueos: Excluye días con incidencias activas donde BlocksValidation = 1. El resto del mes se valida; el día bloqueado queda pendiente.
4
Transacción SQL: Calcula horas extra, actualiza contadores, establece StatusId = 1 y cierra los fichajes base (Closed = 1).
Resultado: Jornadas validadas y contadores actualizados. Los fichajes quedan bloqueados para el empleado.

Desvalidación de Periodos

Si RRHH detectó un error en una validación ya realizada, puede ejecutar el proceso de rollback (pDateEmployee_UnValidate_Period):

AcciónDetalle
Buscar jornadasLocaliza jornadas con StatusId = 1 del empleado en el tramo
Eliminar contadoresBorra las líneas de contador generadas asociadas al ID de la jornada
Borrar horas extra calculadasElimina del Registro de H.E. todo lo con TypeId = 1 (calculadas automáticamente)
Reabrir jornadasVuelve StatusId = 0
Liberar fichajesEstablece Closed = 0 — el empleado puede volver a editar desde el portal

Casos de Uso Típicos

✅ Cierre de mes exitoso

El empleado ficha correctamente todos los días. HR pulsa "Validar Mes de Enero". El proceso calcula +1 hora a la bolsa de compensación, marca el mes como Validado. Todo correcto.

⚠️ Cierre con incidencia bloqueante

El empleado olvidó fichar salida el 25 de enero — queda Missing Markings (bloqueante). HR pulsa "Validar Mes de Enero". El sistema valida del 1 al 24 y del 26 al 31. El día 25 arrastra el error. HR busca los errores bloqueantes, introduce la salida manual de 18:00, el sistema auto-resuelve el Missing Markings, y HR vuelve a validar el día 25 residual.

? Auditoría activa

RRHH modifica un registro ya validado de la semana pasada. El Cron Fast detecta el DirtyFlag y abre una incidencia de integridad (MARKING_ON_CLOSED, IDs 24-29) para que quede trazabilidad contable de que el dato fue tocado posterior a la validación.

Componentes Técnicos

TipoComponentePropósito
TablaEmployees_AssistenceUna fila por jornada/empleado con métricas, StatusId, DirtyFlag
TablaEmployees_Assistence_IncidencesRegistro de incidencias por jornada con estado y tipo de resolución
TablaWorkdayIncidenceTypeCatálogo maestro: tipo, si bloquea validación, si es auto-resolvable
SPpCron_Incidences_FastProcesamiento asíncrono cada 5-10 min para los últimos 3 días
SPpDateEmployee_Validate_PeriodValidación masiva de jornadas de un periodo
SPpDateEmployee_UnValidate_PeriodRollback de validación: reabre periodo y libera fichajes
Sebastián HR · Documentación técnica v2026 · Módulo de Incidencias

¿Le ha sido útil este artículo?

¡Qué bien!

Gracias por sus comentarios

¡Sentimos mucho no haber sido de ayuda!

Gracias por sus comentarios

¡Háganos saber cómo podemos mejorar este artículo!

Seleccione al menos una de las razones
Se requiere la verificación del CAPTCHA.

Sus comentarios se han enviado

Agradecemos su esfuerzo e intentaremos corregir el artículo