FeatureRequest: Meta-Variablen *einzeln* auf Komponenten-Ebene vererben

Hallo,

ich sehe immer wieder an vielen Beispielen, wie wichtig es ist, Daten von Strukturknoten mit Datensätzen zu verknüpfen:

Beispielhaft sei als Anwendungsfall ein Webshop genannt, der auf der Website eingebunden werden soll und dessen Produktkategorien sich in der Navigation widerspiegeln sollen.

Wenn man nun die Artikel der entsprechenden Produktkategorie auf einer Seite anzeigen lassen möchte, hat man ganz schön Pech: Es fehlt eine Möglichkeit zur Verknüpfung zwischen Strukturknoten und Datenquellen bzw. Entities daraus.

Folgen:

  • Man muss skriptuell die Struktur pflegen, um die FS_ID einer zugehörigen Produktkategorie zu pflegen
  • Es gibt keine referenzielle Integrität zwischen Struktur und Datensätzen (hier: Produktkategorien)
    • Das Löschen, Ändern und Erstellen von Datensätzen spiegelt sich nicht in der Struktur wider (und umgekehrt, werden z.B. Strukturknoten gelöscht, dann hat dies keine Auswirkungen auf die Datenquellen!)
  • dadurch hohe Fehleranfälligkeit, weil die Struktur-Variable jeder beliebige String sein darf

Also:

Bitte die Variablen von Strukturknoten so erweitern, dass man hier auch auf Entities von Datenquellen zugreifen kann.

PS: Es gibt sicher noch viele weitere Anwendungsfälle... das Problem tritt immer dann auf, wenn man auf einer Seite auf Elemente einer Datenquelle zugreifen will. Das soll ja relativ häufig vorkommen Smiley Happy

18 Comments
hoebbel
Crownpeak employee
Crownpeak employee

Ich verstehe diesen Anwendungsfall irgendwie nicht so ganz.

Zum einen geht es um die Zuordnung von Datensatzinhalten zu Struktur-Ordnern [warum werden hier nicht einfach Metadaten verwendet? Dort kann die entsprechende Verknüpfung z.B. über FS_DATASET hergestellt werden], zum Anderen wird über die referenzielle Integrität zwischen Struktur und Datensätzen gesprochen. Letzteres lässt sich aber in meinen Augen mit Struktur-Variablen nicht sicher stellen.

Für mich klingt das eher so, als wäre gewünscht, dass aufgrund der Einträge in einer Datenquelle eine entsprechende Struktur automatisiert aufgebaut werden soll. Da das Ganze dann aber wieder sehr projektspezifisch wäre, sehe ich hier ziemliche Schwierigkeiten, wie dies mit einer allgemeinen Lösung umgesetzt werden könnte. Per Skripting ist so etwas aber bereits jetzt möglich.

Pierced
I'm new here

Hallo,

wir sind nicht weit voneinander entfernt:

> Zum einen geht es um die Zuordnung von Datensatzinhalten zu Struktur-Ordnern [warum werden hier nicht einfach Metadaten verwendet]

Die Metadaten eignen sich hier zwar, haben aber einen entscheidenden Nachteil: Im Gegensatz zu Strukturvariablen werden sie nicht vererbt.

Dann gibt es bei den Metadaten noch einen weiteren Haken (aus meiner Sicht ein Bug😞 Hier referenzierte Elemente lassen sich nicht über den Referenzgraphen ermitteln.

> Für mich klingt das eher so, als wäre gewünscht, dass aufgrund der Einträge in einer Datenquelle eine entsprechende Struktur automatisiert aufgebaut werden soll

Das ist ein Ziel, das man aber durch Skripte durchaus erledigen kann.

Dabei behilflich sein soll aber dieser FeatureRequest: Der Aufbau Seitenstruktur mithilfe von Datensätzen.

Nochmal zur Verdeutlichung zum Beispiel des Webshops:

In den Datenquellen werden Produkte gepflegt (vgl. Mithras-Projekt), und jedes Produkt hat eine Kategorie. Die Kategorie wird ebenfalls in als Datenquelle gepflegt (etwa weil man ihr noch weitere Informationen hinzufügen möchte). Kategorien können weitere Sub-Kategorien enthalten.

Nun soll es eine Navigationsstruktur geben, die den Produktkategorien entspricht.

Es soll Vererbung genutzt werden, um bspw. auf einer Seitenreferenz alle Produkte aus der aktuellen Kategorie und den darüber gelagerten (Eltern-)kategorien zu ermitteln. Für die Vererbung ist man aber auf Struktur-Variablen unbedingt angewiesen, daher dieser FeatureRequest.

Hat dies die Fragestellung bzw. das Problem verdeutlicht?

Falls nein, versuchen Sie einmal folgenden Anwendungsfall umzusetzen:

Aufbau einer Seite für den Navigationspunkt "Karriere" eines Unternehmens.

Die Jobs sind in einer Datenquelle gehalten und sind unterteilt nach den beiden Kriterien "Abteilung" (ebenfalls in einer DQ gehalten) sowie "Einsatzort" (auch in einer DQ gehalten).

Das Menü stelle ich mir so vor:

Hamburg

- Finanzen

-- Controlling

- Management

-- Leitung Vertrieb

-- Leitung Customer-Support

München

- Finanzen

  -- Controlling 

- Management

  -- Leitung Vertrieb

  -- Leitung Customer-Support

London

- Finanzen

  -- Controlling

- Management

  -- Leitung Vertrieb

  -- Leitung Customer-Support

Zu jedem Strukturknoten gibt es eine Seitenreferenz. Dort sollen alle Jobs für den entsprechenden Ort und für die entsprechende Abteilung angezeigt werden. Das geht nach meinem Verständnis nur mit Verweisen auf Entitäten und durch Vererbung mithilfe der Strukturvariablen, die aber bislang nur Strings und keine Entitäten unterstützen.

feddersen
Community Manager
Community Manager

Metadaten werden doch veerbt, siehe Dokumentation (ganz unten)

Pierced
I'm new here

Das ist soweit erstmal richtig, ABER Smiley Happy MetaDaten werden ja leider nicht *komponentenweise* in der Struktur vererbt: Sobald eine Komponente gesetzt ist (node.hasMeta() == true), dann gilt die Vererbungslinie an dieser Stelle als unterbrochen.

Zur besseren Darstellung einmal ein Screenshot aus unserem Projekt:

metadata.png

Wenn man hier auf Strukturebene 1 nur einen Haken setzt (bspws. "Kommentieren deaktivieren"), dann ist ab Strukturebene 2 die Vererbungslinie unterbrochen und der Wert "Social Bookmarks aktivieren" würde nicht vererbt werden. Dasselbe gilt für andere Editoren; ich hatte mich ja ursprünglich auf Entitäten bezogen.

feddersen
Community Manager
Community Manager

Ja, jetzt verstehe ich es. Gibt es, davon abgesehen, noch andere Hindernisse, die den Einsatz von Metadaten in in diesem Anwendungsfall verhindern?

Pierced
I'm new here

hm, mir fiele höchstens noch ein, dass -- wenn ich es richtig in Erinnerung habe -- Strukturvariablen und Metadaten unterschiedliche Berechtigungskonzepte haben. Dass Metadaten nur durch Admins betrachtet werden können, zum Beispiel. Ich bin mir dabei gerade nicht 100% sicher.

Der Punkt mit der Vererbungsunterbrechung ist aber mit Sicherheit der gravierendste, und die Tatsache dass der Referenzgraph sich nicht auf Metadaten auswerten lässt.

feddersen
Community Manager
Community Manager

Strukturvariablen können nur von Projektadministratoren genutzt werden, bei Metadaten gibt es ein entsprechendes Recht, was für alle Benutzergruppen gesetzt werden kann.

Pierced
I'm new here

Klingt so als wäre der FeatureRequest damit verstanden und akzeptiert...? :smileydevil:

feddersen
Community Manager
Community Manager

Ich persönlich würde ja eher auf Metadaten setzen. Sie sind deutlich flexibler, man kann Eingabekomponenten nutzen und sie sind für alle Benutzer zugänglich, sofern man das möchte. Im Grunde fehlt nur die Möglichkeit Metadaten einzeln veerben zu können.

Pierced
I'm new here

Sehr gern. Damit würde sich unser Anwendungsfall auf jeden Fall abbilden lassen und die Strukturvariablen blieben unverändert.

Ich ändere die Überschrift des FeatureRequests entsprechend.