COBOL - Input-Output section - ASSIGN clause



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

COBOL - Input-Output section - ASSIGN clause
Enterprise COBOL for z/OS, V4.2, Language Reference

A cláusula ASSIGN associa o nome de um arquivo em um programa ao nome externo real do arquivo de dados.

assignment-name-1
Identifica o arquivo de dados externo.
Pode ser especificado como um nome ou como um literal alfanumérico.

assignment-name-1 não é o nome de um item de dados e assignment-name-1 não pode estar contido em um item de dados.
É apenas uma cadeia de caracteres.
Não pode conter um caractere sublinhado.

Qualquer assignment-name após o primeiro é verificado na sintaxe, mas não afeta a execução do programa.

assignment-name-1 tem os seguintes formatos:

label-
Documenta (para o programador) o dispositivo e a classe de dispositivo aos quais um arquivo está atribuído.
Deve terminar em um hífen; o valor especificado não é verificado de outra forma.
Não tem efeito na execução do programa.
Se especificado, deve terminar com um hífen.

S-
Para arquivos QSAM, o campo S- (organização) pode ser omitido.

AS-
Para arquivos seqüenciais do VSAM, o campo AS- (organização) deve ser especificado.

Para arquivos indexados e relativos do VSAM, o campo da organização deve ser omitido.

name
Um campo obrigatório que especifica o nome externo para este arquivo.

Ele deve ser o nome especificado na instrução DD para este arquivo ou o nome de uma variável de ambiente que contém informações de alocação de arquivo.
Para obter detalhes sobre como especificar uma variável de ambiente, consulte Assignment name for environment variable.

O nome deve estar em conformidade com as seguintes regras de formação:

  • Se assignment-name-1 for uma palavra definida pelo usuário:
    • O nome pode conter de um a oito caracteres.
    • O nome pode conter os caracteres A-Z, a-z e 0-9.
    • O caractere inicial deve ser alfabético.
    • O nome não pode conter um sublinhado (underscore).
  • Se assignment-name-1 for literal:
    • O nome pode conter de um a oito caracteres.
    • O nome pode conter os caracteres A-Z, a-z, 0-9, @, # e $.
    • O caractere inicial deve ser alfabético.
    • O nome não pode conter um sublinhado (underscore).

Para palavras definidas pelo usuário e literais, o compilador convete o nome para maiúsculas para formar o ddname do arquivo.

Em um arquivo de classificação (SORT) ou mesclagem (MERGE), o nome é tratado como um comentário.

Se o conector de arquivo referenciado por file-name-1 na cláusula SELECT for um conector de arquivo externo, todas as entradas de controle de arquivo na unidade de execução que fazem referência a esse conector de arquivo deverão ter uma especificação consistente para assignment-name-1 na cláusula ASSIGN.
Para arquivos QSAM e arquivos relativos e indexados VSAM, o nome especificado na primeira assignment-name-1 deve ser idêntico.
Para arquivos sequenciais VSAM, ele deve ser especificado como nome AS.

Assignment name for environment variable - Nome da atribuição para variável de ambiente

O componente de nome da assignment-name-1 é tratado inicialmente como um ddname.
Se nenhum arquivo foi alocado usando esse ddname, o nome será tratado como uma variável de ambiente.

O nome da variável de ambiente deve ser definido usando apenas maiúsculas, porque o compilador COBOL converte automaticamente o nome do arquivo externo para maiúsculas.

Se essa variável de ambiente existir e contiver uma opção PATH ou DSN válida (descrita abaixo), o arquivo será alocado dinamicamente usando as informações fornecidas por essa opção.

Se a variável de ambiente não contiver uma opção PATH ou DSN válida ou se a alocação dinâmica falhar, a tentativa de abrir o arquivo resultará no status 98.

O conteúdo da variável de ambiente é verificado em cada instrução OPEN.
Se um arquivo foi alocado dinamicamente por uma instrução OPEN anterior e o conteúdo da variável de ambiente foi alterado desde a OPEN anterior, a alocação anterior é desalocada dinamicamente antes de realocar dinamicamente o arquivo usando as opções atualmente definidas na variável de ambiente.

Quando a unidade de execução termina, o sistema de tempo de execução COBOL desaloca automaticamente todas as alocações dinâmicas geradas automaticamente.

Environment variable contents for a QSAM file - Conteúdo da variável de ambiente para um arquivo QSAM

Para um arquivo QSAM, a variável de ambiente deve conter uma opção DSN ou PATH no formato mostrado abaixo.

O data-set-name deve ser totalmente qualificado.
O conjunto de dados não deve ser um conjunto de dados temporário; isto é, não deve começar com um e comercial (&).

Após o nome do conjunto de dados (data-set-name ) ou o nome do membro ( member-name), os atributos do conjunto de dados podem seguir em qualquer ordem.

As opções que seguem o DSN (como NEW ou TRACKS) devem ser separadas por vírgula ou por um ou mais espaços em branco.

Os espaços em branco no início e no final do conteúdo da variável de ambiente são ignorados.
Você não deve codificar espaços em branco entre parênteses ou entre uma palavra-chave e o parêntese esquerdo que segue imediatamente a palavra-chave.

COBOL não fornece um padrão para a disposição do conjunto de dados (NEW, OLD, SHR ou MOD); no entanto, seu sistema operacional pode fornecer um.
Para evitar resultados inesperados ao abrir o arquivo, você sempre deve especificar NEW, OLD, SHR ou MOD com a opção DSN ao usar variáveis de ambiente para alocação dinâmica de arquivos QSAM.

Para obter informações sobre como especificar os valores dos atributos do conjunto de dados, consulte a descrição da instrução DD no z/OS MVS JCL Reference.

path-name deve ser um nome absoluto do caminho; isto é, deve começar com uma barra.
Para obter mais informações sobre como especificar o nome do caminho, consulte a descrição do parâmetro PATH no z/OS MVS JCL Reference.

Os espaços em branco no início e no final do conteúdo da variável de ambiente são ignorados.
Você não deve codificar espaços em branco entre parênteses ou entre uma palavra-chave e o parêntese esquerdo que segue imediatamente a palavra-chave.

Environment variable contents for a line-sequential file - Conteúdo da variável de ambiente para um arquivo seqüencial de linha

Para um arquivo seqüencial de linha, a variável de ambiente deve conter uma opção PATH no seguinte formato:

path-name deve ser um nome absoluto do caminho; isto é, deve começar com uma barra.

Os espaços em branco no início e no final do conteúdo da variável de ambiente são ignorados.
Você não deve codificar espaços em branco entre parênteses ou entre uma palavra-chave e o parêntese esquerdo que segue imediatamente a palavra-chave.

Environment variable contents for a VSAM file - Conteúdo da variável de ambiente para um arquivo VSAM

Para um arquivo VSAM indexado, relativo ou seqüencial, a variável de ambiente deve conter uma opção DSN no seguinte formato:

data-set-name especifica o nome do conjunto de dados para o cluster base.
O nome do conjunto de dados (data-set-name) deve ser totalmente qualificado e deve fazer referência a um conjunto de dados VSAM predefinido e catalogado existente.

Se um arquivo indexado tiver índices alternativos, deverão ser definidas variáveis de ambiente adicionais que contenham opções DSN (como acima) para cada um dos caminhos de índice alternativos.
Os nomes dessas variáveis de ambiente devem seguir a mesma convenção de nomenclatura usada para nomes de ddnames de índice alternativos.
Isso é:

  • O nome da variável de ambiente para cada caminho de índice alternativo é formado concatenando o nome da variável de ambiente do cluster base com um número inteiro, começando com 1 para o caminho associado ao primeiro índice alternativo e incrementando em 1 para o caminho associado a cada índice alternativo sucessivo.
    (Por exemplo, se o nome da variável de ambiente para o cluster base for CUST, os nomes de variáveis de ambiente para os índices alternativos serão CUST1, CUST2, ...,.)

  • Se o comprimento do nome da variável de ambiente do cluster básico já tiver oito caracteres, os nomes das variáveis de ambiente para os índices alternativos serão formados truncando a parte do cluster base do nome da variável de ambiente à direita para reduzir o resultado concatenado para oito caracteres.

As opções que seguem o DSN (como SHR) devem ser separadas por vírgula ou por um ou mais espaços em branco.

Os espaços em branco no início e no final do conteúdo da variável de ambiente são ignorados.
Você não deve codificar espaços em branco entre parênteses ou entre uma palavra-chave e o parêntese esquerdo que segue imediatamente a palavra-chave.

COBOL não fornece um padrão para disposição do conjunto de dados (OLD ou SHR); no entanto, seu sistema operacional pode fornecer um.
Para evitar resultados inesperados ao abrir o arquivo, você sempre deve especificar OLD ou SHR com a opção DSN ao usar variáveis de ambiente para alocação dinâmica de arquivos VSAM.



© Copyright IBM Corp.