Anveo Web Portal / Instalação / Lógica de negócios em tabelas
Esta é uma tradução automática. O post original está disponível em Inglês .

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 Microsoft Dynamics NAV 2017 Client – que deve ser transferido para a tabela.

xRec e CurrFieldNo

xRec é utilizado em numerosas funções de tabela dentro do Microsoft Dynamics NAV 2017 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.

IF "No." <> xRec."No." THEN BEGIN
SalesSetup.GET;
NoSeriesMgt.TestManual(SalesSetup."Customer Nos.");
"No. Series" := '';
END;
IF "Invoice Disc. Code" = '' THEN
"Invoice Disc. Code" := "No.";
Código fonte do trigger OnValidate do campo No. dentro da 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 Microsoft Dynamics NAV 2017 que não é visível quando se utiliza o Microsoft Dynamics NAV 2017 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.