> Tech > Je reçois des erreurs de données décimales

Je reçois des erreurs de données décimales

Tech - Par iTPro - Publié le 24 juin 2010
email

Q : Récemment, nous sommes passés de la V4R4 à  la V4R5 et, à  cette occasion, j'ai recompilé complètement le système parce que des fichiers avaient été modifiés. Depuis, quand je teste le système, j'obtiens des erreurs de données décimales sur un coding vieux de plusieurs années. Par exemple, dans

Je reçois des erreurs de données décimales

un
programme particulier, se trouve la structure de
données illustrée figure 1A.
Dans ce programme, les données provenant d’un
champ caractère contenant huit valeurs numériques
sont déplacées dans la structure de données de la figure
1B. J’ai dû mettre INZ à  côté de accds pour éviter
une erreur de donnée décimale. J’ai ensuite buté
sur le programme suivant pour la même raison.

R : Je suis sûr que votre problème est dû à  la modification par
utilisateur de commandes fournies par IBM, qui ont été faites
dans la release précédente mais pas répétées après votre
mise à  niveau d’OS/400. En particulier, il semble que, dans
votre release précédente, une nouvelle valeur par défaut a
été spécifiée pour le paramètre FixNbr sur les commandes
utilisées pour compiler des objets programme RPG.
FixNbr détermine les éventuelles données décimales invalides
que le compilateur doit corriger. La valeur par défaut
fournie par IBM est *None, qui ordonne au compilateur de
ne pas corriger les données décimales invalides mais
d’émettre plutôt un message d’erreur de données décimale à  l’exécution. Une valeur de *Zoned ordonne au compilateur
de corriger la donnée numériques zonée invalide quand elle
est convertie en donnée packée et une valeur de *Input-
Packed conduit le compilateur à  corriger la donnée packée
invalide lors du traitement des spécifications d’entrée.
Pour redresser la situation, il vous faudra changer la valeur
par défaut (en utilisant la commande ChgDftVal) du paramètre
FixNbr sur les commandes Crt* concernées. Mais,
avant cela, voici un petit conseil supplémentaire. Plutôt que
d’apporter des modifications aux commandes fournies par
IBM, il vaut mieux modifier leurs copies. Ensuite, gardez ces
copies dans une bibliothèque créée par l’utilisateur (utilisée
uniquement pour contenir des objets IBM modifiés) et placez
cette bibliothèque dans la liste de bibliothèques système
telle qu’elle apparaît avant library QSys. Cette opération est
nécessaire afin que les références non qualifiées à  la commande
utilisent la version modifiée. Enfin, vous devriez créer
un programme qui apporte aux commandes les modifications
réelles. Il est ainsi facile de rétablir toutes les modifications
utilisateur nécessaires.

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 iTPro - Publié le 24 juin 2010