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:
let
Request = (Pagina as number) =>
let
body = Json.FromValue(
[
call = "ListarContasCorrentes",
app_key = "38333295000",
app_secret = "fed2163e2e8dccb53ff914ce9e2f1258", //Verificar se o app_secret é o mesmo. Atualizado em 16/07/2023.
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 = "fed2163e2e8dccb53ff914ce9e2f1258", //Verificar se o app_secret é o mesmo. Atualizado em 16/07/2023.
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"
Bem feito o script
Gostaria de receber o PBIX pelo e-mail
helio.hobus@_____.com.br