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:
1) Crie um fluxo da nuvem automatizado com o gatilho: "Quando uma nova resposta é enviada";
- 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
- 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')))))))))))))
- 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