Referenzen

Allgemeines

Mit Referenzen kann eine direkte Verbindung zu Daten aus anderen Datengruppen hergestellt werden. Die Daten können auch aus einer anderen Applikation stammen. Bei einer Änderung der Daten in der Applikation und Datengruppe, in der die Referenz eingerichtet ist, werden die Originaldaten der referenzierten Datengruppe aktualisiert. Der Bezug wird über die Datensatz-ID des referenzierten Datensatzes hergestellt. Alle Ansichts- und Eingabeelemente, die mit Referenzfeldern verbunden sind, werden beim Speichern eines Datensatzes automatisch mit den Werten der Referenzdatengruppe gefüllt.

Beachten Sie bitte, dass Sie zwar Eingabeelemente anlegen können, die Referenzdaten anzeigen, die Werte, die vom Benutzer in diese Elemente eingegeben werden, jedoch nicht gespeichert werden. Wird die referenzierte Applikation oder die referenzierte Datengruppe geändert, so wird das interne Bezugsfeld neu generiert. Eingetragene Datensatz-IDs für die vorherige referenzierte Datengruppe gehen dabei verloren. Solange ein Datensatz referenziert ist, kann er geändert, aber nicht gelöscht werden.


Eine Referenz kann über das Kontextmenü einer Datengruppe neu angelegt werden.

Referenzen auf Fremddatenquellen

Im folgenden Beispiel wird eine Applikation, in der Kundendaten mit Aufträgen, Auftragspositionen und Produkten verwaltet werden, per Fremddatenzugriff in einer Ziel-Applikation abgebildet. Die Datenstruktur ist in beiden Applikationen identisch. Die Datengruppe Position wird in beiden Applikationen als Referenz auf die Datengruppe Produkte konfiguriert.

Quell-Applikation


Ziel-Applikation




Um die Beziehung von untergeordneten Datengruppen zu Elterndatengruppen per Fremddatenzugriff abzubilden, muss der Foreign Key in der untergeordneten Datengruppe definiert werden. Hier sehen Sie den Eigenschaftendialog der Fremddatengruppe Auftrag. Das Feld fklid ist als Foreign Key eingestellt. Es enthält die ID des Elterndatensatzes aus der Fremddatengruppe Kunden.



Klicken Sie auf Foreign Key, um ein Feld als Fremdschlüssel-Feld zu definieren. Das Feld, das als Foreign Key eingesetzt wird, muss einen Wert enthalten, mit dem ein Elterndatensatz eindeutig identifiziert werden kann, wie z.B. eine Kundennummer.



Hier sehen Sie den Eigenschaftendialog der Fremddatengruppe Position. Das Feld fklid ist als Foreign Key eingestellt. Es enthält die ID des Elterndatensatzes aus der Fremddatengruppe Auftrag.

Das Datenfeld, das in der Quellanwendung als Foreign Key für die Referenzierung des Datensatzes aus der Datengruppe Produkte eingesetzt wird, darf hier in der Datenfeld-Liste nicht aufgenommen werden.

In den Eigenschaften der Fremddatengruppe Position wird die Referenz auf die Fremddatengruppe Produkt eingestellt.



In den Eigenschaften der Referenz wird die Beziehung definiert.



Das Feld ref_product ist in diesem Beispiel als Foreign Key für die Beziehung zur Fremddatengruppe Produkte hinterlegt und entspricht dem Datenfeld, das die ID des Produktes enthält. Bei jeder Anlage einer Position wird so automatisch auch die ID des Produktes in diesem Referenzfeld gespeichert.

Im Eigenschaftendialog einer Beziehung, den Sie mit Klick auf Bearbeiten erreichen, wird das Referenz-Datenfeld zugeordnet.



Mit der Option Datenfeld kann hier ein Datenfeld aus der zu referenzierenden Datengruppe ausgewählt werden, dessen eindeutiger Wert als Foreign Key für die Identifikation des entsprechenden Datensatzes benutzt wird. Wenn Sie z.B. eine Datengruppe referenzieren, die Artikel enthält, so könnte hier die Artikelnummer ausgewählt werden.



Mit der Option Benutzer kann hier auch ein Feld aus der Benutzerverwaltung als Foreign Key eingesetzt werden. Mit der Option Statischer Wert kann ein fester Wert, mit Session-Variable der Wert einer Session-Variablen verwendet werden.

Fremddatengruppen, die aus der Intrexx-Standardverbindung stammen, können auch auf alle Standard-Datengruppen referenzieren. Bei der Integration von Fremddatentabellen ist das Einbinden von
  • mehrfachen Primärschlüssels
  • mehrfachen Foreign Keys
  • gemischten Primary und Foreign Keys
nicht möglich.