Guia do Power BI para o Valeforms
1
Este guia serve para orientar os acessos de sincronização entre o Power BI e
a API da aplicação Valeforms, auxiliando na criação de querys e tabelas.
3° Versão
Data da Atualização:
01 de Outubro de 2020
ValeForms
Para esse exemplo, utilizaremos o formulário Modelo Teste para Power Bi, localizado na área Smart Badge :: Vitória buscando todos os dados.
Observações importantes :
• Imagens PNG possuem uma qualidade e sincronização melhor do que JPEG\JPG.
• Se o seu Formulário possuir mais de um campo com o mesmo título, renomeie esses campos para evitar possíveis erros no Processo do PowerBI.
URL com fotos e
dados https://valeforms.api.valeglobal.net/api/OperationalAreas/52/inspections/8369/responses/true/workflow?startdate=2020-01- 01&key=f1Jc719CUiYB5TXz38kXU5jr0M4a2v2p
1.
Consultar dados da URL:
1.1. Na barra superior, selecione a opção Nova Fonte (“Get Data”) e em seguida clique em Web, conforme o exemplo a seguir:
Guia do Power BI para o Valeforms
2 1.2. Insira a URL:
1.3. Você será direcionado para a tela do Power Query Editor, esta tela é indicada para manipular resultados de tabelas, criar colunas paralelas (soma\média\agrupamento entre colunas), fazer novas consultadas independente se forem de API, Banco de dados ou arquivos Excel.
Ao termino da consulta você irá se deparar com uma tela onde se encontra uma lista de dados agrupados a direita e as consultas realizadas a esquerda.
Renomeie a consulta realizado para um nome de sua escolha (Ex: RespostasForms)
Guia do Power BI para o Valeforms
3 1.4. Faça a conversão em tabela clicando na opção Para a Tabela (“To Table”) no canto superior esquerdo da
imagem abaixo :
Guia do Power BI para o Valeforms
4 1.5. Ao fazer a conversão, um Modal irá abrir pedindo para informar um delimitador e um tratamento de colunas
extras, não há necessidade de alterar essas informações, apenas clique em OK.
1.6. Clique no ícone para expandir a tabela, em seguida desmarque o checkbox da opção “Use o nome da coluna original como prefixo” (“use original column name as prefix”) e clique em OK.
Guia do Power BI para o Valeforms
5 1.7. A tabela com os nomes dos campos irá aparecer.
Guia do Power BI para o Valeforms
6 2.
Manipular dados:
Para trazer de forma mais fácil as perguntas e respostas para seu relatório é necessário seguir essas etapas:
2.1. Copie e cole a consulta “RepostasForms” e cole no mesmo lugar. Renomeia a nova consulta para
“ImagensLink” :
2.2. Clique com mouse direito na consulta e procure por Consulta Nula (“Advanced Editor”) e um modal com o nome da consulta irá aparecer além de mostrar o código atual:
Guia do Power BI para o Valeforms
7 2.2.1. Substitua o código informado na tela por esse abaixo não esquecendo de informar a URL na primeira
linha do código:
let Source = Json.Document(Web.Contents("URL ")),
Step1 = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
Step2 = Table.ExpandRecordColumn(Step1, "Column1", {"id", "responseId", "form", "responses", "areaId", "areaName", "unitId", "unitName", "completed", "completedOn", "completedOnEpoch", "completedByIamId",
"completedByIamName", "completedByEmail", "createdBy", "createdOn", "devId", "latitude", "longitude", "searchable", "isDeleted"}, {"id", "responseId", "form", "responses", "areaId", "areaName", "unitId", "unitName",
"completed", "completedOn", "completedOnEpoch", "completedByIamId", "completedByIamName", "completedByEmail", "createdBy", "createdOn", "devId", "latitude", "longitude", "searchable", "isDeleted"}), Step3 = Table.ExpandRecordColumn(Step2, "form", {"form_id", "form_name", "form_descr", "form_type"}, {"form_id", "form_name", "form_descr", "form_type"}),
Step4 = Table.ExpandListColumn(Step3, "responses"),
Step5 = Table.ExpandRecordColumn(Step4, "responses", {"que_id", "section", "title", "ctx", "answer", "order", "type", "attach"}, {"que_id", "section", "title", "ctx", "answer", "order", "type", "attach"}), Step6 = Table.ExpandListColumn(Step5, "attach"),
Step7 = Table.ExpandRecordColumn(Step6, "attach", {"uri"}, {"uri"}),
Step8 = Table.RemoveColumns(Step7,{"id", "form_id", "form_name", "form_descr", "form_type", "que_id", "section", "ctx", "order", "type", "areaId", "areaName", "unitId", "unitName", "completed", "completedOn",
"completedOnEpoch", "completedByIamId", "completedByIamName", "completedByEmail", "createdBy", "createdOn", "devId", "latitude", "longitude", "searchable", "isDeleted", "uri"}), StepFINAL = Table.Pivot(Step8, List.Distinct(Step8[title]), "title", "answer")
in StepFINAL
2.2.2. Clique em OK e o resultado será uma tabela com uma coluna sendo ID da resposta e as demais colunas as repostas de cada pergunta
Guia do Power BI para o Valeforms
8 2.3. Repita o passo 2.2 para a consulta “ImagensLink” e insira esse código, não esqueça a URL em negrito na
primeira linha do código :
let Source = Json.Document(Web.Contents("URL")),
Step1 = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
Step2 = Table.ExpandRecordColumn(Step1, "Column1", {"id", "responseId", "form", "responses", "areaId", "areaName", "unitId", "unitName", "completed",
"completedOn", "completedOnEpoch", "completedByIamId", "completedByIamName", "completedByEmail", "createdBy", "createdOn", "devId", "latitude", "longitude",
"searchable", "isDeleted"}, {"id", "responseId", "form", "responses", "areaId", "areaName", "unitId", "unitName", "completed", "completedOn", "completedOnEpoch",
"completedByIamId", "completedByIamName", "completedByEmail", "createdBy", "createdOn", "devId", "latitude", "longitude", "searchable", "isDeleted"}), Step3 = Table.ExpandRecordColumn(Step2, "form", {"form_id", "form_name", "form_descr", "form_type"}, {"form_id", "form_name", "form_descr", "form_type"}), Step4 = Table.ExpandListColumn(Step3, "responses"),
Step5 = Table.ExpandRecordColumn(Step4, "responses", {"que_id", "section", "title", "ctx", "answer", "order", "type", "attach"}, {"que_id", "section", "title", "ctx", "answer",
"order", "type", "attach"}),
Step6 = Table.ExpandListColumn(Step5, "attach"),
Step7 = Table.ExpandRecordColumn(Step6, "attach", {"uri"}, {"uri"}),
Step8 = Table.RemoveColumns(Step7,{"id", "form_id", "form_name", "form_descr", "form_type", "que_id", "section", "title", "ctx", "answer", "order", "type", "areaId",
"areaName", "unitId", "unitName", "completed", "completedOn", "completedOnEpoch", "completedByIamId", "completedByIamName", "completedByEmail", "createdBy",
"createdOn", "devId", "latitude", "longitude", "searchable", "isDeleted"}), Step9= Table.Distinct(Step8, {"uri"}),
StepFINAL = Table.SelectRows(Step9, each [uri] <> null and [uri] <> "") in StepFINAL
2.4. Clique em OK e o resultado será uma tabela com uma coluna sendo ID da resposta e uma colunas com as imagens.
2.5. Clique em Fechar e Aplicar (“Close & Appy”) para trazer essas duas consultas de volta ao Power BI Desktop e criar os relatórios.
Guia do Power BI para o Valeforms
9 3.
Relatório Dinâmico:
Na tela do Power BI Desktop ira aparecer no canto direito Campos (“Fields”) as informações manipuladas no Power Query Editor:
3.1. No caso de um Relatório com imagens, como exemplo adicione uma tabela com o ID da Resposta, uma pergunta qualquer (Nome, por exemplo) e o link de imagens de “ImagensLink”.
Automaticamente o Power Bi vai entender de qual Link é a resposta e irá inserir na tabela.
Guia do Power BI para o Valeforms
10 3.2. Clique em “uri” de ImagensLink.
3.3. Pesquise por “...” na Aba Column Tools.
3.4. Selecione o item Image URL
Guia do Power BI para o Valeforms
11 3.5. O Power Bi irá buscar a imagem e irá mostrar a própria imagem ao invés de um link.