Pular para o conteúdo principal

Power BI ERROR - O modelo não tem uma expressão nomeada chamada ...

[POWER BI] - Cmdlets para PowerShell - Administrando o Power Bi like a Pro!

Olá amiguinhos tudo bem?

Quem já participou das minhas palestras sobre Power BI Embedded ou Streaming com Power BI, com certeza já ouviu falar do uso dos Cmdlets do Power BI para PowerShell.

Bem se você não sabe o que é PowerShell, o Wikipedia está aí pra isso https://pt.wikipedia.org/wiki/PowerShell, nosso interesse hoje aqui é mostrar como usar esse cara para fazer algumas tarefas no Power BI, com dois exemplos que hoje eu acabei me deparando nos nossos grupos online.

Um exemplo foi, como eu poderia publicar um relatório na web sem usar a interface gráfica do Power BI, ou seja digamos q eu tenha um usuário que pode criar algo num Power BI desktop, mas eu não quero dar a opção pra esse cara de administrador do workspace, mas eu quero todas as noites enviar o relatório dele com as alterações que foram feitas para a Web.

A segunda pergunta era, como eu poderia pegar uma listagem de todos os relatórios publicados e saber os datasets a que eles estão ligados?

Bem duas perguntas bem legais, que podem ser respondidas com nosso amigo de todas as horas PowerShell.

Então vamos começar do começo...

Instalando os cmdlets



Se você tem uma máquina Windows sem dúvida deve ter o PowerShell instalado, se não tem Windows provavelmente você está usando uma VM Windows rs...

Menu Iniciar vamos digitar "PowerShell" e vai aparecer esse carinha aqui abaixo, "Windows PowerShell ISE". Botão direito para executar como administrador isso é muito importante.



Abrirá então a tela do PowerShell ISE que é um pouco diferente do PowerShell padrão pois ele nos permite escrever várias linhas do script antes mesmo de executa-las e é um pouco mais "intuitivo" para novos usuários.



Nesse cara na parte em branco vamos digitar nosso script e quando rodarmos, na parte azul (PowerShell em sí), aparecerão as informações dos códigos que foram executados.

Vamos iniciar então instalando o Cmdlets para PowerShell do Power BI, o que fazemos  utilizando o seguinte comando:

Install-Module MicrosoftPowerBIMgmt

 Digitando esse cara na parte de escrita do script (área em branco da imagem anterior) vamos selecionar a linha inteira e apertar F8 para rodar somente essa linha selecionada.

Será perguntado se você deseja de fato instalar esse cmdlet e só selecionar "Sim para Todos.", ou "Yes to All" como no meu que está em inglês, e aguardar finalizar a instalação.



Se tudo der certo daqui pra frente você não terá erros.

Caso contrário tente instalar individualmente cada modulo com os comandos abaixo:

Install-Module -Name MicrosoftPowerBIMgmt.Admin Install-Module -Name MicrosoftPowerBIMgmt.Capacities Install-Module -Name MicrosoftPowerBIMgmt.Data Install-Module -Name MicrosoftPowerBIMgmt.Profile Install-Module -Name MicrosoftPowerBIMgmt.Reports Install-Module -Name MicrosoftPowerBIMgmt.Workspaces
Vamos então começar a resolver nossos problemas propostos lá no início do artigo.

1) Publicando na Web sem uso da Interface Gráfica.

Para isso precisamos de um arquivo pbix que eu já deixei salvo no meu "C:\temp" mas claro pode ser qualquer pasta que você tenha acesso ok?


Queremos então publicar esse cara em um Workspace na minha conta do Power BI.

Primeiro preciso claro estar conectado na minha conta "dentro" do PowerShell, para isso usaremos o comando:

Connect-PowerBIServiceAccount
Esse comando permitirá que possamos conectar no PowerBI Serviço no modo interativo, ou seja ele abrirá uma tela para informarmos usuário e senha. Lembrando sempre de selecionar a linha de código e digitar F8 para rodar apenas o código que está na linha, porque nesse momento estamos construindo nosso script.


Após entrar com meu usuário e senha na tela do PowerShell me mostrará informações de onde eu estou conectado, confirmando que estamos agora conectados no serviço do PowerBI.



Bem, se desejamos enviar um relatório para o serviço, precisamos escolher então um Workspace para enviar esse cara.

Podemos então ou criar um Workspace novo ou já utilizar um Workspace existente, e no nosso caso eu quero utilizar um Workspace já existente para enviar nosso relatório amado.

Para isso precisamos identificar a ID do Workspace e podemos fazer isso listando os Workspaces existentes utilizando o comando Get-PowerBIWorkspace ou simplesmente passando um parâmetro para esse mesmo comando informando o nome de um Workspace existente.

Get-PowerBIWorkspace -Name 'Fabricio Lima'
Novamente seleciono somente essa linha e mando executar o comando com F8 (sim estou sendo repetitivo para fixar).



Vocês podem ver então que eu alí uma linha chamada "Id" que me traz nossa WorkspaceID, vou selecionar, copiar e guardar esse dado, porque ele será necessário na nossa próxima etapa.

Como a linha Get-PowerBIWorkspace eu somente utilizei para identificar a WorkspaceID eu posso então apaga-la do nosso script ou deixa-la como uma linha comentada usando # antes da linha.

Agora temos, o caminho do meu arquivo e o WorkspaceID é só enviar o arquivo para a Web utilizando:

New-PowerBIReport ` -WorkspaceId 52bcfd95-b2cf-4a1b-80da-154d24fd4daf ` -Path 'C:\temp\Democmdlet.pbix'

No código acima eu utilizei uma quebra de linha, no PowerShell a quebra de linha é a crase.


 E então temos dentro do meu Workspace 'Fabricio Lima', nosso novo relatório inserido via PowerShell.




O Código

2) Listando Relatórios e DataSets.


Sim sim eu sei que a ideia original era listar os relatórios, mas vamos aprender tudo porque vamos precisar das 2 informações para uni-las.
Iniciando da mesma forma que no exemplo anterior conectando-se no serviço do Power BI utilizando Connect-PowerBIServiceAccount.

Depois de conectados vamos iniciar listando todos os Relatórios do PowerBI utilizando o seguinte comando:

Get-PowerBIReport

 Será gerada uma listagem de todos os Reports existentes apenas no "Meu Workspace" e não nos demais, com os ids dos DataSets.



Mas vamos lá, nós queremos TODOS os reports e não apenas os reports existente no "Meu Workspace" vamos usar então uma variável chamada "-Scope" para identificar o escopo da minha solicitação, que por padrão é "Individual" e vamos seta-lo para "Organization".

Além de incluir a variável acima eu também quero salvar essa consulta num arquivo para poder manipular e consultar.

Nosso comando ficará então:

Get-PowerBIReport -Scope Organization ` | Export-Csv -Path 'C:\temp\reports.csv' -Encoding UTF8

Com esse código acima será gerada na minha pasta C:\temp o arquivo reports.csv com a listagem de todos os reports.





Se você verificar os dados gerados a última informação é o DatasetId

Então para identificar esse Dataset pelo seu ID precisamos agora da Listagem de Ids e faremos isso utilizando o comando:

Get-PowerBIDataset -Scope Organization ` | Export-Csv -Path 'C:\temp\datasets.csv' -Encoding UTF8 



Agora você tá em casa não é não? Temos dois Arquivos CSV só importarmos isso no nosso PowerBI e fazer o relacionamento pelo id do Dataset e temos nosso relatório.



E por hoje é só amiguinhos se você quiser conhecer mais usos desse cara a documentação completa está no site da microsoft em https://docs.microsoft.com/pt-br/powershell/power-bi/overview?view=powerbi-ps

E se você quer mais conteúdo de qualidade sobre Power BI visita lá nosso canal youtube.com/planilheirosbrasil com mais de 350 vídeos sobre Power BI para você aprender do ZERO até se tornar um Jedí.

Grande abraço e até a próxima.

Comentários

  1. Puts cara você me abriu a mente eu ficava me perguntando como usar o powershell para vir os dados do powerbi embeded onde é bem pratico isso pois te ajuda a ver as credenciais que você tem tipo o token e por ai vai.

    muito bom Rafael Parabéns pelo artigo vai ajudar muita gente.

    ResponderExcluir

Postar um comentário

Postagens mais visitadas deste blog

[Links Públicos do Power BI] Você ainda os utiliza? Bem... cuidado...

O título pode parecer um pouco "sensacionalista" mas não era a intenção, ou talvez era sei lá... mas o fato é que Links públicos ainda são MUITO utilizados não só para o seu uso devido que é o compartilhamento de informações que são de fato públicas, para criação de portfólio e etc, essas são excelentes formas de utilizar esse cara.

Mas o problema vem quando utilizamos links públicos para compartilhamento de informações ou sigilosas da empresa o que pode levar à sua demissão ou informações sensíveis de terceiros que por padrão NEM DEVERIAM ESTAR NO SEU RELATÓRIO, por conta da nossa querida LGPD que uma hora ou outra entrará em vigor.

E se você quer uma consultoria em Power BI e a Melhor do Brasil em POWER BI EMBEDDED "chama nois" em [email protected]

Então temos o velho argumento, se eu não compartilhar com ninguém ou só compartilhar com pessoas da minha empresa e pedir para não compartilhar com ninguém (você é bem ingênuo né?) não tem como vazar.

Será????
Sim pode …

Power BI - Atualização Incremental de Qualquer Tipo de Fonte de Dados!!!!

Sim eu não enlouqueci, na técnica que vamos apresentar que foi criada pelo Dustin Ryan aqui nesse artigo https://sqldusty.com/2020/05/20/power-bi-incremental-refresh-with-web-api-data-source/ e também demonstrada pelo Gilbert da Fourmoo (adoro o símbolo da empresa kakakkaka) aqui nesse outro excelente artigo https://www.fourmoo.com/2020/06/10/how-you-can-incrementally-refresh-any-power-bi-data-source-this-example-is-a-csv-file/ , permite que você faça atualização incremental para qualquer FUCKIN tipo de fonte de dados e isso é sensacional. MASSSSSSS... eu fui um pouco além e decidi mudar uma coisinha que pode fazer uma ENORME diferença, nos artigos citados acima é utilizada uma fonte do SQL Server (que claro poderia ser um Oracle, ou qualquer fonte que utilize query folding) já que QueryFolding é uma premissa necessária para a utilização da Atualização Incremental, como eu já falei pra vocês nesse vídeo aqui no canal Planilheiros Brasil e aconselho que veja esse vídeo antes de seguir l…

“Traduzindo” formulas do Excel para DAX.

Como utilizar algumas formulas bem conhecidas no EXCEL em DAX

Olá moçada tudo bem?
Todos sabemos que muitos dos usuários de Excel tem dificuldade de migrar ou utilizar o Power BI, muito pela dificuldade de entender a forma de calcular do DAX e os contextos de linha e de filtro, bem como por já estar acostumado com as formulas no Excel, chegando a procurar um SOMASE (SUMIF) quando quer escrever uma nova medida em DAX (eu fiz isso).
Queria então conversar hoje com esse público e te mostrar como traduzir o que você pensa em EXCEL para DAX.
Iremos brincar então com as seguintes formulas em Excel (versão português).
Somase, Somases, Procv, Cont.se, Cont.ses, Pgto, Concat, Texto, Esquerda, Direita e Seerro.
Utilizaremos para nosso exemplo o modelo de dados abaixo (Power BI e Excel)




Nossos objetivos serão:
- Encontrar o total de Compras para veículos novos (ano de venda igual a 2018). - Encontrar o total de Compras para veículos novos e com valor de venda igual a R$ 1Mi. - Encontrar qual o veículo ve…