Voltar para o blog
Dynamics 365 Customer Engagement

Como criar máscaras para CPF utilizando Java Script no Dynamics 365 CE

A ideia é que ao inserir um valor no campo CPF, automaticamente a máscara seja aplicado ao valor inserido, conforme a seguir:

Abaixo o passo a passo para criar a máscara para CPF:

1 – Criar o campo CPF na tabela que deseja utiliza-lo

Neste exemplo, vamos criar o campo CPF na tabela de contatos.

Campo do tipo texto, com 14 caracteres.

2 – Criar o recurso da web com o código Java Script

Vamos utilizar o código abaixo, por isso será necessário salva-lo em um arquivo na sua maquina para podermos carrega-lo no Dynamics 365 CE.

//Validação CPF e máscara XXX.XXX.XXX-XX
function valida_MascaraCPF (executionContext) {
    var context = executionContext.getFormContext();
    var nomeCampo = executionContext.getEventSource().getName()
    var fieldAtrribute = context.getAttribute(nomeCampo);
    var val = fieldAtrribute.getValue();
    var fieldControl = context.getControl(nomeCampo);
 
    fieldControl.clearNotification();
 
    if (val !== null) {
        val = val.replace(/[^\d]+/g, "");
        if (val.length !== 11
            || val === "00000000000"
            || val === "11111111111"
            || val === "22222222222"
            || val === "33333333333"
            || val === "44444444444"
            || val === "55555555555"
            || val === "66666666666"
            || val === "77777777777"
            || val === "88888888888"
            || val === "99999999999") {
 
            fieldControl.setNotification("CPF inválido.");
            return;
        }
 
        fieldAtrribute.setValue(val.replace(/^(\d{3})(\d{3})(\d{3})(\d{2})/, "$1.$2.$3-$4"));
 
        // Valida 1o digito 
        var add = 0;
        var i;
        for (i = 0; i < 9; i++)
            add += parseInt(val.charAt(i)) * (10 - i);
        var rev = 11 - (add % 11);
        if (rev === 10 || rev === 11)
            rev = 0;
        if (rev !== parseInt(val.charAt(9))) {
            fieldControl.setNotification("CPF inválido.");
            return;
        }
        // Valida 2o digito 
        add = 0;
        for (i = 0; i < 10; i++)
            add += parseInt(val.charAt(i)) * (11 - i);
        rev = 11 - (add % 11);
        if (rev === 10 || rev === 11)
            rev = 0;
        if (rev !== parseInt(val.charAt(10))) {
            fieldControl.setNotification("CPF inválido.");
        } 
    }
}

No https://make.powerapps.com/ abra a solução que está utilizando e clique em Novo -> Mais -> Recurso da Web.

Defina um nome para seu recurso da web, no meu caso estou utilizando “Comun” e em seguida carregue o arquivo com o código Java Script.

Obs: Não esqueça de publicar o recurso da web após criado.

3 – Criar o gatilho do Java Script no formulário

Abra o formulário desejado e no menu lateral clique em no ícone do Java Script e em seguida clique em Adicionar biblioteca.

Localize o recurso da web criado e adicione-o.

Adicione o campo CPF no formulário e clique nele para abrir as configurações do campo no menu lateral direito, em seguida clique em Eventos -> + Manipulador de Eventos

Para configurar o evento:

  1. Tipo de Evento = Ao alterar
  2. Biblioteca = Selecione o recurso da web criado
  3. Função = Utilize o nome da função do nosso código (valida_MascaraCPF)
  4. Habilite o evento (gatilho)
  5. Devemos passar o contexto da execução por parâmetro

Não esqueça de clicar em concluído e Salvar e publicar o formulário.

Agora é só abrir o registro e testar!

Não esqueça de limpar o cache para testar

Sobre o Autor

Jimmy Passeti

Jimmy Passeti

Microsoft MVP especializado em Dynamics 365 CRM, Power Platform e Copilot. Com mais de uma década de experiência, ajudo empresas a transformar processos de negócio através de soluções Microsoft. Compartilho conhecimento através de artigos técnicos, cursos práticos e mentorias.

Microsoft MVP Dynamics 365 Power Platform Copilot