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!

O que é o Microsoft Power Automate? — Um guia rápido

O que é o Microsoft Power Automate? — Um guia rápido

O Microsoft Power Automate, nada mais é que uma plataforma criada pela Microsoft para o desenvolvimento de fluxos de negócios e que também pode ser utilizada para automatizações e integrações para tornar nosso dia a dia mais produtivo.

Mas… o que ele tem de tão atraente?

 

Um dos pontos que na minha opinião fazem o Microsoft Flow ser tão atraente e trazer tantas possibilidades novas, é o fato de que com alguns cliques e um pouquinho de lógica, podemos criar fluxos complexos e TOTALMENTE INTEGRADOS com diversos tipos de plataformas quase que sem NENHUMA LINHA DE CÓDIGO.


Really?

Sim! o Flow foi desenvolvido para dar mobilidade para desenvolvermos fluxos dos mais básicos aos mais complexos integrando plataformas das mais diversas possíveis em um só local.

CONECTORES… that’s the key!

 

Sim, conector é o nome dos milagres (hahah) criados pelo time do Microsoft Flow para fazer as integrações entre as diversas plataformas, fazendo com que economizemos muuuuuuuuuuuuuuuito esforço para desenvolver as integrações, entender das API’s e tudo mais.


Alguns dos conectores disponíveis

Por exemplo, usando somente 3 conectores disponíveis lá (dos mais de 200), com algumas configurações consigo fazer um fluxo que pegue uma postagem do Facebook, envie para o Azure Cognitive Services para ser processada e mandamos um e-mail utilizando o Gmail para um Cliente cadastrado no Microsoft Dynamics, simples e prático!

Tá bom, tá bom… mas e quanto eu pago por todas essas coisas?

 


Não é tanto assim, vai

Os preços vem mudando nos últimos meses, porém temos uma divisão de planos bem interessante, onde pode utilizar com nossa conta do Office 365 (muitas empresas já tem isso) e também com nossas contas Live (hotmail, outlook, live) para fluxos pessoais.

No meu canal do Youtube você também encontra alguns vídeos sobre o assunto:

 

Abaixo é uma playlist com alguns outros vídeos do meu canal.

https://www.youtube.com/watch?v=MpFaokx37WU&list=PLhNr-BWO36XnM1ZUErn_M2WWyqgAXli5F

Aproveita e se inscreve lá!

 

Compartilhe com sua rede de contatos e se precisar de algo me avise, vamos juntos! Até a próxima!