Désormais en possession des informa-tions sur les fichiers, nous pouvons créer le programme RPG. J'ai pris comme exemple un programme RPG III qui ne lit des enregistrements dans un fichier maître employés que si l'employé appar-tient au service ventes (sales department). Nous devons indiquer en cartes F du pro-gramme que
Le programme RPG

le fichier maître (EMPLF1) est un fichier avec clé. Nous mettons donc un K en position 31 de la carte F pour indiquer le type d’adressage de l’enregistrement (voir figure 5).
La figure 6 contient le code de la première boucle de lecture. Après avoir déplacé le texte SALES dans la zone
DEPT, j’utilise le code opération SETLL (Set Lower Limits) pour voir s’il existe des enregistrements pour le service ventes (sales department) et, si oui, pour définir le pointeur d’enregistrement pour les instructions de lecture. (*IN80 est à on si les commandes SETLL trouvent un enregistrement dont la valeur de clé est égale à la clé de recherche.) Je compare ensuite le résultat de l’opération SETLL en utilisant *IN80 pour voir s’il est néces-saire ou non de faire une lecture. (Pour-quoi entrer dans une boucle de lecture s’il n’y a pas d’enregistrement à lire ?)
Ligne 4, j’ai ma première opération READE (Read Equal), qui tente de lire un enregistrement dont les zones de clé correspondent à la liste des champs ou des clés en facteur 1. L’opération READE active *IN81 quand elle ne trouve pas un tel enregistrement. A la ligne 5, je crée une boucle DOW en utilisant l’opération DOWEQ (Do While Equal) pour vérifier le résultat de l’opération READE. Si *IN81 est à *OFF (c’est-à -dire si READE a trou-vé un enregistrement), le programme traite le code entre les instructions DOW et ENDDO. Si le READE ne parvient pas à trouver un enregistrement, la condition DOWEQ échoue au premier passage et la boucle DO n’est jamais exécutée.
Si la boucle DO est traitée, je dois avoir un enregistrement en provenance du fichier AS/400, correspondant à ma condi-tion de lecture (c’est-à -dire, un enregis-trement où DEPT = SALES). Le moment est venu d’effectuer les éventuels traite-ments concernant l’enregistrement de l’employé. Ligne 6, j’imprime une ligne détail pour un rapport d’employés.
Il faut à présent lire l’enregistrement de l’employé suivant du service ventes.
Ligne 7, il y a une seconde instruction READE dans la boucle DOWEQ, qui tente de lire un autre enregistrement avec une valeur de zone de clé spécifique. Si un enregistrement est trouvé, *IN81 reste à *OFF et le programme reste dans la boucle DOW. Si *IN81 est à *ON, c’est que le READE n’a pas trouvé d’enregistre-ment avec une ou plusieurs clés corres-pondant à mes critères et le programme quitte la boucle DOW, arrêtant du même coup la lecture.
Téléchargez cette ressource

Rapport mondial 2025 sur la réponse à incident
Dans ce nouveau rapport, les experts de Palo Alto Networks, Unit 42 livrent la synthèse des attaques ayant le plus impacté l'activité des entreprises au niveau mondial. Quel est visage actuel de la réponse aux incidents ? Quelles sont les tendances majeures qui redessinent le champ des menaces ? Quels sont les défis auxquels doivent faire face les entreprises ? Découvrez les top priorités des équipes de sécurité en 2025.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- L’IA et le Web ouvert : entre prédation et cohabitation, l’heure du choix
- Souveraineté numérique : après les mots, place aux actes
- La cybersécurité, c’est le rôle de tous !
- DORA : quels impacts après les six premiers mois de mise en conformité sur le terrain ?
- Cybersécurité : le secteur de la santé toujours au défi de la sécurité des e-mails
