When an externally described file contains null-capable fields and the ALWNULL(*USRCTL) keyword is specified on a control specification, you can do the following:
You are responsible for ensuring that fields containing null values are used correctly within the program. For example, if you use a null-capable field as factor 2 of a MOVE operation, you should first check if it is null before you do the MOVE, otherwise you may corrupt your result field value. You should also be careful when outputting a null-capable field to a file that does not have the field defined as null-capable, for example a WORKSTN or PRINTER file, or a program-described file.
A field is considered null-capable if it is null-capable in any externally described database record and is not defined as a constant in the program.
When a field is considered null-capable in an RPG program, a null indicator is associated with the field. Note the following:
Null indicators are initialized to zeros during program initialization and thus null-capable fields do not contain null values when the program starts execution.