Skip to main content

Servicios de Parsable

1. Descripción​

La información proveniente de Parsable es procesada mediante Apache NiFi y almacenada en diferentes objetos de la base de datos omnicanal, de acuerdo con el tipo de información.

La integración se encuentra organizada en tres grupos principales:

  • Jobs: información relacionada con los trabajos ejecutados en Parsable.
  • Deviations: información relacionada con las desviaciones detectadas durante la ejecución de los trabajos.
  • Imágenes: información relacionada con las imágenes asociadas a los registros de Parsable.

Los Servicios de Parsable son servicios de integración que permiten procesar y exponer información proveniente de la plataforma Parsable.

2. Servicios de Parsable​

No.OrigenCatálogoDescripción
1JobsVisitas por Día / StatusMuestra el total de los trabajos realizados por estatus de las visitas al día.
2JobsVisitas por Asesor / DíaMuestra el total de los trabajos realizados por asesor al día.
3JobsTiempo VisitaMuestra el tiempo registrado para las visitas realizadas en Parsable.
4JobsResumen Tiempo VisitaGenera un resumen del tiempo empleado en las visitas realizadas en Parsable.
5DeviationsDesviacionesMuestra el total de las desviaciones realizados por día.
6DeviationsResumen DesviacionesGenera un resumen de las desviaciones realizadas en Parsable.
7ImagenesRecuperación de ImagenesRecupera de Alfresco la Imagene correspondiente al ID.
Nota:

Estas funciones encapsulan las reglas de negocio para generar información de Parsable y son expuestas mediante servicios REST a través de la API de Catálogos.


2. Arquitectura de la solución​

El flujo general de información es el siguiente:

Mini Map

3. Componentes de la solución​

ComponenteDescripción
ParsablePlataforma origen de la información de los catálogos.
AlfrescoRepositorio documental y gestor utilizado para el almacenamiento y administración de imágenes.
general_catalogsEsquema donde se encuentran las funciones e información de Parsable.
alp_cat_parsable_jobsTabla de Omnicanal donde se almacena la información proveniente de Parsable de Jobs.
alp_cat_parsable_deviationsTabla de Omnicanal donde se almacena la información proveniente de Parsable de Deviations.
alp_cat_parsable_alfrescoTabla de referencia que asocia los registros de Parsable con sus respectivas imágenes almacenadas en Alfresco.
Funciones PostgreSQLProcesan la información de Parsable y generan los datos requeridos.
API de CatálogosExpone las funciones mediante servicios REST.
KeycloakServicio utilizado para la autenticación y generación del token de acceso.

4. Autenticación​

Para consumir los servicios de la API de Catálogos es necesario obtener previamente un token de acceso mediante el servicio de autenticación de Keycloak.

La autenticación se realiza mediante el flujo password, enviando las credenciales del usuario y la información del cliente configurado en el proveedor de identidad.


Si quieres una presentación aún más compacta y visual, puedes usar una tabla general:


4.1. Información del servicio de autenticación​

ElementoValor
🌐 Endpoint/realms/Alpura/protocol/openid-connect/token
⚙️ Método HTTPPOST
📦 Content-Typeapplication/x-www-form-urlencoded

4.2. Parámetros de autenticación​

ParámetroDescripción
grant_typeTipo de flujo de autenticación utilizado para obtener el token.
client_idIdentificador del cliente configurado en Keycloak.
client_secretSecreto asociado al cliente.
usernameUsuario utilizado para realizar la autenticación.
passwordContraseña del usuario.
🔐 Seguridad

Los valores sensibles deben gestionarse mediante variables de entorno o un administrador de secretos.

5. Servicios de Catálogos​

Para facilitar la integración y el mantenimiento, todos los endpoints de la API de Catálogos comparten una dirección base común. Las consultas específicas se realizan modificando el catálogo de destino en la URL.


5.1. Información de los Servicios Jobs​

ElementoValor
🌐 Endpoint/gc/v1/api/v1/catalogo/funcion/cat_parsable_visitas_dia_status
⚙️ Método HTTPPOST
📦 Content-Typeapplication/json
🔒 AuthorizationBearer {access_token}
🔒 ALP_AUTHBearer {access_token}
🔗 Body WS["p_inicio", "p_fin","p_plantilla","{p_no_ranchos}"]
🧩 Función BDgeneral_catalogs.alp_parsable_visitas_dia_status
Formato de fechas

Los parámetros de p_inicio y p_fin deben enviarse utilizando el formato YYYY-MM-DD, de acuerdo con la siguiente estructura:

  • YYYY: 4 dígitos para el año
  • MM: 2 dígitos para el mes
  • DD: 2 dígitos para el día

Ejemplo: 2026-06-01

Búsqueda por plantilla

El parámetro p_plantilla permite utilizar el carácter comodín % para realizar búsquedas parciales dentro del nombre de la plantilla.

Ejemplo:

CALIDAD%LECHE

Este valor permite buscar plantillas cuyo nombre contenga la cadena CALIDAD seguida de LECHE.

Ranchos

El parámetro p_no_ranchos recibe un arreglo con los números de los ranchos que se desean consultar. Si se especifican uno o más ranchos, la consulta devolverá únicamente la información correspondiente a esos registros.

Ejemplos:

"40" → Devuelve únicamente la información del Rancho 40.

"227" → Devuelve únicamente la información de los Ranchos 40 y 227.


Estructura de la Respuesta​

El servicio devuelve un arreglo de objetos JSON. Cada objeto representa una fila de datos retornada por la función y contiene los siguientes campos:

CampoTipo de dato (SQL)Descripción
no_ranchoBIGINTNúmero identificador del rancho, extraído de los campos personalizados.
ranchoTEXTNombre del rancho, extraído de los campos personalizados.
plantillaTEXTNombre o título de la plantilla del trabajo (job_template_title).
job_started_dateDATEFecha de inicio del trabajo, convertida desde UTC.
job_statusTEXTEstatus actual del trabajo. Ejemplo: Completed, In Progress.
job_lookup_idBIGINTCantidad total de trabajos agrupados bajo estos criterios (COUNT(DISTINCT job_id)).

Datos Técnicos​

curl --location '<url_base>/gc/v1/api/v1/catalogo/funcion/cat_parsable_visitas_dia_status' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <access_token>' \
--header 'ALP_AUTH: Bearer <access_token>' \
--data '[<p_inicio>,<p_fin>,<p_plantilla>,"{<p_no_ranchos>}"]'
info

Puedes ejecutar la petición directamente desde tu terminal utilizando el siguiente comando curl. Asegúrate de:

  1. Reemplazar <url_base> con los datos correspondientes del servicio.
  2. Sustituir los marcadores <access_token> con el token de Keycloak obtenido previamente.
  3. Configurar en el cuerpo (--data) los parámetros específicos que requiere el catálogo.

5.2. Información de los Servicios Deviations​

ElementoValor
🌐 Endpoint/gc/v1/api/v1/catalogo/funcion/cat_parsable_deviations
⚙️ Método HTTPPOST
📦 Content-Typeapplication/json
🔒 AuthorizationBearer {access_token}
🔒 ALP_AUTHBearer {access_token}
🔗 Body WS["p_inicio", "p_fin","p_plantilla","{p_no_ranchos}"]
🧩 Función BDgeneral_catalogs.alp_parsable_deviations
Formato de fechas

Los parámetros de p_inicio y p_fin deben enviarse utilizando el formato YYYY-MM-DD, de acuerdo con la siguiente estructura:

  • YYYY: 4 dígitos para el año
  • MM: 2 dígitos para el mes
  • DD: 2 dígitos para el día

Ejemplo: 2026-06-01

Búsqueda por plantilla

El parámetro p_plantilla permite utilizar el carácter comodín % para realizar búsquedas parciales dentro del nombre de la plantilla.

Ejemplo:

CALIDAD%LECHE

Este valor permite buscar plantillas cuyo nombre contenga la cadena CALIDAD seguida de LECHE.

Ranchos

El parámetro p_no_ranchos recibe un arreglo con los números de los ranchos que se desean consultar. Si se especifican uno o más ranchos, la consulta devolverá únicamente la información correspondiente a esos registros.

Ejemplos:

"40" → Devuelve únicamente la información del Rancho 40.

"227" → Devuelve únicamente la información de los Ranchos 40 y 227.


Estructura de la Respuesta​

El servicio devuelve un arreglo de objetos JSON. Cada objeto representa una fila de datos retornada por la función y contiene los siguientes campos:

CampoTipo de dato (SQL)Descripción
fecha_desviacionTIMESTAMPFecha y hora en que se registró la desviación, expresada en formato ISO 8601.
nombre_pasoTEXTNombre del paso o actividad del proceso donde se identificó la desviación.
numero_desviacionesTEXTNúmero de desviaciones identificadas para el paso y fecha correspondientes.

Datos Técnicos​


curl --location '<url_base>/gc/v1/api/v1/catalogo/funcion/cat_parsable_deviations' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <access_token>' \
--header 'ALP_AUTH: Bearer <access_token>' \
--data '[<p_inicio>,<p_fin>,<p_plantilla>,"{<p_no_ranchos>}"]'
info

Puedes ejecutar la petición directamente desde tu terminal utilizando el siguiente comando curl. Asegúrate de:

  1. Reemplazar <url_base> con los datos correspondientes del servicio.
  2. Sustituir los marcadores <access_token> con el token de Keycloak obtenido previamente.
  3. Configurar en el cuerpo (--data) los parámetros específicos que requiere el catálogo.


5.3. Recuperación de Imagenes de Alfresco​

ElementoValor
🌐 Endpoint<url_alfresco>/nodes/<file_alfresco_id>/content
⚙️ Método HTTPGET
🔒 AuthorizationBasic Auth
file_alfresco_id

El identificador file_alfresco_id se obtiene de las columnas firma_asesor_real y firma_socio_real que se encuentra en el servicio de Jobs Resumen Tiempo Visita.


Estructura de la Respuesta​

Recupera la imagen vinculada desde el repositorio de Alfresco mediante el identificador file_alfresco_id.


Datos Técnicos​

curl --location '<url_alfresco>/nodes/<file_alfresco_id>/content' \
--header 'Authorization: ••••••'
info

Puedes ejecutar la petición directamente desde tu terminal utilizando el siguiente comando curl. Asegúrate de:

  1. Reemplazar <file_alfresco_id>: Utiliza el identificador obtenido de las columnas firma_asesor_real o firma_socio_real del servicio Jobs Resumen Tiempo Visita.
  2. Autenticación básica: Proporciona las credenciales requeridas en el encabezado Authorization.