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:
- Se o arquivo referenciado por file-name-1 contiver registros de tamanho variável, ocorrerá uma movimentação de grupo.
- 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.