Zugriff auf Versionshistorie von gelöschten Elementen
Author: alexanderan
Publication Date: 11/10/2010 8:09
Hallo Community,
ich habe in meinem Projekt die folgende Fragestellung:
Ich möchte von einem gelöschten Element aus der Strukturverwaltung die Versionshistorie auswerten. Konkret habe ich von einem gelöschten Element die ID und möchte herausfinden, wer dieses Element gelöscht hat.
Existiert der Elternknoten noch, so kann ich im SkriptContext auf dem Elternknoten über
e.getDeletedChilds(Rev-ID, ChildCount)
die gelöschten Elemente finden und in deren Revisions Objekten erfahre ich auch den User.
Doch wie verfahre ich, wenn ich
a) nur die Element-ID habe und den Elternknoten nicht kenne
oder
b) der Elternknoten ebenfalls gelöscht wurde.
Ich würde mich freuen, wenn mir hierbei jemand behilflich sein könnte.
Viele Grüße
Andreas
Tags: api, development, script
-
Author: gockel - 11/10/2010 8:48
Ein Hinweis vorweg. Egal welchen Weg sie einschlagen, hier betreten sie einen Bereich der API, der bei ungünstiger Benutzung extrem performancekritisch ist. Die Möglichkeiten der Einschränkung der Ergebnismengen bzw. die zeitlichen Grenzen sollten auf jeden Fall bewusst verwendet werden.
1. Möglichkeit:
===========
Die Methode #getDeletedChilds steht auf auf Store zur Verfügung. Wenn man also wenigstens weiss, in welchem Store man sucht, da könnte man darüber arbeiten:
SiteStoreRoot sitestore;
List<DeletedElementsInfo> deletedInfos = siteStore.getDeletedChilds(startRevision, 50);
2. Möglichkeit:
===========
Man könnte diese Informationen über die Revisionsdaten ermitteln. Einstiegspunkt: Project#getRevisions
import de.espirit.firstspirit.storage.RevisionFilter;
import de.espirit.firstspirit.storage.RevisionOperation;
import de.espirit.firstspirit.storage.RevisionOperation.OperationType;
import de.espirit.firstspirit.storage.DeleteOperation;
Project project;
List<Revision> deletedRevisions = project.getRevisions(fromRevision, toRevision, 50, RevisionFilter.DELETE_FILTER);
for (final Revision rev : deletedRevisions) {
final RevisionMetaData meta = rev.getMetaData();
final RevisionOperation operation = meta.getOperation();
if (operation.getType == OperationType.DELETE) {
final DeleteOperation deleteOp = (DeleteOperation) operation;
// prüfen ob meine gesuchte ID diese DeleteOperation betreffen
deleteOp.getDeleteRootElement();
// oder
deleteOp.getElements();
}
}
0
Vous devez vous connecter pour laisser un commentaire.
Commentaires
1 commentaire