Search the FirstSpirit Knowledge Base
Hallo,
bei uns wird eine Auswertung von Änderungen in Datenquellen gewünscht.
Dabei sollen nur die freigegebenen Änderungen, also keine Zwischenspeicherungen berücksichtigt werden.
Über session.getHistory(ent.getKeyValue()) komme ich an die historischen Elemente. Damit natürlich auch die Arebitsversionen.
Im SiteArchitekt (Versionshistorie eines Datensatzes) wird z.B. der Redakteur, Kommentar und Freigabe angezeigt. Wie komme ich an die Felder ran?
Über den Kommentar (bestimmte Arbeitsablauf) kann ich dann ermitteln ob die Revision freigegeben wurde.
Danke und Grüße
Andreas
.
Hallo Andreas,
schon mal versucht mit den Datasets statt den Entities zu arbeiten?
Wenn du dir über die Tabellenvorlage oder die Datenquelle den Datensatz holst hast du ja einen normalen HistoryProvider mit all seinen Funktionen und den üblichen Revision-Objekten (mit den von dir angesprochenen Feldern). Auf den Datensätzen kannst du auch den ReleaseState abfragen und dort nur die freigegebenen Revisionen nehmen, um Zwischenspeicherungen zu ignorieren.
Viele Grüße
Felix
Hallo Andreas,
schon mal versucht mit den Datasets statt den Entities zu arbeiten?
Wenn du dir über die Tabellenvorlage oder die Datenquelle den Datensatz holst hast du ja einen normalen HistoryProvider mit all seinen Funktionen und den üblichen Revision-Objekten (mit den von dir angesprochenen Feldern). Auf den Datensätzen kannst du auch den ReleaseState abfragen und dort nur die freigegebenen Revisionen nehmen, um Zwischenspeicherungen zu ignorieren.
Viele Grüße
Felix
Besten Dank!
Danach habe ich gesucht.
Grüße
Andreas
Doch noch eine Frage.
An die gesuchten Felder komme ich nun ran. Wie bekomme ich aber nun die Felder der Revision, die in der Datenquelle eingepflegt wurden?
An Revision hab ich nichts gefunden. 😞
Grüße
Andreas
Auf deinem Dataset gibt es die Methode getInRevision(Revision revision).
Dann hast du entsprechend den Datensatz in der mitgegebenen Revision. Hier kannst du wie gewohnt über getFormData() die Formulardaten holen, oder über getEntity() das entsprechende Entity(). Der Weg über die FormData des Datensatzes ist aber meines Wissens nach der bevorzugte.
Beispiel:
Dataset oldDataset = dataset.getInRevision(revision);
FormData frmData = oldDataset.getFormData();
String headline = frmData.get(irgendeineLanguage, "tt_headline").get();
Gruß
Felix
perfekt!
Besten Dank!
Grüße
Andreas