Logica aziendale nelle tabelle
A causa della struttura tecnica delle tabelle di pubblicazione via Anveo Pages è necessario che l’intera business logic sia localizzata all’interno di tabelle e codeunits – non in form/pagine. Dal punto di vista concettuale, questo è più pulito fin dall’inizio perché una tabella deve verificare la coerenza strutturale, perché sono previste codeunits per lavorare con i processi aziendali, e perché i moduli/pagine rappresentano semplicemente input/output che coinvolgono l’utente dell’applicazione.
Di conseguenza, quando si pubblica una tabella si deve verificare se i calcoli o i test si trovano nella controparte – il modulo/pagina in Dynamics Client – che devono essere spostati nella tabella.
xRec e CurrFieldNo
xRec è utilizzato in numerose funzioni di tabella all’interno del Dynamics e rappresenta il record prima di una modifica. xRec può essere utilizzato in un trigger OnValidate per verificare se un campo è effettivamente cambiato, ad esempio nel trigger OnValidate per la tabella clienti.
Tuttavia, xRec è disponibile solo quando un’immissione avviene tramite un modulo/pagina. La mancanza di xRec nel caso di funzioni all’interno di tabelle e codeunits è un vincolo posto da Dynamics che non è evidente quando si utilizza Dynamics Client perché i dati vengono modificati solo tramite moduli e pagine, e queste pagine offrono automaticamente xRec. Senza l’xRec, il codice mostrato sopra non funzionerà correttamente.
Anveo Client Suite fornisce la funzione GetxRec nell’codeunit ACF Management in modo che Anveo Client Suite imposta correttamente anche xRec e CurrFieldNo. Nell’applicazione Anveo Client Framework core application c’è un modello per la funzione GetxRec e un codice di esempio per la corretta attivazione. Procedere come indicato di seguito in modo che gli xRec e CurrFieldNo siano a vostra disposizione per le vostre tabelle:
- Crea nella tua tabella la funzione GetxRec con i seguenti parametri:
- Aggiungere alla funzione GetxRec il seguente codice:
ACFxRec.GETTABLE(xRec);
ACFManagement.GetxRec(ACFxRec,CurrFieldNo);
IF ACFxRec.NUMBER <> 0 THEN
ACFxRec.SETTABLE(xRec);
- Aggiungere il seguente codice all’inizio di tutti i trigger delle tabelle che utilizzano il codice xRec o CurrFieldNo:
//+Anveo Client Suite Integration
GetxRec(xRec,CurrFieldNo);
//-Anveo Client Suite Integration
L’esecuzione del codice è compatibile con i client Classic, Role Tailored Client e Windows di Microsoft Dynamics NAV. Poiché il codice funziona su tutti i clienti, non è necessaria una distinzione tra i casi. La chiamata di questa funzione può essere eseguita da ogni tabella del sistema ogni volta che la prima chiamata con l’Anveo Client Suite restituisce corrispondentemente xRec e CurrFieldNo.