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 meilleur 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 ou il y est un autre mot clé avant
PS :
Attention à l’ordre des overlays et l’INFDS qui ne peut pas être initialisée