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.

Arquitectura de cuatro componentes: validación de órdenes, control del lote, persistencia con clave única y reporte de conciliación; el reintento omite órdenes confirmadas
Entrada validada → checkpoint por lote → commit por orden → reporte de faltantes e importe.

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.

Ver perfil de GitHub ↗