QUALIFY

QUALIFY affects qualification rules and controls whether to extend qualification rules so that some data items that cannot be referenced under COBOL Standard rules can be referenced.

QUALIFY option syntax

Read syntax diagramSkip visual syntax diagramQUALIFY(COMPATEXTEND)

Default is: QUALIFY(COMPAT)

Abbreviations are: QUA(C | E)

QUALIFY(COMPAT)
If QUALIFY(COMPAT) is in effect, references to data items must be unique.
QUALIFY(EXTEND)
If QUALIFY(EXTEND) is in effect, qualification rules are extended so that some references that are not unique by COBOL standard rules can be unique. If every level in the containing hierarchy of names is specified, the set of qualifiers is called a complete set of qualifiers. If there is only one data item with a specific complete set of qualifiers, the reference resolves to that data item, even if the same set of qualifiers can match with another reference as an incomplete set of qualifiers.
Example
01 A. 
    02 B. 
        03 C PIC X. 
        03 A PIC X. 
    02 C PIC X. 
 .
 .
 .
    Move space to C of A      *> Refers to 02 level C (unique only with QUALIFY(EXTEND))
    Move space to A           *> Refers to 01 level A (unique only with QUALIFY(EXTEND))
    Move space to C of B of A *> Refers to 03 level C (unique by COBOL standard rules)
    Move space to C of B      *> Refers to 03 level C (unique by COBOL standard rules)