> Tech > Une méthode de programmation modulaire pour le RPG

Une méthode de programmation modulaire pour le RPG

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

Voici une méthode de coding à  la fois modulaire, facile à  lire et facile à  maintenir. Malgré sa simplicité, peu de programmeurs RPG l'utilisent. En voici un exemple.



Exemple de sous-routine qui redéfinit le mode suivant

C                   exsr 

* This sets

Une méthode de programmation modulaire pour le RPG

the mode to be "reset"
* Each subroutine will correctly set the next mode

C Dou mode = ‘terminate’
C mode caseq ‘rcvEnquiry’ rcvEnquiry
* Receive enquiry from the data queue
C mode caseq ‘fmtEnquiry’ fmtEnquiry
* Format the enquiry from the data queue
C mode caseq ‘sndEnquiry’ sndEnquiry
* Send the formatted enquiry to external computer
C mode caseq ‘rcvAnswer ‘ rcvAnswer
* Receive answer from external computer
C mode caseq ‘fmtAnswer ‘ fmtAnswer
* Format the answer
C mode caseq ‘fmtError ‘ fmtError
* Handle errors
C mode caseq ‘sndAnswer ‘ sndAnswer
* Send the answer back to a data queue
C mode caseq ‘reset ‘ reset
* Reset all variables, etc.
C cas
*pssr
C endcs
C enddo

C exsr Terminate


Le code ci-dessus est un programme “ de type serveur ” qui reçoit des requêtes d’une file d’attente de données, les formate et les envoie via TCP/IP à  un ordinateur externe, reçoit la réponse de ce dernier, formate la réponse, et la renvoie à  une autre file d’attente de données.

Chaque sous-routine définit le mode suivant à  appliquer. (Par manque de place, le code ne montre pas à  quel mode chaque sous-routine transmet le contrôle.) Le traitement des erreurs est facile parce que la sous-routine intercepte l’erreur puis définit “ fmtError ” comme mode suivant, ce qui a pour effet d’exécuter la sous-routine fmtError et d’effectuer tout traitement d’erreur nécessaire. La sous-routine fmtError met ensuite le mode à  “ reset ” et tout recommence.

Pour enrichir le processus, on peut ajouter une autre ligne d’instruction Case et s’assurer qu’elle définit le prochain mode auquel elle doit transmettre le contrôle et que ce nouveau mode est invoqué à  la fin des sous-routines appropriées. Il est d’ailleurs fréquent qu’une sous-routine transmette conditionnellement le contrôle à  plusieurs sous-routines.

Chris Woodhead, analyste/programmeur
Baycorp Holdings
Auckland, Nouvelle Zélande

Téléchargez cette ressource

Guide inmac wstore pour l’équipement IT de l’entreprise

Guide inmac wstore pour l’équipement IT de l’entreprise

Découvrez toutes nos actualités à travers des interviews, avis d'experts et témoignages clients et ainsi, retrouvez les dernières tendances et solutions IT autour de nos 4 univers produits : Poste de travail, Affichage et collaboration, Impression et capture et Infrastructure.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010