aVogt
Returning Creator

Bestimmte Versionen gelöschter Medien ermitteln

Jump to solution

Hallo,

ich soll von vielen Medien (um die 600)  per Skript eine bestimmte Version ermitteln und im FileSystem sichern.

Für bestehende Medien funktioniert mein Vorgehen:

  • Vom Medium getHistory()
  • Darüber iterieren und anhand von getCommitOrCreationTime die gewünschte Version ermitteln

Für bereits gelöschte Medien komme ich nur bis zu einem Punkt.

  • Gelöschte Medien ermitteln List deletedMedia = mediaStore.getDeletedChildren();
  • Darüber iterieren und von der enthaltenen Liste (immer nur 1 Element) per getDeletedElements() die ElementInfo holen.

Davon bekomme ich die Revision (getRevision()).

Nun habe ich das Problem, da ich denn MedienContent benötige (um es im FileSystem zu sichern) und zusätzlich von diesem Medium eine bestimmte Revision benötige. Da komme ich über den Weg nicht weiter.

Muss ich das Medium etwa wiederherstellen und kann dann wie oben mir die Version suchen? Wie ist der Weg ein Medium wiederherzustellen?

Danke für Tipps.

grüße Andreas

0 Kudos
1 Solution

Accepted Solutions
hoebbel
Crownpeak employee

Hallo Andreas,

Du holst Dir doch die Zeit/Revision über die History des Mediums. Klappt es denn nicht, wenn Du dir mit dem Wert für die [gelöschten] Medien einen neuen UserService holst und über diesen das Medium?

Viele Grüße
Holger

 

View solution in original post

0 Kudos
4 Replies
hoebbel
Crownpeak employee

Hallo Andreas,

ohne es jetzt selbst ausprobiert zu haben - warum holst Du dir denn nicht den UserService für die gewünschte Revision [z.B. mittels project.getUserService(date)] und über diesen dann die entsprechenden Medien? 

Wenn ich nicht irgendwo gedanklich falsch abgebogen bin, solltest Du dann keine Probleme mit gelöschten Medien oder ähnlichem haben.

Oder als ganz anderen Lösungsansatz (falls es um einen bestimmten Medienordner geht): eine historische Generierung des entsprechenden Medienordners ausführen. (dazu vor der Generierungsaktion ein Skript ausführen, welches mittels context.setStartTime(date) den entsprechenden Startzeitpunkt setzt)

Vielleicht ist da ja ein hilfreicher Gedanke bei, mit dem Du die Anforderung lösen kannst. (wie gesagt, nur zwei spontane Ideen)

Viele Grüße
Holger

0 Kudos
aVogt
Returning Creator

Hallo Holger,

Leider muss ich die Medien von unterschiedlichen Zeitpunkten ermitteln. D.H. ich müsste jedes mal einen neues Datum setzen... bei 600 zu ermittelnden Medien sind das bestimmt über 300 Datumsangaben (Zeit ist auch ausschlaggebend - bei mehreren Änderungen pro Tag, ist nur die erste Änderung interessant)

Hintergrund: Wir archivieren geänderte Dateien in unserem Archivsystem. Jetzt hat sich leider herausgestellt, dass über einen Zeitraum von 6 Monaten die Dateien nicht ordentlich archiviert wurden ...

 

Grüße
Andreas

0 Kudos
hoebbel
Crownpeak employee

Hallo Andreas,

Du holst Dir doch die Zeit/Revision über die History des Mediums. Klappt es denn nicht, wenn Du dir mit dem Wert für die [gelöschten] Medien einen neuen UserService holst und über diesen das Medium?

Viele Grüße
Holger

 

0 Kudos
aVogt
Returning Creator

Hallo Holger,

das klappt. Ich bekomme die Medien.

Allerdings bekomme ich bei einigen (von vor über 10 Jahren) die Meldung "revision xyz is archived!". Das wird daher kommen, dass aller 10 Jahre eine Projektarchivierung durchgeführt wurde. Muss man halt sehen, ob die Dokumente irgendwo anders noch verfügbar sind.

 

Besten Dank für den Tipp. Das hilft weiter.

 

Grüße

Andreas

0 Kudos