Aller au contenu

CPF2891

Valeur de zone TOKEY incorrecte pour une zone clé.

Gravité 30 · Erreur grave

Cause

Le numéro &5, correspondant à la valeur de zone TOKEY, est incorrect pour la zone &4 du format d'enregistrement &3, se trouvant dans le fichier &1 de la bibliothèque &2. Si la zone &4 est de type caractère, soit la valeur de zone TOKEY est d'une longueur supérieure à la longueur de zone définie &6, soit il s'agit d'une chaîne vide et la longueur de zone est fixe. i la zone &4 est de type alphanumérique binaire de longueur fixe, la valeur de zone TOKEY n'est pas égale à la longueur de zone. Si la zone &4 est de type date, heure ou horodatage, soit la valeur de zone TOKEY n'a pu être convertie en utilisant le format et le séparateur correspondants, soit la valeur est une chaîne vide.

Que faire

Effectuez l'une des opérations ci-après puis renouvelez la demande.

  • Réduisez la valeur du paramètre TOKEY.
  • Indiquez une valeur de longueur inférieure.
  • Pour une zone de longueur fixe, indiquez une chaîne d'au moins un caractère.
  • Pour une zone alphanumérique binaire, indiquez une longueur de valeur de paramètre TOKEY égale à la longueur de la zone.
  • Pour des zones clés de type date, indiquez la valeur en utilisant le format de date et le séparateur définis pour le travail (la commande DSPJOB vous permet de les retrouver), ou bien l'un des formats SAA, ou encore le format AAAAJJJ (sans séparateur).
  • Pour les zones clés de type heure, indiquez la valeur en utilisant soit le format d'heure et le séparateur définis pour le travail (la commande DSPJOB vous permet de les retrouver), soit l'un des formats SAA.
  • Pour les zones clés de type horodatage, indiquez la valeur en utilisant le format SAA correspondant ou le format AAAAMMJJHHMMSS (sans séparateur).

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
&2 *CHAR 10
&3 *CHAR 10
&4 *CHAR 10
&5 *BIN 2
&6 *BIN 2

Sur votre IBM i

Afficher la description complète du message :

DSPMSGD RANGE(CPF2891) MSGF(QSYS/QCPFMSG)

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

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