Search the FirstSpirit Knowledge Base
Hallo Community,
ich entwickle zur Zeit ein Auftrags-Script, welches Datenquellen als CSV exportiert und per FTP auf einen Server lädt. Momentan bereitet mir die Ermittlung von URLs Kopfzerbrechen.
Die Datenquelle hat bspw. ein DOM-Feld für ein Bild, dessen URL ich übermitteln muss. Dafür brauche ich offenbar einen UrlCreator, der einen GenerationContext benötigt. Ich habe in meinem Script aber nur den ScheduleContext zu Verfügung.
Daher die Frage: wie ist der einfachste Weg, an einen GenerationContext zu kommen? Oder gibt es eine andere Möglichkeit, die URL zu ermitteln?
Vielen Dank!
Hallo Arne,
mit
context.getProperty(GenerateTaskExecutor.CONTEXT_KEY_URLCREATOR);
kommst Du an den UrlCreator (auch wenn Du einen ScheduleCotext hast).
Grüße
Andreas
Hallo Arne,
mit
context.getProperty(GenerateTaskExecutor.CONTEXT_KEY_URLCREATOR);
kommst Du an den UrlCreator (auch wenn Du einen ScheduleCotext hast).
Grüße
Andreas
Hallo Andreas,
klingt gut, aber leider gibt mir das null zurück.
Ich habe mir mit context.getProperties() mal angeschaut, was ich da zur Verfügung habe und das sind nur "path" sowie "#securityManager", kein "#urlCreator".
Hallo Arne,
eigenartiger Weise bei mir auch. :smileyconfused: Ich verwende o.g. Erzeugung in einer eigenen Klasse und da verwende ich den ScheduleContext ... Da muss ich mal nachforschen, ob das in der Klasse auch nicht geht (ich bekomme aber keine Fehlermeldung).
Ansonsten kannst Du Dir die URL auch etwas umständlicher zusammenbauen (das break steht nur zur Sicherheit drin, falls das Rootverzeichnis mal anders benannt wird)
String retString = "";
String extension = medium.getFile(mLang).getExtension();
if(medium.getParent().getClass().toString().indexOf("MediaFolder")>0 ) {
IDProvider mrf = medium.getParent();
retString = "" + mrf.getUid();
int i = 0;
while ( !retString.equals("root")) {
if(mrf.getParent().getClass().toString().indexOf("MediaFolder")>0 ) {
mrf = mrf.getParent();
retString = mrf.getUid() + "/" +retString;
} else {
break;
}
i++;
if(i==7) break;
}
context.logInfo("\t\tPfad: "+ retString);
context.logInfo("\t\tkompletter Pfad: /media/"+ retString + "/"+medium.getUid() + "."+extension);
}
Hallo Arne,
wiedermal die typische "Falle":
Bevor das Script im Auftrag ausgeführt wird, lasse eine Teilgenerierung einer beliebigen Seite ausführen.
Dann klappt es wie oben beschrieben.
Grüße
Andreas
Hallo Andreas,
super, so klappt es! Vielen Dank!
Gruß,
Arne