Skip to main content
08 August 2022
Follow Us

Como criar um dataset em tempo real quando nos aproximamos fisicamente de uma determinada área

Neste artigo veremos uma das várias possibilidades de ligação entre ferramentas da plataforma Power da Microsoft. Vamos criar um fluxo no Power Automate que irá alimentar um conjunto de dados do Power BI em tempo real 😎

Antes de começarmos, o que é um Streaming Dataset?

Para não nos estendermos de forma demasiado técnica, podemos definir streaming dataset como “um conjunto de dados que será atualizado de forma instantânea quando ocorre um determinado evento”.

 Picture1

No Power BI, os elementos visuais serão modificados de forma instantânea, o que possibilitará uma análise rápida e precisa de informações cruciais para o nosso negócio.

Dito isso, criemos um Streaming Dataset, que possibilitará uma gestão do tempo (em média) gasto por cada colaborador em uma determinada área da nossa empresa. Além de saber onde se encontram fisicamente naquele exato momento 😬

1 – Criar o Streaming Dataset no Power BI

Dentro da nossa área de trabalho do Power BI, clicaremos no botão de “+ Novo” no canto superior esquerdo e selecionaremos a opção “Conjunto de dados de transmissão”.

Picture2

Logo depois, abrirá uma aba para escolhermos nossa origem de dados. Selecionaremos a opção “API”:

Picture3

Após concluído o passo anterior, finalmente, abrir-se-á uma janela para darmos o nome pretendido no conjunto de dados (“Streaming Locale”) e quais são os “valores de transmissão” (preenchidos no Power Automate):

Picture4

Ao adicionarmos um valor de transmissão, podemos selecionar qual tipo de dados o mesmo receberá. Sendo assim, criaremos 4 valores de transmissão, serão eles:

  1. DataChegada (tipo: DateTime),
  2. DataSaída (tipo: DateTime),
  3. ZonaA (tipo: Texto),
  4. NomeColaborador (tipo: Texto):

Picture5

Logo após clicarmos em “Concluído”, o mesmo aparecerá nos nossos Conjuntos de dados:

Picture6

2 – Microsoft Power Automate

Antes de prosseguirmos, darei uma breve introdução dessa linda ferramenta chamada Power Automate 😊:

É um braço da plataforma Power que nos possibilita automatizar qualquer tipo de tarefa repetitiva que realizamos no nosso dia a dia, de maneira simples e intuitiva sem recorrer a códigos complexos. Segue a forma Acionador -> Ação, no qual o acionador irá “iniciar” o fluxo, e as ações nos darão milhares de possibilidades dentro da nossa organização. Ou seja, as tarefas que fazemos de forma manual, serão realizadas de forma automática pelo computador.

Exemplos de fluxos:

  1. Quando chegar um novo e-mail, modificar o ficheiro Excel em anexo e publicá-lo no Microsoft Teams.
  2. Quando um formulário é submetido, preencher um contrato de trabalho atualizado e enviar para o colaborador por e-mail.
  3. Quando um funcionário clicar no botão, enviar um pedido de aprovação de férias para o seu manager. E quando o mesmo aprovar, modificar mapa de férias e calendário do funcionário.

Com certa criatividade, o potencial na automação de tarefas poderá se tornar gigantesco! 😉

3 – Criação do fluxo

Agora iniciaremos a parte mais divertida da brincadeira 😋. Criaremos o fluxo que irá preencher nossos valores de transmissão anteriormente criados no “Streaming Locale”.

Picture7

É sempre importante percebermos qual será o Acionador do nosso fluxo, ou seja, como ele se iniciará? No nosso caso, será “Quando entro ou saio de uma área”.

Vale a pena ressaltar, que para o funcionamento da nossa solução, é obrigatório os seguintes pontos:

  1. O colaborador precisar fornecer as permissões de localização quando o mesmo estiver usando a conta da empresa.
  2. Que o mesmo tenha o Microsoft Power Automate instalado no telemóvel ou portátil.

Dito isso, selecionaremos a opção “Fluxo de cloud automatizado” ao clicar no friso “Os meus fluxos” e depois no botão do canto superior esquerdo “+ Novo fluxo”:

Picture8

Como o acionador que iremos utilizar ainda está em (preview), vamos ignorar o passo inicial e adicionamos dentro do fluxo. Sendo assim, colocaremos o nome do nosso fluxo de “Flow Locale” e clicaremos em “Ignorar”.

Picture9

Após ter criado o fluxo, vamos digitar “Localização” na barra de pesquisa e selecionar o Acionador “Quando entro ou saio de uma área”:

Picture10

Perfeito! Após ter selecionado o acionador do nosso fluxo, é pedido a região na qual queremos que o mesmo se inicie (precisão máxima de 8 metros):

Picture11

Após ter selecionado a área (ou seja, quando entrarmos ou sairmos daquele raio), clicaremos no botão “Guardar”.

Agora iremos usar uma ação que nos dará todas as informações sobre um usuário da nossa organização: como e-mail, nome, telemóvel, departamento e outros.

Picture12

Agora precisaremos de uma condição no nosso fluxo. Quando entrarmos naquela área, queremos adicionar uma linha no nosso “Streaming Locale” com o valor de transmissão (DataChegada) referente ao tempo exato atual. E quando sairmos, adicionaremos apenas o valor (DataSaída), com o tempo que sairmos. Em ambos os casos, queremos que a linha tenha o nome do colaborador (que conseguimos extrair no passo anterior).

A informação de se saímos ou entramos na área, é dada pelo conteúdo de ”triggerOutputs()?['transitionType']”. 

Se esse valor for 1: entramos na área, já se for 2: estamos saindo do local. Infelizmente não conseguiremos simplesmente adicionar um conteúdo dinâmico, e deveremos criar uma expressão:

Picture13

Se esta condição for verdadeira, o fluxo irá realizar apenas as ações dentro do bloco verde “Se sim”. Queremos adicionar uma linha ao nosso “Streaming Locale” do Power BI:

Picture14

Esta ação “Adicionar linhas a um conjunto de dados” terá 3 parâmetros obrigatórios, serão eles:

  • Área de Trabalho: devemos selecionar a área na qual salvamos nosso Streaming Dataset
  • Conjunto de Dados: selecionaremos o “Streaming Locale”
  • Tabela: escolhemos a opção “RealTimeData”

Picture15

No campo “Payload” deveremos colocar as informações das linhas que adicionaremos no dataset. Deverá ser formatado da mesma forma que o Power BI nos informou em 1:

[
{
"DataChegada" :"2022-08-04T16:54:19.983Z",
"DataSaída" :"2022-08-04T16:54:19.983Z",
"ZonaA" :"AAAAA555555",
"NomeColaborador" :"AAAAA555555"
}
]

Agora só basta alterarmos os valores para aquilo que queremos. Sendo eles:

  • DataChegada: Já que a hora de chegada será exatamente quando o fluxo for acionado, recorreremos a expressão utcNow() do Power Automate, que retorna a data corrente atual.
  • DataSaída: Deixaremos esse valor em branco para percebermos que esse registro trata-se de quando o colaborador chegou na ZonaA
  • ZonaA: Esse valor servirá para sabermos em qual área o colaborador entrou. Colocarei como “Escritório”, mas pode ser o nome que quisermos fornecer.
  • NomeColaborador: Usaremos o conteúdo de retorno da ação “Obter meu perfil (V2)” que adicionamos anteriormente.

Picture16

Agora replicaremos a mesma lógica para quando o colaborador sair da ZonaA, para isso usaremos exatamente a mesma ação, com o valor de transmissão “DataSaída” recebendo utcNow().

Para facilitar, iremos copiar nossa ação e colar no lugar pretendido. Clicaremos nos “…” da ação que queremos copiar, depois clicaremos no botão “Copiar para a minha área de transferência (Pré-visualização)”:

Picture17

Depois adicionaremos um novo passo onde queremos colar a ação previamente copiada:

Picture18

Agora iremos alterar os valores de transmissão “DataChegada” e “DataSaída”:

Picture19

Terminamos nosso trabalho de criação do fluxo, e só basta testarmos o funcionamento! 😲

Picture20

4 – Funcionamento

Para testarmos o fluxo, deveremos entrar ou sair da área que colocamos inicialmente. Após alguns segundos o mesmo será executado.

Picture21

Partindo desse acionador “Quando entro ou saio de uma área” poderemos automatizar diversos tipos de tarefas como:

  • Quando um colaborador chegar em uma zona da empresa, notificarmos seu manager pelo telemóvel.
  • Quando chegarmos no escritório, baixar todas as faturas recebidas no dia anterior na nossa máquina.
  • Controle de ponto

Dito isso, quando você chegar ou sair de a algum lugar, qual tarefa gostaria de automatizar?

Para utilizarmos o “Streaming Locale” basta criarmos um relatório ou Dashboard que terá o mesmo como conjunto de dados. Exemplo simples do que poderemos fazer:

Picture22

Além disso, com um Streaming Dataset no modelo que criamos, poderíamos responder algumas perguntas como:

  • Determinada área da empresa está com lotação excedida?
  • Qual zona da nossa empresa é mais frequentada pelos funcionários?
  • Em qual zona encontra-se aquele funcionário?
  • Qual a hora exata que determinado colaborador leva para ir de uma zonaA até uma zonaB? Agradeço pela atenção até aqui, até o próximo artigo.

Picture23

Ficheiros em anexo

Tiago Figueredo

Assine a nossa newsletter e receba o nosso conteúdo diretamente no seu email