Proceso de carga mensual

De Plataforma COA Crowd
Saltar a: navegación, buscar

Servicios implicados

A continuación se listan los servicios utilizados para realizar la carga mensual en orden de flujo de trabajo:

  • crm-batch-service
  • crm-reaction-batch-service
  • crm-etl-parser-service

Inicio de flujo de carga de clientes

Sobre el servicio crm-batch-service funciona un job accionado por un programa scheduler que se dispara cada 10 minutos, el cual realiza una consulta hacia la tabla ws-producto-mx.Productos.JLE_BASE_CRM360 que se encuentra almacenada en Bigquery GCP.

Dicho programa scheduler se encarga de dar notificación por medio de un correo electrónico, en el momento que detecta un nombre de periodo nuevo, por ejemplo:

  • “202301 COMPLE” cuando se trata de un periodo de campaña complementaria.
  • “202301” cuando se trata de un periodo de campaña de inicio de mes.

Es importante que los nuevos periodos de campaña mantengan este formato, de lo contrario no serán detectados por el programa.

El dato del nombre del periodo de campaña se guarda sobre la base de datos del servicio crm-batch-service junto con un dato llamado “status”, a continuación se listan los diferentes estatus que puede tener el registro:

  • “DETECTED” cuando se detecta un nuevo nombre de periodo.
  • “NEW” cuando se confirma el correo de confirmación.
  • “LOADED” cuando el servicio crm-reaction-batch-service comienza el proceso de carga de clientes en su base de datos.

Los endpoints utilizados en esta parte del flujo son los siguientes:

crm-batch-service

  • El correo de notificación hace referencia al endpoint:

/api/update_last_detected_table_status

el cual realiza una actualización sobre el registro del periodo y cambia su estatus de “DETECTED” a “NEW”.

Carga de clientes de campaña

Sobre el servicio crm-reaction-batch-service funciona un job accionado por un programa scheduler que se dispara cada 15 minutos, el cual consume un endpoint del servicio  crm-batch-service en busca de un registro de periodo nuevo con status “NEW”.

En caso de que exista un nuevo registro de periodo, el programa comenzará a consultar los clientes del periodo más reciente sobre la tabla ws-producto-mx.Productos.JLE_BASE_CRM360 que se encuentra almacenada en Bigquery GCP y cargará en su base de datos junto con un status y los etiquetara con el nombre del periodo con los siguientes formatos:

  • CPLMMAA
    • Nombre utilizado para periodos de complemento, ej.: CPL0123
  • INIMMAA
    • Formato utilizado para periodos de inicio de mes, ej.: INI0123

Al mismo tiempo, el programa enviará un mensaje al tópico “crm-reaction-batch-service” por cada registro de cliente.

El dato de status será nuestro principal control en el seguimiento de los clientes el cual cambiará en función de cada paso del flujo de carga, a continuación se listan los diferentes estatus posibles:

  • “NEW”
  • “ONSTATE”
  • “PREPUBLICATED”
  • “PUBLICATED”
  • “ERROR_BFF”
  • “NP_BY_APPLICATION”
  • “DISPOSICION_ERROR”

Una vez terminado el proceso de carga de clientes de la tabla Bigquery sobre la base de datos de crm-reaction-batch-service, se debe poner en funcionamiento el job llamado:

crm-flink-clientes-service

el cual se encargará de consumir el tópico “crm-reaction-batch-service” para el registro de los clientes en el servicio de máquina de estados (me-delivery-service).

Carga de archivo PCT (EXPRESS) y ETL (ILC)

Es imprescindible para este punto del flujo contar con la carga completa de clientes sobre máquina de estados, podemos verificar con el servicio crm-reaction-batch-service que no tengamos ningún cliente en status “NEW” y de esta misma manera asegurarnos que los clientes ya se encuentran en status ”ONSTATE” lo que significaria que la carga fue registrada correctamente en su totalidad.