bIT_sosswald
Returning Responder

Möglichkeit eine Liste aller erfolgreich generierter Seiten zu erstellen (FS4.2 / FS5)

Jump to solution

Hallo zusammen und noch ein frohes und erfolgreiches neues Jahr 2014!

In einem Modul, welches auf dem Server direkt nach einem Generierungstask ausgeführt werden soll, möchte ich Informationen über bzw. von allen erfolgreich generierten Seiten auslesen. (Z.B. Inhalte bestimmter Felder)

Nach Abschluss der Generierung gibt der GenerateTaskExecutor folgende Meldung ins Logfile aus:

INFO  08.01.2014 10:40:53.591 {pID=11,uID=0,seID=5833} (de.espirit.firstspirit.server.scheduler.GenerateTaskExecutor): 540 pages produced, ~26 ms per page

Es sieht also so aus, als ob der GenerateTaskExecutor also Informationen über die generierten Seiten enthält. (Zumindest hat er ja die Anzahl der generierten Seiten.)

Leider ist der GenerateTaskExecutor nicht teil der freigegebenen API, kann also daher von mir nicht verwendet werden.

Gibt es eine Möglichkeit nach einer Generierung eine Liste an Referenznamen, IDs oder direkt PageRef-Objekten aller erfolgreich generierter Seiten zu erhalten?

Eine alternative Lösungsmöglichkeit, die mir eingefallen ist, ist dass man sich den mit Hilfe des verwendeten GenerateTask den Typ des Tasks und die StartNodes geben lassen kann. Mit diesen Informationen könnte man dann über die jeweiligen Kindelemente, beginnend bei den Stardnodes bzw. bei einer Vollgenerierung über alle Seiten, iterieren und von den freigegebenen Seiten die benötigten Informationen beziehen.

Schöner wäre jedoch natürlich eine Möglichkeit direkt über die API, einen Context, etc. eine Liste der generierten Seiten zu erhalten.

Über einen hilfreichen Tipp wäre ich sehr dankbar. 🙂

Beste Grüße

Sandro

0 Kudos
1 Solution

Accepted Solutions
bIT_sosswald
Returning Responder

Hallo zusammen,

Peter Jodeleit hat mir in meinem Feature-Request zu diesem Thema die erlösende Antwort gegeben.

https://community.e-spirit.com/ideas/1397#comment-2583

Zumindest bei einer Delta-Generierung scheinen die StartNodes alle betroffenen Seiten zu enthalten und nicht nur den Knoten der als Startpunkt der Generierung dient.

Somit kann man sich bei einer Delta-Generierung aus dem ScheduleContext den GenerateTask holen und aus diesem mit Hilfe von getStartNodes() die StartNodes auslesen. Die dabei erhaltene Liste enthält alle benötigten Infos zu von der Generierung betroffenen PageRefs.

Das hier eine Delta-Generierung verwendet wird ist für meinen Anwendungsfall nicht hinderlich, sondern sogar von Vorteil.

Ein großes Dankeschön an dieser Setelle von meiner Seite!

Grüße

Sandro

View solution in original post

0 Kudos
5 Replies
bIT_sosswald
Returning Responder

Hallo,

gibt es für eine normale Voll- oder Teilgenerierung keine Möglichkeit an eine Liste der betroffenen bzw. erfolgreich generierten und vorallem auch gelöschten Seiten zu kommen?

Bei einer Delta-Generierung in FS5 ist dies ja wie in diesem Blogeintrag beschrieben möglich.

Vorallem  sind für mich auch die gelöschten Seiten interessant.

Beste Grüße

Sandro

0 Kudos

Hallo Sandro,

meiner Meinung nach ist das über die offizielle API nicht möglich. Du kannst dafür aber eine Feature Request erstellen: https://community.e-spirit.com/community/feedback

Gruß

Thorsten

Hallo Thorsten,

danke dir für die Info, auch wenn mich eine andere Antwort glücklicher gemacht hätte. Smiley Wink


Dann muss ich wohl den Umweg gehen und mir über den Typ Generierungstask (Voll- oder Teilgenerierung) die jeweiligen Startknoten holen und dann unterhalb dieser Startknoten alle freigegebenen Kindelemente.

Gelöschte Seiten muss ich dann wohl oder übel mit einem Abgleich zur Datenbasis des letzten Modullaufs ermitteln.

Grüße

Sandro

0 Kudos

Alternativ könntest du auch in den Seitenvorlagen ein Skript aufrufen, dass die notwendigen Informationen in eine Datei schreibt. Oder du schreibst die Informationen in eine Datenstruktur innerhalb des ScheduleEntries und erzeugst dann in einem nachgelagertem Task eine Datei.

0 Kudos
bIT_sosswald
Returning Responder

Hallo zusammen,

Peter Jodeleit hat mir in meinem Feature-Request zu diesem Thema die erlösende Antwort gegeben.

https://community.e-spirit.com/ideas/1397#comment-2583

Zumindest bei einer Delta-Generierung scheinen die StartNodes alle betroffenen Seiten zu enthalten und nicht nur den Knoten der als Startpunkt der Generierung dient.

Somit kann man sich bei einer Delta-Generierung aus dem ScheduleContext den GenerateTask holen und aus diesem mit Hilfe von getStartNodes() die StartNodes auslesen. Die dabei erhaltene Liste enthält alle benötigten Infos zu von der Generierung betroffenen PageRefs.

Das hier eine Delta-Generierung verwendet wird ist für meinen Anwendungsfall nicht hinderlich, sondern sogar von Vorteil.

Ein großes Dankeschön an dieser Setelle von meiner Seite!

Grüße

Sandro

0 Kudos