mercredi 16 juillet 2008

populateXRefRow - MDM simple - Cross Referencing - Xref - Cross Reference - XrefTool


Cet article permet de mettre en oeuvre du cross referencing. Le cross referencing permet d'associer un id d'une application à une ou plusieurs autres applications. La correspondance des identifiants est alors centralisée dans la Soa Suite 10.1.3.3 (uniquement).


Exemple:

Une application Siebel gère les contacts par rapport à une application SAP. La concordance des identifiants des contacts entre Siebel et SAP, peut se faire via une table de référence croisée. Oracle Soa Suite et notamment l'ESB permet de mettre en oeuvre un référentiel croisé.


Pour mettre en oeuvre Xref, il faut utiliser dans un premier temps l'outil en ligne de commande Xreftool :


Cet outil permet de créer les tables dans le référentiel de la soa suite.


L'outil XrefTool est présent dans :

/integration/esb/bin

Votre Soa Suite doit être démarrée, et vous devez postionner les variables d'environnement comme suit:

set oc4j_username=oc4jadmin

set oc4j_password=XXXX


Lancer la commande: xreftool.bat -shell

un curseur apparait ">" et attend vos instructions.

la commande "help" permet d'avoir la liste des instructions disponibles.


Pour créer un objet de cross referencing, il faut tout d'abord utiliser:

!! Attention les instructions doivent respecter les minuscules et majuscules !!


createTable clients


ensuite nous allons ajouter des colonnes dans cet objet 'clients' pour associer l'id de Siebel avec l'id de SAP.


addColumns {tableName columnName1,columnName2...}

soit pour notre exemple : addColumns clients siebel,SAP


on peut bien évidemment rajouter des colonnes par la suite ou les supprimer si vos références croisées évoluent dans votre SI.


C'est terminé pour la création du référentiel .... c'est rapide ;)


Ensuite sous le répertoire :

/integration/esb/sql/oracle

Lancer le script SQL : xreftables.sql

en utilisant l'utilisateur oraesb

ce qui donne:

sqlplus oraesb/XXX

@xreftables.sql;


Ensuite vous pouvez utiliser l'ensemble des fonctions "XPath Extension Function" proposée dans l'ESB ou dans BPEL.



Pour renseigner votre référentiel croisé :

xref:populateXRefRow1M(xrefTableName as string,
xrefReferenceColumnName as string,
xrefReferenceValue as string,
xrefColumnName as string,
xrefValue as string,
mode as string) return xrefValue as string


mode = Add ou Update ou Link ou Any


xref:populateXRefRow(xrefTableName as string,
xrefReferenceColumnName as string,
xrefReferenceValue as string,
xrefColumnName as string,
xrefValue as string,
mode as string) return xrefValue as string


mode = Add ou Update ou Link ou Any


et voici les fonctions de recherche:


xref:lookupXRef(xrefTableName as string,
xrefReferenceColumnName as string,
xrefReferenceValue as string,
xrefColumnName as string,
needAnException as boolean) return as string



xref:lookupXRef1M(xrefTableName as string,
xrefReferenceColumnName as string,
xrefReferenceValue as string,
xrefColumnName as string) return as node-set


Je vous propose un exemple BPEL à télécharger ICI qui utilise la fonction xref:populateXRefRow
pour rappel, les functions sont aussi accéssibles dans Oracle ESB.

Aucun commentaire: