00schmidt
I'm new here

GenerationContext und Skript mit Datensatzmodifikation

Jump to solution

Folgender Hintergrund. Eine zentrale Datenquelle soll Dokumente (aus den Mediastores verschiedener Projekte) mit File-Reference und Metadaten enthalten, die dann mittels Integration in den Projekten übergreifend zur Verfügung gestellt werden. Es müsste jeweils ein Link in das Ursprungsprojekt zur verfügung gestellt werden. Dieser Link kann weder bei der Erstellung des Datensatzes (kein GenerationContext) noch bei der Filterung mittels Integration erstellt werden (ebenfalls kein GenerationContext). Die Idee ist, im Rahmen einer Generierung per Skript die URLs zu erzeugen und in die Datenquelle zu übernehmen. Die Übergabe des GenerationContext an das eigentliche Skript erfolgt mittels

     $CMS_SET(void, #global.scheduleContext.setProperty("generation_context",#global.generationContext))$   

innerhalb einer Teilgenerierung.

Nun ist aber die Session nicht schreibbar (UnsupportedOperationException auf Operationen wie commit(). Ähnliches wird ja bereits in https://community.e-spirit.com/message/2241 und https://community.e-spirit.com/message/2250 festgestellt. Grund ist, dass während der Generierung auf einen Revisionsstand zugegriffen wird und nichts mehr schreibbar sein soll.

Welche Optionen gibt es?

- kann man sich ohne GenerationContext einen entsprechenden UrlCreator erzeugen?

- kann man einen GenerationContext bekommen und trotzdem eine schreibbare Session erhalten?

- andere?

Grüße aus Hamburg

Michael

0 Kudos
11 Replies

Danke. So funktioniert das. Vielen Dank nochmal.

M

0 Kudos

Und doch noch eine Rückfrage. Wenn ich in meinem Skript direkt auf

    userService

zugreife, bekomme ich das gleiche Objekt wie bei

    connection.getProjectById(context.getProject().getId()).getUserService();

Ist das zu verallgemeinern?

Gibt es eine Dokumentation, die die Objekte benennt/beschreibt, die in den jeweiligen Contexts enthalten sind?

0 Kudos