Skip to main content

Pipelines - Ventas Netas

Objetivo

Documentar el flujo de ejecución del proceso Ventas Netas, incluyendo notebook principal, parámetros, vistas temporales, estrategia de carga y configuración asociada para la generación de la tabla Silver as4_netsales.

Alcance

Dentro del alcance

  • Notebook principal del proceso.
  • Parámetros requeridos para la ejecución.
  • Flujo paso a paso del pipeline.
  • Vistas temporales generadas durante el procesamiento.
  • Salida principal del proceso.
  • Estrategia de carga sobre la tabla final.
  • Referencia a la configuración YAML del proceso.

Fuera del alcance

  • Diseño funcional del proceso.
  • Arquitectura técnica del proceso.
  • Tabla completa de dependencias.
  • Fuentes de datos detalladas.
  • Reglas de negocio.
  • Runbook operativo.
  • Validaciones no documentadas.

Contenido principal

Descripción general

Este documento describe el flujo de ejecución del proceso Ventas Netas, desde la limpieza de caché, carga de framework y definición de parámetros, hasta la creación de vistas temporales, depuración, agregación y carga final de la tabla Silver as4_netsales.

El pipeline utiliza los parámetros w_StartDate, w_EndDate, w_catalog, w_schema origin y w_schema destiny, y procesa la información mediante vistas temporales como vw_dctvtasn_base, vw_dctvtasn_enriched, vw_dctvtasn_error, vw_dctvtasn_final_agg y vw_dctvtasn_silver.

Notebook Principal

El proceso se ejecuja mediante el notebook principal:

  • NB_Silver_NetSales.dbc.

Parámetros de Ejecución

El notebook utiliza los siguientes parámetros:

  • w_StartDate
  • w_EndDate
  • w_catalog
  • w_schema origin
  • w_schema destiny

El procesamiento se limita al rango definido por los widgets w_StartDate y w_EndDate

Flujo del Proceso Paso a Paso

PasoObjeto / acciónDetalle
1CLEAR CACHELimpia caché antes de iniciar el proceso.
2NB_FRAMEWORK_LIBRARIESCarga librerías/framework compartido desde /Workspace/Shared/Alpura_DEV/00_Framework/NB_FRAMEWORK_LIBRARIES.
3WidgetsDefine w_StartDate, w_EndDate, w_catalog, w_schema_origin y w_schema_destiny.
4Variables y run_idAsigna variables del proceso y genera v_run_id con uuid4.
5vw_dctvtasn_baseLee as4_dctvtasn y aplica filtro FECPED entre w_StartDate y w_EndDate.
6vw_dctvtasn_enrichedRealiza enriquecimiento con productos, clientes, depósitos, tipo de crédito y tipo de venta.
7vw_dctvtasn_finalRecalcula ID_PLADIS con base en reglas por tipo de depósito.
8vw_dctvtasn_stgDepuraFinal / vw_dctvtasn_pass / vw_dctvtasn_errorEstandariza campos y separa registros con errores.
9vw_dctvtasn_query3Homologa CVE_DEP contra snw_deposit.
10vw_dctvtasn_final_aggAgrega métricas de cantidad, importe y KLT.
11vw_dctvtasn_silverAgrega hash de fila, run_id y timestamp de carga.
12as4_netsalesCrea tabla si no existe, elimina el rango de fechas y re-inserta los datos procesados.

Vistas Temporales del Pipeline

  • vw_dctvtasn_base: Base de ventas netas desde as4_dctvtasn con casteos, limpieza y filtro de fecha.
  • vw_dctvtasn_enriched: Enriquecimiento con productos, clientes, depósitos, tipo de crédito y tipo de venta.
  • vw_dctvtasn_final: Ajuste de ID_PLADIS según tipo de depósito.
  • vw_dctvtasn_stgDepuraFinal: Estandarización de campos y métricas numéricas para depuración.
  • vw_dctvtasn_pass: Vista de registros preparados para validación.
    -vw_dctvtasn_error: Registros con CVE_CTE nulo, CVE_PRO nulo o ID_PLADIS <= 0.
  • vw_dctvtasn_pass1: Registros válidos posteriores a la depuración.
  • vw_dctvtasn_query3: Homologación final de depósito contra snw_deposit.
  • vw_dctvtasn_final_agg: Agregación de cantidades, importes y KLT por llaves de negocio.
  • vw_dctvtasn_silver: Vista final con _row_hash, _run_id y _load_ts.

Salida Principal

La salida principal del pipeline es:

  • {v_catalog}.{v_schema_destiny}.as4_netsales

Estrategia de Carga

La carga final aplica una estrategia delete+ insert por rango de CVE_FECHA.

load_strategy:
type: delete_insert_by_date_range
delete_condition: CVE_FECHA between w_StartDate and w_EndDate
target: '{v_catalog}.{v_schema_destiny}.as4_netsales'

Configuración del Pipeline

La metadata estructurada se encuentra definida en el YAML del proceso:

process_name: NB_Silver_NetSales
layer: Silver
documentation_level: FULL
main_notebook: NB_Silver_NetSales.dbc

YAML

process_name: NB_Silver_NetSales
layer: Silver
documentation_level: FULL
main_notebook: NB_Silver_NetSales.dbc
sharepoint:
file_name: Documentacion_NB_Silver_NetSales_v1.docx
suggested_path: /DataPlatform/Databricks/Silver/NB_Silver_NetSales/
parameters:
- w_StartDate
- w_EndDate
- w_catalog
- w_schema origin
- w_schema destiny
sources:
- name: as4_dctvtasn
object: '{v_catalog}.{v_schema_origin}.as4_dctvtasn'
description: Fuente transaccional base de ventas netas, filtrada por FECPED entre w_StartDate y w_EndDate.
- name: snw_dim_productos
object: '{v_catalog}.{v_schema_origin}.snw_dim_productos'
description: Catálogo/productos usado para obtener CVE_PRO; se toma el registro más reciente por ID_PRO
usando FECHA_MODIFICA y CVE_PRO.
- name: snw_dim_clientes
object: '{v_catalog}.{v_schema_origin}.snw_dim_clientes'
description: Dimensión de clientes usada por NUMCTE + NUMSUC para resolver CVE_CTE y CVE_CANALSOP.
- name: snw_deposit
object: '{v_catalog}.{v_schema_origin}.snw_deposit'
description: Catálogo/depósito usado para resolver ID_DEPOSITO, ID_TIPDEP, ID_PLADIS y CVE_DEPOSITO.
- name: oon_dim_tipo_credito
object: '{v_catalog}.{v_schema_origin}.oon_dim_tipo_credito'
description: Dimensión de tipo de crédito usada para resolver CVE_TIPO_CREDITO desde TIPVTA.
- name: snw_dim_tipo_venta
object: '{v_catalog}.{v_schema_origin}.snw_dim_tipo_venta'
description: Dimensión de tipo de venta usada para resolver CVE_TIPVTA desde TIPVTA.
documented_dimensions:
- name: Dim_Date
dbc: NB_Silver_Dim_Date.dbc
usage: Dimensión documentada pero no referenciada directamente en el notebook NetSales.
- name: Dim_Client
dbc: NB_Silver_DS_Client.dbc
usage: Relacionada con snw_dim_clientes, consumida como tabla migrada/catálogo en el proceso.
- name: Dim_RTM
dbc: NB_Silver_DS_RTM.dbc
usage: Dimensión entregada; no se identifica JOIN directo desde NetSales.
- name: Dim_Depositos
dbc: Dim_depositos.dbc
usage: Relacionada con snw_deposit, consumida en el proceso.
- name: Dim_Productos
dbc: DIM_PRODUCTOS_PART_1.dbc + DIM_PRODUCTOS_PARTE_2.dbc
usage: Relacionada con snw_dim_productos, consumida en el proceso.
migrated_tables_consumed:
- name: as4_dctvtasn
description: Tabla transaccional AS400 migrada en Bronze.
- name: snw_dim_productos
description: Tabla de productos consumida; el notebook NetSales no la crea.
- name: snw_dim_clientes
description: Tabla de clientes consumida; el notebook NetSales no la crea.
- name: snw_deposit
description: Tabla de depósitos consumida; el notebook NetSales no la crea.
- name: oon_dim_tipo_credito
description: Tabla de tipo de crédito consumida; el notebook NetSales no la crea.
- name: snw_dim_tipo_venta
description: Tabla de tipo de venta consumida; el notebook NetSales no la crea.
staging_objects:
- name: vw_dctvtasn_base
description: Base de ventas netas desde as4_dctvtasn con casteos, limpieza y filtro de fecha.
- name: vw_dctvtasn_enriched
description: Enriquecimiento con productos, clientes, depósitos, tipo de crédito y tipo de venta.
- name: vw_dctvtasn_final
description: Ajuste de ID_PLADIS según tipo de depósito.
- name: vw_dctvtasn_stgDepuraFinal
description: Estandarización de campos y métricas numéricas para depuración.
- name: vw_dctvtasn_pass
description: Vista de registros preparados para validación.
- name: vw_dctvtasn_error
description: Registros con CVE_CTE nulo, CVE_PRO nulo o ID_PLADIS <= 0.
- name: vw_dctvtasn_pass1
description: Registros válidos posteriores a la depuración.
- name: vw_dctvtasn_query3
description: Homologación final de depósito contra snw_deposit.
- name: vw_dctvtasn_final_agg
description: Agregación de cantidades, importes y KLT por llaves de negocio.
- name: vw_dctvtasn_silver
description: Vista final con _row_hash, _run_id y _load_ts.
outputs:
- name: as4_netsales
object: '{v_catalog}.{v_schema_destiny}.as4_netsales'
description: Tabla Delta Silver de ventas netas.
business_rules:
- El rango de procesamiento se controla por los widgets w_StartDate y w_EndDate, comparados contra FECPED/CVE_FECHA.
- CVE_PART se deriva de los primeros 6 caracteres de FECPED.
- La fuente as4_dctvtasn se transforma con casteos explícitos a DECIMAL, INT, STRING y DATE.
- 'Producto: se toma el registro más reciente de snw_dim_productos por ID_PRO usando ROW_NUMBER ordenado
por FECHA_MODIFICA y CVE_PRO descendente.'
- 'Cliente: se resuelve por NUMCTE + NUMSUC contra snw_dim_clientes.'
- Tipo de crédito y tipo de venta se resuelven por TIPVTA normalizado con UPPER(TRIM()).
- 'ID_PLADIS se recalcula con base en ID_TIPDEP de snw_deposit: si ID_TIPDEP in (1,2) usa ID_PLADIS original;
si ID_TIPDEP = 3 usa ID_PLADIS del depósito; si no, usa CVE_DEP.'
- Se separan registros inválidos en vw_dctvtasn_error cuando CVE_CTE es nulo, CVE_PRO es nulo o ID_PLADIS
<= 0.
- Se agregan cantidades, importes y KLT por las llaves definidas en vw_dctvtasn_final_agg.
- Se genera _row_hash con SHA2 sobre campos clave, además de _run_id y _load_ts.
- La carga final aplica delete + insert por CVE_FECHA en el rango de ejecución.
load_strategy:
type: delete_insert_by_date_range
delete_condition: CVE_FECHA between w_StartDate and w_EndDate
target: '{v_catalog}.{v_schema_destiny}.as4_netsales'
observations:
- Workflow asociado no identificado en DBC.
- Frecuencia no identificada en DBC.
- vw_dctvtasn_error no se persiste como tabla dentro del DBC.
- CVE_CTE se crea como decimal en la tabla y se castea como string en el INSERT; validar en ejecución.

Celda para Databricks

La celda para Databricks documenta:

  • Objetivo del proceso.
  • Inputs.
  • Outputs.
  • Flujo de ejecución.
  • Dependencias.
  • Placeholder de documentación: {sharepoint_link}

Dependencias

Las dependencias técnicas del proceso se documentan en Diseño Técnico - Ventas Netas

Consideraciones de Ejecución

  • El workflow, frecuencia y SLA no están definidos en el DBC.
  • La carga final aplica una estrategia delete+ insert por rango de CVE_FECHA.
  • vw_dctvtasn_error no se persiste como tabla dentro del DBC.
  • Se debe revisar la compatibiidad de tipo en CVE_CTE, ya que la tabla lo define como decimal y el INSERT lo castea como string.

Artefactos relacionados

ArtefactoDescripción
Diseño Funcional - Ventas NetasDescribe el objetivo funcional, alcance y flujo funcional del proceso
Diseño Técnico - Ventas NetasDocumenta la arquitectura, modelo de datos y dependencias técnicas.
Fuentes - Ventas NetasDocumenta las fuentes de datos utilizadas por el proceso.
Operación - Ventas NetasDocumenta consideraciones operativas, Runbook L1 y soporte.
Reglas de Negocio - Ventas NetasContiene las reglas aplicadas durante el procesamiento.
Tablas - Ventas NetasDocumenta las tablas origen, dimensiones, campos, ralaciones y tabla final.
Validaciones - Ventas NetasDescribe validaciones identificadas.

Próximos pasos

  • Identificar workflow asociado al proceso.
  • Definir frecuencia de ejecución.
  • Definir SLA operativo
  • Confirmar si vw_dctvtasn_error debe persistir como tabla de errores.