COBOL - DATA DIVISION - DDE - REDEFINES clause considerations



Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

COBOL - DATA DIVISION - data description entry - REDEFINES clause considerations
Enterprise COBOL for z/OS, V4.2, Language Reference

Quando uma área é redefinida, todas as descrições da área estão sempre em vigor; isto é, a redefinição não substitui uma descrição anterior.
Portanto, se B REDEFINES C for especificado, uma das duas instruções processuais MOVE X TO B ou MOVE Y TO C poderá ser executada em qualquer ponto do programa.
No primeiro caso, a área descrita como B receberia o valor e o formato de X.
No segundo caso, a mesma área física (descrita agora como C) receberia o valor e o formato de Y.
Observe que, se a segunda instrução for executado imediatamente após o primeiro, o valor de Y substitui o valor de X na única área de armazenamento.

O uso de um item de dados redefinido não precisa ser igual ao de um item redefinido.
No entanto, isso não causa nenhuma alteração no formato ou no conteúdo dos dados existentes.
Por exemplo:

           05  B             PICTURE  99 USAGE DISPLAY VALUE 8.
           05  C REDEFINES B PICTURE S99 USAGE COMPUTATIONAL-4.
           05  A             PICTURE S99 USAGE COMPUTATIONAL-4.

A redefinição de B não altera a configuração de bits dos dados na área de armazenamento.
Portanto, as duas instruções a seguir produzem resultados diferentes:

           ADD B TO A
           ADD C TO A

No primeiro caso, o valor 8 é adicionado a A (porque B possui USAGE DISPLAY).
Na segunda instrução, o valor -3848 é adicionado a A (porque C possui USAGE COMPUTATIONAL-4) e a configuração de bit da área de armazenamento tem o valor binário -3848.

Este exemplo demonstra como o uso inadequado da redefinição pode fornecer resultados inesperados ou incorretos.



© Copyright IBM Corp.