Escolar Documentos
Profissional Documentos
Cultura Documentos
PRINCIPAIS DIFERENÇAS
E
PROBLEMAS MAIS COMUNS NA CONVIVÊNCIA
COM O
OS/VS COBOL
TIPO DOCUMENTO - TTAAXXX
1
COBOL for MVS & VM
ÍNDICE
INTRODUÇÃO..............................................................................................................5
OBJETIVOS................................................................................................................. 5
REFERÊNCIAS............................................................................................................. 6
GLOSSÁRIO................................................................................................................ 6
PRINCIPAIS DIFERENÇAS.......................................................................................7
ELEMENTOS DE LINGUAGEM NÃO MAIS IMPLEMENTADOS..........................................7
Report Writer............................................................................................................7
Arquivos ISAM.........................................................................................................7
Arquivos BDAM.......................................................................................................8
Communication Feature...........................................................................................9
EXAMINE.................................................................................................................9
EXHIBIT...................................................................................................................9
READY TRACE / RESET TRACE..........................................................................11
TRANSFORM..........................................................................................................12
TIME-OF-DAY.......................................................................................................13
CURRENT-DATE...................................................................................................14
D I V E R S O S.......................................................................................................15
EXTENSÕES DO OS/VS COBOL NÃO SUPORTADAS PELO COBOL FOR MVS & VM
................................................................................................................................ 17
Instrução MOVE CORRESPONDING...................................................................17
THEN como sentença de conexão..........................................................................18
Operadores Relacionais – Codificações Incorretas...............................................18
Pontos consecutivos – em qualquer Divisão do COBOL.......................................19
Ausência de ponto nos parágrafos..........................................................................19
Cláusula REDEFINES em descrições de arquivos (SD e FD)...............................19
Cláusula REDEFINES em tabelas..........................................................................20
Cláusula VALUE – Valor sinalizado em relação a cláusula PICTURE................20
Cláusula OCCURS..................................................................................................20
ELEMENTOS DE LINGUAGEM ALTERADOS................................................................22
FILE STATUS.........................................................................................................22
IF ... OTHERWISE.................................................................................................22
JUSTIFIED.............................................................................................................22
Instrução MOVE para campos definidos com P na PICTURE.............................23
Sentenças Aritméticas.............................................................................................23
Cláusula ASSIGN....................................................................................................23
Cláusula OCCURS DEPENDING ON com a frase ASCENDING/ DESCENDING
KEY.........................................................................................................................24
WHEN-COMPILED................................................................................................24
WRITE AFTER POSITIONING..............................................................................25
VALUE....................................................................................................................26
MERGE...................................................................................................................26
OPEN......................................................................................................................27
2
COBOL for MVS & VM
SEARCH..................................................................................................................27
SORT.......................................................................................................................27
SORT-RETURN......................................................................................................27
STRING...................................................................................................................27
UNSTRING.............................................................................................................28
WRITE.....................................................................................................................28
INSPECT.................................................................................................................28
PERFORM..............................................................................................................28
PERFORM - Alterações na frase VARYING/AFTER.............................................29
ELEMENTOS DE LINGUAGEM ADICIONADOS .............................................................31
TERMINADOR EXPLÍCITO..................................................................................31
PADDING CHARACTER.......................................................................................31
RECORD DELIMITER...........................................................................................32
EXTERNAL no FD..................................................................................................32
EXTERNAL na WS..................................................................................................32
GLOBAL na FD......................................................................................................32
GLOBAL na WS......................................................................................................32
NOT.........................................................................................................................33
CONTINUE.............................................................................................................33
TITLE......................................................................................................................33
DAY-OF-WEEK......................................................................................................34
EVALUATE.............................................................................................................34
INITIALIZE.............................................................................................................34
Função Intrínseca...................................................................................................35
REGISTRADORES E ENDEREÇAMENTOS........................................................35
LENGTH OF................................................................................................................................................35
ADDRESS OF.............................................................................................................................................35
POINTER.....................................................................................................................................................36
SET..............................................................................................................................................................36
MOVE.......................................................................................................................................................... 36
3
COBOL for MVS & VM
4
COBOL for MVS & VM
INTRODUÇÃO
OBJETIVOS
5
COBOL for MVS & VM
REFERÊNCIAS
GLOSSÁRIO
Termo Significado
6
COBOL for MVS & VM
PRINCIPAIS DIFERENÇAS
REPORT WRITER
Não é suportado pelo COBOL for MVS & VM. É necessário um pré
compilador para migrar os programas que o utilizem. O COBOL
Report Writer Precompiler tem duas funções. Pode ser usado para
pré compilar aplicações que utilizem o Report Writer para gerar um
código que será aceito pelo compilador do COBOL for MVS & VM, ou
pode converter permanentemente as sentenças do Report Writer para
sentenças válidas do COBOL for MVS & VM. Entretanto, esta
conversão gera um código de difícil manutenção. Quando
convertendo um código Report Writer para um código não Report
Writer o pré compilador gera nome de variáveis e de parágrafos.
Esses nomes não são significativos, dificultando a identificação
quando da necessidade de modificar os programas convertidos.
Esses nomes podem ser substituídos por outros mais significativos,
mas isso será uma atividade bastante trabalhosa e que consumirá um
tempo significativo.
Instrução GENERATE
Instrução INITIATE
Registrador especial LINE-COUNTER
Registrador especial PAGE-COUNTER
Registrador especial PRINT-SWITCH
Cláusula REPORT da entrada do FD
REPORT SECTION
Instrução TERMINATE
Declaração USE BEFORE REPORTING
Atribuição de nomes mnemônicos para literais não numéricos
ARQUIVOS ISAM
7
COBOL for MVS & VM
APPLY CORE-INDEX
APPLY REORG-CRITERIA
Cláusula NOMINAL KEY
Cláusula TRACK-AREA
Cláusula USING KEY da instrução START
Declaração de arquivos ISAM
Parâmetro de organização I
ARQUIVOS BDAM
8
COBOL for MVS & VM
COMMUNICATION FEATURE
EXAMINE
MOVE 0 TO TALLY.
INSPECT DATA-LENGTH TALLYING FOR CHARACTERS BEFORE “ “.
EXHIBIT
9
COBOL for MVS & VM
10
COBOL for MVS & VM
11
COBOL for MVS & VM
COBOL-DEBUG SECTION.
USE FOR DEBUGGING ON ALL PROCEDURES.
COBOL-DEBUG-PARA.
IF TRACE-ON
DISPLAY DEBUG-NAME
END-IF.
END DECLARATIVES.
.
.
PARAGRAPH-3.
.
.
MOVE 1 TO TRACE-SWITCH.
OU
SET TRACE-ON TO TRUE.
PARAGRAPH-4.
.
.
PARAGRAPH-6.
.
.
MOVE 0 TO TRACE-SWITCH.
OU
SET TRACE-OFF TO TRUE.
PARAGRAPH-7.
.
.
.
TRANSFORM
12
COBOL for MVS & VM
TIME-OF-DAY
13
COBOL for MVS & VM
CURRENT-DATE
O COBOL for MVS & VM não suporta esse registro especial, mas
suporta o registro especial DATE. Ele é válido apenas quando
utilizado com a instrução ACCEPT (não é válido sob CICS). Tem
tamanho de 6 bytes alfanuméricos no formato:
AAMMDD (ano, mês, dia)
14
COBOL for MVS & VM
01 DATA-EXEC.
03 MES PIC X(02).
03 FILLER PIC X(01) VALUE “/”.
03 DIA PIC X(02).
03 FILLER PIC X(01) VALUE “/”.
03 ANO PIC X(02).
01 DATA-ACCEPT.
03 ANO PIC X(02).
03 MES PIC X(02).
03 DIA PIC X(02).
.
.
.
ACCEPT DATA-ACCEPT FROM DATE.
MOVE CORRESPONDING DATA-ACCEPT TO DATA-EXEC.
DIVERSOS
Elementos Observações
ASSIGN ... OR Para utilizar esta cláusula no COBOL for
MVS & VM o OR deve ser removido.
ASSIGN TO integer Para utilizar esta cláusula no COBOL for
system-name MVS & VM o integer deve ser removido.
O integer era tratado como comentário no
OS/VS COBOL.
ASSIGN ... FOR O OS/VS COBOL aceita a frase e trata-a
MULTIPLE REEL/UNIT como documentacional. O COBOL for
MVS & VM não aceita esta frase, portanto
deve ser removida.
Instrução CLOSE – O OS/VS COBOL aceita as frases WITH
com as frases WITH POSITIONING e DISP como extensões da
POSITIONING e DISP instrução CLOSE. No COBOL for MVS &
VM essas frases não são aceitas, devendo
ser removidas.
Cláusula FILE-LIMIT do O OS/VS COBOL aceita a cláusula e trata-
parágrafo FILE- a como comentário. O COBOL for MVS &
CONTROL VM não aceita, portanto deve ser
removida.
15
COBOL for MVS & VM
16
COBOL for MVS & VM
Ao ser convertido para o COBOL for MVS & VM deverá ter a instrução
acima modificada para:
17
COBOL for MVS & VM
MOVE A TO B.
ADD C TO D.
Ex.: (A = 0 AND B) = 0
A = B AND (< C OR D)
18
COBOL for MVS & VM
WORKING-STORAGE SECTION.
01 A PIC 9. .
.
.
MOVE1 TO A.
.
.
GOBACK.
SD ....
01 SORT-REC-HEADER.
05 SORT-KEY PIC X(20).
19
COBOL for MVS & VM
Para obter-se uma função similar, no COBOL for MVS & VM, a
cláusula REDEFINES deve ser removida.
Ex.: 01 TAB.
03 CAMPO-TAB OCCURS 10.
05 CAMPO PIC X.
03 CAMPO-RED REDEFINES CAMPO-TAB PIC X.
CLÁUSULA OCCURS
20
COBOL for MVS & VM
WORKING-STORAGE SECTION.
01 D PIC 9(03).
01 A.
02 B OCCURS 1 TO 200 TIMES
ASCENDING KEY C
DEPENDING ON D
INDEXED BY H.
03 C PIC 9(02).
WORKING-STORAGE SECTION.
01 D PIC 9(03).
01 A.
02 B OCCURS 1 TO 200 TIMES
DEPENDING ON D
ASCENDING KEY C
INDEXED BY H.
03 C PIC 9(02).
21
COBOL for MVS & VM
FILE STATUS
IF ... OTHERWISE
JUSTIFIED
bbbbFIRST
FIRSTbbbb
22
COBOL for MVS & VM
SENTENÇAS ARITMÉTICAS
CLÁUSULA ASSIGN
ASSIGN TO assignment-name.
23
COBOL for MVS & VM
WHEN-COMPILED
exemplo de utilização:
MM/DD/YYhh.mm.ss (Mês/Dia/Anohora.minuto.segundo)
24
COBOL for MVS & VM
exemplo de utilização:
NOTA:
No COBOL for MVS & VM foi disponibilizado a função WHEN-
COMPILED que fornece a mesma informação no formato:
YYYYMMDDhhmmssccdhgmg
Onde:
YYYY = Ano
MM = Mês
DD = Dia
hh = hora
mm = minuto
ss = segundo
cc = centésimo de segundo
d = sinal(+ ou -)
gh = diferença em horas ref. horário de Greenwich
gm = diferença em minutos ref. horário de Greenwich
exemplo de utilização:
25
COBOL for MVS & VM
NOTA: Com o COBOL for MVS & VM, channel skipping somente é
suportado com referência no SPECIAL-NAMES.
VALUE
VALUE literal.
MERGE
26
COBOL for MVS & VM
OPEN
SEARCH
SORT
STRING
27
COBOL for MVS & VM
UNSTRING
Ex.:
UNSTRING AREA-A DELEMITED BY ‘-‘ OR ‘,’ INTO AREA-B.
WRITE
Não pode ser usado para arquivos QSAM abertos como I/O.
INSPECT
Ex.
INSPECT ... TALLYING ...
INSPECT ... REPLACING ...
INSPECT ... TALLYING ... REPLACING ...
INSPECT ... CONVERTING ...
PERFORM
28
COBOL for MVS & VM
Ex.:
PERFORM ...
PERFORM
UNTIL IO-STATUS EQUAL 'QC'
PERFORM R050-OBTER-MSG-FILA-IMS
THRU R050-OBTER-MSG-FILA-IMS-FIM
IF IO-STATUS EQUAL ' '
PERFORM R100-TRATAR-EMISSAO-CMD
THRU R100-TRATAR-EMISSAO-CMD-FIM
END-IF
END-PERFORM.
GOBACK.
Ex.:
PERFORM ROT-A VARYING X FROM 1 BY 1 UNTIL X > 3
AFTER Y FROM X BY 1 UNTIL Y > 3.
X: 1 1 1 2 2 2 3 3
29
COBOL for MVS & VM
Y: 1 2 3 1 2 3 2 3
X: 1 1 1 2 2 3
Y: 1 2 3 2 3 3
MOVE 1 TO X, Y, Z.
PERFORM ROT-1 VARYING X FROM 1 BY 1 UNTIL X > 3
.
.
.
ROT-1.
PERFORM ROT-A VARYING Y FROM Z BY 1 UNTIL Y > 3
MOVE X TO Z.
.
.
.
ROT-A.
MOVE 1 TO X.
PERFORM UNTIL X > 3
MOVE 1 TO Y
PERFORM UNTIL Y > 3
PERFORM ROT-A
ADD 1 TO Y
END-PERFORM
ADD 1 TO X
END-PERFORM.
.
.
.
30
COBOL for MVS & VM
TERMINADOR EXPLÍCITO
COMPUTE END-COMPUTE
DELETE END-DELETE
DIVIDE END-DIVIDE
EVALUATE END-EVALUATE
IF END-IF
MULTIPLY END-MULTIPLY
PERFORM END-PERFORM
READ END-READ
RETURN END-RETURN
REWRITE END-REWRITE
SEARCH END-SEARCH
START END-START
STRING END-STRING
SUBTRACT END-SUBTRACT
UNSTRING END-UNSTRING
WRITE END-WRITE
PADDING CHARACTER
31
COBOL for MVS & VM
RECORD DELIMITER
EXTERNAL NO FD
EXTERNAL NA WS
GLOBAL NA FD
GLOBAL NA WS
32
COBOL for MVS & VM
NOT
CONTINUE
TITLE
33
COBOL for MVS & VM
DAY-OF-WEEK
EVALUATE
Ex.
EVALUATE TI-CMD
WHEN 'BMP '
PERFORM 2550-TRATAR-REGIOES
THRU 2550-TRATAR-REGIOES-FIM
WHEN 'DMPQ'
PERFORM 7000-TRATAR-DMPQ
THRU 7000-TRATAR-DMPQ-FIM
WHEN 'IMSC'
PERFORM 5000-TRATAR-IMSC
THRU 5000-TRATAR-IMSC-FIM
WHEN 'LINE'
PERFORM 3700-TRATAR-LINE
THRU 3700-TRATAR-LINE-FIM
WHEN 'MNUC'
PERFORM 4500-TRATAR-MNUC
THRU 4500-TRATAR-MNUC-FIM
WHEN 'MPP '
PERFORM 2550-TRATAR-REGIOES
THRU 2550-TRATAR-REGIOES-FIM
WHEN 'PSTO'
PERFORM 2500-TRATAR-PSTOP
THRU 2500-TRATAR-PSTOP-FIM
WHEN OTHER
MOVE '001E' TO NU-VAR-MSG
MOVE WK-AUX-HORA TO CA-VAR-MSG
PERFORM 9200-INSERIR-RESPOSTA
THRU 9200-INSERIR-RESPOSTA-FIM
END-EVALUATE.
INITIALIZE
34
COBOL for MVS & VM
Ex.
INITIALIZE campo(s).
INITIALIZE campo(s)
REPLACING tipo(s) BY campo ou literal.
FUNÇÃO INTRÍNSECA
REGISTRADORES E ENDEREÇAMENTOS
LENGTH OF
Ex.
MOVE LENGTH OF CAMPO-A TO CAMPO-B.
ADD LENGTH OF CAMPO-A TO CAMPO-C.
ADDRESS OF
Ex.
SET ADDRESS OF CAMPO-LK TO CAMPO-ADDR-WK.
35
COBOL for MVS & VM
POINTER
Ex.
05 CAMPO-ADDR-WK PIC X(04) POINTER VALUE NULLS.
SET
1. SET básico
2. SET para ajustar índices
3. SET para switches externos
4. SET para nomes condicionais
5. SET para itens de dados USAGE IS POINTER
Ex.:
SET ADDRESS OF identifier TO NULLS.
(Formato 5)
SET variável-condicional TO TRUE.
(Formato 4)
SET nome-mneumonico TO ON/OFF.
(Formato 3)
SET index-name UP/DOWN BY 1.
(Formato2)
SET index-name TO 1.
(Formato 1)
MOVE
Ex.
MOVE variável (posição-inicial:tamanho) TO CAMPO
MOVE CAMPO-A (5:8) TO CAMPO-B.
MOVE CAMPO-A (ADDR-INI:TAM) TO CAMPO-B.
36
COBOL for MVS & VM
Dados D3
Linha de 16 Mb
DADOS D1 DADOS D5
DADOS D4
37
NORENT
RMODE(24)
DATA(24/31)
COBOL for MVS & VM
38
COBOL for MVS & VM
FILE SECTION.
FD MOVIMENTO.
RECORDING MODE IS V
RECORD IS VARYING FROM 6 TO 104 CHARACTERS.
01 REGISTRO-A PIC X(06).
01 REGISTRO-B PIC X(80).
FILE SECTION.
FD MOVIMENTO.
RECORDING MODE IS U
RECORD IS VARYING FROM 6 TO 104 CHARACTERS.
01 REGISTRO-A PIC X(06).
01 REGISTRO-B PIC X(80).
39
COBOL for MVS & VM
Cartão DD do JCL:
1
//OUTFILE DD DSN=.....,DCB=(BLKSIZE=6160),
// UNIT=SYSDA,PACE=(TRK,(45,15),RLSE),.....
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION. 1
FILE-CONTROL. 2
SELECT CARPOOL ASSIGN TO OUTFILE
ORGANIZATION IS SEQUENTIAL
ACCESS IS SEQUENTIAL.
...
DATA DIVISION.
FILE SECTION. 2
FD CARPOOL
LABEL RECORD STANDARD
BLOCK CONTAINS 0 CARACTERS
40
COBOL for MVS & VM
Onde:
SERVICE RELOAD
41
COBOL for MVS & VM
42
COBOL for MVS & VM
43
COBOL for MVS & VM
44
COBOL for MVS & VM
45
COBOL for MVS & VM
ANEXOS
ANEXO 1 - QSAM - STATUS KEY
46
COBOL for MVS & VM
47
COBOL for MVS & VM
48
COBOL for MVS & VM
_ A = alphabetic
_ I = integer
_ N = numeric
_ X = alphanumeric.
Table of Functions
49
COBOL for MVS & VM
X1... X
MEAN N1... N Arithmetic mean of arguments
MEDIAN N1... N Median of arguments
MIDRANGE N1... N Mean of minimum and maximum
arguments
MIN A1... or X Value of minimum argument; note that
I1... or the type of function depends on the
N1... or arguments
X1...
MOD I1,I2 I I1 modulo I2
NUMVAL X1 N Numeric value of simple numeric string
NUMVAL-C X1 or N Numeric value of numeric string with
X1,X2 optional commas and currency sign
ORD A1 or X1 I Ordinal position of the argument in
collating sequence
ORD-MAX A1... or I Ordinal position of maximum argument
N1... or
X1...
ORD-MIN A1...or I Ordinal position of minimum argument
N1... or
X1...
PRESENT- N1 N Present value of a series of future
VALUE N2... period-end amounts, N2, at a discount
rate of N1
RANDOM I1 or N Random number
none
RANGE I1... or I Value of maximum argument minus
N1... N value of minimum argument; note that
the type of function depends on the
arguments.
REM N1,N2 N Remainder of N1/N2
REVERSE A1 or X1 X Reverse order of the characters of the
argument
SIN N1 N Sine of N1
SQRT N1 N Square root of N1
STANDARD- N1... N Standard deviation of arguments
DEVIATION
50
COBOL for MVS & VM
51
COBOL for MVS & VM
BIBLIOGRAFIA
CÓDIGO TÍTULO
GC26-4524 IBM OS/VS COBOL TO VS COBOL II
Migration Guide
GC26-4764 COBOL/370 and COBOL for MVS & VM
Compiler and Run-Time Migration Guide
SC26-4769 IBM SAA AD/Cycle COBOL/370
Language Reference
SC28-6456 IBM OS Full American Compiler and Library, Version 4,
Programmer´s Guide
GC28-6396 IBM OS Full American National Standard COBOL
System Reference Library
GC26-4047 VS COBOL II
Application Programming Language Reference
52