Prototype d'interface Java <=> 4GL (2/2)

Donc, suite au plantage et à l'impossibilité de faire fonctionner le 4GL à partir de Java, j'ai changé mon fusil d'épaule...

Soyons fous ! et si on faisait tout dans le 4GL ?

  1. Lecture du message entrant
  2. Parsing XML des données
  3. Insertion en base
  4. Traitement métier
  5. Création du message XML de réponse
  6. Ecriture de ce dernier dans la bonne file

Bon là se profile à l'horizon une autre difficulté : ma méconnaissance du langage C... méconnaissance parce que c'est super loin tout ça, et en plus j'ai jamais bien compris le concept des pointeurs...... ;)=

Bref, je me suis donc lancé, j'ai donc développé un programme 4GL qui fait appel à des fonctions C d'envoi/réception de messages au travers d'MQ, ainsi que des fonctions de parsing/transformation XML (d'où les quelques billets sur l'installation notamment des librairies libxml2 et libxslt sous AIX...).

Donc, petite explication sur l'utilisation de fonction C en 4GL :

  1. Comment ça marche (le principe) :
    L'idée est de créer une fonction ayant une signature de la forme

    int <nom méthode>(int nargs);

    La fonction doit donc retourner un int qui correspond au nombre de paramètres retournés (ne me demandez pas pourquoi, c'est le fonctionnement du 4GL :P ). C'est là où il faut être attentif, a savoir qu'on va utiliser des fonctions du type

    ibm_lib4gl_returnInt4(mqStatus);

    ou

    ibm_lib4gl_returnString(mqErrmsg);

    Pour retourner les valeurs souhaitées, (la fonction à utiliser depend bien sûr du type de valeur retournée, cf. la doc du langage 4GL pour la liste exhaustive)

  2. Le passage de parmètres et la gestion de l'instruction return

A TERMINER