TUTO : Appel du SIF Informatica MDM

Partager cet article

Objectif

L’objectif de ce tutoriel est de faire un appel à un Web Service via l’utilisation du SIF.

Pour ce tutoriel on utilisera l’ORS SAMPLE, et le service GET.

Exemple d’appel avec  SoapUI :

NB :

  • on utilisera pour outil de développement java NetBeans 7.
  • Le MDM fonctionne avec JBoss 5x

Import des librairies (CLASSPATH)

Une fois le projet Java créé dans NetBeans, il faut importer les bonnes librairies (jars) java.

Ces librairiez proviennent de :

  • La solution MDM (répertoire [Installation du MDM]\resourcekit\sifsdk\lib)
  • De JBoss (répertoire [Installation de JBoss]\client)
  • D’Apache (pour Log4J)

NB :

  • Avec JBoss 5 il est important de telecharger et utiliser le jar de log4j en version 1.2.16 minimum pour que cela fonctionne.
  • De plus déplacer le jaj log4j en première position pour éviter tout conflit avec la même librairie déjà présente (mais incorrecte) dans les jars de JBoss.

Préparation du fichier de configuration

Il faut configurer un fichier de paramètre qui sera ensuite utilisé par l’API pour appeler le Web Service (ici on utilisera le fichier C:/WORK/MyWork/TestWSCall/properties/siperian-client.properties).

Adaptez bien sur avec votre contexte :

################################################################################
#
# This file contains the parameters used to connect from the web service to
# the Siperian Hub (using the Siperian Hub MrmClient libraries).
#
################################################################################

################################################################################
# Properties used in each request to Siperian Hub
#
# These may be set programmatically on each VerbRequest, but are typically static.
# Note, in some programming contexts, the usernames and passwords below should be set programmatically or secured.

# TODO: set the database parameter (and others if not being set within the web service)
siperian-client.orsId=<strong>orcl.localdomain-CMX_ORS_SAMPLE</strong>
siperian-client.username=<strong>admin</strong>
siperian-client.password=<strong>admin</strong>

################################################################################
# Connection protocol may be: http, ejb or soap
# ejb is recommended as it is the only one that allows separate requests to
# participate in transaction.

# TODO: Choose a protocol
siperian-client.protocol=<strong>ejb</strong>
java.naming.provider.url=<strong>jnp://localhost.localdomain:1099/</strong>
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
jnp.socketFactory=org.jnp.interfaces.TimedSocketFactory
jnp.timeout=20000
jnp.sotimeout=20000
jnp.discoveryTimeout=50000

################################################################################
# Parameters for HTTP
# Use this with protocol=http
http.call.url=<strong>http://localhost.localdomain:8080/cmx/request</strong>

Autres fichiers de configuration

Dans le meme repertoire que le fichier de configuration précédent, créez les deux fichier (même vide) suivant :

  • ejb.properties
  • security.properties

Code

Le code d’appel du service GET :

package testwscall;

//import com.informatica.mdm.sif.services.*;
import com.siperian.sif.message.Password;
import com.siperian.sif.client.SiperianClient;
import com.siperian.sif.message.RecordKey;
import com.siperian.sif.message.mrm.GetRequest;
import com.siperian.sif.message.mrm.GetResponse;
import com.siperian.sif.message.Record;
import java.io.File;
import java.util.Iterator;


public class TestWSCall {

 

/**
* @param args the command line arguments
*/

public static void main(String[] args) {
    GetResponse response = null;
    GetRequest service = new GetRequest();
    SiperianClient sipClient;

    // Affecte le username
    service.setUsername("admin");

    // affecte le password (non encrypté)
    Password pwd = new Password();
    pwd.setEncrypted(false);
    pwd.setPassword("admin");
    service.setPassword(pwd);

    // Affecte l'ORD ID
    service.setOrsId("orcl.localdomain-CMX_ORS_SAMPLE");

    // Affecte le package d'interrogation
    service.setSiperianObjectUid("PACKAGE.PKG_ADDRESS");

    RecordKey rec = new RecordKey();
    rec.setRowid("250");
    service.setRecordKey(rec);

    File prop = new File("<strong>C:/WORK/MyWork/TestWSCall/properties/siperian-client.properties</strong>");
    sipClient = SiperianClient.newSiperianClient(prop);

    try {
        response = (GetResponse) sipClient.process(service);
    } catch (Exception e) {
        System.out.println("Failure processeing cleanseReq : " + e);
    }

    Iterator recordIter = response.getRecords().iterator();

    // Récupération du résultat :
    while (recordIter.hasNext()) {
        Record record = (Record) recordIter.next();
        String addr1 = record.getField("ADDRESS_LINE_1").getStringValue();   // EX
        String city = record.getField("CITY_NAME").getStringValue();     // EX
        System.out.println("GenericGetAPI: Reponse : " + addr1 + " " + city);
    }
}

Lancez le programme et constatez le résultat :

ANNEXE 1 – Trouver l’ORS ID

Pour connaître l’ORS ID c’est très simple, allez dans la console d’administration d’Informatica MDM hub et sélectionnez votre ORS dans la rubrique Database comme suit :

Partager cet article

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.