Logique d’entreprise dans les tableaux
En raison de la structure technique de la publication des tableaux via Anveo Pages, il est nécessaire que toute la logique métier se trouve dans les tableaux et les codeunits – et non dans les formulaires/pages. Du point de vue conceptuel, c’est plus propre dès le début parce qu’une table doit se vérifier elle-même pour les consistances structurelles, parce que les codeunits sont prévues pour travailler avec les processus métier, et parce que les formulaires/pages représentent simplement des entrées/sorties impliquant l’utilisateur d’application.
Par conséquent, lors de la publication d’un tableau, il faut vérifier si les calculs ou les tests se trouvent dans la contrepartie – le formulaire/page dans Microsoft Dynamics 365 Business Central Client – qui doivent être déplacés dans le tableau.
xRec et CurrFieldNon
xRec est utilisé dans de nombreuses fonctions de table au sein de la Microsoft Dynamics 365 Business Central et représente l’enregistrement avant une modification. xRec peut être utilisé dans un déclencheur OnValidate pour tester si un champ a réellement changé, par exemple dans le déclencheur OnValidate pour la table Client.
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.";
Toutefois, xRec n’est disponible que lorsqu’une saisie a lieu via un formulaire/page. Le xRec manquant dans le cas des fonctions dans les tables et les codeunits est une contrainte posée par la Microsoft Dynamics 365 Business Central qui n’est pas évidente lors de l’utilisation de Microsoft Dynamics 365 Business Central Client car les données y sont modifiées uniquement via les formulaires et les pages, et ces pages offrent xRec automatiquement. Sans le xRec, le code affiché ci-dessus ne fonctionnera pas correctement.
Anveo Client Suite fournit la fonction GetxRec dans la ACF Managementcodeunit sorte qu’Anveo Client Suite règle aussi correctement les xRec et CurrFieldNo. Dans l’application centrale Anveo Client Framework, il existe un modèle pour la fonction GetxRec et un exemple de code pour une activation correcte. Procédez comme indiqué ci-dessous pour que les champs xRec et CurrFieldNo soient disponibles pour vos tables :
- Créez dans votre table la fonction GetxRec avec les paramètres suivants :
- Ajoutez à la fonction GetxRec le code suivant :
ACFxRec.GETTABLE(xRec);
ACFManagement.GetxRec(ACFxRec,CurrFieldNo);
IF ACFxRec.NUMBER <> 0 THEN
ACFxRec.SETTABLE(xRec);
- Ajoutez le code suivant au début de tous les déclencheurs de table qui utilisent le xRec ou CurrFieldNo :
//+Anveo Client Suite Integration
GetxRec(xRec,CurrFieldNo);
//-Anveo Client Suite Integration
L’exécution du code est compatible avec les clients Classic, Role Tailored Client et Windows de Microsoft Dynamics NAV. Comme le code s’applique à tous les clients, il n’est pas nécessaire de faire une distinction distincte entre les cas. L’appel de cette fonction peut être effectué par chaque table du système aussi souvent, seul le premier appel utilisant Anveo Client Suite renvoie en conséquence xRec et CurrFieldNo.