COBOL - Comando RETURN - www.cadcobol.com.br



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

COBOL - Comando RETURN
Enterprise COBOL for z/OS, V4.2, Language Reference

A instrução RETURN transfere registros da fase final de uma operação de classificação ou mesclagem para um OUTPUT PROCEDURE.

A instrução RETURN pode ser usada apenas dentro do intervalo de um OUTPUT PROCEDURE associado a uma instrução SORT ou MERGE.

Dentro de um OUTPUT PROCEDURE, pelo menos uma instrução RETURN deve ser especificada.

Quando a instrução RETURN é executada, o próximo registro do file-name-1 é disponibilizado para processamento pelo OUTPUT PROCEDURE.

file-name-1
Deve ser descrito em uma entrada DATA DIVISION SD.

Se mais de uma descrição de registro estiver associada ao file-name-1, esses registros compartilharão automaticamente o mesmo armazenamento; isto é, a área é implicitamente redefinida.
Após a execução da instrução RETURN, apenas o conteúdo do registro atual estará disponível.
Se algum item de dados estiver além do comprimento do registro atual, seu conteúdo será indefinido.

INTO phrase
Quando existe apenas uma descrição de registro associada ao file-name-1 ou todos os registros e o item de dados referenciado pelo identifier-1 descreve um item alfanumérico elementar ou um item de grupo alfanumérico, o resultado da execução de uma instrução RETURN com o INTO A frase é equivalente à aplicação das seguintes regras na ordem especificada:
  • A execução da mesma instrução RETURN sem a frase INTO.
  • O registro atual é movido da área de registro para a área especificada pelo identifier-1, de acordo com as regras da instrução MOVE sem a frase CORRESPONDING.
    O tamanho do registro atual é determinado pelas regras especificadas para a cláusula RECORD.
    Se a entrada de descrição do arquivo contiver uma cláusula RECORD IS VARYING, a movimentação implícita será uma movimentação de grupo.
    A instrução MOVE implícita não ocorre se a execução da instrução RETURN não tiver êxito.
    Qualquer assinatura ou modificação de referência associada ao identifier-1 é avaliada após a leitura do registro e imediatamente antes de ser movida para o item de dados.
    O registro está disponível na área de registro e no item de dados referenciado pelo identifier-1.

Quando há várias descrições de registro associadas ao file-name-1 e nem todas descrevem um item de grupo alfanumérico ou item alfanumérico elementar, as seguintes regras se aplicam:

  1. Se o arquivo referenciado por file-name-1 contiver registros de tamanho variável, ocorrerá uma movimentação de grupo.
  2. Se o arquivo referenciado por file-name-1 contiver registros de tamanho fixo, ocorrerá uma movimentação de acordo com as regras de uma instrução MOVE, utilizando, como descrição do campo de envio, o registro que especifica o maior número de posições de caracteres.
    Se existir mais de um registro, o registro do campo de envio selecionado será aquele entre os registros que aparecerem primeiro na descrição do file-name-1.

O identifier-1 deve ser um campo de recebimento válido para a entrada da descrição do registro de envio selecionada, de acordo com as regras da instrução MOVE.

As áreas de registro associadas ao file-name-1 e ao identifier-1 não devem ser a mesma área de armazenamento.

AT END phrases

A imperative-statement especificada na frase AT END é executada após todos os registros terem sido retornados do file-name-1.
Não é possível executar mais instruções RETURN como parte do procedimento de saída atual.

Se uma condição no final não ocorrer durante a execução de uma instrução RETURN, depois que o registro for disponibilizado e após executar qualquer movimentação implícita resultante da presença de uma frase INTO, o controle será transferido para a instrução imperativa especificada pela frase NOT AT END.
Se ocorrer uma condição no final, o controle é transferido para o final da instrução RETURN.

END-RETURN phrase

Esse terminador de escopo explícito serve para delimitar o escopo da instrução RETURN.
END-RETURN permite que uma instrução RETURN condicional seja aninhada em outra instrução condicional.
END-RETURN também pode ser usado com uma declaração RETURN imperativa.

Para obter mais informações, consulte Delimited scope statements.



© Copyright IBM Corp.