Commande CL IBM i (AS/400)
CRTCLPGM
Créer un programme CL
En bref
La commande CRTCLPGM (Créer un programme CL) permet la création d'un programme en langage de contrôle (CL) à partir du programme CL source indiqué.
CRTCLPGM se lit CRT
(Créer) + CLPGM.
Sur IBM i, le nom d'une commande associe presque toujours un verbe et un objet.
Syntaxe minimale
CRTCLPGM PGM(…)
Paramètres
-
PGMProgramme obligatoire -
SRCFILEFichier source -
SRCMBRMembre source -
TEXTTexte 'descriptif' -
OUTPUTSortie -
OPTIONOptions pour liste source -
GENOPTOptions de génération -
USRPRFProfil utilisateur -
LOGConsigner les commandes -
ALWRTVSRCRTVCLSRC admise -
REPLACERemplacer programme -
TGTRLSEdition cible -
AUTDroits -
SRTSEQSéquence de tri -
LANGIDIdentificateur de langue -
INCFILEFichier INCLUDE
Astuce : dans une session 5250, tapez CRTCLPGM 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 : Tous les environnements (*ALL)
Compatible multitâche : Non
La commande CRTCLPGM (Créer un programme CL) permet la création d'un programme en langage de contrôle (CL) à partir du programme CL source indiqué.
Restrictions : La quantité de mémoire secondaire occupée par un programme compilé varie selon le nombre de commandes qu'il contient, le type de fonctions exécutées par ces dernières (affichage, création, ajout, appel, etc) et les types de valeurs de paramètre (variables ou constantes). Certaines combinaisons de ces différents facteurs peuvent entraîner un dépassement des limites de taille interne du système, bien que le cas soit peu probable. Lorsque les limites sont dépassées, le programme doit être ré-écrit, en général sous forme de programmes multiples.
Paramètres
| Mot-clé | Description | Valeurs possibles | Remarques |
|---|---|---|---|
| PGM | Programme | Nom d'objet qualifié | Obligatoire, positionnel 1 |
| Qualificatif 1: Programme | Nom | ||
| Qualificatif 2: Biblio | Nom, *CURLIB | ||
| SRCFILE | Fichier source | Nom d'objet qualifié | Facultatif, positionnel 2 |
| Qualificatif 1: Fichier source | Nom, QCLSRC | ||
| Qualificatif 2: Biblio | Nom, *LIBL, *CURLIB | ||
| SRCMBR | Membre source | Nom, *PGM | Facultatif, positionnel 3 |
| TEXT | Texte 'descriptif' | Valeur caractère, *SRCMBRTXT, *BLANK | Facultatif |
| OUTPUT | Sortie | *PRINT, *NONE | Facultatif, positionnel 4 |
| OPTION | Options pour liste source | Values (jusqu'à 6 répétitions): *SOURCE, *NOSOURCE, *SRC, *NOSRC, *XREF, *NOXREF, *GEN, *NOGEN, *SECLVL, *NOSECLVL, *SRCDBG, *NOSRCDBG, *LSTDBG, *NOLSTDBG, *DOSLTLVL, *NODOSLTLVL | Facultatif, positionnel 5 |
| GENOPT | Options de génération | Values (jusqu'à 3 répétitions): *NOLIST, *LIST, *NOXREF, *XREF, *NOPATCH, *PATCH | Facultatif |
| USRPRF | Profil utilisateur | *USER, *OWNER | Facultatif |
| LOG | Consigner les commandes | *JOB, *YES, *NO | Facultatif |
| ALWRTVSRC | RTVCLSRC admise | *YES, *NO | Facultatif |
| REPLACE | Remplacer programme | *YES, *NO | Facultatif |
| TGTRLS | Edition cible | Nom simple, *CURRENT, *PRV | Facultatif |
| AUT | Droits | Nom, *LIBCRTAUT, *CHANGE, *ALL, *USE, *EXCLUDE | Facultatif |
| SRTSEQ | Séquence de tri | Valeurs uniques: *HEX, *JOB, *JOBRUN, *LANGIDUNQ, *LANGIDSHR Autres valeurs: Nom d'objet qualifié |
Facultatif |
| Qualificatif 1: Séquence de tri | Nom | ||
| Qualificatif 2: Biblio | Nom, *LIBL, *CURLIB | ||
| LANGID | Identificateur de langue | Valeur caractère, *JOBRUN, *JOB | Facultatif |
| INCFILE | Fichier INCLUDE | Valeurs uniques: *SRCFILE Autres valeurs: Nom d'objet qualifié |
Facultatif |
| Qualificatif 1: Fichier INCLUDE | Nom | ||
| Qualificatif 2: Biblio | Nom, *LIBL, *CURLIB |
Programme (PGM)
Indique le programme à créer.
Ce paramètre est obligatoire.
Qualificatif 1 : Programme
- nom
- Indiquez le nom du programme à créer.
Qualificatif 2 : Biblio
- *CURLIB
- Le programme est stocké dans la bibliothèque en cours du travail. Si celle-ci ne figure pas dans la liste des bibliothèques, QGPL est prise par défaut.
- nom
- Indiquez le nom de la bibliothèque dans laquelle le programme doit être stocké.
Fichier source (SRCFILE)
Indique le fichier source contenant le membre source CL à compiler.
Qualificatif 1 : Fichier source
- QCLSRC
- Le fichier source nommé QCLSRC, contenant le membre source CL à compiler, est utilisé.
- nom
- Indiquez le nom du fichier source contenant le membre source CL à compiler. Il peut s'agir d'un fichier base de données, d'un fichier unité ou d'un fichier spoule en entrée.
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
- Bibliothèque de l'unité d'exécution en cours utilisée pour localiser le fichier source. Si cette bibliothèque n'est pas indiquée, QGPL est utilisée par défaut.
- nom
- Indiquez le nom de la bibliothèque dans laquelle doit s'effectuer la recherche.
Membre source (SRCMBR)
Indique le nom du membre de fichier source contenant le programme source CL à compiler.
- *PGM
- Le nom du travail est identique au nom du programme indiqué à l'invite Programme (paramètre PGM).
- nom
- Indiquez le nom du membre contenant le programme source CL si le nom du membre diffère de celui du programme à créer.
Texte 'descriptif' (TEXT)
Texte décrivant brièvement l'objet.
- *SRCMBRTXT
- Le texte est extrait du membre de fichier source utilisé pour créer le programme CL.
- *BLANK
- Aucun texte n'est indiqué.
- valeur-alphanumérique
- Tapez un texte d'au plus 50 caractères, entre apostrophes.
Sortie (OUTPUT)
Indique si une liste de compilation est générée.
- La liste de compilation est générée. Les informations qu'elle contient dépendent des valeurs indiquées pour le paramètre Options pour liste source (OPTION).
- *NONE
- La liste de compilation n'est pas générée. Il est conseillé d'utiliser cette option lorsqu'aucune liste n'est requise ; vous obtiendrez ainsi de meilleures performances lors de la compilation.
Options pour liste source (OPTION)
Indique les types des listes de compilation créées lors de l'exécution de cette commande, et si un programme doit être créé. Des valeurs d'options multiples peuvent être indiquées dans n'importe quel ordre à ce paramètre. Pour chaque groupe, si aucune des valeurs n'est indiquée ou si les deux sont précisées, celle qui est soulignée est utilisée par défaut.
Remarque :Les valeurs soulignées pour ce paramètre sont semblables mais ne correspondent pas aux valeurs par défaut. Vous ne pouvez donc pas les modifier à l'aide de la commande CHGCMDDFT.
Option de liste source
- *SRC ou *SOURCE
- Le compilateur fournit une liste du source en entrée utilisé pour compiler le programme.
- *NOSRC ou *NOSOURCE
- Le compilateur ne fournit pas une liste source complète ; seules les erreurs survenues lors de la compilation sont listées.
Option de références croisées
- *XREF
- Le compilateur fournit une liste de références croisées de variables ou labels contenus dans le source. Si *NOSOURCE est indiqué, *NOXREF est pris par défaut.
- *NOXREF
- Le compilateur ne fournit pas de liste de références croisées de variables et de données contenues dans le source.
Option de création de programme
- *GEN
- Le compilateur crée un programme et le place dans la bibliothèque indiquée.
- *NOGEN
- Le compilateur ne crée pas de programme. Il doit effectuer une vérification syntaxique du source et fournir une liste source si l'option *SOURCE ou *SRC est indiquée.
Option Texte de message de deuxième niveau
- *NOSECLVL
- Les textes de messages de deuxième niveau ne seront pas imprimés.
- *SECLVL
- Les textes de messages de deuxième niveau seront imprimés avec ceux du premier niveau, pour identifier les erreurs du compilateur.
Option de débogage au niveau du source
- *NOSRCDBG
- Les informations de débogage au niveau du source ne sont pas générées. Les informations sur les erreurs survenues au niveau du source ne seront pas générées sauf si *LSTDBG est indiqué.
- *SRCDBG
- Le compilateur génère la liste des erreurs survenues au niveau du source ainsi que les informations de débogage à utiliser avec CODE/400 (CoOperative Development Environment/400). Les informations de débogage au niveau de la liste ou du source sont également nécessaires pour l'utilisation de la fonction de débogage au niveau du source du programme de débogage système (STRDBG OPMSRC(*YES)) pour déboguer les programmes OPM. Un fichier événements est créé même si la compilation se termine sans erreur.
Option de débogage au niveau de la liste
- *NOLSTDBG
- Une vue de liste ou des informations de débogage au niveau de la liste ne sont pas générées. Les informations sur les erreurs survenues au niveau du source ne seront pas créées sauf si *SRCDBG est indiqué.
- *LSTDBG
- Le compilateur génère une vue de liste, des informations d'erreurs survenues au niveau du source et des informations de débogage au niveau de la liste, à utiliser avec CODE/400 (CoOperative Development Environment/400). Les informations de débogage au niveau de la liste ou du source sont également nécessaires pour l'utilisation de la fonction de débogage au niveau du source du programme de débogage système (STRDBG OPMSRC(*YES)) pour déboguer les programmes OPM.
Option de niveau d'imbrication DO/SELECT
- *NODOSLTLVL
- Le compilateur n'ajoute pas les nouvelles colonnes DO SLT dans le fichier spoule imprimé. Le niveau d'imbrication DO / SELECT n'est pas indiqué.
- *DOSLTLVL
- Le compilateur ajoute les nouvelles colonnes DO SLT dans le fichier spoule imprimé afin d'indiquer le niveau d'imbrication DO / SELECT. La colonne DO indique le niveau Do commençant pour chaque Do Group, Do For, Do Until et Do While et finissant au End Do Group correspondant. La colonne SLT indique le niveau SELECT commençant pour chaque Select et finissant au End Select correspondant.
Options de génération (GENOPT)
Indique les options de génération de programme à utiliser. Ces valeurs sont ignorées si OPTION(*NOGEN) est indiqué. Des valeurs d'options multiples peuvent être indiquées dans n'importe quel ordre à ce paramètre. Pour chaque groupe, si aucune des valeurs n'est indiquée ou si les deux sont précisées, celle qui est soulignée est utilisée par défaut.
Remarque :Les valeurs soulignées pour ce paramètre sont semblables mais ne correspondent pas aux valeurs par défaut. Vous ne pouvez donc pas les modifier à l'aide de la commande CHGCMDDFT.
Option de liste IRP/MI
- *NOLIST
- Aucune liste de la représentation intermédiaire du programme (IRP) n'est créée.
- *LIST
- Une liste de la représentation intermédiaire du programme (IRP), comprenant les instructions de l'interface machine (MI) générées, est créée.
Option de références croisées IRP/MI
- *NOXREF
- Les références croisées des variables et données définies dans la représentation intermédiaire du programme ne sont pas listées.
- *XREF
- Les références croisées des variables et données définies dans la représentation intermédiaire du programme sont listées.
Option de zone de modification dans le programme
- *NOPATCH
- Aucun espace n'est réservé pour une zone de modification dans le programme compilé.
- *PATCH
- Un espace est réservé pour une zone de modification dans le programme CL compilé.
Profil utilisateur (USRPRF)
Indique si le contrôle des droits effectué pendant l'exécution du programme ne concerne que l'utilisateur de ce programme (*USER) ou bien à la fois l'utilisateur et le propriétaire (*OWNER). 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é.
- *USER
- Le programme s'exécute sous le profil de l'utilisateur qui l'a lancé.
- *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.
Consigner les commandes (LOG)
Indique les options de consignation pour un programme CL créé. *YES ou *NO priment sur toute valeur indiquée dans la commande CHGJOB (Modifier un travail).
- *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).
- *YES
- Les commandes sont toujours consignées.
- *NO
- Les commandes ne sont pas consignées.
RTVCLSRC admise (ALWRTVSRC)
Indique si le source CL est sauvegardé avec l'objet 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.
Remplacer programme (REPLACE)
Indique si un programme de même nom existant déjà dans la bibliothèque indiquée doit être remplacé.
Remarques :
- Si un programme CL en cours d'exécution est recompilé alors que la valeur *YES est indiquée au paramètre REPLACE, des erreurs peuvent se produire dans la file d'attente de messages lors de l'exécution du programme.
- Si vous indiquez *YES au paramètre REPLACE, les valeurs des paramètres Profil utilisateur (USRPRF) et Droits (AUT) sont ignorées. Le programme existant est utilisé comme source des droits et l'attribut du profil utilisateur est copié dans le nouveau programme à partir du programme existant. Utilisez la commande CHGPGM (Modifier un programme) pour modifier le paramètre USRPRF, et la commande GRTOBJAUT (Accorder des droits sur un objet) ou RVKOBJAUT (Révoquer les droits sur un objet) pour modifier les droits sur ce programme.
- *YES
- Le programme déjà existant est remplacé et transféré dans la bibliothèque QRPLOBJ .
- *NO
- Le programme déjà existant n'est pas remplacé.
Edition cible (TGTRLS)
Indique l'édition du système d'exploitation sur laquelle vous souhaitez utiliser l'objet créé.
Lorsque vous indiquez la valeur édition-cible, le format VxRxMx est utilisé pour préciser l'édition. Vx indique la version, Rx l'édition et Mx le niveau de modification. Par exemple, V5R3M0 correspond à la version 5, édition 3, modification 0.
Les valeurs admises dépendent de la version, de l'édition et du niveau de modification du système d'exploitation, et changent à chaque nouvelle édition. Appuyez sur F4 à l'invite de ce paramètre de commande pour afficher la liste des valeurs admises.
- *CURRENT
- L'objet sera utilisé sur l'édition en cours du système d'exploitation installée sur votre système. Cet objet pourra également être utilisé sur un système doté de cette édition (ou de toute édition suivante qui sera installée).
- *PRV
- L'objet sera utilisé sur l'édition précédente, niveau de modification 0, du système d'exploitation. Cet objet pourra également être utilisé sur un système doté de cette édition (ou de toute édition suivante qui sera installée).
- valeur-alphanumérique
- Indiquez l'édition au format VxRxMx. L'objet pourra être utilisé sur un système doté de celle-ci ou de toute édition suivante du système d'exploitation.
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.
- *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.
Remarque :Ce paramètre n'est pas pris en compte si REPLACE(*YES) est indiqué.
Séquence de tri (SRTSEQ)
Indique la table de séquence de tri à utiliser pour les comparaisons de chaînes dans ce programme CL. La valeur de séquence de tri, utilisée conjointement à l'identificateur de langue et à l'identificateur codé de jeu de caractères, permet de déterminer la table de séquence de tri à utiliser.
Valeurs uniques
- *HEX
- Aucune table de séquence de tri n'est utilisée. Les valeurs hexadécimales des caractères sont utilisées pour déterminer la séquence de tri.
- *JOB
- La séquence de tri utilisée est celle associée au travail lors de la création du programme CL.
- *JOBRUN
- La séquence de tri utilisée est celle associée au travail lors de l'exécution du programme CL.
- *LANGIDUNQ
- La table de séquence de tri utilise un poids unique pour chaque caractère ; il s'agit de la table de tri à poids uniques associée à la langue définie pour le paramètre LANGID.
- *LANGIDSHR
- La table de séquence de tri utilise le même poids pour plusieurs caractères ; il s'agit de la table de tri à poids partagés associée à la langue définie pour le paramètre LANGID.
Qualificatif 1 : Séquence de tri
- nom
- Indiquez le nom de la table de séquence de tri à utiliser avec ce programme CL.
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.
- nom
- Indiquez le nom de la bibliothèque dans laquelle doit s'effectuer la recherche.
Identificateur de langue (LANGID)
Indique l'identificateur de langue à utiliser lorsque SRTSEQ(*LANGIDUNQ) ou SRTSEQ(*LANGIDSHR) est précisé.
- *JOBRUN
- L'ID langue utilisé est celui associé au travail lors de la création du programme CL.
- *JOB
- L'ID langue utilisé est celui associé au travail lors de l'exécution du programme CL.
- ID-langue
- Indiquez l'identificateur de langue qui doit être utilisé par le travail.
Fichier INCLUDE (INCFILE)
Indique le fichier source qui contient les membres à inclure dans le programme à l'aide de commandes INCLUDE (Inclure le source CL).
Valeur uniques
- *SRCFILE
- Le fichier source indiqué pour le paramètre Fichier source (SRCFILE) contient les membres du fichier source indiqués dans les commande INCLUDE CL.
Qualificatif 1 : Fichier INCLUDE
- nom
- Indiquez le nom du fichier source qui contient le membre du fichier source indiqué dans les commandes INCLUDE CL.
La longueur de l'enregistrement du fichier source indiqué ici doit être supérieure ou égale à la longueur de l'enregistrement du fichier source indiqué pour le paramètre SRCFILE.
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
- Bibliothèque de l'unité d'exécution en cours utilisée pour localiser le fichier source. Si cette bibliothèque n'est pas indiquée, QGPL est utilisée par défaut.
- nom
- Indiquez le nom de la bibliothèque dans laquelle doit s'effectuer la recherche.
Exemples
Exemple 1 : Création d'un programme exécutable par un utilisateur système
CRTCLPGM PAYROLL TEXT('Programme Payroll')
Cette commande appelle un compilateur pour créer un programme nommé PAYROLL. Le source du programme CL ou de la procédure CL ILE se trouve dans le fichier source par défaut QCLSRC du membre PAYROLL. Une liste de compilateur est créée. Le programme est traité sous le profil de l'utilisateur du programme et peut être exécuté par un utilisateur système.
Exemple 2 : Création d'un programme exécutable par un utilisateur habilité
CRTCLPGM PGM(PARTS) SRCFILE(MYLIB/PARTDATA) AUT(*EXCLUDE)
TEXT('Ce programme affiche toutes les données de PARTS')
Cette commande crée un programme CL nommé PARTS et le stocke dans la bibliothèque en cours. Le source de ce programme se trouve dans le membre PARTS du fichier source PARTDATA dans la bibliothèque MYLIB. Une liste de compilateur est créée. Ce programme peut être traité sous le profil de l'utilisateur exécutant le programme. Il peut s'agir du propriétaire ou d'un autre utilisateur à qui le propriétaire a accordé des droits spécifiques dans la commande GRTOBJAUT (Accorder droits sur un objet).
Exemple 3 : Création d'un programme à exécuter sur une version précédente du système
CRTCLPGM PGM(MYPGM) SRCFILE(MYLIB/MYDATA) TGTRLS(*PRV)
Cette commande crée un programme CL pouvant être sauvegardé pour une version précédente du système ainsi que restauré et exécuté sur ce système.
Messages d'erreur
Messages *ESCAPE
- CPF0C33
- Edition cible &1 non admise.
- CPF0C35
- &1 n'est pas une édition cible supportée.
- CPF0801
- Programme &1 non créé.
- CPF0804
- Opérandes de fonction intégrée incorrects. Code raison &1.
- CPF0807
- Le fichier contenant la sortie imprimée du compilateur n'est pas ouvert.
- CPF0808
- Erreur dans le code créé par le compilateur.
- CPF0814
- L'option 9 du logiciel sous licence 5770-SS1 n'est pas installée.
- CPF0815
- Impossible de créer pgm CL &1 dans &2 pour édition précédente.
- CPF0816
- Valeur &1 incorrecte pour le masque %SWITCH.
- CPF0849
- Erreur d'adressage.
- CPF3202
- Fichier &1 de &2 en cours d'utilisation.
- CPF3203
- Allocation de l'objet impossible pour le fichier &1 de &2.
- CPF3224
- Non autorisé à l'opération sur fichier &1.
- EVF3140
- Les informations de débogage du programme n'ont pas été créées.
© Copyright IBM Corp. Texte d'aide reproduit à des fins de formation.