Referenzen

Daten aus anderen Datengruppen (auch Datengruppen aus anderen Applikationen) können in Intrexx ganz einfach referenziert werden.

Referenzierte Daten können nur über die Datengruppe geändert werden, aus der sie ursprünglich stammen.

Referenzierte Daten werden bei Änderung in der ursprünglichen Datengruppe automatisch in den Datensätzen der referenzierenden Datengruppe aktualisiert.

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 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.

Hier sehen Sie die Struktur einer Applikation, in der Referenzen verwendet werden.

In der Datengruppe "Kategorie" (1) sind Kategorien erfasst. Diese Kategorien sollen den Werten in der Datengruppe "Wert" (2) zugeordnet werden.

Dazu wird in der Datengruppe "Wert" eine Referenz auf die Datengruppe "Kategorie" gebildet. Auf der Eingabeseite "Werte" aus der Datengruppe "Wert" bietet eine Auswahlliste die Kategorien aus dem Referenzfeld "Kategorie" zur Auswahl an.

Hier sehen Sie die Eingabeseite im Browser.

Referenz erstellen

Eine Referenz kann über das Haupt- oder Kontextmenü "Neu / Referenzen" angelegt werden, wenn eine Datengruppe in der Applikationsstruktur markiert ist.

Sie befinden sich dann in den Eigenschaften der Datengruppe auf dem Reiter "Referenzen".

Mit Klick auf "Referenz hinzufügen" kann die Referenz erstellt werden.

Allgemein

Tragen Sie hier den Titel der Referenz ein. Informationen zu mehrsprachigen Titeln finden Sie hier.

Wählen Sie die Applikation und Datengruppe aus, deren Daten referenziert werden sollen.

Klicken Sie "Weiter".

Datenfelder

Verschieben Sie hier die gewünschten Datenfelder von der Spalte "Verfügbar" in die Spalte "Ausgewählt".

Klicken Sie auf "OK", um die Änderungen zu speichern und den Dialog wieder zu schließen.

Eine bestehende Referenz kann hier mit Klick auf "Referenz löschen" wieder gelöscht werden. "Referenz bearbeiten" öffnet einen Dialog, in dem die aktuell ausgewählte Referenz bearbeitet werden kann.

Referenz mit Element verbinden

Nun kann z.B. auf einer Eingabeseite eine Auswahlliste mit der Referenz verbunden werden.

Dazu wählen Sie einfach auf dem Reiter "Einträge" die Option "Werte aus Referenzen" aus.

Als Anzeigewert kann dann das gewünschte Datenfeld aus der Referenz (hier z.B."Kategorie") eingestellt werden. Wird nun auf der Eingabeseite im Browser ein neuer Datensatz erfasst, werden in der Auswahlliste alle entsprechenden Werte aus dem referenzierten Datenfeld angezeigt und können ausgewählt werden.

Die Daten in der Liste sind dabei immer aktuell, weil alle Änderungen in der referenzierten Datengruppe bei der Anlage eines neuen Datensatzes (dem Laden der Eingabeseite) aktualisiert angezeigt werden. Änderungen in der referenzierten Datengruppe werden auch in den Datensätzen aktualisiert, die hier bereits angelegt sind.

Der Bezug wird über die Datensatz-ID des referenzierten Datensatzes hergestellt. Alle Elemente, die mit Referenzfeldern verbunden sind, werden beim Speichern eines Datensatzes automatisch mit den Werten der Referenzdatengruppe gefüllt.

Referenzdatenfeld - Eigenschaften

Den Eigenschaftendialog eines Referenzdatenfeldes erreichen Sie über die Applikationsstruktur.

Hier kann der Titel des Referenzdatenfeldes bearbeitet werden. Informationen zu mehrsprachigen Titeln finden Sie hier.

Darunter werden Name und Datentyp des Referenzdatenfeldes angezeigt.

Referenzen auf Fremddaten

Im diesem Beispiel wird eine Applikation, in der Kundendaten mit Aufträgen, Auftragspositionen und Produkten verwaltet werden, mit Fremddatengruppen in einer Ziel-Applikation abgebildet.

Wie Sie Verbindungen zu Fremddaten einrichten können, erfahren Sie hier.

Informationen zur Einbindung externer Daten in Applikationen finden Sie hier.

Die Datenstruktur in diesem Beispiel ist in beiden Applikationen identisch. In der Datengruppe "Position" ist in beiden Applikationen eine Referenz auf die Datengruppe "Produkte" eingerichtet.

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 Datenfeld "fkstrid" ist als Foreign Key eingestellt. Es enthält die ID des Elterndatensatzes aus der Fremddatengruppe "Kunde".

Mit Klick auf "Foreign Key" kann ein Datenfeld als Fremdschlüssel definiert werden. 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 Datenfeld "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 "Produkt" eingesetzt wird, darf hier in der Datenfeld-Liste nicht aufgenommen werden.

Referenzen

Den Reiter "Referenzen" finden Sie im Eigenschaftendialog von Fremddatengruppen. Hier werden alle bestehenden Referenzen auf andere Datengruppen aufgelistet.

"Referenz hinzufügen" öffnet einen Dialog, in dem eine neue Referenz angelegt werden kann. "Referenz bearbeiten" öffnet einen Dialog, in dem die aktuell ausgewählte Referenz bearbeitet werden kann. "Referenz löschen" entfernt eine Referenz aus der Liste.

In unserem Beispiel wird die Beziehung zu einer Referenzdatengruppe über einen Fremdschlüssel definiert, dessen Werte in beiden Datengruppen verglichen werden. Die Werte des Foreign Keys entsprechen in der Regel dem Primärschlüssel der referenzierten Datengruppe.

Im Eigenschaftendialog der Fremddatengruppe "Position" wird auf dem Reiter "Referenzen" die Fremddatengruppe "Produkt" referenziert. Klicken Sie auf "Referenz bearbeiten" und wechseln Sie dann auf den Reiter "Beziehungen".

Beziehungen

Hier werden die Primärschlüssel der referenzierten Datengruppe mit den zugeordneten Foreign Keys angezeigt. Dieser Dialog wird bei der Anlage einer Referenz nur angezeigt, wenn die Quell-Datengruppe eine Fremddatengruppe ist oder eine Intrexx-Datengruppe mit mehr als einem Primärschlüssel. Werden bei einer Intrexx-Quelldatengruppe nicht für alle Primary Keys Zuordnungen angegeben, so werden sie beim Verlassen der Dialogseite automatisch ergänzt.

Zuordnung treffen

Wenn Sie eine Referenz neu anlegen, kann hier mit Klick auf "Zuordnung treffen" ein Dialog geöffnet werden. Dort können die Fremdschlüssel zugeordnet werden, solange die Referenz noch nicht komplett erstellt ist.

Für unser Beispiel ist hier das Referenzfeld, das die ID des referenzierten Produkts enthält, als Foreign Key für die Beziehung zur Fremddatengruppe "Produkte" eingetragen. Bei jeder Anlage einer Position wird so automatisch auch die ID des Produktes in diesem Referenzfeld gespeichert.

Foreign Key auswählen

Primary Key

In diesem Feld wird das im vorhergehenden Dialog ausgewählte Primärschlüssel-Datenfeld angezeigt.

Foreign Key

Als Fremdschlüssel können Felder aus der Benutzerverwaltung, statische Werte oder Session-Variablen ausgewählt werden.

Mit der Option "Datenfeld" kann ein Referenz-Datenfeld ausgewählt werden.Dessen eindeutiger Wert wird dann als Foreign Key für die Identifikation des entsprechenden Datensatzes benutzt.

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üsseln

  • mehrfachen Fremdschlüsseln

  • gemischten Primär- und Fremdschlüsseln

nicht möglich. Für Referenzen auf Fremddatengruppen gelten bestimmte Bedingungen: Wenn die Fremddatengruppe aus der Intrexx-Systemdatenbank - der Verbindung SysDB - stammt, ist das Anlegen von Referenzen im Regelfall möglich, aber nur wenn die Fremddatengruppe eine physikalische Datengruppe ist. Handelt es sich bei der Fremddatengruppe nicht um die Intrexx-Systemdatenbank, ist die Referenz nicht möglich.