Power BI Development Guide

Keyworks: Jasmin, Power BI, Content Pack, Power Query

Instalação

Instalação Power BI Desktop – versão DEV

O desenvolvimento do content pack do Power BI para o Jasmin requer a instalação de uma versão DEV do Power BI Desktop, disponibilizada pela Microsoft no âmbito do programa de integração.

Os passos de instalação da versão DEV do Power BI, resumem-se aos seguintes:

  • Desinstalar o Power BI Desktop, caso esteja instalado

    • A versão pública e a versão DEV não podem co-existir na mesma máquina
    • Validar se o conteúdo das seguintes pastas foi removido
      • %localappdata%\Power BI
      • %localappdata%\Microsoft\Power BI Desktop
  • Adicionar variáveis de ambiente

    • Control Panel > System and Security > System
      • Advanced system settings > Environment Variables > System variables
Name Value
PQ_EnableExtensionDeveloper true
PQ_ExtensionDirectory (a folder on your disk) e.g. C:\PowerBI\Extensions\M
  • Copiar a extensão “primavera.m” para a pasta definida na variável de ambiente PQ_ExtensionDirectory (ou colocar a variável a apontar para esta pasta)

    • TFS: Argon\JSM\Mainline\PowerBI\Extensions\primavera.m
  • Instalar Power BI Desktop SU05 DEV

    • TFS: Argon\JSM\Mainline\PowerBI\Tools\PBIDesktop_x64_SU05dev.zip
  • Sugestão: instalar plugin Notepad++ para syntax highlighting

Documentação disponibilizada

Juntamente com a versão DEV do Power BI Desktop foi disponibilizado um conjunto de documentos de apoio ao desenvolvimento de content packs organizacionais, que pode ser encontrado em Argon\JSM\Mainline\PowerBI\Tools\Partners Kit V2.0.zip.

É aconselhado o começo da leitura pelo documento: Building No Code Content Packs Guide.docx. Neste mesmo Partners Kit, pode ser também encontrado um exemplo de uma “M extension” que usa o fluxo de autenticação OAuth2.

“M” Extension

A “m” extension criada para o Power BI do Jasmin, é o componente responsável por permitir que as power queries criadas no Power BI se liguem aos serviços do Jasmin. Este componente usa o fluxo de autenticação OAuth2.0, possibilitando, assim, a autenticação no Power BI através do Identity Server.

A extensão é escrita na linguagem “Power Query Formula”, informalmente conhecida como “M”.

Pode ser encontrada mais informação sobre a linguagem nos seguintes recursos:

A extensão encontra-se em Argon\JSM\Mainline\PowerBI\Extensions\primavera.m e contém todo o código necessário para suportar no Power BI, pedidos à API do Jasmin.

A extensão do ambiente produtivo encontra-se sobre controlo da equipa do CMS e contém a configuração necessária para a comunicação do Power BI com o ambiente produtivo do Jasmin.

A extensão disponível para testes encontra-se configurada em conformidade, pelo que, caso o ambiente de testes seja alterado, devem também ser alteradas as seguintes configurações:

auth_uri = "https://stg-identity.primaverabss.com/core/connect/authorize",
token_uri = "https://stg-identity.primaverabss.com/core/connect/token"

Report (*.pbix)

O ficheiro Argon\JSM\Mainline\PowerBI\Development\4_jasmin-argon.pbix contém o conjunto de reports/dashboards a ser apresentados ao utilizador final. Para edição, este ficheiro deve ser aberto com a versão DEV do Power BI Desktop previamente instalada.

Páginas

O PBIX criado para o Jasmin possui duas páginas principais: Vendas e Resultados; e Contas a Receber. Para auxílio dos testes e validação dos dados existem também as páginas Period Results Pivot e Party AccountPostings Pivot, que possuem as tabelas pivot que servem de base à construção dos gráficos das páginas principais.

As páginas contendo as tabelas pivot não serão incluídas no report que será disponibilizado aos utilizadores finais.

Parâmetros

O carregamento de dados para o Power BI está dependente da inserção de dois parâmetros: o Account Id e o Subscription Id.

A definição destes parâmetros no Power BI Desktop é feita através do menu Home > Edit Queries > Edit Parameters. É então apresentado o seguinte popup, no qual devem ser inseridos a conta e subscrição para as quais o utilizador tem acesso e deseja carregar os dados para o Power BI.

Configuração dos parâmetros

Obtenção dos dados

A obtenção dos dados é feita através de dois pedidos principais à API do Jasmin, um para a obtenção dos dados para a página de “Vendas e Resultados” e outro para a página de “Contas a Receber”.

Estes pedidos são feitos no Power BI através da modelação de queries por steps, que podem ser acedidas através do menu Home > Edit Queries.

Através do “Query Editor” do Power BI verificam-se desde logo as duas tabelas principais que vão alimentar os dados das páginas de “Vendas e Resultados” e “Contas a Receber”: “Period Results” e “Party Account Postings”, respetivamente. As restantes tabelas são usadas como auxiliares ou como colunas e/ou tabelas calculadas, para apresentação de dados.

A edição destas queries por steps pode ser feita através da opção “Advanced Editor”. Através deste editor é possível ver os passos realizados para o pedido à API do Jasmin e a transformação da resposta numa tabela. Uma vez que o pedido à API é suportado por uma query OData, a power query do Power BI possui a lógica para a obtenção dos dados de forma paginada.

Os parâmetros definidos anteriormente são inseridos na query para o pedido à API do Jasmin ser feito em conformidade.

Power Query para obtenção dos dados de Vendas e Resultados

Carregamento dos dados

O carregamento dos dados para os gráficos do Power BI é feito através do botão “Refresh” do menu Home. Através do clique neste botão são executadas as power queries referidas anteriormente, obtidos os respetivos dados e alimentados os gráficos.

Uma vez que os pedidos à API necessitam de ser autenticados, a opção “Refresh” começa por lançar um pedido de autenticação para obtenção do token, através da configuração presente na “m extension”. Do lado do Power BI isto reflete-se na abertura de um popup para login através do Identity Server. A combinação do utilizador autenticado com os parâmetros definidos são os responsáveis pelos dados apresentados.

Opção para carregamento dos dados para os gráficos

Sign in as different user

Opção para signin através do Identity Server

A autenticação pode ser “esquecida” através da opção: File > Options and Settings > Data Source Settings

  • primavera > Clear Permissions

Após isto, o clique na opção “Refresh” volta a solicitar a inserção de novas credenciais.

Filtros ao nível da página

Para cada uma das páginas estão definidos filtros, como ano, empresa, área financeira, etc. A definição destes filtros é feita arrastando as colunas das tabelas presentes na página para o campo “Page level filters” e selecionando a opção desejada no filtro. Os dados de todos os gráficos na página são reajustados tendo em conta estes filtros. Alguns dos filtros estão selecionados por defeito e/ou permitem apenas a seleção de um dos campos.

Os filtros ao nível da página predominam perante os outros níveis de filtros.

Exemplo de filtros para a página de Vendas e Resultados

Filtros ao nível do gráfico

Do mesmo modo que os filtros ao nível da página, podem ser definidos filtros ao nível do gráfico/visual, através do campo “Visual level filters”. Tal como o nome indica estes filtros apenas se aplicam ao gráfico selecionado e sobre o qual são aplicados.

Exemplo de filtro ao nível do gráfico - Pendentes Vencidos

Contactos Microsoft

Microsoft Portugal:

  • Nuno Nunes: Nuno.Nunes@microsoft.com

Microsoft USA (Product Manager Power BI):

  • Youssef Shoukry: yshoukry@microsoft.com
  • Vipin Mohan: v-vipmo@microsoft.com

Decisões

  • A obtenção de dados é feita via OData;
  • As queries OData têm como fonte de dados SQL uma TVF;
  • As Power Queries definidas no Power BI obtêm todos os registos através de pedidos sucessivos de forma paginada;
  • As páginas OData têm um tamanho máximo de 1000 registos;
  • Uma vez que o Power BI não permite localização de strings, os títulos, eixos e valores dos gráficos e nomes de páginas encontram-se em português.

Questões em Aberto

  • Alterações ao nível da cultura quando o Power BI suportar a localização de strings.