Create CL Module (CRTCLMOD)

Where allowed to run: All environments (*ALL)
Threadsafe: No
Parameters
Examples
Error messages

The Create Control Language Module (CRTCLMOD) command creates a control language (CL) module from the specified CL source member.

Top

Parameters

Keyword Description Choices Notes
MODULE Module Qualified object name Required, Positional 1
Qualifier 1: Module Name
Qualifier 2: Library Name, *CURLIB
SRCFILE Source file Qualified object name Optional, Positional 2
Qualifier 1: Source file Name, QCLSRC
Qualifier 2: Library Name, *LIBL, *CURLIB
SRCMBR Source member Name, *MODULE Optional, Positional 3
TEXT Text 'description' Character value, *SRCMBRTXT, *BLANK Optional
OUTPUT Output *PRINT, *NONE Optional, Positional 4
OPTION Source listing options Values (up to 4 repetitions): *XREF, *NOXREF, *GEN, *NOGEN, *SECLVL, *NOSECLVL, *EVENTF, *NOEVENTF Optional, Positional 5
LOG Log commands *JOB, *YES, *NO Optional
REPLACE Replace module object *YES, *NO Optional
TGTRLS Target release Simple name, *CURRENT, *PRV Optional
AUT Authority Name, *LIBCRTAUT, *CHANGE, *ALL, *USE, *EXCLUDE Optional
SRTSEQ Sort sequence Single values: *HEX, *JOB, *JOBRUN, *LANGIDUNQ, *LANGIDSHR
Other values: Qualified object name
Optional
Qualifier 1: Sort sequence Name
Qualifier 2: Library Name, *LIBL, *CURLIB
LANGID Language ID Character value, *JOBRUN, *JOB Optional
OPTIMIZE Optimization *NONE, *BASIC, *FULL, 10, 20, 30, 40 Optional
DBGVIEW Debugging view *STMT, *SOURCE, *LIST, *ALL, *NONE Optional
ENBPFRCOL Enable performance collection *PEP, *FULL, *NONE Optional
Top

Module (MODULE)

Specifies the module object to be created.

This is a required parameter.

Qualifier 1: Module

name
Specify the name of the module to be created.

Qualifier 2: Library

*CURLIB
The module is stored in the current library for the job. If no current library entry exists in the library list, QGPL is used.
name
Specify the library where the module is to be stored.
Top

Source file (SRCFILE)

Specifies the source file that contains the CL source member to be compiled.

Qualifier 1: Source file

QCLSRC
The source file named QCLSRC, that contains the CL source member to be compiled, is used.
name
Specify the name of the source file that contains the CL source member to be compiled. The source file can be a database file, a device file, or an inline data file.

Qualifier 2: Library

*LIBL
All libraries in the library list for the current thread are searched until the first match is found.
*CURLIB
The current library for the thread is used to locate the source file. If no library is specified as the current library for the thread, the QGPL library is used.
name
Specify the name of the library to be searched.
Top

Source member (SRCMBR)

Specifies the name of the member of the source file that contains the CL source member to be compiled.

*MODULE
The CL source member to be compiled is in the member of the source file that has the same name as that specified for the MODULE parameter for the compiled module.
name
Specify the name of the member that contains the CL source, if the member name is not the same as the name of the module to be created.
Top

Text 'description' (TEXT)

Specifies text that briefly describes the compiled CL module.

*SRCMBRTXT
The text is taken from the source file member used to create the CL module. If the source file is an inline data file or a device file, the text is blank.
*BLANK
Text is not specified.
'description'
Specify no more than 50 characters of text, enclosed in apostrophes.
Top

Output (OUTPUT)

Specifies whether or not a compiler listing is produced.

*PRINT
The compiler listing is produced. The information contained in the listing is dependent on the values specified for the Source listing options (OPTION) parameter.
*NONE
The compiler listing is not produced. When a listing is not required, this option should be used because compile-time performance may be better.
Top

Source listing options (OPTION)

Specifies the types of output lists created when this command is processed and whether a program is created. A maximum of four of the following values can be specified in any order on this parameter. If neither or both of the values in each group are specified, the underlined value is used.

Note: The underlined values for this parameter are similar to, but not actually default values, and therefore, cannot be changed with the Change Command Default (CHGCMDDFT) command.

Module Creation Option

*GEN
All phases of the compilation process are carried out.
*NOGEN
Compilations stops after syntax checking. No module is created.

Cross-Reference Option

*NOXREF
No cross-reference list of references to variable and data items in the source is created.
*XREF
A cross-reference listing of the source program is produced. OUTPUT(*PRINT) must be specified.

Second-Level Message Text Option

*NOSECLVL
No second level message text is printed.
*SECLVL
Second-level message text is printed. OUTPUT(*PRINT) must be specified.

Event File Creation Option

*NOEVENTF
The compiler will not produce an event file for use by the CoOperative Development Environment for iSeries (CODE for iSeries) product.
*EVENTF
The compiler produces an event file for use by the CODE for iSeries product. The event file will be created as a member in the file EVFEVENT in your source library. The CODE for iSeries product uses this file to offer error feedback integrated with the CODE for iSeries editor. This option is normally specified by the CODE for iSeries product on your behalf.
Top

Log commands (LOG)

Specifies the logging options for a created CL module.

*JOB
Logging of commands in a running CL module depends on the status of the job's logging flag (see the LOGCLPGM parameter of the Change Job (CHGJOB) command). To list the logged commands, the logging level of the jobs must be 3 or 4.

A *YES or *NO value takes precedence over any value specified in the CHGJOB command.

*YES
The commands are logged in all cases.
*NO
The commands are not logged.
Top

Replace module object (REPLACE)

Specifies whether an existing module is replaced if a module with the same name already exists in the specified library.

*YES
The existing module is replaced by moving it to the QRPLOBJ library.

Notes:

  1. If a running CL module is recompiled with *YES specified for the REPLACE parameter, message queue errors may occur in the running CL module.
  2. Specifying *YES for this parameter causes the value on the AUT parameter to be ignored. The existing module is used as the source of authority. To change the authority for the module, you can use the Grant Object Authority (GRTOBJAUT) or Revoke Object Authority (RVKOBJAUT) commands.
*NO
The existing module is not replaced. When a module with the same name exists in the specified library, a message is displayed and compilation stops.
Top

Target release (TGTRLS)

Specifies the release of the operating system on which you intend to use the object being created.

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, V5R3M0 is version 5, release 3, modification 0.

Valid values depend on the current version, release, and modification level of the operating system, and they change with each new release. You can press F4 while prompting this command parameter to see a list of valid target release values.

*CURRENT
The object is to be used on the release of the operating system currently running on your system. The object can also be used on a system with any subsequent release of the operating system installed.
*PRV
The object is to be used on the previous release with modification level 0 of the operating system. The object can also be used on a system with any subsequent release of the operating system installed.
character-value
Specify the release in the format VxRxMx. The object can be used on a system with the specified release or with any subsequent release of the operating system installed.
Top

Authority (AUT)

Specifies the authority you are granting to the users who do not have specific authority for the object, who are not on the authorization list, and whose user group has no specific authority for the object.

*LIBCRTAUT
The system determines the authority for the object by using the value specified for the Create authority (CRTAUT) parameter on the Create Library (CRTLIB) command for the library containing the object to be created. If the value specified for the CRTAUT parameter is changed, the new value will not affect any existing objects.
*CHANGE
The user can perform all operations on the object except those limited to the owner or controlled by object existence (*OBJEXIST) and object management (*OBJMGT) authorities. The user can change and perform basic functions on the object. *CHANGE authority provides object operational (*OBJOPR) authority and all data authority. If the object is an authorization list, the user cannot add, change, or remove users.
*ALL
The user can perform all operations except those limited to the owner or controlled by authorization list management (*AUTLMGT) authority. The user can control the object's existence, specify the security for the object, change the object, and perform basic functions on the object. The user also can change ownership of the object.
*USE
The user can perform basic operations on the object, such as running a program or reading a file. The user cannot change the object. Use (*USE) authority provides object operational (*OBJOPR), read (*READ), and execute (*EXECUTE) authorities.
*EXCLUDE
The user cannot access the object.
name
Specify the name of an authorization list to be used for authority to the object. Users included in the authorization list are granted authority to the object as specified in the list. The authorization list must exist when the object is created.

Note: This parameter is ignored when REPLACE(*YES) is specified.

Top

Sort sequence (SRTSEQ)

Specifies the sort sequence table to be used for string comparisons for this CL module. The sort sequence value is used with the language identifier and the coded character set identifier of the job to determine the sort sequence table to use.

Single values

*HEX
A sort sequence table is not used. The hexadecimal values of the characters are used to determine the sort sequence.
*JOB
The sort sequence used is the SRTSEQ associated with the job when the CL module is created.
*JOBRUN
The sort sequence used is the SRTSEQ associated with the job when the CL module is run.
*LANGIDUNQ
The sort sequence table uses a unique weight for each character, and is the unique-weight sort table for the language specified for the LANGID parameter.
*LANGIDSHR
The sort sequence table uses the same weight for multiple characters, and is the shared-weight sort sequence table associated with the language specified for the LANGID parameter.

Qualifier 1: Sort sequence

name
Specify the name of the sort sequence table to be used with this CL module.

Qualifier 2: Library

*LIBL
All libraries in the library list for the current thread are searched until the first match is found.
*CURLIB
The current library for the thread is searched. If no library is specified as the current library for the thread, the QGPL library is searched.
name
Specify the name of the library to be searched.
Top

Language ID (LANGID)

Specifies the language identifier to be used when SRTSEQ(*LANGIDUNQ) or SRTSEQ(*LANGIDSHR) is specified.

*JOBRUN
The language ID used is the LANGID associated with the job when the CL module is run.
*JOB
The language ID used is the LANGID associated with the job when the CL module is created.
language-ID
Specify the language identifier to be used by the job.
Top

Optimization (OPTIMIZE)

Specifies the optimization level of the generated program code. ILE CL can not be optimized. For compatibility, values other than *NONE are accepted, but no optimization will be performed. ILE CL modules and programs should not be used with system functions that require an optimization level higher than *NONE.

*NONE
The generated code is not optimized. This value is the fastest level of optimization in terms of translation time. This level allows variables to be displayed and modified while debugging.
*BASIC
No optimization is performed. CPD0861 will be displayed in the compiled listing and sent to the job log.
*FULL
No optimization is performed. CPD0861 will be displayed in the compiled listing and sent to the job log.
10
No optimization is performed. CPD0861 will be displayed in the compiled listing and sent to the job log.
20
No optimization is performed. CPD0861 will be displayed in the compiled listing and sent to the job log.
30
No optimization is performed. CPD0861 will be displayed in the compiled listing and sent to the job log.
40
No optimization is performed. CPD0861 will be displayed in the compiled listing and sent to the job log.
Top

Debugging view (DBGVIEW)

Specifies which level of debugging is available for the compiled module, and which source views are available for source-level debugging.

*STMT
The compiled module can be debugged using module statement numbers and symbolic identifiers.
*NONE
None of the debug options for debugging the compiled module are available.
*ALL
All of the debug options for debugging the compiled module can be used. The source and debug listing views are generated.
*SOURCE
The source view for debugging the compiled module is generated.
*LIST
The listing view for debugging the compiled module is generated.
Top

Enable performance collection (ENBPFRCOL)

Specifies whether collection of performance data is enabled.

*PEP or *NONE
Performance data is collected for the Program Entry Procedure entry and exit. There are no entry or exit hooks in the module's internal procedures and no precall or postcall hooks around calls to other procedures.
*FULL
Performance data is collected for procedure entry and exit. Performance data is also collected before and after calls to external procedures.
Top

Examples

Example 1: Creating a CL Module

CRTCLMOD   PAYROLL  TEXT('Payroll Program')

This command calls the ILE CL compiler to create a module (*MODULE) named PAYROLL. The CL procedure source is in the default source file QCLSRC in the member PAYROLL. A compiler listing is created.

Top

Error messages

*ESCAPE Messages

CPF0C33
Target release &1 not valid.
CPF0C35
Target release &1 is not a supported release.
CPF0807
File containing compiler printout not opened.
CPF0808
Error in compiler-created code.
CPF0814
Licensed Program 5722-SS1 Option 9 not installed.
CPF0815
CL program &1 in &2 cannot be created for previous release.
CPF0821
Module &1 not created.
CPF0849
Space addressing violation.
CPF3202
File &1 in library &2 in use.
CPF3203
Cannot allocate object for file &1 in &2.
CPF3224
Not authorized to perform operation on file &1.
Top