Olá Amigos estou com esse problema na atualização dos dados incremental de API, apararentemente deve-se ao fato de que estou buscando dados de um periodo maior (6 meses), e gostaria de apoio para poder resolver esse problema.
A api tem alguns parametros obrigatorios, que já defino alguns para filtro, mas o start e o end que são as datas, não sei como e se é possivel fazer uma requisição por data exemplo:
start = 2022-10-25 & end=2022-10-26, que é o dia de hoje e o end date hoje +1 é o padrão, alem disso tem limt que é 100 e com o list generate em faço o each para buscar até o ultimo item.
em resumo se tivesse uma forma de não fazer uma requisição pegando o start=6 meses & end data atual, e ao inves disso fazer de maneira quebrada cada requisição talvez ajude, pois eu testei utilizando um range de 7 dias e rodou, porém ao usar um intervalo maior deu esse erro do print.
Obrigado quem puder ajudar, todas as sugestões são bem vindas. @Rafa Lemos
Pergunta
edmar
Olá Amigos estou com esse problema na atualização dos dados incremental de API, apararentemente deve-se ao fato de que estou buscando dados de um periodo maior (6 meses), e gostaria de apoio para poder resolver esse problema.
A api tem alguns parametros obrigatorios, que já defino alguns para filtro, mas o start e o end que são as datas, não sei como e se é possivel fazer uma requisição por data exemplo:
start = 2022-10-25 & end=2022-10-26, que é o dia de hoje e o end date hoje +1 é o padrão, alem disso tem limt que é 100 e com o list generate em faço o each para buscar até o ultimo item.
em resumo se tivesse uma forma de não fazer uma requisição pegando o start=6 meses & end data atual, e ao inves disso fazer de maneira quebrada cada requisição talvez ajude, pois eu testei utilizando um range de 7 dias e rodou, porém ao usar um intervalo maior deu esse erro do print.
Obrigado quem puder ajudar, todas as sugestões são bem vindas. @Rafa Lemos
Criei essa função estoque:
= (offset) =>
let
Fonte = Json.Document(
Web.Contents(
"https://api.eyemobile.com.br",
[RelativePath="/v1/transactions" & "?limit=100&"&
"offset="&Number.ToText(offset)&"&"&"start="& Date.ToText(DateTime.Date(Date.AddMonths(DateTimeZone.LocalNow(),-6)),"yyyy-MM-dd")&"T10:00:00Z&" &
"end="& Date.ToText(DateTime.Date(Date.AddDays(DateTimeZone.LocalNow(),1)),"yyyy-MM-dd")&"T03:00:00Z&" & "cancelled=false&serialized_types=0,4,17,18",
Headers=[#"Content-Type"="application/json", #"X-EYEMOBILE-ACCESS-KEY"=AcessKey, #"X-EYEMOBILE-SECRET-KEY"=SecretKey]]))
in
Fonte
aqui chamo a função
let
Fonte = List.Generate(
() => [offset = 100, estoque = FnOffSet(0)],
each not List.IsEmpty ([estoque][data]),
each [offset = [offset] + 100 , estoque = FnOffSet([offset])],
each [estoque]
),
#"Convertido para Tabela" = Table.FromList(Fonte, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Column1 Expandido" = Table.ExpandRecordColumn(#"Convertido para Tabela", "Column1", {"offset", "limit", "has_more", "data"}, {"offset", "limit", "has_more", "data"}),
#"data Expandido1" = Table.ExpandListColumn(#"Column1 Expandido", "data"),
#"data Expandido2" = Table.ExpandRecordColumn(#"data Expandido1", "data", {"transaction_items"}, {"transaction_items"}),
#"Colunas Removidas1" = Table.RemoveColumns(#"data Expandido2",{"offset", "limit", "has_more"}),
#"transaction_items Expandido" = Table.ExpandListColumn(#"Colunas Removidas1", "transaction_items"),
#"Linhas em Branco Removidas" = Table.SelectRows(#"transaction_items Expandido", each not List.IsEmpty(List.RemoveMatchingItems(Record.FieldValues(_), {"", null}))),
#"transaction_items Expandido1" = Table.ExpandRecordColumn(#"Linhas em Branco Removidas", "transaction_items", {"id", "local_id", "time", "product_name", "price", "quantity", "subtotal", "discount", "total", "sku", "measure", "valid_until", "comment", "source", "fractioned", "fraction_quantity", "stock_enabled", "rigid_stock_enabled", "type", "serial", "batch", "transaction_id", "transaction_combo_id", "product_id", "product_group_id", "product_parent_id", "promotion_id", "transaction_item_complements", "transaction_item_tax"}, {"id", "local_id", "time", "product_name", "price", "quantity", "subtotal", "discount", "total", "sku", "measure", "valid_until", "comment", "source", "fractioned", "fraction_quantity", "stock_enabled", "rigid_stock_enabled", "type", "serial", "batch", "transaction_id", "transaction_combo_id", "product_id", "product_group_id", "product_parent_id", "promotion_id", "transaction_item_complements", "transaction_item_tax"}),
#"Outras Colunas Removidas" = Table.SelectColumns(#"transaction_items Expandido1",{"local_id", "time", "product_name", "price", "quantity", "discount", "total", "measure", "transaction_id", "product_id"}),
#"Colunas Reordenadas" = Table.ReorderColumns(#"Outras Colunas Removidas",{"transaction_id", "time", "product_id", "product_name", "price", "quantity", "discount", "total"}),
#"Tipo Alterado" = Table.TransformColumnTypes(#"Colunas Reordenadas",{{"transaction_id", Int64.Type}, {"time", type datetime}, {"product_id", Int64.Type}, {"product_name", type text}, {"price", type number}, {"quantity", Int64.Type}, {"discount", Int64.Type}, {"total", type number}}),
#"Coluna Duplicada" = Table.DuplicateColumn(#"Tipo Alterado", "time", "time - Copiar"),
#"Horário Extraído" = Table.TransformColumns(#"Coluna Duplicada",{{"time - Copiar", DateTime.Time, type time}}),
#"Colunas Reordenadas1" = Table.ReorderColumns(#"Horário Extraído",{"transaction_id", "time", "product_id", "time - Copiar", "product_name", "price", "quantity", "discount", "total"}),
#"Data Extraída" = Table.TransformColumns(#"Colunas Reordenadas1",{{"time", DateTime.Date, type date}}),
#"Tipo Alterado2" = Table.TransformColumnTypes(#"Data Extraída",{{"time", type datetime}}),
#"Linhas Filtradas" = Table.SelectRows(#"Tipo Alterado2", each [time] > RangeStart and [time] <= RangeEnd),
#"Colunas Reordenadas2" = Table.ReorderColumns(#"Linhas Filtradas",{"transaction_id", "time", "time - Copiar", "product_id", "product_name", "price", "quantity", "discount", "total"}),
#"Colunas Renomeadas" = Table.RenameColumns(#"Colunas Reordenadas2",{{"time", "Data"}, {"time - Copiar", "Hora"}, {"product_name", "Produto"}, {"product_id", "cod_produto"}}),
#"Tipo Alterado3" = Table.TransformColumnTypes(#"Colunas Renomeadas",{{"Data", type date}}),
#"Coluna Condicional Adicionada" = Table.AddColumn(#"Tipo Alterado3", "Unidade", each if [measure] = 1 then "UN" else if [measure] = 2 then "KG" else if [measure] = 3 then "LT" else "N/A"),
#"Linhas Agrupadas" = Table.Group(#"Coluna Condicional Adicionada", {"Data", "cod_produto", "Produto", "Unidade"}, {{"Quantidade", each List.Sum([quantity]), type nullable number}, {"Price", each List.Sum([price]), type nullable number}, {"Valor", each List.Sum([total]), type nullable number}}),
#"Colunas Renomeadas1" = Table.RenameColumns(#"Linhas Agrupadas",{{"cod_produto", "Cód"}}),
#"Tipo Alterado1" = Table.TransformColumnTypes(#"Colunas Renomeadas1",{{"Valor", Currency.Type}, {"Price", Currency.Type}, {"Unidade", type text}})
in
#"Tipo Alterado1"
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Crie uma conta ou entre para comentar
Você precisar ser um membro para fazer um comentário
Criar uma conta
Crie uma nova conta em nossa comunidade. É fácil!
Crie uma nova contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora