Compartilhar via


Forms com validação de CPF no Power Automate

Introdução

Forms é uma ferramenta simples, prática, e que está em melhoria constante. Mas até a data de publicação desse artigo, não existia uma solução para validação de CPF.

Forms

Crie o formulário e certifique-se que o campo CPF é númerico conforme imagem abaixo:


Power Automate

1) Crie um fluxo da nuvem automatizado com o gatilho: "Quando uma nova resposta é enviada";

  1. Preencha os campos:
  • ID de formulário: selecione o formulário criado ou informe seu ID;


3) Adicione uma ação do tipo Obter os detalhes da resposta e preencha os campos:

  • ID de formulário: selecione o formulário criado ou informe seu ID
  • ID da resposta: selecione o campo ID da resposta no conteúdo dinâmico 

  1. Adicione uma ação do tipo Inicializar variável e preencha os campos:
  • Nome: CPF_Validado
  • Tipo: Booleano
  • Valor: false

5) Adicione uma ação do tipo Inicializar variável e preencha os campos:

  • Nome: CPF_Original
  • Tipo: Cadeia de Caracteres
  • Valor: selecione o campo CPF no conteúdo dinâmico

6) Adicione uma ação do tipo Inicializar variável e preencha os campos:

  • Nome: CPF
  • Tipo: Cadeia de Caracteres
  • Valor: Expressão abaixo
if(less(length(variables('CPF_Original')),11),
    concat(substring('00000000000',length(variables('CPF_Original'))),variables('CPF_Original')),
    variables('CPF_Original'))

7) Adicione uma ação do tipo Inicializar variável e preencha os campos:

  • Nome: CPF_Digito1
  • Tipo: Inteiro
  • Valor: Expressão abaixo
if(equals(mod(mul(add(mul(int(substring(variables('CPF'),0,1)), 10),add(mul(int(substring(variables('CPF'),1,1)), 9),add(mul(int(substring(variables('CPF'),2,1)), 8),add(mul(int(substring(variables('CPF'),3,1)), 7),add(mul(int(substring(variables('CPF'),4,1)), 6),add(mul(int(substring(variables('CPF'),5,1)), 5),add(mul(int(substring(variables('CPF'),6,1)), 4),add(mul(int(substring(variables('CPF'),7,1)), 3),mul(int(substring(variables('CPF'),8,1)), 2))))))))),10),11),10),0,mod(mul(add(mul(int(substring(variables('CPF'),0,1)), 10),add(mul(int(substring(variables('CPF'),1,1)), 9),add(mul(int(substring(variables('CPF'),2,1)), 8),add(mul(int(substring(variables('CPF'),3,1)), 7),add(mul(int(substring(variables('CPF'),4,1)), 6),add(mul(int(substring(variables('CPF'),5,1)), 5),add(mul(int(substring(variables('CPF'),6,1)), 4),add(mul(int(substring(variables('CPF'),7,1)), 3),mul(int(substring(variables('CPF'),8,1)), 2))))))))),10),11))

8) Adicione uma ação do tipo Inicializar variável e preencha os campos:

  • Nome: CPF_Digito2
  • Tipo: Inteiro
  • Valor: Expressão abaixo
if(equals(mod(mul(add(mul(int(substring(variables('CPF'),0,1)), 11),add(mul(int(substring(variables('CPF'),1,1)), 10),add(mul(int(substring(variables('CPF'),2,1)), 9),add(mul(int(substring(variables('CPF'),3,1)), 8),add(mul(int(substring(variables('CPF'),4,1)), 7),add(mul(int(substring(variables('CPF'),5,1)), 6),add(mul(int(substring(variables('CPF'),6,1)), 5),add(mul(int(substring(variables('CPF'),7,1)), 4),add(mul(int(substring(variables('CPF'),8,1)), 3),mul(variables('CPF_Digito1'),2)))))))))),10),11),10), 0, mod(mul(add(mul(int(substring(variables('CPF'),0,1)), 11),add(mul(int(substring(variables('CPF'),1,1)), 10),add(mul(int(substring(variables('CPF'),2,1)), 9),add(mul(int(substring(variables('CPF'),3,1)), 8),add(mul(int(substring(variables('CPF'),4,1)), 7),add(mul(int(substring(variables('CPF'),5,1)), 6),add(mul(int(substring(variables('CPF'),6,1)), 5),add(mul(int(substring(variables('CPF'),7,1)), 4),add(mul(int(substring(variables('CPF'),8,1)), 3),mul(variables('CPF_Digito1'),2)))))))))),10),11))

9) Adicione uma ação do tipo Definir variável e preencha os campos:

  • Nome: selecione a variável CPF_Validado
  • Valor: Expressão abaixo
and(equals(int(substring(variables('CPF'),9,1)),variables('CPF_Digito1')),
and(equals(int(substring(variables('CPF'),10,1)),variables('CPF_Digito2')), 
and(not(equals(variables('CPF'),'00000000000')),
and(not(equals(variables('CPF'),'11111111111')),
and(not(equals(variables('CPF'),'22222222222')),
and(not(equals(variables('CPF'),'33333333333')),
and(not(equals(variables('CPF'),'44444444444')),
and(not(equals(variables('CPF'),'55555555555')),
and(not(equals(variables('CPF'),'66666666666')),
and(not(equals(variables('CPF'),'77777777777')),
and(not(equals(variables('CPF'),'88888888888')),
not(equals(variables('CPF'),'99999999999')))))))))))))




  1. Adicione uma ação do tipo Condição e preencha os campos:
  • Valor 1: selecione a variável CPF_Validado no conteúdo dinâmico
  • Condição: é igual a
  • Valor 2: Expressão true

Referências