Avance #3 - Segunda Tarea Programada BD1
Sesión 5: 12 de octubre 2025 (2 horas)
Desarrollo del sistema de movimientos de vacaciones
Trabajo realizado:
- Implementé SP_InsertarMovimiento con cálculo automático de saldo
- Desarrollo de lógica para manejar créditos y débitos
- Agregué validación de saldo negativo
- Creé SP_ListarMovimientos para consulta histórica
- Integré bitácora específica para operaciones de movimientos
Código clave implementado:
-- Cálculo de nuevo saldo basado en tipo de movimiento
IF (@tipoAccion = 'Credito')
SET @nuevoSaldo = @saldoActual + @inMonto;
ELSE
SET @nuevoSaldo = @saldoActual - @inMonto;
-- Validación de saldo negativo
IF (@nuevoSaldo < 0)
BEGIN
SET @outResultCode = 50011;
RETURN;
END;
Sesión 6: 13 de octubre 2024 (2.5 horas)
Script de carga de datos XML y resolución de problemas complejos
Trabajo realizado:
- Desarrollé script para cargar datos desde archivo XML
- Implementé carga de catálogos con IDENTITY_INSERT
- Creé sistema para cargar movimientos uno por uno usando los SPs
- Enfrenté y resolví el problema de movimientos de débito con saldo cero
Problema mayor:
Al cargar movimientos históricos desde XML, todos fallaban con error 50008 porque los empleados tenían saldo 0 y muchos movimientos eran débitos.
Solución implementada:
WHILE EXISTS (SELECT 1 FROM @MovimientosTemp WHERE TipoAccion = 'Credito')
BEGIN
-- Procesar créditos primero
END;
WHILE EXISTS (SELECT 1 FROM @MovimientosTemp WHERE TipoAccion = 'Debito')
BEGIN
-- Procesar débitos después
END;
Sesión 7: 14 de octubre 2024 (2 horas)
Debugging masivo y estandarización final
Trabajo realizado:
- Identifiqué y corregí error de parámetros en SP_RegistrarBitacora
- Estandaricé todos los nombres de parámetros en los SPs
- Creé sistema de diagnóstico para errores 50008
- Desarrollé pruebas unitarias completas para cada SP
Error crítico resuelto:
EXEC SP_RegistrarBitacora
@IdTipoEvento = 6, -- ← el SP espera @inIdTipoEvento
@Descripcion = @detalle; -- ← el SP espera @inDescripcion
-- SOLUCIÓN: Estandarizar nombres
EXEC SP_RegistrarBitacora
@inIdTipoEvento = 6,
@inDescripcion = @detalle;
Sesión 8: 17 de octubre 2024 (1.5 horas)
Pruebas finales y documentación
Trabajo realizado:
- Ejecuté suite completa de pruebas para todos los SPs
- Validé la integridad referencial después de operaciones
- Verifiqué que la bitácora capture todos los eventos requeridos
- Documenté el proceso de instalación y configuración
Resultados de pruebas:
- SP_InsertarEmpleado: 6/6 pruebas pasadas
- SP_ActualizarEmpleado: 7/7 pruebas pasadas
- SP_EliminarEmpleado: 5/5 pruebas pasadas
- SP_InsertarMovimiento: 4/4 pruebas pasadas
- Carga de datos XML: 78/78 movimientos procesados correctamente
Comentarios
Publicar un comentario