par Gary Guthrie
Quiconque utilise le RPG depuis un
certain temps se souvient des clameurs
en faveur du RPG en format libre.
Parfois chaudes, les discussions portaient
sur le besoin de la part d'IBM
d'orienter le RPG dans cette direction
« plus moderne ».
à‡a a pris du temps, mais avec la
V5R1, IBM a introduit le RPG en format
libre. Les différences entre le format
fixe et le format libre constituent, pour
l'essentiel, une grande amélioration.Pourtant, de nombreux RPGistes ont
exprimé des doléances - certaines fort
banales - à propos des décisions de
conception d'IBM. En tête de liste des
doléances, on trouve le manque de
support du RPG en format libre pour
plusieurs codes opération présents
dans le format fixe. N'ayez crainte :
vous pouvez mettre en oeuvre des solutions
RPG en format libre - mais un peu
différemment.
Pour faciliter la transition au RPG
en format libre, je passe en revue les 57
codes opération non pris en charge (figure
1) et indique les méthodes alternatives
permettant d'accomplir leurs
tâches. J'indique même certains cas où
les alternatives sont préférables. C'est
si vrai que vous devriez tirer parti de
nombreuses nouvelles alternatives
même si vous utilisez le RPG en format
fixe.
Tout en vous instruisant sur le RPG
en format libre et sur ses différences,
sachez qu'on le destine davantage à de
nouveaux projets de développement
qu'à la conversion d'applications existantes.
Mais cette conversion est néanmoins
tout à fait possible.
En avant avec le RPG en format libre

Bon nombre des codes opération non
supportés ont une alternative en format
libre. C’est le cas, entre autres, des
opérations mathématiques que la figure
2 présente avec leurs alternatives.
La comparaison suivante démontre
que la version en format libre présente
le double avantage d’être plus concise,
et de refléter l’intention de l’opération
plus clairement que le format fixe :
C X Mult Y Z Z = X * Y;
Cette instruction en format libre
est en fait une instruction Eval. Le code
opération Eval est facultatif quand aucune
extension du code opération
n’est nécessaire.
Vous savez peut-être qu’il faut utiliser
les règles de précision décimale du
résultat (Result Decimal Precision)
(voir WebSphere Development Studio
ILE RPF Reference (SC09-2508)) pour
des instructions Eval contenant des
opérateurs de multiplication ou de division.
Ces règles stipulent que les valeurs
intermédiaires utilisées dans des
calculs n’auront pas moins de décimales
que le résultat. On peut appliquer
les règles de précision décimale
du résultat au niveau du module ou au
niveau de l’instruction. Si c’est au niveau
du module, on code les spécifications
de contrôle suivantes :
H ExprOpts(*ResDecPos)
Cette spécification applique les
règles de précision décimale du résultat
à tous les calculs dans le module. Si
on applique les règles de précision au
niveau de l’instruction, il faut coder le
code opération Eval avec l’extension
requise. Pour appliquer les règles de
précision décimale du résultat à l’instruction
en format libre ci-dessus, on
coderait
Eval(R) Z = X * Y;
En règle générale, on utilisera les
règles de précision décimale du résultat
quand les opérandes sont des valeurs
non entières.
Outre les règles de précision, il faut
tenir compte des règles de troncature.
Avec les codes opération Add, Sub,
Mult et Div en format fixe, le RPG
tronque les résultats quand ils dépassent
ce que le champ résultat spécifie.
Avec l’instruction Eval (comme le RPG
en format libre le requiert), il n’y a pas
de troncature : si le champ résultat
n’est pas suffisamment grand pour recevoir
le résultat d’un calcul, le système
émet une erreur.
Il est vrai que la plupart des programmeurs
RPG sont habitués à la
« fonction » troncature du RPG et jugent
indésirable le comportement générateur
d’erreurs d’Eval. Ils autorisent
donc les champs résultat à déborder
sans erreurs, suscitant ainsi des informations
inexactes, dont certaines peuvent
se retrouver profondément intégrées
dans la base de données, à l’abri
de toute détection. Non seulement la
fonction troncature du RPG n’est pas
fiable, mais son utilisation produit un
code non intuitif. Il n’est pas sain d’accomplir
une tâche en s’appuyant sur
les astuces et bizarreries du RPG.
Le RPG en format libre vous oblige
à connaître et à traiter les sujets de
troncature quand vous convertissez
des programmes existants, et encourage
de meilleures pratiques de programmation.
C’est, selon moi, un pas
dans la bonne direction.
Téléchargez cette ressource

Les 10 tendances clés de l’Expérience Client (CX) pour 2025
Dans le contexte actuel, l'expérience client est un levier clé de réussite. Pour rester compétitives, les entreprises doivent adopter des stratégies CX audacieuses, en s'appuyant sur le cloud, le digital et l'IA. Alors quelles stratégies mettre en place pour garder une longueur d’avance ?
Les articles les plus consultés
- Cybersécurité Active Directory et les attaques de nouvelle génération
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
- Chiffrements symétrique vs asymétrique
- Les 6 étapes vers un diagnostic réussi
Les plus consultés sur iTPro.fr
- L’Intelligence Artificielle, le nouveau copilote du CRM : une révolution incontournable
- Optimiser la gestion de la relation client dans le secteur des sciences de la vie
- 2025, un « âge de raison » pour l’écosystème de la technologie ?
- 59 % des entreprises françaises victimes de ransomwares ont stoppé leurs opérations !
- KeeeX accélère son développement en Europe en 2025 !
