COBOL - DATA DIVISION - DDE - Date format clause - Restrictions on using date fields



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

COBOL - DATA DIVISION - data description entry - Date format clause - Restrictions on using date fields
Enterprise COBOL for z/OS, V4.2, Language Reference

As seções a seguir descrevem restrições ao uso de campos de data nesses contextos:

  • Cláusulas DATE FORMAT (FORMATO DA DATA) combinadas com outras cláusulas
  • Agrupar itens que consistem apenas em um campo de data
  • Elementos de idioma que tratam campos de data como sem datas
  • Elementos de idioma que não aceitam campos de data como argumentos

Para restrições sobre o uso de campos de data em outros contextos, consulte:

Combinando a cláusula DATE FORMAT com outras cláusulas

As frases a seguir são as únicas da cláusula USAGE que podem ser combinadas com a cláusula DATA FORMAT:

  • BINARY
  • COMPUTATIONAL1
  • COMPUTATIONAL-3
  • COMPUTATIONAL-4
  • DISPLAY
  • PACKED-DECIMAL

1USAGE COMPUTATIONAL não pode ser combinado com a cláusula DATE FORMAT se a opção do compilador TRUNC (BIN) estiver em vigor.

A cadeia de caracteres PICTURE deve especificar o mesmo número de caracteres ou dígitos que a cláusula DATE FORMAT.
Para campos de data alfanumérica, os únicos símbolos de sequência de caracteres PICTURE permitidos são A, 9 e X, com pelo menos um X.
Para campos de data numéricos, os únicos símbolos de sequência de caracteres PICTURE permitidos são 9 e S.

As seguintes cláusulas não são permitidas para um item de dados definido com DATE FORMAT:

  • BLANK WHEN ZERO
  • JUSTIFIED
  • SEPARATE CHARACTER da cláusula SIGN

A cláusula EXTERNAL não é permitida para um campo de data em janela ou um item de grupo que contenha um item subordinado de campo de data em janela.

Algumas restrições se aplicam ao combinar as seguintes cláusulas com DATE FORMAT:

Agrupe itens que são campos de data

Se um item de grupo for definido com uma cláusula DATE FORMAT, as seguintes restrições serão aplicadas:

  • Os itens elementares no grupo devem ser USAGE DISPLAY.
  • O comprimento do item do grupo deve ter o mesmo número de caracteres que o padrão de data na cláusula DATE FORMAT.
  • Se o grupo consistir apenas em um campo de data com USAGE DISPLAY e o grupo e o único item subordinado tiverem cláusulas DATE FORMAT, as cláusulas DATE FORMAT deverão ser idênticas.
  • Se o item de grupo contiver itens subordinados que subdividem o grupo, as seguintes restrições serão aplicadas:
    • Se um item subordinado nomeado (não FILLER) consistir exatamente na parte do ano do campo de data do item do grupo e tiver uma cláusula DATA FORMAT, a cláusula DATE FORMAT deverá ser YY ou YYYY com o mesmo número de caracteres do ano que o item do grupo.
    • Se o item de grupo for uma data gregoriana com uma cláusula DATE FORMAT de YYXXXX, YYYYXXXX, XXXXYY ou XXXXYYYY, e um item de dados de data subordinado nomeado consistir na parte do ano e mês da data gregoriana, sua cláusula DATE FORMAT deverá ser YYXX , YYYYXX, XXYY ou XXYYYY, respectivamente (ou, para um formato de data de grupo de YYYYXXXX, um formato de data subordinada de YYXX, conforme descrito abaixo).
    • Um campo de data em janela pode estar subordinado a um item do grupo de campos de data expandida se o item subordinado iniciar dois caracteres após o item do grupo, nenhuma data estiver no formato do último ano e o formato da data do item subordinado não tiver Xs ou tiver o mesmo número de Xs após os Ys do item do grupo ou é YYXX no formato de data do grupo YYYYXXXX.
    • Os únicos itens subordinados que podem ter uma cláusula DATE FORMAT são aqueles que definem a parte do ano do item do grupo, a parte da janela de um item do grupo de campos de data expandida ou a parte do ano e mês de um item do grupo de datas gregoriano, conforme discutido em as restrições acima.

    Por exemplo, o seguinte define um item de grupo válido:

           01  YYMMDD     DATE FORMAT YYXXXX.
               05  YYMM   DATE FORMAT YYXX.
                   10  YY DATE FORMAT YY PICTURE 99.
                   10                    PICTURE 99.
               05  DD                    PICTURE 99.

Elementos de idioma que tratam campos de data como sem datas

Se os campos de data forem usados nos seguintes elementos de idioma, eles serão tratados como sem datas.
Ou seja, o DATE FORMAT é ignorado e o conteúdo do item de dados de data é usado sem sofrer expansão automática.

  • No parágrafo ENVIRONMENT DIVISION FILE-CONTROL:
    • SELECT ... ASSIGN USING data-name
    • SELECT ... PASSWORD IS data-name
    • SELECT ... FILE STATUS IS data-name
  • Na DATA DIVISION:
    • LABEL RECORD IS data-name
    • LABEL RECORDS ARE data-name
    • LINAGE IS data-name FOOTING data-name TOP data-name BOTTOM data-name
  • Em condições de classe
  • Em condições de sinal
  • Nas instruções DISPLAY

Elementos de idioma que não aceitam campos de data em janela como argumentos

Os campos de data com janelas não podem ser usados como:

  • Um data-name nos seguintes formatos do parágrafo ENVIRONMENT DIVISION FILE-CONTROL:
    • SELECT ... RECORD KEY IS
    • SELECT ... ALTERNATE RECORD KEY IS
    • SELECT ... RELATIVE KEY IS
  • Um data-name na cláusula RECORD IS VARYING DEPENDING ON de uma data division file description (FD) or sort description (SD) entry
  • O objeto de uma cláusula OCCURS DEPENDING ON de uma data division data definition entry
  • A chave em uma frase ASCENDING KEY ou DESCENDING KEY de uma cláusula OCCURS de uma data division data definition entry
  • Qualquer nome de dados ou identificador nas seguintes instruções:
    • CANCEL
    • GO TO ... DEPENDING ON
    • INSPECT
    • SET
    • SORT
    • STRING
    • UNSTRING
  • Na instrução CALL, como o identificador que contém o nome do programa
  • Na instrução INVOKE, como o identificador que especifica o objeto no qual o método é chamado ou o identificador que contém o nome do método
  • Identificadores nas frases TIMES e VARYING da instrução PERFORM (os campos de data em janela são permitidos nas condições PERFORM)
  • Um identificador na frase VARYING de uma instrução SEARCH serial (formato 1) ou qualquer identificador em uma instrução SEARCH binária (formato 2) (campos de data em janelas são permitidos nas condições SEARCH)
  • Um identificador na frase ADVANCING da instrução WRITE
  • Argumentos para funções intrínsecas, exceto a função intrínseca UNDATE

Os campos de data com janelas podem ser usados como chaves ascendentes ou descendentes nas instruções MERGE e SORT, com algumas restrições.
Para detalhes, consulte as instruções MERGE e SORT.

Elementos de idioma que não aceitam campos de data como argumentos

Não é possível usar campos de data em janela nem campos de data expandida:

  • Na instrução DIVIDE, exceto como um identificador na cláusula GIVING ou REMAINDER
  • Na instrução MULTIPLY, exceto como um identificador na cláusula GIVING

(Os campos de data não podem ser usados como operandos em divisão ou multiplicação.)



© Copyright IBM Corp.