Aller au contenu

CRTBNDRPG

Créer un programme RPG lié

En bref

Cette commande permet de compiler et de lier le code source RPG afin de créer un objet programme ILE (*PGM).

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

Syntaxe minimale

CRTBNDRPG

Paramètres

Astuce : dans une session 5250, tapez CRTBNDRPG 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 et de lier le code source RPG afin de créer un objet programme ILE (*PGM). Elle peut être utilisée en mode interactif ou par lots.

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, QRPGLESRC
Qualificatif 2: Bibliothèque Nom, *LIBL, *CURLIB
SRCMBR Membre source Nom, *PGM 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
DFTACTGRP Groupe d'activation par défaut *YES, *NO Facultatif
ACTGRP Groupe d'activation Nom, *STGMDL, *NEW, *CALLER 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, *USRLIBL
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 programme *YES, *NO Facultatif
USRPRF Profil utilisateur *USER, *OWNER 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
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, *PGM 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

Programme (PGM)

Indiquez le nom du programme et le nom de la bibliothèque associés à l'objet programme (*PGM) en cours de création. Le nom du programme 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 programme créé est stocké dans la bibliothèque en cours.

*CTLSPEC
Le nom du programme 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 si le membre source provient d'un fichier base de données, le nom de membre défini par le paramètre SRCMBR est utilisé en tant que nom de programme. Si le membre source n'est pas issu d'un fichier base de données, le nom par défaut RPGPGM est attribué au programme.
nom-programme
Entrez le nom de l'objet programme.
*CURLIB
L'objet programme créé 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 programme créé 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.
*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)

Indiquez le nom du membre du fichier source contenant le programme source ILE RPG à compiler.

*PGM
Le nom associé au paramètre PGM en tant que nom du membre de fichier source est utilisé. Ce nom sera également celui de l'objet programme, une fois celui-ci compilé. Si aucun nom de programme n'est affecté au paramètre PGM, le membre source a pour nom celui du premier membre créé ou ajouté dans le fichier source.
nom-membre-fichier-source
Entrez le nom du membre contenant le programme 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 programme. Si des messages de compilation ont un niveau de gravité supérieur à la valeur de ce paramètre, l'objet programme 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 programme n'est pas généré.

10
L'objet programme est généré si 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 une courte description du programme et de ses fonctions. Le texte consigné apparaît à chaque fois que des informations sur le programme s'affichent.

*SRCMBRTXT
Le texte associé au membre source est utilisé.
*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.

Groupe d'activation par défaut (DFTACTGRP)

Indiquez si le programme généré doit toujours être exécuté dans le groupe d'activation par défaut.

*YES
Lorsque le programme est appelé, il est toujours exécuté dans le groupe d'activation par défaut. Ce dernier est celui dans lequel tous les modèles de programmation de base (OPM) sont exécutés.

Si DFTACTGRP(*YES) est indiqué, les programmes ILE RPG peuvent être exécutés comme des programmes OPM pour le partage de fichiers, le contrôle de validation et RCLRSC.

Le liage statique ILE n'est pas disponible lorsqu'un programme est créé à l'aide de DFTACTGRP(*YES). Ceci implique que vous ne pouvez pas utiliser les paramètres BNDDIR ou ACTGRP lors de la création de ce programme. En outre, toute opération d'appel dans votre source doit s'appliquer à un programme et non à une procédure.

DFTACTGRP(*YES) vous permet de déplacer une application d'un programme à ILE RPG.

*NO
Le programme est associé au groupe d'activation indiqué au paramètre ACTGRP. Le liage statique est admis lorsque *NO est spécifié.

Si ACTGRP(*CALLER) est indiqué et que le programme est appelé par un programme associé au groupe d'activation, ce programme est exécuté selon la sémantique ILE pour le partage de fichiers, le contrôle de validation et RCLRSC.

DFTACTGRP(*NO) vous permet de bénéficier des possibilités d'ILE telles que l'exécution dans un groupe d'activation désigné ou le liage à un programme de service.

Groupe d'activation (ACTGRP)

Indique le groupe d'activation avec lequel ce programme est associé lors de son lancement.

*STGMDL
Si STGMDL(*TERASPACE) est indiqué, le programme est activé dans le groupe d'activation QILETS lorsqu'il est appelé. Autrement, il est activé dans le groupe d'activation QILE.
*NEW
Lorsque ce programme est appelé, il est activé dans un nouveau groupe d'activation.
*CALLER
Lorsque ce programme est appelé, il est activé dans le groupe d'activation du programme appelant.
nom-groupe-activation
Indiquez le nom du groupe d'activation à utiliser lors de l'appel du programme.

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

Indique l'attribut de modèle d'espace mémoire du programme.

*SNGLVL
Le programme est créé avec un modèle d'espace mémoire adressable unique. Lorsqu'un programme à modèle d'espace mémoire adressable unique est activé et exécuté, il est fourni avec un espace mémoire adressable unique pour l'espace mémoire statique et automatique. Ce type de programme s'exécute uniquement dans un groupe d'activation à espace mémoire adressable unique.
*TERASPACE
Le programme est créé avec un modèle d'espace mémoire à téraoctets. Lorsqu'un programme à modèle d'espace mémoire à téraoctets est activé et exécuté, il est fourni avec un espace mémoire à téraoctets pour l'espace mémoire statique et automatique. Ce type de programme s'exécute uniquement dans un groupe d'activation à espace mémoire à téraoctets.
*INHERIT
Le programme est créé avec un modèle d'espace mémoire hérité. Lorsqu'il est activé, le programme adopte le modèle d'espace mémoire du groupe d'activation dans lequel il est activé. Il peut aussi hériter du modèle d'espace mémoire du programme appelant. Lorsque le modèle d'espace mémoire *INHERIT est sélectionné, *CALLER doit être indiqué pour le paramètre ACTGRP.

Répertoire de liage (BNDDIR)

Indique la liste des répertoires de liage utilisés lors de la résolution des symboles.

*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 associée au travail est explorée. Si aucune bibliothèque en cours n'est indiquée, QGPL est utilisée.
*USRLIBL
Seules les bibliothèques de la section utilisateur de la liste des bibliothèques du travail sont explorées.
nom-bibliothèque
Indiquez le nom de la bibliothèque à explorer.

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 programme si le niveau de gravité le plus élevé renvoyé par le compilateur est inférieur à celui spécifié par l'option GENLVL.
*NOGEN
Ne crée pas l'objet programme.
*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)

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

*STMT
Permet le débogage de l'objet programme à 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 programme 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 programme 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 de source et de copie pour le débogage de l'objet programme 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 liste, de source et de copie pour le débogage de l'objet programme 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 pour le débogage de l'objet programme 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 programme ILE RPG ainsi que tous les messages de 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.
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 :Si le programme comporte des erreurs, il est possible que les indentations ne soient pas correctes.

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 SRTSEQ extraite du travail lors de la création du programme est utilisée.
*JOBRUN
La valeur SRTSEQ extraite du travail lors de l'exécution du programme est utilisée.
*LANGIDUNQ
Une table de tri à poids uniques est utilisée. Cette valeur spéciale est utilisée avec le paramètre LANGID pour déterminer quelle est la table de tri appropriée.
*LANGIDSHR
Une table de tri à poids partagés est utilisée. Cette valeur spéciale est utilisée avec le paramètre LANGID pour déterminer quelle est la table de tri appropriée.
nom-table-tri
Entrez le nom complet de la table de tri à utiliser avec le programme.
*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)

Indiquez 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 tri appropriée.

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

Remplacement programme (REPLACE)

Indiquez si un nouveau programme est créé lorsqu'un programme de même nom existe déjà dans la bibliothèque indiquée explicitement ou implicitement. Les modules intermédiaires créés lors du traitement de la commande CRTBNDRPG ne sont pas sujets aux spécifications REPLACE. Le paramètre REPLACE(*NO) est associé implicitement à la bibliothèque QTEMP. Les modules intermédiaires sont supprimés une fois le traitement de la commande CRTBNDRPG terminé.

*YES
Un nouveau programme est créé dans la bibliothèque spécifiée. Le programme de même nom existant dans la bibliothèque indiquée est transféré dans la bibliothèque QRPLOBJ.
*NO
Le nouveau programme n'est pas créé si un programme portant le même nom existe dans la bibliothèque désignée. Un message s'affiche et la compilation est interrompue.

Profil utilisateur (USRPRF)

Indiquez le profil utilisateur devant exécuter l'objet programme créé. Le profil du propriétaire du programme ou celui de l'utilisateur du programme est utilisé pour l'exécution du programme et la gestion des objets qu'il peut utiliser (y compris pour les droits dont le programme dispose pour chacun des objets). Ce paramètre n'est pas mis à jour si le programme existe déjà. Pour modifier sa valeur, supprimez le programme et refaites la compilation avec la valeur correcte. Si les objets composant *MODULE existent, vous pouvez choisir d'appeler la commande CRTPGM.

*USER
Le programme s'exécute avec le profil associé à l'utilisateur du programme.
*OWNER
Le programme s'exécute en fonction des profils de l'utilisateur et du propriétaire du programme. Les droits sur les objets associés à chacun de ces profils sont utilisés pour l'accès aux objets pendant la phase d'exécution du programme. Tout objet créé lors de cette phase appartient à l'utilisateur du programme.

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 programme, les droits peuvent être modifiés pour la totalité ou une partie des utilisateurs à l'aide des commandes CL GRTOBJAUT (Accorder droits sur un objet) ou RVKOBJAUT (Révoquer 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 autorisant toutes les opérations sur l'objet programme à l'exception de celles réservées au propriétaire ou contrôlées par les droits de gestion de la liste d'autorisation. L'utilisateur peut contrôler l'existence de l'objet programme, indiquer son niveau de sécurité, le modifier et lui appliquer des fonctions de base, mais il ne peut pas transférer à un autre la propriété de l'objet.
*CHANGE
Fournit tous les droits sur les données ainsi que le droit d'appliquer des actions à l'objet programme, à l'exception de celles qui sont réservées au propriétaire ou contrôlées par les droits sur l'objet et par les droits de gestion de l'objet. L'utilisateur peut modifier l'objet et lui appliquer des fonctions de base.
*USE
Fournit les droits d'opération sur l'objet et les droits de lecture, ainsi que les droits permettant d'appliquer des fonctions de base à l'objet 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. Cela 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 créé.

Si vous ne souhaitez pas que les utilisateurs puissent effectuer un cliché des variables, utilisez la commande CHGPGM pour supprimer les informations observables du programme.

*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 programme est ajouté. L'objet programme est protégé par cette liste d'autorisation, et le droit public associé se voit attribuer la valeur *AUTL. La liste d'autorisation doit exister sur le système lors de l'émission de la commande CRTBNDRPG.

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 programme ILE RPG peut utiliser les enregistrements contenant des zones admettant les valeurs indéfinies qui proviennent des fichiers base de données à description externe.

*NO
Indique que le programme ILE RPG ne procédera pas au traitement des enregistrements contenant des zones admettant les valeurs indéfinies qui proviennent de fichiers à description externe. Si vous tentez d'extraire un enregistrement contenant des valeurs indéfinies, le programme ILE RPG ne peut pas accéder aux données qu'il contient et une erreur de mappage de données se produit.
*INPUTONLY
Indique que le programme ILE RPG peut lire les 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 programme 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 programme
  • Affecter une valeur indéfinie à une zone l'acceptant
*USRCTL
Indique que le programme 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 programme peut déterminer si une zone admettant une valeur indéfinie a cette valeur, et il peut affecter cette valeur à une zone l'admettant 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 programme.
*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-condition
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 programme.
*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 programme. 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 programme. Il s'agit de la valeur par défaut.
*COL
La collecte des données de profilage est activée pour ce programme. *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.

Remarque :Si vous utilisez le paramètre BNDDIR pour lier des modules et des programmes de service supplémentaires, ces derniers ne sont pas affectés lorsque la valeur *COL ou *NOCOL est associée au programme. L'attribut de données de profilage de programme correspondant à un module est défini lors de la création de ce dernier.

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 du programme 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 générées dans le module RPG qui est créé comme première étape de la commande CRTBNDRPG.
*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.

*PGM
Le nom indiqué au paramètre PGM 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 programme source en objet programme

CRTBNDRPG   PGM(MABIB/XMPLE1)
            SRCFILE(MABIB/QRPGSRC)  SRCMBR(XMPLE1)
            OUTPUT(*PRINT)  TEXT('Programme RPG IV')

Cette commande permet d'appeler le compilateur pour que ILE RPG crée un programme nommé XMPLE1. Le programme 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

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

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