Search the FirstSpirit Knowledge Base
Hallo zusammen,
ich stehe gerade vor der Herausforderung ein Modul (eigener ScheduleTask) zu schreiben, welches Daten aus einer Deltagenerierung ermittelt und diese verarbeitet.
Für die Delta-Generierung habe ich mich an diesen Blog-Post inkl. Kommentaren orientiert: DeltaGeneration - Get the generated or deleted Files
Hier werden die Informationen über die gelöschten Seiten in den ScheduleContext geschrieben und nach der Generierung von dort wieder ausgelesen.
In meinem eigenen ScheduleTaskExecutor habe ich die Methode public void execute(ScheduleTaskControl scheduleTaskControl, ConfigData config, ScheduleTaskExecutionContext scheduleTaskExecutionContext).
Wie komme ich von dort aus auf den ScheduleContext? Der ScheduleTaskExecutionContext ist leider keine Subklasse von ScheduleContext.
Es gibt den LegacySchedulingAgent, der mir über getOriginalContext() den ScheduleContext gibt. Die Klasse ist aber nicht in der Doku vorhanden und auch der Name Legacy deutet darauf hin, dass es evtl. nicht die beste Idee ist diesen zu verwenden.
Wie bekomme ich den ScheduleContext am besten in meinem eigenen ScheduleTask? - Das muss ja irgendwie gehen... 🙂
Beste Grüße
Sandro
Hallo @bIT_sosswald hast Du mittlerweile eine andere Lösung gefunden? Ich habe gerade auch das Problem 😞
Hi @RZoller,
da hier keine Antwort kam und ich keine andere Möglichkeit gefunden habe, habe ich damals wohl oder übel die mittlerweile als @Internal gekennzeichnete Klasse LegacySchedulingAgent verwendet, um mir damit den originalen Context zu holen. - Funktioniert seit dem stabil. 😉
Aber eine Frage an Crownpeak wäre es trotzdem Wert, wie man an den Schedule-Kontext kommt, wenn man einen eigenen Schedule-Task schreibt. (Den Context zu haben ist für mich eigentlich eine Grundvoraussetzung...)
Grüße
Sandro
Ja, sehe ich genauso. Ich muss an das Root-Verzeichnis der Generierung ran kommen, damit ich an die Files der Generierung zur Weiterverarbeitung kommen kann.
Hi @RZoller,
bist du hier schon weiter gekommen bzw. hast eine Aussage von Crownpeak?
Ich frage parallel einmal beim Helpdesk an, da es so scheint, als wäre der LegacySchedulingAgent nun entfernt worden. Was sehr unschön ist.
Wir haben für unser Problem jetzt eine andere Lösung gefunden. Unser Code, der auf dem `LegacySchedulingAgent` basierte sah so aus:
String generationPathOld = scheduleTaskExecutionContext
.requireSpecialist(LegacySchedulingAgent.TYPE)
.getOriginalContext()
.getPath();
Wir verwenden jetzt:
String generationPath = scheduleTaskExecutionContext
.requireSpecialist(JobAgent.TYPE)
.getFolderPath();