Conversion RPG FREE

Il existe de nombreuses méthodes pour convertir du code RPGLE colonné vers du RPG FREE.

La plupart des conversions se passent sans problème, mais on constate que le code RPG ou RPG IV colonné pouvait être plus permissif et permettre des choses que le FREE ne tolère pas.

Voici un exemple qu’on a rencontré récemment, on est d’accord il résulte d’une incohérence dans le développement initial,
mais jusque la ça passait à l’exécution.

En RPGIV colonné

c z-add 9999999 zone7 7 0
c z-add zone7 zone5 5 0
c eval *inlr = *on

Quand vous exécutez ce code, il n’y a pas d’erreur, on est d’accord le résultat est faux …

En RPGIV FREE

**free
Dcl-S zone5 Zoned(5:0);
Dcl-S zone7 Zoned(7:0);
ZONE7 = 9999999 ;
ZONE5 = ZONE7 ;
*inlr = *on ;

Quand vous exécutez ce code, il y a un plantage, ce qui est normal

Conclusion

On peut donc tomber sur quelques cas que le RPG III ou IV acceptait mais que le nouveau code ne permet plus.
C’est bien sûr du code de mauvaise qualité, et la réécriture peut s’avérer nécessaire surtout si on rencontre des instructions déstructurantes comme des GOTO par exemple.