mercredi 12 septembre 2007

Outil SQL


Juste un petit mémo pour vous présenter mon outil favori pour mes requêtes SQL et autres, en utilisant uniquement les drivers JDBC de tout éditeurs.


Outil téléchargeable sur :





lundi 10 septembre 2007

XPATH count dans BPEL



une petite astuce :

afin de compter plusieurs éléments XML dont le N° de order égale à quelquechose, il suffit d'utiliser l'expression suivante :

ora:countNodes('Receive_1_Read_InputVariable','Root-ElementLignes','/ns2:Root-ElementLignes/ns2:Lignes[ns2:Order_num=$cde]/ns2:Sku')


$cde est une variable précédemment initialisée.

Cette ligne XPATH permet donc de compter toutes les lignes des commandes dont le n° d'entête de commande est égale à la variable "cde"






Journalisation de vos fichiers AS400

Voici un rapide mémo sur les commandes AS400 nécessaire à la mise en place de la journalisation ;)

Journalisation
CRTJRNRCV : créer un récepteur de journal (rattaché à un journal)
CRTJRN : créer un journal
STRJRNPF : démarrer la journalisation
ENDJRNPF : arrêter la journalisation
DLTJRN : supprimer un journal
DLTJRNRCN : supprimer un récepteur.
CHGJRN : modifier un journal
DSPJRN : afficher les entrées d’un journal
WRKJRNA : gérer les attributs d’un journal
ADDRMTJRN : ajouter un journal éloigné (journal source peut être un autre journal éloigné)
SNDJRNE : envoyer une entrée de journal
APYJRNCHG : appliquer les changements journalisés
CMPJRNIMG : comparer les images de journaux
RCVJRNE : recevoir une entrée de journal
RTVJRNE : récupérer une entrée de journal
RMVJRNCHG : supprimer des changements journalisés

BPEL - AS400

Afin de terminer notre tour sur l'AS400, je vais vous expliquer comment j'ai mis en relation Oracle BPEL manager et un AS400.


Avant tout il faut télécharger le driver JDBC JT400.jar permettant d'accèder à l'aS400 et notamment à la base par cette magnifique machine (DB2/400).
Ce driver se trouve dans le package JTOPEN, nous avons besoin que du fichier JT400.JAR.


Procédure d'installation et de paramétrage :

0 - Arrêter complètement votre SOA suite Oracle
1 - copier jt400.JAR dans le répertoire ORACLE_HOME\j2ee\oc4j_soa\applib
2 - Créer un pool de connexion vers votre AS400 & un dataSource associé. Exemple de mon fichier data-sources.xml :

connection-factory

factory-class="com.ibm.as400.access.AS400JDBCDriver"

user="utilisateur"

password="motdepasse"

url="jdbc:as400://192.168.3.50;naming=sql;errors=full"


DataSource associé :

managed-data-source connection-pool-name="AS400pool"

jndi-name="jdbc/MonAS400"

name="MonAS400"

tx-level="local"


3 - Editer le fichier de votre partnerlink (BPEL)
et modifier le wsdl:

///Commenter les lignes suivantes
jca:address location="eis/DB/AS400Clarins" UIConnectionName="AS400Clarins" ManagedConnectionFactory="oracle.tip.adapter.db.DBManagedConnectionFactory" mcf.DriverClassName="com.ibm.as400.access.AS400JDBCDriver" mcf.PlatformClassName="oracle.tip.adapter.db.toplinkext.DB2AS400Platform" mcf.ConnectionString="jdbc:as400://192.168.3.50;naming=sql;errors=full" mcf.UserName="utilisateur" mcf.Password="89F992D76049666E33ABE7C3A0A3E18C"

/// Rajouter la ligne suivante pour faire pointer votre dbadapter vers le pool de OC4J

jca:address location="eis/DB/AS400Clarins"

UIConnectionName="AS400Clarins"
ManagedConnectionFactory="oracle.tip.adapter.db.DBManagedConnectionFactory"



La compilation de votre BPEL générera des warning mais lors de l'exécution du partnerLink, les données sont persistées dans votre AS400.




Note importante :


Afin d'insérer des données dans des tables AS400 via BPEL, il est nécessaire de journaliser vos fichiers AS400 (tables db2/400). Cette opération se fera avec votre administrateur favori de l'AS400

vendredi 7 septembre 2007

Accèder à un programme AS400 depuis JAVA


En utilisant le package open source JTOPEN

vous pourrez facilement accèder aux fonctions offertes par un AS400.



Voici ci-dessous un exemple de classe java utilisant les JAR de JTOPEN pour déclencher un programme AS400 (fichier dans une lib avec l'extension PGM)

voici le source de ma petite classe:

package as400callprg;

import com.ibm.as400.access.AS400;
import com.ibm.as400.access.AS400Message;
import com.ibm.as400.access.AS400SecurityException;
import com.ibm.as400.access.ErrorCompletingRequestException;
import com.ibm.as400.access.MessageFile;
import com.ibm.as400.access.ObjectDoesNotExistException;
import com.ibm.as400.access.ProgramCall;
import com.ibm.as400.access.ProgramParameter;

import java.beans.PropertyVetoException;

import java.io.IOException;


public class CallPrgAs400 {
public CallPrgAs400() {
}

public static void main(String[] args) {
CallPrgAs400 callPrgAs400 = new CallPrgAs400();
callPrgAs400.call();
}


public void call ()
{

// Call programs.
AS400 as400 = new AS400("192.168.3.50", "Utilisateur", "password");

System.out.println("---");
ProgramCall programCall;
String programName = "/QSYS.LIB/GCTEST.LIB/ECPVA.PGM";
System.out.println("--- "+ programName);

ProgramParameter[] parameter;
parameter = new ProgramParameter[0];

programCall = new ProgramCall(as400, programName, parameter);
try{
System.out.println("---");
boolean bb = programCall.run();
System.out.println("--- retour = "+bb);
}
catch (Exception e)
{
e.printStackTrace();
}
}

}

mercredi 5 septembre 2007

Tester une expression XPATH

A partir de votre fichier XML brut, il est possible de tester votre formulation XPATH en allant sur le site :

http://www.xmlme.com/XpathTool.aspx

Bon tests ;)