Depurar regra de apuração personalizada - Gestão do Ponto X

Antes de publicar uma regra de apuração no ambiente oficial, é possível executar e depurar a lógica localmente para entender o comportamento, validar condições e simular diferentes cenários de entrada.

Aplicar filtro para limitar o impacto da regra

Durante o desenvolvimento, recomenda-se restringir a execução da regra a um colaborador específico, evitando alterações indesejadas em toda a base.

Utilize uma verificação condicional baseada nos dados do contrato. Exemplo:

timeEvaluation(timeEvaluation, contract) {   
   if (contract.collaborator.code === 112 || contract.employee.employer.code === 4 ||
      contract.employer.code === 4) {
         const horasBh = timeEvaluation.getSituationHour(17);
         if (horasBh > 60) {
            timeEvaluation.setSituationHour(17, 60);
            timeEvaluation.setSituationHour(108, horasBh - 60);
         }
   }
}

Os atributos contract.collaborator.code e contract.employer.code podem ser consultados na documentação técnica da biblioteca da estrutura da regra.

Executar a regra localmente com entrada exportada

Para simular o comportamento da regra em um cenário real, siga os passos abaixo. O exemplo a seguir foi extraído da própria documentação técnica da biblioteca:

  1. Crie uma nova pasta chamada test no ambiente do AWS Cloud9.
  2. Dentro da pasta test, crie um novo arquivo chamado test.js.
  3. Insira o seguinte código no arquivo, conforme a documentação técnica da biblioteca:
const { handler } = require('../index'); // Certifique-se de que o caminho está correto
const event = { 
   body: '' // aqui será adicionado o contexto de regra.
}
handler(event).then(response => {
   console.log("Response:", response);
}).catch(err => {
   console.error("Error:", err);
});
  1. No sistema, acesse Gestão do Ponto X > Ponto da minha equipe, selecione o colaborador desejado e abra a aba Acertos do colaborador. Escolha a data que será usada no teste e clique em Ações > Exportar entrada da regra.
  2. Essa opção gera o conteúdo completo que é enviado como entrada para a regra de apuração personalizada, incluindo dados do dia, colaborador e históricos. Copie esse conteúdo e cole no campo body do arquivo test.js.
  3. Salve o arquivo e clique com o botão direito sobre ele. Selecione Run para executar a simulação.
{   
   "version": "0.23.0",
   "result": {
      "changeItems": [
         {
            "contractId": "857d7c41-babd-45e8-9376-891f2e86265b",
            "type": "SITUATION",
            "timeEvaluationDate": "2025-07-23",
            "key": "17",
            "value": "60",
            "sequence": 0
         },
         {
            "contractId": "857d7c41-babd-45e8-9376-891f2e86265b",
            "type": "SITUATION",
            "timeEvaluationDate": "2025-07-23",
            "key": "108",
            "value": "15",
            "sequence": 1
         },
         {
         "contractId": null,
         "type": "METADATA",
         "timeEvaluationDate": null,
         "key": null,
         "value": "{\"version\":\"0.23.0\"{",
         "sequence": 2
         }
      ]
   }
}

Executar a regra em modo de depuração

Também é possível depurar a execução linha a linha utilizando breakpoints diretamente no editor:

  1. Clique à esquerda da linha desejada para definir o ponto de parada.
  2. Execute o arquivo em modo depuração.
  3. Acompanhe os valores das variáveis no console para validar o comportamento da lógica.

Algumas variáveis úteis durante a análise:

Importante

  • Certifique-se de que a regra esteja ativada no sistema. Regras desativadas impedem a extração e execução da entrada.
  • A funcionalidade de Exportar entrada da regra depende da permissão de recurso ativa para o usuário logado.
  • Sempre salve o arquivo de teste antes de executar a simulação.

Este artigo ajudou você?