Este artigo tem como objetivo detalhar e exemplificar como é feito uma chamada REST para os análise de dados no sistema SIQ.
Conforme iremos ver a seguir, o artigo indica os passos de como é possível obter os dados do DA que se deseja buscar os dados através do REST e também a explicação de cada parametros/variáveis necessárias para essa requisição.
Tópicos:
- Obter Informações REST de um DA
- Detalhamento das informações REST ( Url, Header, Body e Filter )
- Preparando o Ambiente para simular webservice e Rest
- Cenário de Exemplificação de uma Chamada REST e obtendo o retorno dos dados ( API Teste )
- Configurando o Rest no Power BI
Pré-requisitos:
- Possuir permissão de acesso ao módulo Análise de Dados
Obter Informações REST de um DA
- Passo 1: Acesso ao DA
- Acessar a transação DA
- Pesquisar pelo DA desejado
- Passo 2: Acesso a Visão do DA
- Abrir o painel que deseja realizar a chamada REST
- Passo 3: Acesso aos parâmetros REST
- Clicar sobre o ícone "" e clicar sobre a opção "Rest Invoke"
- Será exibido um painel com as seguintes informações: URL , Headers, Body, Filter
Essas informações serão utilizadas para a parametrização do REST conforme passos a seguir
Verificar sempre a aba "Detalhes de Configurações de Servidores SIQ"
na transação SERVER.
Deve ter a chave "allowWebServiceCalls" deve estar com valor true
Detalhamento das informações REST ( Url , Header, Body e Filter )
|
URL |
Esse é o endereço que será feito a invocação do REST : https://www.xxxx.zzzzz/seam/resource/rest/dataAnalysis/extractData
Esta informação pode ser consultadas no tópico Obter Informações Rest de um DA - Acesso aos parâmetros REST |
|
Headers |
Esse é o conteúdo que deve ter o cabeçalho da requisição REST :
Content-Type=application/json authorization=<Token>
Observação: Para descobrir o <Token> da variável "authorization" é necessário realizar uma outra chamada REST de Autenticação que encontra-se detalhado no tópico a seguir. O valor do retorno desse REST deverá ser informado na variável "authorization". |
|
Body |
Essas são informações que determinam qual é a "Análise de Dados" e sua respectiva visão que se deseja realizar a chamada REST, além de informar também filtros que podem ser opcionais dependendo das regras de negócio da visão em questão, já que existem visões que requerem o preenchimento de filtros específicos, neste caso:
{
* As informações de "dataAnalysisTypeKey" , "dataAnalysisComponentName" podem ser consultadas no tópico Obter Informações Rest de um DA - Acesso aos parâmetros REST
* As informações de "filterKey01" , "filterKey02" ... podem ser consultadas no tópico Obter Informações Rest de um DA - Acesso aos parâmetros REST
* As informações "filterValue01" , "filterValue02" ... são os filtros que se deseja obter na consulta.
|
|
Filters |
Aqui temos uma exemplificação dos possíveis filtros que podemos utilizar na chamada REST:
ex: Filtro(DATA DE) =DATA_ANALYSIS_INSPECTOR_PERFORMANCE_FILTER_DATE_FROM Filtro(DATA ATÉ) =DATA_ANALYSIS_INSPECTOR_PERFORMANCE_FILTER_DATE_TO
{ "filterValue02": "30/01/2020" }
* As informações de "filterKey01" , "filterKey02" ... podem ser obtidas conforme tópico "Obter Informações Rest de um DA - Acesso aos parâmetros REST"
* Observação: Serão exibidos apenas filtros suportados pela atual implementação, neste caso apenas os filtros de data estão sendo suportados pela atual implementação de filtros de chamadas REST.
* Para incluir filtros na chamada REST devemos incluir "filterKey01" dois pontos e a chave do filtro desejado entre aspas duplas, depois devemos incluir vírgula e logo em seguida "filterValue01" dois pontos e o valor da data desejada entre aspas duplas, por exemplo :
"filterKey01":"DATA_ANALYSIS_INSPECTOR_PERFORMANCE_FILTER_DATE_FROM", "filterValue01":"01/01/2020"
* Observação: A formatação do valor da data deve ser de acordo com a língua do usuário usado na autenticação, ou seja “mês/dia/ano” para inglês e “dia/mês/ano” para português.
* Caso se deseje incluir mais filtros, deve-se usar o incremento da numeração, ou seja, utilizar "filterKey02" e "filterValue02" para as respectivas novas chaves de filtro e valores de filtros desejados, por exemplo:
"filterKey01":"DATA_ANALYSIS_INSPECTOR_PERFORMANCE_FILTER_DATE_FROM", "filterValue01":"01/01/2020", "filterKey02":"DATA_ANALYSIS_INSPECTOR_PERFORMANCE_FILTER_DATE_TO", "filterValue02":"01/01/2021"
|
- FILTROS:
- Data :
Devem ser informados entre aspas , ""
ex: "01/01/2021"
Se o filtro tiver hora, então deverá ser informado horário também
- Informações que são Categ :
opção 1: Deverá ser indicado a CATEG TYPE KEY # CATEG KEY
ex: "NON_CONFORMITY_OWNER_TYPE#NON_CONFORMITY_OWNER_TYPE_QUALITY"
opção 2: deverá ser indicado a CATEG TYPE KEY # name
(não pode ser a tradução , tem que ser o name original)
ex: "NON_CONFORMITY_OWNER_TYPE#Quality"
- Informações que são Responsável:
Deverá ser indicado o tipo do Responsável # código ou nome
ex: "LOCAL#FT30"
- REST - AUTENTICAÇÃO
|
URL - Authorization |
Esse é o endereço que será feito a invocação do REST para obter o token de Autorização dos REST :
https://www.xxxx.zzzzz/seam/resource/rest/authenticator/login
|
|
Headers |
Esse é o conteúdo que deverá ter o cabeçalho da requisição da chamada REST:
Content-Type=application/json |
|
Body |
Estes são os parâmetros que deverão ser informados para se obter a chave de autenticação.
{ "user":"Login do usuário (SIQ) que se deseja realizar a autenticação", "password":"Senha do usuário que se deseja realizar a autenticação" }
Esse será o Token retornada a partir do user/password solicitado para autenticação :
{ login : "MASTER" , token: "78SDFNvjdh8JKOIHFASDIYBnvcuh472398lckuvylhje57hvbc.uryoiwe", name: "Master", id: 1 }
Veja abaixo um exemplo dos parâmetros informados e o retorno do REST
|
Preparando Ambiente para simular Webservice e Rest
A seguir , nos vamos sugerir a instalação de um programa a qual podemos simular a chamada de um REST para acesso a um de nossos painéis de DA.
A nossa sugestão é instalar uma extensão do crhome - "Talend API Tester"
Abaixo segue os passos:
- Passo 1
https://chrome.google.com/webstore/
- Passo 2
Localize a extensão "Talend API Tester"
- Passo 3
Acesse a extensão do Chrome
Cenário de Exemplificação de uma Chamada REST e obtendo retorno dos dados ( API Teste )
- Passo 1 - Obtendo uma Autenticação
Adicionar o endereço URL da chamada REST:
https://www.siq.com.br/siq_sales/seam/resource/rest/authenticator/login
Adicionar as informações do cabeçalho da requisição:
Content-Type:application/json
Adicionar as informações do corpo da requisição :
{
"user":"powerBI",
"password":"powerBI123"
}
Retorno da Requisição
{
"login": "powerBI",
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTmFtZSI6InBvd2VyQkkiLCJleHAiOjE2MjU5NDE5NDIsInVzZXJJZCI6MjE0NX0.dw_vRy0K4LHGHpzMlpZo0I7KV_Ihh8clHpmIQHv00dg",
"name": "powerBI",
"id": 2145
}
Exemplo da Requisição.
- Passo 2 - Invocando o Rest da visão desejada
Adicionar o endereço URL da chamada REST:
https://www.siq.com.br/siq_sales/seam/resource/rest/dataAnalysis/extractData
Adicionar as informações do cabeçalho da requisição:
Content-Type:application/json
authorization:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTmFtZSI6InBvd2VyQkkiLCJleHAiOjE2MjU5NDE5NDIsInVzZXJJZCI6MjE0NX0.dw_vRy0K4LHGHpzMlpZo0I7KV_Ihh8clHpmIQHv00dg
Adicionar as informações do corpo da requisição :
{
"dataAnalysisTypeKey":"DATA_ANALYSIS_GENERAL_PPM",
"dataAnalysisComponentName":"dataAnalysisGeneralPpmByMonthStrategy",
"maxRows":"100",
"filterKey01":"DATA_ANALYSIS_GENERAL_PPM_FILTER_FROM_DATE",
"filterValue01":"01/01/2020",
"filterKey02":"DATA_ANALYSIS_GENERAL_PPM_FILTER_TO_DATE",
"filterValue02":"01/01/2021"
}
- Passo 4
Simulando uma execução.
- Passo 5
Será apresentado o retorno dos dados da pesquisa
Correspondem a essa visão do DA
Configurando o Rest no Power BI
- Passo 1 - Criando uma consulta de dados
Clicar na opção "Obter dados" e selecionar "Consulta em branco"
- Passo 2 - Editando a consulta criada
Selecionar a consulta que foi criada no Passo 1 e clicar em "Editor Avançado"
- Passo 3 - Editar conteúdo da consulta criada
Deve ser apagado o conteúdo exibido na consulta.
- Passo 4 - Inserindo conteúdo da chamada rest na consulta
Inserir o seguinte conteúdo na consulta e, em seguida, clicar no botão "Concluir".
let getData = (resultado) =>
let authUrl = "https://www.siq.com.br/siq_sales/seam/resource/rest/authenticator/login",
body = "
{
""user"" : ""powerBI"",
""password"" : ""powerBI123""
}
",
getToken = Json.Document(
Web.Contents(
authUrl,
[
Headers=[#"Content-Type"="application/json"],
Content=Text.ToBinary(body)
]
)
),
token = getToken [token],
authToken = token,
urlRequest = "https://www.siq.com.br/siq_sales/seam/resource/rest/dataAnalysis/extractData",
bodyRequest = "
{
""dataAnalysisTypeKey"":""DATA_ANALYSIS_DOCUMENT"",
""dataAnalysisComponentName"":""dataAnalysisDocumentStatusStrategy"",
""maxRows"":""100""
}
",
results = Json.Document(
Web.Contents(
urlRequest,
[
Headers=[#"Content-Type"="application/json",Authorization=authToken],
Content=Text.ToBinary(bodyRequest)
]
)
)
in results
in getData
- Em authUrl deverá inserir a URL de autenticação da chamada rest.
- ""user"" - Deve ser informado o login de autenticação no siq
- ""password"" - Deve ser informado a senha de autenticação no siq
- Em urlRequest deverá inserir a ULR da chamada rest da visão desejada
- Em bodyRequest deverá adicionar a informação do body exibido no Rest Invoke do
Análise de Dados, sendo que todo o conteúdo deverá estar dentro de 2 aspas.
- Para realizar um filtro de Data Dinâmica utilizar a seguinte função:
&Date.ToText(Date.From(DateTime.LocalNow()))&
- Passo 5 - Função invocada
Após concluir a consulta deverá clicar no botão "Invocar".
Caso a mensagem datasource.Error: há suporte para Web.Contents com a opção
Content durante uma conexão anônima apareça é preciso realizar os seguintes
passos:
1. Acessar o Power BI >> Clicar em "Arquivo"
2. Clicar em "Opções e Configurações" >> "Configurações da fonte de dados"
3. Clicar sobre as URLs utilizadas para obtenção dos dados e acionar o botão
"Editar Permissões".
4. Em "Credenciais" clicar em "Editar"
5. Clicar em "Anônimo" e "Salvar"
6. Após salvar a alteração realizada, pode invocar novamente a função!
- Passo 6 - Criando uma nova tabela
Na aba "Página Inicial" clicar em "Inserir dados", inserir texto em pelo menos uma linha e acionar o botão "Ok".
- Passo 7 - Invocando a função personalizada
Na aba "Adicionar Coluna" clicar em "Invocar Função Personalizada" e no campo "Consulta de função" selecionar a consulta criada no Passo 4.
- Passo 8 - Expandindo os resultados da consulta
Clicar sob o ícone localizado do lado direto da Coluna Criada, selecionar a coluna objects e acionar o botão "Ok".
- Passo 9 - Exibir valores registrados na coluna .objects
Clicar sob o ícone localizado do lado direto da coluna e clicar em "Expandir para Novas Linhas".
Clicar sob o ícone localizado do lado direto da coluna e selecionar a opção "Extrair Valores...".
Selecionar a opção "Vírgula" e clicar em "OK".
- Passo 10 - Adicionar cada informação na respectiva coluna
Selecionar a coluna .objetcs e no campo "fx" colar o seguinte comando:
= Table.TransformColumns(#"Consulta1.objects Expandido", {"Consulta1.objects", each Text.Combine(List.Transform(_, each if _ = null then "" else Text.From(_)), ";"), type text})
IMPORTANTE: Consulta1.objects se refere ao nome da coluna que foi extraído no
Passo 9. Portanto, esse termo deve sempre conter o nome da coluna desejada.
- Passo 11 - Dividir Coluna - Por Delimitador
Selecionar a coluna .objetcs e no painel "Página Inicial" clicar na opção "Dividir Coluna" >> "Por Delimitador".
Selecione "Ponto e vírgula" e "Cada ocorrência do delimitador", clicar no botão "OK".
- Passo 12 - Renomear colunas
Renomear as colunas com os mesmo nomes apresentados no Análise de Dados.
- Passo 13 - Fechar e Aplicar
- Passo 14 - Agendar Atualização
Após construir o dashboard deverá publicar no Power BI.
Ir em "Meu workspace" e clicar em "Agendar Atualização".
Ativar a atualização agendada:
Comentários
0 comentário
Por favor, entre para comentar.