Customizing-Transporte
Allgemeine Beschreibung
Die Customizing-Transporte sind eine weitere Möglichkeit, Customizing (Anpassungen) von einem System in ein anderes zu transferieren. Dabei sollte es ein Quellsystem geben, in dem die Anpassung durchgeführt wird. Es kann dann beliebig viele Zielsysteme geben. In denen sollte Customizing deaktiviert sein, sodass immer ein erwarteter Customizing-Stand vorliegt. Empfohlen ist allerdings eine 3-System-Landschaft mit einem Entwicklungs-, einem Konsolidierungs- und einem Produktivsystem.
In dieser Dokumentation wird folgende Konvention für die fiktiven Webservice-Links verwendet:
(E) Entwicklung
CODEhttp://ent-server:18080/CARMEN-ejb/CrmWebService?wsdl
(K) Konsolidierung
CODEhttp://kons-server:28080/CARMEN-ejb/CrmWebService?wsdl
(P) Produktion
CODEhttp://prod-server:28080/CARMEN-ejb/CrmWebService?wsdl
Der (administrative) Anwender wird bei jeder Customizingänderung gefragt, welchem Customizing Paket er das Customizing zuordnen will. Wählt er kein Paket aus, wird die Änderung abgebrochen.
Die erstellten Pakete können exportiert und im Zielsystem wieder importiert werden. Dabei werden alle dem Paket zugeordneten Customizings übertragen. Pakete können angenommen werden. Das bedeutet, der Transfer wurde bestätigt. Sie können verworfen werden, dadurch werden alle Änderungen zurückgerollt.
Wichtig ist, dass der Anwender dafür sorgt, dass ein in einem System angenommenes Paket auch in den anderen Systemen angenommen wird. Gleiches gilt für verworfene Pakete. Die Pakete als Zip-Dateien können manuell exportiert und importiert werden. Es gibt auch automatisierte Übertragungsmöglichkeiten (z.B. über zeitlich gesteuerte Webservices).
Hier der ganze Vorgang noch einmal schematisch dargestellt:
![](../../../__attachments/10684181/image2021-5-12_16-21-32.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Abbildung: Beispiel einer 3-System-Landschaft mit manuell übertragenen Customizing-Paketen
![](../../../__attachments/10684181/image2021-5-12_16-23-24.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Abbildung: Beispiel einer 3-System-Landschaft mit per Transfer übertragenen Customizing-Paketen
![](../../../__attachments/10684181/image2021-5-12_16-24-46.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Abbildung: Beispiel einer 3-System-Landschaft mit manuell und per Webservices übertragenen Customizing-Paketen
Aktivierung
Um die Customizing-Transporte zu aktivieren, muss folgendes PropertyMapper-Statement abgesetzt werden:
UPDATE PropertyMapper SET PropertyValue = 'true'
WHERE id like '%/de/cursor/jevi/common/admin/serverconfig/CustomizingTransportSettings$!!$transport_enabled'
Dafür kann beispielsweise der Statementdialog verwendet werden.
Zum Zeitpunkt der Aktivierung sollten alle beteiligten Systeme auf dem exakt gleichen Stand sein. Idealerweise wird dies sichergestellt, indem ein Datenbank-Dump aus dem Produktivsystem in die anderen Systeme übertragen wird.
Ist der Transport aktiviert, sollte er nicht wieder deaktiviert werden, da es hierdurch zur Inkonsistenz der Transportdaten kommen kann. Aus diesem Grund erfolgt die Aktivierung per SQL und nicht über eine Einstellung.
Update
Beim Update ist darauf zu achten, dass in allen miteinander kommunizierenden Systemen die Timer Customizing Pakete importieren, Globale Variablen abgleichen und Schlüssel abgleichen deaktiviert werden. Sie sollten erst wieder aktiviert werden, wenn alle beteiligten Systeme das Update abgeschlossen haben.
Konfiguration
Das Verhalten in den beteiligten Systemen der Customizing-Transporte wird durch mehrere Systemeinstellungen konfiguriert. Welches System in einer 3-System-Landschaft Entwicklungs-, Konsolidierungs- oder Produktivsystem ist, wird über die beiden Einstellungen Quelle für Customizings und Produktivsystem gesteuert.
Alle Einstellungen sind unter dem Bereich Customizing-Transport Einstellungen zu finden.
![](../../../__attachments/10684181/CT_sys_props%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Name des Systems
Dieser Wert muss nach der Aktivierung der Customizing-Transporte mit einem frei wählbaren Wert wie Produktivsystem oder Entwicklung gefüllt werden und identifiziert das System im lokalen Netzwerk. Außerdem wird dieser Name in den Paketen als Quellsystem hinterlegt. Auch globale Variablen fragen hierüber ab, welcher Wert angezeigt werden soll. Daher sollte dieser Wert, einmal festgelegt, möglichst nicht mehr geändert werden.
![](../../../__attachments/10684181/System_property2%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Quelle für Customizings
Der Wert von Quelle für Customizings bestimmt von welchem System Customizings übertragen werden sollen. Es referenziert auf oben beschriebene Einstellung Name des Systems. Beim Import können nur Pakete aus diesem System gewählt werden.
![](../../../__attachments/10684181/System_property3%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Customizing deaktivieren
Wird die Option der Systemeinstellung Customizing erlaubt deaktiviert, sind sämtliche Customizing-Einstellungen deaktiviert. Ist Produktivsystem gesetzt, kann diese Einstellung nicht vorgenommen werden, sie ist in diesem Fall immer deaktiviert.
![](../../../__attachments/10684181/System_property%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Produktivsystem
Der Haken Produktivsystem legt dieses System als Produktivsystem fest. Importierte Pakete werden in diesem Fall direkt angenommen. Ist der Haken nicht gesetzt, können Pakete nach dem Import auf ihrer Maske angenommen oder verworfen werden.
![](../../../__attachments/10684181/System_property4%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Abgleich von globalen Variablen
Die Werte von globalen Variablen werden automatisch zwischen allen konfigurierten Servern abgeglichen. Zum einen werden die Variablen eines anderen Servers gezogen wenn dieser in der Oberfläche ausgewählt wird, zum anderen kann ein Timer aktiviert werden der diese Aufgabe regelmäßig erledigt.
Damit all das funktioniert, sind mehrere Systemeinstellungen nötig.
Benutzerdaten
Es muss ein Anwender angelegt werden, in dessen Kontext der Abgleich von globalen Variablen und Schlüsseln stattfindet. Sein Kurzname und das verschlüsselte Kennwort sind anzugeben. Ist Kerberos aktiviert, ist es das Kennwort im Klartext.
![](../../../__attachments/10684181/System_user%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Server für globale Variablen
Alle Server, unter denen abgeglichen werden soll, sind in einer Liste anzugeben:18080. Der Aufbau ist <Servername>;<WSDL-ADresse des Server>
. Zu <Servername>
siehe Kapitel zur Einstellung Name des Systems.
![](../../../__attachments/10684181/System_server%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
![](../../../__attachments/10684181/System_server2%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Abgleich von Schlüsseln
Die Werte von Schlüsseln werden automatisch vom Produktivsystem in alle konfigurierten Server übertragen. Dazu sind mehrere Einstellungen nötig.
Benutzerdaten
Siehe gleiches Kapitel beim Abgleich von globalen Variablen.
Server für den Schlüsselabgleich
Alle Server, unter denen abgeglichen werden soll, sind in einer Liste anzugeben.
![](../../../__attachments/10684181/System_server3%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
![](../../../__attachments/10684181/System_server4%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Abgleich von Mitarbeitern
Neu angelegte Mitarbeiter werden automatisch vom Produktivsystem in alle konfigurierten Server übertragen. Dazu sind mehrere Einstellungen nötig.
Benutzerdaten
Siehe gleiches Kapitel beim Abgleich von globalen Variablen.
Server für den Mitarbeiterabgleich
Alle Server, unter denen abgeglichen werden soll, sind in einer Liste anzugeben.
![](../../../__attachments/10684181/1.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
![](../../../__attachments/10684181/2.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Zuständiger für Fehlerkorrektur
Es kann ein Mitarbeiter ausgewählt werden der Aktivitäten erhält, sofern beim automatischen Schlüsselabgleich ein Konflikt festgestellt wird. Dieser Mitarbeiter erhält ebenfalls eine Aktivität, sofern ein Fehler beim automatischen Import von Customizing-Paketen aufgetreten ist.
![](../../../__attachments/10684181/ConflictUser.png%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Automatisches Annehmen von Paketen
Wird ein Paket im Produktivsystem importiert, wird es automatisch angenommen. Sind hier Server hinterlegt, wird in diesen das Paket in diesem Moment auch angenommen. Dazu sind mehrere Einstellungen nötig.
Benutzerdaten
Siehe gleiches Kapitel beim Abgleich von globalen Variablen.
Server für das Annehmen von Paketen
Alle Server, in denen angenommen werden soll, sind in einer Liste anzugeben.
![](../../../__attachments/10684181/System_server5%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
![](../../../__attachments/10684181/System_server6%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Beispielkonfiguration 3-System-Landschaft
Beispielhafte Konfiguration der drei Systeme Entwicklungssystem, Konsolidierungssystem und Produktivsystem. CURSOR Software AG empfiehlt diese Systemlandschaft für den Customizing-Transport.
Entwicklungssystem
Das Entwicklungssystem muss, wie alle Systeme, einen eindeutigen Namen über die Einstellung Name des Systems erhalten. Die Einstellung Quelle für Customizings ist leer, da in das Entwicklungssystem nicht importiert wird. Der Haken Customizing erlaubt ist gesetzt, hier soll Customizing vorgenommen werden. Der Haken Produktivsystem ist nicht gesetzt.
![](../../../__attachments/10684181/Example_entw%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Konsolidierungssystem
Das Konsolidierungssystem muss, wie alle Systeme, einen eindeutigen Namen über die Einstellung Name des Systems erhalten. Die Einstellung Quelle für Customizings ist mit dem eindeutigen Namen des Entwicklungssystems gefüllt, da die Pakete von dort bezogen werden sollen. Der Haken Customizing erlaubt ist nicht gesetzt, hier soll kein Customizing vorgenommen werden. Änderungen erfolgen lediglich über den Import von Paketen. Der Haken Produktivsystem ist nicht gesetzt.
![](../../../__attachments/10684181/Example_qs%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Produktivsystem
Das Produktivsystem muss, wie alle Systeme, einen eindeutigen Namen über die Einstellung Name des Systems erhalten. Die Einstellung Quelle für Customizings ist mit dem eindeutigen Namen des Entwicklungssystems gefüllt, da die Pakete von dort bezogen werden sollen. Der Haken Customizing erlaubt ist nicht gesetzt, hier soll kein Customizing vorgenommen werden. Änderungen erfolgen lediglich über den Import von Paketen. Der Haken Produktivsystem ist gesetzt. Dadurch wird dieses System vom Konsolidierungssystem unterschieden und Pakete werden beim Import automatisch angenommen.
![](../../../__attachments/10684181/Example_prod%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Beispielkonfiguration 2-System-Landschaft
Beispielhafte Konfiguration der zwei Systeme (Entwicklungssystem und Produktivsystem). CURSOR Software AG empfiehlt eine 3-System-Landschaft für den Customizing-Transport. Trotzdem ist auch die Konfiguration für 2 Systeme möglich. Das Konsolidierungssystem entfällt in diesem Fall.
Entwicklungssystem
Das Entwicklungssystem muss, wie alle Systeme, einen eindeutigen Namen über die Einstellung Name des Systems erhalten. Die Einstellung Quelle für Customizings ist leer, da in das Entwicklungssystem nicht importiert wird. Der Haken Customizing erlaubt ist gesetzt, hier soll Customizing vorgenommen werden. Der Haken Produktivsystem ist nicht gesetzt.
Produktivsystem
Das Produktivsystem muss, wie alle Systeme, einen eindeutigen Namen über die Einstellung Name des Systems erhalten. Die Einstellung Quelle für Customizings ist mit dem eindeutigen Namen des Entwicklungssystems gefüllt, da die Pakete von dort bezogen werden sollen. Der Haken Customizing erlaubt ist nicht gesetzt, hier soll kein Customizing vorgenommen werden. Änderungen erfolgen lediglich über den Import von Paketen. Der Haken Produktivsystem ist gesetzt. Dadurch wird dieses System vom Konsolidierungssystem unterschieden und Pakete werden beim Import automatisch angenommen.
![](../../../__attachments/10684181/image2014-10-21%2014_13_58.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Beispielkonfiguration Schlüssel-Abgleich in einer 3-System-Landschaft
Um reibungslosen Abgleich zu gewährleisten, müssen die Timer in 3 Systemen aktiv und konfiguriert sein.
Rundumabgleich zwischen allen Systemen, wenn sie korrekt konfiguriert sind (Konfiguration siehe unten).
![](../../../__attachments/10684181/image2014-10-21%2014_21_15.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Abbildung: Produktivsystem
Timereinstellungen
![](../../../__attachments/10684181/Timer-Schluessel.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Oberflächen-Komponenten
Das momentan zugeordnete Paket, sowie die Historie der Änderungen ist bei fast allen Customizings unmittelbar einsehbar. Dazu steht eine der folgenden Komponenten zur Verfügung:
Komponente | Abbildung |
---|---|
Toolbar-Schalter |
![]()
![]() |
Schalter | ![]() |
Kontextmenü-Eintrag | ![]() |
Die eine Komponente zeigt dabei immer das aktuell zugeordnete Paket oder " - " an, sofern kein Paket zugeordnet wurde. Die andere Komponente öffnet den Historie-Dialog für das aktuelle Customizing:
![](../../../__attachments/10684181/History%5B1%5D.jpg?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
In diesem Dialog kann eingesehen werden wer wann welches Customizing geändert hat. Wenn als Paket " - " eingetragen ist, wurde das Customizing in der Anwendung geändert. Steht dort ein Paketname wurde vom Anwender ein entsprechendes Paket eingespielt und das Customizing dadurch geändert. Befindet der Anwender sich in der Hauptanwendung, also nicht in der Administrationskonsole, öffnet ein Klick auf den Paketnamen das Paket im Hintergrund in einer neuen Ebene.
Die Entitäten: Customizing-Paket und Customizing
Im Menü unter Administration / Customizing-Pakete können die erstellten/importierten Pakete eingesehen werden. Sie können einen technischen/fachlichen Ansprechpartner haben und sollten eine Beschreibung enthalten was geändert wird. Im Unterbereich kann eingesehen werden, welche Customizings an diesem Paket hängen.
![](../../../__attachments/10684181/Entity2%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Pakete annehmen/verwerfen
Auf der Entitätsmaske kann ein Paket angenommen oder verworfen werden.
Annehmen bedeutet, dass es im Zielsystem erfolgreich eingespielt wurde und die angehängten Customizings wieder freigegeben werden sollen. Das Paket kann nun nicht mehr geändert werden und dient nur noch der Dokumentation. Werden die entsprechenden Customizings nun erneut geändert, wird wieder die Aufforderung erfolgen, ein Paket auszuwählen. Im Produktivsystem werden Pakete beim Import automatisch angenommen.
Verwerfen bedeutet, dass alle an den Paket hängenden Änderungen zurück gerollt werden. Nachdem ein Paket angenommen wurde kann es nicht mehr verworfen werden.
Wenn ein Paket verworfen wird, wird es nicht gelöscht, sondern als "Verworfen" markiert und es wird "Verworfen am" und "Verworfen von" gesetzt. Die verknüpften Customizings werden gelöscht, auch die Änderungen werden rückgängig gemacht. Es bleibt nur das leere Paket zurück.
Export/Import/Transfer
In der Adminkonsole, unter Export/Import von Customizing / Customizing Pakete, wird ein Wizard gestartet, mit dem die erstellten Pakete exportiert oder import werden können. Importierte Pakete können nicht geändert und wieder exportiert werden. Änderungen sollten nur im System vorgenommen werden, in dem das Paket erstellt wurde. Ein mehrfacher Export eines Pakets ist möglich, solange es nicht angenommen wurde.
![](../../../__attachments/10684181/image2014-10-21%2014:3:18.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Auf der ersten Seite wird zunächst entschieden ob importiert oder exportiert werden soll und, je nachdem, ein Verzeichnis oder das Paket ausgewählt. Beim Import kann optional ein Datum gewählt werden. In diesem Fall wird das Paket nicht sofort importiert, sondern später automatisch im Hintergrund. Siehe dazu Automatischer Import.
![](../../../__attachments/10684181/Wizard2%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Wenn Export gewählt wurde, muss auf der nächsten Seite das Paket gewählt werden. Beim Import entfällt diese Seite.
![](../../../__attachments/10684181/Wizard3%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Nun wird eine Zusammenfassung des Paketes angezeigt das importiert bzw. exportiert werden soll.
![](../../../__attachments/10684181/SingleAdminUser17_2.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Als nächstes besteht die Möglichkeit, die Anmeldung für alle anderen Anwender während des Imports zu sperren. Dabei werden auch bereits angemeldete Anwender vom System abgemeldet. Für die Betroffenen erscheint keiner vorherige Warnung, die Sitzung wird sofort beendet.
Diese Nachfrage betrifft nur den Import.
![](../../../__attachments/10684181/Wizard4%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Abschließend wird der erfolgreiche Import bzw. Export bestätigt.
Automatischer Import
Wurde beim Import der Haken bei Später importieren gesetzt und ein Datum gewählt, wurde das Paket auf den Applikationsserver verschoben und zum Import vorgemerkt. Der Timer Customizing Pakete importieren prüft regelmäßig, ob Pakete importiert werden sollen. Er kann über die Administrationskonsole aktiviert werden.
![](../../../__attachments/10684181/Importtimer%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Schlägt der Import fehl, erhält der Zuständige eine Aktivität und ggf. eine Mail. Siehe dazu Kapitel Zuständiger für Fehlerkorrektur .
Batch Export/Import
Customizing Pakete und Module können per Batch exportiert oder importiert werden, ohne den Client zu starten. Die Einstellungen werden per Kommandozeilenparameter übergeben und der Vorgang sofort gestartet.
Voraussetzungen
Es handelt sich um einen clientseitigen Aufruf. Der Client muss daher muss so konfiguriert sein, dass er sich mit dem gewünschten Server verbindet. Außerdem muss (für Customizing Pakete) der Customizing Transport aktiv und korrekt konfiguriert sein.
Aufruf
Der Aufruf basiert auf der Client-Startdatei run.bat. Gestart wird durch den Parameter custTransport. Der Befehl run custTransport im bin Verzeichnis des Clients ausgeführt, zeigt die Hilfe:
usage: run custTransport [-d <dir>] [-f <file>] [-l <file>] [-m <export/import>] [-n <name>] [-p <pw>] [--packagename <name>] [-sso <true/false>] [-t <package/module>] [-u <user>]
-d,--directory <dir> The full qualified path of the package to import or the directory to export to, e.g. "d:\temp\".
-f,--filename <file> The name of the ZIP file to export to, e.g. "myModule.zip". If no name is set a name is generated.
-l,--license <file> The full qualified path of the license file to import, e.g. "d:\temp\license.xml".
-m,--modus <export/import> The modus. Valid values are "export" or "import".
-n,--containerid <name> The package or module file name to import e.g. "CustomizingPackage_MY_PACKAGE.zip" or the package or module name to export e.g. "MY_PACKAGE".
-p,--password <pw> Password for authentication.
--packagename <name> Just for backward compatibility. Same as --containerid.
-s,--singlesignon <true/false> "true" if the OS user should be used to automatically login. "--username" and "--password" are ignored in this case, "false" otherwise. The default is "false".
-t,--type <package/module> The type. Valid values are "package" or "module". Default is "package".
-u,--username <user> Username for authentication.
Folgende Parameter sind verfügbar:
Parameter Kurzform | Parameter Langform | Argument | Beschreibung |
---|---|---|---|
-d | --directory | <dir> | Wenn exportiert werden soll (-m export), wird hiermit das Verzeichnis gesetzt, in das exportiert wird. Wenn importiert werden soll (-m import), wird hiermit das Verzeichnis gesetzt, in dem das Paket liegt. |
-n | --containerid | <name> | Wenn exportiert werden soll (-m export), wird hiermit der Name des Pakets oder Moduls in der Anwendung gesetzt. Wenn importiert werden soll (-m import), wird hiermit der Dateiname des Pakets oder Moduls gesetzt. |
-f | --filename | <file> | Wenn exportiert werden soll (-m export), wird hiermit der Name der ZIP Datei des Pakets oder Moduls nach dem Export gesetzt. Dies ist optional, wird kein Name gesetzt, wird einer generiert. |
-m | --modus | <export/import> | Setzt mit dem Wert "export" den Exportmodus oder mit dem Wert "import" den Importmodus. |
-u | --username | <user> | Setzt den Kurznamen des Anwenders, mit dem sich der Transporter anmelden soll. |
-p | --password | <password> | Setzt das Passwort des Anwenders im Klartext, mit dem sich der Transporter anmelden soll. |
-t | --type | <module/package> | Setzt mit dem Wert "module" dass ein Modul exportiert/importiert werden soll, oder mit dem Wert "package", dass ein Paket exportiert/importiert werden soll. Der Standardwert ist "package". |
-l | --license | <file> | Wenn ein Modul importiert wird (-t module -m import) wird hiermit der Dateiname der Lizenzdatei angegeben. Dies ist optional, die Lizenz kann auch später über die Oberfläche eingespielt werden. |
--packagename | <name> | Nur für Abwärtskompatibilität: Kann als Alternative zu --containerid verwendet werden. | |
-s | --singlesignon | <true/false> | Wird der Parameter auf "true" gesetzt werden die Paramter "–username" und "–password" nicht benötigt. Statt dessen wird versucht mit em aktiven OS Anwender ein Autologin durchzuführen. Der Standardwert ist "false". Voraussetzungen:
|
Ein vollständiger Aufruf könnte folgendermaßen aussehen:
Export
run custTransport -d d:\ -n MEIN_PAKET_03112014_EJF73JFKRM84B109 -u jjl -p mypw -m export
Import
run custTransport -d d:\ -n CustomizingPackage_MEIN_PAKET.zip -u jjl -p mypw -m import
Soll auf das Entwicklungssystem oder das Konsolidierungssystem zugegriffen werden, kann, genau wie beim Clientstart, zusätzlich der Parameter "test" bzw. "cons" übergeben werden.
Ausgaben
Informationen oder Fehlermeldungen werden direkt auf der Konsole ausgegeben und zusätzlich in das Clientlog geschrieben. Zusätzlich kann nach einem Aufruf der Fehlercode ausgelesen werden. Trat ein Fehler auf ist er 1, andernfalls 0.
Fehlercode
call run.bat custTransport -d d:\ -n CustomizingPackage_MEIN_PAKET.zip -u ffj -p mypw -m import
if %errorlevel% == 0 ( echo Hat funktioniert )
if %errorlevel% == 1 ( echo Ist schief gegangen )
Unterstützte Customizings
Customizing | Beschreibung | Erreichbar über |
---|---|---|
Aktionsboxeinträge | Erstellen, löschen, speichern von Aktionsboxeinträgen | Rechts neben der Hauptebene |
App-Masken | App-Masken hinzufügen/ändern/löschen | Administrationskonsole->Masken bearbeiten |
Verwaltung von App-Masken-Konfigurationen | App-Masken Konfigurationen hinzufügen/ändern/löschen | Administrationskonsole->Konfiguration App-Maske |
Bilder | Hinterlegen/Löschen von Bildern die in Masken verwendet werden können. | Im Maskeneditor die "Icon" Eigenschaft einer Komponente bearbeiten, Administrationskonsole->Masken bearbeiten->Bilder verwalten |
BPM-Datenbereinigungen | Erstellen/Ändern einer Datenbereinigung von BPM-Prozess-Altdaten | Administration->CURSOR-BPM |
BPM-Masken | Erstellen/ Ändern einer Maske innerhalb eines BPM-Prozesses | Administration->CURSOR-BPM |
BPM-Prozesse | Erstellen eines BPM-Prozesses/ Ändern irgend eines Bestandteils davon Die BPM-Prozesse können importiert aber nicht veröffentlicht werden. | Administration->CURSOR-BPM |
Entitäten | Erstellen/Ändern von Entitäten | Administrationskonsole->Entitäten |
Clientseitige Workflows | Erstellen/Ändern von clientseitigen Workflows | Administration->Workflow-Designer |
Customizing-Datensatz | Erstellen/Ändern/Löschen von "enthält Customizing"-Entitätsdatensätzen | "enthält Customizing"-Entitäten über die Standardlogiken bearbeiten |
Datenexporte | Erstellen, Ändern und Löschen von Datenexporten | Administration->Datenfluss->Datenexporte |
Datenüberleitungen | Hinterlegen von Datenüberleitungen von einem Feld in ein anderes. | Administration->Datenfluss->Datenüberleitung |
Desktop-Konfiguration | Konfiguration des Desktop für System- und Gruppenkonfiguration | Rechtsklick auf den Desktop, Optionen->Desktop-Konfiguration, Optionen->Desktop-Darstellung, Optionen->Desktop-Adminstration |
DS-GVO Verarbeitungstätigkeiten | Erstellen, Ändern, Löschen von Verarbeitungstätigkeiten | Administration->Datenfluss->DS-GVO Verarbeitungstätigkeit |
Entitäten-Konfigurationen | Konfigurieren aller Entitäten (Dokumentenfähig, Anzeigen im WebClient etc.) | Administrationskonsole->Entitätenkonfigurationen bearbeiten |
Entitätserweiterungen | Erweitern von C0 Entitäten in der C1 Schicht | Administrationskonsole->Entitäten |
Excel Menü | Konfigurieren des Auswertungsmenüs | Administrationskonsole->Verwaltung Dokumentvorlagen->Excelmenü verwalten |
Exportformat | Erstellen, Ändern und Löschen von Exportformaten | Administration->Datenfluss->Datenexporte, Schalter 'Neuanlage und Pflege der Exportformate' |
Konfiguration des Standardexportformats | Auswahl eines Exportformats als das Standardexportformat | Administration->Datenfluss->Datenexporte, Schalter 'Neuanlage und Pflege der Exportformate' - auf der letzten Seite des Assistenten des gewählten Exportformats |
Externe Aufrufe | Hinterlegen von externen Aufrufen, beispielsweise für das Aufrufen einer Website | Administration->Datenfluss->Externer Aufruf |
GeoMetaData | Erstellen, Ändern, Löschen von GeoMetaDaten | Administration->Module->GeoMetaData |
Globale Variablen | Hinterlegen von Globalen Variablen die an verschiedenen Stellen in der Anwendung ausgelesen werden können. | Administrationskonsole->Globale Variablen |
Gruppen | Erstellen, Ändern, Löschen von Rechtegruppen. | Administration->Berechtigungen->Gruppen |
(Gruppen-)Feldeigenschaften | Ändern der Feldeigenschaften aller Felder | Rechtsklick auf das Feld, Administrationskonsole->Feldeigenschaften |
I18n von Aktionsboxeinträgen | Internationalisieren von Aktionsboxeinträgen | Rechts neben der Hauptebene->Fahnen |
I18n von Entitätsnamen | Internationalisieren des Namens einer Entität | Administrationskonsole-> Entitätenkonfigurationen bearbeiten->Fahnen |
I18n von Entitäts ShortCuts | Internationalisieren des ShortCuts einer Entität | Administrationskonsole-> Entitätenkonfigurationen bearbeiten->Fahnen |
I18n von externen Aufrufen | Hinterlegung von Internationalisierungen für Externe Aufrufe | Externer Aufruf -> Rechte Maustaste -> I18n Externer Aufruf |
I18n von Labels | Ändern der Internationalisierung eines Labels auf der Maske | GUI Builder, Rechtsklick auf das Label, Administrationskonsole-> Feldeigenschaften -> Fahnen |
I18n von Modulen | Internationalisierung des Namens und von Sprachvariablen eines Partnermoduls | Administrationskonsole->Module->Module I18n |
I18n von Personentypen | Hinterlegen von Internationalisierungen für Personentypen | Administration->Schlüssel->I18n Personentypen |
I18n von Relationsnamen | Internationalisieren der einer Relation in beide Richtungen | Administrationskonsole->Verknüpfung von Entitäten->Name der Relation ändern |
I18n von Reports | Internationalisieren von Reports | Administrationskonsole->JasperReports->Fahnen |
I18n von Report Parametern | Internationalisieren von Report Parametern | Administrationskonsole->JasperReports->Fahnen (wenn ein parameter markiert ist) |
I18n von individuellen Report Werten | Internationalisieren von individuellen Report Werten | Administrationskonsole->JasperReports->Bezeichnungen |
I18n von Schlüsseln | Internationalisieren der Schlüssel | Schlüsselpflege->Fahnen (rechts) |
I18n von Schlüsseln auf App-Masken | Internationalisieren von Schlüsseln auf App-Masken | Administrationskonsole->Masken bearbeiten->App-Maske wählen->bearbeiten->Internationalisierung |
I18n von Schlüsselgruppen | Internationalisieren der Schlüsselgruppen | Schlüsselpflege->Fahnen (links) |
I18n von Sprachvariablen | Internationalisieren von Sprachvariablen | Skriptbibliothek->Sprachvariablen |
I18n von Suchen | Internationalisierung der Namen von Suchen | Suchmaske->Suchverwaltung->Internationalisierung |
I18n von Suchbehältern | Internationalisierung der Namen von Suchbehältern | Administrationskonsole->Verwaltung Suchbehälter->i18n |
I18n von Tooltips eines Feldes | Hinterlegen von Internationalisierungen für Tooltips | Feldeigenschaftendialog |
I18n von Variablen im TAPI Dialog | Hinterlegen von internationalisierten Variablen für den TAPI Dialog | Administrationskonsole->TAPI-Inbound Dialog Konfiguration->Fahnen |
I18n im Zuordnungsbrowser | Internationalisierung von Hinweistexten im Zuordnungsbrowser | Zuordnungsbrowser -> I18n |
Infoboards | Eine Infoboardkonfiguration | Administrationskonsole->Kachelverwaltung, Infoboard-Desktopkonfiguration->Speichern als Systemboard |
Interactive Charts | Eine gruppen- oder systemspezifische Infoboardkonfiguration | Unterbereich -> Rechte Seite |
Juhuuu!-Suche | Konfiguration der Juhuuu!-Suche | Administrationskonsole->Juhuuu! |
Kacheln | Erstellen, Ändern, Löschen von Kacheln | Administrationskonsole-> Kachelverwaltung |
Kontaktzuordnung | Zuweisen von Kontaktdaten zu Groupware-Feldern | Administrationskonsole->Kontaktzuordnung |
Konfigurationgruppen | Konfigurationgruppen Erstellen/Löschen | Administrationskonsole->Konfigurationsgruppen verwalten |
Mandanten | Hinterlegen von Mandanten | Administration->Berechtigungen->Mandanten |
Masken | Masken hinzufügen/änderen | Auf der Maske->Administration->GUI-Builder, Administrationskonsole->Masken bearbeiten |
Maskenkonfigurationen bearbeiten | Bearbeiten von Maskenkonfigurationen (Reihenfolge/Erscheinen in Datei und Neumenü, Unterbereiche) | Administrationskonsole->Maskenkonfiguration bearbeiten |
Maskenskripte | Maskenskripte pro Entität hinterlegen, Maskenskriptbibliothek | Auf der Entität + Auf dem Desktop: Administration->Skript-Editor |
Module | Erstellen, Ändern von Partnermodulen | Wird nur intern beim Import eines Partnermoduls verwendet. |
Modulabhängigkeiten | Übertragen von Partnermodulabhängigkeiten | Wird nur intern beim Import eines Partnermoduls verwendet. |
Moduleinstellungen | Ändern der Einstellungen eines Moduls | Administrationskonsole->Moduleinstellungen |
MyCRMs | Erstellen, Ändern, Löschen des System-/Gruppenspezifischen Bereichs des myCRM | Rechtsklick auf dem myCRM |
PropertyConfigs | Konfiguration der Sichtbarkeit für die PropertyMapper-Oberfläche | Debug->PropertyConfig |
PropertyMapper Statements | Erstellen von PropertyMapper Einträgen. | Administrationskonsole->Erweiterte Einstellungen (Anwendungsvariablen) |
Rechtebehaftete Aktionen | Aktivieren/deaktivieren + Ändern von Aktionsrechten | Administration->Berechtigungen->Rechtebehaftete Aktionen konfigurieren |
Rechtevorlagen | Erstellen, Ändern, Löschen von Rechtevorlagen. | Administration->Berechtigungen->Rechtevorlagen |
Rechte auf Suchen/ExternenAufrufen/Dokumentvorlagen/Reports/Dokumentenobjekten | Ändern der Rechte auf den Entitäten | Rechteschalter auf der Entität Externe Aufrufen, Rechteschalter in der Suchverwaltung, in der Administrationskonsole unter JasperReport/Verwaltung Dokumentvorlagen/Verwaltung Dokumentenobjekte |
Reports | Reports erstellen/bearbeiten/löschen | Administrationskonsole->JasperReports |
Schlüssel | Schlüsse hinzufügen/änderen | Auf dem Nachschlagefeld den Nachschlagebrowser öffnen -> Bearbeiten, Administrationskonsole->Schlüsselpflege, Administration->Schlüsselpflege |
Schlüsselgruppen | Schlüsselgruppen hinzufügen/änderen | Auf dem Nachschlagefeld den Nachschlagebrowser öffnen -> Bearbeiten, Administrationskonsole->Schlüsselpflege, Administration->Schlüsselpflege |
Schlüsselwertabhängige Bereiche | Schlüsselwertabhängige Bereiche erstellen/bearbeiten/löschen | Administration->Datenfluss->Schlüsselwertabhängige Bereiche |
Schnellerfassungsmasken (WebClient) | Schnellerfassungsmasken hinzufügen/änderen/löschen | Administrationskonsole->Konfiguration-Schnellerfassungsmaske (Web Client) |
Serverseitige Workflows | Hinterlegen, Löschen, Ändern von serverseitigen Workflows | Administrationskonsole->Workflows |
Skriptbibliotheken | Erstellen, Ändern, Löschen von Skript-Klassen | Administrationskonsole->Skriptbibliothek |
Speichern als Standardinfoboards | Setzen eines Infoboards als System Standard | Eigenschaften auf dem Infoboard-Desktop -> Als Systemstandard setzen |
Speichern der Sortierreihenfolgen | Speichern der Sortierreihenfolge in der Tabelle SYSTEMWEIT | Suchmaske->Kontextmenü->Konfiguration->Serversortierreihenfolge speichern |
Speichern/Löschen der Spaltenreihenfolgen | Speichern/Löschen der Spaltenreihenfolge in der Tabelle | Suchmaske->Kontextmenü->Konfiguration->Systemeinstellung laden/speichern/löschen |
Speichern/Löschen der Spaltenreihenfolgen (relationsspezifisch) | Speichern/Löschen der Spaltenreihenfolge in der Tabelle im Unterbereich für eine bestimmte Relation | Unterbereich->Kontextmenü->Konfigurationseinstellungen->Systemeinstellungen der Relation speichern/laden/löschen |
Speichern/Löschen der Spaltenreihenfolgen (relationsspezifisch, unterhalb aller Entitäten) | Speichern/Löschen der Spaltenreihenfolge in der Tabelle im Unterbereich für eine bestimmte Entität unterhalb aller anderen Entitäten | Unterbereich->Kontextmenü->Konfigurationseinstellungen->Globale Konfigurationseinstellungen->Globale Systemeinstellungen speichern/laden/löschen |
Sql Statements | Ausführen von modifizierenden SQL Statements | Administrationskonsole->SQL Statements |
Suchbehälter | Erstellen, Ändern, Löschen von Suchbehälter | Administrationskonsole->Verwaltung Suchbehälter |
Suchen | Erstellen, Ändern, Löschen von Suchen | Suchmaske->Suchverwaltung, Administrationskonsole->Verwaltung von komplexen Suchen->Import, Administrationskonsole->Such-Verzeichnis |
System/Gruppenstandardsuchen | Laden/Speichern/Entfernen | Suchmaske->Standardsuche->Laden/Speichern/Entfernen der System/Gruppenstandardsuche |
Tabellendefinitionen | Bearbeiten von Tabellendefinitionen von Tabellensuchen in Suchbehältern | Administrationskonsole->Verwaltung Suchbehälter->Entsprechende Spalte der Tabellensuche doppelklicken |
TAPI-Dialog Konfigurationen | Aussehen und Verhalten des TAPI Dialog konfigurieren | Administrationskonsole->TAPI-Inbound Dialog Konfiguration |
Timer/ Aktionen ausführen | Konfiguration der Timer. Ausführen von zeitgesteuerten Aktionen Wurden die Timer-Aktionen vor dem Export entsprechend konfiguriert, starten diese nach dem abgeschlossenen Import direkt los. | Administrationskonsole->Timer |
Verknüpfungen bearbeiten | Verknüpfungen bearbeiten (Menge der Verknüpfbaren Daten, abschalten) | Administrationskonsole->Verknüpfung von Entitäten |
Verwaltung von Dokumentobjekten | Erstellen/Löschen/Bearbeiten von Dokumentobjekten | Administrationskonsole->Verwaltung Dokumentobjekte |
Verwaltung von Dokumentvorlagen | Erstellen/Löschen/Bearbeiten von Dokumentvorlagen | Administrationskonsole->Verwaltung Dokumentvorlagen |
Vorfilter für Schlüsselfelder | Basierend auf dem Schlüssel aus einem Feld werden die möglichen Werte für ein anderes Feld eingeschränkt. | Administration->Vorfilter für Schlüsselfelder |
Web Services | Hinterlegen von Web-Service-Konfigurationen die dann über Maskenskript aufgerufen werden können | Administrationskonsole->Web Services |
Abhängigkeiten
Es gibt Abhängigkeiten zwischen den Customizings. Einige Konflikte werden automatisch gelöst, in dem das Customizing dem selben Paket zugeordnet wird, dem auch das Customizing, von dem es abhängig ist, zugeordnet ist. In diesem Fall wird folgender Hinweis angezeigt:
![](../../../__attachments/10684181/dependency.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Man hat in diesem Fall die Möglichkeit mit Ja fortzufahren, in diesem Fall wird die Änderung durchgeführt und das Customizing automatisch dem Paket zugeordnet. Oder man bricht die Änderung mit Nein ab.
Es gibt auch Konflikte die sich nicht automatisch lösen lassen, da mehrere Abhängigkeiten im Spiel sind, die auf unterschiedliche Pakete verweisen. Läuft man in einen Konflikt, der nicht zu lösen ist, erscheint der folgende Konfliktdialog:
![](../../../__attachments/10684181/complex_dependency.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Man hat nun die Möglichkeit Fortfahren zu wählen und das Customizing einem beliebigen Paket zuzuordnen. Alle in der Tabelle aufgelisteten Pakete erhalten dadurch eine Paket-Abhängigkeit zu dem gewählten Paket. Dies bedeutet das gewählte Paket muss zuerst im Zielsystem importiert werden. Außerdem muss es vor den anderen Paketen angenommen werden, und darf erst verworfen werden, wenn alle anderen verworfen wurden. Alternativ kann man mit Abbrechen die Änderung rückgängig machen.
Die folgenden Einzelbeschreibungen von Zusammenhängen zum "einfachen" Abhängigkeitsdialog, das heißt zur automatischen Zuordnung. Greifen mehrere davon gleichzeitig, führt dies zum Auswahldialog und damit zu den Paketabhängigkeiten.
Customizing | hängt zusammen mit | Beschreibung der Zusammenhänge |
---|---|---|
Aktionsboxeinträge |
|
|
Aktionsrechte |
|
|
App Masken | Verhalten sich wie Masken, zusätzlich
|
|
App Maskenkonfigurationen |
|
|
Bilder |
|
|
BPM-Datenbereinigungen | keine Abhängigkeit | |
BPM-Masken |
|
|
BPM-Prozesse |
|
|
CTI Dialog Konfiguration |
|
|
Customizing-Datensatz |
|
|
Datenexporte |
|
|
Dokumentvorlagen |
|
|
Dokumentenobjekte | keine Abhängigkeiten | |
Entitäten |
|
|
Entitätseigenschaften |
|
|
Entitätserweiterungen |
|
|
Excel Menü |
|
|
Exportformat |
|
|
Externe Aufrufe |
|
|
Feldeigenschaften |
|
|
Globale Variablen |
|
|
Gruppen |
|
|
Gruppenfeldeigenschaften |
|
|
I18n von Aktionsboxeinträgen |
|
|
I18n von externen Aufrufen |
|
|
I18n von Feldnamen |
|
|
I18n von Feld-Tooltips |
|
|
I18n von Reports |
|
|
I18n von Report Parametern |
|
|
I18n von Schlüsseln |
|
|
I18n von Schlüsselbereichen |
|
|
I18n von Suchen |
|
|
I18n von Suchbehältern |
|
|
I18n von Verknüpfungen von Entitäten |
|
|
Infoboards |
|
|
Speichern als Standardinfoboard |
|
|
Kacheln |
|
|
Konfiguration App-Maske |
|
|
Konfiguration Schnellerfassungsmaske |
|
|
Konfiguration des Standardexportformats |
|
|
Konfigurationsgruppen |
|
|
Kontaktzuordnung |
|
|
Mandanten |
|
|
Masken |
|
|
Maskenkonfigurationen |
|
|
Maskenskripte |
|
|
Module |
|
|
Moduleinstellungen |
|
|
Rechtevorlagen |
|
|
Reports |
|
|
Schlüssel |
|
|
Schlüsselbereiche |
|
|
Schlüsselwertabhängige Bereiche |
|
|
Skriptbibliotheken |
|
|
Suchbehälter |
|
|
Suchen |
|
|
System/Gruppenstandardsuchen |
|
|
Verknüpfungen von Entitäten |
|
|
Webservice |
|
|
Customizing-Datensätze
C1 und C2-Entitäten können als Enthält Customizing konfiguriert werden. In der Folge wird jeder Datensatz dieser Entitäten als einzelnes Customizing behandelt und übertragen. Hierbei gibt es einige Besonderheiten, die im Folgenden beschrieben werden:
Voraussetzungen
Die Eigenschaft Enthält Customizing schließt sich mit den Eigenschaften Anzeigen im Web Client, Anzeigen in der App, Anonymisieren und Mehrmandantenfähig aus. Bei bestehenden Entitäten müssen diese Eigenschaften daher deaktiviert werden, bevor Enthält Customizing gesetzt werden kann. Außerdem darf keine Zugeordnete Entität bereits die Eigenschaft Enthält Customizing, da ein solches Geflecht von Customizings nicht mehr korrekt abgeglichen werden kann.
Aktivierung
In der Administrationskonsole kann unter Entitäten der Haken Enthält Customizing gesetzt werden.
![](../../../__attachments/10684181/activate_supportct.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Die Entität erhält dadurch ein Feld CTIdentifier über das die Datensätze identifiziert und transportiert werden können. Die Werte werden bei der Neuanlage generiert.
![](../../../__attachments/10684181/activated_supportct.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Die Eigenschaften Anzeigen im Web Client, Anzeigen in der App, Anonymisieren und Mehrmandantenfähig werden bei der Erstellung der Entität deaktiviert.
Nachträgliche Aktivierung
Enthält Customizing kann auch auf bestehenden Entitäten aktiviert werden (Voraussetzungen siehe oben). In diesem Fall gibt es noch einige Folgen zu beachten:
Alle zu diesem Zeitpunkt bestehenden Datensätze der Entität erhalten automatisch einen generierten Wert für das CTIdentifier Feld und werden dem selben Paket oder Modul zugeordnet wie die Entität.
In C2 werden beim Einspielen des Paketes in die Nachfolgesysteme alle dort bestehenden Datensätze gelöscht und durch die Datensätze aus dem Entwicklungssystem ersetzt.
In C1 werden beim Einspielen des Moduls in C2 im Zielsystem dort die C1 Datensätze eingefügt und zusätzlich die bestehenden C2 Datensätze mit mit einem generierten Wert für das CTIdentifier Feld versehen und ebenfalls an das Paket gehängt. Beim Transport in die Nachfolgesysteme werden die dort bereits bestehenden C2 Datensätze gelöscht und durch die C1 und C2 Datensätze aus dem Entwicklungssystem ersetzt.
Pflege von Datensätzen
Datensätze können dann wie auf normalen Entitäten über eine Ebene erzeugt oder bearbeitet werden. Hier wurde das CTIdentifier Feld auf die Maske gezogen um den Datensatz zu identifizieren, dies ist aber nicht notwendig.
![](../../../__attachments/10684181/dataset.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Neu angelegt oder geänderte Datensätze werden über das zugeordnete Paket oder Modul transportiert. Auch in C1 ist es also möglich ausgelieferte Datensätze nachträglich zu ändern.
REST, XML Import und BPM dürfen solche Entitäten nicht mehr bearbeiten.
Globale Variablen
In der Administrationskonsole können unter Globale Variablen globale Variablen hinterlegt werden. Eine globale Variable ist eine Zuordnung von einem Wert zu einem Namen. In fest definierten Bereichen kann anschließend mit $GLOBAL{MeineVariable}
darauf zugegriffen werden.
![](../../../__attachments/10684181/Globalvariables1%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Globale Variablen und der Customizing-Transport
Sofern der Customizing-Transport aktiviert wurde, wird eine vom Anwender erstelle Variable in der Datenbank nicht nur für den aktuellen Server, sondern für alle konfigurierten Server hinterlegt. Der Name muss in Entwicklungs-, Konsolidierungs- und Produktivsystem gleich sein, der Wert kann abweichen und wird bei Änderungen automatisch im Hintergrund zwischen den Servern abgeglichen. Der Server lässt sich über die Dropdownliste auswählen.
Wurden globale Variablen angelegt und der Customizing Transport erst später aktiviert, kann es dazu kommen, dass Variablen nicht für alle Server angelegt wurden. In diesem Fall gibt es zwei Möglichkeiten die fehlenden Variablen erstellen zu lassen.
Wenn der Initialisieren-Timer läuft, erledigt er diese Aufgabe regelmäßig.
![](../../../__attachments/10684181/GVTimer%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Alternativ kann über das Debug-Menü die Aufgabe manuell angestoßen werden.
![](../../../__attachments/10684181/Debugmenu%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Abgleich
Damit der automatische Abgleich funktioniert müssen Systemeinstellungen vorgenommen werden. Näheres dazu im entsprechenden Kapitel.
Neu anlegen
![](../../../__attachments/10684181/shared.icons.48x48.DocumentNew.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Ein Klick auf das Symbol
![](../../../__attachments/10684181/image2021-5-6_18-15-42.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Ist der Typ ein STRING (Text), kann der Feldtyp Passwort gewählt werden, um verschlüsselte Werte zu hinterlegen.
![](../../../__attachments/10684181/image2021-5-6_18-18-2.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Weiterhin können Ganzzahl- und Gleitkommazahlen sowie Datums- und Wahrheitswerte hinterlegt werden.
Datumswerte werden im deutschen Client im Format dd.MM.yyyy HH:mm:ss ausgegeben, in allen anderen Clients im englischen Format yyyy-MM-dd HH:mm:ss.
Wahrheitswerte werden mit "true" oder "false" ausgegeben.
Ganzzahlwerte werden unverändert ausgegeben.
Gleitkommazahlen können mit "," getrennt bis zu 2 Nachkommastellen enthalten und werden ebenfalls unverändert ausgegeben.
Bearbeiten
![](../../../__attachments/10684181/shared.icons.48x48.Edit.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Ein Klick auf das Symbol
![](../../../__attachments/10684181/EditGlobalVariable%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Kopieren
![](https://confluence.cursor.de/download/thumbnails/285870414/shared.icons.48x48.CopyEntry.png?version=1&modificationDate=1606122860784&api=v2)
Ein Klick auf das Symbol
Aktualisieren
![](../../../__attachments/10684181/shared.icons.48x48.Refresh.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Ein Klick auf das Symbol
Löschen
![](../../../__attachments/10684181/shared.icons.48x48.Delete.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Ein Klick auf das Symbol
Einsatz
Globale Variablen können nur in fest definierten Bereichen eingesetzt werden. Bisher sind das die folgenden:
Clientseitige Workflows
Eine Anwendungsmöglichkeit sind Textfelder von clientseitigen Workflows, in diesem Beispiel werden die Variablen MeinBetreff und AP genutzt:
![](../../../__attachments/10684181/GV_ClientWF%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Konfiguration
![](../../../__attachments/10684181/GV_ClientWF2%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Ergebnis
Maskenskripte
Eine Anwendungsmöglichkeit sind Strings in Maskenskripten, in diesem Beispiel die Variable MeinBetreff:
![](../../../__attachments/10684181/GV_Script%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Konfiguration
![](../../../__attachments/10684181/GV_Script2%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Ergebnis
Hinweis auf neue Methode ab 15.2
Bei oben genannter Verwendung von globalen Variablen findet lediglich eine Textersetzung des Platzhalters vor Ausführung des Skripts statt. Das kann zu Problemen mit den Datentypen der Variablen führen. Daher wurde mit Version 15.2 die neue Skript-Methode VariableUtils.getGlobaleVariable(String variableName)
aufgenommen. Sie liefert den Wert der globalen Variablen immer im passenden Datentyp (String, Double, boolean, etc.).
Externe Aufrufe
Eine Anwendungsmöglichkeit sind Strings von externen Aufrufen. ID wird dabei NICHT unterstützt. In diesem Beispiel werden die Variablen MeinBetreff, dir, MeineBeschr und MeinTitel verwendet.
![](../../../__attachments/10684181/image2021-5-6_17-57-31.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Abbildung: Konfiguration eines externen Aufrufs
BPM-Prozesse
Drei Anwendungsmöglichkeiten sind Strings im Skript einer Startbedingung, Strings im Skript eines Skript-Tasks und Strings im Maskenskript eines Benutzer-Tasks, in diesem Beispiel die Variablen execute
und message
.
Es ist hierzu notwendig, die globale Variable in der Bibliothek des Prozesses bekannt zu machen, sonst kann diese nicht nachgeschlagen werden.
Konfiguration Startbedingung
![](../../../__attachments/10684181/Replace_in_script_condition%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Konfiguration Script-Task
![](../../../__attachments/10684181/Replace_in_script%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Konfiguration Benutzer-Task
![](../../../__attachments/10684181/Replace_in_usertask_maskscript%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Aufruf per Methode
Speziell in BPM Skripten besteht die Möglichkeit globale Variablen über eine Methode auszulesen. Dabei kommt dann nicht immer nur ein String zurück, sondern der tatsächliche Datentyp (Boolean, Integer, Date, ...)
![](../../../__attachments/10684181/Als%20Methode.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Serverseitige Workflows
Zwei Anwendungsmöglichkeiten sind in der ScriptAction
oder in der WFScriptCondition
eines servereitigen Workflows, in diesem Beispiel die Variablen url
und execute:
![](../../../__attachments/10684181/Replace_in_scriptaction%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Konfiguration ScriptAction
![](../../../__attachments/10684181/Replace_in_wfscriptcondition%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Konfiguration WFScriptCondition
WebService
Ein Anwendungsfall ist der Ausführungsskript einer WebService Konfiguration, in diesem Beispiel die Variable code
.
![](../../../__attachments/10684181/Replace_in_webservicescript%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Konfigurations-Script
Dokumentvorlagen
Eine Anwendungsmöglichkeit sind Dokumentvorlagen. Alle globalen Variablen stehen in der Spalte Suchfeld zusammen mit den Feldern der Suche zur Verfügung. Das Verfahren ist analog zu den Suchfeldern, d.h. die globale Variable wird einer Textmarke zugeordnet. Als Typ steht nur der Textmarkentyp TEXT zur Verfügung.
![](../../../__attachments/10684181/image2021-5-6_17-43-12.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Abbildung: Globale Variable wird einer Textmarke zugeordnet
CSV-Export-Konfiguration
In der Konfiguration für den CSV-Export, die im PropertyMapper hinterlegt werden kann.
INSERT INTO PropertyMapper (Pk, id, property, PropertyType, principal, PropertyValue, CustLayer, Active, CreateDate, CreateUser,
UpdateDate, UpdateUser, STATUS, WFInstanceId, RightPk, ClientNo, MassData, OfflineData)
VALUES ('SYSTEM.ExportConfig', '/de/cursor/jevi/common/export/ExportConfigWorker$!!$MeineId', '' ,'SYSTEM', '',
'<ExportConfig type="CSV" file="$GLOBAL{myfilename}">
<Format fileFormat="UTF-8" dateFormat="dd.MM.yyyy hh:mm:ss" numberGroupDigit="." numberDecimalSymbol=","
booleanTrue="true" booleanFalse="false" nullValue="null" binary="Export fuer diesen Datentyp nicht moeglich" />
<SeparatorFormat separator=";" lineSeparator="#" tableSeparator="::" tableLineSeparator="%"
replaceSeparator="" replaceLineSeparator="" replaceTableSeparator="" replaceTableLineSeparator="" />
<Field name="MatchCode" fieldName="MatchCode.Customer" valueType="VALUE" fieldType="SIMPLE" />
<Field name="Name1" fieldName="Name1.Customer" valueType="VALUE" nullValue="" fieldType="SIMPLE" />
<Field name="DateOfOrigin" fieldName="DateOfOrigin.Customer" valueType="VALUE" nullValue="" fieldType="SIMPLE" />
<Field name="Freenumber1" fieldName="Freenumber1.Customer" valueType="VALUE" nullValue="" fieldType="SIMPLE" />
<Field name="Activities" aliasName="GPAktivitaeten" fieldType="TABLE">
<Field name="Activities_Subject" fieldName="Subject.Activity" valueType="VALUE" fieldType="SIMPLE" />
<Field name="Activities_DelegatedTo" fieldName="DelegatedTo.Activity" valueType="VALUE" fieldType="SIMPLE"/>
<Field name="Activities_DelegatedBy" fieldName="DelegatedBy.Activity" valueType="VALUE" fieldType="SIMPLE"/>
</Field>
<Field name="PersontypeKey" fieldName="PersontypeKey.Customer" valueType="KEY" nullValue="" fieldType="SIMPLE" />
</ExportConfig>', 'CN', 1, GETDATE(), 'TECH_USER', GETDATE(), 'TECH_USER', NULL, '#EMPTY-KEY#', NULL, NULL, 0, 0)
JasperReports
Beim Bearbeiten oder Erstellen von Reports werden alle verfügbaren Globalen Variablen als Parameter intern dem Report übergeben (ausgenommen Variablen vom Typ TIME_CONFIG). Im Report-Design werden alle globalen Variablen mit dem prefix GLOBAL_ angezeigt und können wie normale Parameter im Report verwendet werden.
![](../../../__attachments/10684181/GlobaleVariables_Report.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Erweiterte Einstellungen (Anwendungsvariablen)
Für Anwendungsvariablen können globale Variablen auf zwei Arten verwendet werden.
In Variablen vom Typ String können sie auf die gewöhnliche Weise verwendet werden
![](../../../__attachments/10684181/usevariable_pm.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
In Variablen vom Typ String, Integer oder Boolean können globale Variablen vom selben Typ und der selben Schicht (CN bzw. C2,C1,C0) über die Auswahlliste gewählt werden. Der Inhalt der globalen Variable wird dann als Inhalt der Anwendungsvariablen genutzt. Der Haken bei Globale Variable als Wert nutzen muss dafür gesetzt werden.
![](../../../__attachments/10684181/selectvariable_pm.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Automatischer Schlüsselabgleich
Um Konflikte mit Schlüsseln zu verhindern, die über Schnittstellen oder externe Quellen angelegt wurden, wurde ein Mechanismus geschaffen, der die Schlüssel, so weit möglich, abgleicht, andernfalls zumindest auf den Konflikt hinweist. Dazu müssen im Produktivsystem die Server angegeben werden, in die transferiert werden soll.
Einfügen der Schlüssel
Interne Schlüssel erhalten das Flag InternalKey.S_Keytab
bzw InternalKey.KeytabNum
. Schlüssel externer Quellen, die dieses Flag nicht setzen, werden automatisch abgeglichen. Nach dem Abgleich wird das Flag Merged.S_Keytab
bzw Merged.KeytabNum
gesetzt, wodurch signalisiert wird, dass dieser Schlüssel beim nächsten Durchlauf nicht erneut abzugleichen ist.
Konfiguration
![](../../../__attachments/10684181/Keymerge1%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Die Vier in der Abbildung markierten Einstellungen sind vorzunehmen.
Zunächst muss der Kurzname und das verschlüsselte Kennwort eines Mitarbeiters festgelegt werden, in dessen Kontext der Schlüsselabgleich ausgeführt wird. Das Passwort steht so in der Datenbank und wird in dieser Form auch beispielsweise zur Anmeldung an den WebServices benötigt. Wird Kerberos eingesetzt ist das Kennwort nicht verschlüsselt.
Weiterhin kann ein Mitarbeiter ausgewählt werden, der sich um eventuell festgestellte Konflikte kümmert. Diesem wird im Fehlerfall automatisch eine Aktivität zugeordnet.
Als letztes sind die WSDL-Adressen der Server anzugeben, in die transferiert wird.
![](../../../__attachments/10684181/Keymerge2%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Sofern gewünscht, kann - zusätzlich zu der Aktivität - eine E-Mail an den zuständigen Mitarbeiter verschickt werden. Dazu ist eine Mailkonfiguration mit dem Kurznamen KEY_MERGE
zu hinterlegen.
![](../../../__attachments/10684181/Keymerge4%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Ausführung
Damit der Abgleich ausgeführt wird, muss im Produktivsystem (dem System, aus dem übertragen werden soll), der Timer aktiviert werden.
![](../../../__attachments/10684181/KeyMerge5-1.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Für jeden Konflikt wird dem zuständigen Mitarbeiter eine Aktivität hinterlegt. Zusätzlich sind dort die Mitarbeiter verknüpft die dem Customizingpaket als Ansprechpartner zugeordnet sind, sofern der betroffenen Schlüssel einem Paket zugeordnet ist.
![](../../../__attachments/10684181/Keymerge3%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Automatischer Mitarbeiterabgleich
Um Konflikte mit Mitarbeitern zu verhindern, die in den verschieden Systemen mit unterschiedlichen Pks angelegt wurden, wurde ein Mechanismus geschaffen, der die wichtigsten Daten der Mitarbeiterin die anderen Systeme übertragt. Dazu müssen im Produktivsystem die Server angegeben werden, in die transferiert werden soll.
Anlegen der Mitarbeiter
Über die Oberfläche angelegte Mitarbeiter erhalten das Flag Merged.Employee
= false. Solche Mitarbeiter werden automatisch abgeglichen. Nach dem Abgleich wird das Flag gesetzt, wodurch signalisiert wird, dass dieser Mitarbeiter beim nächsten Durchlauf nicht erneut abzugleichen ist.
Übertragen werden nur die Felder ShortCut, Technicaluser, EmployeeMainGroup, ConfigurationKey, RightTemplate, UserPassword, FirstName, LastName, Sex, MatchCode und (mit 18.1) MainUnit. ALle anderen Felder sind, falls benötigt, nachzupflegen.
Konfiguration
![](../../../__attachments/10684181/3.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Die Vier in der Abbildung markierten Einstellungen sind vorzunehmen.
Für Kurzname, Kennwort und Zuständiger und das generieren von Mails siehe letztes Kapitel Automatischer Schlüsselabgleich.
Als letztes sind die WSDL-Adressen der Server anzugeben, in die transferiert wird.
![](../../../__attachments/10684181/2.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Ausführung
Damit der Abgleich ausgeführt wird, muss im Produktivsystem (dem System, aus dem übertragen werden soll), der Timer Mitarbeiter abgleichen aktiviert werden.
![](../../../__attachments/10684181/4.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
SQL-Statements
In der Adminkonsole unter Migration und Initialisierung / SQL Statements können SQL Statements direkt auf der Datenbank abgesetzt werden. Im Feld SQL Statement können ein oder mehrere Statements hinterlegt werden. Werden mehrere Statements hinterlegt, muss ein Trenner verwendet werden, der im Feld Trennzeichen zu hinterlegen ist. Es gibt nun mehrere Möglichkeiten der Ausführung:
Ausführen: Das Statement wird abgesetzt.
Anhängen: Das Statement wird nicht abgesetzt, sondern an ein Customizing Paket gehängt. Im Zielsystem wird nach dem Import der restlichen Customizings dieses Statement abgesetzt. Achtung: Wird das Paket verworfen, können die abgesetzten Statements nicht rückgängig gemacht werden.
Ausführen und Anhängen: Die beiden vorherigen Schritte werden nacheinander ausgeführt.
Schlägt ein Statement fehl, werden alle zurück gerollt, es sei denn, es wurde unter Oralce die Datenstruktur verändert.
![](../../../__attachments/10684181/image2021-5-6_17-33-52.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Statements aktivieren
Da direkter Zugang zur Datenbank gewährt wird, ist der Dialog standardmäßig für niemanden sichtbar. Es muss explizit die Berechtigung über ein Aktionsrecht erteilt werden.
![](../../../__attachments/10684181/image2021-5-6_17-24-27.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Abbildung: Administrationsmenü
![](../../../__attachments/10684181/image2021-5-6_17-26-50.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Abbildung: Aktionsrecht
![](../../../__attachments/10684181/image2021-5-6_17-28-58.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Abbildung: Konfiguration