aVogt
Returning Creator

URLcreator => getStoredUrl(..)

Hallo,

statt dem URLCreator wird "getStoredUrl(..)" empfohlen (UrlCreatorProvider in einem Skript erzeugen).

bisher habe ich verwendet:

resolution = context.getProject().getResolutionByName("ORIGINAL");
uc = (UrlCreator) context.getProperty(GenerateTaskExecutor.CONTEXT_KEY_URLCREATOR);
lang = context.getProject().getMasterLanguage();
url = uc.getUrl(media, lang, resolution, UrlCreator.ABSOLUTE_URL);

neu würde ich es so machen:
url = media.getStoredUrl(lang, resolution);

Mit der neuen Methode bekomme ich "null" zurück. Das ganze läuft in einem Auftrag ab.
Weder media, lang noc resolution sind nicht "null" (zum Test habe ich mir erst die utl über den URLCreator ausgeben lassen und danach die neue Variante).

Was mache ich falsch?
Hat das was mit URL-Einstellungen zu tun? Wir verwenden keine

Oder muss man über URLProperties.getStoredUrl(Media,Language,Resolution) gehen, aber was dann verwenden (altenative URLs werden nicht verwendet).?

Und "...Und das nicht nur für Medien, das geht analog auch für Seitenreferenzen..." (siehe UrlCreatorProvider in einem Skript erzeugen) für eine Page finde ich da nichts (oder hab ich was übersehen?)

Grüße
Andreas

7 Replies
Peter_Jodeleit
Crownpeak employee

Welche URL-Typ ist im Generierungsauftrag eingestellt?

Das Medium muss vorher mindestens einmal generiert worden sein.

Und "...Und das nicht nur für Medien, das geht analog auch für Seitenreferenzen..." (siehe UrlCreatorProvider in einem Skript erzeugen) für eine Page finde ich da nichts (oder hab ich was übersehen?)

Seitenreferenz = PageRef. Die gesuchte Methode ist "geerbt": getStoredUrl(..).

Peter
0 Kudos

> Welche URL-Typ ist im Generierungsauftrag eingestellt?

Default URL

> Das Medium muss vorher mindestens einmal generiert worden sein.

Ich brauche die medium URL für ein PushScript für Exalead cloudview. Das würde nach Ihrer Aussage beduten, dass vor dem PushScript sämtliche Medien n einem vorherigen Script einmal generiert werden müssen? Das würde die Laufzeit erheblich verlängern.

Grüße

Andreas

0 Kudos

> Welche URL-Typ ist im Generierungsauftrag eingestellt?

Default URL

Dieser Typ speichert keine URLs, d.h. die Methode wird bei dir immer "null" liefern. Nur die "SEO"-Varianten speichern URLs.

> Das Medium muss vorher mindestens einmal generiert worden sein.

Ich brauche die medium URL für ein PushScript für Exalead cloudview. Das würde nach Ihrer Aussage beduten, dass vor dem PushScript sämtliche Medien n einem vorherigen Script einmal generiert werden müssen? Das würde die Laufzeit erheblich verlängern.

Die Medien müssen einmal generiert worden sein (mit einem 'passendem' URL-Generator, s.o.), nicht jedesmal.

Ich vermute, es macht keinen Sinn Medien an Exalead zu pushen, die nicht erreichbar sind?

Peter

> Dieser Typ speichert keine URLs, d.h. die Methode wird bei dir immer "null" liefern. Nur die "SEO"-Varianten speichern URLs.

Dann bekomme ich keine URLs und den URLCreator sollte ich nicht benutzen? Wie da weiter?

SEO will ich erst mal nicht einsetzen, da es sich um ein internes Projekt handelt und die unterschiedlichen Links auf das Projekt im Haus "herumgeistern" und wenn die nicht mehr funktionieren ist das Geschrei groß.

> Ich vermute, es macht keinen Sinn Medien an Exalead zu pushen, die nicht erreichbar sind?

Doch, da das pushen nur einmal am Tag (nachts) passiert. Im Script wird auch noch geprüft, ob die Medien eingehende Referenzen haben. Generierung/Veröffentlichung und puschen läuft unabhängig voneinander.

0 Kudos

Durch den Einsatz der SEO-Variante sollten keine externen Links kaputt gehen, solange die Strategie (also bei dir "Default") gleich bleibt.

Wenn das Push-Skript nach der Generierung läuft, kann man auch die Bedingung "url != null" als Marker für "wurde veröffentlicht" heranziehen.

Peter
0 Kudos

Wir wollten eben nicht die Generieung und das pushen zusammen ausführen lassen. Wenn es aber nicht anders geht, müssen wir das wohl tun.

Die URLs scheinen bei Auswahl "Default URLS (SEO)" den gleichen Aufbau wie bei "Default" zu haben.

Aber das generieren gefällt mir nicht wirklich.

0 Kudos

Noch eine Anmerkung:

Wir wollten eben nicht die Generieung und das pushen zusammen ausführen lassen.

Muss auch nicht zwingend "zusammen augeführt werden". Wichtig ist nur, das die Generierung zuerst ausgeführt wird, damit die URL beim "push" bekannt ist.

Peter
0 Kudos