Implémentation d'une classe Java
Les modules d'intégration peuvent être implémentés pour utiliser des fichiers de classe Java™ . L'utilisation d'un fichier de classe Java évite d'enregistrer et de configurer un composant d'intégration. Aussi, toutes les implémentations de modules d'intégration sous-jacentes sont transparentes pour le produit de gestion de processus.
Les modules d'intégration de la classe Java doivent implémenter l'interface Java psdi.iface.mic.ServiceInvoker Java. L'interface Java de l'appelant du service est incluse dans le fichier businessobjects.jar. Incluez la classe Java du module d'intégration dans le chemin de la classe système au moment de l'exécution.
L'interface Java de l'appelant de service dispose de variations de la signature de méthode suivante :
public byte[] invoke(Map String,Object metaData,
MboRemote sourceMbo, MboRemote targetMbo, String endPointName)
throws MXException, RemoteException;
metaDataest une mappe des propriétés de nom et de valeur qui inclut:- Le nom et la version du module d'intégration.
- Le nom et l'espace de nom de l'opération de gestion logique.
- L'identificateur unique global du produit de gestion opérationnelle.
- Le nom du point de terminaison et n'importe quelle propriété du point de terminaison qui est écrasée.
sourceMboest l'objet source que vous avez défini lors de l'opération de gestion logique.targetMboest l'objet de réponse que vous avez défini lors de l'opération de gestion logiqueendPointNameest le nom du noeud final que vous utilisez pour communiquer avec le produit de gestion opérationnelle.
Si vous configurez le module d'intégration pour implémenter plusieurs opérations de gestion logique, le module d'intégration doit déterminer l'opération de gestion logique à appeler. Au moment de l'exécution, le
module d'intégration extrait les propriétés LMONAME et LMONAMESPACE de la mappe d'entrée metaData :
import psdi.iface.omp.IMConstants;
.
.
.
String lmoName = metaData.get(IMConstants.LMONAME);
String lmoNamespace = metaData.get(IMConstants.LMONAMESPACE);
Le module d'intégration peut extraire des données de l'opération de gestion logique à partir de l'objet source. L'exemple de code suivant extrait des valeurs de l'opération de gestion logique à partir de l'objet source :
String guid = sourceMbo.getString("GUID");
int packID = sourceMbo.getInt("PACKID");
boolean hasSubs = sourceMbo.getBoolean("HASSUBS");
Dans cet exemple, l'opération de gestion logique dispose d'un attribut d'entrée alphanumérique appelé "identificateur unique global", un attribut entier appelé "PACKID" et un attribut booléen appelé "HASSUBS".
Les méthodes de l'appelant de service peuvent utiliser un ensemble de valeurs MboSetRemote
comme entrée source, au lieu d'une valeur MboRemote unique. Dans certains cas, le module d'intégration transmet tous les objets de l'ensemble
d'objets au produit de gestion opérationnelle. Dans d'autres cas,
le module d'intégration transmet uniquement le premier objet de l'ensemble. Il n'existe
aucun règle définie qui s'applique au comportement du module d'intégration, mais vous devez
clairement définir le comportement attendu dans la description de l'opération de gestion logique.