Implementierung einer Java-Klasse

Integrationsmodule können für die Verwendung von Java™ -Klassendateien implementiert werden. Bei der Verwendung einer Java-Klassendatei fallen Registrierung und Konfiguration der Integrationskomponenten weg. Außerdem sind alle zugrunde liegenden Integrationsmodulimplementierungen für das Prozessmanagementprodukt transparent.

Die Java-Klasse für Integrationsmodule müssen die Java-Schnittstelle psdi.iface.mic.ServiceInvoker implementieren. Die Java-Schnittstelle "ServiceInvoker" ist in der Datei businessobjects.jar enthalten. Schließen Sie die Java-Klasse für das Integrationsmodul zur Laufzeit in den Systemklassenpfad ein.

Die Java-Schnittstelle "ServiceInvoker" hat Varianten der folgenden Methodensignatur:

public byte[] invoke(Map String,Object metaData, MboRemote sourceMbo, MboRemote targetMbo, String endPointName) throws MXException, RemoteException;

  • metaData ist eine Zuordnung (Map) mit Namens- und Werteeigenschaften wie beispielsweise den folgenden:
    • Name und Version des Integrationsmoduls
    • Name und Namespace der logischen Verwaltungsoperation
    • Global eindeutige ID des operativen Managementprodukts
    • Endpunktname und Endpunkteigenschaften, die überschrieben werden
  • sourceMbo ist das Quellenobjekt, das Sie in der logischen Verwaltungsoperationen definiert haben.
  • targetMbo ist das Antwortobjekt, das Sie in der logischen Verwaltungsoperationen definiert haben.
  • endPointName ist der Name des Endpunkt, den Sie für die Kommunikation mit dem operativen Managementprodukt verwenden.

Wenn Sie das Integrationsmodul für die Implementierung mehrerer logischer Verwaltungsoperationen konfigurieren, muss das Integrationsmodul bestimmen, welche logische Verwaltungsoperation aufgerufen wird. Zur Laufzeit ruft das Integrationsmodul die Eigenschaften LMONAME und LMONAMESPACE aus der metaData-Eingabezuordnung ab:

import psdi.iface.omp.IMConstants;
.
.
.
String lmoName = metaData.get(IMConstants.LMONAME);
String lmoNamespace = metaData.get(IMConstants.LMONAMESPACE);      

Das Integrationsmodul kann Daten zur logischen Verwaltungsoperation aus dem Quellenobjekt abrufen. Der folgende Beispielcode ruft Werte für die logische Verwaltungsoperation aus dem Quellenobjekt ab:

String guid = sourceMbo.getString("GUID");
int packID = sourceMbo.getInt("PACKID");
boolean hasSubs = sourceMbo.getBoolean("HASSUBS");

In diesem Beispiel hat die logische Verwaltungsoperation ein alphanumerisches Eingabeattribut, die so genannte global eindeutige ID, ein ganzzahliges Attribute mit dem Namen PACKID und ein boolesches Attribut mit dem Namen HASSUBS.

ServiceInvoker-Methoden können einen MboSetRemote-Wertesatz anstelle eines einzelnen MboRemote-Werts als Quelleneingabe akzeptieren. In manchen Fällen übergibt das Integrationsmodul alle Objekte im Objektsatz an das operative Managementprodukt. In anderen Fällen übergibt das Integrationsmodul nur das erste Objekt im Satz. Es gibt keine definierten Regeln für das Verhalten des Integrationsmoduls, aber Sie müssen das erwartete Verhalten in der Beschreibung der logischen Verwaltungsoperation klar definieren.