Conversion DS RPG3 vers RPG4
En convertissant vos programmes par la commande CVTRPGSRC, vous pouvez avoir un petit effet de bord sur les DS qui ne sont pas initialisées par défaut.
Vous avez 2 solutions :
- la première ne marche que pour les zones étendues, à la compile vous pouvez indiquer
FIXNBR(*ZONED *INPUTPACKED)
- Mais la meilleure solution est d’ajouter INZ sur votre Data structure
Exemple
D JOUR DS INZ <—– ici
D AN£ 1 4
D MO£ 6 7 0
D JR£ 9 10
Les zones seront initialisées avec la valeur par défaut du type déclaré, dans notre cas 0
Voici une petite requête pour vous aider, derrière un CVTRPGSRC par exemple
Faites un alias sur votre membre
CREATE ALIAS QTEMP/INPUT FOR GDATA/QRPGLESRC (votre source RPGLE)
Ensuite passer cette requête :
update input
set SRCDTA = substr(srcdta, 1, 59) concat ‘INZ’
where substr(srcdta, 6, 1) = ‘D’
and substr(srcdta, 23, 3) = ‘ DS’
INZ est ajouté en position 59, au cas où il y ait un autre mot clé avant
PS :
Attention à l’ordre des overlays et l’INFDS qui ne peut pas être initialisé