Primero, dos advertencias:
Este artículo está dirigido a desarrolladores; es técnico y demuestra herramientas y técnicas que los usuarios comerciales no suelen ver.
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 de la competencia o usar la funcionalidad descrita en su propio WMS/TMS.
¡Tip! Ten a mano la documentación de la API de CargoSnap.
Ingreso datos datos a Excel, desde la API
¿Quieres ingresar tus datos de CargoSnap en Excel (o PowerBI y similares)? Mira este video explicativo:
Uso de Webhooks y llamadas API para tu caso específico
"Si esto sucede, entonces eso debería suceder". Hay tantos escenarios imaginables. ¡Con los Webhooks y las API ahora puedes hacerlo realidad! Sigue esta demostración donde mostramos un caso de uso que se está resolviendo con Microsoft Power Automate:
Ten en cuenta que este flujo de video muestra un "flujo feliz"; uno donde se cumplen las condiciones ideales y todos los datos están bien formados. Para el código de nivel de producción, probablemente quieras incluir más controles de cordura.
Anexo: Paginación
Para manejar la Paginación en Power Query, los siguientes fragmentos ayudarán:
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/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/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