Ir para conteúdo
  • 0

Erro atualização incremental API


edmar

Pergunta

  • Membros

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"

 

 

image.png.662081197435881030781d3eb1bdaa8b.png

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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 conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...