Oracle BAM 11g : exporter/importer les données

La modélisation de dataobjects et de reports pour le BAM (Business Activity Monitoring) s’effectue uniquement via la console associée. En effet, impossible de travailler ces données depuis JDeveloper puis d’en créer un livrable.

Dans un contexte de production et de développement complexe, on imagine difficilement devoir recréer l’ensemble des données (dataobjects et reports) chez le client depuis la console.

Heureusement …… il existe une astuce pour embarquer l’ensemble des données et les réintégrer dans un autre environnement. La solution ? La commande ICommand.

ICommand vous permet de manipuler les objets du BAM (reports et dataobjects). Il est possible de modifier, supprimer, renommer, purger, exporter et importer ces données.

Nous verrons avec un exemple simple comment exporter/importer. Sachez cependant que la démarche est similaire pour les autres actions proposées.

Cette commande se trouve ici: WLS_HOME/Oracle_SOA1/bam/bin/icommand.bat



Note: ICommand recherche le BAMServer sur son port par défaut (9001). Si ce port a été changé, il est nécessaire de le préciser dans le fichier de configuration BAMICommandConfig.xml

 <ADCServerPort>9001</ADCServerPort>

Ce fichier est situé dans le répertoire : WLS_HOME/Oracle_SOA1/bam/config

Usecase

Imaginons un cas simple avec ce dataobject:

… avec ces données:

…alimentant ce rapport:

Nous souhaitons extraire ces données avec ICommand afin de les emmener chez un client.
Attention : les paramètres de la ligne de commande sont « case sensitive »
Nous allons d’abord commencer par exporter la structure de données :

Considérant que le client a son propre jeu de données, j’ai décidé pour l’exemple de ne pas exporter pas les données qui m’ont permises de tester mon report.

Examinons d’un peu plus près la ligne de commande :

icommand –cmd export –file ./easyteam_dataobject.xml –username admin –type dataobject –name easyteam_le_blog/PurchaseOrder –contents 0

J’ai donc réalisé une extraction du dataobject PurchaseOrder ayant été enregistré dans le dossier easyteam_le_blog lors de la conception. Le résultat se trouvera dans le même répertoire que la commande icommand dans un fichier nommé easyteam_dataobject.xml.
Le paramètre contents à 0 m’a permis de ne pas exporter le contenu de mon dataobject.
Notons également que par défaut, il est nécessaire de spécifier l’utilisateur weblogic ayant les privilèges de faire l’extraction (weblogic par défaut, admin sur ma machine).

Par curiosité, ouvrons le fichier résultant de l’extraction:


C’est donc du xml tout simplement qui décrit la structure du dataobject.
Réalisons maintenant l’extraction de notre report.

icommand -cmd export -file ./easyteam_report.xml -username admin -type report -name PurchaseOrder_blog

 

Et voilà, il ne me reste plus qu’à packager tout ça, et une fois chez le client:

icommand -cmd import -file ./easyteam_dataobject.xml
icommand -cmd import -file ./easyteam_report.xml

(en ayant pris soin de bien déposer les fichiers résultant de l’extraction au même endroit que la commande ICommand de l’environnement client bien sûr)

Vous pouvez retrouver l’exhaustivité des commandes à cette adresse : http://download.oracle.com/docs/cd/E15523_01/integration.1111/e10224/bam_app_icommand.htm