Relazioni flessibili tra le Anvaigo Pages
Normalmente Anvaigo Client Suite identifica la relazione tra due Anvaigo Pages utilizzando la tabella delle relazioni che vengono impostate una volta a livello globale per tutte le Anvaigo Pages. Questa impostazione viene eseguita in ”Anvaigo. Per esempio, la relazione tra l’elemento ”Customer” e il ”Sales quindi non devono essere impostate manualmente per ogni costellazione di Anvaigo Page come nel Dynamics.
Per scenari più particolari in cui la relazione tra due tabelle non deve essere creata attraverso la relazione diretta da campo a campo, è possibile depositare un codice C/AL nell’codeunit. ”ACF funzione CustomAnvaigoPageRelation che imposta manualmente la relazione. In questo modo è possibile, ad esempio, emettere il relativo contatto per un cliente.
La relazione sopra descritta è definita nel codice C/AL nel seguente esempio di codice:
// Show related company contact from customer
// Data Source: Customer
// Destination: Contact
// 1. Set table reference
RecRef.SETTABLE(Customer);
Mgt.OPENRecRef(DATABASE::Contact,DestRecRef);
// 2. Filter
ContBusRel.RESET;
ContBusRel.SETCURRENTKEY("Link to Table","No.");
ContBusRel.SETRANGE("Link to Table",ContBusRel."Link to Table"::Customer);
ContBusRel.SETRANGE("No.",Customer."No.");
IF ContBusRel.FINDFIRST THEN
Contact.GET(ContBusRel."Contact No.");
Contact.SETRECFILTER;
// 3. Copy Filters to DestRecRef
DestRecRef.SETVIEW(Contact.GETVIEW);
È possibile consultare il codice sorgente mostrato sopra nella funzione ACF Events Sales & Marketing, funzione CTR_CUSTOMER:CONTACT.
La creazione di una relazione tabellare personalizzata viene fatta secondo lo stesso schema:
- Convertire il riferimento del record in un record; creare una variabile locale e assegnarla (riga 6).
- Creare la tabella delle destinazioni come variabile locale. La tabella delle destinazioni ha il tipo di Anvaigo Page di destinazione (nella tabella di esempio Contatto).
- Trasferire il filtro al riferimento del record (riga 17)
Per utilizzare la relazione tabella personalizzata nel Anvaigo Web Portal è necessaria una chiamata alla funzione CustomAnvaigoPageRelation, utilizzando il codice di relazione CTR_CUSTOMER:CONTACT:
CASE RelationCode OF
'CUSTOMER:CONTACT': "CTR_CUSTOMER:CONTACT"();
END;
Il codice di relazione CUSTOMER:CONTACT deve essere reso pubblico nella configurazione dell’Anvaigo Client Suite e deve essere inserito nella Anvaigo Page come relazione tabella singola, in modo che l’Anvaigo Client Suite utilizzi la relazione tabella definita manualmente invece delle relazioni tabella automatiche definite globalmente. Il record utilizzato per il filtraggio nelle Anvaigo Pages di tipo scheda è definito dal record visualizzato sulla scheda; nella lista Anvaigo Pages di tipo il record per il filtraggio è definito dal record selezionato.