Config Sets

Produktlinien: Standard, Expert
Module: Leistung & CRM
Erstellt: 02.03.2018, Änderung:
Abschnitt Bestehende Config Sets bearbeiten hinzugefügt.
Mehr ansehen

Vertec Installationen können sehr weitgehend auf die Bedürfnisse von Kunden angepasst werden. Der Grossteil der möglichen Konfiguration erfolgt in der Datenbank des Kunden.

Solche Konfigurationen können thematisch zusammengefasst als XML-Datei exportiert und in einer anderen Vertec-Installation importiert und so übertragen werden. Eine solche Konfigurations-Definition heisst Config Set.

Der Config Set Dialog

Die Steuerung der Config Sets erfolgt über den Config Set Dialog. Dieser öffnet sich über das Menü Einstellungen > Config Sets.

 

Config Sets importieren

Ein Config Set wird über eine Import Aktion im Config Set Dialog eingespielt. Durch Klick auf den Import Button erscheint ein Explorer, in welchem das Config Set XML-File ausgewählt werden kann.

Plausibilitätsprüfung

Beim Importieren wird das Config Set zuerst auf Plausibilität geprüft. Folgende Bedingungen müssen erfüllt sein, damit das Set angewendet wird:

  • Im Config Set explizit formulierte Vorbedingungen sind erfüllt
  • Alle aufgeführten externen Referenzen sind vorhanden
  • Alle internen Aliases sind eindeutig
  • Members mit Referenzen verweisen auf definierte Aliases
  • Im Config Set enthaltene Zusatzklassen sind im System noch nicht vorhanden
  • Im Config Set enthaltene Zusatzfelder sind im System noch nicht vorhanden

Falls Fehler auftreten, wird eine Fehlermeldung ausgegeben und das Config Set nicht angewendet.

Sind keine Fehler vorhanden, wird das Config Set direkt angewendet und die entsprechenden Objekte in Vertec erzeugt.

Nach dem Anwenden eines Config Sets erscheint dieses in der Liste im Config Set Dialog.

Config Set via Python anwenden

In Python gibt es eine neue Methode vtcapp.importconfigset(), welche ein Config Set als String (oder als File) akzeptiert (XML-Text). Beispiel:

vtcapp.importconfigset("""<?xml version="1.0" encoding="utf-8"?><configset name="test" author="test"> <requirements /> <references/> 
<objects/> <settings> <system-setting name="GlobalWordTemplatePath">C:\TestConfigSet</system-setting> </settings></configset>""")

Oder als File:

f = open(r"C:\Projekte\Vertec\ConfigSet\ConfigSet.xml")
vtcapp.importconfigset(f.read())

Das auf diese Art importierte Config Set wird ebenfalls in der Liste im Config Set Dialog eingetragen.

Config Sets erstellen

Für das Erstellen von Config Sets steht in der Desktop App und der Cloud App der Config Set Builder zur Verfügung. Dieser ermöglicht das interaktive Zusammenstellen der Konfiguration und exportiert daraus das Config Set in Form eines XML Datenfiles.

Um ein neues Config Set zu erstellen, klicken Sie im Config Set Dialog auf den Button Neu. Es öffnet sich der Config Set Builder:

Der Config Set Builder

Dieser hat folgende Felder:

Name Name des Config Sets. Da die Config Sets untereinander referenziert werden können, ist darauf zu achten, dass es sich um eindeutige Namen handelt.
Autor Autor des Config Sets.
Kommentar Freier Kommentartext für eine genauere Beschreibung des Config Sets.
Elemente In diesem Feld können Requirements, References und Settings eingegeben werden. Dieser Text muss in gültigem XML verfasst sein.

Folgende Elemente werden unterstützt:

  • ocl-requirement
  • ocl-reference
  • entryid-reference
  • system-setting

Die einzelnen Elemente können direkt im Feld angegeben werden, ohne übergeordnete Node. Das heisst, dass statt

<references>
<ocl-reference expression="TimSession.allInstances->first.login" alias="aktBearb" />
</references>

nur

<ocl-reference expression="TimSession.allInstances->first.login" alias="aktBearb" />

eingegeben werden muss.

Vertec-Objekte hinzufügen/entfernen

Unter Ausgewählte Objekte zeigt der Config Set Builder eine Liste von Vertec-Objekten, die im Config Set enthalten sind.

Um ein bestimmtes Objekt in die Liste aufzunehmen, wird dieses im aktiven Vertec-Fenster selektiert und anschliessend im Config Set Builder auf den + Button geklickt oder direkt per Drag&Drop ins Feld gezogen.

Durch Mehrfach-Auswahl in einer Vertec-Liste und Drag&Drop können mehrere Objekte gleichzeitig in ein Config Set gezogen werden.

Um ein Objekt aus der Config Set Liste zu entfernen wird es markiert und der - Button geklickt.

Bei hierarchischen Objekten, welche ihre Unterobjekte "besitzen", werden die Unterobjekte automatisch mitgenommen. Im Falle einer Ordnerstruktur muss z.B. nur der Überordner eingefügt werden.

Config Sets exportieren

Durch Klick auf den Button Exportieren wird vom Config Set Builder ein XML File erstellt. Dieses können Sie auf Ihrem Filesystem speichern über den Speichern unter Dialog.

Dieses Config Set kann dann in der Zielinstallation importiert werden.

Objekt Aliases

Im Config Set enthaltene Objekte können mit einem Alias versehen und damit explizit referenziert werden, innerhalb des Config Sets oder von einem anderen Config Set aus. Innerhalb eines Config Sets muss ein Alias eindeutig sein.

Wird ein Objekt über den Config Set Builder hinzugefügt, erhält dieses einen automatischen Alias. Wenn Sie diesen ändern möchten, klicken Sie mit der rechten Maustaste auf das Objekt in der Liste > umbenennen, und vergeben Sie den gewünschten Alias.

 

Bestehende Objekte

In bestimmten Situationen wird für ein Objekt-Element in einem Config Set kein neues Objekt angelegt, sondern die Eigenschaften eines bestehenden Objekts geschrieben.

  • Falls das Objekt eine Eintrag Id hat, wird zuerst in der entsprechenden Klasse nach dem bestehenden Objekt gesucht und dieses aktualisiert.
  • Klasseneinstellungen (Class-Settings) werden speziell behandelt: Normalerweise wird aufgrund des Klassennamens nach dem bestehendem Objekt gesucht. Diese Spezialbehandlung gilt jedoch nicht für Klasseneinstellungen von Zusatzklassen – dort wird ein Fehler gemeldet, falls Klasseneinstellungen für eine bestehende Zusatzklasse verändert werden sollen. Siehe dazu auch den Abschnitt Behandlung von Spezialfällen weiter unten.
  • Das Setzen von Eigenschaften auf ihren Standardwert (z.B. String auf Leerstring) bei bestehenden Objekten wird nicht unterstützt.

Verwendung der Eintrag Id

Die Eintrag Id von Vertec Objekten ist zentral bei der Handhabung von Config Sets. Über die Eintrag Id wird identifiziert, ob das Objekt in der Zieldatenbank bereits besteht oder nicht.

Die Eintrag Id ist im Eigenschaften Dialog bei den entsprechenden Objekten (rechte Maustaste > Eigenschaften) zu finden:

Objekte, die ohne Eintrag Id Referenz (entryid="XX") übergeben werden, werden im Zielsystem neu erzeugt.

Bei der Erstellung eines Config Sets  wird beim Einfügen eines Objekts darauf geachtet, ob der Überordner (Parentordner) eine Eintrag Id hat. In diesem Fall wird davon ausgegangen, dass der Überordner im Zielsystem bereits besteht und das Objekt darin erzeugt werden kann.

Wird ein Objekt, welches mit einer Eintrag Id referenziert wird, im Zielsystem nicht gefunden, wirft der Import einen Fehler.

Wichtig ist deshalb, dass alle von Vertec mitgelieferten Strukturdaten (Ordner, Linktypen) in Vertec eine Eintrag Id haben. Dies wird von Vertec mit Version 6.2 sichergestellt.

Hier nachfolgend zwei Szenarien, die verdeutlichen, in welcher Art auf die Eintrag Id geachtet werden muss.

Szenario Einspielen von neuen Konfigurationen

Bei diesem Szenario geht es darum, dass der Kunde ein Config Set erhält, welches er einspielt, um eine bestimmte Konfiguration zu erhalten.

Hier wird davon ausgegangen, dass die von Vertec standardmässig mitgelieferten Strukturdaten wie Ordner (Ordner Stammdaten, Öffentliche Ordner, Linktypen etc.) vorhanden sind und referenziert werden können.

Ist eine solche Struktur in Vertec beim Import eines Config Sets nicht vorhanden, wird eine Fehlermeldung angezeigt.

Im diesem Szenario muss sich der Kunde also nicht um die Eintrag Id kümmern.

Szenario Testumgebung – Livesystem

Ein anderes Szenario ist es, wenn auf einem Testsystem Konfigurationen ausgearbeitet und später auf das Livesystem übertragen werden sollen. In diesem Fall ist die Eintrag Id zentral.

Hier geht es darum, ob die neuen Objekte m Zielsystem in eine bestehende Struktur eingefügt oder ob auch diese Struktur neu erzeugt werden soll.

Soll beispielsweise ein neuer Root-Ordner im Zielsystem erzeugt werden, darf dieser im Quellsystem keine Eintrag Id haben. Will man aber später auf dem Zielsystem auf diesen Root-Ordner zugreifen, um beispielsweise neue Unterordner zu erzeugen, dann muss dieser eine Eintrag Id haben. In diesem Fall muss die Eintrag Id sowohl im Quell- als auch im Zielsystem manuell gesetzt werden.

Dies kann via Python über argobject.eintragid="XX" auf dem entsprechenden Objekt geschehen.

Behandlung von Spezialfällen

Zusatzklassen

Soll im Rahmen eines Config Sets eine bestimmte Zusatzklasse konfiguriert werden, muss sichergestellt werden, dass diese im Zielsystem noch nicht verwendet wird. Das Config Set kann dies beim Import nicht prüfen, sondern dies muss bereits beim Erstellen der Konfiguration berücksichtigt werden (insbesondere wenn sonstige Konfigurationen, z.B. Scripts, welche ebenfalls mit dem Config Set mitgeliefert werden, auf diese Zusatzklasse verweisen).

Um zu verhindern, dass 'aus Versehen' eine Zusatzklasse importiert wird, welche bereits besteht, kann ein entsprechendes OCL-Requirement formuliert werden.

Zusatzfelder

Falls ein Config-Set Zusatzfelder anlegt, muss sichergestellt sein, dass die Zieldatenbank keine Zusatzfelder gleichen Namens auf der gleichen Klasse definiert hat. Dies wird beim Import nicht geprüft, sondern die Zusatzfelder gegebenenfalls doppelt angelegt.

Auch hier muss dies, wie bei den Zusatzklassen (siehe oben), bereits bei der Erstellung des Config Sets berücksichtigt werden.

Um zu verhindern, dass 'aus Versehen' ein Zusatzfeld importiert wird, welches bereits besteht, kann ein entsprechendes OCL-Requirement formuliert werden.

Listeneinstellungen im Config Set aufnehmen

Wird ein Ordner in ein Config Set aufgenommen, werden der Ordner sowie seine Listeneinstellungen übernommen und im Zielsystem neu angelegt.

Neu können auch nur die Listeneinstellungen im Config Set aufgenommen werden.

Wird ein Ordner im Config Set Builder hinzugefügt, kann mit der rechten Maustaste drauf geklickt werden. Im Kontextmenü erscheint der Menüpunkt Listeneinstellungen anstelle von Ordner verwenden.

Klickt man darauf, werden nur die Listeneinstellungen übernommen. Die Zeile sieht dann wie folgt aus:

Das bedeutet, dass NUR die Listeneinstellungen, nicht aber der Ordner exportiert werden. In diesem Fall muss der entsprechende Ordner via Eintrag Id bereits vorhanden sein im Zielsystem.

Bestehende Config Sets bearbeiten

Um ein bestehendes Config Set zu bearbeiten, markieren Sie es in der Liste und klicken auf den Button Bearbeiten (nur Desktop App und Cloud App). So gelangen Sie wieder in den Config Set Builder und können das Config Set wie beschrieben anpassen und danach wieder exportieren.

Fortgeschrittene können das Config Set natürlich auch direkt im XML-File anpassen, unter Berücksichtigung der beschriebenen Config Set XML Gültigkeitsbedingungen.

 

Config Sets entfernen/löschen

Config Sets können entweder entfernt oder gelöscht werden.

Entfernen

Markieren Sie das entsprechende Config Set in der Liste und klicken Sie auf Entfernen.

Das Config Set wird aus der Liste entfernt, die Objekte verbleiben jedoch im System. Das Entfernen von Config Sets dient vor allem dazu, diese vor einem allfälligen Löschvorgang zu schützen.
Das Config Set kann nicht erneut importiert werden, da die Objekte sonst doppelt vorhanden sind. Es gibt keine Möglichkeit, ein Config Set in die Liste aufzunehmen, ohne damit die Objekte neu zu erzeugen.

Löschen

Klicken Sie mit der rechten Maustaste im Config Set Dialog auf das entsprechende Config Set und wählen Sie Löschen.

Achtung! Es werden auch alle dazugehörigen Objekte in Vertec gelöscht. Dieser Vorgang dient dazu, alle durch das Config Set erzeugten Objekte wieder aus Vertec zu löschen. Wurde mit diesen bereits weitergearbeitet, gehen damit auch alle Änderungen verloren. Um ein Config Set vor dem Löschen zu schützen, kann es aus der Liste entfernt werden (Entfernen).