CPF4326
Définition de validation &6 non admise pour ouverture du membre &4.
Gravité 50 · Fin anormale du travail
Cause
La définition de validation &6 n'est pas admise pour l'ouverture du membre &4 du fichier &2 de la bibliothèque &3, pour l'une des raisons suivantes :
- Le membre &4 a été ouvert pour contrôle de validation alors que la définition de validation &6 n'était pas active.
- Des modifications sont en instance de validation pour le membre &4, et ce pour une définition de validation autre que &6.
- Le programme appelant utilise une définition de validation &6 avec une valeur de champ *ACTGRP, alors que le programme a demandé l'ouverture du fichier avec la valeur de champ *JOB.
Que faire
Effectuez l'une des opérations suivantes, puis renouvelez votre demande.
- Dans le premier cas, démarrez la définition de validation &6 à l'aide de la commande STRCMTCTL. Dans le deuxième cas, validez ou invalidez les modifications (commandes COMMIT ou ROLLBACK).
- Dans le troisième cas, procédez de l'une des façons suivantes : 1) Limitez l'ouverture du fichier au même groupe d'activation que la définition de validation &6. Si vous utilisez la commande OPNDBF ou OPNQRYF pour ouvrir le fichier, spécifiez soit OPNSCOPE (*ACTGRP), soit OPNSCOPE (*ACTGRPDFN). Si vous utilisez un langage différent de CL pour ouvrir le fichier, consultez le manuel du langage pour savoir quel mécanisme utiliser pour changer la valeur de portée d'ouverture du fichier de *JOB en *ACTGRP. Puis recompilez le programme. 2) Modifiez à la fois le paramètre CMTSCOPE de la commande STRCMTCTL et le paramètre ACTPGM de la commande CRTPGM afin que la portée soit la même à toutes les étapes du travail. Puis recompilez le programme.
- Dans tous les cas, modifiez le programme en indiquant le paramètre COMMIT(*NO), puis recompilez.
Description technique
L'identificateur de la définition de validation est &7.
The commitment definition identifier is &7.
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 |
|---|---|---|
| &2 | *CHAR |
10 |
| &3 | *CHAR |
10 |
| &4 | *CHAR |
10 |
| &6 | *CHAR |
10 |
| &7 | *HEX |
10 |
Sur votre IBM i
Afficher la description complète du message :
DSPMSGD RANGE(CPF4326) MSGF(QSYS/QCPFMSG)
L'intercepter dans un programme CL, quand il est envoyé comme message d'échappement :
MONMSG MSGID(CPF4326) EXEC(DO)
/* traitement de l'erreur */
ENDDO