> Tech > Reconnaissance de modèle pour faciliter la programmation RPG moderne

Reconnaissance de modèle pour faciliter la programmation RPG moderne

Tech - Par Scott Klement - Publié le 24 juin 2010
email

Vous avez suivi un cours ILE RPG ou lu un livre ou un article. Vous savez donc ce que sont les procédures, les programmes de service, les répertoires de liage et les groupes d’activation. Et vous entamez bille en tête l’écriture de votre première application ILE… pour constater que rien ne colle !« C’est vraiment trop compliqué ! » vous exclamez-vous. « Comment accédez aux fichiers ? Comment traiter les erreurs quand les routines se trouvent dans des endroits différents ? Où diviser mes programmes en procédures ? »

Si vous vous reconnaissez dans ce questionnement, sachez que vous n’êtes pas le seul dans ce cas. Il ne suffit pas de comprendre les concepts pour apprendre ILE. Il faut aussi apprendre un nouveau modèle de conception. Peut être inconsciemment, si vous programmez depuis plusieurs années, vous avez développé vos propres modèles de conception. Vous réalisez une bonne programmation avec ces modèles parce que vous les utilisez depuis plusieurs années. Mais chaque fois que vous passez d’un paradigme de programmation à un autre, il vous faut apprendre de nouveaux modèles.

Quand vous aurez développé de puissants nouveaux modèles de conception dans ILE, vous serez efficaces et pourrez tirer parti de la capacité de réutilisation et de la facilité de maintenance qui valorisent les programmes ILE de votre société (ou client) par rapport aux anciennes méthodes.

Reconnaissance de modèle pour faciliter la programmation RPG moderne

Généralement, quand il est question de modèles dans un livre ou un article traitant de la théorie de la conception informatique, on trouve une terminologie abondante et variée sur les modèles et concepts formels d’une bonne programmation orientée objet. Mais ce n’est pas le propos de cet article. En effet, je veux vous faire réfléchir aux structures de base que vous utilisez déjà en écrivant du code, puis je veux vous aider à les aborder différemment en ILE RPG.

Par exemple, à l’époque du RPG/400, il m’arrivait d’écrire de nombreuses applications interactives dans lesquelles je suivais toujours les mêmes étapes pour présenter un écran à un utilisateur :

1. Charger les données à afficher sur l’écran.
2. Afficher l’écran et attendre l’entrée de l’utilisateur.
3. Effacer le message d’erreur (éventuel) de l’écran.
4. Vérifier les touches de commande.
5. Vérifier la validité des données entrées par l’utilisateur.
6. Si données incorrectes, revenir à l’étape 2.
7. Effectuer le traitement fondé sur l’entrée de l’utilisateur.

La figure 1 montre un extrait d’ancien programme RPG/400 respectant ce modèle. Je commence par afficher l’écran (A en figure 1), puis j’efface le champ Message d’erreur (B), je vérifie les touches de fonction (C), et je m’assure que l’entrée de l’utilisateur est correcte (D).

Si tout est bon, je traite l’entrée. Cet exemple montre un fragment de programme de maintenance client. Cette routine demande à l’utilisateur un numéro de client et, si tout est bon, affiche un second écran où l’utilisateur peut modifier les champs de l’enregistrement maître client.

J’ai utilisé le même modèle avec le second écran (le code est absent ici, mais vous pouvez le télécharger sur www.itpro. fr Club abonnés). Il suit aussi les mêmes étapes : afficher l’écran, effacer les messages d’erreur éventuels, traiter les touches de fonction, vérifier la validité du contenu des champs et, si tout est bon, mettre à jour le fichier.

Téléchargez gratuitement cette ressource

Guide de Services Cloud Managés

Guide de Services Cloud Managés

Accélérer votre transformation digitale, protéger et sécuriser vos environnements Cloud avec les offres de support, d'accompagnement et de services managés. Découvrez le TOP 3 des Services Managés pour accompagner la transformation de vos environnements Cloud, gagner en agilité et en sécurité dans un monde d'incertitudes.

Tech - Par Scott Klement - Publié le 24 juin 2010