Aller au contenu

Message d'erreur IBM i (AS/400)

CPF8E28

La variable ne peut pas être affichée.

Gravité 40 · Fin anormale du programme ou de la fonction

Cause

Soit la variable ne peut pas être affichée car le programme a été optimisé, soit elle est définie dans un espace de stockage inactif. Les raisons possibles sont les suivantes : 1) La procédure interne qui a défini la variable n'est pas active. 2) La variable n'a pas encore été allouée par le programme ou la procédure interne dans lesquels elle a été définie. 3) La mémoire affectée à la variable correspond à un fichier qui n'est pas ouvert.

Que faire

S'il s'agit d'un programme ILE et que celui-ci a été optimisé pendant la compilation, mettez fin au débogage (ENDDBG). Ensuite, recompilez le programme en spécifiant *NONE pour l'optimisation, ou modifiez le programme (CHGPGM) en indiquant OPTIMIZE(*NONE). Ouvrez une autre session de débogage. Les variables devraient s'afficher. S'il s'agit d'un programme OPM, affichez la variable après qu'elle a été allouée ou rendue disponible pour affichage. Si l'espace de stockage de la variable est associé à un fichier, cette dernière ne peut être affichée que lorsque ce fichier est ouvert.

Description technique

Certaines variables d'un programme en langage de haut niveau (HLL) sont contenues dans un espace de stockage géré par le programme selon les règles du HLL ou les conventions du système. Ces variables peuvent ne pas être disponibles à chaque instruction du programme. Pour savoir comment le stockage des variables est géré, consultez le manuel de référence de votre langage de haut niveau (HLL).

Some variables in a high-level language (HLL) program are contained in storage that is managed by the program according to HLL rules or system conventions. These variables may not be available at every statement/instruction in the program. See your high-level language (HLL) reference manual for information about how storage for variables is managed.

Sur votre IBM i

Afficher la description complète du message :

DSPMSGD RANGE(CPF8E28) MSGF(QSYS/QCPFMSG)

L'intercepter dans un programme CL, quand il est envoyé comme message d'échappement :

MONMSG MSGID(CPF8E28) EXEC(DO)
  /* traitement de l'erreur */
ENDDO