Nesta solução, ensinaremos a como adicionar no fluxo um SCRIPT para que seja realizada a validação do CPF/CNPJ digitado pelo cliente no componente de entrada de dados para que seja utilizado o resultado em uma condição.
1 - ADICIONAR O COMPONENTE DE SCRIPT NO FLUXO
Entre na edição do Fluxo e adicione o componente de SCRIPT conforme a figura abaixo:
Observem que o componente de SCRIPT deve ficar posicionado após o componente de entrada de dados.
2 - EDITE O COMPONENTE DE SCRIPT
Clique sobre o componente de SCRIPT e edite o mesmo. Irá abrir a tela a seguir:
- Em horários voce pode utilizar o horário que o SCRIPT vai estar ativo no fluxo. Não é necessário pois sempre que acontecer a entrada de dados queremos que ele execute então é pressuposto.
- Em nome coloque um nome apropriado para o componente. Ex. Teste de CPF/CNPJ
- Em parâmetros vamos colocar a variável "val" em minúsculo recebendo o conteúdo da variável "{{CPF_CNPJ}}" esta variavel muda de acordo com a utilizada na entrada de dados. Aqui estamos dizendo que val vai receber o que estiver sido digitado em {{CPF_CNPJ}} para ser utilizado no script.
- Em tipo de função escolha "customizável".
- Em "retorno da função", crie uma nova variável para ser utilizada na condição do fluxo. No exemplo valos criar a {{IS_CPF_CNPJ}} mas pode ser qualquer uma a escolha desde que identifique para ser utilizado depois. Este retorno da função vai receber "0" quando um CPF/CNPJ for inválido, e "1" quando o CPF/CNPJ for válido.
- Em Customizável no código que aparece, troque a linha 2 toda pelo script abaixo:
val = val.replace(/\D/g, ''); if (val.length == 11) { var v1 = 0; var v2 = 0; var aux = false; for (var i = 1; val.length > i; i++) { if (val[i - 1] != val[i]) { aux = true; } } if (aux == false) { return 0; } for (var i = 0, p = 10; (val.length - 2) > i; i++, p--) { v1 += val[i] * p; } v1 = ((v1 * 10) % 11); if (v1 == 10) { v1 = 0; } if (v1 != val[9]) { return 0; } for (var i = 0, p = 11; (val.length - 1) > i; i++, p--) { v2 += val[i] * p; } v2 = ((v2 * 10) % 11); if (v2 == 10) { v2 = 0; } if (v2 != val[10]) { return 0; } else { return 1; } } else if (val.length == 14) { var v1 = 0; var v2 = 0; var aux = false; for (var i = 1; val.length > i; i++) { if (val[i - 1] != val[i]) { aux = true; } } if (aux == false) { return 0; } for (var i = 0, p1 = 5, p2 = 13; (val.length - 2) > i; i++, p1--, p2--) { if (p1 >= 2) { v1 += val[i] * p1; } else { v1 += val[i] * p2; } } v1 = (v1 % 11); if (v1 < 2) { v1 = 0; } else { v1 = (11 - v1); } if (v1 != val[12]) { return 0; } for (var i = 0, p1 = 6, p2 = 14; (val.length - 1) > i; i++, p1--, p2--) { if (p1 >= 2) { v2 += val[i] * p1; } else { v2 += val[i] * p2; } } v2 = (v2 % 11); if (v2 < 2) { v2 = 0; } else { v2 = (11 - v2); } if (v2 != val[13]) { return 0; } else { return 1; } } else { return 0; }
Pronto o Script ficará conforme sa imagens abaixo:
![]() | ![]() |
Salve o mesmo.
3 - ADICIONE UM COMPONENTE DE CONDIÇÃO NO FLUXO
Agora que o SCRIPT está criado podemos adicionar um componente de condição para testarmos o valor retornado na variável "{{IS_CPF}}" que criamos no SCRIPT. Lembrando que a variável retorna "0" e "1". Tambem pode-se utilizar a variável em qualquer outro componente.
Veja a imagem:
Neste exemplo teremos dois comportamentos do Fluxo, o primeiro se o valor retornado for "0" de CPF/CNPJ inválido poderemos informar o cliente e seguir um fluxo.
O segundo que seria a Exeção "1" poderíamos colocar para prosseguir o fluxo sendo que recebemos "1" de CPF/CNPJ válido.
Qualquer dúvida não deixem de nos contactar.
Este artigo foi útil?
Que bom!
Obrigado pelo seu feedback
Desculpe! Não conseguimos ajudar você
Obrigado pelo seu feedback
Feedback enviado
Agradecemos seu esforço e tentaremos corrigir o artigo