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

Une méthode de programmation modulaire pour le RPG

Tech - Par iTPro - 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 gratuitement cette ressource

Sécurité Office 365 : 5 erreurs à ne pas commettre

Sécurité Office 365 : 5 erreurs à ne pas commettre

A l’heure où les données des solutions Microsoft de Digital Workplace sont devenues indispensables au bon fonctionnement de l’entreprise, êtes-vous certain de pouvoir compter sur votre plan de sécurité des données et de sauvegarde des identités Microsoft 365, Exchange et Teams ? Découvrez les 5 erreurs à ne pas commettre et les bonnes pratiques recommandées par les Experts DIB France.

Tech - Par iTPro - Publié le 24 juin 2010