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.