Servus allerseits,
für eine Aufgabe erstelle ich gerade ein Skript, welches gelöschte Knoten in der Struktur analysieren soll. Für dieses Analyse scheint es notwendig zu sein, den Knoten in einer früheren Revision zu laden um Zugriff auf die incoming/outgoingReferences zu bekommen.
Initial dachte ich, dass dies mit dem entsprechenden Aufruf des SpecialistBroker zu machen wäre:
SpecialistsBroker
getBroker(long revision)
"Get hold of a broker operating on the given revision."
for (ElementInfo info : deletedElementsInfo.getDeletedElements()) {
SpecialistsBroker broker = brokerAgent.getBroker(info.getRevisionId());
...
}
Jedoch stellt sich beim Debugging heraus, dass dieser Aufruf immer zu einem Null führt:
/de/espirit/firstspirit/agency/ConnectionDelegatingSpecialistsBroker.class
public SpecialistsBroker getBroker(long revision) {
return null;
}
:smileyalert: Gibt es andere Implementierungen von diesem Aufruf, wo dies anders ist oder verstehe ich an dieser Stelle etwas falsch? Zumindest ist dieses Verhalten etwas unerwartet für mich. Derzeit verbinde ich mich mit dem Projekt in meiner IDE mit dem ConnectionManager.
Meine gewünschten Infos bekomme ich jetzt über den UserService des Projektes, mit dem ich verbunden bin:
UserService userService = project.getUserService(info.getRevisionId() - 1);
Store store = userService.getStore(Store.Type.SITESTORE, false);
IDProvider storeElement = store.getStoreElement(info.getUid(), IDProvider.UidType.SITESTORE_LEAF);
:smileyalert: Allerdings habe ich noch nicht verstanden, wieso hier von RevisionId noch 1 subtrahiert wird.
Falls hier jemand mehr zu den Hintergründen weiß, mein Verständnis wird sich freuen.
Beste Grüße,
René
FS Version: 5.2.422