News mit Ablaufdatum
Author: clauzer
Publication Date: 5/20/2015 9:21
Hallo Zusammen,
ich stehe vor dem Problem, wie eine News mit Ablaufdatum vollständig aus dem Deployment und der Suche entfernt werden kann.
Die Pressenews werden über eine Datenquelle erstellt und können über das Formular mit einem Ablaufdatum versehen werden.
Folgende Abfrage ist dafür in der Strukturverwaltung im Reiter "Daten" hinterlegt:
<QUERY entityType="News">
<FILTERPARAM parameter="Dezernat / Abteilung" datatype="java.lang.String"/>
<AND>
<EQ attribute="news_category.title" parameter="Dezernat / Abteilung"/>
<LTE attribute="date" datatype="de.espirit.common.Now" value="1430406262941"/>
<OR>
<IS_NULL attribute="expiration_date"/>
<GTE attribute="expiration_date" datatype="de.espirit.common.Now" value="1430406262941"/>
</OR>
</AND>
</QUERY>
Die Abfrage funktioniert grundsätzlich, die News wird nach Ablauf des Datums nicht mehr im System angezeigt. Die News-Detailseite kann jedoch in der genenierten Ansicht noch über den Direktlink aufgerufen werden und wird auch noch in der Suche gefunden. Wie kann dies verhindert werden, ohne dass ich den Newseintrag ganz lösche?
Danke für Eure Hilfe und viele Grüße
Claudia Zernack
Tags: abfrage, ablaufdatum, datenquellen, News
-
Author: der_sk - 5/20/2015 9:36
Hallo Claudia,
das ist stark vom System bzw. vom Projekt abhängig. Als erste Frage: Ist denn in der Content-Projektion der gleiche Filter hinterlegt?
Viele Grüße
Sascha
0 -
Author: pavone - 6/9/2015 6:34
Hallo Claudia,
wie ist der Status deines Problems? Falls du weiterhin Unterstützung benötigst, solltest du Saschas Frage beantworten, damit deine Anforderung genau nachvollzogen werden kann. Solltest du zwischenzeitlich eine eigene Lösung gefunden haben, wäre es super, wenn du sie hier bereitstellen würdest.
Viele Grüße
Tim
0 -
Author: clauzer - 6/9/2015 16:15
Hallo Sascha,
sorry für die späte Rückmeldung. Scheinbar funktioniert die E-Mail-Benachrichtigung über neue Antworten bei mir nicht.
Der Filter ist ausschließlich auf der Strukturverwaltung hinterlegt. Die News-Übersicht enthält keine Content-Selectabfrage, sondern wird über die Fuktion PageGroup gesteuert.
Viele Grüße
Claudia
0 -
Author: der_sk - 6/9/2015 16:29
Dann vermute ich mal, dass die News nach Ablauf nicht mehr generiert - aber eben nicht gelöscht wird.
Meistens passiert sowas erst bei einer Vollgenerierung.
Kannst du das einmal nachvollziehen?
Was für Seiten generiert ihr bei den Pressemeldungen? Statisches HTML oder eine dynamische Sprache?
0 -
Author: clauzer - 6/10/2015 11:13
Wir generieren im Intranet jsp-Seiten sowohl über Teil- als auch Volldeployment. Dies ist so konfiguriert, dass nicht mehr referenzierte Seiten nach der Generierung auch gelöscht werden. Die News-Detailseiten werden nach Ablauf jedoch weiterhin publizeirt und erhalten einen aktuellen Zeitstempel.
0 -
Author: der_sk - 6/10/2015 11:50
Ich hatte überlesen, dass es in der Übersicht nicht mehr auftaucht. Die Übersicht ist vermutlich dynamisch? Die Suche ist welche Technologie?
Versuche mal in einem Testsystem einen Skript-Task *vor* der Generierung einzufügen und zwar mit nachfolgendem Inhalt.
Eventuell muss in den Eigenschaften noch eine eigene Verbindung (als ProjektAdmin) eingetragen werden, da bin ich mir gerade nicht sicher.
Wenn dass das Problem behebt, dann liegt es daran, dass für FirstSpirit zur Generierungszeit nicht der wahre Zeitpunkt zu diesem Zeitpunkt maßgeblich ist, sondern der Zeitpunkt der letzten Änderung im Projekt. Das Skript setzt einfach den aktuellen Zeitpunkt als letzten Änderungszeitpunkt, womit die Abfrage dann funktioniert.
//!Beanshell
context.getProject().createTaggedRevision("Generation","needed for time-based database queries");
0 -
Author: clauzer - 6/10/2015 12:36
Dieses Skript läuft bereits vor jeder Generierung:
// Projektdatum neu setzen (für zeitgesteuerte Deployments !!!)
// Fix Rücksetzen Auftragsstart
context.getProject().createTaggedRevision("Generation","needed for external database content");
context.setStartTime(new Date());
Es geht auch nicht zum genaues zeitgesteuertes Ausblenden der Seite. Die Seiten werden auch Tage später noch generiert.
Die Suchtechnologie ist eigentlich nicht relevant. Ich gehe davon aus, dass der Eintrag nicht mehr gefunden wird, sobald die News-Seite aus der Datenquelle nicht mehr generiert wird.
Gibt es noch eine andere Fehlerquelle? Wäre es hilfreich, die Templates zur Verfügung zu stellen?
0 -
Author: der_sk - 6/10/2015 12:44
Claudia Zernack schrieb:
Dieses Skript läuft bereits vor jeder Generierung:
// Projektdatum neu setzen (für zeitgesteuerte Deployments !!!)
// Fix Rücksetzen Auftragsstart
context.getProject().createTaggedRevision("Generation","needed for external database content");
context.setStartTime(new Date());
Es geht auch nicht zum genaues zeitgesteuertes Ausblenden der Seite. Die Seiten werden auch Tage später noch generiert.
Die Suchtechnologie ist eigentlich nicht relevant. Ich gehe davon aus, dass der Eintrag nicht mehr gefunden wird, sobald die News-Seite aus der Datenquelle nicht mehr generiert wird.
Gibt es noch eine andere Fehlerquelle? Wäre es hilfreich, die Templates zur Verfügung zu stellen?
Achso. Ja, Templates helfen immer. Die Grundannahme für die Suche gilt allerdings nicht für jede Suchtechnologie, aber das kann man erstmal hintenanstellen, wahrscheinlich ist es wirklich nur ein Symptom.
Andere Fehlerquellen gibt es natürlich. Generiert werden die abgelaufenen News vermutlich auch im Volldeployment, oder?
Werden andere Seiten gelöscht? Wie wird auf die Server übertragen?
0 -
Author: clauzer - 6/10/2015 13:42
Die Seiten werden vom Generierungsserver per RSYNC auf den Webserver übertragen.
Andere Seiten werden auf dem Webserver gelöscht, wenn sie aus der Struktur entfernt werden.
Anbei füge ich noch die Templates bei:
Newsübersicht mit Filter
Newsdetailseite
0 -
Author: der_sk - 6/10/2015 15:49
Können Sie vielleicht die beiden Seitenreferenzen (Übersicht + Details) einmal hochladen?
0 -
Author: clauzer - 6/10/2015 16:36
Anbei die gewünschten Seiten.
ich habe zwei Detailseiten eingefügt, nr. _5952 ist referenziert, _6081 nicht.
0 -
Author: der_sk - 6/12/2015 9:23
Danke, aber ich meinte eigentlich die Strukturseitenreferenzen per Export aus FS, nicht die fertig generierten Dateien.
0 -
Author: clauzer - 6/12/2015 9:49
Anbei der Export aus der Strukturverwaltung.
0 -
Author: der_sk - 6/12/2015 10:00
Okay, also ich sehe nun folgendes:
- Eine Übersichtsseite mit Filter (Filter-ID: 102863) - ich vermute, dass das ein Filter ist, der nur noch Datum filtert, aber nicht nach Dezernat
- Mehrere Dezernatsseiten mit Filter (Filter-ID: 102864) - Filter von oben, vermutlich auch so funktionierend wie sie sollen
- Eine Content-Projektion als Detailseite (ID der PageRef: 103164) - welche nicht richtig funktioniert. Hier fällt, auf, dass gar kein Filter hinterlegt ist. Dementsprechend werden pauschal auch alle Datensätze generiert. Kannst Du hier einmal den Filter mit der ID 102863 hinterlegen? Wenn, wie oben vermutet, hier ein Filter hinterlegt ist, der nur das Datum filtert, sollte das Problem damit gelöst sein.
0 -
Author: clauzer - 6/12/2015 12:02
Ja, das war das Problem! Vielen Dank für die Hilfe unter Unterstützung!!!
Viele Grüße
Claudia
0 -
Author: gpadesso - 1/4/2016 17:33
Sascha Körver schrieb:
Ich hatte überlesen, dass es in der Übersicht nicht mehr auftaucht. Die Übersicht ist vermutlich dynamisch? Die Suche ist welche Technologie?
Versuche mal in einem Testsystem einen Skript-Task *vor* der Generierung einzufügen und zwar mit nachfolgendem Inhalt.
Eventuell muss in den Eigenschaften noch eine eigene Verbindung (als ProjektAdmin) eingetragen werden, da bin ich mir gerade nicht sicher.
Wenn dass das Problem behebt, dann liegt es daran, dass für FirstSpirit zur Generierungszeit nicht der wahre Zeitpunkt zu diesem Zeitpunkt maßgeblich ist, sondern der Zeitpunkt der letzten Änderung im Projekt. Das Skript setzt einfach den aktuellen Zeitpunkt als letzten Änderungszeitpunkt, womit die Abfrage dann funktioniert.
//!Beanshell
context.getProject().createTaggedRevision("Generation","needed for time-based database queries");
Hallo,
zwei kleine Hinweise hierzu:
- createTaggedRevision(String tag, String comment) ist laut API deprecated, stattdessen sollte createTag(String tag, String comment, Map<String, String> properties) verwendet werden, wobei properties NULL sein kann
- Für ein automatisches Deployment ist zwingend die bereits erwähnte Zeile context.setStartTime(new Date()); erforderlich, da die neu erstellte Revision sonst scheinbar nicht berücksichtigt wird.
Beste Grüße
Georg
0
Please sign in to leave a comment.
Comments
16 comments