Sincronizacion completa

Si quiero tener todos los elementos de una Master Db sincronizados contra otro sistema, existe un endpoint especial que permite listar unicamente los elementos que hayan sido modificados a partir de una fecha particular. Entonces, sobre todo para cuando hay muchos elementos, es posible ir haciendo actualizaciones parciales.

GET https://api.persat.com.ar/v1/masterdbvalues/mdb_id

Path Parameters

NameTypeDescription

mdb_id*

Number

Identificado de la Master db

Query Parameters

NameTypeDescription

offset

number

Mismo concepto de SQL para la paginación. En caso de no enviarse se considerará 0 (cero)

limit*

number

Mismo concepto de SQL para la paginación. Max: 100

last_updated*

IsoDate

Fecha a partir de la cual buscar. Formato yyyy-MM-ddTHH:mm:ss.SSSZ

Headers

NameTypeDescription

Authorization*

String

Bearer API_KEY

Ejemplo de consulta

En este ejemplo queremos listar todos los elementos de la Master Db de Productos que hayan sufrido una modificacion o hayan sido creados a partir de last_updated incluido.

IMPORTANTE:

last_updated: Es una fecha UTC.

  • mdb_id = 4

  • last_updated = 19 de Mayo de 2022 a las 08:00 UTC

https://api.persat.com.ar/v1/masterdbvalues/4?offset=0&limit=2&last_updated=2022-05-19T08:00:00.000Z

Analizando la Respuesta

{
    "success": true,
    "paging": {
        "offset": 0,
        "limit": 2,
        "result": 2,
        "total": 1235
    },
    "data": [
        {
            "mdb_id": 4,
            "fields": {
                "1": "DEST-123AALK",
                "2": "Destornillador perillero",
                "5": "Rojo",
                "6": "130.76"
            },
            "updated": "2022-05-20T14:05:31.000Z"
        },
        {
            "mdb_id": 4,
            "fields": {
                "1": "PINZ-998KJU",
                "2": "Pinza de Punta",
                "5": "Metal",
                "6": "200.56"
            },
            "updated": "2022-05-20T14:06:04.000Z"
        }
    ]
}

paging: Es un objeto JSON que contiene los datos de la consulta offset y liimit tal cual se recibieron, y luego presenta el total de elementos en la Master Db encontrados, y la cantidad devueltos en esta consulta particular. De esta forma podemos ir trayendo de forma paginada todos los elementos modificados o creados a partir de last_updated

data: Es un array de Objetos JSON, en donde cada item es el elemento en la Master Db. Los campos de ese elemento son los mismos que cuando hacemos la consulta Obtener Elemento

Procedimimento para la Sincronizacion

El procedimiento correcto para hacer la sincronización de un listado con muchos elementos en una Master Db es el siguiente:

La primera vez, realizamos un request con el parametro last_updated con una fecha del pasado a la contratación de Persat (ej: 2000-01-01T00:00:00.000Z), e iteramos modificando el offet hasta barrer todos los elementos. Una vez sincronizados guardamos la fecha UTC en que realizamos esta primer sincronización.

Luego, cada vez que queremos sincronizar, repetimos el procedimiento anterior pero indicando en el parámetro last_updated la fecha guardada anteriormente. Finalizado el proceso guardamos la nueva fecha UTC de sincronización y repetimos cada vez que queramos sincronizar.

Last updated