Aller au contenu

CRTRPGMOD

Créer un module RPG

En bref

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

Syntaxe minimale

CRTRPGMOD

Paramètres

Astuce : dans une session 5250, tapez CRTRPGMOD 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

Créer un module RPG

La commande CRTRPGMOD (Créer un module RPG) permet de compiler le code source RPG afin de créer un objet module (*MODULE). Elle peut être lancée en mode interactif ou par lots.

Paramètres

Mot-clé Description Valeurs possibles Remarques
MODULE Module Nom d'objet qualifié Facultatif, positionnel 1
Qualificatif 1: Module Nom, *CTLSPEC
Qualificatif 2: Bibliothèque Nom, *CURLIB
SRCFILE Fichier source Nom d'objet qualifié Facultatif, positionnel 2
Qualificatif 1: Fichier source Nom, QRPGLESRC
Qualificatif 2: Bibliothèque Nom, *LIBL, *CURLIB
SRCMBR Membre source Nom, *MODULE Facultatif, positionnel 3
SRCSTMF Fichier STREAM source Chemin d'accès Facultatif
GENLVL Niveau gravité pour génération 0-20, 10 Facultatif
TEXT Texte 'descriptif' Valeur caractère, *SRCMBRTXT, *BLANK Facultatif
OPTION Options de compilation Values (jusqu'à 20 répétitions): *XREF, *NOXREF, *GEN, *NOGEN, *SECLVL, *NOSECLVL, *SHOWCPY, *NOSHOWCPY, *EXPDDS, *NOEXPDDS, *EXT, *NOEXT, *NOSHOWSKP, *SHOWSKP, *NOSRCSTMT, *SRCSTMT, *DEBUGIO, *NODEBUGIO, *UNREF, *NOUNREF, *NOEVENTF, *EVENTF Facultatif
DBGVIEW Vues de débogage *STMT, *SOURCE, *LIST, *COPY, *ALL, *NONE Facultatif
DBGENCKEY Clé de chiffrement de débogage Valeur caractère, *NONE Facultatif
OUTPUT Sortie *PRINT, *NONE Facultatif
OPTIMIZE Niveau d'optimisation *NONE, *BASIC, *FULL Facultatif
INDENT Indentation de la liste source Valeur caractère, *NONE Facultatif
CVTOPT Options de conversion de type Valeurs uniques: *NONE
Autres valeurs (jusqu'à 4 répétitions): *DATETIME, *GRAPHIC, *VARCHAR, *VARGRAPHIC
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 Nom, *JOBRUN, *JOB Facultatif
REPLACE Remplacement module *YES, *NO Facultatif
AUT Droits Nom, *LIBCRTAUT, *ALL, *CHANGE, *USE, *EXCLUDE Facultatif
TRUNCNBR Troncature valeurs numériques *YES, *NO Facultatif
FIXNBR Correction valeurs numériques Valeurs uniques: *NONE
Autres valeurs (jusqu'à 2 répétitions): *ZONED, *INPUTPACKED
Facultatif
TGTRLS Edition cible Nom simple, *CURRENT, *PRV Facultatif
ALWNULL Admission valeurs indéfinies *NO, *INPUTONLY, *USRCTL, *YES Facultatif
DEFINE Définition noms de condition Values (jusqu'à 32 répétitions): Nom simple, *NONE Facultatif
ENBPFRCOL Collecte performances possible *PEP, *ENTRYEXIT, *FULL Facultatif
PRFDTA Données de profilage *NOCOL, *COL Facultatif
STGMDL Modèle d'espace mémoire *INHERIT, *SNGLVL, *TERASPACE Facultatif
BNDDIR Répertoire de liage Valeurs uniques: *NONE
Autres valeurs (jusqu'à 50 répétitions): Nom d'objet qualifié
Facultatif
Qualificatif 1: Répertoire de liage Nom
Qualificatif 2: Bibliothèque Nom, *LIBL, *CURLIB
LICOPT Options microcode sous licence Valeur caractère, X'' Facultatif
INCDIR Inclusion répertoire Values (jusqu'à 32 répétitions): Chemin d'accès, *NONE Facultatif
PGMINFO Infos interface programme Liste d'éléments Facultatif
Élément 1: Générer *NO, *PCML
Élément 2: Emplacement *STMF, *MODULE, *ALL
INFOSTMF Fichier STREAM interface pgm Chemin d'accès Facultatif
PPGENOPT Options du préprocesseur Valeurs uniques: *NONE, *DFT
Autres valeurs (jusqu'à 3 répétitions): *RMVCOMMENT, *NORMVCOMMENT, *EXPINCLUDE, *NOEXPINCLUDE, *SEQSRC, *NOSEQSRC
Facultatif
PPSRCFILE Fichier source de sortie Nom d'objet qualifié Facultatif
Qualificatif 1: Fichier source de sortie Nom
Qualificatif 2: Bibliothèque Nom, *CURLIB
PPSRCMBR Membre source de sortie Nom, *MODULE Facultatif
PPSRCSTMF Fichier STREAM en sortie Chemin d'accès, *SRCSTMF Facultatif
TGTCCSID CCSID cible 1-65534, *SRC, *JOB Facultatif
REQPREXP Prototype requis pour export *WARN, *REQUIRE, *NO Facultatif
PPMINOUTLN MINIMUM OUTPUT LINE LENGTH 100-32754, 100 Facultatif

Module (MODULE)

Indique le nom de l'objet module en cours de création et celui de la bibliothèque associée. Le nom du module et celui de la bibliothèque doivent être conformes aux conventions d'appellation de serveur. Si aucune bibliothèque n'est spécifiée, le module créé est stocké dans la bibliothèque en cours.

*CTLSPEC
Le nom du module compilé est dérivé du nom associé au mot clé DFTNAME de la spécification de contrôle. Si ce nom n'est pas indiqué dans la spécification de contrôle et que le membre source provient d'un fichier base de données, le nom de membre affecté au paramètre SRCMBR fait fonction de nom de module. Si le source n'est pas issu d'un fichier base de données, le nom par défaut RPGMOD est attribué au module.
nom-module
Entrez le nom de l'objet module.
*CURLIB
L'objet module compilé est stocké dans la bibliothèque en cours. Si vous n'avez indiqué aucune bibliothèque en cours, QGPL est utilisée.
nom-bibliothèque
Entrez le nom de la bibliothèque dans laquelle l'objet module compilé doit être stocké.

Fichier source (SRCFILE)

Indiquez le nom du fichier source contenant le membre source ILE RPG à compiler et sa bibliothèque de stockage. La longueur recommandée pour le fichier source physique est de 112 caractères (12 pour le numéro de séquence et la date, 80 pour le code et 20 pour les commentaires). Il s'agit de la quantité maximale de données source figurant sur la liste de compilation.

QRPGLESRC
Le fichier source par défaut QRPGLESRC contient le membre source ILE RPG à compiler.
nom-fichier-source
Entrez le nom du fichier source contenant le membre source ILE RPG à compiler. Il s'agit de la valeur par défaut.
*LIBL
Le système recherche la bibliothèque de stockage du fichier source dans la liste des bibliothèques. Il s'agit de la valeur par défaut.
*CURLIB
Le fichier source est recherché dans la bibliothèque en cours. Si vous n'avez indiqué aucune bibliothèque en cours, QGPL est utilisée.
nom-bibliothèque
Entrez le nom de la bibliothèque dans laquelle le fichier source est stocké.

Membre source (SRCMBR)

Indique le nom du membre du fichier source contenant les spécifications source ILE RPG à compiler.

*MODULE
Le nom affecté au paramètre MODULE en tant que nom de membre du fichier source est utilisé. Ce nom sera également celui de l'objet module, une fois celui-ci compilé. Si aucun nom de module n'est associé au paramètre MODULE, le nom du membre source est celui du premier membre créé ou ajouté dans le fichier.
nom-membre-fichier-source
Entrez le nom du membre contenant les spécifications du source ILE RPG.

Fichier STREAM source (SRCSTMF)

Indiquez le nom de chemin au fichier STREAM contenant le code source ILE RPG à compiler.

Ce nom de chemin peut être qualifié d'absolu ou de relatif. Un nom de chemin absolu commence par '/' ; un nom de chemin relatif commence par un caractère autre que '/'.

Un nom de chemin qualifié d'absolu est complet. Qualifié de relatif, le nom de chemin est complété par l'ajout du répertoire de travail en cours du travail.

Les paramètres SRCMBR et SRCFILE ne peuvent pas être indiqués avec le paramètre SRCSTMF.

Niveau gravité pour génération (GENLVL)

Contrôle la création de l'objet module. Si des messages de compilation ont un niveau de gravité supérieur à la valeur de ce paramètre, l'objet module n'est pas créé.

La valeur de ce paramètre doit être comprise entre 0 et 20 inclus. Lorsque des erreurs d'une gravité supérieure à 20 se produisent, l'objet module n'est pas généré.

10
Un objet module est généré lorsque les erreurs de compilation ont un niveau de gravité inférieur ou égal à 10. Il s'agit de la valeur par défaut.
valeur-niveau-gravité
Entrez un nombre compris entre 0 et 20 inclus.

Texte 'descriptif' (TEXT)

Permet d'entrer un bref descriptif du module et de ses fonctions. Le texte apparaît à chaque affichage des informations relatives au module.

*SRCMBRTXT
Le texte associé au membre source est utilisé. Il s'agit de la valeur par défaut.
*BLANK
Aucun texte ne s'affiche.
'description'
Entrez une brève description de la fonction des spécifications source. Le texte entré peut comporter 50 caractères au maximum et doit être entouré d'apostrophes, qui ne sont pas incluses dans les 50 caractères autorisés. Les apostrophes ne sont pas nécessaires si vous entrez le texte sur l'écran d'invite.

Options de compilation (OPTION)

Indiquez les options à utiliser lorsque le membre source est compilé. Vous pouvez indiquer plusieurs options dans n'importe quel ordre, mais elles doivent être séparées par au moins un espace. Si une option apparaît plusieurs fois, la dernière occurrence est utilisée.

*XREF
Génère une liste de références croisées (s'il y a lieu) pour le membre source.
*NOXREF
Ne génère pas de liste de références croisées.
*GEN
Crée un objet module pouvant être lié à l'aide de la commande CRTPGM si le niveau de gravité le plus élevé renvoyé par le compilateur n'excède pas le niveau indiqué par l'option GENLVL.
*NOGEN
Ne crée pas l'objet module.
*NOSECLVL
N'imprime pas le message de deuxième niveau sur la ligne suivant le message de premier niveau.
*SECLVL
Imprime le message de deuxième niveau sur la ligne suivant le message de premier niveau.
*SHOWCPY
Affiche les enregistrements source des membres appelés par la directive de compilation /COPY.
*NOSHOWCPY
N'affiche pas les enregistrements source des membres appelés par la directive de compilation /COPY.
*EXPDDS
Inclut l'extension des fichiers à description externe dans la liste et affiche les informations de zones clés.
*NOEXPDDS
N'inclut pas l'extension des fichiers à description externe dans la liste et n'affiche pas les informations de zones clés.
*EXT
Inclut les procédures externes et les zones référencées lors de la compilation dans la liste.
*NOEXT
N'inclut pas les procédures externes et les zones référencées lors de la compilation dans la liste.
*NOSHOWSKP
N'inclut pas les instructions ignorées dans la partie source de la liste. Le compilateur ignore les instructions conformément aux directives /IF, /ELSEIF ou /ELSE.
*SHOWSKP
Inclut toutes les instructions dans la partie source de la liste, qu'elles aient été ou non ignorées par le compilateur.
*NOSRCSTMT
Les numéros de ligne sur la liste sont affectés de manière séquentielle ; ces numéros sont utilisés pour le débogage à l'aide de numéros d'instructions. Les numéros de ligne sont affichés dans la colonne de gauche. Les ID source et les numéros de séquence SEU sont affichés dans les deux colonnes de droite.
*SRCSTMT
Les numéros d'instruction pour le débogage sont générés à l'aide de numéros de séquence SEU et d'ID source, comme suit :

Numéro_instruction = ID_source * 1000000 +
                   numéro_séquence_source_SEU

Les numéros de séquence SEU et les numéros d'instruction sont affichés respectivement dans la colonne de gauche et dans la colonne de droite de la liste ; ces numéros sont utilisés pour le débogage à l'aide de numéros d'instruction.

Remarque :Lorsque OPTION(*SRCSTMT) est spécifié, tous les numéros de séquence contenus dans les fichiers source doivent contenir des valeurs numériques admises. S'il existe des numéros de séquence en double dans le même fichier source, le comportement du débogueur peut être imprévisible et les numéros d'instruction pour les messages de diagnostic ou entrées de référence croisée peuvent ne pas être significatifs.

*DEBUGIO
Génère des points d'arrêt pour toutes les spécifications d'entrée et de sortie.
*NODEBUGIO
Ne génère pas de point d'arrêt pour les spécifications d'entrée et de sortie.
*UNREF
Les éléments de données non référencés sont inclus dans le module compilé.
*NOUNREF
Les éléments de données non référencés ne sont pas inclus dans le module compilé. Cela réduit l'espace mémoire utilisé, ce qui permet la compilation d'un programme de plus grande taille. Vous ne pouvez pas consulter ou sélectionner un élément de données non référencé pendant le débogage lorsque l'option *NOUNREF est choisie. Les éléments de données non référencés apparaissent néanmoins dans les listes de références croisées générées via la spécification de OPTION(*XREF).
*NOEVENTF
Ne crée pas le fichier événements destiné aux outils client. Les outils clients utilisent ce fichier pour fournir le suivi intégré des erreurs. Un fichier événements est normalement généré lorsque vous créez un module ou un programme à partir des outils client.
*EVENTF
Crée un fichier événements destiné aux outils client. Ce fichier est créé sous la forme d'un membre du fichier EVFEVENT dans la bibliothèque dans laquelle le module ou le programme créé doit être stocké. Si le fichier EVFEVENT n'existe pas, il est automatiquement créé. Le membre du fichier événements porte le nom de l'objet en cours de création.

Les outils clients utilisent ce fichier pour fournir le suivi intégré des erreurs. Un fichier événements est normalement généré lorsque vous créez un module ou un programme à partir des outils client.

Vues de débogage (DBGVIEW)

Indique quel niveau de débogage est disponible pour l'objet module compilé et quelles vues source sont disponibles pour le débogage au niveau source.

*STMT
Permet le débogage de l'objet module à l'aide des numéros de ligne ou des numéros d'instruction de la liste de compilation. Les numéros de ligne sont inscrits dans la première colonne de la section source de la liste de compilation lorsque OPTION(*NOSRCSTMT) est indiqué. Les numéros d'instruction sont affichés dans la dernière colonne de la section source de la liste de compilation lorsque OPTION(*SRCSTMT) est indiqué.
*SOURCE
Génère la vue source pour le débogage de l'objet module compilé. Cette vue n'est pas disponible si le membre source principal est un fichier DDM. Par ailleurs, si un membre source subit des modifications après compilation et avant tentative de débogage du programme, les vues pour ce membre source peuvent ne pas être exploitables.
*LIST
Génère la vue de liste pour le débogage de l'objet module compilé. Les informations contenues dans cette vue varient selon que les valeurs *SHOWCPY, *EXPDDS et *SRCSTMT sont indiquées ou non pour le paramètre OPTION.

Remarque :La vue liste ne présente pas les mises en retrait éventuellement demandées avec l'option d'indentation.

*COPY
Génère les vues source et de copie pour le débogage de l'objet module compilé. La vue de source associée à cette option est la même que celle qui est générée pour l'option *SOURCE. La vue de copie est une vue de débogage incluant tous les membres source /COPY. Ces vues ne sont pas disponibles si le membre source principal est un fichier DDM. Par ailleurs, si un membre source subit des modifications après compilation et avant tentative de débogage du programme, les vues pour ce membre source peuvent ne pas être exploitables.
*ALL
Génère les vues de source, de liste et de copie pour le débogage de l'objet module compilé. Les informations contenues dans cette vue varient selon que les valeurs *SHOWCPY, *EXPDDS et *SRCSTMT sont indiquées ou non pour le paramètre OPTION.
*NONE
Désactive toutes les options de débogage de l'objet module compilé.

Clé de chiffrement de débogage (DBGENCKEY)

Indique la clé de chiffrement à utiliser pour chiffrer le source du programme imbriqué dans les vues de débogage.

*NONE
Aucune clé de chiffrement n'est indiquée.
valeur-alphanumérique
Indiquez la clé à utiliser pour chiffrer le source du programme imbriqué dans les vues de débogage stockées dans l'objet module. La longueur de la clé peut être comprise entre 1 et 16 octets. Pour le chiffrement, une clé d'une longueur de 1 à 15 octets sera complétée par des blancs pour atteindre 16 octets. Indiquer une clé de longueur zéro équivaut à spécifier *NONE.

Si la clé contient des caractères autres qu'invariants sur toutes les pages de codes, il appartient à l'utilisateur de garantir que le système cible utilise la même page de codes que le système source, autrement la clé risque de ne pas correspondre et le déchiffrement peut échouer. Si la clé de chiffrement doit être saisie sur des systèmes dotés de pages de codes différentes, il est recommandé de faire en sorte que la clé soit constituée de caractères invariants pour toutes les pages de codes EBCDIC.

Sortie (OUTPUT)

Indiquez si une liste de compilation est générée.

*PRINT
Génère une liste de compilation contenant le source du module ILE RPG et tous les messages générés pendant la compilation. Les informations contenues dans la liste varient selon que les valeurs *XREF, *SECLVL, *SHOWCPY, *EXPDDS, *EXT, *SHOWSKP et *SRCSTMT sont indiquées ou non pour le paramètre OPTION.
*NONE
Ne génère pas de liste de compilation.

Niveau d'optimisation (OPTIMIZE)

Indiquez le niveau d'optimisation du module, s'il est défini.

*NONE
Le code généré n'est pas optimisé. Il s'agit de la méthode de conversion la plus rapide. Elle autorise l'affichage et la modification des variables en mode débogage.
*BASIC
Le code généré fait l'objet d'une optimisation de base. Les variables peuvent être affichées en mode débogage, mais pas modifiées.
*FULL
Le code généré fait l'objet d'une optimisation complète. Le temps de conversion requis est le plus long. Les variables utilisateur ne peuvent pas être modifiées mais peuvent être affichées, bien que les valeurs à l'écran ne soient pas forcément les valeurs en cours.

Indentation de la liste source (INDENT)

Indiquez si les opérations structurées doivent être présentées avec une indentation dans la liste source pour une meilleure lisibilité. Permet également d'indiquer quels caractères sont utilisés pour marquer les clauses des opérations structurées.

Remarque :Toutes les indentations demandées à ce stade n'apparaissent pas dans la vue liste de débogage créée sur indication de DBGVIEW(*LIST).

*NONE
Les opérations structurées ne sont pas mises en retrait dans la liste source. Il s'agit de la valeur par défaut.
valeur-alphanumérique
Les clauses des opérations structurées sont mises en retrait dans la liste source. L'alignement des instructions et des clauses est balisé à l'aide des caractères de votre choix (il peut s'agir de n'importe quelle chaîne longue de 2 caractères au maximum). Si vous souhaitez inclure un espace dans cette chaîne, vous devez placer cette dernière entre apostrophes.

Remarque :Il est possible que l'indentation ne s'effectue pas comme prévu si le module contient des erreurs.

Options de conversion de type (CVTOPT)

Indiquez le mode utilisé par le compilateur ILE RPG pour gérer les dates, les heures, les horodatages et les données de longueur variable extraits des fichiers base de données à description externe.

*NONE
Utilise les types RPG natifs pour les dates, les heures, les horodatages et les données de longueur variable.
*DATETIME
Indique que les zones destinées à recevoir une date, une heure ou un horodatage doivent être déclarées en tant que zones alphanumériques de longueur fixe.
*GRAPHIC
Considérations DBCS : Non applicables.
*VARCHAR
Indique que les zones destinées à recevoir des données alphanumériques à longueur variable doivent être déclarées en tant que zones de longueur fixe.
*VARGRAPHIC
Considérations DBCS : Non applicables.

Séquence de tri (SRTSEQ)

Indiquez la table de tri utilisée dans le programme source ILE RPG.

*HEX
Aucune table de séquence de tri n'est utilisée.
*JOB
La valeur de SRTSEQ extraite du travail lors de la création du module est utilisée.
*JOBRUN
La valeur de SRTSEQ extraite du travail lors de l'exécution du module (après liaison) est utilisée.
*LANGIDUNQ
Une table de tri à poids uniques est utilisée. Cette valeur spéciale associée au paramètre LANGID permet de sélectionner la table de séquence de tri appropriée.
*LANGIDSHR
Une table de tri à poids partagés est utilisée. Cette valeur spéciale associée au paramètre LANGID permet de sélectionner la table de séquence de tri appropriée.
nom-table-tri
Entrez le nom de la table de séquence de tri.
*LIBL
Le système recherche la bibliothèque de stockage de la table de tri dans la liste des bibliothèques.
*CURLIB
La bibliothèque en cours est utilisée afin de trouver la table de tri. Si vous n'avez indiqué aucune bibliothèque en cours, QGPL est utilisée.
nom-bibliothèque
Entrez le nom de la bibliothèque de stockage de la table de tri.

Identificateur de langue (LANGID)

Indique l'identificateur de langue à utiliser lorsque la séquence de tri correspond à *LANGIDUNQ ou *LANGIDSHR. Le paramètre LANGID est utilisé avec le paramètre SRTSEQ pour sélectionner la table de tri appropriée.

*JOBRUN
La valeur de LANGID associée au travail lors de l'exécution du module RPG (après liaison) est utilisée.
*JOB
La valeur de LANGID associée au travail lors de la création du module RPG est utilisée.
identificateur-langue
L'identificateur de langue indiqué est utilisé (par exemple, FRA pour le français et DEU pour l'allemand).

Remplacement module (REPLACE)

Indique si un nouvel objet module est créé au cas où un module portant le même nom existe déjà dans la bibliothèque désignée.

*YES
Un nouvel objet module est créé dans la bibliothèque indiquée. Celui qui portait déjà le même nom dans la bibliothèque est déplacé vers la bibliothèque QRPLOBJ.
*NO
Le nouvel objet module n'est pas créé si un objet module portant le même nom existe déjà dans la bibliothèque désignée.

Droits (AUT)

Indiquez les droits octroyés aux utilisateurs qui ne disposent pas de droits spécifiques sur l'objet, ne figurent pas sur la liste d'autorisation, et font partie d'un groupe d'utilisateurs ne disposant d'aucun droit spécifique sur l'objet. Après création du module, les droits peuvent être modifiés pour la totalité ou une partie des utilisateurs à l'aide des commandes CL GRTOBJAUT (Accorder des droits sur un objet) et RVKOBJAUT (Révoquer des droits sur un objet). Pour plus de détails sur ces commandes, reportez-vous au manuel Rubriques CL de la catégorie Programmation de l'IBM i Information Center, à l'adresse http://www.ibm.com/systems/i/infocenter/.

*LIBCRTAUT
Les droits publics sur l'objet sont dérivés du mot-clé CRTAUT de la bibliothèque cible (celle qui contient l'objet). Sa valeur est définie lors de la création de l'objet. Si le paramètre CRTAUT est modifié pour la bibliothèque après la création, sa nouvelle valeur n'a aucune incidence sur les objets existants.
*ALL
Fournit les droits relatifs à toutes les opérations sur l'objet module, sauf celles limitées au propriétaire ou contrôlées par les droits de gestion de la liste d'autorisation. L'utilisateur peut vérifier l'existence de l'objet module, affecter un niveau de sécurité à celui-ci, le modifier et lui appliquer des fonctions de base, mais il ne peut pas modifier son propriétaire.
*CHANGE
Fournit tous les droits sur les données et les droits relatifs à toutes les opérations sur l'objet module, sauf celles limitées au propriétaire ou contrôlées par les droits sur les objets et le droit de gestion des objets. L'utilisateur peut modifier l'objet et lui appliquer des fonctions de base.
*USE
Fournit le droit d'opération sur l'objet et le droit de lecture, ainsi que le droit d'effectuer des opérations de base sur l'objet module comme sa liaison à un programme. L'utilisateur est dans l'incapacité de modifier l'objet.

Remarque :Un utilisateur doit disposer du droit *USE sur un programme pour obtenir un cliché formaté des variables du programme. Pour effectuer un cliché des variables, le programme doit également comporter des informations observables.

Si vous ne souhaitez pas que certains utilisateurs puissent effectuer un cliché des variables, accordez-leur uniquement le droit *OBJOPR plus le droit *EXECUTE sur le programme ou le programme de service contenant le module. Ceci leur permettra d'appeler le programme mais ils ne pourront pas effectuer un cliché des variables. Utilisez EDTOBJAUT, GRTOBJAUT ou RVKOBJAUT pour modifier les droits du programme ou du programme de service créé.

Si vous ne souhaitez pas que les utilisateurs puissent effectuer un cliché des variables, supprimez les informations observables en exécutant la commande CHGMOD sur le module ou la commande CHGPGM ou CHGSRVPGM sur le programme contenant le module.

*EXCLUDE
L'utilisateur est dans l'incapacité d'accéder à l'objet.
nom-liste-autorisation
Entrez le nom de la liste d'autorisation d'utilisateurs et de droits à laquelle le module doit être ajouté. L'objet module sera protégé par cette liste d'autorisation et les droits publics pour l'objet module seront définis par *AUTL. La liste d'autorisation doit exister sur le système lors de l'émission de la commande CRTRPGMOD.

Remarque :Utilisez le paramètre AUT pour refléter les besoins de sécurité de votre système. Les dispositifs de sécurité disponibles sont décrits en détail dans le manuel IBM i Security Reference, SC41-5302.

Troncature valeurs numériques (TRUNCNBR)

Indiquez si la valeur tronquée est transférée dans la zone résultat ou si une erreur est générée lorsqu'un dépassement numérique se produit lors de l'exécution du programme.

Remarque :L'option TRUNCNBR ne s'applique pas aux traitements effectués dans des expressions. (Les expressions se trouvent dans la zone Facteur 2 étendu). En cas de dépassement au cours de ces traitements, une erreur se produit.

*YES
Le dépassement numérique est ignoré et la valeur tronquée est transférée dans la zone résultat.
*NO
Lorsqu'un dépassement numérique est détecté, une erreur d'exécution est générée.

Correction valeurs numériques (FIXNBR)

Indiquez si les données décimales incorrectes sont corrigées par le compilateur.

*NONE
Indique que les données décimales incorrectes généreront des erreurs de décimales lors de la compilation si elles sont utilisées.
*ZONED
Les données en décimal étendu incorrectes sont corrigées par le compilateur lors de la conversion au format condensé. Les espaces dans les zones numériques sont considérés comme des zéros. La validité de chaque chiffre décimal est contrôlé. Si un chiffre décimal n'est pas correct, il est remplacé par zéro. Si un signe est incorrect, il est remplacé par un signe positif (code hexadécimal) F. Si un signe est correct, il est converti en signe positif (code hexadécimal) F ou en signe négatif (code hexadécimal) D, selon le cas. Si les données condensées obtenues sont incorrectes, elles ne sont pas corrigées.
*INPUTPACKED
Indique que si des données au format décimal condensé incorrectes sont détectées lors du traitement des spécifications d'entrée, la variable interne prend la valeur zéro.

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 varient d'une édition à une autre. Les valeurs possibles sont les suivantes :

*CURRENT
L'objet doit être utilisé dans une version identique à celle du système d'exploitation. Par exemple, s'il s'agit de la V2R3M5, *CURRENT indique que l'objet sera utilisé sur un système doté de la V2R3M5. Vous pouvez également utiliser l'objet sur un système disposant d'une édition postérieure à celle du système d'exploitation installé.

Remarque :Si votre système est doté de la V2R3M5 et que l'objet doit être utilisé sur un système sur lequel la V2R3M0 est installée, indiquez TGTRLS(V2R3M0) au lieu de TGTRLS(*CURRENT).

*PRV
L'objet sera utilisé sur l'édition précédente, niveau de modification 0 du système d'exploitation installé. Par exemple, s'il s'agit de la V2R3M5, *PRV signifie que l'objet sera utilisé sur un système doté de la V2R2M0. Vous pouvez également utiliser l'objet sur un système disposant d'une édition postérieure à celle du système d'exploitation installé.
édition-cible
Indiquez l'édition en utilisant le format VxRxMx. L'objet peut être utilisé sur un système doté de l'édition indiquée ou d'une édition suivante.

Les valeurs admises dépendent de la version, de l'édition et du niveau de modification en cours. Elles varient d'une édition à une autre. Si vous indiquez une édition-cible antérieure à la dernière édition supportée par cette commande, un message d'erreur est envoyé pour indiquer la dernière édition supportée.

Remarque :Le version en cours de la commande peut supporter des options qui ne sont pas disponibles sur les éditions précédentes de la commande. Si la commande est utilisée pour créer des objets destinés à être utilisés sur une édition précédente, elle sera traitée par le compilateur approprié à cette édition et les options non supportées ne seront pas reconnues. Le compilateur n'émet pas forcément d'avertissements pour signaler les options qu'il ne peut pas traiter.

Admission valeurs indéfinies (ALWNULL)

Indique comment le module ILE RPG peut utiliser les enregistrements contenant des zones admettant les valeurs indéfinies qui proviennent de fichiers base de données à description externe.

*NO
Indique que le module ILE RPG ne traite pas les enregistrements contenant des zones admettant les valeurs indéfinies pour les fichiers à description externe. Si vous tentez d'extraire un enregistrement contenant des valeurs indéfinies, aucune donnée de l'enregistrement n'est accessible au module ILE RPG et des erreurs de mappage de données se produisent.
*INPUTONLY
Indique que le module ILE RPG peut lire des enregistrements contenant des zones admettant les valeurs indéfinies qui proviennent de fichiers base de données en entrée seule et à description externe. Lorsqu'un enregistrement contenant des valeurs indéfinies est extrait, aucune erreur de mappage de données ne se produit et les valeurs par défaut de la base de données sont insérées dans toutes les zones contenant des valeurs indéfinies. Le module ne peut pas effectuer les opérations suivantes :
  • Utiliser des zones clés admettant les valeurs indéfinies
  • Créer ou mettre à jour des enregistrements contenant des zones admettant les valeurs indéfinies
  • Déterminer si une zone admettant une valeur indéfinie a cette valeur lors de l'exécution du module
  • Affecter une valeur indéfinie à une zone l'acceptant
*USRCTL
Indique que le module ILE RPG peut lire, écrire et mettre à jour les enregistrements contenant les valeurs indéfinies qui proviennent des fichiers base de données à description externe. Ces enregistrements peuvent être extraits à l'aide d'opérations avec clé. Le module peut déterminer si une zone admettant une valeur indéfinie a cette valeur, et affecter cette valeur à une zone l'acceptant pour une opération de sortie ou de mise à jour. Le programmeur est chargé de s'assurer de la bonne utilisation des zones comportant des valeurs indéfinies dans le module.
*YES
Equivaut à *INPUTONLY.

Définition noms de condition (DEFINE)

Indique les noms de condition définis avant la compilation. L'utilisation du paramètre DEFINE(nom-condition) équivaut au codage de la directive de nom-condition /DEFINE sur la première ligne du fichier source.

*NONE
Aucun nom de condition n'est défini. Il s'agit de la valeur par défaut.
Nom
Un maximum de 32 noms de condition peuvent être spécifiés. Chaque nom peut comporter 50 caractères au maximum. Les noms de condition seront considérés comme étant définis au début de la compilation.

Collecte performances possible (ENBPFRCOL)

Indique si la collecte de performance est activée.

*PEP
Les statistiques de performance sont collectées à l'entrée et à la sortie de la procédure d'entrée de programme uniquement. Cela s'applique à la réelle procédure d'entrée d'un programme et non à la procédure principale des modules d'un programme. Il s'agit de la valeur par défaut.
*ENTRYEXIT
Les statistiques de performance sont collectées à l'entrée et à la sortie de toutes les procédures du module.
*FULL
Les statistiques de performance sont collectées à l'entrée et à la sortie de toutes les procédures, ainsi qu'avant et après chaque appel d'une procédure externe.

Données de profilage (PRFDTA)

Indique l'attribut de données de profilage de programme correspondant au module. Le profilage de programme est une technique d'optimisation évoluée consistant à réorganiser les procédures et le code qu'elles contiennent en fonction de données statistiques (les données de profilage).

*NOCOL
La collecte des données de profilage n'est pas activée pour ce module. Il s'agit de la valeur par défaut.
*COL
La collecte de données de profilage est activée pour ce module. *COL ne peut être indiqué que lorsque le niveau d'optimisation du module a pour valeur *FULL et lorsque la valeur *CURRENT est indiquée pour l'édition cible lors de la compilation.

Modèle d'espace mémoire (STGMDL)

Indique le type de mémoire que doit utiliser le module.

*INHERIT
Le module est créé avec un modèle d'espace mémoire hérité. Un module de modèle d'espace mémoire hérité peut être lié dans des programmes et des programmes de service comportant un modèle d'espace mémoire adressable unique, à téraoctets ou hérité. Le type d'espace mémoire utilisé pour l'espace mémoire statique et automatique des programmes dotés de modèles d'espace mémoire adressable unique et à téraoctets correspond au modèle d'espace mémoire de l'objet. Un objet de modèle d'espace mémoire hérité hérite du modèle d'espace mémoire du programme appelant.
*SNGLVL
Le module est créé avec un modèle d'espace mémoire adressable unique. Un module de modèle d'espace mémoire adressable unique peut uniquement être lié dans des programmes et des programmes de service utilisant ce type d'espace mémoire. Ces programmes et programmes de service utilisent un espace mémoire adressable unique pour l'espace mémoire statique et automatique.
*TERASPACE
Le module est créé avec un modèle d'espace mémoire à téraoctets. Un module de modèle d'espace mémoire à téraoctets peut uniquement être lié dans des programmes et programmes de service utilisant un espace mémoire à téraoctets. Ces programmes et programmes de service utilisent un espace mémoire à téraoctets pour l'espace mémoire statique et automatique.

Répertoire de liage (BNDDIR)

Indique la liste des répertoires de liage utilisés pour la résolution des symboles d'un module. La recherche d'un répertoire de liage a lieu lors du liage du module, au moment de l'exécution de la commande CRTPGM ou CRTSRVPGM.

*NONE
Aucun répertoire de liage n'est spécifié.
nom-répertoire-liage
Indiquez le nom du répertoire de liage à utiliser lors de la résolution des symboles. Le nom du répertoire peut être associé à l'une des valeurs suivantes :
*LIBL
Le système recherche la bibliothèque de stockage du répertoire de liage dans la liste des bibliothèques. Il s'agit de la valeur par défaut.
*CURLIB
La bibliothèque en cours du travail est résolue lors de la compilation. Elle est ensuite utilisée pour rechercher le répertoire de liage, lorsque le module est lié. Si aucune bibliothèque en cours n'est indiquée, QGPL est utilisée.
nom-bibliothèque
Indiquez le nom de la bibliothèque à explorer.

Options microcode sous licence (LICOPT)

Indique une ou plusieurs options(s) de temps de compilation de microcode sous licence. Ce paramètre permet la sélection d'options de temps de compilation individuelles. Il est destiné aux programmeurs expérimentés, conscients des avantages et des inconvénients potentiels de chaque type d'option de compilation sélectionné.

Inclusion répertoire (INCDIR)

Indique un ou plusieurs répertoires à ajouter au chemin de recherche utilisé par le compilateur pour localiser les fichiers de copie. Le compilateur lance la recherche dans les répertoires indiqués ici si les fichiers de copie du programme source ne peuvent pas être résolus.

*NONE
Les fichiers de copie ne sont pas recherchés dans les répertoires utilisateur. Par défaut, la recherche porte sur le répertoire source.
'répertoire'
Indiquez jusqu'à 32 répertoires dans lesquels les fichiers de copie doivent être recherchés. Outre ces répertoires, le répertoire source est également utilisé pour la recherche.

Infos interface programme (PGMINFO)

Indique des options contrôlant si les informations relatives à l'interface programme doivent être générées, ainsi que l'emplacement dans lequel les générer.

Générer
Indique si les informations relatives à l'interface programme doivent être générées. Les valeurs possibles sont les suivantes :
*NO
Il s'agit de la valeur par défaut qui indique qu'aucune information relative à l'interface programme n'est générée.
*PCML
Indique que le langage de marquage PCML (Program Call Markup Language) doit être généré. Le fichier PCML ainsi généré facilite l'appel des procédures dans le module RPG à l'aide des méthodes Java car il utilise moins de code.
Emplacement
Indique l'emplacement des informations sur le programme générées, si le paramètre Générer a pour valeur *PCML. Les valeurs possibles sont les suivantes :
*STMF
Indique que les informations sur le programme doivent être générées dans un fichier STREAM. Le nom d'un fichier STREAM contenant les informations générées doit être indiqué au moyen de l'option INFOSTMF.
*MODULE
Indique que les informations sur le programme doivent être stockées dans le module RPG.
*ALL
Indique que les informations sur le programme doivent être générées dans un fichier STREAM et stockées dans le module. Le nom d'un fichier STREAM contenant les informations générées doit être indiqué au moyen de l'option INFOSTMF.

Fichier STREAM interface pgm (INFOSTMF)

Indique le nom de chemin au fichier STREAM généré contenant les informations relatives à l'interface de programme et indiqué au moyen de l'option PGMINFO.

Ce nom de chemin peut être qualifié d'absolu ou de relatif. Un nom de chemin absolu commence par '/' ; un nom de chemin relatif commence par un caractère autre que '/'.

Un nom de chemin qualifié d'absolu est complet. Qualifié de relatif, le nom de chemin est complété par l'ajout du répertoire de travail en cours du travail.

Ce paramètre peut uniquement être indiqué lorsque le paramètre PGMINFO est défini par une valeur autre que *NO.

Options du préprocesseur (PPGENOPT)

Indique les options de génération du préprocesseur à utiliser lorsque le code source est compilé.

Les options possibles sont les suivantes :

*NONE
Exécute le compilateur dans le fichier source. Ne copie pas la sortie du préprocesseur dans un fichier.
*DFT
Exécute le préprocesseur dans le source d'entrée. *RMVCOMMENT, *EXPINCLUDE et *NOSEQSRC sont les options permettant de générer la sortie du préprocesseur. Utilisez PPSRCFILE et PPSRCMBR pour indiquer un membre et un fichier source de sortie ou PPSRCSTMF pour indiquer un fichier STREAM qui contiendra la sortie du préprocesseur.
*RMVCOMMENT
Supprime les commentaires, les lignes à blanc et certaines directives au cours du prétraitement. Conserve uniquement les spécifications RPG et les directives nécessaires à l'interprétation appropriée des spécifications.
*NORMVCOMMENT
Conserve les commentaires, les lignes à blanc et les directives de contrôle de listes (/EJECT, /TITLE, par exemple) au cours du prétraitement. Transforme les directives de contrôle de sources (/COPY, /IF, par exemple) en commentaires au cours du prétraitement.
*EXPINCLUDE
Etend les directives /INCLUDE dans le fichier de sortie généré.
*NOEXPINCLUDE
Les directives /INCLUDE sont placées tel quel dans le fichier de sortie généré.

Remarque :Les directives /COPY sont toujours étendues.

*SEQSRC
Si PPSRCFILE est indiqué, le membre de sortie généré comporte des numéros de séquence démarrant à 000001 et incrémentés de 000001.
*NOSEQSRC
Si PPSRCFILE est indiqué, le membre de sortie généré comporte les mêmes numéros de séquence que le source original lu par le préprocesseur.

Fichier source de sortie (PPSRCFILE)

Indique le nom du fichier source et la bibliothèque de la sortie du préprocesseur.

nom-fichier-source
Indiquez le nom du fichier source de la sortie du préprocesseur.

Les noms de bibliothèque possibles sont les suivants :

*CURLIB
La sortie du préprocesseur est créée dans la bibliothèque en cours. Si un travail ne comporte pas de bibliothèque en cours, le fichier de sortie du préprocesseur est créé dans la bibliothèque QGPL.
nom-bibliothèque
Indiquez le nom de la bibliothèque de la sortie du préprocesseur.

Membre source de sortie (PPSRCMBR)

Indique le nom du membre de fichier source de la sortie du préprocesseur.

*MODULE
Le nom indiqué au paramètre MODULE est utilisé comme nom de membre de sortie du préprocesseur.
nom-membre
Indiquez le nom du membre de la sortie du préprocesseur.

Fichier STREAM en sortie (PPSRCSTMF)

Indique le nom de chemin du fichier STREAM de la sortie du préprocesseur.

*SRCSTMF
Le nom de chemin indiqué au paramètre SRCSTMF est utilisé comme nom de chemin de la sortie du préprocesseur. Le fichier porte l'extension '.i'.
'nom-chemin'
Indiquez le nom de chemin du fichier STREAM en sortie du préprocesseur.

Ce nom de chemin peut être qualifié d'absolu ou de relatif. Un nom de chemin absolu commence par '/' ; un nom de chemin relatif commence par un caractère autre que '/'.

Un nom de chemin qualifié d'absolu est complet. Qualifié de relatif, le nom de chemin est complété par l'ajout du répertoire de travail en cours du travail.

CCSID cible (TGTCCSID)

Indique le CCSID utilisé par le compilateur pour lire les fichiers source.

*SRC
Le source est lu dans le CCSID du fichier source principal, ou si le fichier est un fichier de système de fichiers intégré avec un CCSID ASCII, le source est lu dans le CCSID EBCDIC lié au CCSID ASCII. Il s'agit de la valeur par défaut.
*JOB
Le source est lu dans le CCSID du travail. Si le CCSID du travail est 65535, le source est lu dans le CCSID par défaut du travail.
1-65534
Le source est lu dans le CCSID spécifié. Le CCSID doit être un CCSID EBCDIC avec un codage SBCS ou mixte.

Prototype requis pour export (REQPREXP)

Indique si des prototypes sont requis pour la procédure principale et les procédures exportées.

*NO
Les prototypes ne sont pas requis pour la procédure principale ou les procédures exportées. Il s'agit de la valeur par défaut.
*WARN
Un avertissement avec une gravité de niveau 10 est émis si un prototype n'est pas spécifié pour la procédure principale ou une procédure exportée.
*REQUIRE
Un prototype est requis pour la procédure principale et les procédures exportées. Une erreur avec une gravité de niveau 10 est émise si un prototype n'est pas spécifié pour la procédure principale ou une procédure exportée.

Exemples

Exemple 1 : compilation d'un module source en objet module

CRTRPGMOD   MODULE(MABIB/XMPLE1)
            SRCFILE(MABIB/QRPGLESRC)  SRCMBR(XMPLE1)
            OUTPUT(*PRINT)  TEXT('Module RPG IV')

Cette commande permet d'appeler le compilateur pour que ILE RPG crée un module nommé XMPLE1. Le module source réside dans le membre XMPLE1 du fichier source QRPGLESRC de la bibliothèque MABIB. Une liste de compilation est créée.

Messages d'erreur

Messages *ESCAPE

RNS9309
La compilation a échoué. Le module &1 n'a pas été créé dans la bibliothèque &2.

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