Aller au contenu

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

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.