CRTCBLPGM
Créer un programme COBOL
En bref
Cette commande permet de compiler un programme source COBOL en objet de programme.
CRTCBLPGM se lit CRT
(Créer) + CBLPGM.
Sur IBM i, le nom d'une commande associe presque toujours un verbe et un objet.
Syntaxe minimale
CRTCBLPGM
Paramètres
-
PGMProgramme -
SRCFILEFichier source -
SRCMBRMembre source -
GENLVLNiv gravité pour génération -
TEXTTexte 'descriptif' -
OPTIONOptions pour liste source -
GENOPTOptions de génération -
CVTOPTOptions de conversion -
SRTSEQSéquence de tri -
LANGIDIdentificateur de langue -
MSGLMTLimite de messages -
PRTFILEFichier d'impression -
FLAGSTDOptions de marquage FIPS -
SAAFLAGMarquage SAA -
EXTDSPOPTOptions d'affichage étendu -
FLAGNiveau gravité pour marquage -
REPLACERemplacement du programme -
TGTRLSEdition cible -
USRPRFProfil utilisateur -
AUTDroits -
DUMPCliché pour débogage -
ITDUMPCliché texte intermédiaire
Astuce : dans une session 5250, tapez CRTCBLPGM 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 QDEVTOOLS)
Où s'exécute : Tous les environnements (*ALL)
Compatible multitâche : Non
Cette commande permet de compiler un programme source COBOL en objet de programme. Cette commande peut-être utilisée aussi bien en mode interactif qu'en traitement par lots; elle peut également être lancée à partir d'un programme CL.
Les noms d'objet indiqués dans la commande CRTCBLPGM ne doivent comporter que des caractères alphanumériques, l'initiale étant obligatoirement une lettre. La longueur de ces noms ne doit pas dépasser 10 caractères.
Paramètres
| Mot-clé | Description | Valeurs possibles | Remarques |
|---|---|---|---|
| PGM | Programme | Nom d'objet qualifié | Facultatif, positionnel 1 |
| Qualificatif 1: Programme | Nom, *PGMID | ||
| Qualificatif 2: Bibliothèque | Nom, *CURLIB | ||
| SRCFILE | Fichier source | Nom d'objet qualifié | Facultatif, positionnel 2 |
| Qualificatif 1: Fichier source | Nom, QLBLSRC | ||
| Qualificatif 2: Bibliothèque | Nom, *LIBL, *CURLIB | ||
| SRCMBR | Membre source | Nom, *PGM | Facultatif, positionnel 3 |
| GENLVL | Niv gravité pour génération | 0-29, 29 | Facultatif |
| TEXT | Texte 'descriptif' | Valeur caractère, *SRCMBRTXT, *BLANK | Facultatif |
| OPTION | Options pour liste source | Values (jusqu'à 50 répétitions): *SOURCE, *NOSOURCE, *SRC, *NOSRC, *NOXREF, *XREF, *GEN, *NOGEN, *NOSEQUENCE, *SEQUENCE, *NOVBSUM, *VBSUM, *NONUMBER, *NUMBER, *LINENUMBER, *NOMAP, *MAP, *NOOPTIONS, *OPTIONS, *QUOTE, *APOST, *SECLVL, *NOSECLVL, *PRTCORR, *NOPRTCORR, *NOSRCDBG, *SRCDBG, *NOLSTDBG, *LSTDBG, *PRINT, *NOPRINT | Facultatif, positionnel 4 |
| GENOPT | Options de génération | Values (jusqu'à 50 répétitions): *NOLIST, *LIST, *NOXREF, *XREF, *NOPATCH, *PATCH, *NODUMP, *DUMP, *NOATR, *ATR, *RANGE, *NORANGE, *UNREF, *NOUNREF, *NOOPTIMIZE, *OPTIMIZE, *NODDSFILLER, *DDSFILLER, *NOSYNC, *SYNC, *NOCRTF, *CRTF, *NODUPKEYCHK, *DUPKEYCHK, *STDERR, *NOSTDERR, *NOEXTACCDSP, *EXTACCDSP, *NOINZDLT, *INZDLT, *NOBLK, *BLK, *STDINZ, *NOSTDINZ, *FS21DUPKY, *NOFS21DUPKY | Facultatif, positionnel 5 |
| CVTOPT | Options de conversion | Values (jusqu'à 50 répétitions): *NOVARCHAR, *VARCHAR, *NODATETIME, *DATETIME, *NOGRAPHIC, *GRAPHIC | 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: Bibliothèque | Nom, *LIBL, *CURLIB | ||
| LANGID | Identificateur de langue | Valeur caractère, *JOBRUN, *JOB | Facultatif |
| MSGLMT | Limite de messages | Liste d'éléments | Facultatif |
| Élément 1: Nombre de messages | 1-9999, *NOMAX | ||
| Élément 2: Niveau de gravité maximal | 0-29, 29 | ||
| PRTFILE | Fichier d'impression | Nom d'objet qualifié | Facultatif |
| Qualificatif 1: Fichier d'impression | Nom, QSYSPRT | ||
| Qualificatif 2: Bibliothèque | Nom, *LIBL, *CURLIB | ||
| FLAGSTD | Options de marquage FIPS | Values (jusqu'à 24 répétitions): *NOFIPS, *MINIMUM, *INTERMEDIATE, *HIGH, *NOSEG, *SEG1, *SEG2, *NODEB, *DEB1, *DEB2, *NOOBSOLETE, *OBSOLETE | Facultatif |
| SAAFLAG | Marquage SAA | *NOFLAG, *FLAG | Facultatif |
| EXTDSPOPT | Options d'affichage étendu | Values (jusqu'à 3 répétitions): *DFRWRT, *NODFRWRT, *UNDSPCHR, *NOUNDSPCHR, *ACCUPDALL, *ACCUPDNE | Facultatif |
| FLAG | Niveau gravité pour marquage | 0-99, 0 | Facultatif |
| REPLACE | Remplacement du programme | *NO, *YES | Facultatif |
| TGTRLS | Edition cible | Nom simple, *CURRENT, *PRV | Facultatif |
| USRPRF | Profil utilisateur | *USER, *OWNER | Facultatif |
| AUT | Droits | Nom, *LIBCRTAUT, *ALL, *CHANGE, *USE, *EXCLUDE | Facultatif |
| DUMP | Cliché pour débogage | Liste d'éléments | Facultatif |
| Élément 1: | 1-65535, * | ||
| Élément 2: | 1-65535 | ||
| ITDUMP | Cliché texte intermédiaire | 0-31, 0 | Facultatif |
Programme (PGM)
Indique le nom du programme exécutable COBOL que vous créez et celui de la bibliothèque où se trouve ce programme. Les valeurs possibles sont les suivantes :
- *PGMID
- Le programme exécutable prend le nom indiqué dans le paragraphe PROGRAM-ID du programme source COBOL.
- nom-programme
- Entrez un nom pour identifier le programme COBOL compilé. Si vous indiquez un nom de programme pour ce paramètre et que vous exécutez la compilation par lots, le premier programme traité portera ce nom. Tous les autres programmes utilisent le nom qui figure dans le paragraphe PROGRAM-ID du programme source.
Pour le nom de bibliothèque, les valeurs possibles sont les suivantes :
- *CURLIB
- Si vous n'indiquez pas de nom de bibliothèque, la bibliothèque en cours est utilisée. Si vous n'avez pas défini de bibliothèque en cours, QGPL est utilisée par défaut.
- nom-bibliothèque
- Entrez le nom de la bibliothèque qui contiendra le programme exécutable créé.
Fichier source (SRCFILE)
Indique le nom du fichier qui contient le source COBOL à compiler. Les valeurs possibles sont les suivantes :
- QLBLSRC
- Indique que le source COBOL à compiler se trouve dans le fichier source QLBLSRC fourni par IBM.
- nom-fichier-source
- Entrez le nom du fichier qui contient le source COBOL à compiler. La longueur d'enregistrement de ce fichier doit être de 92.
Pour le nom de bibliothèque, les valeurs possibles sont les suivantes :
- *LIBL
- Si vous n'indiquez pas de nom de bibliothèque, le système recherche dans la liste des bibliothèques celle qui contient le fichier source.
- *CURLIB
- La bibliothèque en cours est utilisée. Si vous n'avez pas défini de bibliothèque en cours, QGPL est utilisée par défaut.
- nom-bibliothèque
- Entrez le nom de la bibliothèque où se trouve le fichier source.
Membre source (SRCMBR)
Indique le nom du membre qui contient le source COBOL à compiler. Vous ne pouvez utiliser ce paramètre que si le fichier source indiqué au paramètre SRCFILE est un fichier base de données. Les valeurs possibles sont les suivantes :
- *PGM
- Si vous indiquez un nom de programme pour le paramètre PGM, le compilateur recherche le programme source dans un membre ayant le même nom que ce programme et crée un programme exécutable qui prend le nom du programme et du membre.
Si vous n'avez pas indiqué de nom de programme pour le paramètre PGM, le compilateur recherche le programme source dans le premier membre du fichier source base de données et crée un programme exécutable utilisant le nom qui figure dans le paragraphe PROGRAM-ID du programme source.
- nom-membre-fichier-source
- Entrez le nom du membre qui contient le source COBOL.
Niv gravité pour génération (GENLVL)
Indique le niveau de gravité qui conditionne la création d'un programme exécutable. Il s'agit du niveau de gravité des messages générés lors de la compilation du programme. Si le niveau de gravité des messages d'erreur émis est supérieur à la valeur que vous avez indiquée, le programme exécutable n'est pas créé. Par exemple, si vous avez indiqué 19 comme niveau maximal et si le niveau de gravité d'un message quel qu'il soit est égal ou supérieur à 20, le programme n'est pas créé.
Les valeurs possibles sont les suivantes :
- 29
- Si des erreurs dont le niveau de gravité est supérieur à 29 sont rencontrées, le programme exécutable n'est pas créé.
- niveau-gravité
- Entrez un nombre de un ou deux chiffres, compris entre 0 et 29. Si des erreurs d'un niveau de gravité supérieur à ce nombre sont rencontrées, le programme exécutable n'est pas créé.
Texte 'descriptif' (TEXT)
Texte décrivant brièvement le programme et sa fonction. Les valeurs possibles sont les suivantes :
- *SRCMBRTXT
- Le texte descriptif du programme est le même que celui entré pour le membre du fichier base de données où se trouve le source COBOL. Si le source provient d'un fichier d'unité ou d'un fichier en ligne, la valeur *SRCMBRTXT aura le même effet que *BLANK.
- *BLANK
- Pas de texte.
- texte
- Entrez un texte décrivant sommairement le programme et sa fonction. Ce texte ne doit pas dépasser 50 caractères et doit figurer entre apostrophes. Ces dernières ne font pas partie de la chaîne de 50 caractères.
Options pour liste source (OPTION)
Indique les options possibles lors de la compilation du source COBOL. Les valeurs possibles sont les suivantes :
- *SOURCE ou *SRC
- Le compilateur fournit une liste source (le code source COBOL et tous les messages d'erreur survenus lors de la compilation).
- *NOSOURCE ou *NOSRC
- Le compilateur ne fournit pas de liste source. Si vous n'avez pas besoin de liste source, utilisez plutôt cette option car la compilation prendra moins de temps.
- *NOXREF
- Le compilateur ne fournit pas de liste de références croisées pour le programme source.
- *XREF
- Le compilateur fournit une liste de références croisées pour le programme source.
- *GEN
- Le compilateur crée un programme exécutable après compilation du programme source.
- *NOGEN
- Le compilateur ne crée pas de programme exécutable après compilation du programme source. Vous pouvez choisir cette option si vous ne voulez que des listes d'erreurs à ce moment-là.
- *NOSEQUENCE
- Les numéros de référence ne font pas l'objet d'une vérification d'erreurs de séquence.
- *SEQUENCE
- La vérification des numéros de référence permet de rechercher les erreurs de séquence. Il n'y a pas d'erreurs de séquence si l'option *LINENUMBER est indiquée.
- *NOVBSUM
- Les décomptes d'utilisation des instructions ne sont pas imprimés.
- *VBSUM
- Les décomptes d'utilisation des instructions sont imprimés.
- *NONUMBER
- Les numéros de séquence du fichier source servent de numéros de référence.
- *NUMBER
- Les numéros de séquence indiqués par l'utilisateur (colonnes 1 à 6) servent de numéros de référence.
- *LINENUMBER
- Les numéros de séquence créés par le compilateur servent de numéros de référence. Cette option permet de combiner le code source du programme et le code source résultant des instructions COPY afin d'obtenir une séquence unique dont les numéros se suivent. Utilisez cette option si vous avez choisi le marquage FIPS (Federal Information Processing Standards) ou le marquage SAA*.
- *NOMAP
- Le compilateur n'imprime pas la liste des zones de la DATA DIVISION.
- *MAP
- Le compilateur imprime la liste des zones de la DATA DIVISION.
- *NOOPTIONS
- Les options en vigueur lors de la compilation ne sont pas imprimées.
- *OPTIONS
- Les options en vigueur lors de la compilation sont imprimées.
- *QUOTE
- Indique que la délimitation des littéraux non numériques et booléens s'effectue par des guillemets (") et que la valeur de la constante figurative QUOTE a la valeur EBCDIC d'un guillemet.
- *APOST
- Indique que la délimitation des littéraux non numériques et booléens s'effectue par des apostrophes (') et que la valeur de la constante figurative QUOTE a la valeur EBCDIC d'une apostrophe.
- *NOSECLVL
- Le texte de deuxième niveau des messages n'est pas imprimé lors de la compilation.
- *SECLVL
- Le texte de deuxième niveau des messages est imprimé lors de la compilation.
- *PRTCORR
- Le compilateur ajoute des lignes de commentaires à la liste de compilation, indiquant les éléments qui ont été inclus après utilisation de l'expression CORRESPONDING.
- *NOPRTCORR
- Le compilateur n'ajoute aucune ligne de commentaire à la liste de compilation après utilisation de l'expression CORRESPONDING.
- *NOSRCDBG
- Cette option vous permet de déterminer le type d'informations que votre poste de travail programmable affichera lors de la compilation des programmes COBOL à l'aide des outils client.
Le compilateur ne fournit pas d'informations sur le débogage au niveau du source. Si l'option *NOLSTDBG est utilisée par ailleurs, le compilateur ne fournit pas non plus d'informations sur les erreurs au niveau du source.
- *SRCDBG
- Cette option vous permet de déterminer le type d'informations que votre poste de travail programmable affichera lors de la compilation des programmes COBOL à l'aide des outils client.
Le compilateur fournit des informations sur les erreurs et sur le débogage au niveau du source.
Vous ne pouvez pas utiliser les options *SRCDBG et *LSTDBG simultanément. Choisissez l'une ou l'autre.
- *NOLSTDBG
- Cette option vous permet de déterminer le type d'informations que votre poste de travail programmable affichera lors de la compilation des programmes COBOL à l'aide des outils client.
Le compilateur ne fournit pas de vue de la liste et ne génère pas d'informations sur le débogage à ce niveau. Si vous utilisez également l'option *NOSRCDBG, le compilateur ne fournit pas non plus d'informations sur les erreurs au niveau du source.
- *LSTDBG
- Cette option vous permet de déterminer le type d'informations que votre poste de travail programmable affichera lors de la compilation des programmes COBOL à l'aide des outils client.
Le compilateur fournit des informations sur les erreurs au niveau du source ainsi que des informations sur le débogage au niveau de la liste; il produit également une vue de la liste.
Vous ne pouvez pas utiliser les options *SRCDBG et *LSTDBG simultanément. Choisissez l'une ou l'autre.
- Le compilateur génère une liste spoule.
- *NOPRINT
- Le compilateur ne génère pas de liste spoule.
Options de génération (GENOPT)
Indique les options à utiliser lors de la création du programme exécutable. Les listes pourront être utiles en cas d'incident COBOL. Les valeurs possibles sont les suivantes :
- *NOLIST
- Ni l'IRP (représentation intermédiaire du programme), ni le code hexadécimal associé, ni les messages d'erreur ne sont listés.
- *LIST
- L'IRP, le code hexadécimal associé et les messages d'erreur sont listés.
- *NOXREF
- Ne génère pas de liste de références croisées pour les objets définis dans l'IRP.
- *XREF
- Génère une liste de références croisées pour l'ensemble des objets définis dans l'IRP.
- *NOPATCH
- Ne réserve pas d'espace pour une zone de modification dans le programme compilé.
- *PATCH
- Réserve un espace pour une zone de modification dans le programme compilé. Cette zone peut servir au débogage.
- *NODUMP
- Ne liste pas le programme compilé.
- *DUMP
- Liste le programme compilé.
- *NOATR
- Ne liste pas les attributs du source IRP.
- *ATR
- Liste les attributs du source IRP.
- *RANGE
- Au moment de l'exécution, le système vérifie les limites d'indices, mais non les limites d'index. Il vérifie également les modifications par référence et les créations de sous-chaînes générées par le compilateur.
- *NORANGE
- Ne vérifie pas les limites au moment de l'exécution.
- *UNREF
- Fait figurer les données non référencées dans le programme compilé.
- *NOUNREF
- Ne fait pas figurer les données non référencées dans le programme compilé. Les postes ODT (table de définition d'objets) utilisés sont ainsi moins nombreux, ce qui permet la compilation d'un programme plus important. Si vous indiquez l'option *XREF, les données non référencées continuent d'apparaître dans la liste de références croisées.
- *NOOPTIMIZE
- Le compilateur n'applique au programme que les optimisations standard.
- *OPTIMIZE
- Le programme exécutable créé peut fonctionner plus efficacement, avec réduction éventuelle des besoins en mémoire. Toutefois, la compilation risque d'être sensiblement plus longue.
- *NODDSFILLER
- Si l'instruction DDS COPY ne trouve aucune zone de concordance, aucune description de zone n'est créée.
- *DDSFILLER
- Si l'instruction DDS COPY ne trouve aucune zone de concordance, une description de zone FILLER comportant un seul caractère, "07 FILLER PIC X", est toujours créée.
- *NOSYNC
- La syntaxe de la clause SYNCHRONIZED est vérifiée.
- *SYNC
- La clause SYNCHRONIZED provoque l'alignement d'une donnée élémentaire sur une frontière naturelle dans la mémoire.
- *NOCRTF
- Les fichiers indisponibles lors de l'exécution de l'instruction OPEN ne sont pas créés dynamiquement.
- *CRTF
- Les fichiers indisponibles lors de l'exécution de l'instruction OPEN sont créés dynamiquement.
- *NODUPKEYCHK
- Ne vérifie pas les clés dupliquées pour les fichiers INDEXED.
- *DUPKEYCHK
- Vérifie les clés dupliquées pour les fichiers INDEXED.
- *STDERR
- La méthode standard de traitement des erreurs est utilisée. Consultez le chapitre relatif au traitement des erreurs dans le manuel "COBOL/400 User's Guide" pour de plus amples informations.
- *NOSTDERR
- La méthode de traitement des erreurs propre à la version 1, éditions 1 et 2 est utilisée. Consultez le chapitre relatif au traitement des erreurs dans le manuel "COBOL/400 User's Guide" pour de plus amples informations.
- *NOEXTACCDSP
- Le compilateur n'accepte pas les instructions ACCEPT et DISPLAY étendues.
- *EXTACCDSP
- Le compilateur accepte les instructions ACCEPT et DISPLAY étendues.
- *NOINZDLT
- S'ils ont été ouverts en sortie (OUTPUT), les fichiers relatifs à accès séquentiel ne sont pas initialisés avec les enregistrements supprimés lors de l'opération CLOSE. La frontière d'enregistrement est donc définie en fonction du nombre d'enregistrements écrits durant l'exécution de l'instruction OPEN OUTPUT et détermine la limite d'accès admise pour les opérations OPEN suivantes.
- *INZDLT
- S'ils ont été ouverts en sortie (OUTPUT), les fichiers relatifs à accès séquentiel sont initialisés avec les enregistrements supprimés lors de l'opération CLOSE. Les enregistrements actifs de ces fichiers ne sont pas affectés. La frontière d'enregistrement détermine donc la taille du fichier pour les opérations OPEN suivantes.
- *NOBLK
- Le compilateur permet le groupage uniquement pour les fichiers à accès SEQUENTIAL et sans instruction START.
Si vous indiquez la clause BLOCK CONTAINS, celle-ci est ignorée, sauf pour les fichiers bande.
- *BLK
- Si la clause BLOCK CONTAINS est précisée, le compilateur permet le groupage pour les fichiers à accès DYNAMIC et SEQUENTIAL avec une instruction START, mais pas pour les fichiers RELATIVE ouverts en sortie.
La clause BLOCK CONTAINS contrôle le nombre d'enregistrements à grouper.
Si aucune clause BLOCK CONTAINS n'est indiquée, le compilateur permet le groupage uniquement pour les fichiers à accès SEQUENTIAL et sans instruction START. Le système d'exploitation détermine le nombre d'enregistrements à grouper.
- *STDINZ
- Le compilateur attribue aux données les valeurs système par défaut, à condition que ces données ne soient pas soumises à une clause VALUE.
- *NOSTDINZ
- Le compilateur n'attribue pas les valeurs système par défaut aux données non soumises à une clause VALUE.
- *FS21DUPKY
- Lors du traitement d'un fichier indexé avec des clés dupliquées en mode d'accès dynamique ou aléatoire, le compilateur signale ce fichier comme étant à l'état 21, si la valeur de la clé est modifiée entre l'instruction READ obligatoire et une instruction REWRITE ou DELETE lui faisant suite.
- *NOFS21DUPKY
- Lors du traitement d'un fichier indexé avec des clés dupliquées en mode d'accès dynamique ou aléatoire, le compilateur ne signale pas ce fichier comme étant à l'état 21. Une instruction REWRITE peut modifier la clé d'un enregistrement.
Options de conversion (CVTOPT)
Indique la façon dont le compilateur gère les zones SAA de type date/heure/horodatage et alphanumérique de longueur variable qui sont transmises vers votre programme depuis des fichiers à description externe à l'aide de COPY DDS. Les valeurs possibles sont les suivantes :
- *NOVARCHAR
- Les zones de longueur variable sont ignorées et sont déclarées en tant que zones FILLER.
- *VARCHAR
- Les zones de longueur variable sont déclarées comme appartenant à des groupes de longueur fixe et sont accessibles au programme.
- *NODATETIME
- Les zones de type date, heure et horodatage sont ignorées et sont déclarées en tant que zones FILLER.
- *DATETIME
- Les zones de type date, heure et horodatage sont déclarées en tant que zones alphanumériques de longueur fixe et sont accessibles au programme.
- *NOGRAPHIC
- Les zones de type graphique sont ignorées et sont déclarées en tant que zones FILLER.
- *GRAPHIC
- Les zones de type graphique sont déclarées en tant que zones alphanumériques de longueur fixe et sont accessibles au programme.
Considérations DBCS : non applicables.
Séquence de tri (SRTSEQ)
Indique la séquence de tri utilisée lorsqu'un nom d'alphabet de la clause ALPHABET est associé au mot clé NLSSORT. Le paramètre SRTSEQ est utilisé avec le paramètre LANGID pour déterminer quelle table de séquence de tri définie par l'utilisateur ou définie par le système sera utilisée par le programme. Les valeurs possibles sont les suivantes :
- *HEX
- Aucune table de séquence de tri ne sera utilisée et les valeurs hexadécimales des caractères serviront pour déterminer la séquence de tri.
- *JOB
- La séquence de tri du programme sera résolue et associée au programme lors de la compilation. La table de séquence de tri doit exister dans le système.
- *JOBRUN
- La séquence de tri du programme sera résolue et associée au programme lors de l'exécution. Lors de la compilation, le compilateur intégrera dans le programme la séquence de tri du travail de compilation. Lors de l'exécution, cette séquence de tri sera remplacée par celle associée au travail exécutant le programme.
- *LANGIDUNQ
- Indique que la table de séquence de tri en cours d'utilisation doit contenir un poids unique pour chaque caractère de la page de codes. La table de séquence de tri utilisée sera la table de tri à poids unique associée à la langue indiquée au paramètre LANGID.
- *LANGIDSHR
- Indique que la table de séquence de tri en cours d'utilisation peut contenir un poids identique pour plusieurs caractères de la page de codes. La table de séquence de tri utilisée sera la table à poids partagée associée à la langue indiquée au paramètre LANGID.
- nom-table
- Indiquez le nom de la table de séquence de tri à utiliser. L'objet table (*TBL) contient les poids de tous les caractères d'une page de codes donnée. Un poids est associé au caractère défini au point de code. Lors de l'utilisation d'une table de séquence de tri, la bibliothèque dans laquelle réside l'objet doit être indiquée. Les valeurs possibles sont les suivantes :
- *LIBL
- La bibliothèque contenant le fichier source est recherchée dans la liste des bibliothèques par le système.
- *CURLIB
- Le système explore la bibliothèque en cours. Si vous n'avez pas défini de bibliothèque en cours, QGPL est utilisée par défaut.
- nom-bibliothèque
- Indiquez le nom de la bibliothèque contenant la table de séquence de tri.
Remarque :Les options d'instruction PROCESS admises pour SRTSEQ sont SRTSEQ(HEX), SRTSEQ(JOB), SRTSEQ(JOBRUN), SRTSEQ(LANGIDUNQ), SRTSEQ(LANGIDSHR), SRTSEQ("nom-table"), SRTSEQ("nom-bibliothèque/nom-table"), SRTSEQ("LIBL/nom-table") et SRTSEQ("CURLIB/nom-table").
Identificateur de langue (LANGID)
Indique l'identificateur de langue utilisé avec la séquence de tri. Le paramètre LANGID n'est utilisé que lorsque SRTSEQ a pour valeur *LANGIDUNQ ou *LANGIDSHR. Les valeurs possibles sont les suivantes :
- *JOBRUN
- L'identificateur de langue du programme sera résolu lors de l'exécution. L'identificateur de langue du travail est utilisé pour l'exécution du programme compilé. Cette valeur permet de compiler le programme une seule fois et de l'utiliser avec différents identificateurs de langue lors de l'exécution.
- *JOB
- L'identificateur de langue du programme sera résolu lors de la compilation.
- identificateur-langue
- Entrez un identificateur de langue admis composé de 3 caractères :
Remarque :Les options d'instruction PROCESS admises pour LANGID sont LANGID(JOBRUN), LANGID(JOB) et LANGID("identificateur-langue").
Limite de messages (MSGLMT)
Permet de contrôler la compilation en indiquant après combien de messages d'erreur d'un niveau de gravité donné la compilation devra être interrompue.
Par exemple, vous pouvez souhaiter l'arrêt de la compilation après détection de plus de trois erreurs d'un niveau de gravité supérieur ou égal à 20. Dans ce cas, vous indiquerez 3 pour le nombre maximal de messages d'erreur et 20 pour le niveau de gravité maximal. Si trois erreurs d'un niveau de gravité supérieur ou égal à 20 sont détectées, la compilation continue, mais dès la quatrième erreur de ce niveau, la compilation s'arrête. Tant que ce niveau n'est pas atteint ou dépassé, la compilation continue, quel que soit le nombre d'erreurs rencontrées.
- limite-message
- Les valeurs possibles pour le nombre maximal de messages d'erreur sont les suivantes :
- *NOMAX
- La compilation s'effectue intégralement quel que soit le nombre d'erreurs rencontrées.
- 1-9999
- La compilation s'arrête dès dépassement du nombre d'erreurs indiqué, compte tenu du niveau de gravité précisé par ailleurs. Tant que ce niveau n'est pas atteint ou dépassé, la compilation continue, quel que soit le nombre d'erreurs rencontrées.
- gravité-message
- Les valeurs possibles pour le niveau de gravité maximal des erreurs sont les suivantes :
- 29
- La compilation s'arrête si le nombre d'erreurs d'un niveau de gravité égal ou supérieur à 29 dépasse le nombre maximal de messages d'erreur que vous avez indiqué.
- niveau-gravité-maximal
- Entrez un nombre de un ou deux chiffres, compris entre 0 et 29. La compilation s'arrête si le nombre d'erreurs d'un niveau de gravité supérieur ou égal au maximum toléré dépasse le nombre maximal de messages d'erreurs que vous avez indiqué.
Fichier d'impression (PRTFILE)
Indique le nom du fichier vers lequel la liste de compilation est adressée, ainsi que la bibliothèque où se trouve le fichier. Ce fichier doit avoir une longueur d'enregistrement minimale de 132. Si un fichier de longueur d'enregistrement moindre est indiqué, les informations sont perdues.
Les valeurs possibles sont les suivantes :
- QSYSPRT
- Si vous n'indiquez aucun nom de fichier, la liste de compilation est adressée au fichier fourni par IBM, QSYSPRT.
- nom-fichier
- Entrez le nom du fichier auquel la liste de compilation est adressée.
Pour le nom de bibliothèque, les valeurs possibles sont les suivantes :
- *LIBL
- Le système recherche, dans la liste des bibliothèques, celle qui contient le fichier.
- *CURLIB
- La bibliothèque en cours est utilisée. Si vous n'avez pas défini de bibliothèque en cours, QGPL est utilisée par défaut.
- nom-bibliothèque
- Entrez le nom de la bibliothèque où se trouve le fichier.
Options de marquage FIPS (FLAGSTD)
Indique les options permettant le marquage FIPS. Les valeurs possibles sont les suivantes :
- *NOFIPS
- Pas de marquage FIPS pour le programme source.
- *MINIMUM
- Marquage FIPS à partir du niveau minimal.
- *INTERMEDIATE
- Marquage FIPS à partir du niveau intermédiaire.
- *HIGH
- Marquage FIPS pour le niveau le plus élevé.
- *NOSEG
- Pas de marquage FIPS pour le module facultatif SEGMENTATION.
- *SEG1
- Marquage FIPS pour le module facultatif SEGMENTATION niveaux 1 et plus.
- *SEG2
- Marquage FIPS pour le module facultatif SEGMENTATION niveau 2.
- *NODEB
- Pas de marquage FIPS pour le module facultatif DEBUG.
- *DEB1
- Marquage FIPS pour le module DEBUG niveaux 1 et plus.
- *DEB2
- Marquage FIPS pour le module facultatif DEBUG niveau 2.
- *NOOBSOLETE
- Pas de marquage pour les éléments obsolètes du langage.
- *OBSOLETE
- Marquage pour les éléments obsolètes du langage.
Marquage SAA (SAAFLAG)
Indique si les fonctions COBOL/400* qui ne sont pas acceptées par COBOL SAA doivent être marquées ou non. Les valeurs possibles sont les suivantes :
- *NOFLAG
- Le marquage COBOL SAA n'est pas exécuté.
- *FLAG
- Le marquage COBOL SAA est exécuté.
Options d'affichage étendu (EXTDSPOPT)
Indique les options à utiliser avec les instructions ACCEPT et DISPLAY étendues pour les E/S poste de travail. Les valeurs possibles sont les suivantes :
- *DFRWRT
- Les instructions DISPLAY étendues sont conservées dans une mémoire tampon jusqu'à identification d'une instruction ACCEPT étendue ou jusqu'à saturation de la mémoire tampon.
Si aucune instruction ACCEPT étendue n'est trouvée avant la saturation de la mémoire tampon, le contenu de celle-ci est affiché à l'écran. Dans le cas contraire, le contenu en cours de la mémoire tampon est affiché à l'écran.
- *NODFRWRT
- Chaque instruction DISPLAY étendue est exécutée dès sa réception.
- *UNDSPCHR
- Les caractères affichables et non affichables sont pris en compte par les instructions ACCEPT et DISPLAY étendues.
- *NOUNDSPCHR
- Seuls les caractères affichables sont pris en compte par les instructions ACCEPT et DISPLAY étendues.
Bien que cette option soit propre aux claviers-écrans connectés aux contrôleurs éloignés 3174 et 3274, vous pouvez également l'utiliser pour les postes de travail locaux. Si tel est le cas, vous devez veiller à ce que vos données contiennent des caractères affichables. La présence de valeurs hexadécimales inférieures à 20 peut provoquer des résultats imprévisibles, depuis la création de formats d'écran inattendus jusqu'à la génération d'erreurs graves.
- *ACCUPDALL
- Tous les types de données sont pré-affichés dans les instructions ACCEPT étendues, que l'expression UPDATE soit présente ou non.
- *ACCUPDNE
- Seules les données éditées de type numérique sont pré-affichées dans les instructions ACCEPT étendues ne contenant pas l'expression UPDATE.
Niveau gravité pour marquage (FLAG)
Indique le niveau de gravité minimal des messages à imprimer. Les valeurs possibles sont les suivantes :
- 0
- Tous les messages sont imprimés.
- niveau-gravité
- Entrez un nombre de un ou deux chiffres indiquant le niveau de gravité minimal des messages à imprimer. Les messages sont imprimés quand leur niveau de gravité est égal ou supérieur à la valeur indiquée.
Remplacement du programme (REPLACE)
Indique si un nouveau programme exécutable doit être créé lorsqu'il en existe déjà un portant le même nom dans la même bibliothèque. Les valeurs possibles sont les suivantes :
- *YES
- Un nouveau programme exécutable est créé. Si la bibliothèque indiquée contient déjà un programme de même nom, celui-ci est transféré dans la bibliothèque QRPLOBJ.
- *NO
- S'il existe déjà un programme exécutable de même nom dans la bibliothèque indiquée, la création du nouveau programme n'a pas lieu.
Edition cible (TGTRLS)
Indique le niveau d'édition du système d'exploitation sur lequel vous souhaitez utiliser l'objet en cours de création.
Vous pouvez indiquer un niveau d'édition précis au format VxRxMx, où Vx est la version, Rx l'édition et Mx le niveau de modification. Par exemple, V3R1M0 correspond à la version 3, édition 1, niveau de modification 0.
Remarque :Pour utiliser l'objet sur le système cible, vous devez le sauvegarder au niveau d'édition cible indiqué dans la commande de création avant de le restaurer sur le système cible.
Par exemple, si votre système utilise la V3R1M0 et que vous voulez créer un objet programme à distribuer sur un système disposant de la V2R3M0, vous devez créer le programme en indiquant TGTRLS(V2R3M0) ou TGTRLS(*PRV), le sauvegarder en indiquant TGTRLS(V2R3M0) ou TGTRLS(*PRV), puis le restaurer sur un système utilisant la V2R3M0 ou la V3R1M0.
Remarque :Le programme peut être restauré sur un système d'exploitation utilisant une édition antérieure à celle indiquée dans la commande de création. Utilisez DSPPGM pour déterminer l'édition la plus ancienne pouvant être exécutée par le programme.
- *CURRENT
- L'objet doit être utilisé sur l'édition de votre système d'exploitation qui est installée sur votre système. Par exemple, si c'est V3R1M0 qui est installée, *CURRENT signifie que vous voulez utiliser l'objet sur un système sur lequel est installée V3R1M0. Vous pouvez également utiliser l'objet sur un système d'exploitation où est installée une édition ultérieure.
- *PRV
- L'objet doit être utilisé sur l'édition précédente du système d'exploitation, au niveau de modification 0. Par exemple, si la V3R1M0 est installée sur votre système, l'option *PRV signifie que vous avez l'intention d'utiliser l'objet sur un système fonctionnant avec l'édition V2R3M0. Vous pouvez également utiliser l'objet sur un système d'exploitation où est installée une édition ultérieure.
- niveau-édition
- Indiquez l'édition en utilisant le format VxRxMx. L'objet peut être utilisé sur un système correspondant à l'édition indiquée ou à toute édition ultérieure.
Les valeurs admises dépendent de la version, de l'édition et du niveau de modification en cours. Ces valeurs changent à chaque nouvelle édition. Pour afficher la liste des valeurs admises, appuyez sur F4(INVITE), le curseur étant positionné sur le paramètre TGTRLS de la commande.
Profil utilisateur (USRPRF)
Indique le profil utilisateur qui exécutera le programme COBOL compilé. C'est soit le profil du propriétaire du programme, soit celui de son utilisateur qui est pris en compte pour exécuter ce programme et pour déterminer quels sont les objets qu'il peut utiliser (avec contrôle des droits du programme vis à vis de chaque objet).
Les valeurs possibles sont les suivantes :
- *USER
- Le programme est exécuté avec le profil de son utilisateur.
- *OWNER
- Le programme est exécuté avec les profils de son propriétaire ET de son utilisateur. Lors de l'exécution du programme, la recherche et l'accès aux objets s'effectuent avec l'ensemble des droits sur les objets des deux profils. Tout objet créé en cours de programme appartient à l'utilisateur de celui-ci.
Droits (AUT)
Indique les droits accordés aux utilisateurs qui n'ont pas de droits spécifiques sur le programme exécutable, qui ne figurent pas sur la liste d'autorisation ou qui n'appartiennent pas à un groupe ayant des droits spécifiques sur le programme. Après création du programme, vous pouvez utiliser les commandes GRTOBJAUT (Accorder droits sur un objet) ou RVKOBJAUT (Révoquer les droits sur un objet) pour modifier les droits détenus par tous les utilisateurs ou par des utilisateurs spécifiques.
Les valeurs possibles sont les suivantes :
- *LIBCRTAUT
- Les droits publics sur l'objet sont indiqués dans le mot clé CRTAUT de la bibliothèque cible (bibliothèque devant contenir cet objet). Cette valeur est déterminée lors de la création de l'objet. Si la valeur de CRTAUT est modifiée après création de l'objet, la nouvelle valeur NE s'applique PAS aux objets existants.
- *ALL
- Accorde les droits nécessaires pour effectuer toute opération sur le programme exécutable à l'exception des opérations réservées au propriétaire ou qui sont contrôlées par les droits de gestion de la liste d'autorisation. L'utilisateur peut contrôler l'existence du programme, lui attribuer un niveau de sécurité, le modifier et lui appliquer des fonctions de base, mais il ne peut pas transférer la propriété de ce programme.
- *CHANGE
- Accorde le droit sur toutes les données ainsi que les droits nécessaires pour effectuer toute opération sur le programme exécutable à l'exception des opérations réservées au propriétaire ou qui sont contrôlées par le droit sur les objets et par le droit de gestion de l'objet. L'utilisateur peut modifier le programme et lui appliquer des fonctions de base, telles que son lancement ou son débogage.
- *USE
- Accorde le droit d'opération sur l'objet et le droit de lecture, ainsi que les droits nécessaires pour effectuer des opérations de base sur le programme exécutable, telles que son lancement. L'utilisateur ne peut modifier l'objet.
Remarque :Un utilisateur doit avoir les droits *USE sur un programme pour obtenir un vidage formaté des variables du programme. Pour vider les variables, le programme doit également contenir des informations observables.
Si vous ne voulez pas que certains utilisateurs puissent vider les variables, donnez-leur uniquement les droits *OBJOPR et *EXECUTE sur le programme. Il pourront ainsi appeler le programme mais ne pourront pas vider ses variables.
Si vous ne voulez qu'aucun utilisateur puisse vider les variables, utilisez CHGPGM (Changer programme) pour effacer les informations observables du programme.
- *EXCLUDE
- L'utilisateur ne peut pas accéder au programme exécutable.
- nom-liste-autorisation
- Entrez le nom d'une liste indiquant les utilisateurs et les droits que vous souhaitez associer au programme exécutable, qui est ainsi protégé par cette liste d'autorisation; les droits publics pour ce programme prennent la valeur *AUTL. La liste d'autorisation doit exister dans le système lorsque la commande CRTCBLPGM (Créer un programme COBOL) est lancée.
Cliché pour débogage (DUMP)
Outil de débogage COBOL. (Destiné au personnel IBM chargé de la maintenance).
Cliché texte intermédiaire (ITDUMP)
Outil IBM de débogage permettant au compilateur de vider les données internes à certains moments au cours de la compilation. (Destiné au personnel IBM chargé de la maintenance).
Exemples
Exemple 1 : Compilation d'un programme source en objet programme
CRTCBLPGM PGM(MABIB/XMPLE1) SRCFILE(MABIB/QLBLSRC)
SRCMBR(XMPLE1) OPTION(*SOURCE)
TEXT('Mon programme COBOL')
Cette commande appelle le compilateur COBOL pour créer un programme nommé XMPLE1. Le programme source est dans le membre XMPLE1 du fichier source QLBLSRC dans la bibliothèque MABIB. Une liste de compilateur est créée.
Messages d'erreur
*ESCAPE Messages
- LBL9001
- La compilation a échoué. Programme non créé.
- LBL9004
- Le programme existe déjà. La compilation a échoué.
- LBL9006
- TGTRLS(&1) indiqué, mais le compilateur précédent n'est pas installé.
- LBL9007
- La bibliothèque de logiciel est endommagée ou l'utilisateur n'est pas autorisé à y accéder.
- SQL9002
- Paramètres TGTRLS non concordants pour précompilation SQL et compilation &7.
- SQL9003
- Le compilateur &7 n'est pas au niveau de version approprié pour le source SQL.
© Copyright IBM Corp. Texte d'aide reproduit à des fins de formation.