Die Update-Dokumentation beschreibt die Schritte, die aus technischer Sicht zum Update einer Major-Version notwendig sind und gibt Hinweise, worauf aus technischer Sicht geachtet werden muss.
Voraussetzungen
Vorgehensweise
Bei dem Update ist unbedingt darauf zu achten, die einzelnen Schritte in der angegebenen Reihenfolge komplett abzuarbeiten und sich dabei exakt an die Anleitung zu halten. Im Fehlerfall ist die im Update Verzeichnis liegende Update und Update_Debug Textdatei zu sichern und mit dem Support Rücksprache zu halten.
Wenn Sie die Update-Prozedur erfolgreich abgeschlossen haben, teilen Sie uns bitte mit (support@cursor.de), welche Systeme (z.B. Test- oder Produktiv-System) Sie auf welche Version aktualisiert haben. Nur so können wir im Falle einer Support-Frage Ihr Problem möglichst schnell in unserem Haus prüfen.
Versionen
Ein Update ist immer von der letzten LTS Version und den letzten zwei Releases möglich.
Versionsvoraussetzungen für das CRM:
Installierte Version
Max. Update Version
25.1 LTS, 25.3, 25.4
25.5
Bei einem Update von der Version 2025.1 auf eine aktuellere Version ist der Patchlevel 25.1.13 oder aktueller zu verwenden
Tipp
Generell sollte immer der aktuelle Patch für die alte Version eingespielt werden, um Probleme beim Update zu vermeiden. Wird der Customizing Transport verwendet, empfehlen wir den Transport aller Pakete vor dem Update und auch eine Spiegelung der Datenbank (Prod in Test und QS). Auch sollte das Update über ein Wartungsfenster durchgeführt werden.
Prüfung der Metadaten
Beim Update auf eine neue Release-Version werden die Metadaten der Installation geprüft. In kritischen Fällen kann es sein, dass diese Prüfung das Fortführen des Update verhindert und den Update-Vorgang abbricht. In diesen Fällen muss zuerst der Metadatenfehler bereinigt und das Update anschließend erneut durchgeführt werden.
Systemvoraussetzungen für Update
System-Voraussetzungen
Die Systemvoraussetzungen können unter Systemvoraussetzungen eingesehen werden. Erforderliche Portfreigaben zwischen Rich Client und Applikationsserver finden Sie ebenfalls in dem Dokument.
Update-Vorbereitungen
Download der Version
Um die für Update-Zwecke benötigte Programm-Version zu erhalten, melden Sie sich bitte im Kundenbereich von www.cursor.de an. Dort können Sie im Downloadportal das entsprechende Paket beziehen. Bei Rückfragen wenden Sie sich bitte an den Support der CURSOR Software AG (support@cursor.de). Nachdem Sie die gezippte Datei heruntergeladen haben, entpacken Sie diese auf dem Applikationsserver.
Verzeichnisstruktur des Update- bzw. Installationspakets
Nachdem Sie die gezippte Datei für beispielsweise CURSOR-CRM 2025.5 (25.5.x) entpackt haben, ergibt sich (unter anderem) folgende ähnliche Verzeichnisstruktur:
Hauptverzeichnis: CURSOR-CRM_25.5.X (Im Folgenden <INSTALL-DIR> genannt).
Unterverzeichnis:
client (CURSOR-CRM-Client)
clientlog (Verzeichnis/Freigabe für Clientlogs)
cti (Dateien für einen CTI Server)
db (Datenbankskripte)
installer (Die Dateien des Update- bzw. Installationstools)
jdk (Open JDK für Windows und Linux)
server (Applikationsserver JBoss)
tools (Tools für die Installation)
Wartungsfenster einrichten, um alle Benutzer abmelden
Bevor Sie mit dem Update beginnen, stellen Sie sicher, dass keine User im System angemeldet sind. Angemeldete User können im Windows Client über das Menü Extras / Aktive Benutzer oder im Web Client über Benutzermenü / Aktive Benutzer angezeigt werden. Aktive Benutzer können per "Mail senden" Aktion eine E-Mail erhalten.
Eine deutlich einfachere Variante ist die Anlage eines Wartungsfensters. Hierbei können die Benutzer informiert werden, dass eine Wartung ansteht und sie werden zum definierten Zeitpunkt vom System abgemeldet.
Unter Administration / Datenfluss einen neuen Wartungsfenster-Datensatz anlegen und dort die Informationen pflegen. Der Benutzer, der dort hinterlegt wird, muss auch das Update ausführen, da nur dieser Benutzer sich im Zeitraum des Wartungsfensters am System anmelden kann. Es werden alle Timer für diese Zeit ausgesetzt, laufende Prozesse werden aber nicht unterbrochen. Es ist daher sinnvoll, wenn etwas Zeit vor dem eigentlichen Update für den Wartungszeitraum reserviert wird.
Externe Datenbankschnittstellen sollten ebenfalls während eines Updates deaktiviert werden.
Massendatenserver prüfen
Unter Optionen / Systemeinstellungen / Allgemein / Adresse des Anwendungsservers prüfen Sie, ob ein Massendatenserver eingerichtet wurde. Dieser darf zum Zeitpunkt des Updates nicht aktiv sein. Falls Sie das Update am Massendatenserver ausführen, erhalten Sie im Verlauf der Aktualisierung einen Hinweis.
Datenbank sichern
Microsoft SQL Server: Über Microsoft SQL Server Management Studio.
ORACLE: Auf dem Datenbankserver über EXPDP das aktuelle Schema exportieren.
Für beide Datenbanksysteme werden hierfür in der Regel Skripte bei der Installation bereitgestellt. Den genauen Pfad entnehmen Sie der bei der Installation mitgelieferten Installationsübersicht im Feld Skriptverzeichnis. Dies befindet sich im Abschnitt Datenbanken (DB).
Tipp
Bei Produktivsystemen kann es sinnvoll sein, die Sicherung vor dem Update manuell durchzuführen. Die Updateroutine kann die Sicherung allerdings auch durchführen. Wird die Sicherung vorher manuell erstellt, empfiehlt es sich, die Sicherung im Rahmen des Updates zu deaktivieren.
Alternativ ist es möglich unseren Spiegelungsassistenten zu nutzen:
Voraussetzungen des Spiegelungsassistenten:
Der ausführende Anwender muss Admin-Berechtigungen haben.
Es muss mindestens eine 2-System-Landschaft mit gleicher CRM Version geben.
Es dürfen keine offenen Customizing-Pakete in den Zielsystemen existieren (dies wird vom Assistenten geprüft).
Datenbank-Skripte sichern
Bei einigen Kunden wurden Änderungen an den Datenbank-Scripten in db\scripts oder im Verzeichnis db\scripts\stmts vorgenommen. Häufig ist die Datei propertymapper.sql angepasst oder auch die Datei RenewIndexes.sql um kundenspezifische Indizes erweitert.
Geplante Tasks deaktivieren
Bei einigen Kunden werden z.B. stündlich automatisch Tasks gestartet, die z.B. einen Import in die Datenbank ausführen. Diese Tasks müssen vor dem Update beendet werden, da es sonst Konflikte während der Aktualisierung der Datenbankstrukturen gibt.
Update-Vorgehensweise
Im folgenden Kapitel wird das Update einer CURSOR-CRM-Installation beschrieben. Hierbei müssen die folgenden drei Komponenten aktualisiert werden:
Datenbank
Applikationsserver
Windows Client
Automatisierter Updatevorgang
Voraussetzungen:
Das Update muss auf dem Applikationsserver ausgeführt werden.
Auf dem Applikationsserver muss auch der Rich Client installiert sein.
Der Applikationsserver ist als Dienst gestartet und der aktuelle Benutzer der Maschine hat die Berechtigung, den Dienst zu beenden/starten, Dienste zu löschen und Dienste zu installieren
Der Benutzer muss auch Powershell-Skripte ausführen dürfen, da diese genutzt werden, um die Datenbankverbindung im JBoss bekannt zu machen. (Lesen der aktuellen ExecutionPolicy: Get-ExecutionPolicy Setzen der ExecutionPolicy: Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted
Die ExecutionPolicy kann vom Administrator per Richtlinie auch fest auf einen Wert gesetzt werden, so dass nur er diese ändern kann.
Im Folgenden wird der Updatevorgang unter diesen Voraussetzungen beschrieben.
Bei einem Update müssen sowohl der Applikations-Server als auch der Rich Client aktualisiert werden. Der Web Client ist im Applikationsserver enthalten. Zunächst müssen sich alle Anwender vom System abmelden.
Erstellen Sie innerhalb des Installationsverzeichnisses der Anwendung ein Unterverzeichnis namens "update", z.B. D:\CURSOR\EVI\update
Entpacken Sie das Installationspaket in dieses Verzeichnis.
Die folgende Datei ausführen: "update.bat". Es ist auch möglich, das Installationsverzeichnis als Parameter zu übergeben, z.B. update.bat "D:\CURSOR\EVI\update" Unter Linux starten Sie das Update mit ./update.sh
CODE
D:\InstallDir\update>.\update.bat
Wenn Sie die Datei update.bat ausgeführt haben, erscheint (nach Auswahl der Installationssprache) ein Willkommensbildschirm:
Die Installation Klicken Sie auf "Weiter". Sie werden folgenden Dialog sehen:
Wechseln Sie zum folgenden Dialog. Sie werden aufgefordert, die Verzeichnisse ...server/JBoss und ...client/JBoss auszuwählen - im Standard wird dies automatisch erkannt, wenn Sie den Update-Ordner in ihr JBoss-Verzeichnis gelegt haben.
Im nächsten Schritt müssen Sie die Daten eines administrativen Kontos angeben, mit dem das Update durchgeführt werden wird, sowie das Sicherungsverzeichnis auswählen.
Wenn Sie jetzt auf Weiter klicken, wird automatisch mit dem nächsten Schritt fortgefahren (zunächst Datenbank-Backup) und danach der Server- bzw. Client-Backup-Vorgang entsprechend Ihrer Angaben ausgeführt.
Nach dem Klick auf Starte SSLUpdateTool erscheint folgender Dialog:
Danach kann der Installationsassistent mit weiter fortgeführt werden:
SSL Konfiguration (Sicherheitszertifikate)
Die Konfiguration erfolgt mit dem Updater und der integrierten Anwendung "CURSOR Key- und Trustore Tool":
Feld
Beschreibung
Zertifikat (Public key)
Das hier angegebene Zertifikat, auch Public Key genannt, wird in den Keystore gespeichert. Wird hier ein Keystore angegeben, erfolgt keine Erstellung eines neuen Keystores. Für die Formate PKCS#12 und Java Keystore ist die Angabe des Passwortes notwendig. Erlaubte Dateiformate:
.crt*
.pem*
.pfx**
.p12**
.p7b*
.jks**
*Die Angabe eines Private Key ist erfoderlich! **Die Angabe des Passwortes ist erfoderlich!
Zertifikatspasswort
Dieses Passwort wird zum Entschlüsseln des PKCS#12 Zertifikats bzw. Java Keystore verwendet.
Private Key
Hier muss der zum Zertifikat (Public Key) zugehörige Private Key angegeben werden. Die Angabe des Private Key ist nicht erforderlich, wenn als Public Key ein PKCS#12 Zertifikat oder ein Java Keystore angegeben wurde. Erlaubte Dateiformate:
.key
.pem
.txt
Key Passwort
Ist der Private Key verschlüsselt, wird dieses Passwort zum entschlüsseln verwendet. Das Feld ist optional.
CA Zertifikate
Mit der Liste der hier angegebenen Zertifikate wird versucht, die Zertifikatskette herzustellen. Es müsen alle Intermediate- und Root-Zertifikate angegeben werden, die hierfür nötig sind. Diese und alle weiteren angegebenen Zertifikate werden in den Truststore eingefügt. Erlaubte Dateiformate:
.crt
.cer
.pem
Bestehender Truststore
Der existierende Truststore. Hier kann optional ein bereits bestehender Truststore angegeben werden. Ist dies der Fall, wird dieser als Grundlage für den neuen Truststore verwendet und wird um die angegebenen Zertifikate ergänzt und unter neuem Namen gespeichert. Ist das Feld leer, so wird ein neuer Truststore mit den angegebenen CA Zertifikaten erstellt.
Truststore Passwort
Dieses Passwort wird zum Entschlüsseln des bestehenden Truststores verwendet.
Truststore CURSOR
Hier muss der Pfad zur Datei truststore_cursor.jks angegeben werden. Dieser Truststore wird als Grundlage für die Erstellung des neuen Truststores verwendet. Es muss der Truststore aus der Auslieferungsversion verwendet werden.
Ausgabepasswort
Dieses Passwort wird zum Verschlüsseln des Key- und Truststores verwendet.
Ausgabeverzeichnis
In dieses Verzeichnis werden die neu erstellen Key- und Truststore-Dateien abgelegt. Wurde das Verzeichnis als Parameter übergeben, ist dieser Wert nicht änderbar.
Weiterführende Informationen zur Thematik Sicherheitszertifikate finden Sie im Installationshandbuch unter dem Abschnitt Installation des Applikationsservers im Kapitel SSL-Installation und -Konfiguration (Das Installationshandbuch erhalten Sie auf Anfrage).
Danach erfolgt eine Zusammenfassung des Updates.
Sie müssen nun abwarten, bis der gesamte Updatevorgang automatisch zu Ende geführt wird.
Wenn Sie in den nächsten Schritt wechseln, werden Sie noch einmal aufgefordert, die Konfiguration entsprechend vorzubereiten, wie es hier zuvor beschrieben wurde. Prüfen Sie dies noch einmal und fahren Sie dann fort. Der Vorgang wird einige Zeit in Anspruch nehmen. Anschließend erhalten Sie einen ähnlichen Bestätigungsbildschirm wie folgt:
Mit einem Klick auf Beenden kann der Installationsassistent nun geschlossen werden.
Masterclient aktualisieren
Um nicht bei jedem Update oder Patch den Client neu verteilen zu müssen, bietet CURSOR-CRM die Möglichkeit, einen Master-Client zu verwenden. Das Installationsverzeichnis des Master-Clients entnehmen Sie der Installationsübersicht (Feld Auto-Update-Verzeichnis). Änderungen müssen somit nur an diesem einen Client durchgeführt werden. Bei der Anmeldung an CURSOR-CRM wird zunächst geprüft, ob Änderungen vorliegen. Sind Änderungen vorhanden, wird das Update des Clients voll automatisch durchgeführt. Somit ist mit minimalem Aufwand sichergestellt, dass alle Benutzer von CURSOR-CRM mit dem aktuellsten Client arbeiten.
Die zuvor konfigurierte Datei ..\client\jboss\custom\configuration.bat aus der neuen Version muss ebenfalls in den Master-Client übernommen werden. In der Datei ...\Client\jboss\custom\update.properties werden die Einstellungen zum automatischen Aktualisieren der einzelnen Verzeichnisse vorgenommen.
In dem Verzeichnis custom öffnen Sie die Datei update.properties mit einem Texteditor. Ändern Sie die folgenden Schlüssel auf das aktuelle Tagesdatum und die aktuelle Uhrzeit.
Der Eintrag LAST-UPDATE gibt die letzte Änderung an dem Master-Client an. Für jedes Verzeichnis gibt es einen Eintrag in der Datei update.properties (EXT-DIR, BIN-DIR, CONF-DIR, LIB-DIR, CUST-EXT-DIR usw.). Zum Aktualisieren muss das Datum und die Uhrzeit für jedes Verzeichnis und bei dem Eintrag LAST-UPDATE aktualisiert werden.
Aktivierung des automatischen Client-Updatetools
Der Master-Client muss in der Datei Client\jboss\custom\configuration.bat aktiviert sein. Hierzu gibt es in der Datei-Zeile 64 den Eintrag SET USE_UPDATE_TOOL=true. Dieser muss zum Aktivieren auf 'true' gesetzt sein.
Starten des Client-Updatetools
Beim Starten eines noch nicht aktualisierten Clients wird die folgende Fortschrittsanzeige angezeigt, die das Kopieren diverser Dateien visualisiert.
Datenbank-Statistiken aktualisieren
Bei ORACLE-Datenbanken: Ausführen der Datei db\scripts\analyzeTables.bat (bei Linux db\scripts\linux\analyzeTables.sh). Hierdurch wird auch die SQL-Datei RenewIndexes.sql, die bei einigen Kunden erweitert wurde, ausgeführt.
Bei MS-SQL eine Datenbankoptimierung durchführen.
Weitere Hinweise
Turnus zum Neustart des Applikationsservers
Tipp
Es wird empfohlen, den Applikationsserver in einem monatlichen Turnus neu zu starten. Häufigere Neustarts würden dazu führen, dass aus Performance-Sicht wertvolle Cache-Informationen temporär verloren gehen und damit neu aufzubauen wären.
Falls das Zusatzmodul CTI Schnittstelle im Einsatz ist, sollte der zusätzliche Dienst des CTI-Applikationsservers mindestens 1 Mal wöchentlich oder noch besser nächtlich neu gestartet werden, damit die CTI-Schnittstellen neu initialisiert werden können.
Dokumentenbearbeitung und externe Aufrufe im Web Client
Zur Nutzung der erweiterten Dateibehandlung und der externen Aufrufe im Web Client ist die Nutzung der "CURSOR Browser-Erweiterung" und des zugehörigen "Communication Host für die CURSOR Browser-Erweiterung" zwingend erforderlich.
Besonderheiten beim Einsatz eines CTI Servers.
Wenn die CTI-Schnittstelle im Einsatz ist, muss der dafür vorhandene JBoss ebenfalls aktualisiert werden.
Schriftarten
Die ausgelieferten Reports verwenden als Standardschriftart Tahoma, welche im TrueType Format auf dem Applikationsserver installiert sein muss. Läuft der Applikationsserver unter Linux, bietet es sich an, zunächst die MS TrueType CoreFonts zu installieren und anschließend noch den Tahoma-Font hinzuzufügen.
Sofern Sie eine gültige Windows-Lizenz haben, kopieren Sie die Datei tahoma.ttf aus dem Verzeichnis C:\Windows\Fonts
Bei SuSE Linux
BASH
# als Benutzer root:
# Kopieren Sie die Datei tahoma.ttf in das fonts Verzeichnis
cp tahoma.ttf /usr/share/fonts/truetype
# Font-Cache neu laden
fc-cache
Alternative Schriftart-Bibliothek
Ist eine Installation der Schriftarten auf dem Server nicht möglich, können auch im Applikationsserver alle benötigten Schriftarten als Bibliothek installiert werden. Wie auch die Datenbank-Treiber wird die Datei cursor-font.jar im Verzeichnis ./custExt abgelegt
Eine vorkonfigurierte Bibliothek mit den Windows-Schriftarten Calibri und Tahoma können Sie von der CURSOR-Website herunterladen.
Informationen finden Sie in der Patch-Dokumentation im Kundenportal.
2025.5
Systemrelevante Informationen für Administratoren
Prüfung auf vollqualifizierte Java-Klassen in der Metadatenprüfung
Aufgrund der Umbenennung der Klassen seitens Java muss der Kunde evtl. seine Skripte korrigieren, wenn er Java-Klassen vollqualifiziert eingebunden hat. Aus diesem Grund gibt es einen Hinweis in der Metadatenprüfung.
Betroffen sind Klassen mit dem Package beginnend mit "javax." welches nun nach "jakarta." umbenannt wurde.
Aktuell wird "nur" eine Warnung in der Metadatenprüfung ausgegeben, da die entsprechenden Texte auch in Kommentaren vorkommen können.
Mit den folgenden Statements können die potentiell betroffenen Stellen identifiziert werden:
unter Oracle
SQL
SELECT 'ScriptMethod C0' AS foundAt,
MethodType AS scriptType,
ScriptLibraryKey AS libName,
to_nChar( MethodName) AS name,
to_nClob( ScriptC0) AS scriptText
FROM
ScriptMethod
WHERE
Active = 1 AND
( ScriptC0 LIKE '%javax.activation%' OR
ScriptC0 LIKE '%javax.annotation%' OR
ScriptC0 LIKE '%javax.batch%' OR
ScriptC0 LIKE '%javax.decorator%' OR
ScriptC0 LIKE '%javax.ejb%' OR
ScriptC0 LIKE '%javax.el%' OR
ScriptC0 LIKE '%javax.enterprise%' OR
ScriptC0 LIKE '%javax.faces%' OR
ScriptC0 LIKE '%javax.inject%' OR
ScriptC0 LIKE '%javax.interceptor%' OR
ScriptC0 LIKE '%javax.jms%' OR
ScriptC0 LIKE '%javax.json%' OR
ScriptC0 LIKE '%javax.jws%' OR
ScriptC0 LIKE '%javax.mail%' OR
ScriptC0 LIKE '%javax.persistence%' OR
ScriptC0 LIKE '%javax.resource%' OR
ScriptC0 LIKE '%javax.security%' OR
ScriptC0 LIKE '%javax.servlet%' OR
ScriptC0 LIKE '%javax.transaction%' OR
ScriptC0 LIKE '%javax.validation%' OR
ScriptC0 LIKE '%javax.websocket%' OR
ScriptC0 LIKE '%javax.ws.rs%' OR
ScriptC0 LIKE '%javax.xml.bind%' OR
ScriptC0 LIKE '%javax.xml.soap%' OR
ScriptC0 LIKE '%javax.xml.ws%')
UNION ALL
SELECT 'TestScriptMethod C0' AS foundAt,
MethodType AS scriptType,
ScriptLibraryKey AS libName,
to_nChar( MethodName) AS name,
to_nClob( testScriptC0) AS scriptText
FROM
ScriptMethod
WHERE
Active = 1 AND
( testScriptC0 LIKE '%javax.activation%' OR
testScriptC0 LIKE '%javax.annotation%' OR
testScriptC0 LIKE '%javax.batch%' OR
testScriptC0 LIKE '%javax.decorator%' OR
testScriptC0 LIKE '%javax.ejb%' OR
testScriptC0 LIKE '%javax.el%' OR
testScriptC0 LIKE '%javax.enterprise%' OR
testScriptC0 LIKE '%javax.faces%' OR
testScriptC0 LIKE '%javax.inject%' OR
testScriptC0 LIKE '%javax.interceptor%' OR
testScriptC0 LIKE '%javax.jms%' OR
testScriptC0 LIKE '%javax.json%' OR
testScriptC0 LIKE '%javax.jws%' OR
testScriptC0 LIKE '%javax.mail%' OR
testScriptC0 LIKE '%javax.persistence%' OR
testScriptC0 LIKE '%javax.resource%' OR
testScriptC0 LIKE '%javax.security%' OR
testScriptC0 LIKE '%javax.servlet%' OR
testScriptC0 LIKE '%javax.transaction%' OR
testScriptC0 LIKE '%javax.validation%' OR
testScriptC0 LIKE '%javax.websocket%' OR
testScriptC0 LIKE '%javax.ws.rs%' OR
testScriptC0 LIKE '%javax.xml.bind%' OR
testScriptC0 LIKE '%javax.xml.soap%' OR
testScriptC0 LIKE '%javax.xml.ws%')
UNION ALL
SELECT 'ScriptMethod C1' AS foundAt,
MethodType AS scriptType,
ScriptLibraryKey AS libName,
to_nChar( MethodName) AS name,
to_nClob( ScriptC1) AS scriptText
FROM
ScriptMethod
WHERE
Active = 1 AND
( ScriptC1 LIKE '%javax.activation%' OR
ScriptC1 LIKE '%javax.annotation%' OR
ScriptC1 LIKE '%javax.batch%' OR
ScriptC1 LIKE '%javax.decorator%' OR
ScriptC1 LIKE '%javax.ejb%' OR
ScriptC1 LIKE '%javax.el%' OR
ScriptC1 LIKE '%javax.enterprise%' OR
ScriptC1 LIKE '%javax.faces%' OR
ScriptC1 LIKE '%javax.inject%' OR
ScriptC1 LIKE '%javax.interceptor%' OR
ScriptC1 LIKE '%javax.jms%' OR
ScriptC1 LIKE '%javax.json%' OR
ScriptC1 LIKE '%javax.jws%' OR
ScriptC1 LIKE '%javax.mail%' OR
ScriptC1 LIKE '%javax.persistence%' OR
ScriptC1 LIKE '%javax.resource%' OR
ScriptC1 LIKE '%javax.security%' OR
ScriptC1 LIKE '%javax.servlet%' OR
ScriptC1 LIKE '%javax.transaction%' OR
ScriptC1 LIKE '%javax.validation%' OR
ScriptC1 LIKE '%javax.websocket%' OR
ScriptC1 LIKE '%javax.ws.rs%' OR
ScriptC1 LIKE '%javax.xml.bind%' OR
ScriptC1 LIKE '%javax.xml.soap%' OR
ScriptC1 LIKE '%javax.xml.ws%')
UNION ALL
SELECT 'TestScriptMethod C1' AS foundAt,
MethodType AS scriptType,
ScriptLibraryKey AS libName,
to_nChar( MethodName) AS name,
to_nClob( testScriptC1) AS scriptText
FROM
ScriptMethod
WHERE
Active = 1 AND
( testScriptC1 LIKE '%javax.activation%' OR
testScriptC1 LIKE '%javax.annotation%' OR
testScriptC1 LIKE '%javax.batch%' OR
testScriptC1 LIKE '%javax.decorator%' OR
testScriptC1 LIKE '%javax.ejb%' OR
testScriptC1 LIKE '%javax.el%' OR
testScriptC1 LIKE '%javax.enterprise%' OR
testScriptC1 LIKE '%javax.faces%' OR
testScriptC1 LIKE '%javax.inject%' OR
testScriptC1 LIKE '%javax.interceptor%' OR
testScriptC1 LIKE '%javax.jms%' OR
testScriptC1 LIKE '%javax.json%' OR
testScriptC1 LIKE '%javax.jws%' OR
testScriptC1 LIKE '%javax.mail%' OR
testScriptC1 LIKE '%javax.persistence%' OR
testScriptC1 LIKE '%javax.resource%' OR
testScriptC1 LIKE '%javax.security%' OR
testScriptC1 LIKE '%javax.servlet%' OR
testScriptC1 LIKE '%javax.transaction%' OR
testScriptC1 LIKE '%javax.validation%' OR
testScriptC1 LIKE '%javax.websocket%' OR
testScriptC1 LIKE '%javax.ws.rs%' OR
testScriptC1 LIKE '%javax.xml.bind%' OR
testScriptC1 LIKE '%javax.xml.soap%' OR
testScriptC1 LIKE '%javax.xml.ws%')
UNION ALL
SELECT 'ScriptMethod C2' AS foundAt,
MethodType AS scriptType,
ScriptLibraryKey AS libName,
to_nChar( MethodName) AS name,
to_nClob( ScriptC2) AS scriptText
FROM
ScriptMethod
WHERE
Active = 1 AND
( ScriptC2 LIKE '%javax.activation%' OR
ScriptC2 LIKE '%javax.annotation%' OR
ScriptC2 LIKE '%javax.batch%' OR
ScriptC2 LIKE '%javax.decorator%' OR
ScriptC2 LIKE '%javax.ejb%' OR
ScriptC2 LIKE '%javax.el%' OR
ScriptC2 LIKE '%javax.enterprise%' OR
ScriptC2 LIKE '%javax.faces%' OR
ScriptC2 LIKE '%javax.inject%' OR
ScriptC2 LIKE '%javax.interceptor%' OR
ScriptC2 LIKE '%javax.jms%' OR
ScriptC2 LIKE '%javax.json%' OR
ScriptC2 LIKE '%javax.jws%' OR
ScriptC2 LIKE '%javax.mail%' OR
ScriptC2 LIKE '%javax.persistence%' OR
ScriptC2 LIKE '%javax.resource%' OR
ScriptC2 LIKE '%javax.security%' OR
ScriptC2 LIKE '%javax.servlet%' OR
ScriptC2 LIKE '%javax.transaction%' OR
ScriptC2 LIKE '%javax.validation%' OR
ScriptC2 LIKE '%javax.websocket%' OR
ScriptC2 LIKE '%javax.ws.rs%' OR
ScriptC2 LIKE '%javax.xml.bind%' OR
ScriptC2 LIKE '%javax.xml.soap%' OR
ScriptC2 LIKE '%javax.xml.ws%')
UNION ALL
SELECT 'TestScriptMethod C2' AS foundAt,
MethodType AS scriptType,
ScriptLibraryKey AS libName,
to_nChar( MethodName) AS name,
to_nClob( testScriptC2) AS scriptText
FROM
ScriptMethod
WHERE
Active = 1 AND
( testScriptC2 LIKE '%javax.activation%' OR
testScriptC2 LIKE '%javax.annotation%' OR
testScriptC2 LIKE '%javax.batch%' OR
testScriptC2 LIKE '%javax.decorator%' OR
testScriptC2 LIKE '%javax.ejb%' OR
testScriptC2 LIKE '%javax.el%' OR
testScriptC2 LIKE '%javax.enterprise%' OR
testScriptC2 LIKE '%javax.faces%' OR
testScriptC2 LIKE '%javax.inject%' OR
testScriptC2 LIKE '%javax.interceptor%' OR
testScriptC2 LIKE '%javax.jms%' OR
testScriptC2 LIKE '%javax.json%' OR
testScriptC2 LIKE '%javax.jws%' OR
testScriptC2 LIKE '%javax.mail%' OR
testScriptC2 LIKE '%javax.persistence%' OR
testScriptC2 LIKE '%javax.resource%' OR
testScriptC2 LIKE '%javax.security%' OR
testScriptC2 LIKE '%javax.servlet%' OR
testScriptC2 LIKE '%javax.transaction%' OR
testScriptC2 LIKE '%javax.validation%' OR
testScriptC2 LIKE '%javax.websocket%' OR
testScriptC2 LIKE '%javax.ws.rs%' OR
testScriptC2 LIKE '%javax.xml.bind%' OR
testScriptC2 LIKE '%javax.xml.soap%' OR
testScriptC2 LIKE '%javax.xml.ws%')
UNION ALL
SELECT 'MaskScript C0' AS foundAt,
ScriptType AS scriptType,
'--' AS libName,
to_nChar( EntityName) AS name,
to_nClob( Script) AS scriptText
FROM
MaskScript
WHERE
Active = 1 AND
custLayer = 'C0' AND
( Script LIKE '%javax.activation%' OR
Script LIKE '%javax.annotation%' OR
Script LIKE '%javax.batch%' OR
Script LIKE '%javax.decorator%' OR
Script LIKE '%javax.ejb%' OR
Script LIKE '%javax.el%' OR
Script LIKE '%javax.enterprise%' OR
Script LIKE '%javax.faces%' OR
Script LIKE '%javax.inject%' OR
Script LIKE '%javax.interceptor%' OR
Script LIKE '%javax.jms%' OR
Script LIKE '%javax.json%' OR
Script LIKE '%javax.jws%' OR
Script LIKE '%javax.mail%' OR
Script LIKE '%javax.persistence%' OR
Script LIKE '%javax.resource%' OR
Script LIKE '%javax.security%' OR
Script LIKE '%javax.servlet%' OR
Script LIKE '%javax.transaction%' OR
Script LIKE '%javax.validation%' OR
Script LIKE '%javax.websocket%' OR
Script LIKE '%javax.ws.rs%' OR
Script LIKE '%javax.xml.bind%' OR
Script LIKE '%javax.xml.soap%' OR
Script LIKE '%javax.xml.ws%')
UNION ALL
SELECT 'MaskScript C1' AS foundAt,
ScriptType AS scriptType,
'--' AS libName,
to_nChar( EntityName) AS name,
to_nClob( Script) AS scriptText
FROM
MaskScript
WHERE
Active = 1 AND
custLayer = 'C1' AND
( Script LIKE '%javax.activation%' OR
Script LIKE '%javax.annotation%' OR
Script LIKE '%javax.batch%' OR
Script LIKE '%javax.decorator%' OR
Script LIKE '%javax.ejb%' OR
Script LIKE '%javax.el%' OR
Script LIKE '%javax.enterprise%' OR
Script LIKE '%javax.faces%' OR
Script LIKE '%javax.inject%' OR
Script LIKE '%javax.interceptor%' OR
Script LIKE '%javax.jms%' OR
Script LIKE '%javax.json%' OR
Script LIKE '%javax.jws%' OR
Script LIKE '%javax.mail%' OR
Script LIKE '%javax.persistence%' OR
Script LIKE '%javax.resource%' OR
Script LIKE '%javax.security%' OR
Script LIKE '%javax.servlet%' OR
Script LIKE '%javax.transaction%' OR
Script LIKE '%javax.validation%' OR
Script LIKE '%javax.websocket%' OR
Script LIKE '%javax.ws.rs%' OR
Script LIKE '%javax.xml.bind%' OR
Script LIKE '%javax.xml.soap%' OR
Script LIKE '%javax.xml.ws%')
UNION ALL
SELECT 'MaskScript C2' AS foundAt,
ScriptType AS scriptType,
'--' AS libName,
to_nChar( EntityName) AS name,
to_nClob( Script) AS scriptText
FROM
MaskScript
WHERE
Active = 1 AND
custLayer = 'C2' AND
( Script LIKE '%javax.activation%' OR
Script LIKE '%javax.annotation%' OR
Script LIKE '%javax.batch%' OR
Script LIKE '%javax.decorator%' OR
Script LIKE '%javax.ejb%' OR
Script LIKE '%javax.el%' OR
Script LIKE '%javax.enterprise%' OR
Script LIKE '%javax.faces%' OR
Script LIKE '%javax.inject%' OR
Script LIKE '%javax.interceptor%' OR
Script LIKE '%javax.jms%' OR
Script LIKE '%javax.json%' OR
Script LIKE '%javax.jws%' OR
Script LIKE '%javax.mail%' OR
Script LIKE '%javax.persistence%' OR
Script LIKE '%javax.resource%' OR
Script LIKE '%javax.security%' OR
Script LIKE '%javax.servlet%' OR
Script LIKE '%javax.transaction%' OR
Script LIKE '%javax.validation%' OR
Script LIKE '%javax.websocket%' OR
Script LIKE '%javax.ws.rs%' OR
Script LIKE '%javax.xml.bind%' OR
Script LIKE '%javax.xml.soap%' OR
Script LIKE '%javax.xml.ws%')
UNION ALL
SELECT CONCAT( 'ProcessContainer' , pc.CustLayer) AS foundAt,
'--' AS scriptType,
'--' AS libName,
to_nChar( pc.Id) AS name,
to_nClob( pm.XmlData) AS scriptText
FROM
ProcessModel pm,
ProcessContainer pc
WHERE
pc.Active = 1 AND
pm.Active = 1 AND
pm.processkey = pc.pk AND
pc.SnapShotId IS NOT NULL AND
( pm.XmlData LIKE '%javax.activation%' OR
pm.XmlData LIKE '%javax.annotation%' OR
pm.XmlData LIKE '%javax.batch%' OR
pm.XmlData LIKE '%javax.decorator%' OR
pm.XmlData LIKE '%javax.ejb%' OR
pm.XmlData LIKE '%javax.el%' OR
pm.XmlData LIKE '%javax.enterprise%' OR
pm.XmlData LIKE '%javax.faces%' OR
pm.XmlData LIKE '%javax.inject%' OR
pm.XmlData LIKE '%javax.interceptor%' OR
pm.XmlData LIKE '%javax.jms%' OR
pm.XmlData LIKE '%javax.json%' OR
pm.XmlData LIKE '%javax.jws%' OR
pm.XmlData LIKE '%javax.mail%' OR
pm.XmlData LIKE '%javax.persistence%' OR
pm.XmlData LIKE '%javax.resource%' OR
pm.XmlData LIKE '%javax.security%' OR
pm.XmlData LIKE '%javax.servlet%' OR
pm.XmlData LIKE '%javax.transaction%' OR
pm.XmlData LIKE '%javax.validation%' OR
pm.XmlData LIKE '%javax.websocket%' OR
pm.XmlData LIKE '%javax.ws.rs%' OR
pm.XmlData LIKE '%javax.xml.bind%' OR
pm.XmlData LIKE '%javax.xml.soap%' OR
pm.XmlData LIKE '%javax.xml.ws%')
UNION ALL
SELECT 'WebService' AS foundAt,
PortName AS scriptType,
MethodName AS libName,
to_nChar( ServiceId) AS name,
to_nClob( Script) AS scriptText
FROM
WebService
WHERE
Active = 1 AND
( Script LIKE '%javax.activation%' OR
Script LIKE '%javax.annotation%' OR
Script LIKE '%javax.batch%' OR
Script LIKE '%javax.decorator%' OR
Script LIKE '%javax.ejb%' OR
Script LIKE '%javax.el%' OR
Script LIKE '%javax.enterprise%' OR
Script LIKE '%javax.faces%' OR
Script LIKE '%javax.inject%' OR
Script LIKE '%javax.interceptor%' OR
Script LIKE '%javax.jms%' OR
Script LIKE '%javax.json%' OR
Script LIKE '%javax.jws%' OR
Script LIKE '%javax.mail%' OR
Script LIKE '%javax.persistence%' OR
Script LIKE '%javax.resource%' OR
Script LIKE '%javax.security%' OR
Script LIKE '%javax.servlet%' OR
Script LIKE '%javax.transaction%' OR
Script LIKE '%javax.validation%' OR
Script LIKE '%javax.websocket%' OR
Script LIKE '%javax.ws.rs%' OR
Script LIKE '%javax.xml.bind%' OR
Script LIKE '%javax.xml.soap%' OR
Script LIKE '%javax.xml.ws%') ;
MSSQL:
unter MSSQL
SQL
SELECT 'ScriptMethod C0' AS foundAt,
MethodType AS scriptType,
ScriptLibraryKey AS libName,
CAST( MethodName AS NVARCHAR) AS name,
CAST( ScriptC0 AS NVARCHAR) AS scriptText
FROM
ScriptMethod
WHERE
Active = 1 AND
( ScriptC0 LIKE '%javax.activation%' OR
ScriptC0 LIKE '%javax.annotation%' OR
ScriptC0 LIKE '%javax.batch%' OR
ScriptC0 LIKE '%javax.decorator%' OR
ScriptC0 LIKE '%javax.ejb%' OR
ScriptC0 LIKE '%javax.el%' OR
ScriptC0 LIKE '%javax.enterprise%' OR
ScriptC0 LIKE '%javax.faces%' OR
ScriptC0 LIKE '%javax.inject%' OR
ScriptC0 LIKE '%javax.interceptor%' OR
ScriptC0 LIKE '%javax.jms%' OR
ScriptC0 LIKE '%javax.json%' OR
ScriptC0 LIKE '%javax.jws%' OR
ScriptC0 LIKE '%javax.mail%' OR
ScriptC0 LIKE '%javax.persistence%' OR
ScriptC0 LIKE '%javax.resource%' OR
ScriptC0 LIKE '%javax.security%' OR
ScriptC0 LIKE '%javax.servlet%' OR
ScriptC0 LIKE '%javax.transaction%' OR
ScriptC0 LIKE '%javax.validation%' OR
ScriptC0 LIKE '%javax.websocket%' OR
ScriptC0 LIKE '%javax.ws.rs%' OR
ScriptC0 LIKE '%javax.xml.bind%' OR
ScriptC0 LIKE '%javax.xml.soap%' OR
ScriptC0 LIKE '%javax.xml.ws%')
UNION ALL
SELECT 'TestScriptMethod C0' AS foundAt,
MethodType AS scriptType,
ScriptLibraryKey AS libName,
CAST( MethodName AS NVARCHAR) AS name,
CAST( testScriptC0 AS NVARCHAR) AS scriptText
FROM
ScriptMethod
WHERE
Active = 1 AND
( testScriptC0 LIKE '%javax.activation%' OR
testScriptC0 LIKE '%javax.annotation%' OR
testScriptC0 LIKE '%javax.batch%' OR
testScriptC0 LIKE '%javax.decorator%' OR
testScriptC0 LIKE '%javax.ejb%' OR
testScriptC0 LIKE '%javax.el%' OR
testScriptC0 LIKE '%javax.enterprise%' OR
testScriptC0 LIKE '%javax.faces%' OR
testScriptC0 LIKE '%javax.inject%' OR
testScriptC0 LIKE '%javax.interceptor%' OR
testScriptC0 LIKE '%javax.jms%' OR
testScriptC0 LIKE '%javax.json%' OR
testScriptC0 LIKE '%javax.jws%' OR
testScriptC0 LIKE '%javax.mail%' OR
testScriptC0 LIKE '%javax.persistence%' OR
testScriptC0 LIKE '%javax.resource%' OR
testScriptC0 LIKE '%javax.security%' OR
testScriptC0 LIKE '%javax.servlet%' OR
testScriptC0 LIKE '%javax.transaction%' OR
testScriptC0 LIKE '%javax.validation%' OR
testScriptC0 LIKE '%javax.websocket%' OR
testScriptC0 LIKE '%javax.ws.rs%' OR
testScriptC0 LIKE '%javax.xml.bind%' OR
testScriptC0 LIKE '%javax.xml.soap%' OR
testScriptC0 LIKE '%javax.xml.ws%')
UNION ALL
SELECT 'ScriptMethod C1' AS foundAt,
MethodType AS scriptType,
ScriptLibraryKey AS libName,
CAST( MethodName AS NVARCHAR) AS name,
CAST( ScriptC1 AS NVARCHAR) AS scriptText
FROM
ScriptMethod
WHERE
Active = 1 AND
( ScriptC1 LIKE '%javax.activation%' OR
ScriptC1 LIKE '%javax.annotation%' OR
ScriptC1 LIKE '%javax.batch%' OR
ScriptC1 LIKE '%javax.decorator%' OR
ScriptC1 LIKE '%javax.ejb%' OR
ScriptC1 LIKE '%javax.el%' OR
ScriptC1 LIKE '%javax.enterprise%' OR
ScriptC1 LIKE '%javax.faces%' OR
ScriptC1 LIKE '%javax.inject%' OR
ScriptC1 LIKE '%javax.interceptor%' OR
ScriptC1 LIKE '%javax.jms%' OR
ScriptC1 LIKE '%javax.json%' OR
ScriptC1 LIKE '%javax.jws%' OR
ScriptC1 LIKE '%javax.mail%' OR
ScriptC1 LIKE '%javax.persistence%' OR
ScriptC1 LIKE '%javax.resource%' OR
ScriptC1 LIKE '%javax.security%' OR
ScriptC1 LIKE '%javax.servlet%' OR
ScriptC1 LIKE '%javax.transaction%' OR
ScriptC1 LIKE '%javax.validation%' OR
ScriptC1 LIKE '%javax.websocket%' OR
ScriptC1 LIKE '%javax.ws.rs%' OR
ScriptC1 LIKE '%javax.xml.bind%' OR
ScriptC1 LIKE '%javax.xml.soap%' OR
ScriptC1 LIKE '%javax.xml.ws%')
UNION ALL
SELECT 'TestScriptMethod C1' AS foundAt,
MethodType AS scriptType,
ScriptLibraryKey AS libName,
CAST( MethodName AS NVARCHAR) AS name,
CAST( testScriptC1 AS NVARCHAR) AS scriptText
FROM
ScriptMethod
WHERE
Active = 1 AND
( testScriptC1 LIKE '%javax.activation%' OR
testScriptC1 LIKE '%javax.annotation%' OR
testScriptC1 LIKE '%javax.batch%' OR
testScriptC1 LIKE '%javax.decorator%' OR
testScriptC1 LIKE '%javax.ejb%' OR
testScriptC1 LIKE '%javax.el%' OR
testScriptC1 LIKE '%javax.enterprise%' OR
testScriptC1 LIKE '%javax.faces%' OR
testScriptC1 LIKE '%javax.inject%' OR
testScriptC1 LIKE '%javax.interceptor%' OR
testScriptC1 LIKE '%javax.jms%' OR
testScriptC1 LIKE '%javax.json%' OR
testScriptC1 LIKE '%javax.jws%' OR
testScriptC1 LIKE '%javax.mail%' OR
testScriptC1 LIKE '%javax.persistence%' OR
testScriptC1 LIKE '%javax.resource%' OR
testScriptC1 LIKE '%javax.security%' OR
testScriptC1 LIKE '%javax.servlet%' OR
testScriptC1 LIKE '%javax.transaction%' OR
testScriptC1 LIKE '%javax.validation%' OR
testScriptC1 LIKE '%javax.websocket%' OR
testScriptC1 LIKE '%javax.ws.rs%' OR
testScriptC1 LIKE '%javax.xml.bind%' OR
testScriptC1 LIKE '%javax.xml.soap%' OR
testScriptC1 LIKE '%javax.xml.ws%')
UNION ALL
SELECT 'ScriptMethod C2' AS foundAt,
MethodType AS scriptType,
ScriptLibraryKey AS libName,
CAST( MethodName AS NVARCHAR) AS name,
CAST( ScriptC2 AS NVARCHAR) AS scriptText
FROM
ScriptMethod
WHERE
Active = 1 AND
( ScriptC2 LIKE '%javax.activation%' OR
ScriptC2 LIKE '%javax.annotation%' OR
ScriptC2 LIKE '%javax.batch%' OR
ScriptC2 LIKE '%javax.decorator%' OR
ScriptC2 LIKE '%javax.ejb%' OR
ScriptC2 LIKE '%javax.el%' OR
ScriptC2 LIKE '%javax.enterprise%' OR
ScriptC2 LIKE '%javax.faces%' OR
ScriptC2 LIKE '%javax.inject%' OR
ScriptC2 LIKE '%javax.interceptor%' OR
ScriptC2 LIKE '%javax.jms%' OR
ScriptC2 LIKE '%javax.json%' OR
ScriptC2 LIKE '%javax.jws%' OR
ScriptC2 LIKE '%javax.mail%' OR
ScriptC2 LIKE '%javax.persistence%' OR
ScriptC2 LIKE '%javax.resource%' OR
ScriptC2 LIKE '%javax.security%' OR
ScriptC2 LIKE '%javax.servlet%' OR
ScriptC2 LIKE '%javax.transaction%' OR
ScriptC2 LIKE '%javax.validation%' OR
ScriptC2 LIKE '%javax.websocket%' OR
ScriptC2 LIKE '%javax.ws.rs%' OR
ScriptC2 LIKE '%javax.xml.bind%' OR
ScriptC2 LIKE '%javax.xml.soap%' OR
ScriptC2 LIKE '%javax.xml.ws%')
UNION ALL
SELECT 'TestScriptMethod C2' AS foundAt,
MethodType AS scriptType,
ScriptLibraryKey AS libName,
CAST( MethodName AS NVARCHAR) AS name,
CAST( testScriptC2 AS NVARCHAR) AS scriptText
FROM
ScriptMethod
WHERE
Active = 1 AND
( testScriptC2 LIKE '%javax.activation%' OR
testScriptC2 LIKE '%javax.annotation%' OR
testScriptC2 LIKE '%javax.batch%' OR
testScriptC2 LIKE '%javax.decorator%' OR
testScriptC2 LIKE '%javax.ejb%' OR
testScriptC2 LIKE '%javax.el%' OR
testScriptC2 LIKE '%javax.enterprise%' OR
testScriptC2 LIKE '%javax.faces%' OR
testScriptC2 LIKE '%javax.inject%' OR
testScriptC2 LIKE '%javax.interceptor%' OR
testScriptC2 LIKE '%javax.jms%' OR
testScriptC2 LIKE '%javax.json%' OR
testScriptC2 LIKE '%javax.jws%' OR
testScriptC2 LIKE '%javax.mail%' OR
testScriptC2 LIKE '%javax.persistence%' OR
testScriptC2 LIKE '%javax.resource%' OR
testScriptC2 LIKE '%javax.security%' OR
testScriptC2 LIKE '%javax.servlet%' OR
testScriptC2 LIKE '%javax.transaction%' OR
testScriptC2 LIKE '%javax.validation%' OR
testScriptC2 LIKE '%javax.websocket%' OR
testScriptC2 LIKE '%javax.ws.rs%' OR
testScriptC2 LIKE '%javax.xml.bind%' OR
testScriptC2 LIKE '%javax.xml.soap%' OR
testScriptC2 LIKE '%javax.xml.ws%')
UNION ALL
SELECT 'MaskScript C0' AS foundAt,
ScriptType AS scriptType,
'--' AS libName,
CAST( EntityName AS NVARCHAR) AS name,
CAST( Script AS NVARCHAR) AS scriptText
FROM
MaskScript
WHERE
Active = 1 AND
custLayer = 'C0' AND
( Script LIKE '%javax.activation%' OR
Script LIKE '%javax.annotation%' OR
Script LIKE '%javax.batch%' OR
Script LIKE '%javax.decorator%' OR
Script LIKE '%javax.ejb%' OR
Script LIKE '%javax.el%' OR
Script LIKE '%javax.enterprise%' OR
Script LIKE '%javax.faces%' OR
Script LIKE '%javax.inject%' OR
Script LIKE '%javax.interceptor%' OR
Script LIKE '%javax.jms%' OR
Script LIKE '%javax.json%' OR
Script LIKE '%javax.jws%' OR
Script LIKE '%javax.mail%' OR
Script LIKE '%javax.persistence%' OR
Script LIKE '%javax.resource%' OR
Script LIKE '%javax.security%' OR
Script LIKE '%javax.servlet%' OR
Script LIKE '%javax.transaction%' OR
Script LIKE '%javax.validation%' OR
Script LIKE '%javax.websocket%' OR
Script LIKE '%javax.ws.rs%' OR
Script LIKE '%javax.xml.bind%' OR
Script LIKE '%javax.xml.soap%' OR
Script LIKE '%javax.xml.ws%')
UNION ALL
SELECT 'MaskScript C1' AS foundAt,
ScriptType AS scriptType,
'--' AS libName,
CAST( EntityName AS NVARCHAR) AS name,
CAST( Script AS NVARCHAR) AS scriptText
FROM
MaskScript
WHERE
Active = 1 AND
custLayer = 'C1' AND
( Script LIKE '%javax.activation%' OR
Script LIKE '%javax.annotation%' OR
Script LIKE '%javax.batch%' OR
Script LIKE '%javax.decorator%' OR
Script LIKE '%javax.ejb%' OR
Script LIKE '%javax.el%' OR
Script LIKE '%javax.enterprise%' OR
Script LIKE '%javax.faces%' OR
Script LIKE '%javax.inject%' OR
Script LIKE '%javax.interceptor%' OR
Script LIKE '%javax.jms%' OR
Script LIKE '%javax.json%' OR
Script LIKE '%javax.jws%' OR
Script LIKE '%javax.mail%' OR
Script LIKE '%javax.persistence%' OR
Script LIKE '%javax.resource%' OR
Script LIKE '%javax.security%' OR
Script LIKE '%javax.servlet%' OR
Script LIKE '%javax.transaction%' OR
Script LIKE '%javax.validation%' OR
Script LIKE '%javax.websocket%' OR
Script LIKE '%javax.ws.rs%' OR
Script LIKE '%javax.xml.bind%' OR
Script LIKE '%javax.xml.soap%' OR
Script LIKE '%javax.xml.ws%')
UNION ALL
SELECT 'MaskScript C2' AS foundAt,
ScriptType AS scriptType,
'--' AS libName,
CAST( EntityName AS NVARCHAR) AS name,
CAST( Script AS NVARCHAR) AS scriptText
FROM
MaskScript
WHERE
Active = 1 AND
custLayer = 'C2' AND
( Script LIKE '%javax.activation%' OR
Script LIKE '%javax.annotation%' OR
Script LIKE '%javax.batch%' OR
Script LIKE '%javax.decorator%' OR
Script LIKE '%javax.ejb%' OR
Script LIKE '%javax.el%' OR
Script LIKE '%javax.enterprise%' OR
Script LIKE '%javax.faces%' OR
Script LIKE '%javax.inject%' OR
Script LIKE '%javax.interceptor%' OR
Script LIKE '%javax.jms%' OR
Script LIKE '%javax.json%' OR
Script LIKE '%javax.jws%' OR
Script LIKE '%javax.mail%' OR
Script LIKE '%javax.persistence%' OR
Script LIKE '%javax.resource%' OR
Script LIKE '%javax.security%' OR
Script LIKE '%javax.servlet%' OR
Script LIKE '%javax.transaction%' OR
Script LIKE '%javax.validation%' OR
Script LIKE '%javax.websocket%' OR
Script LIKE '%javax.ws.rs%' OR
Script LIKE '%javax.xml.bind%' OR
Script LIKE '%javax.xml.soap%' OR
Script LIKE '%javax.xml.ws%')
UNION ALL
SELECT CONCAT( 'ProcessContainer' , pc.CustLayer) AS foundAt,
'--' AS scriptType,
'--' AS libName,
CAST( pc.Id AS NVARCHAR) AS name,
CAST( pm.XmlData AS NVARCHAR) AS scriptText
FROM
ProcessModel pm,
ProcessContainer pc
WHERE
pc.Active = 1 AND
pm.Active = 1 AND
pm.processkey = pc.pk AND
pc.SnapShotId IS NOT NULL AND
( pm.XmlData LIKE '%javax.activation%' OR
pm.XmlData LIKE '%javax.annotation%' OR
pm.XmlData LIKE '%javax.batch%' OR
pm.XmlData LIKE '%javax.decorator%' OR
pm.XmlData LIKE '%javax.ejb%' OR
pm.XmlData LIKE '%javax.el%' OR
pm.XmlData LIKE '%javax.enterprise%' OR
pm.XmlData LIKE '%javax.faces%' OR
pm.XmlData LIKE '%javax.inject%' OR
pm.XmlData LIKE '%javax.interceptor%' OR
pm.XmlData LIKE '%javax.jms%' OR
pm.XmlData LIKE '%javax.json%' OR
pm.XmlData LIKE '%javax.jws%' OR
pm.XmlData LIKE '%javax.mail%' OR
pm.XmlData LIKE '%javax.persistence%' OR
pm.XmlData LIKE '%javax.resource%' OR
pm.XmlData LIKE '%javax.security%' OR
pm.XmlData LIKE '%javax.servlet%' OR
pm.XmlData LIKE '%javax.transaction%' OR
pm.XmlData LIKE '%javax.validation%' OR
pm.XmlData LIKE '%javax.websocket%' OR
pm.XmlData LIKE '%javax.ws.rs%' OR
pm.XmlData LIKE '%javax.xml.bind%' OR
pm.XmlData LIKE '%javax.xml.soap%' OR
pm.XmlData LIKE '%javax.xml.ws%')
UNION ALL
SELECT 'WebService' AS foundAt,
PortName AS scriptType,
MethodName AS libName,
CAST( ServiceId AS NVARCHAR) AS name,
CAST( Script AS NVARCHAR) AS scriptText
FROM
WebService
WHERE
Active = 1 AND
( Script LIKE '%javax.activation%' OR
Script LIKE '%javax.annotation%' OR
Script LIKE '%javax.batch%' OR
Script LIKE '%javax.decorator%' OR
Script LIKE '%javax.ejb%' OR
Script LIKE '%javax.el%' OR
Script LIKE '%javax.enterprise%' OR
Script LIKE '%javax.faces%' OR
Script LIKE '%javax.inject%' OR
Script LIKE '%javax.interceptor%' OR
Script LIKE '%javax.jms%' OR
Script LIKE '%javax.json%' OR
Script LIKE '%javax.jws%' OR
Script LIKE '%javax.mail%' OR
Script LIKE '%javax.persistence%' OR
Script LIKE '%javax.resource%' OR
Script LIKE '%javax.security%' OR
Script LIKE '%javax.servlet%' OR
Script LIKE '%javax.transaction%' OR
Script LIKE '%javax.validation%' OR
Script LIKE '%javax.websocket%' OR
Script LIKE '%javax.ws.rs%' OR
Script LIKE '%javax.xml.bind%' OR
Script LIKE '%javax.xml.soap%' OR
Script LIKE '%javax.xml.ws%') ;
Hinweise auf neue Funktionalitäten
Konfiguration der Modulsichtbarkeiten mit dem Admin im Web
Die Sichtbarkeiten von Entitäten, Feldern, Relationen pro Layer können im Web Client eingesehen und bei Bedarf administriert werden.
Sichtbarkeit von Entitäten
Sichtbarkeit von Feldern
Bei systemweit sichtbaren Bereichen kann die systemweite Sichtbarkeit einzelner Felder bei Bedarf deaktiviert werden.
Unsichtbare Felder werden in der Liste der Felder ausgegraut dargestellt:
Über den Filter "Modulsichtbarkeit" in der Filter-Sorter-Komponente kann die Ansicht bei Bedarf auf sichtbare oder unsichtbare Felder eingeschränkt werden:
Sichtbarkeit von Relationen/Unterbereichen
Bei systemweit sichtbaren Bereichen kann die systemweite Sichtbarkeit einzelner Unterbereiche bei Bedarf deaktiviert werden.
Das Deaktivieren der systemweiten Sichtbarkeit eines Bereichs deaktiviert die systemweite Sichtbarkeit aller Felder und Unterbereiche dieses Bereichs. Alle Einstellungen sind dann entsprechend schreibgeschützt:
Details zur Administration finden Sie im Kapitel → Bereiche .
Überarbeitung des Maildialogs
Mit dieser Überarbeitung wurde die Darstellung des Mailversands verbessert und die Bedienung vereinfacht . Detaillierte Beschreibung finden Sie in den Release-Notes 2025.5.
Mail-Dialog
Hinweise auf veraltete Funktionalitäten
-
2025.4
Systemrelevante Informationen für Administratoren
Notwendige Umbenennung von “javax.” in Skripten
Aufgrund der Umbenennung von Java-Klassen und insbesondere Paketnamen nach Jakarta im Zuge des Migrationsprozesses von Java EE zu Jakarta EE, sind unter Umständen Anpassungen an Skripten vorzunehmen, wenn diese Klassen vollqualifiziert genutzt wurden. Alle Klassen mit einem Package beginnend mit “javax.” müssen manuell korrigiert und nach “jakarta.” umbenannt werden.
Zur Identifizierung solcher vollqualifizierter Methoden stehen folgende Statements zur Verfügung:
ORACLE
SQL
SELECT 'ScriptMethod C0' AS foundAt,
MethodType AS scriptType,
ScriptLibraryKey AS libName,
to_nChar( MethodName) AS name,
to_nClob( ScriptC0) AS scriptText
FROM
ScriptMethod
WHERE
Active = 1 AND
( ScriptC0 LIKE '%javax.activation%' OR
ScriptC0 LIKE '%javax.annotation%' OR
ScriptC0 LIKE '%javax.batch%' OR
ScriptC0 LIKE '%javax.decorator%' OR
ScriptC0 LIKE '%javax.ejb%' OR
ScriptC0 LIKE '%javax.el%' OR
ScriptC0 LIKE '%javax.enterprise%' OR
ScriptC0 LIKE '%javax.faces%' OR
ScriptC0 LIKE '%javax.inject%' OR
ScriptC0 LIKE '%javax.interceptor%' OR
ScriptC0 LIKE '%javax.jms%' OR
ScriptC0 LIKE '%javax.json%' OR
ScriptC0 LIKE '%javax.jws%' OR
ScriptC0 LIKE '%javax.mail%' OR
ScriptC0 LIKE '%javax.persistence%' OR
ScriptC0 LIKE '%javax.resource%' OR
ScriptC0 LIKE '%javax.security%' OR
ScriptC0 LIKE '%javax.servlet%' OR
ScriptC0 LIKE '%javax.transaction%' OR
ScriptC0 LIKE '%javax.validation%' OR
ScriptC0 LIKE '%javax.websocket%' OR
ScriptC0 LIKE '%javax.ws.rs%' OR
ScriptC0 LIKE '%javax.xml.bind%' OR
ScriptC0 LIKE '%javax.xml.soap%' OR
ScriptC0 LIKE '%javax.xml.ws%')
UNION ALL
SELECT 'TestScriptMethod C0' AS foundAt,
MethodType AS scriptType,
ScriptLibraryKey AS libName,
to_nChar( MethodName) AS name,
to_nClob( testScriptC0) AS scriptText
FROM
ScriptMethod
WHERE
Active = 1 AND
( testScriptC0 LIKE '%javax.activation%' OR
testScriptC0 LIKE '%javax.annotation%' OR
testScriptC0 LIKE '%javax.batch%' OR
testScriptC0 LIKE '%javax.decorator%' OR
testScriptC0 LIKE '%javax.ejb%' OR
testScriptC0 LIKE '%javax.el%' OR
testScriptC0 LIKE '%javax.enterprise%' OR
testScriptC0 LIKE '%javax.faces%' OR
testScriptC0 LIKE '%javax.inject%' OR
testScriptC0 LIKE '%javax.interceptor%' OR
testScriptC0 LIKE '%javax.jms%' OR
testScriptC0 LIKE '%javax.json%' OR
testScriptC0 LIKE '%javax.jws%' OR
testScriptC0 LIKE '%javax.mail%' OR
testScriptC0 LIKE '%javax.persistence%' OR
testScriptC0 LIKE '%javax.resource%' OR
testScriptC0 LIKE '%javax.security%' OR
testScriptC0 LIKE '%javax.servlet%' OR
testScriptC0 LIKE '%javax.transaction%' OR
testScriptC0 LIKE '%javax.validation%' OR
testScriptC0 LIKE '%javax.websocket%' OR
testScriptC0 LIKE '%javax.ws.rs%' OR
testScriptC0 LIKE '%javax.xml.bind%' OR
testScriptC0 LIKE '%javax.xml.soap%' OR
testScriptC0 LIKE '%javax.xml.ws%')
UNION ALL
SELECT 'ScriptMethod C1' AS foundAt,
MethodType AS scriptType,
ScriptLibraryKey AS libName,
to_nChar( MethodName) AS name,
to_nClob( ScriptC1) AS scriptText
FROM
ScriptMethod
WHERE
Active = 1 AND
( ScriptC1 LIKE '%javax.activation%' OR
ScriptC1 LIKE '%javax.annotation%' OR
ScriptC1 LIKE '%javax.batch%' OR
ScriptC1 LIKE '%javax.decorator%' OR
ScriptC1 LIKE '%javax.ejb%' OR
ScriptC1 LIKE '%javax.el%' OR
ScriptC1 LIKE '%javax.enterprise%' OR
ScriptC1 LIKE '%javax.faces%' OR
ScriptC1 LIKE '%javax.inject%' OR
ScriptC1 LIKE '%javax.interceptor%' OR
ScriptC1 LIKE '%javax.jms%' OR
ScriptC1 LIKE '%javax.json%' OR
ScriptC1 LIKE '%javax.jws%' OR
ScriptC1 LIKE '%javax.mail%' OR
ScriptC1 LIKE '%javax.persistence%' OR
ScriptC1 LIKE '%javax.resource%' OR
ScriptC1 LIKE '%javax.security%' OR
ScriptC1 LIKE '%javax.servlet%' OR
ScriptC1 LIKE '%javax.transaction%' OR
ScriptC1 LIKE '%javax.validation%' OR
ScriptC1 LIKE '%javax.websocket%' OR
ScriptC1 LIKE '%javax.ws.rs%' OR
ScriptC1 LIKE '%javax.xml.bind%' OR
ScriptC1 LIKE '%javax.xml.soap%' OR
ScriptC1 LIKE '%javax.xml.ws%')
UNION ALL
SELECT 'TestScriptMethod C1' AS foundAt,
MethodType AS scriptType,
ScriptLibraryKey AS libName,
to_nChar( MethodName) AS name,
to_nClob( testScriptC1) AS scriptText
FROM
ScriptMethod
WHERE
Active = 1 AND
( testScriptC1 LIKE '%javax.activation%' OR
testScriptC1 LIKE '%javax.annotation%' OR
testScriptC1 LIKE '%javax.batch%' OR
testScriptC1 LIKE '%javax.decorator%' OR
testScriptC1 LIKE '%javax.ejb%' OR
testScriptC1 LIKE '%javax.el%' OR
testScriptC1 LIKE '%javax.enterprise%' OR
testScriptC1 LIKE '%javax.faces%' OR
testScriptC1 LIKE '%javax.inject%' OR
testScriptC1 LIKE '%javax.interceptor%' OR
testScriptC1 LIKE '%javax.jms%' OR
testScriptC1 LIKE '%javax.json%' OR
testScriptC1 LIKE '%javax.jws%' OR
testScriptC1 LIKE '%javax.mail%' OR
testScriptC1 LIKE '%javax.persistence%' OR
testScriptC1 LIKE '%javax.resource%' OR
testScriptC1 LIKE '%javax.security%' OR
testScriptC1 LIKE '%javax.servlet%' OR
testScriptC1 LIKE '%javax.transaction%' OR
testScriptC1 LIKE '%javax.validation%' OR
testScriptC1 LIKE '%javax.websocket%' OR
testScriptC1 LIKE '%javax.ws.rs%' OR
testScriptC1 LIKE '%javax.xml.bind%' OR
testScriptC1 LIKE '%javax.xml.soap%' OR
testScriptC1 LIKE '%javax.xml.ws%')
UNION ALL
SELECT 'ScriptMethod C2' AS foundAt,
MethodType AS scriptType,
ScriptLibraryKey AS libName,
to_nChar( MethodName) AS name,
to_nClob( ScriptC2) AS scriptText
FROM
ScriptMethod
WHERE
Active = 1 AND
( ScriptC2 LIKE '%javax.activation%' OR
ScriptC2 LIKE '%javax.annotation%' OR
ScriptC2 LIKE '%javax.batch%' OR
ScriptC2 LIKE '%javax.decorator%' OR
ScriptC2 LIKE '%javax.ejb%' OR
ScriptC2 LIKE '%javax.el%' OR
ScriptC2 LIKE '%javax.enterprise%' OR
ScriptC2 LIKE '%javax.faces%' OR
ScriptC2 LIKE '%javax.inject%' OR
ScriptC2 LIKE '%javax.interceptor%' OR
ScriptC2 LIKE '%javax.jms%' OR
ScriptC2 LIKE '%javax.json%' OR
ScriptC2 LIKE '%javax.jws%' OR
ScriptC2 LIKE '%javax.mail%' OR
ScriptC2 LIKE '%javax.persistence%' OR
ScriptC2 LIKE '%javax.resource%' OR
ScriptC2 LIKE '%javax.security%' OR
ScriptC2 LIKE '%javax.servlet%' OR
ScriptC2 LIKE '%javax.transaction%' OR
ScriptC2 LIKE '%javax.validation%' OR
ScriptC2 LIKE '%javax.websocket%' OR
ScriptC2 LIKE '%javax.ws.rs%' OR
ScriptC2 LIKE '%javax.xml.bind%' OR
ScriptC2 LIKE '%javax.xml.soap%' OR
ScriptC2 LIKE '%javax.xml.ws%')
UNION ALL
SELECT 'TestScriptMethod C2' AS foundAt,
MethodType AS scriptType,
ScriptLibraryKey AS libName,
to_nChar( MethodName) AS name,
to_nClob( testScriptC2) AS scriptText
FROM
ScriptMethod
WHERE
Active = 1 AND
( testScriptC2 LIKE '%javax.activation%' OR
testScriptC2 LIKE '%javax.annotation%' OR
testScriptC2 LIKE '%javax.batch%' OR
testScriptC2 LIKE '%javax.decorator%' OR
testScriptC2 LIKE '%javax.ejb%' OR
testScriptC2 LIKE '%javax.el%' OR
testScriptC2 LIKE '%javax.enterprise%' OR
testScriptC2 LIKE '%javax.faces%' OR
testScriptC2 LIKE '%javax.inject%' OR
testScriptC2 LIKE '%javax.interceptor%' OR
testScriptC2 LIKE '%javax.jms%' OR
testScriptC2 LIKE '%javax.json%' OR
testScriptC2 LIKE '%javax.jws%' OR
testScriptC2 LIKE '%javax.mail%' OR
testScriptC2 LIKE '%javax.persistence%' OR
testScriptC2 LIKE '%javax.resource%' OR
testScriptC2 LIKE '%javax.security%' OR
testScriptC2 LIKE '%javax.servlet%' OR
testScriptC2 LIKE '%javax.transaction%' OR
testScriptC2 LIKE '%javax.validation%' OR
testScriptC2 LIKE '%javax.websocket%' OR
testScriptC2 LIKE '%javax.ws.rs%' OR
testScriptC2 LIKE '%javax.xml.bind%' OR
testScriptC2 LIKE '%javax.xml.soap%' OR
testScriptC2 LIKE '%javax.xml.ws%')
UNION ALL
SELECT 'MaskScript C0' AS foundAt,
ScriptType AS scriptType,
'--' AS libName,
to_nChar( EntityName) AS name,
to_nClob( Script) AS scriptText
FROM
MaskScript
WHERE
Active = 1 AND
custLayer = 'C0' AND
( Script LIKE '%javax.activation%' OR
Script LIKE '%javax.annotation%' OR
Script LIKE '%javax.batch%' OR
Script LIKE '%javax.decorator%' OR
Script LIKE '%javax.ejb%' OR
Script LIKE '%javax.el%' OR
Script LIKE '%javax.enterprise%' OR
Script LIKE '%javax.faces%' OR
Script LIKE '%javax.inject%' OR
Script LIKE '%javax.interceptor%' OR
Script LIKE '%javax.jms%' OR
Script LIKE '%javax.json%' OR
Script LIKE '%javax.jws%' OR
Script LIKE '%javax.mail%' OR
Script LIKE '%javax.persistence%' OR
Script LIKE '%javax.resource%' OR
Script LIKE '%javax.security%' OR
Script LIKE '%javax.servlet%' OR
Script LIKE '%javax.transaction%' OR
Script LIKE '%javax.validation%' OR
Script LIKE '%javax.websocket%' OR
Script LIKE '%javax.ws.rs%' OR
Script LIKE '%javax.xml.bind%' OR
Script LIKE '%javax.xml.soap%' OR
Script LIKE '%javax.xml.ws%')
UNION ALL
SELECT 'MaskScript C1' AS foundAt,
ScriptType AS scriptType,
'--' AS libName,
to_nChar( EntityName) AS name,
to_nClob( Script) AS scriptText
FROM
MaskScript
WHERE
Active = 1 AND
custLayer = 'C1' AND
( Script LIKE '%javax.activation%' OR
Script LIKE '%javax.annotation%' OR
Script LIKE '%javax.batch%' OR
Script LIKE '%javax.decorator%' OR
Script LIKE '%javax.ejb%' OR
Script LIKE '%javax.el%' OR
Script LIKE '%javax.enterprise%' OR
Script LIKE '%javax.faces%' OR
Script LIKE '%javax.inject%' OR
Script LIKE '%javax.interceptor%' OR
Script LIKE '%javax.jms%' OR
Script LIKE '%javax.json%' OR
Script LIKE '%javax.jws%' OR
Script LIKE '%javax.mail%' OR
Script LIKE '%javax.persistence%' OR
Script LIKE '%javax.resource%' OR
Script LIKE '%javax.security%' OR
Script LIKE '%javax.servlet%' OR
Script LIKE '%javax.transaction%' OR
Script LIKE '%javax.validation%' OR
Script LIKE '%javax.websocket%' OR
Script LIKE '%javax.ws.rs%' OR
Script LIKE '%javax.xml.bind%' OR
Script LIKE '%javax.xml.soap%' OR
Script LIKE '%javax.xml.ws%')
UNION ALL
SELECT 'MaskScript C2' AS foundAt,
ScriptType AS scriptType,
'--' AS libName,
to_nChar( EntityName) AS name,
to_nClob( Script) AS scriptText
FROM
MaskScript
WHERE
Active = 1 AND
custLayer = 'C2' AND
( Script LIKE '%javax.activation%' OR
Script LIKE '%javax.annotation%' OR
Script LIKE '%javax.batch%' OR
Script LIKE '%javax.decorator%' OR
Script LIKE '%javax.ejb%' OR
Script LIKE '%javax.el%' OR
Script LIKE '%javax.enterprise%' OR
Script LIKE '%javax.faces%' OR
Script LIKE '%javax.inject%' OR
Script LIKE '%javax.interceptor%' OR
Script LIKE '%javax.jms%' OR
Script LIKE '%javax.json%' OR
Script LIKE '%javax.jws%' OR
Script LIKE '%javax.mail%' OR
Script LIKE '%javax.persistence%' OR
Script LIKE '%javax.resource%' OR
Script LIKE '%javax.security%' OR
Script LIKE '%javax.servlet%' OR
Script LIKE '%javax.transaction%' OR
Script LIKE '%javax.validation%' OR
Script LIKE '%javax.websocket%' OR
Script LIKE '%javax.ws.rs%' OR
Script LIKE '%javax.xml.bind%' OR
Script LIKE '%javax.xml.soap%' OR
Script LIKE '%javax.xml.ws%')
UNION ALL
SELECT CONCAT( 'ProcessContainer' , pc.CustLayer) AS foundAt,
'--' AS scriptType,
'--' AS libName,
to_nChar( pc.Id) AS name,
to_nClob( pm.XmlData) AS scriptText
FROM
ProcessModel pm,
ProcessContainer pc
WHERE
pc.Active = 1 AND
pm.Active = 1 AND
pm.processkey = pc.pk AND
pc.SnapShotId IS NOT NULL AND
( pm.XmlData LIKE '%javax.activation%' OR
pm.XmlData LIKE '%javax.annotation%' OR
pm.XmlData LIKE '%javax.batch%' OR
pm.XmlData LIKE '%javax.decorator%' OR
pm.XmlData LIKE '%javax.ejb%' OR
pm.XmlData LIKE '%javax.el%' OR
pm.XmlData LIKE '%javax.enterprise%' OR
pm.XmlData LIKE '%javax.faces%' OR
pm.XmlData LIKE '%javax.inject%' OR
pm.XmlData LIKE '%javax.interceptor%' OR
pm.XmlData LIKE '%javax.jms%' OR
pm.XmlData LIKE '%javax.json%' OR
pm.XmlData LIKE '%javax.jws%' OR
pm.XmlData LIKE '%javax.mail%' OR
pm.XmlData LIKE '%javax.persistence%' OR
pm.XmlData LIKE '%javax.resource%' OR
pm.XmlData LIKE '%javax.security%' OR
pm.XmlData LIKE '%javax.servlet%' OR
pm.XmlData LIKE '%javax.transaction%' OR
pm.XmlData LIKE '%javax.validation%' OR
pm.XmlData LIKE '%javax.websocket%' OR
pm.XmlData LIKE '%javax.ws.rs%' OR
pm.XmlData LIKE '%javax.xml.bind%' OR
pm.XmlData LIKE '%javax.xml.soap%' OR
pm.XmlData LIKE '%javax.xml.ws%')
UNION ALL
SELECT 'WebService' AS foundAt,
PortName AS scriptType,
MethodName AS libName,
to_nChar( ServiceId) AS name,
to_nClob( Script) AS scriptText
FROM
WebService
WHERE
Active = 1 AND
( Script LIKE '%javax.activation%' OR
Script LIKE '%javax.annotation%' OR
Script LIKE '%javax.batch%' OR
Script LIKE '%javax.decorator%' OR
Script LIKE '%javax.ejb%' OR
Script LIKE '%javax.el%' OR
Script LIKE '%javax.enterprise%' OR
Script LIKE '%javax.faces%' OR
Script LIKE '%javax.inject%' OR
Script LIKE '%javax.interceptor%' OR
Script LIKE '%javax.jms%' OR
Script LIKE '%javax.json%' OR
Script LIKE '%javax.jws%' OR
Script LIKE '%javax.mail%' OR
Script LIKE '%javax.persistence%' OR
Script LIKE '%javax.resource%' OR
Script LIKE '%javax.security%' OR
Script LIKE '%javax.servlet%' OR
Script LIKE '%javax.transaction%' OR
Script LIKE '%javax.validation%' OR
Script LIKE '%javax.websocket%' OR
Script LIKE '%javax.ws.rs%' OR
Script LIKE '%javax.xml.bind%' OR
Script LIKE '%javax.xml.soap%' OR
Script LIKE '%javax.xml.ws%') ;
MSSQL
CODE
SELECT 'ScriptMethod C0' AS foundAt,
MethodType AS scriptType,
ScriptLibraryKey AS libName,
CAST( MethodName AS NVARCHAR) AS name,
CAST( ScriptC0 AS NVARCHAR) AS scriptText
FROM
ScriptMethod
WHERE
Active = 1 AND
( ScriptC0 LIKE '%javax.activation%' OR
ScriptC0 LIKE '%javax.annotation%' OR
ScriptC0 LIKE '%javax.batch%' OR
ScriptC0 LIKE '%javax.decorator%' OR
ScriptC0 LIKE '%javax.ejb%' OR
ScriptC0 LIKE '%javax.el%' OR
ScriptC0 LIKE '%javax.enterprise%' OR
ScriptC0 LIKE '%javax.faces%' OR
ScriptC0 LIKE '%javax.inject%' OR
ScriptC0 LIKE '%javax.interceptor%' OR
ScriptC0 LIKE '%javax.jms%' OR
ScriptC0 LIKE '%javax.json%' OR
ScriptC0 LIKE '%javax.jws%' OR
ScriptC0 LIKE '%javax.mail%' OR
ScriptC0 LIKE '%javax.persistence%' OR
ScriptC0 LIKE '%javax.resource%' OR
ScriptC0 LIKE '%javax.security%' OR
ScriptC0 LIKE '%javax.servlet%' OR
ScriptC0 LIKE '%javax.transaction%' OR
ScriptC0 LIKE '%javax.validation%' OR
ScriptC0 LIKE '%javax.websocket%' OR
ScriptC0 LIKE '%javax.ws.rs%' OR
ScriptC0 LIKE '%javax.xml.bind%' OR
ScriptC0 LIKE '%javax.xml.soap%' OR
ScriptC0 LIKE '%javax.xml.ws%')
UNION ALL
SELECT 'TestScriptMethod C0' AS foundAt,
MethodType AS scriptType,
ScriptLibraryKey AS libName,
CAST( MethodName AS NVARCHAR) AS name,
CAST( testScriptC0 AS NVARCHAR) AS scriptText
FROM
ScriptMethod
WHERE
Active = 1 AND
( testScriptC0 LIKE '%javax.activation%' OR
testScriptC0 LIKE '%javax.annotation%' OR
testScriptC0 LIKE '%javax.batch%' OR
testScriptC0 LIKE '%javax.decorator%' OR
testScriptC0 LIKE '%javax.ejb%' OR
testScriptC0 LIKE '%javax.el%' OR
testScriptC0 LIKE '%javax.enterprise%' OR
testScriptC0 LIKE '%javax.faces%' OR
testScriptC0 LIKE '%javax.inject%' OR
testScriptC0 LIKE '%javax.interceptor%' OR
testScriptC0 LIKE '%javax.jms%' OR
testScriptC0 LIKE '%javax.json%' OR
testScriptC0 LIKE '%javax.jws%' OR
testScriptC0 LIKE '%javax.mail%' OR
testScriptC0 LIKE '%javax.persistence%' OR
testScriptC0 LIKE '%javax.resource%' OR
testScriptC0 LIKE '%javax.security%' OR
testScriptC0 LIKE '%javax.servlet%' OR
testScriptC0 LIKE '%javax.transaction%' OR
testScriptC0 LIKE '%javax.validation%' OR
testScriptC0 LIKE '%javax.websocket%' OR
testScriptC0 LIKE '%javax.ws.rs%' OR
testScriptC0 LIKE '%javax.xml.bind%' OR
testScriptC0 LIKE '%javax.xml.soap%' OR
testScriptC0 LIKE '%javax.xml.ws%')
UNION ALL
SELECT 'ScriptMethod C1' AS foundAt,
MethodType AS scriptType,
ScriptLibraryKey AS libName,
CAST( MethodName AS NVARCHAR) AS name,
CAST( ScriptC1 AS NVARCHAR) AS scriptText
FROM
ScriptMethod
WHERE
Active = 1 AND
( ScriptC1 LIKE '%javax.activation%' OR
ScriptC1 LIKE '%javax.annotation%' OR
ScriptC1 LIKE '%javax.batch%' OR
ScriptC1 LIKE '%javax.decorator%' OR
ScriptC1 LIKE '%javax.ejb%' OR
ScriptC1 LIKE '%javax.el%' OR
ScriptC1 LIKE '%javax.enterprise%' OR
ScriptC1 LIKE '%javax.faces%' OR
ScriptC1 LIKE '%javax.inject%' OR
ScriptC1 LIKE '%javax.interceptor%' OR
ScriptC1 LIKE '%javax.jms%' OR
ScriptC1 LIKE '%javax.json%' OR
ScriptC1 LIKE '%javax.jws%' OR
ScriptC1 LIKE '%javax.mail%' OR
ScriptC1 LIKE '%javax.persistence%' OR
ScriptC1 LIKE '%javax.resource%' OR
ScriptC1 LIKE '%javax.security%' OR
ScriptC1 LIKE '%javax.servlet%' OR
ScriptC1 LIKE '%javax.transaction%' OR
ScriptC1 LIKE '%javax.validation%' OR
ScriptC1 LIKE '%javax.websocket%' OR
ScriptC1 LIKE '%javax.ws.rs%' OR
ScriptC1 LIKE '%javax.xml.bind%' OR
ScriptC1 LIKE '%javax.xml.soap%' OR
ScriptC1 LIKE '%javax.xml.ws%')
UNION ALL
SELECT 'TestScriptMethod C1' AS foundAt,
MethodType AS scriptType,
ScriptLibraryKey AS libName,
CAST( MethodName AS NVARCHAR) AS name,
CAST( testScriptC1 AS NVARCHAR) AS scriptText
FROM
ScriptMethod
WHERE
Active = 1 AND
( testScriptC1 LIKE '%javax.activation%' OR
testScriptC1 LIKE '%javax.annotation%' OR
testScriptC1 LIKE '%javax.batch%' OR
testScriptC1 LIKE '%javax.decorator%' OR
testScriptC1 LIKE '%javax.ejb%' OR
testScriptC1 LIKE '%javax.el%' OR
testScriptC1 LIKE '%javax.enterprise%' OR
testScriptC1 LIKE '%javax.faces%' OR
testScriptC1 LIKE '%javax.inject%' OR
testScriptC1 LIKE '%javax.interceptor%' OR
testScriptC1 LIKE '%javax.jms%' OR
testScriptC1 LIKE '%javax.json%' OR
testScriptC1 LIKE '%javax.jws%' OR
testScriptC1 LIKE '%javax.mail%' OR
testScriptC1 LIKE '%javax.persistence%' OR
testScriptC1 LIKE '%javax.resource%' OR
testScriptC1 LIKE '%javax.security%' OR
testScriptC1 LIKE '%javax.servlet%' OR
testScriptC1 LIKE '%javax.transaction%' OR
testScriptC1 LIKE '%javax.validation%' OR
testScriptC1 LIKE '%javax.websocket%' OR
testScriptC1 LIKE '%javax.ws.rs%' OR
testScriptC1 LIKE '%javax.xml.bind%' OR
testScriptC1 LIKE '%javax.xml.soap%' OR
testScriptC1 LIKE '%javax.xml.ws%')
UNION ALL
SELECT 'ScriptMethod C2' AS foundAt,
MethodType AS scriptType,
ScriptLibraryKey AS libName,
CAST( MethodName AS NVARCHAR) AS name,
CAST( ScriptC2 AS NVARCHAR) AS scriptText
FROM
ScriptMethod
WHERE
Active = 1 AND
( ScriptC2 LIKE '%javax.activation%' OR
ScriptC2 LIKE '%javax.annotation%' OR
ScriptC2 LIKE '%javax.batch%' OR
ScriptC2 LIKE '%javax.decorator%' OR
ScriptC2 LIKE '%javax.ejb%' OR
ScriptC2 LIKE '%javax.el%' OR
ScriptC2 LIKE '%javax.enterprise%' OR
ScriptC2 LIKE '%javax.faces%' OR
ScriptC2 LIKE '%javax.inject%' OR
ScriptC2 LIKE '%javax.interceptor%' OR
ScriptC2 LIKE '%javax.jms%' OR
ScriptC2 LIKE '%javax.json%' OR
ScriptC2 LIKE '%javax.jws%' OR
ScriptC2 LIKE '%javax.mail%' OR
ScriptC2 LIKE '%javax.persistence%' OR
ScriptC2 LIKE '%javax.resource%' OR
ScriptC2 LIKE '%javax.security%' OR
ScriptC2 LIKE '%javax.servlet%' OR
ScriptC2 LIKE '%javax.transaction%' OR
ScriptC2 LIKE '%javax.validation%' OR
ScriptC2 LIKE '%javax.websocket%' OR
ScriptC2 LIKE '%javax.ws.rs%' OR
ScriptC2 LIKE '%javax.xml.bind%' OR
ScriptC2 LIKE '%javax.xml.soap%' OR
ScriptC2 LIKE '%javax.xml.ws%')
UNION ALL
SELECT 'TestScriptMethod C2' AS foundAt,
MethodType AS scriptType,
ScriptLibraryKey AS libName,
CAST( MethodName AS NVARCHAR) AS name,
CAST( testScriptC2 AS NVARCHAR) AS scriptText
FROM
ScriptMethod
WHERE
Active = 1 AND
( testScriptC2 LIKE '%javax.activation%' OR
testScriptC2 LIKE '%javax.annotation%' OR
testScriptC2 LIKE '%javax.batch%' OR
testScriptC2 LIKE '%javax.decorator%' OR
testScriptC2 LIKE '%javax.ejb%' OR
testScriptC2 LIKE '%javax.el%' OR
testScriptC2 LIKE '%javax.enterprise%' OR
testScriptC2 LIKE '%javax.faces%' OR
testScriptC2 LIKE '%javax.inject%' OR
testScriptC2 LIKE '%javax.interceptor%' OR
testScriptC2 LIKE '%javax.jms%' OR
testScriptC2 LIKE '%javax.json%' OR
testScriptC2 LIKE '%javax.jws%' OR
testScriptC2 LIKE '%javax.mail%' OR
testScriptC2 LIKE '%javax.persistence%' OR
testScriptC2 LIKE '%javax.resource%' OR
testScriptC2 LIKE '%javax.security%' OR
testScriptC2 LIKE '%javax.servlet%' OR
testScriptC2 LIKE '%javax.transaction%' OR
testScriptC2 LIKE '%javax.validation%' OR
testScriptC2 LIKE '%javax.websocket%' OR
testScriptC2 LIKE '%javax.ws.rs%' OR
testScriptC2 LIKE '%javax.xml.bind%' OR
testScriptC2 LIKE '%javax.xml.soap%' OR
testScriptC2 LIKE '%javax.xml.ws%')
UNION ALL
SELECT 'MaskScript C0' AS foundAt,
ScriptType AS scriptType,
'--' AS libName,
CAST( EntityName AS NVARCHAR) AS name,
CAST( Script AS NVARCHAR) AS scriptText
FROM
MaskScript
WHERE
Active = 1 AND
custLayer = 'C0' AND
( Script LIKE '%javax.activation%' OR
Script LIKE '%javax.annotation%' OR
Script LIKE '%javax.batch%' OR
Script LIKE '%javax.decorator%' OR
Script LIKE '%javax.ejb%' OR
Script LIKE '%javax.el%' OR
Script LIKE '%javax.enterprise%' OR
Script LIKE '%javax.faces%' OR
Script LIKE '%javax.inject%' OR
Script LIKE '%javax.interceptor%' OR
Script LIKE '%javax.jms%' OR
Script LIKE '%javax.json%' OR
Script LIKE '%javax.jws%' OR
Script LIKE '%javax.mail%' OR
Script LIKE '%javax.persistence%' OR
Script LIKE '%javax.resource%' OR
Script LIKE '%javax.security%' OR
Script LIKE '%javax.servlet%' OR
Script LIKE '%javax.transaction%' OR
Script LIKE '%javax.validation%' OR
Script LIKE '%javax.websocket%' OR
Script LIKE '%javax.ws.rs%' OR
Script LIKE '%javax.xml.bind%' OR
Script LIKE '%javax.xml.soap%' OR
Script LIKE '%javax.xml.ws%')
UNION ALL
SELECT 'MaskScript C1' AS foundAt,
ScriptType AS scriptType,
'--' AS libName,
CAST( EntityName AS NVARCHAR) AS name,
CAST( Script AS NVARCHAR) AS scriptText
FROM
MaskScript
WHERE
Active = 1 AND
custLayer = 'C1' AND
( Script LIKE '%javax.activation%' OR
Script LIKE '%javax.annotation%' OR
Script LIKE '%javax.batch%' OR
Script LIKE '%javax.decorator%' OR
Script LIKE '%javax.ejb%' OR
Script LIKE '%javax.el%' OR
Script LIKE '%javax.enterprise%' OR
Script LIKE '%javax.faces%' OR
Script LIKE '%javax.inject%' OR
Script LIKE '%javax.interceptor%' OR
Script LIKE '%javax.jms%' OR
Script LIKE '%javax.json%' OR
Script LIKE '%javax.jws%' OR
Script LIKE '%javax.mail%' OR
Script LIKE '%javax.persistence%' OR
Script LIKE '%javax.resource%' OR
Script LIKE '%javax.security%' OR
Script LIKE '%javax.servlet%' OR
Script LIKE '%javax.transaction%' OR
Script LIKE '%javax.validation%' OR
Script LIKE '%javax.websocket%' OR
Script LIKE '%javax.ws.rs%' OR
Script LIKE '%javax.xml.bind%' OR
Script LIKE '%javax.xml.soap%' OR
Script LIKE '%javax.xml.ws%')
UNION ALL
SELECT 'MaskScript C2' AS foundAt,
ScriptType AS scriptType,
'--' AS libName,
CAST( EntityName AS NVARCHAR) AS name,
CAST( Script AS NVARCHAR) AS scriptText
FROM
MaskScript
WHERE
Active = 1 AND
custLayer = 'C2' AND
( Script LIKE '%javax.activation%' OR
Script LIKE '%javax.annotation%' OR
Script LIKE '%javax.batch%' OR
Script LIKE '%javax.decorator%' OR
Script LIKE '%javax.ejb%' OR
Script LIKE '%javax.el%' OR
Script LIKE '%javax.enterprise%' OR
Script LIKE '%javax.faces%' OR
Script LIKE '%javax.inject%' OR
Script LIKE '%javax.interceptor%' OR
Script LIKE '%javax.jms%' OR
Script LIKE '%javax.json%' OR
Script LIKE '%javax.jws%' OR
Script LIKE '%javax.mail%' OR
Script LIKE '%javax.persistence%' OR
Script LIKE '%javax.resource%' OR
Script LIKE '%javax.security%' OR
Script LIKE '%javax.servlet%' OR
Script LIKE '%javax.transaction%' OR
Script LIKE '%javax.validation%' OR
Script LIKE '%javax.websocket%' OR
Script LIKE '%javax.ws.rs%' OR
Script LIKE '%javax.xml.bind%' OR
Script LIKE '%javax.xml.soap%' OR
Script LIKE '%javax.xml.ws%')
UNION ALL
SELECT CONCAT( 'ProcessContainer' , pc.CustLayer) AS foundAt,
'--' AS scriptType,
'--' AS libName,
CAST( pc.Id AS NVARCHAR) AS name,
CAST( pm.XmlData AS NVARCHAR) AS scriptText
FROM
ProcessModel pm,
ProcessContainer pc
WHERE
pc.Active = 1 AND
pm.Active = 1 AND
pm.processkey = pc.pk AND
pc.SnapShotId IS NOT NULL AND
( pm.XmlData LIKE '%javax.activation%' OR
pm.XmlData LIKE '%javax.annotation%' OR
pm.XmlData LIKE '%javax.batch%' OR
pm.XmlData LIKE '%javax.decorator%' OR
pm.XmlData LIKE '%javax.ejb%' OR
pm.XmlData LIKE '%javax.el%' OR
pm.XmlData LIKE '%javax.enterprise%' OR
pm.XmlData LIKE '%javax.faces%' OR
pm.XmlData LIKE '%javax.inject%' OR
pm.XmlData LIKE '%javax.interceptor%' OR
pm.XmlData LIKE '%javax.jms%' OR
pm.XmlData LIKE '%javax.json%' OR
pm.XmlData LIKE '%javax.jws%' OR
pm.XmlData LIKE '%javax.mail%' OR
pm.XmlData LIKE '%javax.persistence%' OR
pm.XmlData LIKE '%javax.resource%' OR
pm.XmlData LIKE '%javax.security%' OR
pm.XmlData LIKE '%javax.servlet%' OR
pm.XmlData LIKE '%javax.transaction%' OR
pm.XmlData LIKE '%javax.validation%' OR
pm.XmlData LIKE '%javax.websocket%' OR
pm.XmlData LIKE '%javax.ws.rs%' OR
pm.XmlData LIKE '%javax.xml.bind%' OR
pm.XmlData LIKE '%javax.xml.soap%' OR
pm.XmlData LIKE '%javax.xml.ws%')
UNION ALL
SELECT 'WebService' AS foundAt,
PortName AS scriptType,
MethodName AS libName,
CAST( ServiceId AS NVARCHAR) AS name,
CAST( Script AS NVARCHAR) AS scriptText
FROM
WebService
WHERE
Active = 1 AND
( Script LIKE '%javax.activation%' OR
Script LIKE '%javax.annotation%' OR
Script LIKE '%javax.batch%' OR
Script LIKE '%javax.decorator%' OR
Script LIKE '%javax.ejb%' OR
Script LIKE '%javax.el%' OR
Script LIKE '%javax.enterprise%' OR
Script LIKE '%javax.faces%' OR
Script LIKE '%javax.inject%' OR
Script LIKE '%javax.interceptor%' OR
Script LIKE '%javax.jms%' OR
Script LIKE '%javax.json%' OR
Script LIKE '%javax.jws%' OR
Script LIKE '%javax.mail%' OR
Script LIKE '%javax.persistence%' OR
Script LIKE '%javax.resource%' OR
Script LIKE '%javax.security%' OR
Script LIKE '%javax.servlet%' OR
Script LIKE '%javax.transaction%' OR
Script LIKE '%javax.validation%' OR
Script LIKE '%javax.websocket%' OR
Script LIKE '%javax.ws.rs%' OR
Script LIKE '%javax.xml.bind%' OR
Script LIKE '%javax.xml.soap%' OR
Script LIKE '%javax.xml.ws%') ;
Änderungen des Lizenzmodells von Jasper Reports
Mit der neuen Version Jasper Reports 7 wurde ein neues Lizenz-Modell und eine neue XML-Struktur eingeführt. Die verwendete Community Edition benötigt nun zum Bezug und zur Verwendung des Jasper Reports Studio eine individuelle und kostenfreie Anmeldung in der Jaspersoft Community.
Die Migration der bestehenden Reports ist nur manuell über das neue Jaspersoft Studio möglich. Nach dem Update auf die Version 2025.4 oder später, müssen einige manuelle Schritte durchgeführt werden, damit die Reports im CRM wieder ausgeführt werden können.
Voraussetzung für das Migrationstool ist die Installation des CRM-Clients unter Windows Server 2019 (oder neuer) oder Windows 10 (aktueller Patch) oder Windows 11. Ist das Commando tar in Windows nicht verfügbar, kann alternativ folgende Bibliothek per Hand entpackt werden.
Sollte bei einem Report ein Fehler bei der Migration auftreten, wenn Sie sich bitte an unseren Support.
Performance-Optimierung beim Laden von Infoboards
BETRIFFT: CHROME, MS EDGE
Bisher wurden Infoboards beim Öffnen von Tabs sowie Wechseln zwischen Tabs immer wieder gänzlich neu geladen, was zu einer verzögerten Darstellung der Kacheln auf den Masken führen konnte.
Ab 2025.4 wird der Cache vom Browser genutzt, um die Performance zu verbessern. Dabei werden gewisse Informationen der Infoboards gecacht, was ein erneutes Laden deutlich beschleunigt (z.B. beim Öffnen eines weiteren Datensatzes der gleichen Entität oder das Durchblättern der Detaildatensätze einer Suchergebnisliste). Dies erhöht zwar die lokale Arbeitsspeichernutzung, ist aber für den Performancegewinn notwendig.
Um die maximale Arbeitsspeichernutzung zu limitieren, wird eine Obergrenze der gecachten Boards eingeführt. Im Standard wird diese Grenze auf 20 Boards festgesetzt. Wird diese Grenze erreicht bzw. überschritten, wird das am längsten nicht genutzte Board aus dem Cache gelöscht und mit dem aktuellsten Board ersetzt.
Um entgegenzuwirken, wenn diese erhöhte Arbeitsspeichernutzung zu viele Ressourcen beansprucht, kann die Obergrenze über einen Property Mapper-Eintrag gesetzt werden.
Künftig wird die Systemeinstellung im Web Client über die Oberfläche verfügbar gemacht.
SQL
INSERT INTO PropertyMapper (
Pk,
Id,
Property,
PropertyType,
Principal,
CustLayer,
Active,
CreateUser,
UpdateUser,
CreateDate,
UpdateDate,
PropertyValue
) VALUES (
'WebClient_InfoboardCacheSize',
'/de/cursor/jevi/web/core/controller/ApplicationController$!!$WebClient_InfoboardCacheSize',
'',
'SYSTEM',
'',
'CN',
1,
'TECH_USER',
'TECH_USER',
getdate(), -- sysdate for oracle
getdate(), -- sysdate for oracle
'20' -- the maximum number of cached infoboard iframes
);
Hinweise auf neue Funktionalitäten
Automatische Bereinigung des Empfängers beim Antworten auf E-Mails
Wenn man bspw. auf "Allen antworten" klickt und in dem Maildialog in dem Feld "Von" ein Gruppenkonto ausgewählt ist, steht das Gruppenkonto als Empfänger nicht mehr in den den Feldern "An, Cc und Bcc".
Wenn man eine Signatur auswählt, erfolgt eine Prüfung, dass die Absender-Adresse nicht mehr als Empfänger eingetragen ist.
Übernahme der Geschäftspartner E-Mail-Adresse bei der Mitarbeiter-Neuanlage
Bisher wurde bei der Neuanlage von Mitarbeitern die E-Mail-Adresse des Systembetreibers übernommen, wenn die E-Mail-Adresse bei einem Mitarbeiter nicht ausgefüllt wurde. Da dies erst im Hintergrund nach dem Speichern des neuen Mitarbeiter-Datensatzes passiert, ist dies oft unbemerkt geblieben. Ergebnis war, dass viele technische User im System die gleiche E-Mail-Adresse hatten (z.B. info@cursor.de) und bei realen E-Mails an diese E-Mail-Adresse fälschlicherweise verknüpft wurden.
Da das Hinterlegen der Systembetreiber-Mail bei diesen Usern im Anschluss an das Speichern nicht sinnvoll ist, wird bei einer Mitarbeiter-Neuanlage die E-Mail-Adresse (Email.Employee) nach dem Speichern nicht automatisch ausgefüllt, wenn diese bei der Neuanlage dieses explizit nicht gefüllt wurde. Dies wurde im Standard geändert und hat keine Konfigurationsmöglichkeit im Kundensystem. Wenn ein Kunde dies weiterhin so haben möchte, kann ein BPM-Prozess gebaut werden, der die Übernahme nach dem Speichern des Mitarbeiters erledigt.
Infokachel Prozess-Cockpit
Besonderheiten zur Migration von alten V1-Kacheln
Mit dem Update auf die 25.4 werden die Kacheln "EDL-Prozesscockpit", "Preisanpassungs-Cockpit" sowie "Privatkunden-Prozesscockpit" zu Kachelvarianten der neuen Prozess-Cockpit-Kachel migriert. Die Migration erfolgt dabei wie folgt:
Wurden keine Änderungen auf den alten Kacheln durchgeführt, so werden diese zu C0-Kachelvarianten migriert.
Gab es Veränderungen bzgl. dem i18n von Prozessen, so werden neue Kachelinstanzen des Prozess-Cockpits mit dem Update generiert. Die i18n-Vorgaben in der alten Kachel bleiben somit erhalten.
Gab es Veränderungen bzgl. den hinterlegten Prozessen im Vgl. zum C0-Standard, so werden neue Kachelinstanzen des Prozess-Cockpits mit dem Update generiert. Die hinterlegten Prozesse bleiben somit nach einem Update erhalten.
Wurde nur die Reihenfolge der Prozesse verändert, so werden alte Kachelinstanzen zu C0-Kachelvarianten migriert und die in C0 definierte Vorgabe der Reihenfolge greift.
Wurde nur der Titel der Kachel verändert, so wird bei der Migration der Titel überschrieben und auch hier findet eine Konvertierung zu C0-Kachelvarianten mit dem Update statt.
Gab es neben der Titeländerung noch andere Änderungen (Hinzufügen weiterer Prozesse oder i18n-Veränderungen bzgl. der verwendeten Prozesse), so wird stattdessen eine Kachelinstanz des Prozess-Cockpits bei der Migration generiert, um i18n-Änderungen mit dem Update nicht zu verlieren.
Gab es auf einem Board mehrere Kacheln, die dazu führen würden, dass nach dem Update mehrere Kachelvarianten generiert würden (gemäß obiger Liste), so wird nur die erste Kachel zu einer Kachelinstanz konvertiert und die anderen Kacheln gehen verloren, da auf einem Board nur einmalig eine Kachelvariante platziert werden kann.
Hinweise auf veraltete Funktionalitäten
Felder vom Typ “Listenfeld”
Der Feldtyp "Listenfeld" wird im Web Client nicht mehr unterstützt und kann zukünftig nicht mehr neu auf Masken hinzugefügt werden. Stattdessen kann als Alternative die CompactList-Kachel verwendet werden. Bestehende Masken werden nicht angepasst und an der Stelle des Feldes die Meldung ("wird vom Web Client nicht unterstützt)" angezeigt.
Kachel "Offene Aufgaben/Termine": Refaktorisierung in Kachelbau 2.0 zur "Post-It"-Kachel
Die Post-It-Kachel ist als V2.0-Kachel geschrieben. Bei einem Update auf die 25.4 oder höher werden automatisch die alten Kacheln "Offene Aufgaben" sowie "Offene Termine" zum Post-It-Kacheln umgewandelt. Die zuvor hinterlegten Suchen werden bei der Migration erhalten. Die alten Kacheln "Offene Aufgaben" sowie "Offene Termine" stehen ab der 25.4 nicht mehr länger auf dem Desktop zur Verfügung.
Maskenkonfigurationen - Umzug ins Web
Maskenkonfiguration können durch Administratoren nun im Web Client durchgeführt werden.
Die Konfiguration im Windows Client (Knoten Maskenkonfiguration bearbeiten und Konfiguration Schnellerfassungsmaske) entfällt komplett.
Es bleiben nur folgende Aktionen:
Die Details zu der Maskenkonfiguration im Web Client finden Sie im Kapitel → Bereiche im Web Client.
2025.3
Systemrelevante Informationen für Administratoren
Ergebnis des Readiness-Reports zur Metdadatenprüfung vor dem Update
Wenn man von der 25.1 oder 25.2 ein Update auf eine neuere Version durchführt (z.B. auf die 25.3) sind mindestens folgende Patch-Stände zu verwenden: 25.1.06 und 25.2.03. Ansonsten bricht der Update direkt am Anfang mit dem Hinweis ab, dass zuerst auf die Version gepatcht werden muss, damit ein Update durchgeführt werden kann.
Einschränkungen in der schreibgeschützten Ansicht der Suchbearbeitung beim Öffnen von Suchen aus Suchbehältern im Lesen-Modus
Die schreibgeschützte Ansicht der Suchbearbeitung beim Öffnen von in Suchbehältern hinterlegten Suchen im Lesen-Modus wurde wie folgt angepasst:
Öffnen des Kontextmenüs: Alle Aktionen sind deaktiviert
Bearbeitung der Suche: Alle Felder sind schreibgeschützt
Bearbeitung der Suchbedingung: Alle Felder sind schreibgeschützt
Hinweise auf neue Funktionalitäten
Neue Felder auf den Vorgängen
Felder, die auf der Maske platziert werden:
Verantwortlich und Lösungsstatus (2x) → Im Abschlussprozess
das Feld "Lösungsstatus" ist auch in der BPM-Maske Vorgang/Anliegen abschließen vorhanden.
Darüber hinaus wurde die Maskenanordnung neu aufgebaut und wurden Logiken erweitert:
Wenn der Lösungsstatus in der Maske leer ist, dann wird er im Prozess auf GELÖST vorbelegt
Wenn der Lösungsstatus in der Maske einen Wert enthält, dann wird der hinterlegte Wert in den BPM-Prozess übertragen.
Dies erfolgt auf dem Vorgang und dem Anliegen.
Einträge "Rückfrage stellen" und "Aktivität anlegen" wurden aus der Aktionsbox entfernt
Die Einträge "Rückfrage stellen" und "Aktivität anlegen" wurden aus der Aktionsbox im Vorgang und dem Anliegen entfernt. Diese werden bereits über die Kommentare & Aktivitäten Kachel abgebildet.
Die beiden dahinter liegenden BPM-Prozesse wurden ebenfalls deaktiviert.
Wurden die Aktionen übersteuert, stehen sie nicht mehr zur Verfügung.
Abschlussdatum und Durchlaufzeit nur lesend darstellen
Auf den Vorgängen und Anliegen werden die Felder Abschlussdatum und Durchlaufzeit nur lesend dargestellt, da diese über den Abschlussprozess (bzw. Wiedereröffnung) gesteuert werden.
Die folgenden Felder auf dem Vorgang und Anliegen erhalten somit die aktivierte Feldeigenschaft "Nur lesend":
CompletionDate.Ticket
CycleTime.Ticket
CompletionDate.TicketRequest
CycleTime.TicketRequest
Aufnahme des CURSOR-IdP als OIDC-Anmeldevariante
Die CURSOR IdP-Implementierung basiert auf OpenID Connect (OIDC), was sich als die sinnvollste Lösung erwiesen hat. http://Bare.ID wurde als Identity Provider angebunden. In der Adminkonsole können die Systemeinstellungen geöffnet werden. Unter OpenID Connect-Konfiguration befinden sich die neuen Einstellungen.
Der OpenID Provider "CURSOR-IdP" wird aufgenommen
Die Client ID und der geheime geheime Clientschlüssel können eingetragen werden
Der Punkt "Azure Verzeichnis-ID (Mandant)" ist nicht beschreibbar.
Excel-Auswertungen ohne die erweiterte Dateibehandlung
Bisher setzte die Excel-Integration im Web Client die erweiterte Dateibehandlung voraus, wozu es zu Nebeneffekten kam, wenn die erweiterte Dateibehandlung ausgeschaltet war.
War die Option "Suchfenster und Auswahldialog anzeigen" deaktiviert, so konnte die Datei überhaupt nicht geöffnet werden. Nach der Bestätigung jegliches Buttons im Dialog zur erweiterten Dateibehandlung passiert einfach nichts, der Task blieb im Benachrichtigungsmenü bestehen.
Andernfalls, wenn die Option "Suchfenster und Auswahldialog anzeigen" aktiviert war, konnte die Datei geöffnet werden, allerdings kam immer wieder die Abfrage zur erweiterten Dateibehandlung, egal welcher Button gedrückt wurde.
Wenn die erweiterte Dateibehandlung per Benutzereinstellung deaktiviert ist, erscheint der Dialog zur erweiterten Dateibehandlung erst gar nicht. Stattdessen wird die Excel-Datei analog zum Excel-Export von Suchergebnislisten direkt heruntergeladen.
Wenn die erweiterte Dateibehandlung per Benutzereinstellung aktiviert ist, so erscheint der Dialog zur erweiterten Dateibehandlung.
Ein Klick auf "Benutzereinstellung deaktivieren" löst den Download aus und im nächsten Schritt wird auch die Datei heruntergeladen.
Ein Klick auf "Nein (Für Sitzung deaktivieren)" löst ebenfalls den Download aus und im nächsten Schritt wird auch die Datei direkt herunterladen. Sollte der Anwender in dieser Sitzung erneut eine Excel-Vorlage ausführen, wird der Dialog zur erweiterten Dateibehandlung wieder übersprungen und die Datei direkt heruntergeladen.
Ein Klick auf "Ja" installiert die Erweiterung. Im Web Client erscheint dann der Hinweis, dass man sich abmelden muss.
Wenn es sich um eine Datei handelt, bei der Suchfenster und Auswahldialog nicht angezeigt werden, gilt das Verhalten genauso. Da der Massendatenserver in diesem Fall möglicherweise nicht mitbekommt, dass die Datei geöffnet wurde und dementsprechend des Task nicht automatisch löschen kann, muss der Anwender den Task manuell löschen (Benachrichtigungsmenü -> aus der Liste entfernen).
Individuelle Aktivierung/Deaktivierung der Buttons „Speichern“, „Speichern & Schließen“ und „Fortfahren“
Bisher konnten die Buttons "Speichern", "Speichern & schließen" und "Fortfahren" nicht separat aktiviert oder deaktiviert werden.
Jetzt ist es möglich, gezielt mittels Befehl jeden dieser Buttons individuell zu aktivieren oder zu deaktivieren.
es gibt in der Toolbar der Detailansicht unter anderem folgende drei Buttons, die im Maskenskript mit dem Befehl GUIUtils.enableToolbar unabhängig voneinander aktiv / inaktiv geschaltet werden können
Speichern (GUIConstants.TOOLBAR_BUTTON_SAVE)
Speichern und Schließen (GUIConstants.TOOLBAR_BUTTON_SAVE_AND_CLOSE)
Zuvor hat die Konstante GUIConstants.TOOLBAR_BUTTON_SAVE_AND_CLOSE sowohl den Button 'Fortfahren' als auch 'Speichern und Schließen' bezeichnet.
Verhindern der Anlage einer Kopie der Mailarchiv-Datei
Bei Vorliegen des Adobe Outlook AddIns wird im Falle des Öffnens der Mail-Archiv-Datei eine Kopie der Mail-Datei im Posteingang angelegt. Dies passiert auch beim Aufruf über DocumentUtils.openDocument.
Über PropertyMapper kann daher gesteuert werden, ob die MSG-Datei durch Aspose angelegt werden soll, damit die unnötige Kopie nicht mehr angelegt wird.
Wenn über den PropertyMapper aktiviert, wird die Mail-Archiv Datei über Aspose erzeugt, sonst über EWS. Wird über Aspose erzeugt, hat die Datei die Endung msg, bei EWS die Endung eml.
Vorgangsmanagement: Neue Unterbereichssuche "Nicht beendete Vorgänge"
Im Unterbereich wurde eine Suche “Nicht beendete Vorgänge” implementiert, die über das Auswahlmenü ausgelöst werden kann.
Hinweise auf veraltete Funktionalitäten
Entfernen des Zwischenereignisses "Neuanlage"
Da der Prozess nicht auf die Neuanlage wartete und mit dem Satz nicht weiterarbeitete, wurde die Neuanlage als Zwischenereignis in BPM entfernt, so dass alte Prozesse noch geladen werden können, aber neue nicht so konfiguriert werden können. Als Alternative dient die Benutzeraktion "Neuanlage".
Im Readiness-Report (Patch in 2025.1) werden diese Prozesse für 2026.1 angezeigt.
2025.2
Systemrelevante Informationen für Administratoren
-
Hinweise auf neue Funktionalitäten
Umbenenung des Feldes "2. Kd-Nr." im Geschäftspartner
Mit der Zusammenführung der Standardversion mit EVI und TINA wurde der bisherige Name des Geschäftspartner-Feldes "2. Kd-Nr." übernommen. Hießen die Felder in den EVI-Modulumgebungen bislang "ERP-GP-Nr.", so wurden sie überall auf "2. Kd-Nr." angepasst, sofern das Feld im Zielsystem nicht übersteuert und mit einem eigenen Namen ausgestattet ist.
Da das Feld überwiegend im EVU-Umfeld im Zusammenhang mit den ERP-Systemen Verwendung findet und weniger in CURSOR-CRM, wurde das Feld CustomerNo2.Customer im Standard auf "ERP-GP-Nr." angepasst. Im Englischen wird "ERP BP No." verwendet.
Aktualisierung der JavaScript-Bibliotheken im Bereich des Infoboards
Mit der Version 25.2 werden die veralteten Bibliotheken entfernt. Eine Umstellung muss zwingend vor dem Update auf 25.2 oder später erfolgen, um den Weiterbetrieb von Kacheln zu gewährleisten.
Für den Bereich der Kacheln besteht die Möglichkeit, innerhalb der Kachelkonfiguration im Bereich "Imports" auf eine neuere Bibliotheksversion zu wechseln. Dazu muss die Kachel in ihrer überschriebenen Variante geöffnet werden und durch An- und Abwahl des Bibliothekseintrages migriert werden, sodass die Prüfung der Kachel vorgenommen werden kann. Dies kann in der Regel durch den Test im System erfolgen. Hierbei empfiehlt es sich den Web Client zum Test zu nutzen. Ein Browser bietet die Möglichkeit Details und Fehlermeldungen durch die eingebaute Entwicklerkonsole einzusehen.
Die Dokumentation der einzelnen Bibliotheken ist auf den verlinkten Ressourcen einsehbar. Hierbei ist es hilfreich sich innerhalb der dort bereitgestellten Dokumentationen an Einträgen wie "Deprecated" oder "Removed" zu orientieren.
Mit der Abkündigung des Windows Clients im CURSOR CRM werden Bibliotheken und Funktionalitäten und der Aufruf des Windows Client selbst nach und nach entfernt. Einige Features, benannt im Readiness-Report, entfallen nach der Version 25.1 direkt. Der Readiness-Report verhindert auch das Update auf die Version 25.2, wenn die entsprechenden Umstellungen im Kundensystem nicht vorgenommen wurden:
Workflow-Engine (Client und Server)
Beanshell-Skripte
Pixel-Layout Masken
Der Rückbau umfasst darauffolgende Punkte.
Client-Start und Admin-Konsole
Der Client startet im Standard die Admin-Konsole
Aus der Admin-Konsole werden Admin-Bereiche, die im Web Client sind entfernt
Workflow-Engine
Kunden-Workflows werden gelöscht
die Workflow-Laufzeitumgebung im Server wird entfernt
Tests werden entfernt
Maskenskript
Beanshell Maskenskripte und Historie wird entfernt
Beanshell-Utility Bibliothek wird entfernt
Beanshell Script-Engine wird entfernt
$GLOBAL in Skripten
Die Ersetzung von $GLOBAL findet nicht mehr statt
Der Groovy-Cache greift nun immer
BPM-Prozesse "Immer Ausführen"
Die Laufzeit-Umgebung wird entfernt
Das Ereignis ist im Start-Event nicht mehr auswählbar
Alte Prozesse können importiert werden, aber nicht mehr veröffentlicht werden
Alter GUI-Builder
Der Aufruf des alten Maskeneditor wird entfernt
Pixel-Masken werden gelöscht
Desktop-Link
Desktop-Link im Link-Dialog wird entfernt
im Link-Dialog "Web Link" wird zum "Link" umbenannt
Wenn Datensätze als Link versendet werden (in Listenansichten (einzelner Datensatz + Mehrfachauswahl), im Unterbereich, jeweils über das Dropdownmenü) wurde die Bezeichnung "Desktop Link" durch"iOS Link" ersetzt