Sesion 7
Dia: 06/06/25
Hora de inicio: 09:30
Hora de fin: 11:55
Cantidad de horas trabajadas: 2 horas y 25 min.
Problemas encontrados:
-
Al insertar nuevos empleados saltaba el error 50004 (“Empleado con ValorDocumentoIdentidad ya existe en inserción”) porque el simulador generó cédulas duplicadas.
-
En la primera fecha de
operacion.xml, las marcas de asistencia arrojan 50013 (“Marca sin jornada asignada”) al no haberse generado todavía las jornadas semanales. -
La consulta de eventos (
usp_ListarEventos) devolvía “Ambiguous column name 'PostTime'”, porque la tablaEventoy la vistaVW_EventoDetallecompartían columnas con ese nombre. -
Las tablas de planilla (
MovimientoPlanilla,SemanaPlanilla) quedaban vacías tras la simulación completa porque nunca se invocaba el SPCerrarSemanaPlanilla.
Cómo fueron resueltos:
-
Duplicados de cédula
-
En el wrapper Python de llamada a SP (
call_sp), añadí un parámetro opcionalignore_errors=[50004,50005]para capturar y descartar duplicados no críticos, registrando un warning en log.
-
-
Marca sin jornada
-
Modifiqué el SP
InsertarMarcaAsistenciapara que, si recibe 50013, inserte la marca en tabla de pendientes y emita un evento de tipo “MarcaPendiente” en lugar de abortar.
-
-
Ambigüedad en consulta de eventos
-
En
usp_ListarEventosaliasé todas las columnas problemáticas:
-
-
CerrarSemanaPlanilla
-
Identifiqué que el SP no se llamaba al final de la simulación. Añadí en el script Python, tras procesar 7 días, la invocación a
CerrarSemanaPlanilla(@SemanaActual)para poblar los movimientos de planilla.
-
Dudas:
-
Definir si la automatización de cierre semanal debe residir en el simulador (Python) o configurarse MSSQL.
Forma que se trabajó:
-
De manera asincrónica; GitHub.
Problemas de la instalación del software:
-
Ninguno.
Problemas de aprendizaje del software:
-
Comprender la gestión de estados “pendiente” en marcas de asistencia.
Investigaciones:
-
MSDN: “Handling custom error codes in T-SQL”
-
Documentación de SQL Server Agent Jobs para programar tareas.
-
Artículo sobre “Design patterns for delayed processing” en SQLShack.
Prueba de concepto:
-
Simulación de 160 días con la nueva lógica incorporada. Resultados:
-
Empleados procesados: 148
-
Semanas cerradas: 23
-
Marcas totales: 15 029 (incluidas 214 pendientes)
-
Eventos generados: 17 676
-
Comments
Post a Comment