Aller au contenu

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

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.

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