Flexible Beziehungen zwischen den Anvaigo Pages
Normalerweise identifiziert die Anvaigo Client Suite die Beziehung zwischen zwei Anvaigo Pages anhand der Tabellenbeziehungen, die einmal global für alle Anvaigo Pages eingerichtet werden. Dieses Setup wird durchgeführt in “Anvaigo. Zum Beispiel die Beziehung zwischen dem “Customer“ und die “Sales müssen daher nicht für jede Anvaigo Page wie im Dynamics manuell eingestellt werden.
Für spezielle Szenarien, in denen die Beziehung zwischen zwei Tabellen nicht über die direkte Beziehung von Feld zu Feld hergestellt werden soll, kann ein C/AL-Code in der Codeunit hinterlegt werden. “ACF Funktion CustomAnvaigoPageRelation, die die Beziehung manuell setzt. So ist es z.B. möglich, den zugehörigen Kontakt für einen Kunden auszugeben.
Die oben beschriebene Beziehung ist im C/AL-Code im folgenden Codebeispiel definiert:
// 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);
Sie können den oben gezeigten Quellcode in der ACF Events Sales & Marketing, Funktion CTR_CUSTOMER:CONTACT nachschlagen.
Die Erstellung einer benutzerdefinierten Tabellenbeziehung erfolgt nach dem gleichen Schema:
- Datensatzreferenz in einen Datensatz umwandeln; eine lokale Variable erstellen und zuweisen (Zeile 6).
- Erstellen Sie die Zieltabelle als lokale Variable. Die Zieltabelle hat den Typ der Anvaigo Page (in der Beispieltabelle Kontakt).
- Übertragen Sie den Filter auf die Datensatzreferenz (Zeile 17).
Um die benutzerdefinierte Tabellenrelation im Anvaigo Web Portal zu verwenden, ist ein Aufruf der Funktion CustomAnvaigoPageRelation über den Relationscode CTR_CUSTOMER:CONTACT erforderlich:
CASE RelationCode OF
'CUSTOMER:CONTACT': "CTR_CUSTOMER:CONTACT"();
END;
Der Relationscode CUSTOMER:CONTACT muss bei der Einrichtung der Anvaigo Client Suite veröffentlicht und in der Anvaigo Page als individuelle Tabellenbeziehung eingetragen werden, damit die Anvaigo Client Suite die manuell definierte Tabellenbeziehung anstelle von global definierten automatischen Tabellenbeziehungen verwendet. Der Datensatz, der für die Filterung bei Anvaigo Pages vom Typ Karte verwendet wird, wird durch den auf der Karte angezeigten Datensatz definiert; bei Anvaigo Pages vom Typ Liste wird der zu filternde Datensatz durch den ausgewählten Datensatz definiert.