Tuesday 8 October 2024

A instrução INITIALIZE define categorias selecionadas de campos de dados para valores predeterminados. É funcionalmente equivalente a uma ou mais instruções MOVE.

               .--------------.   
               V              |   
>>-INITIALIZE----identifier-1-+--------------------------------->

>--+------------------------------------------------------------------------+-><
   |            .---------------------------------------------------------. |   
   |            V                                                         | |   
   '-REPLACING----+-ALPHABETIC----------+--+------+--BY--+-identifier-2-+-+-'   
                  +-ALPHANUMERIC--------+  '-DATA-'      '-literal-1----'       
                  +-ALPHANUMERIC-EDITED-+                                       
                  +-NATIONAL------------+                                       
                  +-NATIONAL-EDITED-----+                                       
                  +-NUMERIC-------------+                                       
                  +-NUMERIC-EDITED------+                                       
                  +-DBCS----------------+                                       
                  '-EGCS----------------'                                       

 

Identifier-1

Áreas de recepção.

identifier-1 deve fazer referência a um dos seguintes procedimentos:

  • Um item de grupo alfanumérico
  • Um item de grupo nacional
  • Um item elementar de dados de uma das seguintes categorias:
    • Alfabético
    • Alfanumérico
    • Editado alfanumericamente
    • DBCS
    • Ponto flutuante externo
    • Ponto flutuante interno
    • Nacional
    • Editada nacionalmente
    • Numérico
    • Numeric-edited
  • Um registro especial que é válido como um operando de recepção em um comunicado MOVE com identifer-2 ou literal-1 como o operando de envio.

Quando identificador-1 faz referência a um item de grupo nacional, identificador-1 é processado como um item de grupo.

 

identifier-2, literal-1

Enviando áreas.

Quando identificador-2 faz referência a um item de grupo nacional, identificador-2 é processado como um item de dados elementar da categoria nacional.

identifier-2 deve fazer referência a um item de dados elementar (ou um item de grupo nacional tratado como fundamental) que é válido como um operando o envio de uma declaração MOVIMENTO com identificador-1 como o operando de recepção.

literal-1 deve ser um literal que é válido como um operando o envio de uma declaração MOVE com identificador-1 como o operando de recepção.

Um item subscrita pode ser especificado para identificador-1 . A tabela completa pode ser inicializado única especificando identificador-1 como um grupo que contém a tabela completa.

 

Nota: A descrição entrada de dados para identificador-1 pode conter a frase DEPENDING da cláusula OCCURS. No entanto, você não pode usar a instrução INITIALIZE para inicializar um item de variavelmente colocado ou um item de tamanho variável.

A descrição entrada de dados para identificador-1 não deve conter uma cláusula renomeia.

Registros especiais podem ser especificados para identificador-1 e identificador-2 somente se eles são válidos receber campos ou o envio de campos, respectivamente, para as declarações do MOVE implícitas.

 

REPLACING

Quando o uso do REPLACING for especificada:

  • identifier-2 deve fazer referência a um item de uma categoria que é válido como um operando o envio de uma declaração MOVE para um item da categoria correspondente especificado na frase REPLACING.
  • literal-1 deve ser de uma categoria que é válido como um operando o envio de uma declaração MOVE para um item da categoria correspondente especificado na frase REPLACING.
  • Um literal de ponto flutuante, um item de dados de ponto flutuante interno de categoria ou um item de dados de ponto flutuante externo de categoria é tratado como se estivesse na categoria NUMERIC.
  • A mesma categoria não pode ser repetida em uma frase REPLACING.
  • A palavra-chave após a palavra REPLACING corresponde a uma categoria de dados mostrados na Classes e categorias de dados.

 

Quando a frase REPLACING não é especificada:

  • SPACE é o item de envio implícito para receber itens de categoria alfabética, alfanumérica, editada alfanumericamente, DBCS, nacional ou editada nacionalmente.
  • ZERO é o item de envio implícito para receber itens da categoria numérica ou numérica editada.

 

Regras de instrução INITIALIZE

  1. Se identificador-1 faz referência a um item fundamental, um item de grupo alfanumérico, ou um item grupo nacional, todas as operações são realizadas como se uma série de declarações movimento tinha sido escrito, cada um dos quais tinha um item elementar como um campo de recepção.

Se a frase SUBSTITUIR for especificada:

  • Se identifier-1 faz referência a um item de grupo alfanumérico ou um item grupo nacional, qualquer item fundamental dentro do item de dados referenciado pelo identificador-1 é inicializado somente se ele pertence a uma categoria especificada na frase de substituição.

Inicialização se passa como se o item de dados referenciado pelo identificador-2 ou literal-1 foram o operando o envio de uma declaração MOVIMENTO implícita para o item de recepção.

Todos os campos de recebimento elementares, incluindo todas as ocorrências de itens de tabela dentro do grupo, são inicializados, com as seguintes exceções:

  • Itens de dados do índice
  • Referências de objeto
  • Os itens de dados definidos com USAGE IS POINTER, USAGE IS FUNCTION-POINTER ou USAGE IS PROCEDURE-POINTER
  • Elementos de dados elementares FILLER
  • Itens que são subordinados ao identificador-1 e contêm uma cláusula redefine, ou quaisquer itens subordinados a tal item. (No entanto, identificador-1 pode conter uma cláusula redefine ou estar subordinado a um item de redefinição.)
  1. As áreas referenciadas pelo identificador-1 são inicializados na ordem (da esquerda para a direita) do aparecimento de identificador-1 no comunicado. Dentro de um grupo recebendo campo, itens elementares afetados são inicializados na ordem de sua definição dentro do grupo.
  2. Se identificador-1 ocupa a mesma área de armazenamento como identificador-2 , o resultado da execução desta instrução é indefinido, mesmo que estes operadores são definidos pela mesma descrição entrada de dados.