Diseño técnico - Ventas Netas
Objetivo
Documentar el diseño técnico del proceso Ventas Netas, incluyendo la arquitectura identificada, la tabla principal, las relaciones, dependencias y consideraciones técnicas asociadas a la construcción de la tabla Silver as4_netsales.
Alcance
Dentro del alcance
- Arquitectura técnica del proceso
NB_Silver_NetSales.dbc.
- Fact principal generada por el proceso.
- Relaciones identificadas entre la fuente transaccional y las dimensiones o catálogos consumidos.
- Dependencias técnicas relacionadas con carga, depuración y compatibilidad de datos.
Fuera del alcance
- Diseño funcional del proceso.
- Fuentes de datos detalladas.
- Reglas de negocio completas.
- Flujo paso a paso del pipeline.
- Runbook operativo.
- Campos principales de salida.
- Clasificación completa de objetos.
- Validaciones no documentadas.
Contenido principal
Descripción general
Este documento concentra el diseño técnico del proceso Ventas Netas, incluyendo la arquitectura identificada, la tabla principal, las relaciones, dependencias y consideraciones técnicas asociadas a la construcción de la tabla Silver as4_netsales.
El proceso sigue un patrón de procesamiento desde Bronze AS400 y catálogos migrados hacia vistas temporales de depuración, agregación de métricas y carga final en una tabla Delta Silver mediate una estrategia delete+ insert por rango de CVE_FECHA.
Arquitectura del Proceso
Patrón identificado:
| Etapa | Objeto | Descripción |
|---|
| Entrada | {v_catalog}.{v_schema_origin}.as4_dctvtasn | Fuente transaccional base filtrada por fecha. |
| Enriquecimiento | vw_dctvtasn_enriched | Cruza producto, cliente, depósito, tipo de crédito y tipo de venta. |
| Depuración | vw_dctvtasn_error / vw_dctvtasn_pass1 | Separa registros inválidos y conserva registros válidos. |
| Agregación | vw_dctvtasn_final_agg | Agrega cantidades, importes y KLT por llaves de negocio. |
| Salida | {v_catalog}.{v_schema_destiny}.as4_netsales | Tabla Delta Silver cargada mediante delete + insert por rango de CVE_FECHA. |
Fact Principal
| Objeto | Tipo | Descripción |
|---|
as4_netsales | {v_catalog}.{v_schema_destiny}.as4_netsales | Tabla Delta Silver de ventas netas. |
Relaciones Identificadas
| Relación | Condición / regla |
|---|
as4_dctvtasn → snw_dim_productos | TRIM(CVEPRO) = TRIM(ID_PRO), usando el producto más reciente por ID_PRO. |
as4_dctvtasn → snw_dim_clientes | NUMCTE + NUMSUC contra ID_CTE + ID_SUC. |
as4_dctvtasn → snw_deposit | TRIM(CVEDEP) = TRIM(ID_DEPOSITO). |
as4_dctvtasn → oon_dim_tipo_credito | UPPER(TRIM(TIPVTA)) = UPPER(TRIM(ID_TIPO_CREDITO)). |
as4_dctvtasn → snw_dim_tipo_venta | UPPER(TRIM(TIPVTA)) = UPPER(TRIM(ID_TIPVTA)). |
Dependencias
| Dependencia | Tipo | Observación |
|---|
NB_FRAMEWORK_LIBRARIES | Framework | Se ejecuta con %run; el DBC no contiene su implementación. |
as4_dctvtasn | Fuente Bronze | Debe existir y contener FECPED dentro del rango solicitado. |
snw_dim_productos | Catálogo/Dim migrada | Debe contener ID_PRO, FECHA_MODIFICA y CVE_PRO. |
snw_dim_clientes | Catálogo/Dim migrada | Debe contener ID_CTE, ID_SUC, CVE_CTE y CVE_CANALSOP. |
snw_deposit | Catálogo/Dim migrada | Debe contener ID_DEPOSITO, ID_TIPDEP, ID_PLADIS y CVE_DEPOSITO. |
oon_dim_tipo_credito | Catálogo | Debe contener ID_TIPO_CREDITO y CVE_TIPO_CREDITO. |
snw_dim_tipo_venta | Catálogo | Debe contener ID_TIPVTA y CVE_TIPVTA. |
Consideraciones Técnicas
- La carga final es idempotente por rango de fechas porque primero elimina registros de
as4_netsales por CVE_FECHA entre w_StartDate y w_EndDate y luego inserta el resultado.
vw_dctvtasn_error se crea para detectar registros inválidos, pero no muestra persistencia como tabla de errores.
- Si una dimensión migrada no tiene match, puede generar nulos o valores
0 en llaves críticas.
- El campo
CVE_CTE se define como DECIMAL en la tabla, pero en el INSERT aparece casteado como STRING; se recomienda validad compatibilidad y comportamiento en Databricks.
Artefactos relacionados
Próximos pasos
- Validar compatibilidad y comportamiento de
CVE_CTE, ya que se define como DECIMAL en la tabla y aparece castado como STRING en el INSERT.
- Confirmar si
vw_dctvtasn_error debe persistir como tabla de errores.