Fazendo requisição HTTP no Microsoft Flow

Olá para todos!!!!

Sabemos que o Microsoft Flow é capaz de realizar diversas operações com os seus conectores. Entretanto ainda existem ocasiões onde apenas uma solução customizada, com regras de negócio internas da empresa, podem ser utilizadas. Uma maneira de integrar isso com o Flow é disponibilizar a regra em formato de uma Api Rest.

Neste post mostro como isso pode ser feito.

Cenário:

Neste cenário temos uma lista no SharePoint para cadastro de clientes. Esta lista possui apenas um campo Cliente (Title) e um campo Cpf. Assim que o usuário cadastrar um cpf temos que validar se o cpf é válido, caso nao seja, nós vamos limpar o valor informado pelo usuário.

Para fazer a validação do Cpf criei uma pequena API utilizando Asp.net Core. Essa api recebe um Cpf e faz a validação dos dígitos verificadores. O Algoritmo utilizado vem do site do Macoratti http://www.macoratti.net/11/09/c_val1.htm.

Mãos a obra!

Criando a Api:

Abrir o prompt de comando e digitar:

Abrir o visual code, e criar, dentro da pasta Controller, a classe CpfController.cs :

Código do CpfController.cs:

Agora aperto F5 e executo a api:

Obs.: para gerar um cpf válido utilizei o site https://www.4devs.com.br/gerador_de_cpf.

Como estou rodando localmente minha API preciso expor a URL para fazer a requisição. Para isso utilizo o ngrok para expor a minha url local. Para quem não conhece recomendo dar uma olhada, é bem interessante para estes tipos de testes.

Código para expor a api:

Resultado:

Como podemos observar na imagem, o ngrok gerou 2 urls para mim, uma Http e outra Https.

Criando a lista no SharePoint:

Agora apenas criamos uma lista no SharePoint a partir de uma lista genérica. Assim que a lista for criada renomeamos o campo Title para “Cliente”.

Agora temos que criar o campo CPF. Ele deverá ter a seguinte estrutura:

Microsoft Flow:

Bom vamos lá! Como sempre fizemos, vamos criar um fluxo do zero, tendo como gatilho quando um item é criado:

 

Pesquise pelo gatilho “Quando um item é criado”:

Informar os parâmetros de configuração:

Feito isso adicione mais uma etapa do tipo “Http – Http”:

Vamos agora informar os valores da nossa requisição:

Concatenando url da requisição

Configurações:

  • Método: GET
  • Uri: Concatenar a url do ngrok com o campo CPF da lista.

Agora, vamos criar uma condição bem simples: Se o cpf não for válido vamos limpar o campo CPF na lista. Para isso adicione uma condição e, em escolher um valor, selecione Corpo:

Comparação completa:

Na opção “Se sim” da condição, pesquise pela ação de “Atualizar item de lista”.

Preencha o campo ID com o ID utilizado no Conteúdo dinâmico:

Agora defina os valores dos campos:

Obs.: Definimos o campo CPF com um espaço em branco.

Agora basta salvar e vamos testar como ficou:

Execução da api

Como podemos observar a requisição chegou na minha maquina local. Como o cpf não era válido nós limpamos o campo.

Bom é isso pessoal! Qualquer dúvida entrem em contato!

Até mais!!!