Lógica de negócios em tabelas
Devido à estrutura técnica da publicação de tabelas através de Anveo Pages, é necessário que toda a lógica empresarial esteja localizada dentro de tabelas e codeunits – não em formulários/páginas. Visto conceitualmente, isso é mais limpo desde o início, porque uma tabela tem que verificar se há consistências estruturais, porque codeunits estão previstas para trabalhar com processos de negócios, e porque formulários/páginas simplesmente representam entrada/saída envolvendo o usuário do aplicativo.
Como resultado, ao publicar uma tabela, deve-se verificar se os cálculos ou testes estão localizados na contraparte – o formulário/página no Dynamics Client – que deve ser transferido para a tabela.
xRec e CurrFieldNo
xRec é utilizado em numerosas funções de tabela dentro do Dynamics e representa o registo antes de uma modificação. O xRec pode ser usado em um acionador OnValidate para testar se um campo foi realmente modificado, por exemplo, no acionador OnValidate para a tabela Cliente.
No entanto, o xRec só está disponível quando uma entrada ocorre através de um formulário/página. O xRec em falta, no caso de funções nas tabelas e codeunits, é uma restrição colocada pelo Dynamics que não é visível quando se utiliza o Dynamics Client porque os dados são modificados apenas através de formulários e páginas, e essas páginas oferecem o xRec automaticamente. Sem o xRec, o código mostrado acima não funcionará corretamente.
O Anveo Client Suite oferece a função GetxRec na codeunit ACF Management para que o Anveo Client Suite também defina o xRec e o CurrFieldNo corretamente. No aplicativo principal do Anveo Client Framework há um modelo para a função GetxRec e um código de exemplo para a ativação correta. Proceda como mostrado a seguir para que o xRec e o CurrFieldNo estejam disponíveis para você nas suas tabelas:
- Crie na sua tabela a função GetxRec com os seguintes parâmetros:
- Adicione à função GetxRec o seguinte código:
ACFxRec.GETTABLE(xRec);
ACFManagement.GetxRec(ACFxRec,CurrFieldNo);
IF ACFxRec.NUMBER <> 0 THEN
ACFxRec.SETTABLE(xRec);
- Adicionar o seguinte código no início de todos os acionadores de tabela que usam o xRec ou CurrFieldNo:
//+Anveo Client Suite Integration
GetxRec(xRec,CurrFieldNo);
//-Anveo Client Suite Integration
A execução do código é compatível com os clientes Classic, Role Tailored Client e Windows do Microsoft Dynamics NAV. Uma vez que o código é executado em todos os mandantes, não é necessária qualquer distinção de casos separados. Chamar esta função pode ser executada por cada tabela do sistema com a mesma freqüência, apenas a primeira chamada usando o Anveo Client Suite retorna correspondentemente xRec e CurrFieldNo.