Hi Sandro,
mit einem kleinen "Trick" geht es auch ohne Modul. Man kann den Abbildungsausdruck "fold()" für eine Art Schleife nutzen.
In meinem Beispiel funktioniert dann im Ausriss folgendes, wenn ich nichts übersehen habe passen meine Namen zu deinen, sollte also bei dir auch so funktionieren:
[1..10]
.fold(
s:[tt_parent.dataset],
x->if(s.last.formData.tt_parent.isEmpty,s,s.add(s.last.formData.tt_parent.dataset))
)
.map(x->x.formData.tt_name)
.reverse()
.toString(" / ")
Das ist quasi eine FOR-Schleife, die 10 Mal durchlaufen wird und sich die Hierarchie "hoch hangelt". Dabei wird das "s" mit dem aktuellen Elternelement initialisiert (Typ Dataset) und an diese Liste (die immer wieder als Eingabe "s" für den nächsten "Durchlauf" fungiert) wird so lange das Elternelement des letzten Elements angehangen, wie eines vorhanden ist - ansonsten wird das s aus dem vorherigen Durchgang unverändert weitergereicht. Das x nimmt hier immer den nächsten Wert aus der Liste an, also 1,2.3.4,...10 - wird aber hier im Rahmen des Lambdas gar nicht wirklich "benutzt".
Aus den fold() fällt also zunächst eine Liste von Dataset-Objekten heraus beginnend mit dem Elternelement des aktuellen Datensatzes, letztes Element ist dann der hierarchisch höchste. Das dann gemappt auf die Namen und einmal auf den Kopf gedreht und in einen einzelnen String mit Trennzeichen zusammengefasst - voilà.
Kleiner Nachteil: Man kann die Schleife nicht vorzeitig abbrechen, muss also hier einen einen sinnvollen Höchstwert finden (in meinem Beispiel 10), um nicht unnötig viele Iterationen zu machen.
Viele Grüße
Michael