Konfiguration von Java-Klassen

Eigentlich selbstverständlich, aber immer wieder ein Anlaß zur Verwunderung: die Konfiguration von Java-Klassen in UC4. Ein zentrales Element für die problemlose Verwendung von Java-Klassen in unterscheidlichen UC4 Mandanten - die Trennung von Konfiguration und Programm - wird immer noch häufig ignoriert.

Da  sich Java-Klassen vergleichsweise einfach kompilieren lassen, erliegen Entwickler immer noch der Versuchung, zentrale Parameter im Java fest codiert vorzugeben. Das geht von Angaben für Das Login (wie Server, Ports, Benutzer oder Passwörter) bis hin zu vermeindlich fixen Konstanten iwe UC4 Typen oder UC4 Verzeichnisse. Erfahrungsgemäß tritt der Fall, solche Parameter ändern zu müssen, dennoch auf.

Dabei ist eine flexible Lösung so einfach wie wirksam. Grundsatz für eine solche Lösung ist: alle Parameter, die eine Java-Klasse verwendet, kommen von außen. Ausgenommen hiervon sind nur selbstverständliche Parameter (bspw. der Type JOBS für eine Klasse, welche Job-bezogene Aktionen durchführt) oder Einstellungen, die sich über das Java API direkt aus UC4 selber bestimmen lassen.

Die Parameter selber lassen sich in zwei unterschiedliche Klassen aufteilen:

  1. alle systemrelevanten Parameter wie UC4 System, Port, Mandant, Benutzer und Passwort. Diese Parameter können zentral in einer einzigen UC4 VARA abgelegt werden und über INCL in UC4 Scriptvariablen umgesetzt werden. Änderungen an diesen Parametern erfolgen zental an einer Stelle, und in Verbindung mit dem INCL sind die Werte immer und überall aktuell. Jeder Job, welcher diese Parameter benötigt, kann dann auf die UC4 Scriptvariablen zugreifen und sie - immer aktuell - verwenden.
  2. alle anwendungsspezifischen Parameter wie Pfade, Datum, etc. Diese Parameter können in einer Konfigurations-VARA je Anwendung abgelegt werden. Der Zugriff auf diese erfolgt wie schon im ersten Fall über ein INCL, in welchem die Einträge der UC4 VARA in UC4 Scriptvariablen umgesetzt werden. Damit sind diese Parameter bei ihrer Verwendung ebenfalls immer aktuell.

Eine Sonderrolle spielen Passwörter. Da UC4 VARAs von allen Benutzern eines Mandanten lesbar sind, außer es werden die Zugriffsrechte entsprechend gesetzt, ist es bisweilen sinnvoll, die Passwörter auf einen Server auszulagern. Sie werden dann in eine Datei geschrieben, die nur vom technischen Benutzer, unter welchem der Job läuft, lesbar ist, und im Java ausgelesen.

Grundsätzlich sollten Passwörter auch in UC4 verschlüsselt werden - unabhängig davon, ob sie in einer UC4 VARA oder einer Datei gespeichert werden. UC4 bietet hierzu selber verschiedene Hilfsmittel an - Java-Klassen, Utilities - welche sich allerdings im Laufe der Zeit geändert haben.