Aller au contenu

Message d'erreur IBM i (AS/400)

CPF1935

Attributs incorrects pour la variable d'indice &3 dans programme &1.

Gravité 30 · Erreur grave

Cause

La variable d'indice &3 définie comme indice est incorrecte. Voici les différentes causes d'erreur possibles :

  • La variable n'est pas numérique.
  • La variable est un tableau.
  • Aucun pointeur de base n'est déclaré pour la variable.
  • La variable est une constante de programme numérique dont la valeur ne peut être remplacée par une variable d'indice correcte.

Que faire

Utilisez le paramètre ADR, PGMVAR, PTR ou REFPTR pour indiquer comme indice soit une constante numérique inférieure ou égale à 2147482647 et supérieure ou égale à -2147482648, soit une variable d'indice correcte. Relancez ensuite la commande.

Description technique

Une variable déclarée dans une structure de langage de haut niveau (HLL) sous une variable tableau (à un niveau de structure inférieur) aura également les attributs d'un tableau. Certaines variables déclarées comme numériques dans un programme HLL peuvent ne pas être utilisables comme indices car elles ne sont pas stockées comme des types numériques dans le programme d'instructions d'interface machine (MI). Seules les variables binaires, zonées, décimales condensées, décimales zonées ou à virgule flottante peuvent être utilisées comme indices, sauf si le langage offre une prise en charge supplémentaire permettant au système d'exploitation de les traiter. Une valeur d'indice ne doit pas être supérieure à 2147482647 ni inférieure à -2147482648.

A variable declared in a high-level language (HLL) structure below an array variable (at a lower structure level) will also have array attributes. Some variables declared as numeric in an HLL program may not be usable as subscripts because they are not stored as numeric types in the machine interface (MI) instruction program. Only variables which are binary, zoned, packed decimal, zoned decimal, or floating-point can be used as subscripts unless the language provides additional support for the operating system to process them. A subscript value must be no larger than 2147482647 and no smaller than -2147482648.

Variables du message

Quand le système envoie le message, chaque variable est remplacée par une valeur réelle : un nom d'objet, de bibliothèque, un code...

VariableTypeLongueur
&1 *CHAR 10
&3 *CHAR variable

Sur votre IBM i

Afficher la description complète du message :

DSPMSGD RANGE(CPF1935) MSGF(QSYS/QCPFMSG)

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

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