rzdl
Returning Observer

Stored URL von Dataset

Jump to solution

Hallo zusammen,

ich versuche grad aus einem Dataset die URL zu ermitteln. Gibt es hier noch irgendwelche Dinge zu beachten oder funktioniert das bei ContentProjektion nicht bzw anders?

Die URL versuche ich über getStoredUrl der PreviewPageRef zu bekommen.. z.B.:

if(ds.getTableTemplate().getPreviewPageRef() != null){

     String url = ds.getTableTemplate().getPreviewPageRef().getStoredUrl(language, templateSet, ds.getEntity());

}

Bekomme hier leider immer nur null geliefert.

Hat eventuell noch jemand einen Tipp?

Viele Grüße

Daniel

0 Kudos
1 Solution

Accepted Solutions
mbergmann
Crownpeak employee

Hallo Daniel,

ist die preview PageRef denn auch tatsächlich diejenige, die dann zum Generieren benutzt wird?

Ein Datensatz selber hat ja keine URL sondern immer nur die Kombination aus Contentprojektions-PageRef und Datensatz.

Davon dass ihr auch eine UrlFactory mit useRegustry nutzt gehe ich jetz mal aus... 😉

Viele Grüße

Michael

View solution in original post

0 Kudos
6 Replies
mbergmann
Crownpeak employee

Hallo Daniel,

ist die preview PageRef denn auch tatsächlich diejenige, die dann zum Generieren benutzt wird?

Ein Datensatz selber hat ja keine URL sondern immer nur die Kombination aus Contentprojektions-PageRef und Datensatz.

Davon dass ihr auch eine UrlFactory mit useRegustry nutzt gehe ich jetz mal aus... 😉

Viele Grüße

Michael

0 Kudos
rzdl
Returning Observer

Hi Michael,

danke für den Hinweis. Ich habe eben nachgeschaut und in der Modulkonfigration ist tatsächlich <useRegistry>false</useRegistry hinterlegt :smileyshocked:

Muss ich dann also die UrlFactory für die Vorschauseite bemühen und als PageParams das Entity mitgeben?

Viele Grüße

Daniel

0 Kudos
mbergmann
Crownpeak employee

Hallo Daniel,

naja, wenn ihr gar keine stored URLs nutzt, kann man natürlich auch keine abfragen... Oder wird das useRegistry evtl. im Rahmen der Generierungsaufträge überschrieben? Wobei es mir danach nicht aussieht, solange die übrigen Voraussetzungen erfüllt sind (insb. dass wirklich die Vorschauseite zur Generierung benutzt wird und keine rein "technische" Redakteuers-Seite ist).

An welcher Stelle und zu welchem Zweck brauchst Du denn diese URL? Und welche UrlFactory nutzt ihr?

Man muss da ein wenig aufpassen. Streng genommen muss - je nach UrlFactory - die von der Factory "einzeln" ermittelte URL nicht mit der im Rahmen der Generierung erzeugten übereinstimmen, da im Rahmen der Generierung ja potenziell Duplikate bzgl. der aktuellen Generierung "aufgelöst" werden. Diesen Mechanismus gibt es bei einer "Einzelabfrage" nicht. Hintergrund ist, dass FS bei der Generierung eben "außen herum" noch ein bisschen was tut - vereinfacht könnte man sagen dass die UrlFactory eher die "gewünschte" URL liefert die (zumindest theoretisch) von FS noch (zur Duplikatsvermeidung) abgeändert werden kann.

Vielleicht erzählst Du mal ein wenig konkreter um was es genau geht.

Viele Grüße

Michael

0 Kudos
rzdl
Returning Observer

Hi Michael,

es geht im den Export der Datenquellen aus dem Altsystem. Da würden wir gerne bei dem Exportprozess die alten URLs mitnehmen. UrlFactory ist eine Eigenentwicklung.

Naja ohne Registry muss ich dann ja den Weg über die UrlFactory gehen und habe dann das Risiko der Duplikate.

Danke Dir und viele Grüße

Daniel

0 Kudos
mbergmann
Crownpeak employee

Hallo Daniel,

das verstehe ich ehrlich gesagt nicht so ganz. Wenn ihr eh keine URLs speichert, wozu wollt ihr sie „mitnehmen“? Reicht es nicht, einfach dieselbe UrlFactory zu nutzen?

Ihr könntet euch natürlich auch einfach eine „technische Seite“ bauen, die per CMS_REF(...) die Links rendert und das in ein JSON oder XML oder etwas ähnliches rendert.

Oder ihr lasst die Generieeung eben einmal mit useRegistry=true laufen.

Ist natürlich ohne das Projekt zu kennen nicht so einfach, eine Empfehlung zu geben was der beste Weg ist weil es da diverse Möglichkeiten gibt 😉

Viele Grüße

Michael

0 Kudos
rzdl
Returning Observer

Hi Michael,

ich bin ja zuerst davon ausgangen das wir dort die Registry nutzen und ich storedUrl verwenden kann. Das geht ja so leider nicht und erklärt auch warum getStoredUrl null liefert 😉

Ich werde dann die URL Factory für das jeweilige Objekt beim Exportieren verwenden.

Schönen Abend!

Daniel

0 Kudos