Menu
Navigation rapide

Accueil > Informatique > Langages et programmation > RPG sur AS400 > JYGGEN - Générateur de programmes AS400

JYGGEN - Générateur de programmes AS400

mercredi 16 janvier 2008

JYGGEN, c’est quoi ça ?
C’est ce que j’ai fait de plus excitant sur AS400 en programmation. C’est un générateur automatique de programmes de maintenance sur AS400.

Sur AS400, on est souvent amené à écrire des programmes de maintenance de fichier. En gros, ce sont des programmes qui permettent d’ajouter, de modifier ou de supprimer des enregistrements dans un fichier.
Alors, souvent, quand on a une telle tâche, plutôt que de tout réécrire à chaque fois, on prend une copie d’un ancien programme similaire et on fait les adaptations. Cela nécessite de nombreuses manipulations dans le code et cela entraîne également des risques d’oublis, d’où des risques de bugs.

J’ai donc eu l’idée de créer un générateur de programme, à partir d’un prototype éprouvé. Il suffirait de lui indiquer les paramètres indispensables pour qu’il puisse générer un programme : fichier maintenu, titre du programme, options souhaitées, ...

Je me suis donc mis à la tâche, à mes moments perdus...

JYGGEN - Générateur de programmes AS400

JYGGEN en est aujourd’hui à sa version 3, et faute de temps (et peut-être aussi d’intérêt dans le contexte actuel de mon entreprise), je ne pense pas qu’il y aura d’autres évolutions. Pourtant, j’avais encore quelques idées...

Un programme de maintenance de fichier sur AS400 comporte souvent deux écrans : un écran "Liste" dans lequel on va pouvoir se positionner sur tel ou tel enregistrement, et un écran "Fiche" qui permet de faire la saisie des données.
Sur les deux écrans, on peut être amené à récupérer une information dans un autre fichier, que j’appellerai un fichier "de liaison", pour récupérer par exemple une désignation d’un produit, avec une liaison entre le fichier maintenu et le fichier de liaison par le code du produit.
JYGGEN V3 permet de relier un ou plusieurs fichiers de liaison, de manière entièrement automatique. Cette fonctionnalité est quand même très courante dans les programmes de maintenance, et quand tout cela peut se faire tout seul, c’est bien appréciable.

Je vais maintenant vous détailler son fonctionnement, de manière illustrée.

Pour mon exemple, j’ai créé un fichier SEC qui contiendra les secteurs de délégués commerciaux. Chaque enregistrement contient deux données : le code département et le code du délégué commercial.
En fichiers de liaison, on aura le fichier des départements (pour récupérer le nom du département) et le fichier des délégués commerciaux (pour récupérer le nom du DC).

Après l’écran d’ouverture, on arrive sur l’écran principal de JYGGEN qui présente la liste des définitions des programmes déjà créés.

I - Définition du programme

1ère étape : définition générale

On y va pour créer une nouvelle définition de programme en appuyant sur la touche F6. Cette première étape va permettre de renseigner les informations générales (fichier maintenu ou fichier primaire, bibliothèques, options choisies, ...). On appuie ensuite sur Entrée.

2ème étape : définition des fichiers de liaison

Ici, on définit les fichiers de liaison, si nécessaire.

On ajoute le 1er fichier de liaison : celui des départements (pour récupérer le nom du département). Le premier écran permet de définir le fichier et le message d’erreur quand on aura saisi un mauvais code département.

Le deuxième écran permet de renseigner par quelle(s) zone(s) du fichier primaire on établit la liaison avec le fichier secondaire.

On ajoute ensuite le 2ème fichier de liaison : celui des Délégués Commerciaux (pour récupérer le nom du DC).


Une fois les fichiers de liaison définis, on appuie sur la touche F14 pour passer à l’étape suivante.

3ème étape : définition des zones de l’écran "Liste"

Cette étape consiste à définir les zones de l’écran "Liste" (ou sous-fichier dans le jargon AS400).

En appuyant sur F4, on peut récupérer automatiquement les zones du fichier primaire. Par convention, les zones de l’écran "Liste" commencent par un X (mais ce n’est pas une obligation...).

On a maintenant dans la liste les zones du fichier primaire.

On ajoute le nom du DC à partir du fichier de liaison des DC (touche F6).

On peut ensuite modifier les zones : libellé, taille du libellé, code d’édition pour les zones numériques, etc....



On appuie enfin sur la touche F14 pour valider et passer à la dernière étape.

4ème étape : définition des zones de l’écran "Fiche"

Comme précédemment, avec la touche F4, on récupère les zones du fichier primaire. Par convention, les zones de l’écran "Fiche" commencent par un Y (mais ce n’est là encore pas une obligation...).

On ajoute ensuite la zone "Nom du département" à partir du fichier de liaison des départements.

Puis on ajoute la zone "Nom du Délégué Commercial" à partir du fichier de liaison des DC.

Là, encore, on peut modifier les zones (libellés, etc...).



Enfin, on re-séquence les zones pour placer le nom du département juste après le code département.



On valide en appuyant sur F14 pour terminer la définition du programme.

II - Génération du programme

Il n’y a plus qu’à utiliser l’option 6 pour générer le programme.



Magique !!! La génération des sources est effectuée et la compilation terminée.

III - Essai du programme

On peut tester le nouveau programme directement depuis JYGGEN en utilisant l’option 8.

Le programme démarre sur l’écran "Liste" et le fichier est vide bien sûr pour l’instant. Les options choisies lors de la définition sont présentes (2=Modifier, 3=Copier, 4=Supprimer, 5=Afficher, 6=Modifier à partir). Les zones choisies également : code département, code DC, et nom du DC.

Créons un premier enregistrement avec la touche F6.

Les informations des fichiers de liaison s’affichent (nom du département et nom du DC).

Puis, dans la foulée, créons un 2ème enregistrement.


On abandonne ensuite la saisie par la touche F12, afin de revenir à la liste des enregistrements.

Voici nos deux enregistrements dans la liste. Là encore, le nom du DC est récupéré à partir du fichier de liaison des DC, comme cela avait été défini.

Voilà, c’est terminé. Simple et efficace. Si on souhaite un comportement un peu plus spécifique du programme (par exemple l’usage d’un filtre sur les enregistrements : en particulier, la possibilité de filtre est prévue dans le programme généré), il ne reste plus qu’à se pencher sur les sources et retrousser ses manches. Cependant, la base est prête, et quand on a l’habitude des sources générés par JYGGEN, on sait tout de suite où intervenir.

Conclusion

JYGGEN permet, avec un peu d’habitude, de créer un programme en quelques minutes (celui créé plus haut ne nécessite pas plus d’une dizaine de minutes), alors qu’il faudrait sans doute un ou deux jours pour le créer manuellement de toute pièce, et avec beaucoup plus de risques d’erreur.

J’ai beaucoup utilisé JYGGEN, mais je n’étais pas le seul. Mes collègues l’ont également beaucoup apprécié. Dans l’entreprise, il a servi à générer à peu près 250 programmes.

J’avais commencé la V4, mais je n’ai pas eu le temps de la développer. Cette version devait apporter deux fonctionnalités principales nouvelles :

- L’invite sous forme de fenêtre "popup" (par touche F4) pour les zones liées à des fichiers secondaires
On sélectionne alors dans la fenêtre "popup" la donnée qu’on veut choisir à partir du fichier secondaire. Dans notre exemple, au lieu de taper le code du Délégué Commercial, dont on ne se souvient d’ailleurs plus, on presse la touche F4 et une fenêtre popup s’affiche pour nous présenter la liste des DC. On n’a plus qu’à sélectionner celui qu’on souhaite.

- L’aide contextuelle sur zones de saisie en fenêtre "popup" (par touche F1)

Voilà, c’est terminé, cette version 4 ne verra sans doute jamais le jour... Tant pis...
Il y a bien d’autres choses excitantes à faire en informatique...

Pour ceux que ça intéresse, les sources de JYGGEN V3 sont désormais disponibles sous licence GPL V3.

Sources JYGGEN V3
Licence GPL v3

Messages

Un message, un commentaire ?

modération a priori

Ce forum est modéré a priori : votre contribution n’apparaîtra qu’après avoir été validée par un administrateur du site.

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.