API BLING no Power BI – Consulta Notas Fiscais

Neste artigo você encontrará os scripts do que utilizado no vídeo do canal.

Segue código é da função criada fx_notasFiscais:

(data as datetime ) =>
let
    Fonte = 
        Json.Document(
            Web.Contents(
                "https://bling.com.br/Api/v2",
                [
                    RelativePath = "notasfiscais/json/",
                    Query =
                    [
                        apikey = api_key,
                        filters= "dataEmissao["& Date.ToText(Date.From(data)) &" 00:00:00 TO "& Date.ToText(Date.From(data)) &" 23:59:59]"
                    ]
                ]
            )
        ),
    retorno = Fonte[retorno],
    notasfiscais = retorno[notasfiscais],
    #"Convertido para Tabela" = Table.FromList(notasfiscais, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Column1 Expandido" = Table.ExpandRecordColumn(#"Convertido para Tabela", "Column1", {"notafiscal"}, {"notafiscal"}),
    #"notafiscal Expandido" = Table.ExpandRecordColumn(#"Column1 Expandido", "notafiscal", {"numero", "situacao", "dataEmissao"}, {"numero", "situacao", "dataEmissao"})
in
    #"notafiscal Expandido"

E na sequência o código da consulta criada f_NotasFiscais:

let
    listaDatas = 
        List.Generate(
            () => #date(2021, 10, 1),
            each _ <= #date(2021, 12, 31),
            each Date.AddDays(_ , 1)
        ),
    tabelaData = Table.FromList(listaDatas, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Tipo Alterado" = Table.TransformColumnTypes(tabelaData,{{"Column1", type date}}),
    #"Colunas Renomeadas" = Table.RenameColumns(#"Tipo Alterado",{{"Column1", "Data"}}),
    #"Tipo Alterado1" = Table.TransformColumnTypes(#"Colunas Renomeadas",{{"Data", type datetime}}),
    #"Linhas Filtradas1" = Table.SelectRows(#"Tipo Alterado1", each [Data] >= #datetime(2021, 10, 1, 0, 0, 0) and [Data] <= #datetime(2021, 10, 5, 0, 0, 0)),
    #"Função Personalizada Invocada" = Table.AddColumn(#"Linhas Filtradas1", "fx_notasFiscais", each try fx_notasFiscais([Data]) otherwise null),
    #"fx_notasFiscais Expandido" = Table.ExpandTableColumn(#"Função Personalizada Invocada", "fx_notasFiscais", {"numero", "situacao", "dataEmissao"}, {"numero", "situacao", "dataEmissao"}),
    #"Linhas Filtradas" = Table.SelectRows(#"fx_notasFiscais Expandido", each ([numero] <> null))
in
    #"Linhas Filtradas"

Lembrando que você precisa alterar as datas de início e fim do List.Generate e você pode consultar o código original no post  Power Query – Como Incluir Feriados na Tabela Dimensão Calendário (Via API).

Deixo aqui também o vídeo da consulta incremental que tem no meu canal: