Das Version Management System für Intrexx

VMS für Intrexx

Mit dem Version Management System (VMS) für Intrexx ist es möglich, Datensätze ohne großen Aufwand zu versionieren und zu historisieren. Diese erstellten Versionen lassen sich als Datei herunterladen, wiederherstellen oder gänzlich neu importieren, wobei die automatisch erzeugte Historisierung die Änderungen in Bezug auf die vorherige Version verdeutlicht, um die Entwicklung eines Datensatzes zu visualisieren.

Was ist eine Datensatzversion?

Eine (Datensatz-) Version umfasst alle Werte eines Datensatzes mitsamt aller Werte in den dazugehörigen Kinddatengruppen in beliebiger Tiefe. Beim Versionieren eines Datensatzes wird eine spezielle vms-Datei erzeugt, die alle diese Werte und die Struktur der Applikation beinhaltet, um das fehlerfreie Wiederherstellen des Datensatzes zu gewährleisten. Die Hauptdatengruppe kann dabei über beliebig viele Kinddatengruppen verfügen und selbstverständlich werden dabei auch Dateien und deren Metadaten versioniert. 
Die erzeugte vms-Datei kann genutzt werden, um einen älteren Stand des Datensatzes wiederherzustellen, den Datensatz als Kopie anzulegen oder diesen Datensatz mit allen Werten in ein ganz anderes System zu importieren. 
Darüber hinaus wird während des Versionierens eines Datensatzes eine Historie erzeugt, um die Änderungen zwischen der aktuellen und der vorherigen Version des Datensatzes zu visualisieren. Dadurch lassen sich auf einfache Weise die Fragen beantworten, welche Person zu welchem Zeitpunkt welche Änderungen vorgenommen hat. 

Schnell und unkompliziert einsatzbereit

Das VMS lässt sich direkt in bestehende Intrexx-Anwendungen einbinden und ist sofort einsatzbereit – entweder über eine generische Prozess-Aktion oder durch die Verwendung einer flexiblen Groovy-API. Dadurch lassen sich bereits vorhandene Prozesse mit geringem Aufwand erweitern und Intrexx-Entwickler können selbst entscheiden, zu welchem Zeitpunkt innerhalb eines Prozesses ein Datensatzes versioniert werden soll.

 

Versionen direkt in der Applikation darstellen

Gespeichert werden die erzeugten Versionen eines Datensatzes in der mitgelieferten Applikation, allerdings lassen sich diese Versionen direkt in der Applikation über ein Portlet darstellen, anzeigen und eben auch wiederherstellen. 

Die Historie des Datensatzes direkt am Datensatz

Über das angesprochene Portlet lässt sich auch direkt direkt automatisch erzeugte Historie des Datensatzes aufrufen, die farbcodiert darstellt, wie sich der Hauptdatensatz und dessen Kinddatensätze im Vergleich zur vorherigen Version geändert haben.

Umfangreiche Konfigurationsmöglichkeiten

Für jede Hauptdatengruppe einer Applikation kann eine Konfiguration angelegt werden, in der berechtigte Benutzer nicht nur über die farbliche Darstellung der Änderungen eines Datensatzes entscheiden können, sondern auch, welche User das Portlet überhaupt sehen dürfen, wem darin die Historie angezeigt wird, wer eine ältere Version wiederherstellen darf und wem es gestattet ist, die erzeugte Versions-Datei herunterzuladen.

Darüber hinaus haben berechtigte Benutzer die Möglichkeit darüber zu entscheiden, welche Datengruppen in der Historie überhaupt dargestellt werden. Gleiches gilt selbstverständlich auch für jedes Datenfeld in diesen Datengruppen. Außerdem können die Werte der Datenfelder, wie man es bereits vom Intrexx Portal Manager gewohnt ist, beliebig formatiert werden. Beispielsweise kann die Anzahl der Nachkommastellen bestimmt werden, die Länge von Textfeldern, Datumsformate und sogar, in welcher Form Boolean-Felder angezeigt werden.

FAQ

Als Hauptdatensatz versteht sich ein Datensatz auf oberster Ebene in der Applikationsstruktur, wohingegen ein Strang die Kette, von einem Kinddatensatz auf beliebiger Ebene, bis hoch zum Hauptdatensatz zu verstehen ist.

Im Applikationspaket befindet sich neben der VMS-Applikation und einem dazugehörigen Prozess eine Java-Bibliothek und eine Datei für die Callables, die beim Import korrekt abgelegt und in die entsprechenden Dateien eingetragen werden sollten.

Ja. Eine Versionierung kann an beliebiger Stelle, auch von einem Kinddatensatz auf unterster Ebene, ausgelöst werden.

Nein, allerdings kann das VMS ein wichtiger Baustein in der Umsetzung einer revisionssicheren Ablage sein. Berechtigte User haben nämlich die Möglichkeit zu bestimmen, wo genau die erzeugten Versionsdateien abgelegt werden.

Nein. Über die VMS-Applikation lassen sich vms-Dateien importieren, wobei die Import-Funktion zunächst prüft, ob ein Import überhaupt möglich ist. Geprüft wird die Struktur der Applikation, in die ein Datensatz eingefügt werden soll, welche referenzierten Datensätze existieren oder ob der Datensatz, in Abhängigkeit von den Primärschlüsseln, bereits existiert.

Ja. Datensätze können  über beliebig viele Primärschlüssel unterschiedlichster Art verfügen.

Referenzierte Datensätze werden nicht versioniert, die Werte einer Referenz allerdings schon. Das bedeutet, dass in der Historie ersichtlich ist, welchen Wert ein referenzierter Datensatz zum Zeitpunkt der Versionierung hatte, dieser Wert bleibt beim Wiederherstellen eines Datensatzes aber unberührt. 

Ebenso wird beim Import eines Datensatzes geprüft, ob ein referenzierter Datensatz existiert. Ist dies der Fall, wird die Referenz wiederhergestellt – existiert der Datensatz nicht, bleibt die Referenz leer. Darüber werden die User aber vor dem Import informiert.

Angenommen, es existiert eine vms-Datei zu einer Applikation, die sich seit der Versionierung änderte. Datenfelder kamen hinzu, andere wurden entfernt.

Sofern sich die Primärschlüssel der Datengruppen nicht änderten, ist ein Import trotzdem möglich. Nicht mehr existierende Datenfelder werden einfach ignoriert, neue hinzugekommene Datenfelder bleiben leer. Über beides wird der den Import ausführende User vor dem Import informiert. 

Ja. Eingetragene Vereine und gemeinnützige Organisationen haben die Möglichkeit einen Rabatt zu erhalten.

Eine Datengruppe kann  über beliebig viele Kinddatengruppen verfügen, wobei diese Kinddatengruppen wiederum über beliebig viele eigene Kinddatengruppen  auf beliebig vielen Ebenen verfügen können.

Tests mit einer recht komplexen Hauptdatengruppe mit mehreren direkten Kinddatengruppen und weiteren Kinddatengruppen auf dritter Ebene, einer Vielzahl an verschiedenen Datenfeldern, darunter auch Dateidatenfelder, haben ergeben, dass ein Prozess, der auf ein Speichernereignis reagiert und diesen Strang versioniert, weniger als eine Sekunde länger benötigt, als der gleiche Prozess ohne die Versionierung. 

Die Erweiterung eines Prozesses um die Versionierung sollte also in einem produktiven Umfeld kaum spürbar sein.

Nein. Über die generische Prozess-Aktion lässt sich zwar am einfachsten eine Versionierung anstoßen, allerdings besteht über die Groovy-API die Möglichkeit, einen Datensatz ohne ein Ereignis zu versionieren – beispielsweise wenn in einem Groovy-Skript über die Ergebnismenge eines SELECT-Statements iteriert wird. 

Kontakt

Konnte Ihr Interesse geweckt werden? Haben Sie weitere Fragen oder möchten Sie die Lösung direkt in ihrem Intrexx einsetzen? Treten Sie gerne mit mir über das unten stehende Email-Formular in Kontakt oder schreiben Sie mir direkt an marco@friedersdorf.de. Sehr gerne führe ich Ihnen die Lösung in einer Teststellung vor, berate Sie bei der Umsetzung in Ihrem Intranet und unterstütze Sie bei der individuellen Anpassung an Ihre spezifischen Anforderungen.
Ob erste Ideen, konkrete Projektpläne oder einfach nur ein unverbindlicher Austausch – ich freue mich auf Ihre Nachricht!

Bitte aktivieren Sie JavaScript in Ihrem Browser, um dieses Formular fertigzustellen.
tripadvisor flickr americanexpress bandcamp basecamp behance bigcartel bitbucket blogger codepen compropago digg dribbble dropbox ello etsy eventbrite evernote facebook feedly github gitlab goodreads googleplus instagram kickstarter lastfm line linkedin mailchimp mastercard medium meetup messenger mixcloud paypal periscope pinterest quora reddit rss runkeeper shopify signal sinaweibo skype slack snapchat soundcloud sourceforge spotify stackoverflow stripe stumbleupon trello tumblr twitch twitter uber vimeo vine visa vsco wechat whatsapp wheniwork wordpress xero xing yelp youtube zerply zillow px aboutme airbnb amazon pencil envelope bubble magnifier cross menu arrow-up arrow-down arrow-left arrow-right envelope-o caret-down caret-up caret-left caret-right