Durante um projeto que eu estava trabalhando de integração de dados entre um banco de dados SQL Server on-premises com o Dynamics 365 CRM , utilizando o Data Factory como integrador, surgiu a necessidade de em alguns momentos da integração enviar alertas por e-mail, acabei não encontrando muito conteúdo sobre essa tarefa então, decidi fazer esse artigo.
Nesse artigo trago para vocês a possibilidade de mandar um email utilizando o Data Factory e o Power Automate.
Criar o fluxo no Power Automate
Antes de configurarmos o Data Factory, nós vamos precisar criar o nosso fluxo no Power Automate, onde vamos criar toda lógica do processo de enviar o email.
Para esse processo iremos utilizar alguns conectores premium
- Acesse o site do Power Automate
Acesse o link https://us.flow.microsoft.com e entre com seu usuário e senha.
- Clique na opção criar na aba lateral
Clique na opção Criar da Aba lateral para criarmos o fluxo que enviara os e-mails.
- Criar um fluxo da nuvem instantâneo
Clique em Fluxo da nuvem instantâneo, para criar um novo fluxo.
- Escolher o gatilho de quando uma solicitação HTTP é recebida
Role o scroll para baixo e selecione a opção “Quando uma solicitação HTTP é recebida”.
- O fluxo será aberto e você poderá modificar-lo
Clique no título, “Quando uma solicitação HTTP for recebida”, e o abrirão algumas opções que podem ser interessantes para o seu projeto, como o corpo da requisição JSON onde você pode parametrizar oque você quer que o data factory envie de dados para esse fluxo do Power Automate, além disso você pode clicar em opções avançadas e escolher o método POST para essa requisição.
- Adicionando parâmetros para o Power Automate
Nesse exemplo vou adicionar dois parâmetros, um indicando a carga e outro a quantidade de linhas, utilizando a opção, “Use o conteúdo de amostra para gerar o esquema”, vou colar esse exemplo de JSON.
{
“Carga” : “xpto”,
“QtdeLinhas” : 100
} - Colando o código JSON
- Ficará assim.
- Clique em Nova Etapa
- Escolha o conector de E-mail
Escolha o conector de e-mail, normalmente ele aparece como um dos primeiros quando se abre essa página.
- Clique em Enviar uma notificação por email (V3)
- Agora configure os parâmetros do e-mail como desejar
Nesse exemplo eu coloquei uma mensagem indicando qual carga foi realizada com sucesso e a quantidade de linhas inseridas.
Esses parâmetros que podem ser vistos em cor verde, são os parâmetros que você vai enviar no JSON da requisição HTTP para o Power Automate, através do Data Factory. - Clique em Salvar
Após clicar em salvar, note que no gatilho do fluxo uma URL foi gerada, com ela você vai poder se comunicar com o fluxo, em outras palavras é como se você estivesse criando uma Web API com o Power Automate, o mesmo ainda permite ao final do fluxo enviar um retorno para quem solicita o Request, assim você ter toda liberdade para escrever regras como se você uma api e assim esperar um retorno XPTO, no nosso caso nós apenas vamos executar um procedimento e não iremos retornar nada ao chamar essa URL.
Vou deixar um template do meu exemplo aqui caso queiram testar o mesmo fluxo que eu fiz, abaixo: https://tadeumansi.com.br/Arquivos/EnviaEmailADF_20211018064613.zip
Como mandar um email com Data Factory e Power Automate e configurar tudo.
Agora nós vamos configurar o Data Factory para mandar o email para o Power Automate, para isso no exemplo nós iremos criar um pipeline utilizando uma Activity Web.
Iremos na aba de General, depois clicamos em Web.
Agora iremos parametrizar essa atividade, indo em Settings, depois na parte da URL iremos colar a URL que o Power Automate tinha gerado após salvarmos nosso fluxo, iremos colocar o Method como POST e no Body nós vamos colocar nossa estrutura JSON, nesse parte do Body eu vou deixei a quantidade de linhas estática pois não tinha nenhum Copy para pegar os parâmetros, mas parametrize conforme a sua necessidade.
Clicando na parte de “Add dynamics content”
Nós iremos colocar o exemplo Schema do JSON que o Power Automate espera receber nesse Request.
Aqui nós podemos mudar o parâmetro “xpto”, para uma variável do Data Factory que pega o nome do Pipeline em atual, indo em System variables e clicando em Pipeline Name
Assim o retorno da Função @pipeline().Pipeline será o nome do pipeline, você pode ir parametrizando com as dezenas de opções que o data factory disponibiliza na parte de conteúdo dinâmico, o exemplo é mais como mandar o e-mail mas você pode fazer dezenas de outras coisas seguindo esse mesmo conceito.
Pronto, agora toda vez que o seu pipeline cair nessa atividade web ele irá enviar um request para o Power Automate que irá enviar um e-mail, esse exemplo é muito bom quando você precisa que se alguma atividade falhe ele envie um e-mail ou quando algumas linhas do seu processo de copy são ignoradas, enfim os usos são diversos e espero que vocês gostem e que esse post tenha sido útil.
Aqui o exemplo do template do data factory caso queiram recriar esse exemplo.
https://tadeumansi.com.br/Arquivos/TesteEmail.zip