Exemplo de regra para recálculo de apuração a partir da tela de Históricos de Afastamentos/Exclusão

Definir alfa xAbrEmp;
Definir alfa xAbrTcl;
Definir alfa xAbrCad;
Definir alfa xDatTer;
Definir interno.com.senior.g5.rh.hr.calculoApuracao.Calcular vCalculo;

Se (vExecucaoRegra = 0)
{
/*As variáveis texto1, texto2, texto3 e valor1 são variáveis internas de sistema que tem como objetivo armazenar
os valores dos registros anteriores a alteração. Se Utilizar variáveis locais, seus valores são zerados ao executar a regra após a exclusão.*/
texto1 = ""; @Data término@
texto2 = ""; @Tipo Colaborador@
texto3 = ""; @Cadastro@
valor1 = 0; @Data Afastamento@

valor1 = R038AFA.DATAFA;
IntParaAlfa(R038AFA.DATTER, xDatTer);
texto1 = xDatTer;
IntParaAlfa(R038AFA.TIPCOL, xAbrTcl);
texto2 = xAbrTcl;
IntParaAlfa(R038AFA.NUMCAD, xAbrCad);
texto3 = xAbrCad;

}
Senao
Se (vExecucaoRegra = 1)
Inicio
Res = Mensagem(Retorna, "Esta operação irá afetar a apuração do Colaborador. Deseja Apurar todo o período alterado automaticamente ?[&Sim, &Não]");
Se (Res = 0)
{
AlfaParaInt(texto1,xdatfim);
vCalculo.Datini = valor1;
vCalculo.DatFim = xdatfim;
vCalculo.ProApu = "1"; @Tipo de Processamento - Recalcula Apuração@
vCalculo.ReaMar = "S"; @Realocar Marcações@
vCalculo.DesAce = "S"; @Desfazer Acertos Situações@
vCalculo.NumEmp = EmpAtu;
vCalculo.CodCal = CalAtu;

IntParaAlfa(EmpAtu,xAbrEmp);
vCalculo.AbrEmp = xAbrEmp;
vCalculo.AbrTcl = texto2;
vCalculo.AbrCad = texto3;

vCalculo.ModoExecucao = 3; @ Assíncrono @
vCalculo.Executar();
}

Fim;

Este artigo ajudou você?