Escolar Documentos
Profissional Documentos
Cultura Documentos
a transação CMAC.
Será exibida a tela mostrada em seguida, e o código do ABEND deve ser informado no
campo correspondente a "Message Number".
Resultado:
Elaborado por: Nei Teixeira
O recurso Temporary Storage (TS) do CICS é extremamente útil para que as aplicações
possam guardar dados temporários.
É natural esperar que tais dados, SENDO TEMPORÁRIOS, uma vez criados (WRITEQ
TS), sejam posteriormente deletados pelas próprias aplicações que os criaram. Assim,
espera-se que estas sejam definidas/codificadas para identificar quando aqueles não
mais são necessários e emitam o comando CICS apropriado para liberá-los (DELETEQ
TS).
PARA TRATAR AS EXCEÇÕES existe nos nossos CICS's um processo que analisa as
filas de TS e deleta as que não são referenciadas a mais do que um intervalo de tempo
predefinido (15 minutos no ambiente de teste, 30 minutos no de produção).
Os programas codificados em Cobol for MVS & VM que precisam recuperar a data corrente do
processamento, podem utilizar a FUNCTION CURRENT-DATE. Trata-se de uma função interna
que recupera a data e hora, sendo o ano com 4 posições, sem a necessidade de se fazer
janelamento para tratar o ano 2000. Além disso, é possível efetuar cálculo de diferença entre dias
corridos entre duas datas e avançar/retroceder dias em uma data (não considera feriados).
000016 01 WS-INICIO-WORKING.
000017 03 FILLER PIC X(040) VALUE
000018 '***** INICIO DA WORKING-STORAGE *****'.
000019 01 WS-CURRENT-DATE PIC 9(14).
000020 01 FILLER REDEFINES WS-CURRENT-DATE.
000021 03 WS-DATA PIC 9(08).
000022 03 WS-HORA PIC 9(06).
000023 01 WS-DAY-OF-INTEGER PIC S9(09).
000024 01 WS-INTEGER-OF-DAY PIC S9(09).
000025 01 WS-DT-INT PIC S9(09) VALUE ZEROS.
000026
000027 EJECT
000028 PROCEDURE DIVISION.
000029*
000030 MOVE FUNCTION CURRENT-DATE (1:14) TO WS-CURRENT-DATE.
Recupera as 14 primeiras posições da data corrente (data com 8 e hora com 6).
DATA 20010514
HORA 152517
SOMANDO 10 DIAS
NOVA DATA 20010524
DATA 20000517
COBOL for MVS
Principais Diferenças
Revisões
Data Versão Autor(es) Descrição
Índice
COBOL for MVS
Principais Diferenças
OBJETIVO
Report Writer
Arquivos ISAM
Arquivos BDAM
Communication Feature
EXAMINE
EXHIBIT
EXHIBIT
TRANSFORM
TIME-OF-DAY
CURRENT-DATE
DIVERSOS
JUSTIFIED
MOVE CORRESPONDING
WHEN-COMPILED
VALUE
SORT-RETURN
INSPECT
PERFORM
TERMINADOR EXPLÍCITO
NOT
DAY-OF-WEEK
EVALUATE
INITIALIZE
Função Intrínsica
REGISTRADORES E ENDEREÇAMENTOS
ANEXOS
BIBLIOGRAFIA
Report Writer
Não é suportado pelo COBOL for MVS. É necessário um pré-compilador para migrar os
programas que o utilizem para o novo COBOL. Os itens da linguagem do Report Writer não mais
aceitos pelo novo COBOL são:
Instrução GENERATE
Instrução INITIATE
REPORT SECTION
Instrução TERMINATE
Arquivos ISAM
O COBOL for MVS não suporta o processamento desses arquivos. Esses arquivos devem ser
convertidos para VSAM/KSDS. Os itens da linguagem do ISAM não mais aceitos pelo novo
COBOL são:
APPLY CORE-INDEX
APPLY REORG-CRITERIA
Cláusula TRACK-AREA
Arquivos BDAM
O COBOL for MVS não suporta o processamento desses arquivos. Esses arquivos devem ser
convertidos para VSAM/RRDS. Os itens da linguagem do BDAM não mais aceitos pelo novo
COBOL são:
APPLY RECORD-OVERFLOW
Instrução SEEK
Cláusula TRACK-LIMIT
Parâmetros de organização D, R, W
Communication Feature
A Communication Feature não é suportada pelo COBOL for MVS. Os programas de
comunicação (TCAM) deverão utilizar outro "pacote" para executar as funções de
comunicação. Os itens da linguagem da Communication Feature não mais aceitos pelo
novo COBOL são:
COMMUNICATION SECTION
Instrução DISABLE
Instrução ENABLE
Instrução RECEIVE
Instrução SEND
EXAMINE
O COBOL for MVS não aceita a instrução EXAMINE, devendo ser substituída pela instrução
INSPECT. Entretanto, se a instrução no OS/VS COBOL for similar a seguinte:
MOVE 0 TO TALLY.
EXHIBIT
O COBOL for MVS não aceita a instrução EXHIBIT, deve ser substituída pela instrução
DISPLAY. Entretanto a instrução DISPLAY não cobre todas as funções da instrução EXHIBIT.
A instrução EXHIBIT NAMED pode ser substituída diretamente pela instrução DISPLAY, como
se segue.
A instrução EXHIBIT CHANGED deve ser substituida pelas instruções IF e DISPLAY, como se
segue:
DISPLAY DADO1
END-IF.
DISPLAY DADO2
END-IF.
EXHIBIT
A instrução EXHIBIT CHANGED NAMED deve ser substituída pelas instruções IF e
DISPLAY, como se segue:
END-IF.
END-IF.
ENVIROMENT DIVISION.
CONFIGURATION SECTION.
.
.
DATA DIVISION.
WORKING-STORAGE SECTION.
88 TRACE-OFF VALUE 0.
88 TRACE-ON VALUE 1.
PROCEDURE DIVISION.
DECLARATIVES.
COBOL-DEBUG SECTION.
COBOL-DEBUG-PARA.
IF TRACE-ON
DISPLAY DEBUG-NAME
END-IF.
END DECLARATIVES.
PARAGRAPH-3.
MOVE 1 TO TRACE-SWITCH.
OU
PARAGRAPH-4.
.
.
PARAGRAPH-6.
MOVE 0 TO TRACE-SWITCH.
OU
PARAGRAPH-7.
TRANSFORM
O OS/VS COBOL suporta as instruções INSPECT e TRANSFORM. O COBOL for MVS
apenas aceita a instrução INSPECT. Qualquer instrução TRANSFORM deve ser substituída pela
instrução INSPECT CONVERTING:
O TRANSFORM verifica cada caracter , alterando cada caracter "A" para o caracter "C", cada "B"
para "A" e cada "C" para "T". Após a execução da instrução acima, a variável TEXTO ficará com o
seguinte conteúdo: "CATXYZTTT". No COBOL for MVS teremos o mesmo resultado utilizando
a instrução abaixo:
TIME-OF-DAY
O OS/VS COBOL aceita o registro especial TIME-OF-DAY. Ele é válido somente quando
utilizado com a instrução MOVE. Possui tamanho de 6 bytes decimais no formato:
Programas OS/VS COBOL com a estrutura abaixo devem ser alterados como se segue.
Código no OS/VS COBOL.
CURRENT-DATE
O OS/VS COBOL aceita o registro especial CURRENT-DATE. Ele é válido somente quando
utilizado com a instrução MOVE. Possui tamanho de 8 bytes alfanuméricos no formato:
O COBOL for MVS aceita 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:
Programas OS/VS COBOL com a estrutura abaixo devem ser alterados como se segue.
.
MOVE CURRENT-DATE TO DATA-EXEC.
01 DATA-EXEC.
01 DATA-ACCEPT.
DIVERSOS
Elementos Observações
ASSIGN ... OR Para utilizar esta cáusula no COBOL for MVS o OR deve ser removido.
ASSIGN TO integer system-name Para utilizar esta cáusula no COBOL for MVS o integer deve ser
removido.
ASSIGN ... FOR MULTIPLE O OS/VS COBOL aceita a frase e trata-a como documentacional. O
REEL/UNIT COBOL for MVS não aceita esta frase.
Instrução CLOSE - WITH O OS/VS COBOL aceitas as frase WITH POSITIONING e DISP
POSITIONING, DISP como extensão da instrução CLOSE. No COBOL for MVS essas frases
não são aceitas.
Cláusula LABEL RECORD em A cláusula LABEL RECORD deve ser retirada das entradas de
uma entrada SD descrição dos arquivos de SORT/MERGE.
Cláusula RECORD CONTAINS n Numa variação do ANSI COBOL 74, a cláusula RECORD
CHARACTERS CONTAINS n CHARACTERS seria alterada se a cláusula OCCURS
DEPENDING ON fosse especificada no FD, definindo um arquivo de
tamanho variável. Sob o COBOL for MVS a cláusula RECORD
CONTAINS n CHARACTERS sempre define um arquivo de tamanho
FIXO.
Cláusula LABEL RECORD No COBOL for MVS essas frases não são aceitas.
com as frases
TOTALING/TOTALED AREA
Elementos Observações
Cláusula FILE STATUS Os STATUS KEY de retorno do QSAM e do VSAM foram alterados e
estão mais específicos. Vide tabela de STATUS KEY nos anexos 1 e 2.
bbbbFIRST
FIRSTbbbb
Instrução O COBOL for MVS não permite mais do que um campo receptor. Logo,
a instrução
MOVE CORRESPONDING
MOVE CORR GROUP-ITEM-A TO GROUP-ITEM-B
GROUP-ITEM-C.
EX:
DIVERSOS
Elementos Observações
Registrador especial As regras para utilização deste registrador especial são as mesmas.
Entretanto, o formato dos dados são diferentes.
WHEN-COMPILED
No OS/VS COBOL o formato é:
exemplo de utilização:
MM/DD/YYhh.mm.ss (MÊS/DIA/ANOhora.minuto.segundo)
exemplo de utilização:
NOTA:
YYYYMMDDhhmmssccdhgmg
Onde:
YYYY = ANO
MM = MÊS
DD = DIA
hh = hora
mm = minuto
ss = segundo
cc = centésimo de segundo
d = sinal(+ ou -)
exemplo de utilização:
FUNCTION WHEN-COMPILED.
Elementos Observações
NOTA:
VALUE literal.
OU
88 Condition-Name VALUE literal1 THRU literal2.
DIVERSOS
Elementos Observações
Instrução SEARCH O COBOL for MVS não permite que o campo da condição WHEN seja
o campo KEY especificado na tabela.
16 - Erro no processamento.
16 - Erro no processamento.
Instrução UNSTRING Não pode ser usado para campo numérico editado.
Instrução WRITE Não pode ser usado para arquivos QSAM abertos como I/O.
Ex.
DIVERSOS
Elementos Observações
Ex.
PERFORM ...
UNTIL ...
UNTIL ...
PERFORM
PERFORM 0050-OBTER-MSG-FILA-IMS
THRU 0050-OBTER-MSG-FILA-IMS-FIM
PERFORM 0100-TRATAR-EMISSAO-CMD
THRU 0100-TRATAR-EMISSAO-CMD-FIM
END-IF
END-PERFORM.
GOBACK.
ADD END-ADD
CALL END-CALL
COMPUTE ND-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
DIVERSOS
Elementos Observações
PADDING CHARACTER
Frase NOT AT END, NOT ON SIZE ERROR, NOT INVALID KEY, ....
NOT END-OF-PAGE
3 = quarta 4 = quinta
5 = sexta 6 = sabado
7 = domingo
Elementos Observações
Instrução A instrução EVALUATE fornece uma notação simples para uma série de
instruções IF.
EVALUATE
Ex.
EVALUATE TI-CMD
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
PERFORM 2550-TRATAR-REGIOES
THRU 2550-TRATAR-REGIOES-FIM
WHEN 'PSTO'
PERFORM 2500-TRATAR-PSTOP
THRU 2500-TRATAR-PSTOP-FIM
WHEN OTHER
PERFORM 9200-INSERIR-RESPOSTA
THRU 9200-INSERIR-RESPOSTA-FIM
END-EVALUATE.
Um item de dado tipo índice não pode ser inicializado através desta
instrução.
Ex.
INITIALIZE campo(s).
INITIALIZE campo(s)
Função Intrínsica Função intrínsica é uma função que executa uma operação matemática,
uma operação com caracter ou uma operação lógica e permite que o
resultado derivado automaticamente da execução possa ser referenciado.
REGISTRADORES E ENDEREÇAMENTOS
Elementos Observações
Ex.
ex.
ex.
Ex.
ex.
ANEXOS
Anexo 1 - QSAM - STATUS KEY
00 00 Successful completion
Successful completion
30 30 Permanent error
00 00 Successful completion
Successful completion
30 30 Permanent error
_ A = alphabetic
_ I = integer
_ N = numeric
_ X = alphanumeric.
Table of Functions
ACOS N1 N Arccosine of N1
ASIN N1 N Arcsine of N1
ATAN N1 N Arctangent of N1
COS N1 N Cosine of N1
CURRENT-DATE None X Current date and time and difference from Greenwich
Mean Time
FACTORIAL I1 I Factorial of I1
N1... or N
X1... X
N1... or
X1...
N1... or
X1...
N1... or
X1...
none
SIN N1 N Sine of N1
TAN N1 N Tangent of N1
CÓDIGO TÍTULO
00 00 Successful completion
Successful completion
30 30 Permanent error
92 92 Logic error
00 00 Successful completion
02 02 Duplicate key, and DUPLICATES specified.
Successful completion
30 30 Permanent error