Translate

Mostrar mensagens com a etiqueta entrada de dados. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta entrada de dados. Mostrar todas as mensagens

terça-feira, 6 de março de 2007

O que é o Comando ACCEPT em COBOL?

 

Bellacosa Mainframe e o comando accept no cobol

O que é o Comando ACCEPT em COBOL?

O comando ACCEPT é utilizado para:

receber dados de uma fonte externa e armazená-los em uma variável COBOL.

Na prática, ele funciona como uma operação de:

ENTRADA DE DADOS

É o oposto do comando:

DISPLAY

Enquanto o DISPLAY mostra informações, o ACCEPT recebe informações.


Analogia simples

Imagine um terminal 3270.

O usuário digita:

VAGNER

O COBOL precisa capturar esse valor.

Quem faz isso é o:

ACCEPT


Sintaxe básica

ACCEPT nome-do-campo

Exemplo simples

WORKING-STORAGE SECTION.

01 WS-NOME PIC X(30).

PROCEDURE DIVISION.

    DISPLAY 'DIGITE O NOME:'

    ACCEPT WS-NOME

    DISPLAY WS-NOME

    STOP RUN.

Resultado

DIGITE O NOME:
VAGNER

VAGNER

ACCEPT em programas interativos

Muito comum em:

  • TSO

  • Micro Focus COBOL

  • GnuCOBOL

  • ambientes de treinamento


Fluxo

DISPLAY
   ↓
USUÁRIO DIGITA
   ↓
ACCEPT
   ↓
PROCESSAMENTO

ACCEPT Numérico

01 WS-IDADE PIC 9(3).

ACCEPT WS-IDADE

Entrada:

25

Resultado:

WS-IDADE = 25

ACCEPT e Datas do Sistema

O ACCEPT também pode obter informações do sistema operacional.


Data atual

01 WS-DATA PIC 9(8).

ACCEPT WS-DATA FROM DATE

Resultado:

20260802

Formato:

AAAAMMDD

(depende do compilador)


Data Juliana

ACCEPT WS-DATA
       FROM DAY

Exemplo:

2026153

Ano + dia juliano.


Hora atual

01 WS-HORA PIC 9(8).

ACCEPT WS-HORA
       FROM TIME

Resultado:

14302599

Data e Hora

Alguns compiladores suportam:

ACCEPT WS-DATETIME
       FROM DATE YYYYMMDD

ACCEPT FROM DATE

Muito comum em batch.

ACCEPT WS-DATA-SISTEMA
       FROM DATE

ACCEPT FROM DAY

Retorna:

AAAA + DIA JULIANO

Exemplo

2 de junho de 2026:

2026153

ACCEPT FROM TIME

Retorna:

HHMMSSCC

Horas, minutos, segundos e centésimos.


Exemplo

15451035

ACCEPT em Mainframe Batch

No z/OS tradicional, ACCEPT de teclado é pouco utilizado.

Normalmente os dados vêm de:

  • arquivos;

  • parâmetros JCL;

  • SYSIN;

  • DB2;

  • VSAM.


Exemplo SYSIN

JCL:

//SYSIN DD *
VAGNER
/*

COBOL:

ACCEPT WS-NOME

ACCEPT e PARM do JCL

Muitas instalações utilizam:

//STEP1 EXEC PGM=PROG1,
 // PARM='PRODUCAO'

COBOL:

ACCEPT WS-PARM

ou

LINKAGE SECTION

dependendo do padrão adotado.


ACCEPT vs DISPLAY

DISPLAY:

DISPLAY 'OLA'

Mostra informação.


ACCEPT:

ACCEPT WS-NOME

Recebe informação.


Exemplo combinado

DISPLAY 'DIGITE O SALDO:'

ACCEPT WS-SALDO

DISPLAY WS-SALDO

Exemplo completo

IDENTIFICATION DIVISION.
PROGRAM-ID. TESTE.

DATA DIVISION.

WORKING-STORAGE SECTION.

01 WS-NOME PIC X(30).

PROCEDURE DIVISION.

    DISPLAY 'NOME: '

    ACCEPT WS-NOME

    DISPLAY 'VOCE DIGITOU: '
    DISPLAY WS-NOME

    STOP RUN.

Onde o ACCEPT é mais usado?

Ambientes educacionais


Micro Focus COBOL


GnuCOBOL


Aplicações de terminal


Captura de data/hora do sistema


Curiosidades

1. ACCEPT existe desde as primeiras versões do COBOL


2. Em z/OS batch seu uso é mais restrito


3. ACCEPT FROM DATE era muito usado antes das funções intrínsecas


4. Hoje muitos programadores preferem:

FUNCTION CURRENT-DATE

em vez de:

ACCEPT FROM DATE

ACCEPT vs FUNCTION CURRENT-DATE

Forma antiga:

ACCEPT WS-DATA
       FROM DATE

Forma moderna:

MOVE FUNCTION CURRENT-DATE
     TO WS-DATA

Resumo rápido

ComandoFunção
ACCEPTRecebe dados
ACCEPT FROM DATEData atual
ACCEPT FROM DAYData Juliana
ACCEPT FROM TIMEHora atual
DISPLAYExibe dados
CURRENT-DATEAlternativa moderna

Conclusão

O comando ACCEPT é a principal instrução de entrada de dados do COBOL. Ele permite receber informações digitadas pelo usuário ou obter dados do sistema, como data e hora, sendo um recurso clássico presente desde os primórdios da linguagem e ainda encontrado em aplicações COBOL executadas em ambientes IBM Z, Micro Focus e GnuCOBOL.