Arborescence d’une chaîne de programmes (RPG Free)

Didier Encinas avait écrit il y a quelques années un petit programme permettant d’imprimer une chaîne de programmes sous la forme d’une arborescence. Il avait écrit la première version de ce programme en Adélia, et je l’avais par la suite réécrit en RPG, me trouvant alors dans une société où je ne disposais que de ce langage. C’est le source de la version RPG que vous trouverez ci-dessous.

La précécente version de ce programme était en RPG IV au format dit « délimité » ou « fixe ». J’ai réécrit cette nouvelle version, qui est strictement identique fonctionnellement parlant, en RPG au format « libre ». Les 2 versions (au format « délimité » et « libre ») sont contenues dans le fichier ZIP et pourront aider les développeurs RPG n’ayant pas encore franchi le pas du « format libre » à  se familiariser en douceur avec cette nouvelle syntaxe.

Pour la petite histoire, Didier ne s’est pas arrêté en si bon chemin, car il a depuis écrit (en Adelia) une version de PGMPGM plus élaborée, qui génère une arborescence dans les deux sens (programme appelant vers tous les programmes appelés et programme appelé vers tous les appelants), qui l’affiche à  l’écran (en plus de l’imprimer) et dont on peut ouvrir et fermer les niveaux d’appel (façon explorateur de Windows). Cette version, beaucoup plus complexe, n’est pas décrite ici. On nous a d’ailleurs intérrogé sur la disponibilité de cette version plus élaborée, dans le forum XDOCS, mais cette version élaborée pour le compte d’une société, n’est pas libre de droits.

Extrait d’un spoule généré par cet outil :


SAICMD1C Gestion des Commandes Nouvelle version
|
|--CALC02CLP Calcul de date
|
|--SAICLI4R Sélection Client Pour Commande
| |--*VARIABLE
| |--QUSCMDLN
| |--SAICMD1R Saisie des commandes clients
| | |--*VARIABLE
| | |--CHISCOM CL d'appel historique commande
| | | |--HISCOM fenêtre hist. cmde client
| | |--DATLIV Saisie date de livraison
| | | |--CALC04 Contrôle de date
| | | |--CALC06 Comparaison de date
| | |--PBDLED Edition de Bon de Préparation
| | |--PFACED Edition de facture
| | |--QUSCMDLN
| | |--SAIART5R Fenêtre de sélection d'article
| |--SAICMD3C

 

Comment ça marche ? Avant toute chose, il vous faut connaître la commande AS/400 DSPPGMREF et l’usage que l’on peut en faire. Je vous invite donc à  lire l’article consacré à  la commande DSPPGMREF dans le site XDocs.

Une fois que vous aurez bien compris comment fonctionne DSPPGMREF, utilisez cette commande pour créer un fichier physique que vous appelerez PGMREF comme dans l’exemple indiqué à  la page DSPPGMREF de ce site. Puis créez un fichier logique PGMREFL1 sur ce fichier PGMREF en vous servant du fichier DDS fourni dans le fichier ZIP joint à  cet article..

Il vous faut ensuite compiler le programme PGMPGM (source de type RPGLE) et son PRTF PGMPGMPR. Vous trouverez les sources dans le fichier ZIP joint à  cet article. Je vous recommande bien évidemment d’utiliser le fichier au format RPG Free (pgmpgm_rpgfree.txt) plutôt que sa version équivalente au format délimité (pgmpgm_rpg4.txt).

Une fois le programme et son PRTF compilés, alimentez votre fichier physique PGMREF en utilisant la commande DSPPGMREF. Pour un premier test, je vous recommande d’indiquer *ALL dans la zone « nom de programme » de façon à  incorporer dans votre fichier PGMREF l’ensemble des programmes de votre bibliothèque de développement. Si vous utilisez la commande plusieurs fois pour alimenter le même fichier PGMREF, soyez vigilant sur le mode de remplissage (*ADD ou *REPLACE) que vous souhaitez utiliser.

Dès que votre fichier PGMREF est prêt, lancez le programme PGMPGM par un CALL ‘<nom programme>’ (<nom programme> est le premier programme de la chaîne que vous souhaitez éditer).

Si vos programmes sont fréquemment modifiés, vous pouvez programmer dans le scheduler de l’AS/400 une réactualisation quotidienne de votre fichier PGMPGM au moyen de la commande DSPPGMREF.

Print Friendly, PDF & Email

Attachments