Appel d'une méthode Java dans un service d'intégration

Si l'implémentation d'une activité nécessite d'appeler des méthodes depuis une classe Java, vous pouvez utiliser l'étape d'intégration Java dans un service d'intégration.

Avant de commencer

Pour exécuter cette tâche, vous devez vous trouver dans l'éditeur de bureau IBM® Process Designer.

Avant de créer un service d'intégration, ajoutez le fichier JAR contenant les classe dont vous avez besoin. Une fois que vous avez ajouté le fichier JAR comme fichier serveur, vous pouvez sélectionner la classe à utiliser pour votre service. Si les fichiers JAR dont vous avez besoin sont inclus dans un toolkit IBM Business Process Manager, vous pouvez ajouter une dépendance à ce toolkit pour accéder à ces fichiers. Voir "Création d'une dépendance de toolkit dans la vue Designer view" pour les instructions.

Procédure

  1. Ouvrez l'éditeur de bureau de Process Designer.
  2. Créez un service d'intégration.
  3. Faites glisser une étape Intégration Java de la palette vers le diagramme de service, puis utilisez des lignes de séquence pour connecter le composant aux événements Début et Fin.
  4. Cliquez sur l'étape Intégration Java dans le diagramme, puis sur l'option Définition dans les propriétés.
  5. Cliquez sur le bouton Sélectionner situé en regard de la zone Classe Java pour choisir le fichier JAR et la classe sur le fichier JAR à appeler.

    Les fichiers JAR répertoriés sont ceux ajoutés comme fichiers de serveur géré, comme décrit dans la rubrique "Gestion des fichiers externes". Par défaut, les classes du package Java IBM BPM sont disponibles dans le fichier integration.jar, qui est inclus dans le toolkit des données système. Si votre projet actuel contient des dépendances sur d'autres kits d'outils qui incluent des fichiers JAR, ces fichiers sont également disponibles.

  6. Dans la section Découverte (sous les onglets Propriétés et Définition), cliquez sur la zone Méthode. Dans la liste déroulante, sélectionnez la méthode que vous souhaitez appeler sur la classe que vous avez sélectionnée à l'étape précédente.
  7. Cochez la case Convertir JavaBeans si vous souhaitez que le résultat de la méthode Java appelée soit sérialisé et renvoyé au service d'intégration comme élément XML. Le contenu de l'élément est basé sur les propriétés de la classe de l'objet.

    Par exemple, si vous avez choisi la classe teamworks.Users dans le fichier integration.jar (modules Java IBM BPM) puis que vous avez sélectionné la méthode getUser en cochant la case Convertir JavaBeans. Le résultat ressemble à ce qui suit :

    <userino type="com.lombardisoftware.core.UserInfo" description="UserInfo">
       <calendarId type="com.lombardisoftware.client.persistence.common.ID" description="calendarId" />
       <fullname type="java.lang.String" description="String">tw_author</fullname>
       <qualifiedName type="java.lang.String" description="String">tw_author</qualifiedName>
       <sendToAddress type="com.lombardisoftware.core.routing.Address" description="Address">
         <name type="java.lang.String" description="String">tw_author</name>
         <toGroup type="java.lang.Boolean" description="Boolean">false</toGroup>
         <toUser type="java.lang.Boolean" description="Boolean">true</toUser>
       </sendToAddress>
       <userData type="java.util.HashMap" description="HashMap">
         <entry key="Full Name" description="Map Entry">
        	  <key type="java.lang.String" description="String">Full Name</key>
        	  <value type="java.lang.String" description="String">tw_author</value>
         </entry>
       <userData>
       <userId type="com.lombardisoftware.client.persistence.common.ID$NumericID" description="ID$NumericID">
         <id type="java.math.BigDecimal" description="BigDecimal">2</id>
         <type type="com.lombardisoftware.client.persistence.common.POType$User" description="POType$User">
     	      <deleted type="java.lang.Boolean" description="Boolean">false</deleted>
     	      <exportable type="java.lang.Boolean" description="Boolean">false</exportable>
     	      <factoryName type="java.lang.String" description="String">com.lombardisoftware.client.persistence.UserFactory</factoryName>
     	      <id type="java.lang.Integer" description="Integer">2048</id>
     	      <libraryItem type="java.lang.Boolean" description="Boolean">false</libraryItem>
     	      <name type="java.lang.String" description="String">User</name>
     	      <tableName type="java.lang.String" description="String">LSW_USR_XREF</tableName>
         </type>
       </userId>
       <username type="java.lang.String" description="String">tw_author</username>
    </userinfo>
    Remarque : Lorsque vous cochez la case Convertir JavaBeans, vous devez sélectionner le type de variable XMLElement ou ANY dans le service d'intégration pour la valeur renvoyée par la méthode Java.

    Si vous ne cochez pas la case Convertir JavaBeans, la méthode Java ne peut renvoyer que des objets des types indiqués dans Tableau 1.

    Tableau 1. Types d'objets renvoyés par la méthode Java si Convertir JavaBeans n'est pas coché
    Types d'objet
    java.lang.String java.lang.Double java.lang.ArrayList
    java.lang.Long java.lang.Float java.lang.HashMap
    java.lang.Integer java.lang.Boolean org.jdom.Document
    java.lang.Short java.lang.Character org.jdom.Element
    java.lang.Byte java.lang.Calendar com.lombardisoftware.core.XMLNodeList et com.lombardisoftware.core.TWObject
  8. Cliquez sur l'onglet Variables pour que le service d'intégration ajoute toutes les variables d'entrée que le service doit recevoir et toutes les variables de sortie qu'il doit mettre à disposition des étapes suivantes dans le service ou la définition de processus métier.
  9. Cliquez sur l'étape Intégration Java dans le diagramme de service et sur l'option Mappage de données dans les propriétés pour configurer des mappages d'entrée et de sortie pour l'étape.
  10. Imbriquez le service d'intégration dans un autre service ou sélectionnez-le en tant qu'implémentation pour une activité selon les besoins du processus global.