Aller au contenu

CRTCLMOD

Créer un module CL

En bref

La commande CRTCLMOD permet de créer un module en langage de contrôle (CL) à partir du membre source CL ou du fichier source STREAM CL indiqué.

CRTCLMOD se lit CRT (Créer) + CLMOD. Sur IBM i, le nom d'une commande associe presque toujours un verbe et un objet.

Syntaxe minimale

CRTCLMOD MODULE(…)

Paramètres

Astuce : dans une session 5250, tapez CRTCLMOD 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 CRTCLMOD permet de créer un module en langage de contrôle (CL) à partir du membre source CL ou du fichier source STREAM CL indiqué.

Paramètres

Mot-clé Description Valeurs possibles Remarques
MODULE Module Nom d'objet qualifié Obligatoire, positionnel 1
Qualificatif 1: Module 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, *MODULE Facultatif, positionnel 3
SRCSTMF Fichier STREAM source Chemin d'accès Facultatif
TEXT Texte 'descriptif' Valeur caractère, *SRCMBRTXT, *BLANK Facultatif
OUTPUT Sortie *PRINT, *NONE Facultatif, positionnel 4
OPTION Options pour liste source Values (jusqu'à 4 répétitions): *XREF, *NOXREF, *GEN, *NOGEN, *SECLVL, *NOSECLVL, *EVENTF, *NOEVENTF, *DOSLTLVL, *NODOSLTLVL Facultatif, positionnel 5
LOG Consigner les commandes *JOB, *YES, *NO Facultatif
ALWRTVSRC RTVCLSRC admise *YES, *NO Facultatif
REPLACE Remplacer objet module *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
OPTIMIZE Optimisation *NONE, *BASIC, *FULL, 10, 20, 30, 40 Facultatif
DBGVIEW Vue de débogage *STMT, *SOURCE, *LIST, *ALL, *NONE Facultatif
DBGENCKEY Clé de chiffrement de débogage Valeur caractère, *NONE Facultatif
ENBPFRCOL Collecte performance possible *PEP, *FULL, *NONE 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
INCDIR Répertoire d'inclusion Values (jusqu'à 32 répétitions): Chemin d'accès, *NONE Facultatif
TGTCCSID TARGET CCSID 1-65534, *SRC, *JOB Facultatif

Module (MODULE)

Indique l'objet module à créer.

Ce paramètre est obligatoire.

Qualificatif 1 : Module

nom
Indiquez le nom du module à créer.

Qualificatif 2 : Biblio

*CURLIB
Le module 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 module 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 du fichier source contenant le membre source CL à compiler.

*MODULE
Le membre source CL à compiler se trouve dans le membre du fichier source qui porte le même nom que celui indiqué au paramètre MODULE pour le module compilé.
nom
Indiquez le nom du membre contenant le source CL, si ce nom est différent de celui du module à créer.

Fichier STREAM source (SRCSTMF)

Indique le chemin d'accès au fichier STREAM contenant le code source CL à compiler.

Le nom du chemin d'accès peut être absolu ou relatif. Un nom de chemin d'accès absolu commence par '/' ; un nom de chemin d'accès relatif commence par un caractère autre que '/'.

S'il est absolu, le nom de chemin d'accès est complet. S'il est relatif, le nom de chemin d'accès est complété par l'ajout du répertoire de travail en cours du travail.

Les paramètres SRCMBR et SRCFILE ne peuvent pas être indiqués en même temps que le paramètre SRCSTMF.

Texte 'descriptif' (TEXT)

Indique le texte qui décrit brièvement le module CL compilé.

*SRCMBRTXT
Le texte est extrait du membre de fichier source utilisé pour créer 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é.
'descriptif'
Indiquez, entre apostrophes, un texte de 50 caractères au maximum.

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 si un programme est créé ainsi que le type de listes en sortie générées lors du traitement de cette commande. Pour ce paramètre, vous pouvez indiquer quatre des valeurs suivantes au maximum, dans un ordre quelconque. 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 création de module

*GEN
Toutes les étapes de l'opération de compilation sont effectuées.
*NOGEN
La compilation s'arrête après l'opération de vérification de la syntaxe. Aucun module n'est créé.

Option de références croisées

*NOXREF
Aucune liste de références croisées n'est créée pour les variables et les éléments de données du source.
*XREF
Une liste des références croisées du programme source est générée. Vous devez indiquer OUTPUT(*PRINT).

Option Texte de message de deuxième niveau

*NOSECLVL
Aucun texte de message de deuxième niveau n'est imprimé.
*SECLVL
Un texte de message de deuxième niveau est imprimé. Vous devez indiquer OUTPUT(*PRINT).

Option de création de fichier événements

*NOEVENTF
Le compilateur ne produit pas de fichier événements pour le produit Environnement développement coopératif (CODE).
*EVENTF
Le compilateur produit un fichier événements pour le produit CODE. Le fichier événements est créé au titre de membre du fichier EVFEVENT dans votre bibliothèque source. Le produit CODE utilise ce fichier afin d'offrir la fonction de suivi des erreurs intégrée à l'éditeur de CODE. Cette option est généralement indiquée par CODE pour votre compte.

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.

Consigner les commandes (LOG)

Indique les options de consignation pour 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. Le source sauvegardé peut alors être extrait à l'aide de la commande RTVCLSRC (Extraire un source CL).

Remarque :Ce paramètre est ignoré si une édition antérieure à V7R1M0 est indiquée pour le paramètre Edition cible (TGTRLS).

*YES
Le source CL est sauvegardé avec le module.
*NO
Le source CL n'est pas sauvegardé avec le module.

Remplacer objet module (REPLACE)

Indique si un module existant est remplacé lorsqu'un module portant le même nom existe déjà dans la bibliothèque indiquée.

*YES
Le module existant est remplacé en le plaçant dans la bibliothèque QRPLOBJ.

Remarques :

  1. Si un module 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 module CL.
  2. Si vous indiquez *YES à ce paramètre, la valeur du paramètre AUT (droits) est ignorée. Le module existant est utilisé comme source des droits. Utilisez la commande GRTOBJAUT (Accorder des droits sur un objet) ou RVKOBJAUT (Révoquer les droits sur un objet) pour modifier les droits sur ce module.
*NO
Le module existant n'est pas remplacé. Lorsqu'un module portant le même nom existe dans la bibliothèque indiquée, un message s'affiche et la compilation s'arrête.

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 module 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 module CL.
*JOBRUN
La séquence de tri utilisée est celle associée au travail lors de l'exécution du module 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 module 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 qui est associé au travail lors de l'exécution du module CL.
*JOB
L'ID langue utilisé est celui qui est associé au travail lors de la création du module CL.
ID-langue
Indiquez l'identificateur de langue qui sera utilisé par le travail.

Optimisation (OPTIMIZE)

Indique le niveau d'optimisation du code de programme généré. Vous ne pouvez pas optimiser un programme en CL ILE. A des fins de compatibilité, le système admet des valeurs autres que *NONE. Cependant, aucune optimisation ne peut être effectuée. Vous ne devez pas utiliser des modules et programmes en CL ILE avec des fonctions système nécessitant un niveau d'optimisation supérieur à *NONE.

*NONE
Le code généré n'est pas optimisé. Ce niveau d'optimisation est celui pour lequel la traduction est la plus rapide. Il permet l'affichage et la modification des variables lors du débogage.
*BASIC
Aucune optimisation n'est effectuée. Le message CPD0861 est inséré dans la liste de compilation et envoyé à l'historique du travail.
*FULL
Aucune optimisation n'est effectuée. Le message CPD0861 est inséré dans la liste de compilation et envoyé à l'historique du travail.
10
Aucune optimisation n'est effectuée. Le message CPD0861 est inséré dans la liste de compilation et envoyé à l'historique du travail.
20
Aucune optimisation n'est effectuée. Le message CPD0861 est inséré dans la liste de compilation et envoyé à l'historique du travail.
30
Aucune optimisation n'est effectuée. Le message CPD0861 est inséré dans la liste de compilation et envoyé à l'historique du travail.
40
Aucune optimisation n'est effectuée. Le message CPD0861 est inséré dans la liste de compilation et envoyé à l'historique du travail.

Vue de débogage (DBGVIEW)

Indique le niveau de débogage disponible pour le module compilé, ainsi que les vues pouvant être utilisées pour le débogage du source.

*STMT
Le module compilé peut être débogué à l'aide de numéros d'instructions de module et d'identificateurs symboliques.
*NONE
Aucune des options de débogage pour le module compilé n'est disponible.
*ALL
Toutes les options de débogage pour le module compilé peuvent être utilisées. Les vues du source et de liste de débogage sont générées.
*SOURCE
La vue source pour le débogage du module compilé est générée.
*LIST
La vue liste pour le débogage du module compilé est générée.

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.

*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.

Collecte performance possible (ENBPFRCOL)

Ce paramètre est obsolète.

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.

Répertoire d'inclusion (INCDIR)

Indique un ou plusieurs répertoires à ajouter au chemin de recherche utilisé par le compilateur pour rechercher des fichiers d'inclusion. Le compilateur effectue ses recherches dans les répertoires indiqués ici si les fichiers d'inclusion du programme source ne peuvent pas être résolus.

*NONE
La recherche de fichiers d'inclusion ne porte sur aucun répertoire. Par défaut, la recherche porte sur le répertoire source.
'répertoire'
Indiquez jusqu'à 32 répertoires dans lesquels rechercher des fichiers d'inclusion. En plus des répertoires indiqués, la recherche des fichiers d'inclusion porte également sur le répertoire source.

Exemples

Exemple 1 : Création d'un module CL

CRTCLMOD   PAYROLL  TEXT('Programme Payroll')

Cette commande appelle un compilateur ILE CL pour créer un module (*MODULE) 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.

Exemple 2 : Création d'un module CL à partir d'un fichier source STREAM

CRTCLMOD   PAYROLL  SRCSTMF('/home/todd/payroll.cl')

Cette commande appelle un compilateur ILE CL pour créer un module (*MODULE) nommé PAYROLL. Le source du programme CL ou de la procédure CL ILE se trouve dans le fichier source STREAM 'payroll.cl' dans le répertoire IFS '/home/todd'.

Exemple 3 : Création d'un module CL avec un source d'inclusion IFS

Prenons l'exemple d'un source CL 'payroll.cl' contenant l'instruction suivante :

INCLUDE SRCSTMF('pay_data.cl')

Le fichier source inclus 'pay_data.cl' est un fichier STREAM dans le répertoire IFS '/include_directory'. Vous pouvez spécifier ce répertoire d'inclusion au paramètre INCDIR dans la commande de compilation.

CRTCLMOD   PAYROLL  SRCSTMF('/home/todd/payroll.cl')
           INCDIR('/include_directory')

Messages d'erreur

Messages *ESCAPE

CPF0C33
Edition cible &1 non admise.
CPF0C35
&1 n'est pas une édition cible supportée.
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.
CPF0821
Module &1 non créé.
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.

© Copyright IBM Corp. Texte d'aide reproduit à des fins de formation.