Aller au contenu

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

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.

*PRINT
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 :

  1. 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.
  2. 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.