Sign in

docs RPG Reference

Initialization Operations

Initialization Operations

The initialization operations provide run-time clearing and resetting of all elements in a structure (record format, data structure, array, or table) or a variable (field, subfield, or indicator).

The initialization operations are:

These operations are available in both the traditional syntax and free-form syntax.

Note: In general, the default value for a variable depends only on its data type. For example, the default value for a numeric variable is zero. However, when a variable is defined like an enumeration or it is defined like another variable that is defined like an enumeration, the default value for the variable is the default constant for the enumeration. See Typed Enumerations.

The CLEAR operation sets all elements in a structure or variable to their default value depending on the field type (numeric, character, graphic, UCS-2, indicator, pointer, or date/time/timestamp).

The RESET operation sets all elements in a structure or variable to their initial values (the values they had at the end of the initialization step in the program cycle).

The RESET operation is used with data structure initialization and the initialization subroutine (*INZSR). You can use both data structure initialization and the *INZSR to set the initial value of a variable. The initial value will be used to set the variable if it appears in the result field of a RESET operation.

When these operation codes are applied to record formats, only fields which are output are affected (if factor 2 is blank) or all fields (if factor 2 is *ALL). The factor 1 entry of *NOKEY prevents key fields from being cleared or reset.

*ALL may be specified in factor 2 if the result field contains a table name, or multiple occurrence data structure or record format. If *ALL is specified all elements or occurrences will be cleared or reset. See CLEAR (Clear) and RESET (Reset) for more detail.

For more information see Data Types and Data Formats.