Integraciones a través de SFTP

SFTP (Secure File Transfer Protocol) es un protocolo de red utilizado para transferir archivos de forma segura sobre una red. Este protocolo utiliza técnicas de cifrado para proteger la confidencialidad e integridad de los datos durante la transferencia.

Ejecución del SFTP

La manera en la que se ejecuta este protocolo en la integración de datos es la siguiente:

  1. Se detecta el archivo y se pasa a la cola de procesado del cliente, concatenando su ID.

  2. Cuando llega su turno —hay un número de procesadores que van escaneando la cola de cada cliente—, se leen todas las líneas del archivo y se comprueba el formato de lectura.

  3. Se filtran los registros que tienen valores inválidos (el producto no existe, la fecha es incorrecta, la cantidad es negativa, etc.) y las líneas no procesables —contienen errores— son ignoradas. Para todos los demás valores procesados como correctos:

    • Se eliminan los registros actuales.

    • Se insertan los nuevos registros.

El proceso de guardado es asíncrono, es decir, se ejecutan varios valores al mismo tiempo. En general, el proceso no se detiene por cantidad de errores, solo ciertos tipos de errores que pueden hacer peligrar el sistema como timeout (base de datos colapsada) o errores de inserción en la base de datos, pero no de formato.

Integración de medidas

Una vez que se crea el directorio SFTP para el cliente, y cuando este ha recibido toda la información necesaria para la conexión (credenciales, host, etc.), podrá cargar ficheros con la periodicidad que se haya acordado. Así, el cliente deposita los archivos CSV en su directorio SFTP para que se procesen tal y como se ha detallado anteriormente.

En las cabeceras de las columnas es necesario especificar:

  • STORE: identificador externo del servicio.

  • DATE: fecha, por defecto en formato yyyyMMdd.

  • TIME: hora local, por defecto en formato HHmm.

  • ZONE: identificador externo del producto o sección.

  • Las distintas medidas configuradas en el negocio: el nombre debe coincidir exactamente con el que se ha configurado en Orquest.

A continuación, se muestra un ejemplo:

STORE DATE TIME ZONE measure1 measure2 measure3

serviceId

20241124

0000

productId

0.77

2

1.5

serviceId

20241124

0015

productId

6.66

1

6.4

serviceId

20241124

0030

productId

7.93

7

1

serviceId

20241124

0045

productId

5.87

10

1.4

serviceId

20241124

0100

productId

8.09

6

8.7

El formato de estas columnas puede variar según la configuración de negocio establecida en el sistema. Esto significa que la estructura y el contenido de las columnas dependerá de los parámetros y opciones establecidos. Por ejemplo, podría configurarse el formato de la fecha añadiendo guiones: yyyy-MM-dd.

A través de este método, los archivos con las medidas reales se envían de manera segura al servidor SFTP de Orquest, desde donde son procesados para integrar los datos en el sistema.

Aspectos que tener en cuenta

  • El correcto procesamiento de un archivo no implica la inserción de datos en el sistema: si todas las líneas contienen errores y son ignoradas, el archivo se procesa correctamente, pero no hay datos válidos que añadir.

  • El tiempo de procesamiento de los archivos dependerá de la cantidad de elementos que estén en cola: tardará más si coincide con alguna otra subida o si se cargan numerosos archivos al mismo tiempo.

  • Existen diferentes plantillas SFTP para cada negocio: se generan en función de los parámetros que el negocio tiene configurados.

  • Es recomendable no enviar archivos con el mismo nombre, con el fin de poder monitorizar mejor el procesamiento de los datos.

Errores frecuentes

A continuación, se exponen algunos de los errores más frecuentes en el procesamiento de archivos vía SFTP.

Error SFTP Descripción

encoding_possibly_wrong

El procesador detecta que el fichero no está codificado como UTF-8.

invalid_date_format

Error en el formato de fecha y hora.

product_not_exist

El producto no existe en el negocio o no está configurado.

product_for_service_not_exist

El producto no existe en el negocio o no está configurado.

invalid_value

El archivo contiene valores no válidos, como valores negativos.

demandtype_not_exist

El tipo de medida no existe en el negocio.