Primero, dos advertencias:
Este artículo está dirigido a desarrolladores y veteranos de oficina; es técnico y demuestra herramientas y técnicas que los usuarios comerciales no suelen utilizar.
Cargosnap utiliza herramientas como Excel, Power Query y Power Automate en estos ejemplos. Estas son soluciones de Microsoft y no forman parte de la oferta de productos de Cargosnap. ¡No proporcionamos, vendemos ni apoyamos estas herramientas! Simplemente creemos que son increíbles para lograr los objetivos comerciales, pero puedes elegir otro producto o, usar la funcionalidad descrita en tu propio WMS/TMS.
¡TIP! Ten siempre a mano la Documentación de la API de CargoSnap.
Introduce datos en Excel, desde la API
¿Deseas introducir datos de Cargosnap en Excel (o PowerBI y similares)? Mira este vídeo explicativo:
Anexo: Paginación
Para manejar la Paginación en Power Query, los siguientes fragmentos de código pueden ser útiles:
Para la terminal/formularios:
let
Source = List.Skip(List.Generate( () => [Counter = 0, isMore = true], each [isMore] <> false,
each [WebCall = Json.Document(Web.Contents( "https://api.cargosnap.com/api/v2/forms/[my-form-id]?"
& "token=[my-API-token]"
& "&limit=250"
& "&startdate=2020-01-01"
& "&enddate=2020-12-31"
& "&page=" & Number.ToText(Counter))),
isMore = if [Counter] < 1 then null else
if [WebCall][current_page] = [WebCall][last_page] then false else true,
Counter = [Counter] + 1
]
), 1),
#"Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error)
in
Source
Para la terminal/archivos:
let
Source = List.Skip(List.Generate( () => [Counter = 0, isMore = true],
each [isMore] <> false,
each [WebCall = Json.Document(Web.Contents( "https://api.cargosnap.com/api/v2/files?"
& "token=[my-API-token]"
& "&limit=250"
& "&startdate=2020-01-01"
& "&enddate=2020-12-31"
& "&page=" & Number.ToText(Counter))),
isMore = if [Counter] < 1 then null else
if [WebCall][current_page] = [WebCall][last_page] then false else true,
Counter = [Counter] + 1
]
), 1),
#"Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error)
in
Source