t_thalmann
Returning Observer

Seitenreferenzen finden, deren Seiten einen Absatz mit Contentprojektion enthalten

Wir sind dabei, über ein Skript eine Liste mit Knoten, deren Inhalt sich geändert hat, zu erstellen, um genau diese im folgenden Generierungsauftrag zu generieren.

Die DeltaGeneration-Klasse hilft uns nicht weiter, weil auf Änderungen in Datenquellen überhaupt nicht reagiert wird, z. B. im folgenden häufig vorkommenden Szenario:

Ein News-Datensatz ist neu erstellt worden: dadurch ändern sich in der HTML-Ausgabe sowohl die Seite mit der News-Liste (Seite enthält Absatz mit Content-Projektion) als auch die News-Detailseite (Seitenreferenz enthält Query).

Die Detailseite finden wir recht einfach, indem wir über den Seitenbaum in der Struktur iterieren und jede Seitenreferenz auf Vorhandensein einer Query überprüfen.

Wie finden wir auf dem schnellsten Weg heraus, dass auch die Seitenreferenz mit der News-Listenansicht neu generiert werden muss?

Der umständliche Weg wäre: von der Seitenreferenz (PageRef) sich die Seite (Page) zurückgeben lassen, davon alle Inhaltsbereiche, davon alle Absätze, und schließlich deren Templates jeweils auf Vorhandensein einer Content-Projektion im Eingabeformular zu überprüfen. Das erscheint uns reichlich umständlich und ressourcenraubend.

Viele Grüße aus Darmstadt

Tobias Thalmann

0 Kudos
7 Replies
jobrun
Crownpeak employee

Hallo,

ich kann die beschriebene Problematik leider nicht reproduzieren.

Bei einem Standard-Delta Deployment, wie in diesem Blogposting (DeltaGeneration - What is that and why I might need it?), beschrieben werden einzelne Datensätze einer Content-Projektion bei Änderung  neu generiert auch wenn die dazu gehörige Seite nicht geändert wurde.

Können Sie mir vielleicht einen Einblick in ihre Delta-Deployment-Konfiguration geben?

Mit freundlichen Grüßen

Johannes

0 Kudos

Hallo Tobias,

benötigst Du noch weitere Hilfe oder hat Dir Johannes' Antwort bereits geholfen? In diesem Fall wäre es super, wenn du seine Antwort als "richtige Antwort" markierst.

Solltest Du zwischenzeitlich eine eigene Lösung gefunden haben, wäre es nett, wenn Du diese hier bereitstellst.

Viele Grüße

Michaela

0 Kudos

Hallo Michaela,

ich hatte das Posting zwischenzeitlich aus den Augen verloren, weil es so lange unbeantwortet geblieben ist und wir in der Zwischenzeit selbst mit Hilfe von Skripten geänderte Knoten ermitteln. Die Antwort von Johannes hat die zugrunde liegende Frage noch nicht beantwortet. Die DeltaGeneration findet geänderte Seiten. Wenn sich Datensätze im ContentStore ändern, und sich diese Änderungen auf eine Inhaltsseite mit Contentprojektion auswirken, z. B. wenn eine neue News erstellt worden ist und diese über die QUERY in der Contentprojekt in die Ergebnismenge gehört, wird das nicht als Änderung erfasst - das haben wir getestet, da die Inhaltsseite nicht geändert worden ist.

Hinzu kommt z. B. folgender Fall: eine News mit einem Ablaufdatum rutscht aus der Ergebnismenge der QUERY, weil das Ablaufdatum erreicht worden ist - in diesem Fall ändert sich nicht einmal der Datensatz. D. h. wir kommen nicht umhin, Seiten mit Contentprojektion wirklich immer zu generieren. Wir suchen diese Seiten jetzt einmal täglich mit Hilfe eines Skriptes.

Viele Grüße

Tobias

0 Kudos

Hallo zusammen,

ich kann das Verhalten von Herrn Thalmann bestätigen.

Eine News die neu erstellt oder geändert wurde, wird zwar für die Detailseiten neu generiert aber eine Seite die einen Absatz mit Content-Projektion enthält wird nicht mit generiert.

Geht das einfach nicht?

Server  FirstSpirit 5.0.510.62658

Viele Grüße Wiegele

0 Kudos

Aus meiner Erinnerung heraus gab es in dem Umfeld Probleme, die mit dem Release 5.1R3 behoben wurden. Details dazu sowie eine aktuelle Version bekommst du bei unserem Helpdesk.

Peter
0 Kudos

Hallo Herr Jodeleit,

ich muss meine Anfrage präzisieren.

Erkennt die DeltaGenerierung auch Seiten, die ihre Daten aus einer CMS_FUNCTION bekommen?

<CMS_HEADER>

    <CMS_FUNCTION name="contentSelect" resultname="frCorporateNews">

        <CMS_PARAM  name="schema" value="FS_Tables" />

        <CMS_VALUE_PARAM name="now" value="#global.now" />

        <QUERY entityType="Company_News">

              <FILTERPARAM parameter="now" datatype="java.util.Date" value="1143758280000" />

                <AND>

                    <LTE attribute="publication_date" parameter="now" />

                    <LIKE attribute="publication_flag" datatype="java.lang.String" value="true"/>

                </AND>

                <ORDERCRITERIA attribute="news_date" descending="1" />

        </QUERY>

    </CMS_FUNCTION>

</CMS_HEADER>

Viele Grüße Wiegele

0 Kudos

Nein, das tut sie nicht.

Peter
0 Kudos