Werte zur Freigabe einer Entity aus der Historie
Author: aVogt
Publication Date: 3/11/2021 8:49
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
.
-
Author: felix_reinhold - 3/11/2021 9:25
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
0 -
Author: aVogt - 3/11/2021 10:19
Besten Dank!
Danach habe ich gesucht.
Grüße
Andreas
0 -
Author: aVogt - 3/11/2021 11:31
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
0 -
Author: felix_reinhold - 3/11/2021 11:36
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
0 -
Author: aVogt - 3/11/2021 14:57
perfekt!
Besten Dank!
Grüße
Andreas
0
Please sign in to leave a comment.
Comments
5 comments