Peter_Jodeleit
Crownpeak employee
Crownpeak employee

Re: Mittels FS-API frühere Revision eines Datensatzes wiederherstellen

Jump to solution

Der Einstiegspunkt dafür ist Project.getUserService(Date).

Peter
lmeric
I'm new here

Re: Mittels FS-API frühere Revision eines Datensatzes wiederherstellen

Jump to solution

so einfach! besten Dank! (besonders um diese Uhrzeit)

0 Kudos
gockel
Crownpeak employee
Crownpeak employee

Re: Mittels FS-API frühere Revision eines Datensatzes wiederherstellen

Jump to solution
Ziel ist es textliche Veränderungen in den einzelnen Variablen herauszufinden.

Wenn das der Anwendungsfall ist, dann würde ich hier eher empfehlen über die Revisionsmetadaten zu gehen. Diese enthalten bereits die Information, welche Variablen geändert wurden und das ist deutlich performanter.

Vorgehen wäre dabei:

  • Holen der Historie der Seite -> Menge von Revisions
  • Iterieren über diese Revisionen und jeweils Abfrage der Revisionsmetadate
  • Ermitteln der Veränderung einer speziellen Variable "X" über die Revisionsmetadaten

Pseudo-Code:

MY_VARIABLE = "st_text";     // Name des editors der auf Änderungen geprüft werden soll

pageId = page.getId();

metaData = revision.getMetaData();

Map<BasicStoreElement, Map<ChangedType, RevisionChangeDetail>> changedElements = metaData.getChangedElements();

iter(entry : changedElements) {

     if (entry.getKey().getNodeId == pageId) {

          changes = entry.getValue();

          iter(changeEntry : chages) {

               if (changeEntry == ChangeType.DATA_XML) {

                    dataChange = (DataChangeDetail) changeEntry.getValue();

                    Map<String, DataChangeDetail.EditorChange> editorChanges = dataChange.getEditorChanges();

                    EditorChange editorChange = editorChanges.get(MY_VARIABLE);

                    if (editorChange != null) {

                         // todo : we found a change in editor

                    }

               }

          }

     }

}

Einstiegspunkt:

lmeric
I'm new here

Re: Mittels FS-API frühere Revision eines Datensatzes wiederherstellen

Jump to solution

Hallo Herr Gockel,

das ist absolut die perfekte Lösung.

Wenn man jetzt über alle Revisionen iteriert, dann bekommt man genau die Veränderungen

zu einer Sprache in der jeweiligen Variable.

Danke hierfür.

Beste Grüße,

Levent Meric

0 Kudos
lmeric
I'm new here

Re: Mittels FS-API frühere Revision eines Datensatzes wiederherstellen

Jump to solution

Hallo,

sehe ich das richtig, dass die oben aufgeführten Funktionen nicht auf die Datenquellen übertragbar sind?

Beispiel:

Dataset dataset = content2StoreElement.getDataset(entity);

List<Revision> storeElementHistory = dataset.getHistory();

for (Revision revision : storeElementHistory)  {

                                                               RevisionMetaData storeElementMetaData = revision.getMetaData();

}

Problem: das getMetaData ist immer null

Oder gibt es da einen anderen Ansatz?

Danke

0 Kudos