A INITIALIZE define categorias selecionadas de campos de dados para valores predeterminados. É funcionalmente equivalente a uma ou mais instruções MOVE.
INITIALIZE não executa nenhuma ação nas áreas FILLER e também a cláusula OCCURS DEPENDING ON intocada.
INITIALIZE statement do,
Syntax:
INITIALIZE identifier-1 [REPLACING {ALPHABETIC/ALPHANUMERIC/NUMERIC/ALPHANUMERIC-EDITED/NUMERIC-EDITED} DATA BY {identifier-2/literal}] |
INITIALIZE SUBSTITUIÇÃO: Para mover dados com constantes específicas em vez de zeros e espaços.
Vamos ver o exemplo para entender os conceitos com clareza,
01 WS-RECORD. 05 WS-NUMBER PIC 9(09). 05 WS-NAME PIC X(10). 05 WS-LOB PIC X(03). |
Exemplo 1:
INITIALIZE WS-RECORD. |
Isso move zeros para WS-NUMBER e espaços para WS-NAME e WS-LOB.
Exemplo 2:
INITIALIZE WS-RECORD REPLACING NUMERIC DATA BY 9 ALPHANUMERIC DATA BY 'X'. |
Esta instrução acima move 9 TO WS-NUMBER AND X está sendo movido para WS-NAME e WS-LOB.