Contexto
Context
Un proveedor regional de internet y TV (ficticio) da de baja su sistema de facturación. La exportación trae lo de siempre: clientes cargados dos veces, contratos de clientes que no existen, fechas como 31.02.2019, códigos de estado que nadie documentó, importes guardados como texto en centavos.
A regional internet and TV provider (fictional) is retiring its billing system. The export has the usual problems: customers entered twice, contracts pointing to customers that do not exist, dates like 31.02.2019, undocumented status codes, amounts stored as text in cents.
Enfoque
Approach
# mapping/mapping_spec.csv (excerpt) entity,target_field,source_field,transform,required customer,customer_id,CUST_NO,surrogate_after_dedup,yes customer,national_id,DOC_NR,digits_only,yes customer,last_name,NAME_1,strip_title,yes customer,email,EMAIL,lower_validate_email,no
Conciliación
Reconciliation
Estos son los doce controles tal como salen de la última corrida:
These are the twelve checks as they come out of the last run:
Resultado
Result
Salida del caso de prueba sobre datos sintéticos:
Output of the test case on synthetic data:
Los 116 contratos rechazados se explican solos: 51 porque su cliente fue rechazado, 30 huérfanos, 20 con fechas imposibles y 15 con códigos de estado desconocidos. Vuelven al negocio en rejects.csv para corregirse en origen.
The 116 rejected contracts explain themselves: 51 because their customer was rejected, 30 orphans, 20 with impossible dates and 15 with unknown status codes. They go back to the business in rejects.csv to be fixed at source.
Entregables
Deliverables
- Especificación de mapeo revisable por negocio y sistemas.
- Tabla de equivalencias entre IDs viejos y nuevos.
- Reporte de conciliación y lista de rechazados con motivo.
- 8 tests que verifican cada problema cargado en los datos de origen.
- Mapping spec that business and IT can review.
- Crosswalk between legacy and new IDs.
- Reconciliation report and rejects list with reasons.
- 8 tests that check every problem planted in the legacy data.
