Mais um case da OMIE.
Desta vez são os extratos bancários que é uma consulta que necessita utilizar as contas correntes.
Conforme imagem abaixo, é possível ter e atualizar no Power BI serviços os lançamentos dos extratos.

Se você veio da pesquisa no Google por exemplo ou já estava navegando pela página, eu tenho um vídeo no meu canal do YouTube onde explico como criei a consulta.
E pra não ficar de enrolação, segue script que utilizei para estruturar esta consulta:
Você precisa criar uma consulta nula no Power Query, clicar no editor avançado e substituir por este script.
let
Request = (Pagina as number) =>
let
body = Json.FromValue(
[
call = "ListarContasCorrentes",
app_key = "38333295000",
app_secret = "4cea520a0e2a2ecdc267b75d3424a0ed",
param = {[pagina = Pagina, registros_por_pagina = 100, apenas_importado_api = "N"]}
]
),
Consulta = Json.Document(
Web.Contents(
"https://app.omie.com.br",
[
RelativePath = "api/v1/geral/contacorrente/",
Headers = [#"Content-Type" = "application/json"],
Content = body
]
)
)
in
Consulta,
RequestExtrato = (conta as number) =>
let
bodyExtrato = Json.FromValue(
[
call = "ListarExtrato",
app_key = "38333295000",
app_secret = "4cea520a0e2a2ecdc267b75d3424a0ed",
param = {
[nCodCC = conta, cCodIntCC = "", dPeriodoInicial = "01/12/2021", dPeriodoFinal = ""]
}
]
),
ConsultaExtrato = Json.Document(
Web.Contents(
"https://app.omie.com.br",
[
RelativePath = "api/v1/financas/extrato/",
Headers = [#"Content-Type" = "application/json"],
Content = bodyExtrato
]
)
)
in
ConsultaExtrato,
Tabela = Table.FromRecords({[Pagina = 1]}),
AlterarTipo = Table.TransformColumnTypes(Tabela, {{"Pagina", Int64.Type}}),
InvocarFuncao01 = Table.AddColumn(AlterarTipo, "Tabela", each Request([Pagina])),
Tabela1 = InvocarFuncao01{0}[Tabela],
Paginas = Tabela1[total_de_paginas],
ListaPaginas = Table.FromList(
List.Generate(() => 1, each _ <= Paginas, each _ + 1),
Splitter.SplitByNothing(),
null,
null,
ExtraValues.Error
),
InvocarFuncao02 = Table.AddColumn(ListaPaginas, "Tabela", each Request([Column1])),
#"Expanded {0}" = Table.ExpandRecordColumn(
InvocarFuncao02,
"Tabela",
{"ListarContasCorrentes"},
{"ListarContasCorrentes"}
),
#"Expanded {0}1" = Table.ExpandListColumn(#"Expanded {0}", "ListarContasCorrentes"),
#"Expanded {0}2" = Table.ExpandRecordColumn(
#"Expanded {0}1",
"ListarContasCorrentes",
{"nCodCC"},
{"nCodCC"}
),
#"Changed Type" = Table.TransformColumnTypes(#"Expanded {0}2", {{"nCodCC", Int64.Type}}),
InvocarFuncao03 = Table.AddColumn(
#"Changed Type",
"Tabela",
each try RequestExtrato([nCodCC]) otherwise null
),
#"Personalização Adicionada" = Table.AddColumn(
InvocarFuncao03,
"Filtro",
each if [Tabela] = null then false else true
),
#"Expanded {0}3" = Table.ExpandRecordColumn(
#"Personalização Adicionada",
"Tabela",
{"listaMovimentos"},
{"listaMovimentos"}
),
#"Linhas Filtradas" = Table.SelectRows(#"Expanded {0}3", each ([Filtro] = true)),
#"Colunas Removidas" = Table.RemoveColumns(#"Linhas Filtradas", {"Filtro"}),
#"Expanded {0}4" = Table.ExpandListColumn(#"Colunas Removidas", "listaMovimentos"),
#"Expanded {0}5" = Table.ExpandRecordColumn(
#"Expanded {0}4",
"listaMovimentos",
{
"cDesCliente",
"dDataLancamento",
"nSaldo",
"nValorDocumento",
"cCodCategoria",
"cDataInclusao",
"cDesCategoria",
"cDocumentoFiscal",
"cHoraInclusao",
"cNatureza",
"cOrigem",
"cParcela",
"cSituacao",
"cTipoDocumento",
"cVendedor",
"nCodCliente",
"nCodLancRelac",
"nCodLancamento",
"cNumero",
"cObservacoes",
"cDocCliente",
"cRazCliente",
"dDataConciliacao"
},
{
"cDesCliente",
"dDataLancamento",
"nSaldo",
"nValorDocumento",
"cCodCategoria",
"cDataInclusao",
"cDesCategoria",
"cDocumentoFiscal",
"cHoraInclusao",
"cNatureza",
"cOrigem",
"cParcela",
"cSituacao",
"cTipoDocumento",
"cVendedor",
"nCodCliente",
"nCodLancRelac",
"nCodLancamento",
"cNumero",
"cObservacoes",
"cDocCliente",
"cRazCliente",
"dDataConciliacao"
}
)
in
#"Expanded {0}5"
#rafalemospentaho #rafalemospbi #choraAPI #powerquery #powerbi #Mlanguage