Aller au contenu

Message d'erreur IBM i (AS/400)

CPF4137

Option position incorrecte pour le membre &4.

Gravité 50 · Fin anormale du travail

Cause

L'option de position définie pour le membre &4 du fichier &2 de la bibliothèque &3 est incorrecte. Cette erreur a pu se produire pour l'une des raisons suivantes :

  • Le numéro relatif d'enregistrement ou la clé défini avec la commande OVRDBF n'existe pas dans le fichier.
  • Une position de clé a été définie avec la commande OVRDBF pour un fichier sans clé ou qui a été ouvert dans un ordre d'arrivée.
  • Une position de numéro relatif d'enregistrement a été définie avec la commande OVRDBF pour un fichier avec clé.
  • Une position de numéro relatif d'enregistrement a été définie avec la commande OVRDBF pour un fichier réparti.
  • Une erreur s'est produite pendant l'opération permettant de définir la position dans le fichier.

Que faire

Procédez de l'une des façons suivantes, puis renouvelez votre demande :

  • A l'aide de la commande OVRDBF, indiquez un enregistrement existant dans le membre &4.
  • S'il s'agit d'un fichier avec clé, n'ouvrez pas le fichier dans un ordre d'arrivée.
  • S'il s'agit d'un fichier sans clé, indiquez la position par un numéro relatif d'enregistrement.
  • Si vous devez définir la position initiale d'enregistrement par un numéro relatif d'enregistrement, ouvrez le fichier dans un ordre d'arrivée.
  • S'il s'agit d'un fichier réparti avec clé, définissez la position initiale d'enregistrement par clé, et non pas par numéro relatif d'enregistrement. Si vous devez définir la position initiale d'enregistrement par numéro relatif d'enregistrement, modifiez le fichier de sorte que ce ne soit pas un fichier réparti.
  • Affichez les messages de niveau inférieur et rectifiez les erreurs.

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

Sur votre IBM i

Afficher la description complète du message :

DSPMSGD RANGE(CPF4137) MSGF(QSYS/QCPFMSG)

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

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