The Create Bound RPG Program 2 command combines the functions of
CRTRPGMOD and CRTPGM and changes the defaults of certain parameters.
The intent is to have a simple create command for single module
programs that replaces CRTBNDRPG.
The CRTBNDRPG program is limited in that it does not have a parameter
for binding a Service Program (it must be in a Binding Directory).
CRTBNDRPG2 adds the BNDSRVPGM parameter and also changes the defaults
of a few parameters.
A typical command would be:
The defaults would cause member ABC of the QRPGLESRC file to be
created as a module in QTEMP. The CRTPGM command is then run
automatically to create program ABC in the current library.
CRTBNDRPG2 defaults to use more typical functions:
- DBGVIEW(*SOURCE) - Can be changed by use of a data area
Adding a PDM option for CRTBNDRPG2
The ADDPDMOPT command will allow you to add the IR (ILE RPG) option
for CRTBNDRPG2. Enter the following command and press F4 to prompt.
The command prompt will allow you to name the PDM options file. You
may use a different value than IR.
Assume you used the default of IR. You can then use WRKMBRPDM with
the IR option such as:
Opt Member Type Text
-- ------ ---- --------------------
__ MBR1 RPGLE A test member
IR MBR2 RPGLE A second test member
When the IR option is used, there is no 'Confirm Compile of Member'
prompt if an object program of the same name already exists. The
REPLACE option on CRTBNDCL2 is used (default is *YES).
F4 may be used in conjunction with IR to change some of the command
parameters before submitting the job.
There is no check made to ensure that an RPGLE type source member is
being used. The CRTBNDRPG2 command will be attempted on whatever
member is specified.
Differences with CRTBNDRPG
CRTBNDRPG2 supports a parameter that is not on CRTBNDRPG, but is on
** BNDSRVPGM. Bind service program.
A special parameter CRTMSGS has also been added to allow the CRTxxx
messages to be sent. This is intended as a testing option.
The following defaults are changed:
** DFTACTGRP. The parameter shown is ACTGRP (not DFTACTGRP) with
a default of QILE. If *DFT is entered, the CRTBNDRPG command
is used to create a bound RPG program in the default
activation group (DFTACTGRP(*YES) is specified).
** DBGVIEW. Changed from *STMT to *SOURCE. The default on the
command is *DTAARA. If the CRTBNDRPG2 data area does not
exist on the library list, *SOURCE is used. The first
CRTBNDRPG2 data area found on the library list can contain a
value to be used such as *LIST.
To create the data area, use the following command:
CRTDTAARA DTAARA(xxx/CRTBNDRPG2) TYPE(*CHAR)
TEXT('Used by TAA CRTBNDRPG2 tool for
the DBGVIEW parameter')
The value must be one of the valid entries for the DBGVIEW
** OPTION. Changed from blank (meaning all default values to
*SRCSTMT). This causes the *SRCSTMT option instead of the
default of *NOSRCSTMT.
** AUT. Changed to *USE from *LIBCRTAUT. This is generally a
better default as it prevents misuse of the debug capability.
The following CRTPGM parameters are not supported:
Note that CRTPGM allows multiple modules. CRTBNDRPG2 supports only a
Temporary module in QTEMP
The module name created in QTEMP is TAATMPMOD. It is automatically
deleted as part of CRTBNDRPG2.
CRTBNDRPG2 escape messages you can monitor for
None. Escape messages from based on functions will be re-sent.
Command parameters *CMD
The parameters up to DBGVIEW appear on the initial prompt. Other
parameters may be accessed using F9 or F10.
PGM The qualified name of the program to be created.
The library value defaults to *CURLIB.
SRCFILE The source file to be used. The default is
QRPGLESRC. The library qualifier defaults to *LIBL.
*CURLIB may also be used.
SRCMBR The source member to be used. The default is *PGM
meaning the same name as the program to be created.
GENLVL Controls the generation of the object based on the
level of the error messages. The default is 10.
The value must be between 0 and 20. Refer to
CRTBNDRPG for the definition.
TEXT The text description of the program to be created.
The default is *SRCMBRTXT meaning the same text as
appears on the source member.
ACTGRP The Activation Group to be used. The default is
QILE. *NEW or *CALLER (which also appear on
CRTBNDRPG) may also be used. Refer to CRTBNDRPG for
*DFT is a new entry which allows the default
activation group as provided by the system to be
used. If *DFT is specified, the CRTBNDRPG command
is used instead of CRTRPGMOD and CRTPGM.
DFTACTGRP(*YES) is specified on CRTBNDRPG.
DBGVIEW The Debug View to be used. The default is *DTAARA
which differs from the CRTBNDRPG default. If no
CRTBNDRPG2 data area exists on the library list,
*SOURCE is used as the default.
The first CRTBNDRPG2 data area found can contain the
default that you wish to use. See the previous
comments how how to create the data area.
*STMT, *LIST, *COPY, *ALL, or *NONE may also be
entered. Refer to CRTBNDRPG for the definition.
BNDSRVPGM The Bind Service Program parameter allows up to 40
Service Programs to be bound to the program. Refer
to CRTPGM for the definition.
BNDDIR The Binding Directory parameter allows up to 40
Binding Directories to be used when creating the
program. Refer to CRTBNDRPG for the definition.
OPTION Source level options may be entered as a list. The
default is *SRCSTMT to allow the source sequence
numbers to be displayed on the debug display and
used when debugging. The other defaults are the
same as on CRTBNDRPG (*XREF *GEN *NOSECLVL *SHOWCPY
*EXPDDS *EXT *NOSHOWSKP *DEBUGIO and *NOEVENTF) and
need not be specified. Refer to CRTBNDRPG for the
OUTPUT Specifies whether a compiler listing is generated.
The default is *PRINT to cause the listing. *NONE
may be specified to prevent the listing. Refer to
CRTBNDRPG for the definition.
OPTIMIZE The optimization level of the program. The default
is *NONE. *BASIC or *FULL may also be specified.
Refer to CRTBNDRPG for the definition.
INDENT Whether structured operations should be indented.
The default is *NONE. The characters to be used for
indentation may be entered. Refer to CRTBNDRPG for
CVTOPT Specifies how the compiler handles date, time,
timestamp, graphic, and variable length data types.
*NONE is the default meaning to ignore these types.
*DATETIME, *VARCHAR, *GRAPHIC, and *VARGRAPHIC may
be entered to cause these fields to be declared as
fixed length character. Refer to CRTBNDRPG for the
SRTSEQ The sort sequence used by the program. The default
is *HEX. *JOB, *JOBRUN, *LANGIDUNQ, *LANGIDSHR, or
a sort table name may also be specified. Refer to
CRTBNDRPG for the definition.
LANGID Specifies the language identifier to be used when
SRTSEQ(*LANGIDUNQ) or SRTSEQ(*LANGIDSHR) is used.
*JOBRUN is the default. *JOB or a specific language
identifier may be entered. Refer to CRTBNDRPG for
REPLACE Whether to replace the existing program. The
default is *YES. *NO may also be specified. If an
existing program is replaced, security
considerations from the previous version are
retained. Refer to CRTBNDRPG for the definition.
USRPRF Whether to run the program with the user or owner's
authority. The default is *USER. *OWNER may also
AUT The authority of the program. The default is *USE.
This differs from the CRTBNDRPG default of
*LIBCRTAUT. *LIBCRTAUT, *ALL, *USE, or *EXCLUDE may
also be specified. Refer to CRTBNDRPG for the
The default has been changed to better protect the
security of programs. Using the default for the
*LIBCRTAUT function typically results in a program
being created with *CHANGE authority. This allows
any user who is authorized to the debug commands to
be able to debug the program. Because debug allows
changes during the running of the program, it is a
questionable function to allow for all programmers
who have debug authority.
Specifying *USE allows only the owner (or an
*ALLOBJ) user to be able to debug the program.
TRUNCNBR Specifies whether a truncated value should be moved
to the result field or an error should occur when
numeric overflow occurs. The default is *YES to
allow truncation. *NO may be specified to cause an
error. Refer to CRTBNDRPG for the definition.
FIXNBR Specifies whether decimal data which is not valid
should be fixed at run time. *NONE is the default
meaning that an error occurs on invalid decimal
data. The other values that may be entered are
*ZONED or *INPUTPACKED. Refer to CRTBNDRPG for the
TGTRLS The release the program is intended to run on. The
default is *CURRENT. *PRV or a specific release may
also be entered. If the object is intended for a
prior release, the TGTRLS parameter on the SAV
commands must also be used. See the command prompt
for the supported releases.
ALWNULL Specifies the handling of null capable fields. The
default is *NO meaning the compiler will not process
fields that are null capable and a data mapping
error will occur if such a field is found.
*INPUTONLY, *USRCTL, or *YES may also be entered.
Refer to CRTBNDRPG for the definition.
DEFINE Specifies condition names before the compilation
begins. This is the equivalent of the /DEFINE
statement in the source. Refer to CRTBNDRPG for the
ENBPFRCOL Whether to enable performance data collection. The
default is *PEP. *ENTRYEXIT or *FULL may also be
specified. Refer to CRTBNDRPG for the definition.
PRFDTA Specifies the program profiling data attribute of
the program. This provides for an advanced
optimization technique. Refer to CRTBNDRPG for the
CRTMSGS Whether to send messages for the command string used
for the CRT commands. The default is *NO to not
send any CRT messages. *YES may be specified to
cause messages to be sent. This parameter is
intended as a testing option.
The following TAA Tools must be on your system:
EXTLST Extract list
RSNLSTMSG Resend last message
SNDCOMPMSG Send completion message
SNDESCMSG Send escape message
SNDSTSMSG Send status message
None, the tool is ready to use.
Objects used by the tool
Object Type Attribute Src member Src file
------ ---- --------- ---------- ----------
CRTBNDRPG2 *CMD TAAPGND QATTCMD
TAAPGNDC *PGM CLP TAAPGNDC QATTCL