Message d'erreur IBM i (AS/400)
CPFA346
Opération incorrecte pour l'ID de zone &1.
Operation for field ID &1 not valid.
Gravité 40 · Fin anormale du programme ou de la fonction
Cause
Opération &4 non autorisée effectuée sur l'ID de zone &1. Si l'ID de zone est -1, il n'a pas pu être déterminé. Les codes d'opération et leur signification sont les suivants : 01 - La zone représentée par l'ID de zone &1 n'est pas une zone compatible CCSID et une E/S basée sur le CCSID a été tentée. Le CCSID des données était &2. Une E/S basée sur le CCSID ne peut être effectuée que sur des zones compatibles CCSID. 02 - La zone représentée par l'ID de zone &1 est une zone compatible CCSID avec le CCSID &3 et l'opération d'E/S demandée n'était pas basée sur le CCSID. Une E/S basée sur le CCSID ne peut être effectuée que sur des zones compatibles CCSID.
Illegal operation &4 performed upon field ID &1. If the field ID is -1, the field ID could not be determined. Operation codes and their meanings are: 01 - The field represented by field ID &1 is not a CCSID-capable field and CCSID-based I/O was attempted. The CCSID of the data was &2. CCSID-based I/O can only be performed upon CCSID capable fields. 02 - The field represented by field ID &1 is a CCSID-capable field with CCSID &3 and the I/O operation requested was not CCSID-based. CCSID-based I/O can only be performed upon CCSID-capable fields.
Que faire
01 - Ne tentez pas d'E/S basée sur le CCSID sur cette zone. Utilisez l'API QsnWrtDta ou QsnWrtTDta. 02 - Effectuez une E/S basée sur le CCSID sur cette zone. Utilisez l'API QsnWrtDtaCC.
01 - Do not attempt CCSID-based I/O to this field. Use the QsnWrtDta or QsnWrtTDta API. 02 - Perform CCSID-based I/O to this field. Use the QsnWrtDtaCC API.
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...
| Variable | Type | Longueur |
|---|---|---|
| &1 | *BIN |
4 |
| &2 | *BIN |
4 |
| &3 | *BIN |
4 |
| &4 | *BIN |
4 |
Sur votre IBM i
Afficher la description complète du message :
DSPMSGD RANGE(CPFA346) MSGF(QSYS/QCPFMSG)
L'intercepter dans un programme CL, quand il est envoyé comme message d'échappement :
MONMSG MSGID(CPFA346) EXEC(DO)
/* traitement de l'erreur */
ENDDO