clauzer
I'm new here

News mit Ablaufdatum

Jump to solution

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

0 Kudos
16 Replies

Können Sie vielleicht die beiden Seitenreferenzen (Übersicht + Details) einmal hochladen?

0 Kudos

Anbei die gewünschten Seiten.

ich habe zwei Detailseiten eingefügt, nr. _5952 ist referenziert, _6081 nicht.

0 Kudos

Danke, aber ich meinte eigentlich die Strukturseitenreferenzen per Export aus FS, nicht die fertig generierten Dateien.

0 Kudos

Anbei der Export aus der Strukturverwaltung.

0 Kudos

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 Kudos

Ja, das war das Problem! Vielen Dank für die Hilfe unter Unterstützung!!!

Viele Grüße

Claudia

0 Kudos

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:

  1. 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
  2. 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 Kudos