Voraussetzungen
Die Prozedurimplementierungsklassen sind als Paket in einer separaten Klassenstruktur bzw. einer JAR-Datei zusammengefasst und werden Unica Plan über einen URL-Pfad zur Verfügung gestellt.
Prozedurimplementierung
Der Prozedurenausführungsmanager verwendet ein unabhängiges Klassenladeprogramm, um diese Klassen bei Bedarf zu laden. Unica Plan sucht standardmäßig im folgenden Verzeichnis.
<Plan_Home>/devkits/integration/examples/classes
Um diese Standardeinstellung zu ändern, setzen Sie den Parameter integrationProcedureClasspathURL unter Einstellungen > Konfiguration > Plan > umoConfiguration > integrationServices.
Der Name der Prozedurimplementierungsklasse entspricht der gültigen Java™-Namenskonvention, um Konflikte der Paketbenennungen mit unica und Klassen anderer Anbieter zu vermeiden. Es ist wichtig, dass der Kunde Prozeduren nicht in der Paketstruktur „com.unica“ oder „com.unicacorp“ ablegt.
Die Prozedurimplementierung ist entsprechend der Java-Laufzeitversion codiert, die Unica Plan auf dem Anwendungsserver verwendet (JRE 1.8 oder höher).
Die Prozedurenimplementierungsklasse wird von der Richtlinie zum Laden von Klassen (meist parent-last) geladen, die normalerweise von Unica Plan verwendet wird. Der Anwendungsserver kann Entwicklungstools und Optionen zum erneuten Laden von Klassen bereitstellen, die für Unica Plan-Prozeduren gelten, dies ist jedoch nicht erforderlich.
Bibliotheken
Unica Plan stellt eine Reihe von Open-Source-Bibliotheken und Bibliotheken von Fremdanbietern bereit. Anwendungsserver verwenden ebenfalls verschiedene Versionen dieser Bibliotheken.
Im Allgemeinen wird diese Liste von Release zu Release geändert. Folgende Bibliotheken anderer Anbieter werden unterstützt.
- activation.jar
- axiom-api-1.2.15.jar
- axiom-compat-1.2.15.jar
- axiom-dom-1.2.15.jar
- axiom-impl-1.2.15.jar
- axis2-adb-1.5.2.jar
- axis2-adb-codegen-1.5.2.jar
- axis2-codegen-1.5.2.jar
- axis2-kernel-1.5.2.jar
- axis2-transport-http-1.5.2.jar
- axis2-transport-local-1.5.2.jar
- httpcore-4.0.jar
- commons-codec.jar
- commons-httpclient-3.1.jar
- commons-lang.jar
- commons-logging.jar
- disruptor-3.4.2.jar
- geronimo-stax-api_1.0_spec-1.0.1.jar
- httpclient-4.3.6.jar
- httpcore-4.3.3.jar
- jersey-client-1.17.jar
- jersey-core-1.17.jar
- jersey-json-1.17.jar
- junit-4.4.jar
- log4j.jar
- log4j-api-2.8.2.jar
- log4j-core-2.8.2.jar
- mail.jar
- neethi-2.0.4.jar
- wsdl4j-1.6.2.jar
- xlxpScanner.jar
- xlxpScannerUtils.jar
- xlxpWASParsers.jar
- XmlSchema-1.4.3.jar
- Unica Plan APIs latest version (affinium_plan.jar)
- Unica Platform APIs latest version (unica-common.jar)
Wenn eine Prozedur oder die Sekundärklasse, die von der Prozedur importiert wird, solche Pakete verwendet, muss deren Verwendung exakt mit den Paketen übereinstimmen, die von Unica Plan oder dem Anwendungsserver bereitgestellt werden. In diesem Fall ist eine Nachbearbeitung Ihres Prozedurcodes erforderlich, wenn eine spätere Version von Unica Plan eine Bibliothek aktualisiert oder nicht weiter verwendet.
Prozeduren und Threads
Die Prozedur muss bezüglich ihres eigenen Status threadsicher sein, das heißt, ihre Ausführungsmethode darf nicht von internen Statusänderungen zwischen einzelnen Aufrufen abhängen. Eine Prozedur kann keine eigenen Threads erstellen.