# Sincronizacion completa

Si quiero tener todos los elementos de una Master Db sincronizados contra otro sistema, existe un endpoint especial que permite listar únicamente 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.

<mark style="color:blue;">`GET`</mark> `https://api.persat.com.ar/v1/masterdbvalues/mdb_id`

#### Path Parameters

| Name                                      | Type   | Description                   |
| ----------------------------------------- | ------ | ----------------------------- |
| mdb\_id<mark style="color:red;">\*</mark> | Number | Identificador de la Master db |

#### Query Parameters

| Name                                            | Type    | Description                                                                              |
| ----------------------------------------------- | ------- | ---------------------------------------------------------------------------------------- |
| offset                                          | number  | Mismo concepto de SQL para la paginación. En caso de no enviarse se considerará 0 (cero) |
| limit<mark style="color:red;">\*</mark>         | number  | Mismo concepto de SQL para la paginación. Max: 100                                       |
| last\_updated<mark style="color:red;">\*</mark> | IsoDate | Fecha a partir de la cual buscar. Formato yyyy-MM-ddTHH:mm:ss.SSSZ                       |

#### Headers

| Name                                            | Type   | Description     |
| ----------------------------------------------- | ------ | --------------- |
| Authorization<mark style="color:red;">\*</mark> | String | Bearer API\_KEY |

{% tabs %}
{% tab title="200: OK La consulta se ejecutó con éxito" %}

{% endtab %}

{% tab title="400: Bad Request Error en alguno de los campos enviados. userMessage contiene informacipon adicional." %}

```javascript
{
    "success": false,
    "error": {
        "status": 400,
        "type": "BAD_REQUEST",
        "userMessage": "'mdb_id' es un number (entero) obligatorio"
    }
}
```

{% endtab %}
{% endtabs %}

### Ejemplo de consulta

En este ejemplo queremos listar todos los elementos de la Master Db de Productos que hayan sufrido una modificación o hayan sido creados a partir de **last\_updated** incluido.

{% hint style="info" %}
IMPORTANTE:

**last\_updated:** Es una fecha UTC.
{% endhint %}

* mdb\_id = 4
* last\_updated = 19 de Mayo de 2022 a las 08:00 UTC

**<https://api.persat.com.ar/v1/**&#x6D;asterdbvalue&#x73;**/>**<mark style="color:blue;">4</mark>?offset=0\&limit=2\&last\_updated=2022-05-19T08:00:00.000Z

### Analizando la Respuesta

```json
{
    "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 limit 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](/entidades-basicas/master-db/obtener-elemento.md)

## 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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.api.persat.com.ar/entidades-basicas/master-db/sincronizacion-completa.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
