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

Entradas populares