Zauru
  // Documentación
Conoce más de ZauruDocumentación APIIngresar

Tutoriales

Configuraciones de mi usuario
Primeros Pasos (Configuraciones Generales)
Permisos de Acceso
Contabilidad
Contabilización de Proyectos
Inventarios
Ventas
Compras
Casos de Soporte
Punto de Venta
Contratos
E-commerce
CRM
Webapps
Reportes de Contabilidad
Reportes de Inventarios
Reportes de Ventas
Reportes de Compras
Reportes de Casos de Soporte
Reportes de Puntos de Venta
Reportes de Contratos
Reportes de CRM
Importaciones masivas de datos históricos    Importar facturas masivamente (Talend)    Importar compras con una sola cuenta (Talend)

Importar compras con una sola cuenta

En este caso vamos a utilizar Talend para formatear el JSON que se va a enviar por el API de Zauru y enviarlo al correr el trabajo.

Este flujo de la información lo vamos a separar para aclarar mejor el proceso completo:

1. Llenar la plantilla (Cliente)

Primero y más importante es el excel de donde vamos a obtener los datos. Este excel debería de estar lo más ordenado posible para que podamos manipularlo rápidamente y dejarlo listo para que el proceso de digitalización con Talend sea lo más rápido posible.

Este es el Excel que el cliente debe de llenar:

excel_file
Plantilla para importar ordenes de compra masivamente

2. Limpiar los datos y cambiar de nombres a IDs (Implementador)

Antes de utilizar Talend, hay que limpiar los datos obtenidos y cambiar algunos nombres que se ingresaron en el excel para cambiarlos a IDs. Esto incluye cambiar las columnas para que se asemeje al nombre de los campos en el API:

  1. proveedor y nit proveedor por payee_id
  2. moneda por currency_id
  3. agencia por agency_id
  4. termino de pago por charge_term_id
  5. Las fechas con formato de fecha en excel (no texto)
  6. Borrar las columnas que no se utilizaron (cosas de items)

Además se debe de cambiar el nombre de todas las columnas para que coincida con los nombres del API. Ver el API de Zauru para referencia.

Esto nos dejará con un excel (xlx y no xlxs) similar a este:

excel_file
Plantilla de compras con una sola cuenta llena

3. Utilizar talend para mandar por el API de Zauru cada compra (Implementador)

Con el poder de Talend Open Studio se pueden construir flujos de limpieza, manipulación y publicación de datos. El flujo que tuvimos que construir para cargar esta información a Zauru fue el siguiente:

talend cusc disenio compras una sola cuenta

A continuación vamos a revisar cada uno de los componentes que se utilizaron y algunas recomendaciones de cada componente para que funcione correctamente.

FileInputExcel

Este es el componente que lee el excel y lo convierte en algo que entiende Talend (schema) y que puede enviar a los otros componentes para su proceso. En este componente lo más importante es colocar el tipo de dato correcto en cada campo del esquema.

Esta imagen muestra los tipos de dato en cada columna por si hay necesidad de cambiarla. talend cusc excel schema

Nótese también que se agregó la columna "json" como un string para que allí se coloque la orden de compra de la forma que lo entiende Zauru según el API.

WriteJSONField

Este componente convierte los datos del schema del Excel y los convierte en un JSON para que lo pueda entender el API de Zauru. Para utilizar este componente hay que hacer 2 cosas:

  1. Seleccionar el campo destino donde vamos a escribir el JSON producido. En nuestro caso vamos a seleccionar el campo nuevo "json" que agregamos al schema en el componente de Excel.

talend cusc WriteJsonField basic params

  1. Mapear los campos a los campos que entiende el API de Zauru.

talend cusc WriteJsonField mapping

Nótese que hay que seleccionar al menos 1 elemento de "loop element" en la columna de Node Status

Map

Al enlazar el componente de Map y con el siguiente componente de RESTClient automáticamente genera un schema de salida requerido para mandar los argumentos al RESTClient y nosotros tenemos que transformar el schema de entrada (que viene del WriteJSONField) a este formato requerido. talend cusc Map

Nótese que colocamos el campo y sustituimos la cadena de caracteres "asdf1" por "1" ya que el componente WriteJSONField no deja colocar nodos con nombres sin letras y que empiecen con letras, por eso decidimos colocar ese código raro en el nodo y cambiarlo con un "replace"

RESTClient

Este módulo se encarga de enviar lo que viene en el schema de entrada (del componente Map) a la página que configuremos. La configuración necesaria debe ser:

  1. URL: https://baculo.herokuapp.com no utilizamos https://app.zauru.com porque utilizamos un certificado Lets Encrypt y Talend todavía no soporta ese tipo de certificados para sitios HTTPS por lo que tendremos que utilizar la otra dirección de Zauru que utiliza un certificado wildcard de DigiCert.
  2. HTTP Method: POST
  3. Content Type: JSON
  4. Accept Type: JSON

talend cusc RestClient basic params

Además, en las configuraciones avanzadas hay que ingresar las credenciales del API en los Headers para poder procesar la solicitud en Zauru:

  1. X-User-Email
  2. X-User-Token

talend cusc RestClient advanced params

LogRow

Este componente sirver para mostrar el esquema con los datos que genera cada componente, coincidentemente, RESTClient puede generar 2 salidas, las 2 opciones que responde el servidor: respuesta correcta del servidor (HTTP Status 200) y la respuesta con error del servidor (HTTP status 50X, 40X, 30X, etc) después de mandar una solicitud. Al correr el trabajo va a mostrar cuantas respuestas salieron positivas y cuantas negativas.

Pruebas recomendadas

  1. Utilizar LogRow en cada componente, antes de agregar el siguiente componente para ver si lo que procesó el componente está correcto
  2. Enviar los datos a nuestro servidor de pruebas https://zauru.herokuapp.com para ver como ingresaron los datos.
talend_file
Job de Talend completo

Adjunto el archivo de Talend para que puedan jugar con todo lo que se discutió en este manual