Hendrik
New Responder

Ermittlung geänderter Datensätze anhand von Revision-Objekten

Jump to solution

Hallo zusammen, 

aktuell bin ich auf der Suche nach einer Möglichkeit, anhand der Revisionen eines Projektes programmatisch Änderungen an Datensätzen zu ermitteln. Dazu wird über die Revisionen des Projektes iteriert, Änderungen an Datensätzen erzeugen auch ordentlich Revisionen. Leider sehe ich jedoch keine Möglichkeit anhand des Revision-Objekt herauszufinden, um welchen Datensatz / Schema es sich handelt. Das RevisionMetaData-Objekt ist für Revisionen, die durch Änderungen an Datensätzen erzeugt werden, leider immer null. Somit gibt es keine Möglichkeit eine Zuordnung zu den geänderten Objekten herzustellen.

Aktuell sehe ich nur die Möglichkeit über die Datenbank Schemen im Projekt zu iterieren, jeweils eine Session zu erstellen und anschließend umständlich die History aller Entities über diese zu beziehen und Revision IDs zu vergleichen. Habe ich etwas übersehen oder gibt es wirklich keinen eleganteren Weg über das Revision-Objekt herauszufinden ob und wenn welcher Datensatz zu einer Revision gehört?

Beste Grüße,

Hendrik Holst

0 Kudos
1 Solution

Accepted Solutions
Hendrik
New Responder

Hallo zusammen,

mittlerweile konnte ich mein Anliegen doch noch über die Revisionen des Projektes lösen. Das RevisionMetaData-Objekt ist nicht, wie in meinem ersten Post beschrieben, immer null - da hat mich der Eclipse Debugger in die Irre geführt. Die Ermittlung der geänderten Datensätze muss zudem über die RevisionOperation  ​ bzw. die Implementierung ContentOperation erfolgen, nicht wie bei allen anderen Elementen über die Methode getChangedStoreElements() der Klasse RevisionMetaData. Eine lückenlose Zuordnung von Revisionen zu veränderten Elemente ist mir zwar noch nicht (ganz) gelungen, aber ich bin nah dran.

Beste Grüße, Hendrik Holst

View solution in original post

0 Kudos
5 Replies
Hendrik
New Responder

Mittlerweile habe ich herausfinden können, dass es einen ProjectHistoryAgent gibt, über welchen die Projekthistorie in Form von IDProvider-Elementen bezogen werden kann. Über diesen Weg erhält mann für geänderte Datensätze Dataset-Objekte..

Den ProjectHistoryAgent finde ich jedoch nirgends in der API?

Zumal ich erwarten würde, dass die Informationen über die geänderten Elemente in den Metainformationen der Revision-Objekte enthalten ist. Ich würde das Fehlen der Informationen eigentlich als Bug ansehen. Gibt es hierzu noch eine Statement seitens e-Spirit?

Eingesetzte FirstSpirit Version: 5.2.518

0 Kudos

Hallo Hendrik,

der ist wie es scheint keine offizielle API.

Guck Dir bitte mal den HistoryProvider an, den jeder IDProvider implemeniert. Damit müsstest Du eigentlich alles bekommen. Wenn Du für ein Projekt eine spezielle Revision zu einem Datum benötigst, dann hilft Dir das Projekt selber:
http://www.e-spirit.com/odfs52/access/de/espirit/firstspirit/access/project/Project.html#getRevision...

Grüße Marian

0 Kudos
MichaelaReydt
Community Manager

Hallo Hendrik,

benötigst du noch weitere Hilfe oder hat dir Marians Antwort bereits weitergeholfen?

In diesem Fall wäre es super, wenn du seine "richtige Antwort" entsprechend markierst.

Solltest du zwischenzeitlich eine eigene Lösung gefunden haben, wäre es toll, wenn du sie hier bereitstellst.

Viele Grüße

Michaela

0 Kudos

Hallo Marian,

danke für dein Statement. In meinem ersten Post beschrieb ich bereits, dass ich über die Revisionen des Projektes iteriere. Um die Revisionen zu erhalten verwende ich bereits die Methode getRevisions(Revision from, Revision to, int maxCount, Filter<Revision> filter) aus der Klasse Project.

Beste Grüße, Hendrik

0 Kudos
Hendrik
New Responder

Hallo zusammen,

mittlerweile konnte ich mein Anliegen doch noch über die Revisionen des Projektes lösen. Das RevisionMetaData-Objekt ist nicht, wie in meinem ersten Post beschrieben, immer null - da hat mich der Eclipse Debugger in die Irre geführt. Die Ermittlung der geänderten Datensätze muss zudem über die RevisionOperation  ​ bzw. die Implementierung ContentOperation erfolgen, nicht wie bei allen anderen Elementen über die Methode getChangedStoreElements() der Klasse RevisionMetaData. Eine lückenlose Zuordnung von Revisionen zu veränderten Elemente ist mir zwar noch nicht (ganz) gelungen, aber ich bin nah dran.

Beste Grüße, Hendrik Holst

0 Kudos