CRTRPGPGM
Créer un programme RPG/400
En bref
La commande CRTRPGPGM (Créer un programme RPG) permet de démarrer le compilateur RPG/400.
CRTRPGPGM se lit CRT
(Créer) + RPGPGM.
Sur IBM i, le nom d'une commande associe presque toujours un verbe et un objet.
Syntaxe minimale
CRTRPGPGM
Paramètres
-
PGMProgramme -
SRCFILEFichier source -
SRCMBRMembre source -
GENLVLNiveau de gravité génération -
TEXTDescription -
OPTIONOptions de la liste source -
GENOPTOptions de génération -
INDENTIndentation de la liste source -
CVTOPTOptions de conversion de type -
SRTSEQSéquence de tri -
LANGIDID langue -
SAAFLAGMarquage SAA -
PRTFILEFichier d'impression -
REPLACERemplacer le programme -
TGTRLSEdition cible -
USRPRFProfil utilisateur -
AUTDroits d'accès -
PHSTRCTrace des phases -
ITDUMPCliché de texte intermédiaire -
SNPDUMPCliché instantané -
CODELISTCODELIST -
IGNDECERRIgnorer erreurs décimales -
ALWNULLAdmettre valeurs indéfinies
Astuce : dans une session 5250, tapez CRTRPGPGM 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
La commande CRTRPGPGM (Créer un programme RPG) permet de démarrer le compilateur RPG/400.
Paramètres
| Mot-clé | Description | Valeurs possibles | Remarques |
|---|---|---|---|
| PGM | Programme | Nom d'objet qualifié | Facultatif, positionnel 1 |
| Qualificatif 1: Programme | Nom, *CTLSPEC | ||
| Qualificatif 2: Bibliothèque | Nom, *CURLIB | ||
| SRCFILE | Fichier source | Nom d'objet qualifié | Facultatif, positionnel 2 |
| Qualificatif 1: Fichier source | Nom, QRPGSRC | ||
| Qualificatif 2: Bibliothèque | Nom, *LIBL, *CURLIB | ||
| SRCMBR | Membre source | Nom, *PGM | Facultatif, positionnel 3 |
| GENLVL | Niveau de gravité génération | 0-99, 9 | Facultatif |
| TEXT | Description | Valeur caractère, *SRCMBRTXT, *BLANK | Facultatif |
| OPTION | Options de la liste source | Values (jusqu'à 14 répétitions): *SOURCE, *NOSOURCE, *SRC, *NOSRC, *XREF, *NOXREF, *GEN, *NOGEN, *DUMP, *NODUMP, *SECLVL, *NOSECLVL, *SRCDBG, *NOSRCDBG, *LSTDBG, *NOLSTDBG | Facultatif |
| GENOPT | Options de génération | Values (jusqu'à 10 répétitions): *LIST, *NOLIST, *XREF, *NOXREF, *ATR, *NOATR, *DUMP, *NODUMP, *PATCH, *NOPATCH, *OPTIMIZE, *NOOPTIMIZE | Facultatif |
| INDENT | Indentation de la liste source | Valeur caractère, *NONE | Facultatif |
| CVTOPT | Options de conversion de type | Valeurs uniques: *NONE Autres valeurs (jusqu'à 3 répétitions): *DATETIME, *VARCHAR, *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 | ID langue | Nom, *JOBRUN, *JOB | Facultatif |
| SAAFLAG | Marquage SAA | *NOFLAG, *FLAG | Facultatif |
| PRTFILE | Fichier d'impression | Nom d'objet qualifié | Facultatif |
| Qualificatif 1: Fichier d'impression | Nom, QSYSPRT | ||
| Qualificatif 2: Bibliothèque | Nom, *LIBL, *CURLIB | ||
| REPLACE | Remplacer le programme | *YES, *NO | Facultatif |
| TGTRLS | Edition cible | Nom simple, *CURRENT, *PRV | Facultatif |
| USRPRF | Profil utilisateur | *USER, *OWNER | Facultatif |
| AUT | Droits d'accès | Nom, *LIBCRTAUT, *ALL, *CHANGE, *USE, *EXCLUDE | Facultatif |
| PHSTRC | Trace des phases | *NO, *YES | Facultatif |
| ITDUMP | Cliché de texte intermédiaire | Valeur caractère, *NONE | Facultatif |
| SNPDUMP | Cliché instantané | Valeur caractère, *NONE | Facultatif |
| CODELIST | CODELIST | Valeur caractère, *NONE, *ALL | Facultatif |
| IGNDECERR | Ignorer erreurs décimales | *NO, *YES | Facultatif |
| ALWNULL | Admettre valeurs indéfinies | *NO, *YES | Facultatif |
Programme (PGM)
Indique le nom de programme et la bibliothèque pour le programme RPG compilé.
- *CTLSPEC
- Utilise le nom du programme indiqué dans les positions 75 à 80 des spécifications de contrôle.
- nom-programme
- Entrez le nom attribué au programme.
- *CURLIB
- La bibliothèque en cours sera utilisée. Si aucune bibliothèque n'est indiquée, la bibliothèque QGPL sera prise par défaut.
- nom-bibliothèque
- Entrez le nom de la bibliothèque devant recevoir le programme compilé.
Fichier source (SRCFILE)
Indique le nom du fichier source contenant le programme source.
- QRPGSRC
- Le fichier source par défaut, QRPGSRC, contient le programme RPG à compiler.
- nom-fichier-source
- Entrez le nom du fichier source qui contient le programme source RPG à compiler.
- *LIBL
- Le système recherche dans la liste des bibliothèques, la bibliothèque contenant le fichier source.
- *CURLIB
- La bibliothèque en cours sera utilisée. Si aucune bibliothèque n'est indiquée, la bibliothèque QGPL sera prise par défaut.
- nom-bibliothèque
- Entrez le nom de la bibliothèque contenant le fichier source.
Membre source (SRCMBR)
Indique le nom du membre du fichier source.
- *PGM
- Nom du membre du fichier source indiqué dans le paramètre PGM.
- nom-membre-fichier-source
- Entrez le nom du membre contenant le programme source.
Niveau de gravité génération (GENLVL)
Indique le niveau de gravité des erreurs décelées à partir duquel la création du programme objet s'interrompt.
- 9
- Le niveau de gravité par défaut est 9.
- valeur-niveau-gravité
- Entrez un nombre compris entre 01 et 50.
Description (TEXT)
Indique le texte utilisé pour décrire la fonction du programme.
- *SRCMBRTXT
- Utilise le texte du membre de fichier source.
- *BLANK
- Aucun texte n'est utilisé.
Options de la liste source (OPTION)
Indique les options relatives à la compilation du programme source.
- *SOURCE ou *SRC
- Le compilateur produit une liste source.
- *NOSOURCE ou *NOSRC
- Le compilateur ne produit pas de liste source.
- *XREF
- Le compilateur produit une liste de références croisées.
- *NOXREF
- Le compilateur ne produit pas de liste de références croisées.
- *GEN
- Crée un programme objet exécutable après compilation de ce programme.
- *NOGEN
- Ne crée pas de programme objet exécutable.
- *NODUMP
- N'imprime pas le programme compilé en cas d'erreur.
- *DUMP
- Imprime le programme compilé en cas d'erreur.
- *NOSECLVL
- N'imprime pas les messages.
- *SECLVL
- Imprime les messages.
- *NOSRCDBG
- Le compilateur ne génère pas d'informations sur le débogage. A moins que *LSTDBG ne soit indiqué, il ne génère pas non plus d'informations sur les erreurs au niveau du source.
- *SRCDBG
- Le compilateur génère des informations sur les erreurs et le débogage au niveau du source utilisables avec les outils client. Les informations sur le débogage au niveau du source ou de la liste sont également nécessaires si vous voulez utiliser le programme de débogage du système (STRDBG OPMSRC(*YES)) pour déboguer en même temps des programmes OPM et ILE.
Vous ne pouvez pas choisir à la fois *SRCDBG et *LSTDBG. Spécifiez l'une ou l'autre de ces options.
- *NOLSTDBG
- Le compilateur ne génère pas de vue de la liste ni d'informations sur le débogage au niveau de celle-ci. A moins que *SRCDBG ne soit indiqué, il ne génère pas non plus d'informations sur les erreurs au niveau du source.
- *LSTDBG
- Le compilateur génère une vue de la liste, ainsi que des informations sur les erreurs au niveau du source et sur le débogage au niveau de la liste, utilisables avec les outils client. Les informations sur le débogage au niveau du source ou de la liste sont également nécessaires si vous voulez utiliser le programme de débogage du système (STRDBG OPMSRC(*YES)) pour déboguer en même temps des programmes OPM et ILE.
Vous ne pouvez pas choisir à la fois *SRCDBG et *LSTDBG. Spécifiez l'une ou l'autre de ces options.
Options de génération (GENOPT)
Indique les options relatives à la création du code objet.
- *NOLIST
- Ne produit pas de liste de représentation intermédiaire du programme (IRP).
- *LIST
- Produit une liste de représentation intermédiaire du programme (IRP).
- *NOXREF
- Ne produit pas de liste de références croisées pour la représentation intermédiaire du programme (IRP).
- *XREF
- Produit une liste de références croisées de tous les objets définis dans la représentation intermédiaire du programme (IRP).
- *NOATR
- Ne produit pas de liste d'attributs.
- *ATR
- Produit la liste des attributs pour la représentation intermédiaire du programme source (IRP).
- *NODUMP
- N'imprime pas le programme compilé en cas d'erreur.
- *DUMP
- Imprime le programme compilé.
- *NOPATCH
- Ne réserve pas de zone de modification de programme dans le programme compilé.
- *PATCH
- Réserve une zone de modification de programme dans le programme compilé.
- *NOOPTIMIZE
- Le compilateur ne génère pas de programme d'optimisation du traitement.
- *OPTIMIZE
- Le compilateur génère un programme d'optimisation du traitement.
Indentation de la liste source (INDENT)
Indique que les instructions DO et les clauses IF-ELSE comporteront des alinéas pour des raisons de lisibilité. Précise également le caractère utilisé pour assembler les paires DO-ENDDO et IF-ELSE correspondantes.
- *NONE
- Les listes ne comportent pas d'alinéa à l'intérieur d'instructions DO ou de clauses IF-ELSE.
- chaîne-de-caractères
- Utilisez la chaîne de caractères fournie pour intégrer le niveau d'imbrication adéquat.
Options de conversion de type (CVTOPT)
Indique comment le compilateur RPG/400 doit gérer les données de type date, heure et horodatage de la base de données, ainsi que les données de longueur variable extraites des fichiers externes.
- *NONE
- Les données de type date, heure, horodatage et les données de longueur variable de la base de données sont ignorées et ne sont pas accessibles dans le programme RPG/400.
- *DATETIME
- Les zones correspondant aux données de type date, heure et horodatage de la base de données doivent être déclarées de type caractère de longueur fixe. Ces données sont accessibles dans le programme RPG/400.
- *VARCHAR
- Les zones correspondant aux données de longueur variable de la base de données doivent être déclarées de type caractère de longueur fixe. Ces données sont accessibles dans le programme RPG/400.
- *GRAPHIC
- Les types de données graphiques DBCS doivent être déclarés comme des zones de caractères de longueur fixe et sont accessibles dans le programme RPG/400. DBCS-graphic data types are to be declared as fixed length character fields and are accessible in the RPG/400 program.
Remarque :Considérations DBCS : non applicable
Séquence de tri (SRTSEQ)
Indique la table de séquence de tri à utiliser.
Remarque :Pour utiliser les valeurs codées aux paramètres SRTSEQ et LANGID de la commande CRTRPGPGM ou CRTRPTPGM, vous devez indiquer D dans la zone de séquence de classement personnalisée de la spécification de contrôle. Cette séquence de classement personnalisée est extraite du système lors de la compilation ou de l'exécution du programme. Si vous sélectionnez l'option D, la séquence de classement personnalisée portera sur toutes les opérations de comparaison de caractères, sur les opérations LOKUP et SORTA pour les tables/tableaux alphanumériques, sur le contrôle de séquence pour les données alphanumériques chargées au moment de la compilation et sur les tables/tableaux chargés lors de la préexécution du programme. Lorsque la séquence de classement personnalisée est extraite au moment de l'exécution du programme, le contrôle de séquence des données chargées lors de la compilation est effectué à ce moment-là.
- *HEX
- Par défaut, les valeurs hexadécimales des caractères sont utilisées pour déterminer la séquence de tri.
- *JOB
- Utilise la valeur SRTSEQ associée au travail lors de la création du programme RPG.
- *JOBRUN
- Utilise la valeur SRTSEQ associée au travail lors de l'exécution du programme RPG.
- *LANGIDUNQ
- Utilise une table à poids unique. Cette valeur spéciale est utilisée avec le paramètre LANGID pour sélectionner la table de séquence de tri.
- *LANGIDSHR
- Utilise une table à poids partagé. Cette valeur spéciale est utilisée avec le paramètre LANGID pour sélectionner la table de séquence de tri.
- nom-table-séquence-tri
- Indiquez le nom de la table de séquence de tri.
- *LIBL
- Par défaut, la bibliothèque contenant la table de séquence de tri est recherchée dans la liste des bibliothèques par le compilateur.
- *CURLIB
- La table de séquence de tri est recherchée dans la bibliothèque en cours. Si aucune bibliothèque en cours n'est indiquée, QGPL est utilisée par défaut.
- nom-bibliothèque
- Entrez le nom de la bibliothèque contenant la table de séquence de tri.
ID langue (LANGID)
Indique l'identificateur de langue à utiliser lorsque la séquence de tri est *LANGIDUNQ ou *LANGIDSHR. Le paramètre LANGID est utilisé avec le paramètre SRTSEQ pour sélectionner la table de séquence de tri.
- *JOBRUN
- Par défaut, utilise la valeur LANGID associée au travail lors de l'exécution du programme RPG.
- *JOB
- Utilise la valeur LANGID associée au travail lors de la création du programme RPG.
- identificateur-langue
- Indiquez l'identificateur de langue à utiliser (par exemple, FRA pour le français).
Marquage SAA (SAAFLAG)
Indique l'existence de marquages des spécifications non supportés par SAA RPG.
- *NOFLAG
- Aucun marquage ne sera exécuté.
- *FLAG
- Le marquage sera exécuté.
Fichier d'impression (PRTFILE)
Indique le nom du fichier qui doit recevoir la liste de compilation et celui de la bibliothèque où se trouve ce fichier.
- QSYSPRT
- La liste de compilation est placée dans le fichier QSYSPRT.
- nom-fichier
- Entrez le nom du fichier qui doit recevoir la liste de compilation.
- *LIBL
- Le système recherche la bibliothèque dans la liste des bibliothèques.
- *CURLIB
- La bibliothèque en cours sera utilisée. Si aucune bibliothèque n'est indiquée, la bibliothèque QGPL sera prise par défaut.
- nom-bibliothèque
- Entrez le nom de la bibliothèque contenant le fichier.
Remplacer le programme (REPLACE)
Indique si un nouvel objet programme doit être créé lorsqu'il existe déjà un programme de même nom dans la même bibliothèque.
- *YES
- Un nouvel objet programme sera créé. Si la bibliothèque indiquée contient déjà un objet programme de même nom, celui-ci sera transféré dans la bibliothèque QRPLOBJ.
- *NO
- S'il existe déjà un objet programme de même nom dans la bibliothèque indiquée, la création d'un nouvel objet programme n'aura pas lieu.
Edition cible (TGTRLS)
Indique l'édition du système d'exploitation sur lequel vous souhaitez utiliser l'objet en cours de création. Dans les exemples fournis pour les valeurs *CURRENT et *PRV, et lorsque la valeur édition-cible est spécifiée, le format VxRxMx est utilisé pour indiquer l'édition, où Vx désigne la version, Rx,l'édition et Mx,le niveau de modification. Par exemple, V2R3M0 signifie version 2, édition 3, niveau de modification 0.
Les valeurs correctes pour ce paramètre changent à chaque nouvelle édition.
Les valeurs possibles sont les suivantes :
- *CURRENT
- L'objet sera utilisé avec l'édition du système d'exploitation en cours sur le système. Par exemple, si votre système est doté de la V2R3M5 et que vous indiquez *CURRENT, l'objet sera utilisé sur un système doté de la V2R3M5. Il peut également être utilisé sur un système doté d'une édition postérieure à celle du système d'exploitation installé.
- *PRV
- L'objet sera utilisé avec l'édition précédente, niveau de modification 0 du système d'exploitation. Par exemple, si le système est doté de la V2R3M5 et que vous indiquez *PRV, l'objet sera utilisé sur un système doté de la V2R2M0. Il peut également être utilisé sur un système doté d'une édition postérieure à celle du système d'exploitation installé.
- édition-cible
- Indiquez le niveau d'édition au format VxRxMx. L'objet pourra être utilisé sur un système doté de l'édition spécifiée ou d'une édition postérieure à celle du système d'exploitation installé.
Les valeurs admises dépendent de la version, de l'édition et du niveau de modification en cours et varient avec chaque nouvelle édition. Si vous indiquez un niveau d'édition antérieur au plus ancien niveau d'édition pris en charge par cette commande, un message d'erreur est émis pour vous indiquer la plus ancienne édition prise en charge.
Remarque :Le programme peut être restauré à un niveau d'édition antérieur à celui indiqué dans la commande de création. Utilisez DSPPGM pour déterminer l'édition la plus antérieure pouvant être exécutée par le programme.
Profil utilisateur (USRPRF)
Indique le profil utilisateur sous lequel le programme RPG compilé est exécuté.
- *USER
- Le programme est exécuté sous le profil de son utilisateur.
- *OWNER
- Le programme est exécuté sous les profils de son propriétaire et de son utilisateur. Le paramètre USRPRF n'est pas mis à jour si le programme existe déjà.
Droits d'accès (AUT)
Indique les droits accordés sur le programme.
- *LIBCRTAUT
- Les droits publics par défaut sur les objets créés sont indiqués dans le mot-clé CRTAUT associé à la bibliothèque cible. Cette valeur est déterminée lors de la création de l'objet. Si la valeur du mot-clé CRTAUT de la bibliothèque est modifiée après la création de l'objet, la nouvelle valeur ne s'appliquera pas aux objets existants.
- *ALL
- Droits absolus sur le programme à l'exception du transfert de propriété de l'objet.
- *CHANGE
- Toutes les opérations sont admises, à l'exception de celles se rapportant à l'existence de l'objet et à sa gestion.
- *USE
- Droit de lire ou d'exécuter le programme compilé, mais pas de le déboguer ni de le modifier.
Remarque :Pour obtenir un cliché formaté des variables d'un programme, l'utilisateur doit disposer de droits *USE sur le programme. Pour prendre un cliché des variables, le programme doit également contenir des informations observables.
Si vous souhaitez empêcher certains utilisateurs de prendre un cliché des variables, octroyez-leur uniquement des droits *OBJOPR plus *EXECUTE sur le programme. Cette opération leur permet d'appeler le programme sans pouvoir prendre de cliché de ses variables.
Si vous souhaitez empêcher tous les utilisateurs de prendre un cliché des variables, utilisez la commande CHGPGM (Modifier un programme) pour retirer les informations observables du programme.
- *EXCLUDE
- Aucun droit.
- liste-autorisation
- Nom de la liste d'autorisation qui protège l'objet. Les droits publics sont définis par la valeur *AUTL.
Trace des phases (PHSTRC)
Indique si la trace des différentes phases de la compilation sera incluse dans la liste.
- *NO
- Ne fournit pas la trace des différentes phases de compilation.
- *YES
- Fournit la trace des différentes phases de compilation.
Cliché de texte intermédiaire (ITDUMP)
Indique la création d'une liste dynamique de texte intermédiaire.
- *NONE
- Ne produit pas de cliché de texte intermédiaire.
- nom-phase
- Entrez les deux derniers caractères de chacune des phases.
Cliché instantané (SNPDUMP)
Indique si la liste des principales zones de données et de texte est produite.
- *NONE
- Ne produit pas de cliché instantané.
- nom-phase
- Entrez les deux derniers caractères de chacune des phases.
CODELIST (CODELIST)
Indique si une liste dynamique d'IRP est produite pour une phase donnée.
- *NONE
- Ne produit pas de cliché intermédiaire IRP.
- *ALL
- Produit un cliché intermédiaire IRP.
- nom-phase
- Entrez les deux derniers caractères de chacune des phases.
Ignorer erreurs décimales (IGNDECERR)
Indique si les données décimales erronées sont prises en compte.
- *NO
- Les données décimales erronées sont prises en compte.
- *YES
- Les données décimales erronées ne sont pas prises en compte.
Admettre valeurs indéfinies (ALWNULL)
Indique si votre programme RPG/400 prendra en compte les valeurs indéfinies issues des zones acceptant ces valeurs dans un fichier d'entrée externe.
- *NO
- Indique que le programme RPG/400 n'acceptera pas les valeurs indéfinies.
- *YES
- Indique que le programme RPG/400 acceptera les valeurs indéfinies d'un fichier d'entrée externe.
Exemples
Exemple 1 : compilation d'un programme source dans un objet programme
CRTRPGPGM PGM(BIB/EXEMPLE1)
SRCFILE(BIB/QRPGSRC) SRCMBR(EXEMPLE1)
OPTION(*SOURCE) TEXT('Programme RPG III')
Cette commande permet d'appeler le compilateur de RPG/400 pour créer un programme appelé EXEMPLE1. Le programme source réside dans le membre EXEMPLE1 du fichier source QRPGSRC de la bibliothèque BIB. Une liste de compilation est créée.
Messages d'erreur
Messages *ESCAPE
- QRG9001
- La compilation a échoué. Le programme n'est pas créé.
- QRG9004
- L'édition &1 indiquée dans l'option TGTRLS n'est pas prise en charge.
- QRG9005
- L'option de compilation *SRCDBG ou *LSTDBG ne peut pas être prise en compte.
© Copyright IBM Corp. Texte d'aide reproduit à des fins de formation.