DCLPRCOPT
Déclarer options de traitement
En bref
La commande DCLPRCOPT vous permet définir les options de traitement du compilateur.
Syntaxe minimale
DCLPRCOPT
Paramètres
-
SUBRSTACKPosition dans pile sous-pgms -
LOGConsigner les commandes -
ALWRTVSRCRTVCLSRC admise -
TEXTTexte 'descriptif' -
USRPRFProfil utilisateur -
AUTDroits -
DBGENCKEYClé de chiffrement de débogage -
STGMDLModèle d'espace mémoire -
DFTACTGRPGroupe d'activation par défaut -
ACTGRPGroupe d'activation -
BNDSRVPGMLier programme de service -
BNDDIRRépertoire de liage
Astuce : dans une session 5250, tapez DCLPRCOPT puis F4 pour
l'invite de saisie, et F1 sur un paramètre pour son aide.
Aide IBM i de la commande
Texte du F1, IBM i 7.5 en français
(bibliothèque QSYS)
Où s'exécute :
- Programme batch (*BPGM)
- Programme interactif (*IPGM)
La commande DCLPRCOPT vous permet définir les options de traitement du compilateur. Ces options peuvent contrôler le comportement du compilateur ou modifier les attributs du programme ou de l'objet modèle généré par le compilateur CL.
Vous pouvez utiliser la commande DCLPRCOPT pour définir les paramètres de compilateur dans votre programme source CL au lieu d'indiquer les mêmes paramètres dans la commande CL utilisée pour appeler le compilateur CL (CRTCLPGM, CRTCLMOD ou CRTBNDCL).
- Ces paramètres dans DCLPRCOPT ne possèdent pas de valeurs par défaut. Si aucune valeur n'est indiquée, le compilateur CL utilise la valeur indiquée ou proposée par défaut dans la commande CL utilisée pour appeler le compilateur CL.
- La définition d'une valeur de paramètre dans la commande DCLPRCOPT remplace toute valeur indiquée ou proposée par défaut pour le paramètre correspondant dans la commande CRTCLPGM, CRTCLMOD ou CRTBNDCL.
- Si une liste du compilateur est générée, la première page affiche les paramètres du compilateur transmis à partir de la commande CL pour appeler le compilateur CL. Chacun de ces paramètres écrasés par une commande DCLPRCOPT affectera le programme ou module CL et apparaîtra donc sur la première page de la liste de compilateur.
- Certains paramètres et certaines valeurs de paramètre ne s'appliquent qu'au compilateur CL OPM (Original Program Model) ou ILE (Integrated Language Environment). Par exemple, le paramètre ACTGRP n'est applicable qu'au compilateur CL ILE appelé par la commande CRTBNDCL. Les paramètres ou les valeurs indiqués dans la commande DCLPRCOPT, qui ne s'appliquent pas au compilateur CL appelé pour compiler le programme source CL ne sont pas pris en compte.
Restrictions :
- Cette commande est valide uniquement dans un programme CL ou une procédure CL ILE. Toutes les commandes de déclaration (DCL, COPYRIGHT, DCLF et DCLPRCOPT) doivent suivre la commande PGM (Programme) et précéder les autres commandes du programme. Elles peuvent être entrées dans n'importe quel ordre.
- Une seule commande DCLPRCOPT est admise par le compilateur CL. Si vous en indiquez plusieurs dans le programme source CL, le message CPD0323 est envoyé et la compilation échoue.
Paramètres
| Mot-clé | Description | Valeurs possibles | Remarques |
|---|---|---|---|
| SUBRSTACK | Position dans pile sous-pgms | 20-9999, 99 | Facultatif, positionnel 1 |
| LOG | Consigner les commandes | *JOB, *YES, *NO | Facultatif |
| ALWRTVSRC | RTVCLSRC admise | *YES, *NO | Facultatif |
| TEXT | Texte 'descriptif' | Valeur caractère, *SRCMBRTXT, *BLANK | Facultatif |
| USRPRF | Profil utilisateur | *USER, *OWNER | Facultatif |
| AUT | Droits | Nom, *LIBCRTAUT, *CHANGE, *ALL, *USE, *EXCLUDE | Facultatif |
| DBGENCKEY | Clé de chiffrement de débogage | Valeur caractère, *NONE | Facultatif |
| STGMDL | Modèle d'espace mémoire | *SNGLVL, *TERASPACE | Facultatif |
| DFTACTGRP | Groupe d'activation par défaut | *YES, *NO | Facultatif |
| ACTGRP | Groupe d'activation | Nom, *STGMDL, *NEW, *CALLER | Facultatif |
| BNDSRVPGM | Lier programme de service | Valeurs uniques: *NONE Autres valeurs (jusqu'à 300 répétitions): Liste d'éléments |
Facultatif |
| Élément 1: Programme de service | Nom d'objet qualifié | ||
| Qualificatif 1: Programme de service | Nom générique, nom, *ALL | ||
| Qualificatif 2: Biblio | Nom, *LIBL | ||
| Élément 2: Activation | *IMMED, *DEFER | ||
| BNDDIR | Répertoire de liage | Valeurs uniques: *NONE Autres valeurs (jusqu'à 300 répétitions): Nom d'objet qualifié |
Facultatif |
| Qualificatif 1: Répertoire de liage | Nom | ||
| Qualificatif 2: Biblio | Nom, *LIBL, *CURLIB, *USRLIBL |
Position dans pile sous-pgms (SUBRSTACK)
Indique le nombre de postes pouvant être admis dans la pile de sous-programmes. Chaque fois qu'une commande CALLSUBR est exécutée, un poste est ajouté dans la pile de sous-programmes. Un poste est supprimé lorsqu'une commande RTNSUBR ou ENDSUBR est exécutée. La pile de sous-programmes peut comporter plusieurs postes lorsque des commandes CALLSUBR sont exécutées depuis un sous-programme ; un sous-programme peut appeler un autre sous-programme ou s'appeler lui-même de manière récursive.
- 99
- Le nombre maximal de postes de pile de sous-programmes admis lorsque ce programme CL est exécuté est 99.
- 20 à 9999
- Indiquez le nombre maximal de postes de pile de sous-programmes admis lorsque ce programme CL est exécuté.
Consigner les commandes (LOG)
Indique les options de consignation pour un programme ou un module CL créé.
- *JOB
- La consignation des commandes dans un programme CL en cours d'exécution dépend de l'état de l'indicateur de consignation du travail (paramètre LOGCLPGM de la commande CHGJOB). Pour afficher la liste des commandes consignées, indiquez 3 ou 4 comme niveau de consignation des travaux.
La valeur *YES ou *NO annule toute valeur indiquée précédemment dans la commande CHGJOB.
- *YES
- Les commandes sont consignées dans tous les cas.
- *NO
- Les commandes ne sont pas consignées.
RTVCLSRC admise (ALWRTVSRC)
Indique si le source CL est sauvegardé avec l'objet module ou programme. Le source sauvegardé peut alors être extrait à l'aide de la commande RTVCLSRC (Extraire un source CL).
- *YES
- Le source CL est sauvegardé avec le programme.
- *NO
- Le source CL n'est pas sauvegardé avec le programme.
Texte 'descriptif' (TEXT)
Indique le texte qui décrit brièvement l'objet programme ou module CL compilé.
- *SRCMBRTXT
- Le texte est extrait du membre de fichier source utilisé pour créer le programme ou le module CL. Si ce fichier source est un fichier spoule en entrée ou un fichier unité, la zone de texte est à blanc.
- *BLANK
- Aucun texte n'est indiqué.
- valeur-alphanumérique
- Indiquez, entre apostrophes, un texte de 50 caractères au maximum.
Profil utilisateur (USRPRF)
Indique si le contrôle des droits effectué lors de l'exécution de ce programme concerne uniquement l'utilisateur (*USER) du programme ou bien à la fois l'utilisateur et le propriétaire (*OWNER) du programme. Les droits mentionnés dans le profil utilisateur ou bien dans le profil utilisateur et dans le profil propriétaire servent à contrôler l'utilisation des objets par le programme, y compris les droits du programme sur chaque objet.
Remarque :Ce paramètre n'est pas pris en compte si REPLACE(*YES) est indiqué et qu'il existe déjà un programme avec le nom indiqué par le paramètre PGM dans la commande CRTCLPGM ou CRTBNDCL.
Remarque :Ce paramètre n'est applicable que si le source CL est compilé à l'aide de la commande CRTCLPGM ou CRTBNDCL. Pour CRTCLMOD, les valeurs indiquées pour ce paramètre ne sont pas prises en compte.
- *USER
- Le programme s'exécute sous le profil de l'utilisateur qui l'a démarré.
- *OWNER
- Les profils du propriétaire et de l'utilisateur sont utilisés lors du traitement du programme. L'ensemble des droits sur les objets figurant dans ces deux profils permettent de rechercher et d'accéder aux objets pendant le traitement du programme. Les droits du profil de groupe du propriétaire ne sont pas inclus dans la liste des droits utilisés pour l'exécution du programme.
Droits (AUT)
Indique les droits que vous accordez aux utilisateurs qui n'ont pas de droit spécifique sur l'objet, qui ne figurent pas dans la liste d'autorisation et dont le groupe utilisateur ne détient pas de droit spécifique sur l'objet.
Remarque :Ce paramètre n'est pas pris en compte si REPLACE(*YES) est indiqué et qu'un objet portant le nom indiqué existe dans la bibliothèque définie.
- *LIBCRTAUT
- Le système détermine les droits sur l'objet à l'aide de la valeur précisée à l'invite Droits pour objets créés (paramètre CRTAUT) dans la commande CRTLIB pour la bibliothèque contenant l'objet à créer. Si la valeur précisée au paramètre CRTAUT est modifiée, la nouvelle valeur n'affecte pas les objets existants.
- *CHANGE
- L'utilisateur peut effectuer toutes les opérations sur l'objet, à l'exception de celles réservées au propriétaire ou contrôlées par les droits d'existence de l'objet (*OBJEXIST) et de gestion de l'objet (*OBJMGT). L'utilisateur peut réaliser des fonctions de base sur l'objet et le modifier. Le droit *CHANGE fournit le droit d'opération sur l'objet (*OBJOPR) ainsi que les droits sur toutes les données. Si l'objet est une liste d'autorisation, vous pouvez ajouter, modifier ou supprimer des utilisateurs dans cette liste.
- *ALL
- L'utilisateur peut effectuer toutes les opérations, à l'exception de celles réservées au propriétaire ou soumises au droit de gestion de la liste d'autorisation (*AUTLMGT). L'utilisateur a un droit d'existence sur l'objet Il peut également effectuer des fonctions de base sur ce dernier, le modifier, définir son niveau de protection et en transférer la propriété.
- *USE
- L'utilisateur peut effectuer des opérations de base sur l'objet, telles que l'exécution d'un programme ou la lecture d'un fichier. Il ne peut pas le modifier. Le droit d'utilisation (*USE) fournit le droit d'opération sur l'objet (*OBJOPR) ainsi que le droit d'exécution (*EXECUTE).
- *EXCLUDE
- L'utilisateur n'a pas accès à l'objet.
- nom
- Indiquez le nom d'une liste d'autorisation permettant de déterminer les droits sur l'objet. Les droits sur l'objet précisés dans la liste sont accordés aux utilisateurs qui figurent sur cette liste. La liste d'autorisation doit exister à la création de l'objet.
Clé de chiffrement de débogage (DBGENCKEY)
Indique la clé de chiffrement à utiliser pour chiffrer le source programme imbriqué dans les vues de débogage.
Remarque :Ce paramètre n'est applicable que si le source CL est compilé à l'aide des commandes CRTBNDCL (Créer un programme CL lié) ou CRTCLMOD (Créer un module CL). Dans le cas de CRTCLPGM (Créer un programme CL), toute valeur indiquée pour ce paramètre est ignorée.
- *NONE
- Aucune clé de chiffrement n'est indiquée.
- valeur-alphanumérique
- Indiquez la clé à utiliser pour chiffrer le source programme imbriqué dans les vues de débogage. La longueur de cette clé peut être comprise entre 1 et 16 octets. Toute clé d'une longueur comprise entre 1 et 15 octets sera complétée par des blancs jusqu'à concurrence de 16 octets pour le chiffrement. L'indication d'une clé de 0 octet revient à spécifier *NONE.
Si la clé contient des caractères qui ne sont pas constants pour toutes les pages de codes, il appartient à l'utilisateur de s'assurer que le système cible utilise la même page de codes que le système source ; si tel n'est pas le cas, la clé pourra ne pas correspondre et le déchiffrement pourra échouer. Si la clé de chiffrement doit être entrée sur des systèmes dont les pages de codes diffèrent, il est recommandé d'utiliser une clé composée de caractères constants pour toutes les pages de codes EBCDIC.
Modèle d'espace mémoire (STGMDL)
Indique l'attribut du modèle d'espace mémoire du programme CL ILE.
Remarque :Ce paramètre n'est applicable que si le source CL est compilé à l'aide de la commande CRTBNDCL. Pour CRTCLPGM et CRTCLMOD, les valeurs indiquées pour ce paramètre ne sont pas prises en compte.
- *SNGLVL
- Le programme est créé avec un modèle d'espace adressable unique. Lorsque ce programme est activé et exécuté, il bénéficie d'un espace adressable unique pour le stockage automatique et statique. Ce type de programme ne s'exécute que dans un groupe d'activation d'espace adressable unique.
- *TERASPACE
- Le programme est créé avec un modèle d'espace mémoire à téraoctets. Lorsque ce programme est activé et exécuté, il bénéficie d'un espace mémoire à téraoctets pour le stockage automatique et statique. Ce type de programme ne s'exécute que dans un groupe d'activation d'espace mémoire à téraoctets. STGMDL(*TERASPACE) ne peut pas être indiqué si DFTACTGRP(*YES) est indiqué.
Groupe d'activation par défaut (DFTACTGRP)
Indique si le programme CL ILE est associé au groupe d'activation par défaut.
Remarque :Ce paramètre n'est applicable que si le source CL est compilé à l'aide de la commande CRTBNDCL. Pour CRTCLPGM et CRTCLMOD, les valeurs indiquées pour ce paramètre ne sont pas prises en compte.
- *YES
- Le programme est associé au groupe d'activation par défaut.
Remarque :Si cette valeur est indiquée, le paramètre ACTGRP ne peut pas être précisé.
- *NO
- Le programme n'est pas associé au groupe d'activation par défaut.
Groupe d'activation (ACTGRP)
Indique le groupe d'activation auquel est associé le programme CL ILE au moment où il est appelé. Ce groupe d'activation assure un certain nombre de fonctions :
- Structures de données pour gérer l'exécution des programmes
- Protection d'adressage
- Frontière logique pour la création de messages
- Frontière logique pour l'apurement de l'application
Remarque :Ce paramètre n'est applicable que si le source CL est compilé à l'aide de la commande CRTBNDCL. Pour CRTCLPGM et CRTCLMOD, les valeurs indiquées pour ce paramètre ne sont pas prises en compte.
- *STGMDL
- Si STGMDL(*SNGLVL) est indiqué, ce programme est activé dans le groupe d'activation QILE lorsqu'il est appelé. Si STGMDL(*TERASPACE) est indiqué, le programme est activé dans le groupe d'activation QILETS lorsqu'il est appelé.
- *CALLER
- Lorsque ce programme est appelé, il est activé dans le groupe d'activation du programme appelant.
- *NEW
- Lorsque ce programme est appelé, le système crée un nouveau groupe d'activation.
- nom
- Indiquez le nom du groupe d'activation à utiliser lors de l'appel de ce programme.
Lier programme de service (BNDSRVPGM)
Indique la liste des exportations de programme de service à examiner lors de la liaison pour s'assurer qu'ils répondent aux demandes d'importation des modules. Les exportations de programme de service ne sont vérifiées que s'il y a des demandes d'importation de module non résolues par l'ensemble d'exportations de module. Tout programme de service indiqué pour le paramètre BNDSRVPGM qui satisfait une demande d'importation de module à lier au programme en cours de création. Le nom du programme de service et la bibliothèque indiqués pour le paramètre BNDSRVPGM sont sauvegardés afin d'être utilisés lors de l'exécution. Vous pouvez indiquer jusqu'à 300 noms.
Vous pouvez contrôler l'activation de chaque programme de service. Vous pouvez indiquer si le programme de service référencé est activé lors de la création du programme ou est mis en différé tant que la procédure exportée à partir du programme de service mis en différé n'a pas été appelée. La mise en différé de l'activation peut améliorer les performances de l'application.
Remarque :Ce paramètre n'est applicable que si le source CL est compilé à l'aide de la commande CRTBNDCL. Pour CRTCLPGM et CRTCLMOD, les valeurs indiquées pour ce paramètre ne sont pas prises en compte.
Valeurs uniques
- *NONE
- Aucun programme de service n'a été spécifié.
Elément 1 : Programme de service
-
Qualificatif 1 : Programme de service
- *ALL
- Recherchez tous les objets de programme de service dans les bibliothèques définies.
Remarque :Cette valeur ne doit être spécifiée dans un environnement utilisateur que lorsque vous connaissez exactement les éléments liés à votre programme. Si vous indiquez *LIBL avec *ALL, vous pouvez obtenir des résultats imprévisibles lors de l'exécution du programme. Indiquez le nom du programme de service générique ou des bibliothèques spécifiques pour mieux contrôler les éléments liés à votre programme.
- nom-générique
- Indiquez tous les objets de programme de service qui commencent par les caractères précédant le * dans les bibliothèques définies.
- nom
- Indiquez le nom du programme de service à examiner lors de la résolution des symboles.
-
Qualificatif 2 : Biblio
- *LIBL
- La recherche porte sur toutes les bibliothèques de la liste des bibliothèques de l'unité d'exécution en cours jusqu'à ce que la première occurrence soit trouvée.
- nom
- Indiquez le nom de la bibliothèque sur laquelle doit porter la recherche.
Remarque :QTEMP n'est pas un nom de bibliothèque valide pour ce paramètre.
Elément 2 : Activation
- *IMMED
- Le programme de service référencé est activé lorsque le programme créé est activé.
- *DEFER
- Le programme de service référencé est activé lorsqu'une procédure qu'il exporte est appelée.
Répertoire de liage (BNDDIR)
Indique la liste des répertoires de liage utilisés lors de la résolution des symboles. Les exportations des modules et des programmes de service dans le répertoire de liage ne sont vérifiées que s'il y a des demandes d'importation de module non résolues, que les exportations des modules et des programmes de service (indiqués dans les paramètres MODULE et BNDSRVPGM) n'ont pas pu satisfaire. Vous pouvez indiquer jusqu'à 300 noms.
Remarque :Si les modules d'un répertoire de liage spécifié exportent une procédure référencée par une commande CALLPRC dans le source CL en cours de compilation, le paramètre DFTACTGRP(*NO) doit être indiqué de manière conjointe avec une valeur pour le paramètre ACTGRP. Si le paramètre DFTACTGRP(*YES) est spécifié (ou pris par défaut) sur la commande CRTBNDCL, le programme obtenu ne peut contenir qu'un seul objet *MODULE.
Remarque :Ce paramètre n'est applicable que si le source CL est compilé à l'aide de la commande CRTBNDCL. Pour CRTCLPGM et CRTCLMOD, les valeurs indiquées pour ce paramètre ne sont pas prises en compte.
Valeurs uniques
- *NONE
- Aucun répertoire de liage n'a été indiqué.
Qualificatif 1 : Répertoire de liage
- nom
- Indiquez le nom du répertoire de liage utilisé lors de la résolution des symboles.
Qualificatif 2 : Biblio
- *LIBL
- La recherche porte sur toutes les bibliothèques de la liste des bibliothèques de l'unité d'exécution en cours jusqu'à ce que la première occurrence soit trouvée.
- *CURLIB
- La recherche porte sur la bibliothèque en cours de l'unité d'exécution. Si aucune bibliothèque n'est définie comme bibliothèque en cours pour l'unité d'exécution, la recherche porte sur la bibliothèque QGPL.
- *USRLIBL
- La recherche porte uniquement sur les bibliothèques figurant dans la partie utilisateur de la liste des bibliothèques de l'unité d'exécution.
- nom
- Indiquez le nom de la bibliothèque sur laquelle doit porter la recherche.
Exemples
Exemple 1 : Déclaration de la pile de sous-programme
DCLPRCOPT SUBRSTACK(50)
Cette commande fixe à 50 le nombre maximal de postes dans la pile de sous-programmes. Lorsque le programme CL est exécuté, si la profondeur de la pile de sous-programmes dépasse 50, le message d'arrêt programme CPF0822 est généré.
Exemple 2 : Déclaration des options de compilateur à remplacer
DCLPRCOPT ALWRTVSRC(*NO) USRPRF(*OWNER)
Cette commande remplace les valeurs RTVCLSRC admise (ALWRTVSRC) et Profil utilisateur (USRPRF) indiquées dans la commande Créer un programme CL (CRTCLPGM). Le programme CL qui en résulte ne permet pas d'extraire le code source CL de l'objet *PGM, et lorsque l'objet programme est appelé, il adopte les droits du profil utilisateur qui possède l'objet *PGM.
Exemple 3 : Déclaration des options de compilateur à remplacer
DCLPRCOPT LOG(*NO) AUT(*USE)
Cette commande remplace les valeurs Consigner les commandes (LOG) et Droits (AUT) indiquées dans la commande CRTCLMOD. Une fois que le module CL ILE qui est résulte est lié à un programme ou service ILE, et que la procédure CL ILE est appelée, les commandes CL exécutées dans cette procédure ne sont plus consignées dans l'historique du travail. Le droit public pour l'objet *MODULE créé par la commande CRTCLMOD (Créer un module CL) sera *USE.
Exemple 4 : Déclaration des options de compilateur pour remplacer CRTBNDCL
DCLPRCOPT DFTACTGRP(*NO) ACTGRP(MYAPP) +
BNDDIR(MYAPPLIB/MYBNDDIR)
Cette commande remplace les valeurs Groupe d'activation par défaut (DFTACTGRP) et Groupe d'activation (ACTGRP) indiquées dans la commande Créer un programme CL lié (CRTBNDCL). Le programme CL ILE résultant est exécuté dans le groupe d'activation MYAPP. Lorsque la commande CRTBNDCL exécute la commande CRTPGM (Créer un programme), elle ajoute le répertoire de liage MYBNDDIR à la bibliothèque MYAPPLIB dans le paramètre Répertoire de liage (BINDIR). A partir de là, les programmes de service et les modules ILE référencés par ce répertoire de liage sont disponible pour résoudre les procédures ILE utilisées dans le programme CL ILE.
Messages d'erreur
Aucun
© Copyright IBM Corp. Texte d'aide reproduit à des fins de formation.