Skip to main content

mv_cat_oracle_clientes

1. Descripción

La vista general_catalogs.mv_cat_oracle_clientes proporciona un catálogo consolidado de clientes provenientes de las fuentes de información de Oracle:

  • Oracle Accounts Receivable (AR).
  • Customer Data Management (CDM).

La vista integra información relacionada con:

  • Identificación del cliente.
  • Datos fiscales.
  • Cuenta de cliente.
  • Clasificación comercial.
  • Canales y subcanales.
  • Grupos comerciales.
  • Información de cobranza.
  • Datos de facturación.
  • Sitios y direcciones.
  • Información logística.
  • Segmentación.
  • Información bancaria.
  • Configuración de EDI.
  • Datos de distribución.
  • Información de AS400.
Nota

La información proveniente de AR tiene prioridad. Los registros de CDM únicamente se incorporan cuando no existe un registro con el mismo party_id en alp_cat_ar_clientes.


1. Origen de los datos

ObjetoDescripción
general_catalogs.alp_cat_ar_clientesCatálogo de clientes provenientes de Oracle Accounts Receivable (AR).
general_catalogs.alp_cat_cdm_clientesCatálogo de clientes provenientes de Customer Data Management (CDM).

2. Lógica de consolidación

La vista utiliza dos fuentes de información:

alp_cat_ar_clientes


│ Prioridad 1

Clientes AR


├──────────────┐
│ │
▼ │
UNION ALL │
▲ │
│ │
Clientes CDM │
│ │
│ │
Solo si party_id no existe │
en clientes AR │
│ │
▼ │
Datos consolidados


mv_cat_oracle_clientes

2.1. Regla de prioridad

La vista aplica la siguiente regla:

PrioridadFuenteRegla
1ARSe incluyen todos los registros.
2CDMSe incluyen únicamente registros cuyo party_id no exista en AR.

La validación se realiza mediante:

WHERE NOT EXISTS (
SELECT 1
FROM alp_cat_ar_clientes ar
WHERE ar.party_id = cdm.party_id
)

Por lo tanto, si un cliente existe en ambas fuentes:

AR ──► Se conserva
CDM ──► Se excluye

3. Normalización de datos

La vista realiza conversiones de datos para estandarizar la información proveniente de ambas fuentes.

Conversión de cadenas vacías a NULL

Para ciertos campos provenientes de CDM se utiliza:

NULLIF(TRIM(campo), '')

Esto permite convertir:

' ' → NULL
'' → NULL
'123' → 123

Posteriormente algunos valores se convierten a:

DOUBLE PRECISION

3.1. Campos normalizados

Entre los campos que reciben esta transformación se encuentran:

  • cust_account_id
  • account_osr_id
  • party_site_id
  • party_site_osr_id
  • location_osr_id
  • cust_acct_site_id
  • account_site_osr_id
  • party_site_use_id
  • party_site_use_osr_id
  • site_use_id
  • account_site_use_osr_id
  • cuenta_bancaria
  • guid_chep

La lógica utilizada es:

NULLIF(TRIM(campo), '')::double precision

4. Estructura de la vista

4.1. Identificación del cliente

CampoDescripción
appl_sourceFuente de origen de la información.
party_idIdentificador único de la entidad o cliente.
identificador_registroIdentificador del registro del cliente.
nombreNombre del cliente o entidad.
tipo_clienteTipo de cliente.
numero_identificacion_contribuyenteIdentificador fiscal del contribuyente.

4.2. Información fiscal

CampoDescripción
regimen_fiscalCódigo del régimen fiscal.
desc_regimen_fiscalDescripción del régimen fiscal.
tipo_persona_fisicaCódigo del tipo de persona.
desc_tipo_persona_fisicaDescripción del tipo de persona.
uso_cfdiCódigo de uso de CFDI.
desc_uso_cfdiDescripción del uso de CFDI.
email_facturacionCorreos de Facturación.

4.3. Cuenta del cliente

CampoDescripción
cust_account_idIdentificador de la cuenta del cliente.
numero_cuenta_clienteNúmero de cuenta del cliente.
nombre_cuenta_clienteNombre de la cuenta del cliente.
clase_cuentaCódigo de la clase de cuenta.
desc_clase_cuentaDescripción de la clase de cuenta.
account_osr_idIdentificador externo de la cuenta.
account_osrReferencia externa de la cuenta.

4.4 Información comercial

CampoDescripción
canal_tipo_cuentaCódigo del canal asociado a la cuenta.
desc_canal_tipo_cuentaDescripción del canal.
canal_400_tipo_cuentaCódigo del canal utilizado en AS400.
subcanalCódigo del subcanal.
desc_subcanalDescripción del subcanal.
grupo_comercialCódigo del grupo comercial.
desc_grupo_comercialDescripción del grupo comercial.
grupo_comercial_400Código del grupo comercial en AS400.
macro_canalCódigo del macro canal.
desc_macro_canalDescripción del macro canal.
giro_clienteCódigo del giro del cliente.
desc_giro_clienteDescripción del giro del cliente.
metodo_comercializacionMétodo de comercialización.
desc_metodo_comercializacionDescripción del método de comercialización.

4.5. Facturación y pagos

CampoDescripción
unidad_facturacionUnidad utilizada para la facturación.
desc_unidad_facturacionDescripción de la unidad de facturación.
forma_pagoCódigo de la forma de pago.
desc_forma_pagoDescripción de la forma de pago.
tipo_facturaCódigo del tipo de factura.
desc_tipo_facturaDescripción del tipo de factura.
metodo_pagoCódigo del método de pago.
desc_metodo_pagoDescripción del método de pago.
terminos_pagoCódigo de los términos de pago.
desc_terminos_pagoDescripción de los términos de pago.
dias_graciaDías de gracia otorgados al cliente.
dias_pagoDías establecidos para pago.
dias_recepcionDías asociados a la recepción.
cuenta_bancariaCuenta bancaria del cliente.
codigo_bancarioCódigo bancario asociado.

4.6. Información de cobranza

CampoDescripción
zona_cobranzaCódigo de la zona de cobranza.
desc_zona_cobranzaDescripción de la zona de cobranza.
grupo_concentradorCódigo del grupo concentrador.
desc_grupo_concentradorDescripción del grupo concentrador.
no_cliente_factura_concentradaNúmero de cliente para factura concentrada.
no_sucursal_factura_concentradaNúmero de sucursal asociada a factura concentrada.

4.7. Información de distribución

CampoDescripción
plaza_distribucionCódigo de la plaza de distribución.
desc_plaza_distribucionDescripción de la plaza de distribución.
plaza_distribucion_400Código de plaza de distribución en AS400.
cedis_asignadoCódigo del CEDIS asignado.
desc_cedis_asignadoDescripción del CEDIS asignado.
cedis_asignado_400Código del CEDIS en AS400.
tipo_entregaCódigo del tipo de entrega.
desc_tipo_entregaDescripción del tipo de entrega.
factura_anticipadaIndicador de facturación anticipada.

4.8. Segmentación y clasificación

CampoDescripción
segmentacion_categoria_externaCódigo de la segmentación externa.
desc_segmentacion_categoria_externaDescripción de la segmentación externa.
categoria_internaCódigo de la categoría interna.
desc_categoria_internaDescripción de la categoría interna.
agrupacion_ibpCódigo de agrupación IBP.
desc_agrupacion_ibpDescripción de agrupación IBP.
agrupacion_ibp_400Código de agrupación IBP en AS400.
zona_preciosCódigo de la zona de precios.
desc_zona_preciosDescripción de la zona de precios.
perfil_clientePerfil asignado al cliente.

4.9. Sitios y direcciones

CampoDescripción
party_site_idIdentificador del sitio del cliente.
numero_sitioNúmero del sitio.
nombre_sitioNombre del sitio.
direccion_primariaIndicador de dirección primaria.
party_site_osr_idIdentificador externo del sitio.
party_site_osrReferencia externa del sitio.
location_idIdentificador de la ubicación.
location_osr_idIdentificador externo de la ubicación.
location_osrReferencia externa de la ubicación.
paisPaís de la dirección.
codigo_postalCódigo postal.
calleCalle.
numero_exteriorNúmero exterior.
numero_interiorNúmero interior.
coloniaColonia.
alcaldia_municipioAlcaldía o municipio.
estadoEstado.
entre_calle_1Primera calle de referencia.
entre_calle_2Segunda calle de referencia.
latitudLatitud geográfica.
longitudLongitud geográfica.
codigo_glnCódigo GLN de la ubicación.

4.10. Uso de sitios de cuenta

CampoDescripción
cust_acct_site_idIdentificador del sitio de la cuenta.
bill_to_flagIndicador de sitio de facturación.
ship_to_flagIndicador de sitio de envío.
account_site_osr_idIdentificador externo del sitio de cuenta.
account_site_osrReferencia externa del sitio de cuenta.
party_site_use_idIdentificador del uso del sitio.
primario_por_tipoIndicador de uso primario por tipo.
party_site_use_osr_idIdentificador externo del uso del sitio.
party_site_use_osrReferencia externa del uso del sitio.
site_use_idIdentificador del uso del sitio de cuenta.
sitio_cuenta_primarioIndicador de sitio primario de la cuenta.
uso_sitio_cuentaUso asignado al sitio de cuenta.
sitioIdentificador o descripción del sitio.
account_site_use_osr_idIdentificador externo del uso del sitio de cuenta.
account_site_use_osrReferencia externa del uso del sitio de cuenta.

4.11. Información de integración

CampoDescripción
party_osr_idIdentificador externo de la entidad.
party_osrReferencia externa de la entidad.
account_osr_idIdentificador externo de la cuenta.
account_osrReferencia externa de la cuenta.
party_site_osr_idIdentificador externo del sitio.
party_site_osrReferencia externa del sitio.
location_osr_idIdentificador externo de la ubicación.
location_osrReferencia externa de la ubicación.
identificador_ediIdentificador utilizado para integración EDI.
referencia_cieReferencia utilizada para CIE.
codigo_exportacionCódigo utilizado para procesos de exportación.

4.12. Información adicional del cliente

CampoDescripción
numero_proveedorNúmero de proveedor asociado.
incotermTérmino comercial internacional utilizado.
tipo_addendaCódigo del tipo de Addenda.
desc_tipo_addendaDescripción del tipo de Addenda.
genera_addendaIndicador de generación de Addenda.
timbrado_individualIndicador de timbrado individual.
numero_tienda_retekNúmero de tienda asociado a Retek.
tipo_pedido_clienteTipo de pedido utilizado por el cliente.
referencia_sucursalReferencia de la sucursal.
inspeccion_calidadIndicador de inspección de calidad.
guid_chepIdentificador GUID asociado a CHEP.
zona_nielsenCódigo de zona Nielsen.
desc_zona_nielsenDescripción de zona Nielsen.
regional_responsableCódigo de la regional responsable.
desc_regional_responsableDescripción de la regional responsable.
cedis_asignado_as400Código del CEDIS utilizado en AS400.

5. Diagrama funcional

Oracle Accounts Receivable


alp_cat_ar_clientes


│ Prioridad 1

├───────────────┐
│ │
▼ │
UNION ALL │
▲ │
│ │
│ │
alp_cat_cdm_clientes │
│ │
│ │
NOT EXISTS party_id en AR │
│ │
▼ │
Registros CDM │
│ │
└───────┬───────┘


Normalización de datos


mv_cat_oracle_clientes


Catálogo consolidado

6. Resumen

La vista mv_cat_oracle_clientes funciona como una fuente consolidada de información maestra de clientes de Oracle.

La lógica principal es:

Oracle AR

├── Todos los registros


Prioridad


UNION ALL


Oracle CDM

└── Solo registros cuyo party_id
no existe en AR


Normalización de datos


Catálogo consolidado


mv_cat_oracle_clientes
Nota

La vista permite contar con una única estructura de consulta para la información de clientes, manteniendo la información de AR como fuente principal y utilizando CDM como fuente complementaria.


7. SQL

CREATE OR REPLACE VIEW general_catalogs.mv_cat_oracle_clientes AS
SELECT
ar.appl_source,
ar.party_id,
ar.identificador_registro,
ar.nombre,
ar.tipo_cliente,
ar.numero_identificacion_contribuyente,
ar.regimen_fiscal,
ar.desc_regimen_fiscal,
ar.tipo_persona_fisica,
ar.desc_tipo_persona_fisica,
ar.party_osr_id,
ar.party_osr,
ar.cust_account_id,
ar.numero_cuenta_cliente,
ar.nombre_cuenta_cliente,
ar.clase_cuenta,
ar.desc_clase_cuenta,
ar.canal_tipo_cuenta,
ar.desc_canal_tipo_cuenta,
ar.canal_400_tipo_cuenta,
ar.grupo_comercial,
ar.desc_grupo_comercial,
ar.grupo_comercial_400,
ar.unidad_facturacion,
ar.desc_unidad_facturacion,
ar.forma_pago,
ar.desc_forma_pago,
ar.tipo_factura,
ar.desc_tipo_factura,
ar.metodo_pago,
ar.desc_metodo_pago,
ar.dias_gracia::double precision AS dias_gracia,
ar.codigo_bancario::double precision AS codigo_bancario,
ar.subcanal,
ar.desc_subcanal,
ar.zona_cobranza,
ar.desc_zona_cobranza,
ar.dias_pago,
ar.dias_recepcion,
ar.grupo_concentrador,
ar.desc_grupo_concentrador,
ar.no_cliente_factura_concentrada::double precision
AS no_cliente_factura_concentrada,
ar.agrupacion_ibp,
ar.desc_agrupacion_ibp,
ar.agrupacion_ibp_400,
ar.timbrado_individual,
ar.uso_cfdi,
ar.desc_uso_cfdi,
ar.numero_proveedor,
ar.incoterm,
ar.tipo_addenda,
ar.desc_tipo_addenda,
ar.macro_canal,
ar.desc_macro_canal,
ar.giro_cliente,
ar.desc_giro_cliente,
ar.genera_addenda,
ar.referencia_cie,
ar.referencia_cuenta,
ar.account_osr_id,
ar.account_osr,
ar.party_site_id,
ar.numero_sitio,
ar.nombre_sitio,
ar.direccion_primaria,
ar.party_site_osr_id,
ar.party_site_osr,
ar.location_id,
ar.pais,
ar.codigo_postal,
ar.calle,
ar.numero_exterior,
ar.numero_interior,
ar.colonia,
ar.alcaldia_municipio,
ar.estado,
ar.entre_calle_1,
ar.entre_calle_2,
ar.latitud,
ar.longitud,
ar.codigo_gln,
ar.location_osr_id,
ar.location_osr,
ar.cust_acct_site_id,
ar.bill_to_flag,
ar.ship_to_flag,
ar.plaza_distribucion,
ar.desc_plaza_distribucion,
ar.plaza_distribucion_400,
ar.factura_anticipada,
ar.cedis_asignado,
ar.desc_cedis_asignado,
ar.cedis_asignado_400,
NULLIF(TRIM(ar.no_sucursal_factura_concentrada), '')::double precision
AS no_sucursal_factura_concentrada,
ar.codigo_exportacion,
ar.zona_nielsen,
ar.desc_zona_nielsen,
ar.regional_responsable,
ar.desc_regional_responsable,
ar.tipo_entrega,
ar.desc_tipo_entrega,
ar.segmentacion_categoria_externa,
ar.desc_segmentacion_categoria_externa,
ar.categoria_interna,
ar.desc_categoria_interna,
NULLIF(TRIM(ar.cuenta_bancaria), '')::double precision
AS cuenta_bancaria,
ar.metodo_comercializacion,
ar.desc_metodo_comercializacion,
ar.codigo_sucursal,
ar.identificador_edi,
ar.zona_precios,
ar.desc_zona_precios,
NULLIF(TRIM(ar.guid_chep), '')::double precision
AS guid_chep,
ar.inspeccion_calidad,
ar.numero_tienda_retek,
ar.perfil_cliente,
ar.tipo_pedido_cliente,
ar.referencia_sucursal,
ar.account_site_osr_id,
ar.account_site_osr,
ar.party_site_use_id,
ar.primario_por_tipo,
ar.party_site_use_osr_id,
ar.party_site_use_osr,
ar.site_use_id,
ar.sitio_cuenta_primario,
ar.uso_sitio_cuenta,
ar.sitio,
ar.account_site_use_osr_id,
ar.account_site_use_osr,
ar.terminos_pago,
ar.desc_terminos_pago,
ar.cedis_asignado_as400,
ar.email_facturacion
FROM alp_cat_ar_clientes ar

UNION ALL

SELECT
cdm.appl_source,
cdm.party_id,
cdm.identificador_registro,
cdm.nombre,
cdm.tipo_cliente,
cdm.numero_identificacion_contribuyente,
cdm.regimen_fiscal,
cdm.desc_regimen_fiscal,
cdm.tipo_persona_fisica,
cdm.desc_tipo_persona_fisica,
cdm.party_osr_id,
cdm.party_osr,
NULLIF(TRIM(cdm.cust_account_id), '')::double precision
AS cust_account_id,
cdm.numero_cuenta_cliente,
cdm.nombre_cuenta_cliente,
cdm.clase_cuenta,
cdm.desc_clase_cuenta,
cdm.canal_tipo_cuenta,
cdm.desc_canal_tipo_cuenta,
cdm.canal_400_tipo_cuenta,
cdm.grupo_comercial,
cdm.desc_grupo_comercial,
cdm.grupo_comercial_400,
cdm.unidad_facturacion,
cdm.desc_unidad_facturacion,
cdm.forma_pago,
cdm.desc_forma_pago,
cdm.tipo_factura,
cdm.desc_tipo_factura,
cdm.metodo_pago,
cdm.desc_metodo_pago,
cdm.dias_gracia,
cdm.codigo_bancario,
cdm.subcanal,
cdm.desc_subcanal,
cdm.zona_cobranza,
cdm.desc_zona_cobranza,
cdm.dias_pago,
cdm.dias_recepcion,
cdm.grupo_concentrador,
cdm.desc_grupo_concentrador,
cdm.no_cliente_factura_concentrada,
cdm.agrupacion_ibp,
cdm.desc_agrupacion_ibp,
cdm.agrupacion_ibp_400,
cdm.timbrado_individual,
cdm.uso_cfdi,
cdm.desc_uso_cfdi,
cdm.numero_proveedor,
cdm.incoterm,
cdm.tipo_addenda,
cdm.desc_tipo_addenda,
cdm.macro_canal,
cdm.desc_macro_canal,
cdm.giro_cliente,
cdm.desc_giro_cliente,
cdm.genera_addenda,
cdm.referencia_cie,
cdm.referencia_cuenta,
NULLIF(TRIM(cdm.account_osr_id), '')::double precision
AS account_osr_id,
cdm.account_osr,
NULLIF(TRIM(cdm.party_site_id), '')::double precision
AS party_site_id,
cdm.numero_sitio,
cdm.nombre_sitio,
cdm.direccion_primaria,
NULLIF(TRIM(cdm.party_site_osr_id), '')::double precision
AS party_site_osr_id,
cdm.party_site_osr,
cdm.location_id,
cdm.pais,
cdm.codigo_postal,
cdm.calle,
cdm.numero_exterior,
cdm.numero_interior,
cdm.colonia,
cdm.alcaldia_municipio,
cdm.estado,
cdm.entre_calle_1,
cdm.entre_calle_2,
cdm.latitud,
cdm.longitud,
cdm.codigo_gln,
NULLIF(TRIM(cdm.location_osr_id), '')::double precision
AS location_osr_id,
cdm.location_osr,
NULLIF(TRIM(cdm.cust_acct_site_id), '')::double precision
AS cust_acct_site_id,
cdm.bill_to_flag,
cdm.ship_to_flag,
cdm.plaza_distribucion,
cdm.desc_plaza_distribucion,
cdm.plaza_distribucion_400,
cdm.factura_anticipada,
cdm.cedis_asignado,
cdm.desc_cedis_asignado,
cdm.cedis_asignado_400,
cdm.no_sucursal_factura_concentrada,
cdm.codigo_exportacion,
cdm.zona_nielsen,
cdm.desc_zona_nielsen,
cdm.regional_responsable,
cdm.desc_regional_responsable,
cdm.tipo_entrega,
cdm.desc_tipo_entrega,
cdm.segmentacion_categoria_externa,
cdm.desc_segmentacion_categoria_externa,
cdm.categoria_interna,
cdm.cuenta_bancaria,
cdm.metodo_comercializacion,
cdm.desc_metodo_comercializacion,
cdm.codigo_sucursal,
cdm.identificador_edi,
cdm.zona_precios,
cdm.desc_zona_precios,
cdm.guid_chep,
cdm.inspeccion_calidad,
cdm.numero_tienda_retek,
cdm.perfil_cliente,
cdm.tipo_pedido_cliente,
cdm.referencia_sucursal,
NULLIF(TRIM(cdm.account_site_osr_id), '')::double precision
AS account_site_osr_id,
cdm.account_site_osr,
NULLIF(TRIM(cdm.party_site_use_id), '')::double precision
AS party_site_use_id,
cdm.primario_por_tipo,
NULLIF(TRIM(cdm.party_site_use_osr_id), '')::double precision
AS party_site_use_osr_id,
cdm.party_site_use_osr,
NULLIF(TRIM(cdm.site_use_id), '')::double precision
AS site_use_id,
cdm.sitio_cuenta_primario,
cdm.uso_sitio_cuenta,
cdm.sitio,
NULLIF(TRIM(cdm.account_site_use_osr_id), '')::double precision
AS account_site_use_osr_id,
cdm.account_site_use_osr,
cdm.terminos_pago,
cdm.desc_terminos_pago,
cdm.cedis_asignado_as400,
cdm.email_facturacion
FROM alp_cat_cdm_clientes cdm
WHERE NOT EXISTS (
SELECT 1
FROM alp_cat_ar_clientes ar
WHERE ar.party_id = cdm.party_id
);