Como pegar o valor anterior do campo durante uma modificação
09/01/2013 Deixe um comentário
As vezes, durante o desenvolvimento, é necessário verificar o valor anterior de um registro na tabela.
A primeira opção que muitos de nós pensamos seria declarar uma variável para guardar o valor, modifica-lo e depois fazer a comparação, porém as tabelas do Ax possuem um método que verifica o valor “commitado” do Table Buffer.
Este método é o orig().
Segue exemplo:
static void origMethod(Args _args)
{
CustTable ct;
;
select ct where ct.AccountNum == “000003”;
ct.AccountNum = “Modificado”;
info(strfmt(“Valor atual: %1, valor anterior: %2”,
ct.AccountNum,
ct.orig().AccountNum));
}
O info irá exibir a seguinte mensagem: