Soporte de aplicaciones · Procesos programados
Conciliación y recuperación de órdenes.
Si una carga diaria se interrumpe, operaciones necesita saber qué órdenes quedaron registradas, cuáles faltan y si puede reintentar sin duplicarlas. Diseñé un flujo de conciliación y recuperación por lote; en mi empresa actual aplicamos diagnóstico y reintentos controlados a procesos críticos.
Valor para operaciones
Evita que una carga parcial se trate como completa y que un reintento duplique órdenes. El reporte separa las órdenes confirmadas de las pendientes y suma el importe ya registrado para conciliar el cierre del lote.
Arquitectura
Valido claves, destinatarios e importes antes de escribir. Identifico cada lote por fecha y huella SHA-256 de su entrada; la tabla de control registra estado e intentos. Cada orden se confirma en una transacción independiente, con unicidad por lote y clave de negocio. El reintento exige el mismo archivo y salta lo ya confirmado.
Resultado comprobado
Interrumpí un lote de cuatro órdenes tras el segundo commit. El reporte identificó ORD-103 y ORD-104 como pendientes y 200.50 de importe confirmado. Tras el reintento, quedaron cuatro órdenes únicas, ninguna pendiente y 252.75 de importe total. Las pruebas cubren también entrada inválida, archivo alterado, dos lotes independientes y ejecuciones repetidas.
Decisión de diseño
El checkpoint vive junto a las órdenes en SQLite: así la recuperación puede consultar lo confirmado antes de reanudar. Los eventos JSON permiten seguir el intento y explicar el incidente sin inferir el estado a partir del último mensaje del proceso.