Mais um case da OMIE.
Continuando a série de vídeos sobre as consultas de API na OMIE, hoje será sobre como estruturar a consulta Orçamento Caixa.
Esta consulta retorna os valores Orçados X Realizados.
Para estruturar esta consulta, é preciso criar os períodos (Mês e Ano) conforme documentação.
O código abaixo está com os dados da OMIE, portanto o retorno do JSON será de acordo com o app_key e app_secret informados.
Código otimizado em 16/07/2023 – Nova forma de informar o Body e o APP_SECRET teve atualização em relação ao vídeo.
let
Request = (Ano as number, Mes as number) =>
let
body = Json.FromValue(
[
call = "ListarOrcamentos",
app_key = "38333295000",
app_secret = "fed2163e2e8dccb53ff914ce9e2f1258",
param = {[nAno = Ano, nMes = Mes]}
]
),
Consulta = Json.Document(
Web.Contents(
"https://app.omie.com.br",
[
RelativePath = "api/v1/financas/caixa/",
Headers = [#"Content-Type" = "application/json"],
Content = body
]
)
)
in
Consulta,
DateMin = #date(2018, 01, 01),
AnoMax = Date.Year(DateTime.LocalNow()) + 1,
DateMax = #date(AnoMax, 12, 31),
Duration = Duration.Days(DateMax - DateMin) + 1,
ListDates = List.Dates(DateMin, Duration, #duration(1, 0, 0, 0)),
#"Converted to Table" = Table.FromList(
ListDates,
Splitter.SplitByNothing(),
null,
null,
ExtraValues.Error
),
#"Changed Type2" = Table.TransformColumnTypes(#"Converted to Table", {{"Column1", type datetime}}),
#"Inserted Month" = Table.AddColumn(
#"Changed Type2",
"Mes",
each Date.Month([Column1]),
Int64.Type
),
#"Inserted Year" = Table.AddColumn(
#"Inserted Month",
"Ano",
each Date.Year([Column1]),
Int64.Type
),
#"Renamed Columns" = Table.RenameColumns(#"Inserted Year", {{"Column1", "Data"}}),
#"Removed Duplicates" = Table.Distinct(#"Renamed Columns", {"Mes", "Ano"}),
#"Filtered Rows" = Table.SelectRows(
#"Removed Duplicates",
each ([Ano] = 2022) and ([Mes] = 1 or [Mes] = 2 or [Mes] = 3 or [Mes] = 4)
),
#"Invoked Custom Function" = Table.AddColumn(
#"Filtered Rows",
"Finan_Orcado_Realizado",
each Request([Ano], [Mes])
),
#"Expanded {0}" = Table.ExpandRecordColumn(
#"Invoked Custom Function",
"Finan_Orcado_Realizado",
{"ListaOrcamentos"},
{"ListaOrcamentos"}
),
#"Expanded {0}1" = Table.ExpandListColumn(#"Expanded {0}", "ListaOrcamentos"),
#"Expanded {0}2" = Table.ExpandRecordColumn(
#"Expanded {0}1",
"ListaOrcamentos",
{"cCodCateg", "cDesCateg", "nValorPrevisto", "nValorRealilzado"},
{"cCodCateg", "cDesCateg", "nValorPrevisto", "nValorRealilzado"}
),
#"Changed Type" = Table.TransformColumnTypes(#"Expanded {0}2", {{"Data", type date}}),
#"Added Custom" = Table.AddColumn(
#"Changed Type",
"LinhaZerada",
each [nValorPrevisto] = 0 and [nValorRealilzado] = 0
),
#"Filtered Rows1" = Table.SelectRows(#"Added Custom", each ([LinhaZerada] = false)),
#"Removed Columns1" = Table.RemoveColumns(#"Filtered Rows1", {"LinhaZerada", "Mes", "Ano"})
in
#"Removed Columns1"
O código acima eu expliquei no vídeo postado no YouTube:
Deseja receber o arquivo .PBIX modelo em seu e-mail? Preencha o formulário abaixo:
Caso queira conhecer outras consultas da OMIE, você pode conferir aqui.
Neste link, tem o script de uma consulta paginada e com incremento de páginas conforme o aumento de registros.