Mostrando postagens com marcador consulta. Mostrar todas as postagens
Mostrando postagens com marcador consulta. Mostrar todas as postagens

sexta-feira, 19 de março de 2021

Consulta ao dólar via API do Banco Central no Excel (data dinâmica)

Parte 2 de 2 - Consulta ao dólar via API do Banco Central no Excel (data dinâmica)

    No artigo anterior, foi mostrado o uso do Power Query para a consulta do dólar ao Banco Central do Brasil. Portanto, essa é uma continuação, com a adição de consulta utilizando o Power Query utilizando data em uma célula.

    Para dar continuação, crie um campo com o nome "Data", e insira a data abaixo (Figura 1).

Figura 1: Campo data

    O próximo passo é se nomear a célula contendo a data. Uma maneira de se fazer isso é selecionar a célula, atribuir o nome da mesma  no campo indicado e clicar em Enter. No exemplo, a célula é a C2, e o nome atribuído é "DataConsulta", sem as aspas (Figura 2).

Figura 2: Atribuindo nome à célula

    Abra o editor de consulta (Figura 3). Para isso, habilite "Consultas e Conexões" na aba "Data", posicione o mouse sobre o nome da consulta. No painel flutuante que se abre, clique em "EDITAR".

Figura 3:Acessando a edição de consulta

    Para que tudo funcione corretamente, "Arquivo -> Opções e Configurações -> Opções de Consulta" (Figura 4).

Figura 4: Acessando as opções de consulta

    Na janela que se abre, vá em "Privacidade -> Níveis de Privacidade", e selecione "Ignore os níveis de privacidade e melhore potencialmente o desempenho". Clique em "OK" para fechar a janela e aceitar a opção selecionada (Figura 5).

Figura 5: Ajustando as opções de consulta

    Agora clique no botão "Editor Avançado" (Figura 6).


Figura 6: Abrindo o editor avançado

    Com o editor avançado aberto (Figura 7), há código da Parte 1 desse artigo. Salve-o em algum local de sua preferência, se desejar. Em seguida, substitua com o código a seguir:

let
    DataConsulta = Excel.CurrentWorkbook(){[Name="DataConsulta"]}[Content]{0}[Column1],
    DataTexto = DateTime.ToText(DataConsulta, "MM-dd-yyyy"),
    URLConsulta = Text.Combine({ "https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/odata/CotacaoDolarDia(dataCotacao=@dataCotacao)?@dataCotacao='", DataTeste, "'&$top=1&$format=json&$select=cotacaoVenda"}),
    Fonte = Json.Document(Web.Contents("https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/odata/CotacaoDolarDia(dataCotacao=@dataCotacao)?@dataCotacao='"&DataTexto&"'&$top=1&$format=json&$select=cotacaoVenda")),
    value = Fonte[value],
    value1 = value{0},
    #"Convertido para Tabela" = Record.ToTable(value1)
in
    #"Convertido para Tabela"

    Por fim, clique no botão "Concluído" para fechar a janela.

Figura 7: Editor avançado

    Para se voltar à planilha, clique no botão "Fechar e carregar" (Figura 8):

Figura 8: Voltando à planilha

    Ao se voltar à planilha, se o botão "Consultas e Conexões" estiver habilitado (Figura 9), o painel direito estará habilitado. Como já apresentado anteriormente, há várias opções disponíveis nesse painel.
Figura 9: Abrindo o painel de consultas e conexões

    Há também o botão "Atualizar Tudo", o qual atualiza todas as consultas se clicado do meio para cima. Ao se clicar do meio para baixo (Figura 10), mais opções aparecem. No exemplo apresentado, bastará clicar do meio para cima (no ícone, por exemplo).


Figura 10: Atualização de consultas

    É possível acionar a consulta ao se alterar a data de forma automatizada, o que está fora do escopo desse artigo. O método se se atualizar ao se clicar no botão "Atualizar Tudo" é bem adequada, pois a cotação oficial é liberada somente após o fechamento da moeda.

    A título de curiosidade, hoje somente o dólar é a moeda que o Banco Central se responsabiliza pela correta divulgação.


Obrigado pela leitura. :)


Fontes

Funções do Power Query



quarta-feira, 17 de março de 2021

Consulta ao dólar via API do Banco Central no Excel

Parte 1 de 2 - Consulta ao dólar via API do Banco Central no Excel

    É possível consultar o dólar através da API disponibilizada pelo Banco Central. O endereço padrão fornecido é:

https ://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/odata/[codigo_recurso]?$format=json&[Outros Parâmetros]

Os parâmetros são detalhados na documentação

    Li em alguns lugares ser necessária a utilização de ferramentas que não o próprio Excel para o tratamento do retorno no formato JSON. Eis que pesquisei na Microsoft, e encontrei uma documentação. Nesta página existe uma seção chamada File:JSON, usando a fórmula:
= Json.Document(File.Contents(""))
    Como a fonte é um JSON da web, foi feita a seguinte alteração:
= Json.Document(Web.Contents(""))

    Considerando a documentação do Banco Central, e fazendo uma consulta do valor do dólar para o dia 17 de março de 2021, temos a URL:

https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/odata/CotacaoDolarDia(dataCotacao=@dataCotacao)?@dataCotacao='03-17-2021'&$top=1&$format=json&$select=cotacaoVenda

    Agora é só colocar no Excel. Clique em Dados -> Obter dados -> De outras fontes -> Consulta em branco (Figura 1)

Figura 1: Consulta em branco
Figura 1: Consulta em branco

    Em seguida, insira na caixa de fórmulas a string a seguir, incluindo o sinal de igualdade (Figura 2):

= Json.Document(Web.Contents("https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/odata/CotacaoDolarDia(dataCotacao=@dataCotacao)?@dataCotacao='03-17-2021'&$top=1&$format=json&$select=cotacaoVenda"))
Figura 2: Inserindo a string de consulta
Figura 2: Inserindo a string de consulta

    A consulta à web é feita automaticamente, e a resposta é exibida logo abaixo. Dê um duplo clique na palavra "List", ao lado de "value" (Figura 3)
Figura 3: Retorno da consulta
Figura 3: Retorno da consulta

    Repare que agora pode-se ver o valor retornado, acompanhado do título "cotacaoVenda". Repare também que foi gerado no quadro de "Etapas aplicadas" um novo item (Figura 4). Agora dê um duplo clique no valor numérico ao lado de "cotacaoVenda":
Figura 4: Valor retornado e nova etapa
Figura 4: Valor retornado e nova etapa

    Agora dê um duplo clique em "Record", abaixo de lista (Figura 5)
Figura 5: Retorno da lista
Figura 5: Retorno da lista

    O valor de "cotacaoVenda" é exibido. Agora clique no botão "Na tabela - converter" (Figura 6):
Figura 6: Conversão em tabela
Figura 6: Conversão em tabela

    O valor está agora está em um campo, e o nome "cotacaoVenda" em outro campo. Se clicar no meio do botão, automaticamente a consulta com o valor será inserida em uma nova guia (Figura 7):
Figura 7: Envio da consulta de forma padrão
Figura 7: Envio da consulta de forma padrão

    É possível clicar na parte inferior do mesmo botão, no qual são exibidas duas opções. A opção "Fechar e carregar" é a padrão, e tem o mesmo efeito de se clicar no meio do botão. A opção "Fechar e carregar para..." permite mais opções do local no qual os dados serão inseridos (Figura 8):
Figura 8: Mais opções no botão de carregar os dados
Figura 8: Mais opções no botão de carregar os dados

Ao se clicar na opção "Fechar e carregar para...", a tela da Figura 9 é exibida. Há algumas formas de se exibir os dados, ou apenas para se criar a conexão de dados sem exibí-la, na opção "Apenas Criar Conexão". O destino também pode ser escolhido, seja na planilha existente, com uma célula de destino, quer seja em nova planilha.

Figura 9: Opções de importação de dados

    Os dados e a consulta estarão conforme for escolhido. No exemplo, em uma nova planilha. As cores foram automaticamente escolhidas (Figura 10). 
Figura 10: Dados importados

    No painel à direita, pode-se ver a consulta com o nome "Consulta 1" (Figura 11). Ao se posicionar o mouse sobre a consulta, pode-se ver algumas informações da mesma. Nos três pontos (entre Editar e Excluir), há mais opções, inclusive a possibilidade de se renomear (Propriedades). No exemplo, a consulta foi renomeada para "ConsultaDolar".
Figura 11: Opções da consulta

    Já com a consulta renomeada, outra possibilidade é a de se carregar a consulta a qualquer momento, clicando no ícone em formato de folha de papel à direita, e indicada na Figura 12.
Figura 12: Recarregando a consulta
Figura 12: Recarregando a consulta


Na parte 2 desse artigo, uma célula contém a data para consulta. Desta forma, não é preciso abrir a consulta e alterar manualmente a data na URL de consulta


Fontes:

Banco Central - API - navegação de dados
Import Data from external data sources (Power Query)
Odata Services
Consumir Web Service do Banco Central no Microsiga Protheus (Totvs)