Visiativ Process und das Datenuniversum: Ansicht der verknüpften Datensätze

 

1. Problemstellung

Aus dem Studio Visiativ Process können neben Prozessen auch kleine Datenbanken modelliert werden. Diese werden als Datenreservoirs bezeichnet.

Beim Aufbau eines Datenreservoirs kommt es häufig vor, dass eine Fremdschlüsselbeschränkung modelliert werden muss.

Beispiel:

Wir haben eine Tabelle “Produktkategorie” und eine Tabelle “Produkt“. Ein Produkt ist immer mit einer Kategorie verknüpft.  Das Ziel wäre es, von einer Kategorie aus allen Produkten sehen zu können, die mit dieser Kategorie verknüpft sind.

2. Modellierung des Datenmodells im Studio

2.1 Produktkategorie

Im Studio werden wir zunächst in einem Reservoir eine Tabelle “Produktkategorie” erstellen.

Wir werden in dieser Tabelle zwei Felder haben:

Systemname Typ Beschreibung
sys_Reference Text Produktkategorie Schlüssel
sys_Title Text Name der Produktkategorie

2.2 Produkt

Als Nächstes erstellen wir eine Produkttabelle. Ein Produkt hat einen Code, eine Bezeichnung und wird mit einer Kategorie verknüpft. Dazu erstellen wir in der Produkttabelle ein Feld vom Typ “Daten“, das wir mit der Tabelle “Produktkategorie” verknüpfen.

Hinzufügen einer Komponente vom Typ “Daten” auf dem Formular

Das Feld wird mit der Tabelle der Produktkategorien verknüpft.

2.3 Ergebnis

In diesem Zustand erhalten wir also zwei Formulare:

  • Eines zur Eingabe von Produktkategorien
  • Eines zur Eingabe von Produkten, wobei wir das Produkt mit einer Kategorie verknüpfen müssen.

Die Erstellung eines Produkts ermöglicht es uns, es mit einer Kategorie zu verknüpfen.

Derzeit ist es jedoch von der Ansicht einer Kategorie aus nicht möglich, alle zugehörigen Produkte zu sehen.

3. Hinzufügen einer Ansicht für verknüpfte Datensätze

Wir möchten aus dem Formular einer Kategorie alle Produkte dieser Kategorie sehen. Wir bearbeiten also das Formular der Tabelle “Produktkategorie“.

In einer neuen Zelle fügen wir einen benutzerdefinierten Bildschirm ein.

Dann bearbeiten wir die XML-Definition dieses Bildschirms.

Unser XML wird die folgende Form haben:

<view column=“product_category” filterable=“true” paginable=“false”
provider=“com.axemble.vdoc.storage.ui.core.providers.views.ResourceViewProvider”
view=“uril://vdoc/resourceDefinitionView/Visiativ_Consulting/ProductsDatabase/ProductsDatabase:4/Product/DEFAULT” />

XML-Attribut Beschreibung
column Sie müssen den Feldnamen in der Tochtertabelle (hier die Produkttabelle) des Feldes angeben, das sie mit der übergeordneten Tabelle (hier die Kategorietabelle) verknüpft.

In unserem Beispiel hatten wir ein Feld mit dem Systemnamen “product_category” in der Produkttabelle erstellt, das vom Typ Daten war und mit der Kategorientabelle verknüpft war.

view Hier müssen Sie die Bezeichnung der Ansicht (URIL) der untergeordneten Tabelle angeben, die zur Darstellung der untergeordneten Datensätze verwendet wird (hier handelt es sich also um die Bezeichnung einer Ansicht der Produkttabelle). Zur Erinnerung: Die Bezeichnung einer Ansicht ist im Studio in den Eigenschaften des Objekts sichtbar.

Der Inhalt der Ansicht wird automatisch nach dem im Attribut “column” angegebenen Feld gefiltert, das gleich dem aktuell angezeigten Element sein muss (in unserem Beispiel wird die Produkttabelle also nach der angezeigten Produktkategorie gefiltert).

4. Ergebnis

Nach diesen Einstellungen können wir, wenn wir eine Produktkategorie betrachten, eine Liste aller Produkte sehen, die mit dieser Kategorie verbunden sind.

Vom Bearbeitungsformular einer Kategorie aus wird die Liste der zugehörigen Produkte angezeigt.

Wenn wir auf die Schaltfläche “Erstellen” klicken, um ein neues Produkt hinzuzufügen, wird die Produktkategorie automatisch mit der zuvor angezeigten Kategorie gefüllt.

Autor des Artikels

Thomas Paumier, Application Engineer bei Visiativ Switzerland