Zugriff auf hierarchische Daten (Parent-Variant) nach Mapping/Filterung

Hallo zusammen,

mache grade meine ersten Erfahrungen mit eine Parent-Variant-Datastore und der Zugriff auf die Varianten klappt auch soweit.
Das funktioniert jedoch nur, wenn ich direkt auf den Output aus dem SearchDatastore-Step zugreife. Sobald ich einen Mapper oder Filter zwischenschalte, kann ich nicht mehr auf die Varianten zugreifen. Ist das normal so oder kann man das irgendwie umgehen?

In der Doku zum Zugriff auf Relationen steht zwar „[…] Die meisten Möglichkeiten bieten sich hier bei Spreadsheets, die aus einem Datastore kommen.“. Das liest sich für mich aber nicht wie, dass geht NUR in dem Spreadsheet direkt aus einem Datastore.

Übersehe ich da was?

Gruß
Gustav

Hallo @gustavfriedeheim,

normalerweise sollte das im ersten Mapper nach dem SearchDatastore funktionieren, genauso wie bei einem Filter nach dem SearchDatastore und entsprechen einem nachfolgendem Mapper.
Aber du hast Recht, danach geht die Paren-Varaint Struktur verloren. Kannst du vielleicht mal versuchen den Cashing Modus bei dem Filter bzw. Mapper zu aktivieren.

Viele Grüße
Lukas

Hallo @synesty-Lukas,

das hilft auch nicht.

Bei der folgenden Konfiguration kriege ich schon keine Varianten mehr raus.
SearchDatastore → Mapper (mit Cache) → HTMLWriter

Mein Mapper hat den Pass-Through-Modus aktiviert, aber ich hab es auch mal ohne versucht. In beiden Fällen klappt es nicht.

Gruß
Gustav

Hallo Gustav,

sorry, da habe ich mich ein wenig missverständlich ausgedrückt. Cashing Mode beim Mapper bringt natürlich nichts, da die Zuordnung nur im ersten Mapper nach dem SearchDatastore noch vorhanden ist. Danach existiert die Zuordnung nicht mehr.
Der Cashing Mode würde nur etwas nach dem ersten Filter nach dem SearchDatastore bringen, da dort die Zuordnung noch bestehen bleibt.

Viele Grüße
Lukas

Hallo @synesty-Lukas,

okay, dann werde ich den Code anpassen und meine Zugriff auf die Varianten im ersten Schritt abfrühstücken.

Vielleicht solltet ihr mal überlegen, ob man das in der Doku etwas deutliche sagen kann. Ich hatte ja oben einen Ausschnitt erwähnt. Ich verstehe dass so, dass die Daten aus einem Datastore kommen müssen, was ja auch Sinn macht, weil dort ja die Parent-Variant-Zuordnung herkommt. Dass der Zugriff auf die Varianten beim Verwenden von weiteren Mapper verloren geht, lese ich da aber nicht raus.

Gruß
Gustav

2 Likes

Würde folgende Formulierung in einer Hinweisbox es für dich eindeutiger erklären?

Hinweis bei Verwendung von Filter und Mapper in Verbindung mit Relationen

Filter: Der Filter-Step ist der einzige Step, der Relationen für nachfolgende Steps erhält. Das funktioniert hier, weil der Filter die Zeilen des SearchDatastores direkt durchschleift. D.h. Steps nach einem Filter können noch auf die Relationen zugreifen.

Mapper: Der Zugriff auf die Relationen ist nur für den Mapper selbst möglich - sofern das Input-Spreadsheet noch die Relationen hat (SearchDatastore und Filter).

Nach dem Mapper gehen diese Relationen aber verloren. D.h. weitere Steps, die den Output dieses Mappers konsumieren, haben keinen Zugriff mehr auf die Relationen. Das gleiche gilt für alle Steps, die Spreadsheets verarbeiten.

Mit anderen Worten: der Filter ist der einzige Steps, der Relationen erhält. Bei allen anderen Steps, sind die Relationen für nachfolgende Steps nicht mehr verfügbar.

Beispiele:

Step Zugriff auf Relation möglich
SearchDatastore -
Mapper ja
Mapper nein
weiterer Step nein
Step Zugriff auf Relation möglich
SearchDatastore -
Filter ja
Mapper ja
Mapper nein
weiterer Step nein

Wenn ja, dann kommt das noch mit ins Handbuch.

Hallo,

das macht es deutlich klarer, auch die Beispiele verdeutlichen es nochmal gut. Die Info, dass der Zugriff auf die Relationen überhaupt verloren gehen, ist bisher zu kurz gekommen bzw. habe ich überhaupt nicht daraus gelesen.

Gruß
Gustav

1 Like