Tuesday 8 October 2024

CORRESPONDING (CORR) faz com que as operações ADD, SUBTRACT e MOVE sejam executadas em itens de dados elementares do mesmo nome se o item de grupo alfanumérico ou o item de grupo nacional ao qual eles pertencem for especificado. Um grupo nacional é processado como um item de grupo quando a frase CORRESPONDING é usada.

Ambos os identificadores que seguem a palavra-chave CORRESPONDING devem nomear os itens de grupo. Nesta discussão, estes identificadores são referidos como identifier-1 e identifier-2identifier-1 faz referência ao item do grupo de envio. identifier-2 faz referência ao item do grupo de recepção.

Dois itens de dados subordinados, um de identifier-1 e um do identifier-2, correspondem se as seguintes condições forem verdadeiras:

  • Em uma declaração ADD ou SUBTRACT, ambos os itens de dados são elementar itens de dados numéricos. Outros itens de dados são ignorados.
  • Em uma instrução MOVE, pelo menos um dos itens de dados é um item elementar, e o movimento é permitido pelas regras de movimento.
  • Os dois itens subordinados têm o mesmo nome e as mesmas eliminatórias até, mas não incluindo identifier-1 e identifier-2.
  • Os itens subordinados não são identificados pela palavra-chave FILLER.
  • Nem identifier-1 nem o identifier-2 é descrita como um nível 66, 77, 88 ou item, e também não é descrito como um elemento de dados de índice. Nem identifier-1 nem identifier-2 pode ser modificado por referência.
  • Nem identifier-1 nem identifier-2 é descrito com USAGE POINTER, USAGE FUNCTION-POINTER, USAGE PROCEDURE-POINTER, ou USAGE OBJECT REFERENCE.
  • Os itens subordinados não incluem um REDEFINES, RENAMES, OCCURS, USAGE INDEX, USAGE POINTER, USAGE PROCEDURE-POINTER, USAGE FUNCTION-POINTER, ou USAGE OBJECT REFERENCE nas suas descrições.

No entanto, identifier-1 identifier-2 em si podem conter ou estar subordinada a itens que contêm uma REDEFINES ou OCCURS cláusula em suas descrições.

  • O nome de cada item de dados subordinado que satisfaz essas condições é único após a aplicação de qualificadores implícitos.

 

identifier-1identifier-2, ou ambos pode ser subordinado a um item de enchimento.

Por exemplo, considere duas hierarquias de dados definidas da seguinte forma:

05 ITEM-1 OCCURS 6.
   10  ITEM-A PIC S9(3).
   10  ITEM-B PIC +99.9.
   10  ITEM-C PIC X(4).
   10  ITEM-D REDEFINES ITEM-C PIC 9(4).
   10  ITEM-E USAGE COMP-1.
   10  ITEM-F USAGE INDEX.
05 ITEM-2.
   10  ITEM-A PIC 99.
   10  ITEM-B PIC +9V9.
   10  ITEM-C PIC A(4).
   10  ITEM-D PIC 9(4).
   10  ITEM-E PIC 9(9) USAGE COMP.
   10  ITEM-F USAGE INDEX.

Se ADD CORR ITEM-2 TO ITEM-1(x) for especificado, ITEM-A e ITEM-A (x), ITEM-B e (x) ITEM-B, e ITEM-E e ITEM-E (x) são consideradas correspondentes e são somadas. ITEM-C e ITEM-C (x) não estão incluídos porque eles não são numéricos. ITEM-D e ITEM-D (x) não estão incluídos porque ITEM-D (x) inclui uma cláusula redefine em sua descrição de dados. ITEM-F e ITEM-F (x) não estão incluídos porque eles são itens de dados de índice. Note-se que ITEM-1 é válido tanto como identificador-1 ou identificador-2 .

Se qualquer uma das operações individuais na ADD CORRESPONDENTE declaração produz uma condição de erro de tamanho, imperative-statement-1 na ON SIZE ERROR não é executada até que todas as adições individuais estão concluídas.