- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Executable/Modul: Gespeicherte URLs im gesamten Site-Store zurücksetzen
Hallo Community,
ich möchte in einem Executable alle gespeicherten URLs des Site-Stores (alle Elemente) zurücksetzen. Das Executable ist als Skript-Aktion in einem Auftrag eingebunden und wird vor den Generierungs-Tasks ausgeführt. Hier ein Auszug aus dem Quellcode:
public class ResetStoredUrlsExecutable implements Executable {
@Override
public Object execute(Map parameters) throws ExecutionException {
Object contextParam = parameters.get("context");
...
ScheduleContext context = (ScheduleContext) contextParam;
SiteStoreRoot siteStore = (SiteStoreRoot) context.requestSpecialist(StoreAgent.TYPE).getStore(Store.Type.SITESTORE, false);
GlobalStoreRoot globalStore = (GlobalStoreRoot) context.requestSpecialist(StoreAgent.TYPE).getStore(Store.Type.GLOBALSTORE, false);
URLProperties urlProperties = globalStore.getChildren(URLProperties.class).getFirst();
urlProperties.setLock(true, false);
int resettedUrlsCount = urlProperties.resetStoredUrls(siteStore);
context.logInfo(resettedUrlsCount + " stored URL(s) resetted of SiteStoreRoot!");
urlProperties.setLock(false, false);
}
}
Leider wirkt sich der Reset nicht aus, d.h. die gespeicherten URLs werden nicht zurückgesetzt. Wenn ich diesen Code in einer Bean-Shell ausführe, funktioniert er.
Hat jemand von euch eine Idee, an was das liegen könnte?
Schon jetzt vielen herzlichen Dank für eure Unterstützung.
Viele Grüße aus Nürnberg,
Michi
- Labels:
-
Developers
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo zusammen,
die Notwendigkeit für das oben erwähnte Java-Executable ist aufgrund eines Tipps des Help-Desks entfallen. Vor dem Generierungs-Task fügten wir einen Skrip-Task mit folgendem Inhalt ein:
import java.util.HashMap;
HashMap params = new HashMap();
params.put("removedeleted", "true");
params.put("usewelcomefilenames", "false");
context.setProperty("#urlCreatorSettings", params);
Hierdurch wird sichergestellt, dass die "stored URLs" von gelöschten Seitenreferenzen im Rahmen der anstehenden Generierung zurückgesetzt werden. Infolgessen werden etwaige URL-Konflikte verhindert (eine gelöschte Seitenreferenz verhindert nicht mehr die Vergabe des Dateinamens "index.html" im Falle einer neu angelegten Seitenreferenz im gleichen Verzeichnis).
Weitere Infos finden sich in der ODFS-Hilfe: .../help/odfs/Weiterführende-Themen/Generierung/Advanced-URLs/Konfiguration/#text_bild_1
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Falls irgendjemand, außer mir, auch mal wieder das Problem mit gespeicherten Urls haben sollte, wenn man folgenden Code verwendet geht es:
urlProperties.setLock(true, false);
int resettedUrlsCount = urlProperties.resetStoredUrls(siteStore);
context.logInfo(resettedUrlsCount + " stored URL(s) resetted of SiteStoreRoot!");
urlProperties.save("Urls reset");
urlProperties.setLock(false, false);
Die UrlProperties sind ein StoreElement und müssen gespeichert werden, damit die Änderungen ziehen.

