Versions:IDataObjectVersionCollection

Liefert alle Versionen eines Datenobjektes.

Versionen in onion.net bestehen aus einem Inhalt, welche zu einem Zeitpunkt durch einen Benutzer erstellt oder verändert worden sind.

Die Versionsnummer einer Version besteht immer aus zwei Zahlen, getrennt durch einen Punkt. Die erste Zahl ist die Hauptversion, welche in der Produktiven Umgebung erstellt worden ist. Die zweite Zahl ist die Nebenversion und ist in der Produktiven Umgebung immer Null. Wird ein Datenobjekt in einem ChangeSet editiert, so wird nicht die Hauptversion hochgezählt, sondern die Nebenversion. Wird die Änderung publiziert, so wird die Hauptversion um Eins erhöht und die Nebenversion wird auf Null zurückgesetzt. Wichtig ist, Nebenversionen, sollten sie existieren, sind nur in dem jeweiligen ChangeSet sichtbar.

Eine Version wird immer dann erzeugt, wenn ein Benutzer das Datenobjekt ausleiht. So lange das Datenobjekt jedoch nicht zurückgegeben worden ist, kann die aktuelle Version verworfen werden.

Ein Beispiel soll die Funktionsweise der Versionsnummern verdeutlichen.

  1. Ein Benutzer erstellt ein Datenobjekt in der Produktiven Umgebung und lässt dieses ausgeliehen. Das Datenobjekt besitzt die Version 1.0.
    Verwirft der Benutzer nun das Datenobjekt, so wird es gelöscht. Gibt der Benutzer das Datenobjekt zurück, hat das Datenobjekt weiterhin die Version 1.0. Das Datum der letzten Änderung ist das Zurückgeben des Datenobjektes und der letzte Bearbeiter der Benutzer, welcher das Datenobjekt zurückgegeben hat.
  2. Ein Benutzer leiht das eben erstellte Datenobjekt in der Produktiven Umgebung aus. Das Datenobjekt besitzt nun die Version 2.0.
    Wird das Datenobjekt verworfen, so ist die Version 1.0 die aktuelle Version. Gibt der Benutzer das Datenobjekt jedoch zurück, ist die aktuelle Version die 2.0. Wie unter Punkt eins ist das Datum der letzten Änderung der Zeitpunkt des Zurückgebens und der letzte Bearbeiter ist der Benutzer, welcher das Datenobjekt zurückgegeben hat.
  3. Ein Benutzer leiht das Datenobjekt erneut aus und nimmt Änderungen am Inhalt des Datenobjektes vor. Ein zweiter Benutzer übernimmt das Datenobjekt später und gibt diesen Datenstand zurück. Die Version des Datenobjektes ist 3.0. Das Datum der letzten Änderung ist der Zeitpunkt, zu welchem der zweite Benutzer das Datenobjekt zurückgegeben hat. Der letzte Bearbeiter der Version ist ebenfalls der zweite Benutzer, da dieser die Version zurückgegeben hat.
  4. Ein Benutzer wechselt in ein ChangeSet und leiht das Datenobjekt aus. Die aktuelle Version im ChangeSet ist nun die Version 3.1. In der Produktiven Umgebung ist die Version weiterhin 3.0.
    Der Benutzer gibt das Datenobjekt zurück. Die Version ist weiterhin die Version 3.1. im ChangeSet.
  5. Der Benutzer leiht das Datenobjekt erneut aus. Die Version ist nun 3.2. Nach Bearbeitung des Inhalts gibt der Benutzer das Datenobjekt zurück. Wie in der Produktiven Umgebung ist das Datum der letzten Änderung das des Zeitpunktes des Zurückgebens und der letzte Bearbeiter ist der Benutzer, welcher das Datenobjekt zurückgegeben hat.
  6. EIn zweiter Benutzer publiziert nun das ChangeSet. In der Produktiven Umgebung ist nun die Version des Datenobjektes 4.0. Das Datum der letzten Änderung ist der Zeitpunkt, als das Datenobjekt im ChangeSet zuletzt zurückgegeben worden ist. Der letzte Bearbeiter ist ebenfalls der Benutzer, welcher das Datenobjekt zuletzt im ChangeSet editiert hat. Da diese beiden Werte allerdings nicht ganz korrekt mit der Veröffentlichung der Version sind, wird gleichzeitig eine strukturelle Veränderung erzeugt. In dieser steht welcher Benutzer zu welcher Zeit diese Änderung publiziert hat. Weiterhin wurden die Nebenversionen des Datenobjektes gelöscht.
  7. Ein Benutzer wechselt in ein neues ChangeSet und bearbeitet das Datenobjekt inhaltlich. Dabei wird die Version 4.1 erzeugt. Ein zweiter Benutzer bearbeitet das Datenobjekt nun in der Produktiven Umgebung und gibt es direkt zurück. In der Produktiven Umgebung besitzt das Datenobjekt nun die Version 5.0 und im ChangeSet weiterhin die Version 4.1.
  8. Ein Benutzer bearbeitet nun das Datenobjekt im ChangeSet erneut und gibt es zurück. Die Version des Datenobjektes im ChangeSet ist 4.2. Die Hauptversion des Datenobjektes bleibt im ChangeSet weiterhin bei der Version 4, da der Inhalt, zum Zeitpunkt der ersten Änderung im ChangeSet, der Version 4 entsprach.
  9. Wird das ChangeSet nun publiziert, so entsteht in der Produktiven Umgebung die Version 6.0. Die Änderungen, welche in der Version 5.0 durchgeührt worden sind, wurden überschrieben. Wenn diese hätten erhalten bleiben sollen, hätten die Änderungen, die in Version 5.0 durchgeführt worden sind, ebenfalls im ChangeSet, vor der Publikation, nachgezogen werden müssen.
  10. In einem letzten Fall wurden die Änderungen wie in Punkt sieben bis neun durchgeführt. Allerdings wird nun nicht das ChangeSet publiziert, sondern die Änderungen des Aspektes Inhalt für das Datenobjekt verworfen. Das Datenobjekt besitzt nun sowohl in der Produktiven Umgebung, als auch im ChangeSet die Version 5.0. Wird das Datenobjekt nun in dem ChangeSet editiert, so erhält es die Version 5.1.

In der Liste der Versionen ist die aktuelle Version des Xml, welches über die Methoden von IDataObjectContent abgerufen werden können, ebenfalls abrufbar.

Sollte für das Schema IsVersioningDisabled auf true gesetzt sein, so enthält die Liste der Versionen nur die aktuelle Version.

Zugriff: Lesend