Layer-api-scheduler-service

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

Servicio encargado de ejecutar Jobs con diversas funcionalidades como observers a base de datos para publicación, preprocesamiento o resolución final de las tareas de Crowd.

Jobs

  • Avance Afi Sender
  • AxiCrowd
  • Coa Task Error Recovery
  • Coa Task Result Sender
  • Coa Task Sensor
  • Expediente Digital Publisher
  • Expedientes AFI
  • Scheduler Maintenance
  • Saldo Cero
  • Send Callback
  • Task Error Recovery Vericuenta
  • Task Inbound By Email
  • Vericuenta
  • Verifsim

AxiCrowd

Este job es el encargado de ingestar las tareas de Axi CROWD. Se manda a llamar un endpoint del servicio de temperaturas, el cual retorna una lista de solicitudes que, por alguna razón, se quedaron estancadas en alguna parte del proceso. Nota: El servicio de temperaturas tiene una validación para filtrar las solicitudes que ya hayan tenido tareas del tipo Axi Crowd (Roadmap).

Este job analiza estas solicitudes y decide si se si es viable continuar con estas solicitudes. Es decir, realizando acciones como contactar al cliente y preguntando si quiere continuar con el proceso,

La lista que regresa el servicio de temperaturas tiene tres campos: 1. ID de la solicitud 2. Tenant (empresa) 3. URL de la vista tubo de la solicitud 4. Tipo de crédito/producto 5. Tipo de tarea ("VERISOLICITUD")

Además, el job se encarga de obtener los telefonos del cliente, a partir de un endpoint de máquina de estados (ME) utilizando el ID solicitud y se realiza la validación de que sean teléfonos móbiles y agregar a la data de la ingesta. Entonces, con estos datos se arma un JSON de ingesta para el servicio de inbound.

Finalmente, se actualiza el roadmap utilizando el endpoint de ME, para crear un nuevo registro de esta solicitud a partir de la información de la publicación de Axi Crowd y previniendo la reingesta duplicada de tareas.

Vista tubo: Página donde el solicitante sube los documentos de su solicitud. Roadmap: Registro que contiene la información de todos los procesos por los que va pasando una solicitud, es decir, almacena la información de los diferentes equipos que la traten.


Saldo Cero

Es un job encargo de publicar tareas de Saldo Cero, las cuales se ingesta a partir de un formulario de Google, el cual se procesa utilizando el servicio de Gfiles. El datasheet de Google que se genera cuenta con tres hojas.

1. RespuestasFormulario (hoja enlazada con el formulario) 2. Procesadas (Tareas procesadas) 3. Error (Tareas que no lograron ser procesadas)

Lo que se hace en el Job es primeramente mandar a llamar la función getConfig() para obtener la configuración con la que va a trabajar. Ésta está almacenada en una tabla que se llama parámetros en la base de datos del layer-api-web.

[layer-api-web]/get_parameter/?calve=SALDOCEROConfig&tarea_destino=SALDOCERO

A partir del json retornado, podemos obtener la url del datasheet, así como también el nombre de las de las tres hojas de dónde va a leer la información. Posteriormente, a partir de un enpoint al servicio de Gfiles se manda una lista de nombres de hojas y valida si en el documento que le mandaste existen todos estos nombres.Una vez validados los candados de seguridad. Se utiliza el enpoint de read_sheet del Gfiles para traer todos los registros nuevos que haya en la hoja de RespuestasFormulario. Dichos registros los retorna en forma de matriz y empieza a iterar sobre ellos. Debido a que la iteración se realiza sobre este formato de matriz (y no como un sistema clave-valor), hay que acceder y mapear las diferentes posiciones específicas que tiene cada valor de cada fila. Es importante mencionar que en esta tarea se hace se recopilan también imágenes en las posiciones 8 y 9. Por lo que estos indices se iteran en un ciclo for, básicamente es que en estos campos viene una url de Google Drive donde está almacenada la imagen, el job obtiene la imagen y la convierte en un String de Base 64, para entonces llamar a un enpoint del servicio de Multimedia y guardar ahí la imagen. Lo que nos retorna es una nueva url del servicio de Multimedia y se borra la imagen del drive.

Se da formato al json para la ingesta de la tarea utilizando el enpoint de /newTask del servicio de Inbound. En donde, en la sección de data se agregan los documentos utilizando la nueva url del servicio de Multimedia, el resto de la data son datos que se obtienen directamente del registro. Por último, se toma el registro y se manda a la hoja de Procesadas.


Expedientes AFI

Funciona a partir de formularios de ingesta (semejante a Saldo Cero). Una vez al día se llena un registro en el formulario donde se sube un documento que corresponde a un archivo de Excel (*.xlsx). Entonces, el job de Expedientes AFI corre cada minuto a fin de procesar la información de los registros. Lo importante viene dentro del archivo de Excel, el Job toma el archivo en Base 64, para convertirlo a un Input Stream y leerlo con la librería de Workbook (Apache-poi) y poder iterar en cada una de las filas. En cada registro existe información (e.g. tipo de tareas, solicitud, origen). A esta información se le da formato (JSON) para ingestar la tarea en Crowd utilizando el enpoint del servicio de Inbound (/newTask).

Dependencias

Máquina de estados

Ninguna dependencia de maquina de estados.

Bases de datos

Sin base de datos.

Elementos que lo consumen

Ningún elemento lo consume

Swagger

link de swagger de calidad [[1]]