UrlCreator / GenerationContext im Auftrags-Skript (ScheduleContext)
Author: ACordes
Publication Date: 9/28/2012 12:34
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!
Tags: auftrags-script, context, script, url, urlcreator
-
Author: aVogt - 9/28/2012 13:06
Hallo Arne,
mit
context.getProperty(GenerateTaskExecutor.CONTEXT_KEY_URLCREATOR);
kommst Du an den UrlCreator (auch wenn Du einen ScheduleCotext hast).
Grüße
Andreas
0 -
Author: ACordes - 9/28/2012 13:52
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".
0 -
Author: aVogt - 9/28/2012 14:30
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);
}0 -
Author: aVogt - 9/28/2012 15:13
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
0 -
Author: ACordes - 10/1/2012 9:19
Hallo Andreas,
super, so klappt es! Vielen Dank!
Gruß,
Arne
0
Vous devez vous connecter pour laisser un commentaire.
Commentaires
5 commentaires