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 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.
Messages
1. JYGGEN - Générateur de programmes AS400, 10 juin 2015, 07:41, par DALCIN JEROME
Les sources de cet utilitaire sont-ils disponibles ? si oui je serait intéressé pour le faire évoluer et l’utiliser.
Merci
1. JYGGEN - Générateur de programmes AS400, 18 juin 2015, 10:18, par Jean-Yves Giraud
Bonjour,
C’est un peu ancien, mais si ça peut encore être utile, je viens de mettre les sources à disposition sur cette page sous licence GPL v3.
Attention : comme je ne travaille plus sur AS400 depuis un bon moment, je n’apporte aucun support et aucune garantie.
Comme c’est indiqué dans le fichier de licence :
2. JYGGEN - Générateur de programmes AS400, 13 septembre 2017, 09:22, par zaka
Bonjour
Je voulais savoir si le lien de téléchargement est toujours valable ?
Est ce que c’est possible que vous m’envoyer le zip par email.
Cordialement
1. JYGGEN - Générateur de programmes AS400, 13 septembre 2017, 20:48, par Jean-Yves Giraud
Bonjour,
Oui, il l’est, je viens de télécharger le fichier pour vérifier.
Si vous n’y arrivez vraiment pas, dites-le moi et je vous l’enverrai par email.
Cdlt
Jean-Yves