Escolha uma Página
Esconder informações da execução do seu fluxo no Power Automate

Esconder informações da execução do seu fluxo no Power Automate

Olá pessoal! 👋

Contexto

 

Imagine que você está trabalhando com dados sensíveis dentro do seu fluxo no Power Automate, seja um dado processado, uma chave, ou varíavel que está sendo utilizada, e você precisa garantir que pessoas que tenham acesso a ver as execuções desses fluxos NÃO tenham acesso à esses valores.

No exemplo abaixo, ao olhar uma execução de fluxo, conseguimos ver tanto o valor no Input quanto no Output, então se estivessemos utilizando alguma chave, variável ou dado sensível, ele estaria disponível, assim como o texto “Valor a ser escondido” está aparecendo.

Solução

Para esconder informações, vamos utilizar um recurso que temos nas ações chamado de “Secure Inputs”

Vamos então abrir nosso fluxo no modo de edição (essa opção está disponível tanto no modo clássico como no modo New Designer), e clicar na ação que desejamos garantir segurança:

Clique em Settings e depois marque a opção de Secure Inputs como On, isso vai garantir que as informações utilizadas como entrada para essa ação serão bloquedas para visualização fora do visual de edição do fluxo, como você pdoe ver o cadeado ao lado da ação.

Pronto! você está pronto para executar seu fluxo e ver os resultados escondidos: 

Bem legal, ein!? 

Resumo

Nesse post vimos como podemos garantir um pouco mais de segurança dentro dos nossos fluxos, mas que fique claro que existem várias outras formas mais apropriadas para melhorar a governança e segurança das informações tratadas dentro dos seus fluxos.

Te vejo no próximo post!

 

Como atualizar fotos dos usuários da Power Platform com a foto do Microsoft 365 através do Power Automate

Como atualizar fotos dos usuários da Power Platform com a foto do Microsoft 365 através do Power Automate

Olá pessoal!

Quando utilizamos o Dataverse em qualquer projeto, seja ele utilizando algum produto do Microsoft Dynamics 365 ou um aplicativo Model-driven do Power Apps, temos uma tabela chamada Usuários, que é sincronizado ao Azure Active Directory (ou Microsoft Entra ID como é chamado agora)

Essa tabela, apesar de ser sincronizada ao Microsoft Entra ID, possui um campo específico de foto, que não é integrado e portanto, por padrão para todos usuários vem vazia.

Com isso, os usuários acabam ficando com as iniciais como foto quando utilizados em campos de lookup (em alguns casos o campo consegue identificar a foto vinda do Microsoft 365 automaticamente) ou principalmente quando usamos em um contexto onde a tabela de usuários é utilizada para gerar recursos , como por exemplo quando utilizamos o Universal Resource Scheduling (https://learn.microsoft.com/pt-br/dynamics365/common-scheduler/schedule-anything-with-universal-resource-scheduling?wt.mc_id=DX-MVP-50028505002850).

Na maioria dos casos, ficará assim:

Manualmente, podemos atualizar essa foto clicando no ícone do usuário e fazendo o upload da foto:

Como então podemos automatizar esse processo e garantir que os usuários tenham as fotos sincronizadas com suas fotos do Microsoft 365?

 

Solução

Com o Power Automate é possível atualizarmos essa foto, salvando o Base64 da imagem diretamente nesse campo, que é um campo de imagem escondido ao usuário final, porém disponível no contexto do nosso fluxo. 👌😉

Vamos lá então, nesse exemplo vou criar um fluxo manual que irá rodar apenas uma vez, mas você pode utilizar o mesmo conceito para criar um fluxo automatico que sincronize a foto de tempos em tempos ou de acordo com a necessidade.

Estou também recebendo como parâmetro o e-mail do usuário, para não executar para todos usuários na tabela (sendo que em alguns casos temos todos usuários do Entra ID, que podem ser alguns milhares

Vamos criar um fluxo de gatilho manual então, recebendo o e-mail do usuário que gostaríamos de atualizar:

Agora vamos buscar esse usuário na tabela de Usuários pelo e-mail, podemos fazer isso de diversas formas, mas como esse é um fluxo de demonstração, vou utilizar a ação List Rows do Microsoft Dataverse.

Vamos selecionar a tabela de Usuários, e utilizar o Filter de OData para filtrar o usuário pelo e-mail, utilizando o campo domainname, você pode utilizar o internalemailaddress ou outro campo que encaixe para você:

Agora para pegarmos a foto do usuário do Microsoft 365, vamos utilizar a ação Get user photo (v2) conector do Microsoft 365.

Para buscarmos a foto, vamos precisar passar o e-mail no parâmetro User (UPN), nesse caso estou passando o mesmo e-mail do parâmetro inicial.

Agora para cada item encontrado no nosso List Rows (no caso será apenas um registro), vamos atualizar o item da tabela de Usuários com o campo da foto encontrada no conector do Microsoft 365.

O Apply to each está conectado ao value do List Rows:

Coloquei uma ação Update Row do conector Microsoft Dataverse, que servirá para atualizar o campo de imagem do usuário.

Vamos colocar a tabela Users, e o Row ID vindo do item listado no Apply to each, assim sabemos que estamos atualizando o registro correto.

O campo a ser atualizado se chama Entity Image e existe um truque para atualizarmos esse campo. 🪄🧙‍♂️

Não podemos simplesmente colocar o retorno do conector do Microsoft 365 no campo Entity Image, por que o retorno dessa ação é um objeto que tem o tipo da imagem e o Base64 da imagem.

O truque é utilizar somente o base64 da imagem, para isso você pode utilizar uma fórmula:

body('Get_user_photo_(V2)')?['$content']

    1. Get_user_photo_(V2): Nome da ação do seu conector do Microsoft 365

    1. ?['$content']: Fórmula responsável por pegar o conteúdo base64 da imagem

Pronto! ✅ Agora se executar esse fluxo, e preencher a execução com o e-mail, a foto do usuário será atualizada:

Espero que essa dica seja útil para você, me diz ai nos comentários o que achou 😊❤️

Você pode fazer o download do fluxo de exemplo direto do meu Github:

GITHUB DOUGLAS ROMÃO: Update_PowerPlat_Users_photo_with_M365_photo.zip

Obrigado e até a próxima!

Gerando QR Code para nosso app utilizando PowerApps e Google Chart API

Gerando QR Code para nosso app utilizando PowerApps e Google Chart API

Olá pessoal!

Hoje quero trazer para vocês uma dica rápida sobre como podemos utilizar a Google Chart API para gerar QR Codes gratuitamente para nós e utilizarmos esse QR Code em nossos aplicativos do PowerApps.

O cenário é basicamente termos um formulário, que ao preenchermos determinada informação, irá ser gerado um QR Code através da API do Google Chart e esse QR Code será mostrado em um controle de imagem na tela.

A partir desse exemplo, podemos criar outras ramificações e usar por exemplo o Microsoft Flow para gerar o arquivo físico desse QR Code para ser salvo em algum banco de dados ou biblioteca de imagens e por ai vai. Nesse exemplo faremos de uma forma simplificada para mostrar o conceito.

Vamos lá!

Google Chart API

 

O Google Chart API nada mais é que um enpoint (uma URL) em que você pode passar alguns parâmetros e ela retornará um QR Code gerado, que você usar para requisitar os bytes para fazer o upload dele em algum local ou simples utilizar a sua url como destino final para a imagem.

Para fazer o uso, você basicamente precisa requisitar a seguinte URL:

https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl=Douglas Romão

O parâmetro chs é o que você irá utilizar para determinar o tamanho do seu QR Code e o parâmetro chl é o que você irá utilizar para determinar qual o valor que seu QR Code irá ter.

Nesse meu exemplo acima, o QR code a ser gerado ficaria mais ou menos assim:

Simples, não!?

Vamos agora então aplicar esse código em nosso app no PowerApps. Abra o PowerApps studio e, em seu app, vamos adicionar um Text box.

No menu superior, procure por Insert (Inserir) > Text, e adicione um campo de texto:

Vamos usar esse campo de texto para gerar o valor do nosso QR Code.

Agora, vamos adicionar um Botão:

Agora, vamos adicionar um controle de Imagem, ela servirá para vermos o resultado final do QR Code gerado:

Pronto, agora basta utilizarmos o botão de Gerar QR Code para montar a URL do Google Chart API recuperando o valor do label.

Selecione o botão, vá na propriedade OnSelect, e na barra de fórmulas, digite a seguinte fórmula:

Set(VarURLQRCode, Concatenate("https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl=", TextInput1.Text))
 

O que essa fórmula está fazendo?

Basicamente, estamos utilizando o Set para criar uma variável chamada de VarURLQRCode que irá conter a Url do Google Chart API concatenando o valor da Url que eu mencionei mais acima e alterando o parâmetro chl para utilizar o valor que for digitado no campo textbox que adicionamos na tela.

Com isso, o resultado final será que quando clicarmos no botão, alteraremos o valor dessa variável montando a Url do Google Chart API com o valor digitado no campo.

Agora só precisamos alterar a propriedade Image do controle de imagem para utilizar a Url salva na variável VarURLQRCode que acabamos de criar, selecione o controle de imagem, vá na propriedade Image, e na barra de fórmulas, digite VarURLQRCode:

Pronto! Basta rodar sua aplicação, digitar algo no campo e clicar no botão:

Segue um GIF do teste em funcionamento aqui também:

Espero que tenham gostado, utilizem cada vez mais isso para trazer mais resultado e poder aos seus aplicativos e até a próxima!

Coletando assinaturas em um aplicativo PowerApps

Coletando assinaturas em um aplicativo PowerApps

Olá pessoal!

No post de hoje vamos aprender como podemos colocar um recurso bem interessante em nossos aplicativos do PowerApps para deixá-los preparados para receber assinaturas, podendo utilizar isso no caso de um fluxo de aprovação ou algo do tipo.

Para isso vamos utilizar um controle bem interessante chamado de “Pen input” ou “Caneta” dentro do PowerApps.

Dentro do seu aplicativo, vá no menu Insert > Text > Pen input

Esse é um recurso muito interessante por que ele permite que capturemos entradas no formato de caneta para nossos aplicativos e com isso poderíamos utilizar em um tablet ou celular como forma de captura de assinatura utilizando o touch screen desses dispositivos.

Ao adicioná-lo ao seu aplicativo, você verá um controle como o abaixo:

A caixa branca é onde o conteúdo será escrito (ou desenhado) e temos alguns controles adicionais também:

Caneta — Esse é o controle que quando selecionado permite que o usuário desenhe na área em branco;

Borracha — Quando esse controle está selecionado, você pode apagar o conteúdo na área em branco, “passando” a borracha no que você desejar apagar;

Limpar — Ao clicar nesse botão, todo o conteúdo da área em branco será apagado;

Esspessura — Ao clicar nesse controle você pode selecionar a espessura da caneta a ser utilizada na área em branco;

Cor da Caneta — Aqui você consegue selecionar qual cor deseja que essa caneta tenha ao preencher a área em branco;

*Lembrando que você pode desabilitar essa barra de controles, bastando alterar para false a propriedade “Show Controls”

Como tratar o conteúdo de resultado desse controle?

 

Basicamente esse controle retorna uma imagem para gravarmos na nossa base de dados e você pode recuperar as informações pela propriedade Image desse controle.

Para testar, coloquei um controle Image na tela, e o source dele coloquei como sendo a propriedade Image do meu controle Pen:

O resultado será esse:

Legal, não é?

Espero que tenham gostado e que isso sirva de alguma forma para ajudá-los a adicionar mais recursos aos seus aplicativos de negócio no PowerApps.

Fique ligado também no meu canal que em breve teremos um video explicando passo a passo como fazer isso 🙂

http://www.youtube.com/douglasromao

Até a próxima!

Enviando notificações push para meus aplicativos no Power Apps usando Power Automate

Enviando notificações push para meus aplicativos no Power Apps usando Power Automate

Olá Pessoal! Depois de um tempo sem conseguir postar (desculpas por isso 😦 ), venho trazer um post para vocês sobre como podemos enviar mensagens de push para um aplicativo no Microsoft Power Apps utilizando o Microsoft Power Automate para isso.

Um cenário muito bom para utilizarmos isso poderia ser quando precisamos enviar algum tipo de notificação para nossos usuários sobre alguma atividade que eles tem que desempenhar ou como resultado de alguma ação que foi solicitada e está acontecendo no background, após ela ser concluída.

No exemplo que quero demonstrar, vamos criar uma funcionalidade no SharePoint para que quando criarmos uma nova “Mensagem de push”, será enviada diretamente para nosso aplicativo.

 

Power Apps

 

A primeira coisa a fazermos é criarmos o nosso aplicativo no PowerApps, vamos criar um aplicativo simples só para testarmos:

Abra http://web.powerapps.com;

 

 

No menu esquerdo, vá em Apps;

 

 

No menu superior, vá em Create an app > Canvas;

 

 

Vamos criar uma app para celular começando do zero:

 

 

Por enquanto essa nossa App não precisa ter nada, então vamos no menu File > Save:

 

 

Pronto, aplicativo no PowerApps criado.

 

Microsoft SharePoint

 

Agora, vamos criar nossa base de dados, a aplicação que será responsável por criar o item de notificação de push para nosso aplicativo, nesse caso utilizaremos o SharePoint, mas esse é só um exemplo 🙂

Abra um portal SharePoint que você queira utilizar, no meu caso tenho um site no SharePoint de desenvolvimento.

 

 

Vamos criar uma nova Lista no SharePoint para ser o local onde nossas notificações de push serão criadas para serem enviadas, vá no menu New > List:

 

 

Vamos criar uma lista chamada Notificações de push:

 

 

Vamos usar a coluna Title padrão do SharePoint para ser a mensagem a ser enviada e vamos criar uma nova coluna para o usuário selecionar para quem essa mensagem de push deve ser enviada, clique em Add column > Person:

 

 

Vamos dar o nome de Para Quem? e vamos salvar:

 

 

Pronto, nosso SharePoint está pronto! Ao criar a lista já vamos ter as telas de criação, edição e remoção automaticamente — SharePoint é fera nisso! então nossa aplicação de entrada de dados está pronta, agora é irmos para o Flow e integrarmos tudo isso.

 

Power Automate

 

Agora, abra http://flow.microsoft.com;

 

 

Vá em My Flows:

 

 

 Vamos criar um fluxo do zero, clique em New > Create from blank:

 

 

Vamos utilizar um dos triggers mais utilizados do Flow, o trigger “When an item is created” do SharePoint, ou seja, sempre que um novo item for criado em determinada lista, o Fluxo irá começar:

 

 

 

Vamos preencher as informações do trigger, selecione o site onde você criou a lista de Notificações de Push e também a lista:

 

 

 

 

Vamos adicionar um novo step que será executado logo após o fluxo iniciar, clique em New step:

 

 

Procure por “PowerApps”:

Rolando a página, você encontrará uma ação chamada “Send push notification”, ela está em preview ainda mas já conseguimos utilizá-la e é muito boa! Basta clicar na ação:

Uma informação importante: Infelizmente (ou felizmente) esse é um recurso Premium, então caso você não tenha licença premium ele irá te informar:

 

 

Caso sua conta esteja ok, você terá que configurar a ação de envio do push. Basicamente você tem que dar um nome para a Conexão (o que você quiser) e adicionar a url do seu aplicativo no PowerApps:

 

 

Para encontrar a Url do seu aplicativo, basta voltar para o PowerApps (https://web.powerapps.com/home ) > Apps;

 

 

Clique nos três pontos ao lado do seu aplicativo, e vá em Details:

 

 

Basta copiar o valor da url em Web Link e cole no Flow:

 

 

Clique em Create:

 

 

Agora você precisará configurar o envio da notificação:

 

 

  • Open App — parametrização para dizermos se a mensagem será exibida somente se o aplicativo estiver aberto ou se será exibida também se a app estiver fechada no celular do usuário (o padrão é mostrar em ambos)
  • Parameters — algum parâmetro que queiramos enviar, no nosso exemplo não utlizaremos isso;

Pronto, salve seu fluxo:

 

 

Estamos com tudo pronto! agora abra o aplicativo do PowerApps no seu celular, e faça login com a conta que configurou seu aplicativo, gravei um GIF rápido mostrando como testamos a aplicação (estou fazendo mirror do meu celular para demonstrar):

 

 

Pronto! Espero que tenham gostado, em breve teremos video sobre esse assunto e contem nos comentários sobre as experiências de vocês no uso desse recurso.

Até a próxima!