Sign in

docs RPG Guide

Description of the CRTBNDRPG Command

Description of the CRTBNDRPG Command

The parameters, keywords, and variables of the CRTBNDRPG command are listed below. The same information is available online. Enter the command name on a command line, press PF4 (Prompt) and then press PF1 (Help) for any parameter you want information on.

PGM : Specifies the program name and library name for the program object (*PGM) you are creating. The program name and library name must conform to IBM i naming conventions. If no library is specified, the created program is stored in the current library.

\*CTLSPEC
:   The name for the compiled program is taken from the name specified
    in the DFTNAME keyword of the control specification. If the program
    name is not specified on the control specification and the source
    member is from a database file, the member name, specified by the
    SRCMBR parameter, is used as the program name. If the source is not
    from a database file then the program name defaults to RPGPGM.

program-name
:   Enter the name of the program object.

\*CURLIB
:   The created program object is stored in the current library. If
    you have not specified a current library, QGPL is used.

library-name
:   Enter the name of the library where the created program object
    is to be stored.

SRCFILE : Specifies the name of the source file that contains the ILE RPG source member to be compiled and the library where the source file is located. The recommended source physical file length is 112 characters: 12 for the sequence number and date, 80 for the code and 20 for the comments. This is the maximum amount of source that is shown on the compiler listing.

QRPGLESRC
:   The default source file QRPGLESRC contains the ILE RPG source
    member to be compiled.

source-file-name
:   Enter the name of the source file that contains the ILE RPG source
    member to be compiled.

\*LIBL
:   The system searches the library list to find the library where
    the source file is stored. This is the default.

\*CURLIB
:   The current library is used to find the source file. If you have
    not specified a current library, QGPL is used.

library-name
:   Enter the name of the library where the source file is stored.

SRCMBR : Specifies the name of the member of the source file that contains the ILE RPG source program to be compiled.

\*PGM
:   Use the name specified by the PGM parameter as the source file
    member name. The compiled program object will have the same name as
    the source file member. If no program name is specified by the PGM
    parameter, the command uses the first member created in or added to
    the source file as the source member name.

source-file-member-name
:   Enter the name of the member that contains the ILE RPG source
    program.

SRCSTMF : Specifies the path name of the stream file containing the ILE RPG source code to be compiled.

The
path name can be either absolutely or relatively qualified. An absolute
path name starts with '/'; a relative path name starts with a character
other than '/'.

If absolutely-qualified, the path name is complete.
If relatively-qualified, the path name is completed by appending the
job's current working directory to the path name.

The SRCMBR
and SRCFILE parameters cannot be specified with the SRCSTMF parameter.

GENLVL : Controls the creation of the program object. The program object is created if all errors encountered during compilation have a severity level less than or equal to the generation severity level specified.

10
:   A program object will not be generated if you have messages with
    a severity-level greater than 10.

severity-level-value
:   Enter a number, 0 through 20 inclusive. For errors greater than
    severity 20, the program object will not be generated.

TEXT : Allows you to enter text that briefly describes the program and its function. The text appears whenever program information is displayed.

\*SRCMBRTXT
:   The text of the source member is used.

\*BLANK
:   No text appears.

'description'
:   Enter the text that briefly describes the function of the source
    specifications. The text can be a maximum of 50 characters and must
    be enclosed in apostrophes. The apostrophes are not part of the 50-character
    string. Apostrophes are not required if you are entering the text
    on the prompt screen.

DFTACTGRP : Specifies whether the created program is intended to always run in the default activation group.

\*YES
:   When this program is called it will always run in the default
    activation group. The default activation group is the activation group
    where all original program model (OPM) programs are run.

    Specifying
    DFTACTGRP(\*YES) allows ILE RPG programs to behave like OPM programs
    in the areas of override scoping, open scoping, and RCLRSC.

    ILE
    static binding is not available when a program is created with DFTACTGRP(\*YES).
    This means that you cannot use the BNDDIR or ACTGRP parameters when
    creating this program. In addition, any call operation in your source
    must call a program and not a procedure.

    DFTACTGRP(\*YES) is
    useful when attempting to move an application on a program-by-program
    basis to ILE RPG.

\*NO
:   The program is associated with the activation group specified
    by the ACTGRP parameter. Static binding is allowed when \*NO is specified.

    If
    ACTGRP(\*CALLER) is specified and this program is called by a program
    running in the default activation group, then this program will behave
    according to ILE semantics in the areas of file sharing, file scoping
    and RCLRSC.

    DFTACTGRP(\*NO) is useful when you intend to take
    advantage of ILE concepts; for example, running in a named activation
    group or binding to a service program.

OPTION : Specifies the options to use when the source member is compiled. You can specify any or all of the options in any order. Separate the options with one or more blank spaces. If an option is specified more than once, the last one is used.

\*XREF
:   Produces a cross-reference listing (when appropriate) for the
    source member.

\*NOXREF
:   A cross-reference listing is not produced.

\*GEN
:   Create a program object if the highest severity level returned
    by the compiler does not exceed the severity specified in the GENLVL
    option.

\*NOGEN
:   Do not create a program object.

\*NOSECLVL
:   Do not print second-level message text on the line following the
    first-level message text.

\*SECLVL
:   Print second-level message text on the line following the first-level
    message text in the Message Summary section.

\*SHOWCPY
:   Show source records of members included by the /COPY compiler
    directive.

\*NOSHOWCPY
:   Do not show source records of members included by the /COPY compiler
    directive.

\*EXPDDS
:   Show the expansion of externally described files in the listing
    and display key field information.

\*NOEXPDDS
:   Do not show the expansion of externally described files in the
    listing or display key field information.

\*EXT
:   Show the list of external procedures and fields referenced during
    the compile on the listing.

\*NOEXT
:   Do not show the list of external procedures and fields referenced
    during the compilation on the listing.

\*NOSHOWSKP
:   Do not show ignored statements in the source part of the listing.
    The compiler ignores statements as a result of /IF, /ELSEIF or /ELSE
    directives.

\*SHOWSKP
:   Show all statements in the source part of the listing, regardless
    of whether or not the compiler has skipped them.

\*NOSRCSTMT
:   Line Numbers in the listing are assigned sequentially; these numbers
    are used when debugging using statement numbers. Line Numbers are
    shown on the left-most column of the listing. The source IDs and SEU
    Sequence Numbers are shown on the two right-most columns of the listing.

\*SRCSTMT
:   Statement numbers for debugging are generated using SEU sequence
    numbers and source IDs as follows:

    ```rpgle
    Statement_Number = source_ID * 1000000 + source_SEU_sequence_number
    ```

    SEU
    Sequence Numbers are shown on the left-most column of the listing.
    Statement Numbers are shown on the right-most column of the listing;
    these numbers are used when debugging using statement numbers.

    Note: When
    OPTION(\*SRCSTMT) is specified, all sequence numbers in the source
    files must contain valid numeric values. If there are duplicate sequence
    numbers in the same source file, the behavior of the debugger may
    be unpredictable and statement numbers for diagnostic messages or
    cross reference entries may not be meaningful.

\*DEBUGIO
:   Generate breakpoints for all input and output specifications.

\*NODEBUGIO
:   Do not generate breakpoints for input and output specifications.

\*UNREF
:   Unreferenced data items are included in the compiled module.

\*NOUNREF
:   Unreferenced data items are not included in the compiled module.
    This reduces the amount of storage used, allowing a larger program
    to be compiled. You cannot look at or assign to an unreferenced data
    item during debugging when the \*NOUNREF option is chosen. The unreferenced
    data items still appear in the cross-reference listings produced by
    specifying OPTION(\*XREF).

\*NOEVENTF
:   Do not create an Event File for use by Rational Developer
    for i. Rational Developer
    for i uses this file
    to provide error feedback integrated with the editor. An Event File
    is normally created when you create a module or program from within Rational Developer
    for i.

\*EVENTF
:   Create an Event File for use by Rational Developer
    for i. The Event File
    is created as a member in file EVFEVENT in the library where the created
    module or program object is to be stored. If the file EVFEVENT does
    not exist it is automatically created. The Event File member name
    is the same as the name of the object being created.

    Rational Developer
    for i uses this file
    to provide error feedback integrated with the editor. An Event File
    is normally created when you create a module or program from within
    the Rational Developer
    for i.

DBGVIEW : Specifies which level of debugging is available for the compiled program object, and which source views are available for source-level debugging.

\*STMT
:   Allows the program object to be debugged using the Line Numbers
    or Statement Numbers of the compiler listing. Line Numbers are shown
    on the left-most column of the source section of the compiler listing
    when OPTION(\*NOSRCSTMT) is specified. Statement Numbers are shown
    on the right-most column of the source section of the compiler listing
    when OPTION(\*SRCSTMT) is specified.

\*SOURCE
:   Generates the source view for debugging the compiled program object.
    This view is not available if the root source member is a DDM file.
    Also, if changes are made to any source members after the compile
    and before attempting to debug the program, the views for those source
    members may not be usable.

\*LIST
:   Generates the listing view for debugging the compiled program
    object. The information contained in the listing view is dependent
    on whether \*SHOWCPY, \*EXPDDS, and \*SRCSTMT are specified for the OPTION
    parameter.

    Note: The listing view will not show any indentation that
    you may have requested using the Indent option.

\*COPY
:   Generates the source and copy views for debugging the compiled
    program object. The source view for this option is the same source
    view generated for the \*SOURCE option. The copy view is a debug view
    which has all the /COPY source members included. These views will
    not be available if the root source member is a DDM file. Also, if
    changes are made to any source members after the compile and before
    attempting to debug the program, the views for those source members
    may not be usable.

\*ALL
:   Generates the listing, source and copy views for debugging the
    compiled program object. The information contained in the listing
    view is dependent on whether \*SHOWCPY, \*EXPDDS, and \*SRCSTMT are specified
    for the OPTION parameter.

\*NONE
:   Disables all of the debug options for debugging the compiled program
    object.

DBGENCKEY : Specifies the encryption key to be used to encrypt program source that is embedded in debug views.

\*NONE
:   No encryption key is specified.

character-value
:   Specify the key to be used to encrypt program source that is embedded
    in debug views stored in the module object. The length of the key
    can be between 1 and 16 bytes. A key of length 1 to 15 bytes will
    be padded to 16 bytes with blanks for the encryption. Specifying a
    key of length zero is the same as specifying \*NONE.

    If the key
    contains any characters which are not invariant over all code pages,
    it will be up to the user to ensure that the target system uses the
    same code page as the source system, otherwise the key may not match
    and the decryption may fail. If the encryption key must be entered
    on systems with differing code pages, it is recommended that the key
    be made of characters which are invariant for all EBCDIC code pages.

OUTPUT : Specifies if a compiler listing is generated.

\*PRINT
:   Produces a compiler listing, consisting of the ILE RPG program source and
    all compile-time messages. The information contained in the listing
    is dependent on whether \*XREF, \*SECLVL, \*SHOWCPY, \*EXPDDS, \*EXT, \*SHOWSKP,
    and \*SRCSTMT are specified for the OPTION parameter.

\*NONE
:   Do not generate the compiler listing.

OPTIMIZE : Specifies the level of optimization, if any, of the program.

\*NONE
:   Generated code is not optimized. This is the fastest in terms
    of translation time. It allows you to display and modify variables
    while in debug mode.

\*BASIC
:   Some optimization is performed on the generated code. This allows
    user variables to be displayed but not modified while the program
    is in debug mode.

\*FULL
:   Optimization which generates the most efficient code. Translation
    time is the longest. In debug mode, user variables may not be modified
    but may be displayed although the presented values may not be current
    values.

INDENT : Specifies whether structured operations should be indented in the source listing for enhanced readability. Also specifies the characters that are used to mark the structured operation clauses.

Note: Any indentation that
you request here will not be reflected in the listing debug view that
is created when you specify DBGVIEW(\*LIST).

\*NONE
:   Structured operations will not be indented in the source listing.

character-value
:   The source listing is indented for structured operation clauses.
    Alignment of statements and clauses are marked using the characters
    you choose. You can choose any character string up to 2 characters
    in length. If you want to use a blank in your character string, you
    must enclose the string in single quotation marks.

    Note: The indentation
    may not appear as expected if there are errors in the program.

CVTOPT : Specifies how the ILE RPG compiler handles date, time, timestamp, graphic data types, and variable-length data types which are retrieved from externally described database files.

\*NONE
:   Ignores variable-length database data types and use the native
    RPG date, time, timestamp and graphic data types.

\*DATETIME
:   Specifies that date, time, and timestamp database data types are
    to be declared as fixed-length character fields.

\*GRAPHIC
:   Specifies that double-byte character set (DBCS) graphic data types
    are to be declared as fixed-length character fields.

\*VARCHAR
:   Specifies that variable-length character data types are to be
    declared as fixed-length character fields.

\*VARGRAPHIC
:   Specifies that variable-length double-byte character set (DBCS)
    graphic data types are to be declared as fixed-length character fields.

SRTSEQ : Specifies the sort sequence table that is to be used in the ILE RPG source program.

\*HEX
:   No sort sequence table is used.

\*JOB
:   Use the SRTSEQ value for the job when the \*PGM is created.

\*JOBRUN
:   Use
    the SRTSEQ value for the job when the \*PGM is run.

\*LANGIDUNQ
:   Use a unique-weight table. This special value is used in conjunction
    with the LANGID parameter to determine the proper sort sequence table.

\*LANGIDSHR
:   Use a shared-weight table. This special value is used in conjunction
    with the LANGID parameter to determine the proper sort sequence table.

sort-table-name
:   Enter the qualified name of the sort sequence table to be used
    with the program.

\*LIBL
:   The system searches the library list to find the library where
    the sort sequence table is stored.

\*CURLIB
:   The current library is used to find the sort sequence table. If
    you have not specified a current library, QGPL is used.

library-name
:   Enter the name of the library where the sort sequence table is
    stored.

If you want to use the SRTSEQ and
LANGID parameters to determine the alternate collating sequence, you
must also specify ALTSEQ(\*EXT) on the control specification.

LANGID : Specifies the language identifier to be used when the sort sequence is *LANGIDUNQ and *LANGIDSHR. The LANGID parameter is used in conjunction with the SRTSEQ parameter to select the sort sequence table.

\*JOBRUN
:   Use
    the LANGID value associated with the job when the RPG program is executed.

\*JOB
:   Use the LANGID value associated with the job when the RPG program
    is created.

language-identifier
:   Use the language identifier specified. (For example, FRA for French
    and DEU for German.)

REPLACE : Specifies if a new program is created when a program of the same name already exists in the specified (or implied) library. The intermediate module created during the processing of the CRTBNDRPG command are not subject to the REPLACE specifications, and have an implied REPLACE(*NO) against the QTEMP library. The intermediate modules is deleted once the CRTBNDRPG command has completed processing.

\*YES
:   A new program is created in the specified library. The existing
    program of the same name in the specified library is moved to library
    QRPLOBJ.

\*NO
:   A new program is not created if a program of the same name already
    exists in the specified library. The existing program is not replaced,
    a message is displayed, and compilation stops.

USRPRF : Specifies the user profile that will run the created program object. The profile of the program owner or the program user is used to run the program and to control which objects can be used by the program (including the authority the program has for each object). This parameter is not updated if the program already exists. To change its value, you must delete the program and recompile using the new value (or, if the constituent *MODULE objects exist, you may choose to invoke the CRTPGM command).

\*USER
:   The program runs under the user profile of the program's user.

\*OWNER
:   The program runs under the user profile of both the program's
    user and owner. The collective set of object authority in both user
    profiles are used to find and access objects while the program is
    running. Any objects created during the program are owned by the program's
    user.

AUT : Specifies the authority given to users who do not have specific authority to the object, who are not on the authorization list, and whose user group has no specific authority to the object. The authority can be altered for all users or for specified users after the program is created with the CL commands Grant Object Authority (GRTOBJAUT) or Revoke Object Authority (RVKOBJAUT). For further information on these commands, see the CL and APIs section of the Programming category in the IBM i documentation.

\*LIBCRTAUT
:   The public authority for the object is taken from the CRTAUT keyword
    of the target library (the library that contains the object). The
    value is determined when the object is created. If the CRTAUT value
    for the library changes after the create, the new value will not affect
    any existing objects.

\*ALL
:   Authority for all operations on the program object, except those
    limited to the owner or controlled by authorization list management
    authority. The user can control the program object's existence, specify
    this security for it, change it, and perform basic functions on it,
    but cannot transfer its ownership.

\*CHANGE
:   Provides all data authority and the authority to perform all operations
    on the program object except those limited to the owner or controlled
    by object authority and object management authority. The user can
    change the object and perform basic functions on it.

\*USE
:   Provides object operational authority and read authority; that
    is, authority for basic operations on the program object. The user
    is prevented from changing the object.

\*EXCLUDE
:   The user is prevented from accessing the object.

authorization-list name
:   Enter the name of an authorization list of users and authorities
    to which the program is added. The program object will be secured
    by this authorization list, and the public authority for the program
    object will be set to \*AUTL. The authorization list must exist on
    the system when the CRTBNDRPG command is issued.

    Note: Use the AUT
    parameter to reflect the security requirements of your system. The
    security facilities available are described in detail in the Security
    reference manual.

TRUNCNBR : Specifies if the truncated value is moved to the result field or an error is generated when numeric overflow occurs while running the program.

Note: The
TRUNCNBR option does not apply to calculations performed within expressions.
(Expressions are found in the Extended-Factor 2 field.) If overflow
occurs for these calculations, an error will always occur. In
addition, overflow is always signalled for any operation where the
value that is assigned to an integer or unsigned field is out of range.

\*YES
:   Ignore numeric overflow and move the truncated value to the result
    field.

\*NO
:   When numeric overflow is detected, a run time error is generated
    with error code RNX0103.

FIXNBR : Specifies whether decimal data that is not valid is fixed by the compiler.

\*NONE
:   Indicates that decimal data that is not valid will result in decimal
    data errors during run time if used.

\*ZONED
:   Zoned-decimal data that is not valid will be fixed by the compiler
    on the conversion to packed data. Blanks in numeric fields will be
    treated as zeroes. Each decimal digit will be checked for validity.
    If a decimal digit is not valid, it is replaced with zero. If a sign
    is not valid, the sign will be forced to a positive sign code of hex
    'F'. If the sign is valid, it will be changed to either a positive
    sign hex 'F' or a negative sign hex 'D', as appropriate. If the resulting
    packed data is not valid, it will not be fixed.

\*INPUTPACKED
:   Indicates that if packed decimal data that is not valid is encountered
    while processing input specifications, the internal variable will
    be set to zero.

TGTRLS : Specifies the release level of the operating system on which you intend to use the object being created. In the examples given for the *CURRENT and *PRV values, and when specifying the target-release value, the format VxRxMx is used to specify the release, where Vx is the version, Rx is the release, and Mx is the modification level. For example, V2R3M0 is version 2, release 3, modification level 0.

Valid
values for this parameter change every release. The possible values
are:

\*CURRENT
:   The object is to be used on the release of the operating system
    currently running on your system. For example, if V2R3M5 is running
    on the system, \*CURRENT means that you intend to use the object on
    a system with V2R3M5 installed. You can also use the object on a system
    with any subsequent release of the operating system installed.

    Note: If
    V2R3M5 is running on the system, and the object is to be used on a
    system with V2R3M0 installed, specify TGTRLS(V2R3M0), not TGTRLS(\*CURRENT).

\*PRV
:   The object is to be used on the previous release with modification
    level 0 of the operating system. For example, if V2R3M5 is running
    on your system, \*PRV means you intend to use the object on a system
    with V2R2M0 installed. You can also use the object on a system with
    any subsequent release of the operating system installed.

target-release
:   Specify the release in the format VxRxMx. You can use the object
    on a system with the specified release or with any subsequent release
    of the operating system installed.

    Valid values depend on the current
    version, release, and modification level, and they change with each
    new release. If you specify a target-release that
    is earlier than the earliest release level supported by this command,
    an error message is sent indicating the earliest supported release.

Note: The current version of the command may support
options that are not available in previous releases of the command.
If the command is used to create objects that are to be used on a
previous release, it will be processed by the compiler appropriate
to that release, and any unsupported options will not be recognized.
The compiler will not necessarily issue any warnings regarding options
that it is unable to process.

ALWNULL : Specifies how the ILE RPG module will be allowed to use records containing null-capable fields from externally described database files.

\*NO
:   Specifies that the ILE RPG module will not process records with
    null-value fields from externally-described files. If you attempt
    to retrieve a record containing null values, no data in the record
    is accessible to the ILE RPG module and a data-mapping error occurs.

\*INPUTONLY
:   Specifies that the ILE RPG module can successfully read records
    with null-capable fields containing null values from externally-described
    input-only database files. When a record containing null values is
    retrieved, no data-mapping errors occur and the database default values
    are placed into any fields that contain null values. The module cannot
    do any of the following:

    * use null-capable key fields
    * create or update records containing null-capable fields
    * determine whether a null-capable field is actually null while
      the module is running
    * set a null-capable field to be null.

\*USRCTL
:   Specifies that the ILE RPG module can read, write, and update
    records with null values from externally-described database files.
    Records with null keys can be retrieved using keyed operations. The
    module can determine whether a null-capable field is actually null,
    and it can set a null-capable field to be null for output or update.
    The programmer is responsible for ensuring that fields containing
    null values are used correctly within the module.

\*YES
:   Same as \*INPUTONLY.

STGMDL : Specifies the storage model attribute of the program.

\*SNGLVL
:   The program is created with single-level storage model. When a
    single-level storage model program is activated and run, it is supplied
    single-level storage for automatic and static storage. A single-level
    storage program runs only in a single-level storage activation group.

\*TERASPACE
:   The program is created with teraspace storage model. When a teraspace
    storage model program is activated and run, it is supplied teraspace
    storage for automatic and static storage. A teraspace storage program
    runs only in a teraspace storage activation group.

\*INHERIT
:   The program is created with inherit storage model. When activated,
    the program adopts the storage model of the activation group into
    which it is activated. An equivalent view is that it inherits the
    storage model of its caller. When the \*INHERIT storage model is selected,
    \*CALLER must be specified for the Activation group (ACTGRP) parameter.

BNDDIR : Specifies the list of binding directories that are used in symbol resolution.

\*NONE
:   No binding directory is specified.

binding-directory-name
:   Specify the name of the binding directory used in symbol resolution.

    The
    directory name can be qualified with one of the following library
    values:

\*LIBL
:   The system searches the library list to find the library where
    the binding directory is stored.

\*CURLIB
:   The current library for the job is searched. If no library is
    specified as the current library for the job, library QGPL is used.

\*USRLIBL
:   Only the libraries in the user portion of the job's library list
    are searched.

library-name
:   Specify the name of the library to be searched.

ACTGRP : Specifies the activation group this program is associated with when it is called.

\*STGMDL
:   If STGMDL(\*TERASPACE) is specified, the program will
    be activated into the QILETS activation group when it is called. Otherwise,
    this program will be activated into the QILE activation group when
    it is called.

\*NEW
:   When this program is called, it is activated into a new activation
    group.

\*CALLER
:   When this program is called, it is activated into the caller's
    activation group.

activation-group-name
:   Specify the name of the activation group to be used when this
    program is called.

ENBPFRCOL : Specifies whether performance collection is enabled.

\*PEP
:   Performance statistics are gathered on the entry and exit of the
    program entry procedure only. This applies to the actual program-entry
    procedure for a program, not to the main procedure of the modules
    within the program. This is the default.

\*NEW
:   When this program is called, it is activated into a new activation
    group.

\*ENTRYEXIT
:   Performance statistics are gathered on the entry and exit of all
    procedures of the program.

\*FULL
:   Performance statistics are gathered on entry and exit of all procedures.
    Also, statistics are gathered before and after each call to an external
    procedure.

DEFINE : Specifies condition names that are defined before the compilation begins. Using the parameter DEFINE(condition-name) is equivalent to coding the /DEFINE condition-name directive on the first line of the source file.

\*NONE
:   No condition names are defined. This is the default.

condition-name
:   Up to 32 condition names can be specified. Each name can be up
    to 50 characters long. The condition names will be considered to be
    defined at the start of compilation.

PRFDTA : Specifies the program profiling data attribute for the program. Program profiling is an advanced optimization technique used to reorder procedures and code within the procedures based on statistical data (profiling data).

\*NOCOL
:   This program is not enabled to collect profiling data. This is
    the default.

\*COL
:   The program is enabled to collect profiling data. \*COL can be
    specified only when the optimization level of the module is \*FULL,
    and when compiling with a target release of \*CURRENT.

LICOPT : Specifies one or more Licensed Internal Code compile-time options. This parameter allows individual compile-time options to be selected, and is intended for the advanced programmer who understands the potential benefits and drawbacks of each selected type of compiler option.

INCDIR : Specifies one or more directories to add to the search path used by the compiler to find copy files.

The compiler will search the
directories specified here if the relatively specified copy files
in the source program can not be resolved by looking in the current
directory.If the copy file cannot be found in the current directory
or the directories specified in the INCDIR parameter, the directories
specified in the RPGINCDIR environment variable will be searched,
followed by the directory containing the main source file.

\*NONE
:   No directories are specified.

directory
:   Specify up to 32 directories in which to search for copy files.

PGMINFO Parameter: : This option specifies whether program interface information should be generated and where it should be generated. Specify the option values in the following order:

generate
:   Specifies whether program interface information should be generated.
    The possible values are:

    \*NO
    :   Program interface information will not be generated.

    \*PCML
    :   Specifies that PCML (Program Call Markup Language) should be generated.
        The generated PCML makes it easier for Java™ methods
        to call the procedures in this RPG module, with less Java code.

location
:   Specifies the location for the generated program information if
    the generate parameter is \*PCML. The possible values are:

    \*STMF
    :   Specifies that the program information should be generated into
        a stream file. The name of a stream file that will contain the generated
        information must be specified on the INFOSTMF option.

    \*MODULE
    :   Specifies that the program information should be stored in the
        RPG module. For CRTBNDRPG, a module is created as the first step before
        creating a program.

    \*ALL
    :   Specifies that the program information should be generated into
        a stream file and also stored in the module. The name of a stream
        file that will contain the generated information must be specified
        on the INFOSTMF option.

INFOSTMF : Specifies the path name of the stream file to contain the generated program interface information specifed on the PGMINFO option.

The
path name can be either absolutely or relatively qualified. An absolute
path name starts with '/'; a relative path name starts with a character
other than '/'.

If absolutely-qualified, the path name is complete.
If relatively-qualified, the path name is completed by appending
the job's current working directory to the path name.

This
parameter can only be specified when the PGMINFO parameter has a value
other than \*NO.

PPGENOPT : Specifies the preprocessor generation options to use when the source code is compiled.

The possible options are:

\*NONE
:   Run the entire compiler against the source file. Do not copy the
    preprocessor output to a file.

\*DFT
:   Run the preprocessor against the input source. \*RMVCOMMENT, \*EXPINCLUDE
    and \*NOSEQSRC will be used as the options for generating the preprocessor
    output. Use PPSRCFILE and PPSRCMBR to specify an output source
    file and member, or PPSRCSTMF to specify a stream file to contain
    the preprocessor output.

\*RMVCOMMENT
:   Remove comments, blank lines, and most directives during preprocessing.
    Retain only the RPG specifications and any directives necessary
    for the correct interpretation of the specifications..

\*NORMVCOMMENT
:   Preserve comments, blank lines and listing-control directives
    (for example /EJECT, /TITLE) during preprocessing. Transform source-control
    directives (for example /COPY, /IF) to comments during preprocessing.

\*EXPINCLUDE
:   Expand /INCLUDE directives in the generated output file.

\*NOEXPINCLUDE
:   /INCLUDE directives are placed unchanged in the generated output
    file.

    Note: /COPY directives are always expanded

\*SEQSRC
:   If PPSRCFILE is specified, the generated output member has sequential
    sequence numbers, starting at 000001 and incremented by 000001.

\*NOSEQSRC
:   If PPSRCFILE is specified, the generated output member has the
    same sequence numbers as the original source read by the preprocessor

PPSRCFILE : Specifies the source file name and library for the preprocessor output. Use the PPMINOUTLN parameter to control the record length of the file.

source-file-name
:   Specify the name of the source file for the preprocessor output.

    The
    possible library values are:

    \*CURLIB
    :   The preprocessor output is created in the current library. If
        a job does not have a current library, the preprocessor output file
        is created in the QGPL library.

    library-name
    :   Specify the name of the library for the preprocessor output.

PPSRCMBR : Specifies the name of the source file member for the preprocessor output.

\*PGM
:   The name supplied on the PGM parameter is used as the preprocessor
    output member name.

member-name
:   Specify the name of the member for the preprocessor output.

PPSRCSTMF : Specifies the path name of the stream file for the preprocessor output.

\*SRCSTMF
:   The path name supplied on the SRCSTMF parameter is used as the
    preprocessor output path name. The file will have the extension '.i'.

'path-name'
:   Specify the path name for the preprocessor output stream file.

    The
    path name can be either absolutely or relatively-qualified. An absolute
    path name starts with '/'; a relative path name starts with a character
    other than '/'.

    If absolutely-qualified, the path name is complete.
    If relatively-qualified, the path name is completed by appending the
    job's current working directory to the path name.

TGTCCSID : Specifies the CCSID that the compiler uses to read the source files.

\*SRC
:   The source is read in the CCSID of the primary source file,
    or if the file is an IFS file with an ASCII CCSID, the EBCDIC CCSID related to the ASCII CCSID.
    This is the default.

\*JOB
:   The source is read in the job CCSID.
    If the job CCSID is 65535, the source is read in the default CCSID of the job.

1-65534
:   The source is read in the specified CCSID.
    The CCSID must be a single-byte or mixed-byte EBCDIC CCSID.

REQPREXP : Specifies whether prototypes are required for the main procedure and exported procedures.

\*NO
:   Prototypes are not required for the main procedure or exported procedures.
    This is the default.

\*WARN
:   A severity-10 warning is issued if a prototype is not specified for the main procedure or an exported procedure.

\*REQUIRE
:   A prototype is required for the main procedure and exported procedures.
    A severity-30 error is issued if a prototype is not specified for the main procedure or an exported procedure.

PPMINOUTLN : Controls the record length of the source file that is specified by the PPSRCFILE parameter. The record length of the file is the maximum of the value specified by the PPMINOUTLN parameter and the longest record length in the source file specified by the SRCFILE or SRCSTMF parameter.

Note:
When you use the CRTSQLRPGI command with a value other than \*NONE
for the RPGPPOPT parameter,
the CRTBNDRPG or CRTRPGMOD command is invoked with the PPSRCFILE parameter.
You can use the COMPILEOPTS parameter of the CRTSQLRPGI command to
specify the PPMINOUTLN parameter for the CRTBNDRPG or CRTRPGMOD command.

100
:   The minimum value for the PPMINOUTLN parameter is 100.

minimum-PPSRCFILE-record-length
:   Enter a number, 100 through 32754 inclusive.

DATEYY : Specifies how date formats with 2-digit years are handled by the compiler.

\*ALLOW
:   Date formats with 2-digit years are allowed.

\*WARN
:   A severity-10 warning is issued if a date format with 2-digit years is used.

\*NOALLOW
:   A severity-30 error is issued if a date format with 2-digit years is used.