Você está na página 1de 38

Para consultar o significado de um cdigo de ABEND do CICS, basta executar no CICST a transao CMAC.

Ser exibida a tela mostrada em seguida, e o cdigo do ABEND deve ser informado no campo correspondente a "Message Number". Teclando enter, ser exibida uma descrio do ABEND. No exemplo abaixo, solicitamos a descrio do ABEND ASRA. A sada da transao sempre com PF3.

Resultado:

Elaborado por: Nei Teixeira

O recurso Temporary Storage (TS) do CICS extremamente til para que as aplicaes possam guardar dados temporrios. natural esperar que tais dados, SENDO TEMPORRIOS, uma vez criados (WRITEQ TS), sejam posteriormente deletados pelas prprias aplicaes que os criaram. Assim, espera-se que estas sejam definidas/codificadas para identificar quando aqueles no mais so necessrios e emitam o comando CICS apropriado para liber-los (DELETEQ TS). Isto se faz necessrio pois O RECURSO TS FINITO e, quando exaurido, causa um travamento do CICS, prejudicando TODAS as aplicaes. Existem, entretanto, situaes de exceo onde a lgica das aplicaes interrompida (abends, queda do terminal) e as filas de TS associadas no so deletadas. PARA TRATAR AS EXCEES existe nos nossos CICS's um processo que analisa as filas de TS e deleta as que no so referenciadas a mais do que um intervalo de tempo predefinido (15 minutos no ambiente de teste, 30 minutos no de produo). APARENTEMENTE, a existncia deste processo tem causado uma certa acomodao nos construtores de nossas aplicaes CICS, levando-os a no incluir nestas o tratamento de dados temporrios obsoletos.

Utilizao de Current-Date em Cobol for MVS & VM


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 funo interna que recupera a data e hora, sendo o ano com 4 posies, sem a necessidade de se fazer janelamento para tratar o ano 2000. Alm disso, possvel efetuar clculo de diferena entre dias corridos entre duas datas e avanar/retroceder dias em uma data (no 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 posies da data corrente (data com 8 e hora com 6). 000031 000032 000033 000034 000035 DISPLAY 'DATA ' WS-DATA. DISPLAY 'HORA ' WS-HORA. DISPLAY 'SOMANDO 10 DIAS'. COMPUTE WS-DT-INT = FUNCTION INTEGER-OF-DATE (WS-DATA).

Transforma a data em formato interno. 000036 ADD 10 TO WS-DT-INT. Soma 10 ao formato interno. 000037 COMPUTE WS-DATA = 000038 FUNCTION DATE-OF-INTEGER (WS-DT-INT). Transforma a data de formato interno para a data correspondente. 000039 DISPLAY 'NOVA DATA ' WS-DATA. 000040* 000041 STOP RUN.

O resultado da execuo exibido abaixo: DATA 20010514 HORA 152517 SOMANDO 10 DIAS NOVA DATA 20010524 DATA 20000517

COBOL for MVS


Principais Diferenas
Revises
Data 18/06/1997 Verso 1.0 Autor(es) Guillermo Gil Carral Descrio Verso original

ndice
COBOL for MVS Principais Diferenas OBJETIVO Elementos de Linguagem no mais Implementados Report Writer Arquivos ISAM Arquivos BDAM Communication Feature EXAMINE EXHIBIT EXHIBIT READ TRACE / RESET TRACE TRANSFORM

TIME-OF-DAY CURRENT-DATE DIVERSOS Elementos de Linguagem alterados JUSTIFIED MOVE CORRESPONDING WHEN-COMPILED WRITE AFTER POSITIONING VALUE SORT-RETURN INSPECT PERFORM Elementos de Linguagem adicionados TERMINADOR EXPLCITO NOT DAY-OF-WEEK EVALUATE INITIALIZE Funo Intrnsica REGISTRADORES E ENDEREAMENTOS ANEXOS Anexo 1 - QSAM - STATUS KEY Anexo 2 - VSAM - STATUS KEY Anexo 3 - Tabela de funes BIBLIOGRAFIA

COBOL for MVS


Principais Diferenas OBJETIVO
O objetivo deste documento visa apresentar, de forma prtica, as principais diferenas entre o COBOL utilizado hoje na FININVEST (OS/VS COBOL) e o COBOL que vir a ser utilizado na empresa (COBOL for MVS), de modo a facilitar e agilizar o processo de converso dos programas existentes e a confeco de

novos programas. Este documento no , nem pretende ser, um trabalho completo e sim um guia de referncia para o COBOL. Logo este assunto no se esgota neste documento. Maiores detalhes sobre as diferenas entre as duas verses do COBOL podem ser encontradas nos manuais especficos do produto, cuja bibliografia dos manuais utilizados para confeco deste documento encontra-se ao final do mesmo.

Elementos de Linguagem no mais Implementados Report Writer


No suportado pelo COBOL for MVS. necessrio um pr-compilador para migrar os programas que o utilizem para o novo COBOL. Os itens da linguagem do Report Writer no mais aceitos pelo novo COBOL so: Instruo GENERATE Instruo INITIATE Registrador especial LINE-COUNTER Registrador especial PAGE-COUNTER Registrador especial PRINT-SWITCH Clusula REPORT da entrada do FD REPORT SECTION Instruo TERMINATE Declarao USE BEFORE REPORTING Atribuio de nomes mneumnicos para literais no numricos

Arquivos ISAM
O COBOL for MVS no suporta o processamento desses arquivos. Esses arquivos devem ser convertidos para VSAM/KSDS. Os itens da linguagem do ISAM no mais aceitos pelo novo COBOL so: APPLY CORE-INDEX APPLY REORG-CRITERIA Clusula NOMINAL KEY Clusula TRACK-AREA Clusula USING KEY da instruo

START Declarao de arquivos ISAM

Elementos de Linguagem no mais Implementados Arquivos BDAM


O COBOL for MVS no suporta o processamento desses arquivos. Esses arquivos devem ser convertidos para VSAM/RRDS. Os itens da linguagem do BDAM no mais aceitos pelo novo COBOL so: Clusula ACTUAL KEY APPLY RECORD-OVERFLOW Instruo SEEK Clusula TRACK-LIMIT Parmetros de organizao D, R, W Declarao de arquivos BDAM

Communication Feature
A Communication Feature no suportada pelo COBOL for MVS. Os programas de comunicao (TCAM) devero utilizar outro "pacote" para executar as funes de comunicao. Os itens da linguagem da Communication Feature no mais aceitos pelo novo COBOL so: Instruo ACCEPT MESSAGE COUNT [LANGLVL(1) ou LANGLVL(2)] COMMUNICATION SECTION Instruo DISABLE Instruo ENABLE Instruo RECEIVE Instruo SEND

EXAMINE
O COBOL for MVS no aceita a instruo EXAMINE, devendo ser substituda pela instruo INSPECT. Entretanto, se a instruo no OS/VS COBOL for similar a seguinte: EXAMINE DATA-LENGTH TALLYING UNTIL FIRST " ". ela deve ser substituda no COBOL for MVS por: MOVE 0 TO TALLY. INSPECT DATA-LENGTH TALLYING FOR CHARACTERS BEFORE " ".

Elementos de Linguagem no mais Implementados EXHIBIT


O COBOL for MVS no aceita a instruo EXHIBIT, deve ser substituda pela instruo DISPLAY. Entretanto a instruo DISPLAY no cobre todas as funes da instruo EXHIBIT. A instruo EXHIBIT NAMED pode ser substituda diretamente pela instruo DISPLAY, como se segue. Cdigo no OS/VS COBOL. 77 DADO1 PIC X(08). 77 DADO2 PIC X(08). EXHIBIT NAMED DADO1 DADO2. Cdigo no COBOL for MVS. DISPLAY "DADO1 = " DADO1 " DADO2 = " DADO2. A instruo EXHIBIT CHANGED deve ser substituida pelas instrues IF e DISPLAY, como se segue: Cdigo no OS/VS COBOL. 77 DADO1 PIC X(08). 77 DADO2 PIC X(08). EXHIBIT CHANGED DADO1 DADO2.

Cdigo no COBOL for MVS. 77 DADO1 PIC X(08). 77 DADO2 PIC X(08). 77 DADO1-ANT PIC X(08). 77 DADO2-ANT PIC X(08).

IF DADO1 NOT EQUAL DADO1-ANT DISPLAY DADO1 END-IF. IF DADO2 NOT EQUAL DADO2-ANT DISPLAY DADO2 END-IF. MOVE DADO1 TO DADO1-ANT. MOVE DADO2 TO DADO2-ANT.

Elementos de Linguagem no mais Implementados EXHIBIT


A instruo EXHIBIT CHANGED NAMED deve ser substituda pelas instrues IF e DISPLAY, como se segue: Cdigo no OS/VS COBOL. 77 DADO1 PIC X(08). 77 DADO2 PIC X(08). EXHIBIT CHANGED NAMED DADO1 DADO2.

Cdigo no COBOL for MVS. 77 DADO1 PIC X(08).

77 DADO2 PIC X(08). 77 DADO1-ANT PIC X(08). 77 DADO2-ANT PIC X(08).

IF DADO1 NOT EQUAL DADO1-ANT DISPLAY "DADO1 = " DADO1 END-IF. IF DADO2 NOT EQUAL DADO2-ANT DISPLAY "DADO2 = " DADO2 END-IF. MOVE DADO1 TO DADO1-ANT. MOVE DADO2 TO DADO2-ANT.

Elementos de Linguagem no mais Implementados READ TRACE / RESET TRACE


O COBOL for MVS no aceita essas instrues. Funes similares podem ser executadas utilizando a declarao de "debug" USE FOR DEBUGGING ON ALL PROCEDURES, como exemplificado abaixo: . . ENVIROMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. IBM-390 WITH DEBUGGING MODE. .

. DATA DIVISION. . . WORKING-STORAGE SECTION. 01 TRACE-SWITCH PIC 9 VALUE ZERO. 88 TRACE-OFF VALUE 0. 88 TRACE-ON VALUE 1. . . PROCEDURE DIVISION. DECLARATIVES. 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. . .

Elementos de Linguagem no mais Implementados TRANSFORM


O OS/VS COBOL suporta as instrues INSPECT e TRANSFORM. O COBOL for MVS apenas aceita a instruo INSPECT. Qualquer instruo TRANSFORM deve ser substituda pela instruo INSPECT CONVERTING: 77 TEXTO PIC X(9) VALUE "ABCXYZCCC". TRANSFORM TEXTO FROM "ABC" TO "CAT". O TRANSFORM verifica cada caracter , alterando cada caracter "A" para o caracter "C", cada "B" para "A" e cada "C" para "T". Aps a execuo da instruo acima, a varivel TEXTO ficar com o seguinte contedo: "CATXYZTTT". No COBOL for MVS teremos o mesmo resultado utilizando a instruo abaixo: INSPECT TEXTO CONVERTING "ABC" TO "CAT".

TIME-OF-DAY
O OS/VS COBOL aceita o registro especial TIME-OF-DAY. Ele vlido somente quando utilizado com a instruo MOVE. Possui tamanho de 6 bytes decimais no formato: HHMMSS (hora, minuto, segundo) Programas OS/VS COBOL com a estrutura abaixo devem ser alterados como se segue.

Cdigo no OS/VS COBOL. 77 HORA-EXEC PIC X(06). . . MOVE TIME-OF-DAY TO HORA-EXEC. Cdigo no COBOL for MVS. 77 HORA-EXEC PIC X(06). . . MOVE FUNCTION CURRENT-DATE (9:6) TO HORA-EXEC.

Elementos de Linguagem no mais Implementados CURRENT-DATE


O OS/VS COBOL aceita o registro especial CURRENT-DATE. Ele vlido somente quando utilizado com a instruo MOVE. Possui tamanho de 8 bytes alfanumricos no formato: MM/DD/AA (mes, dia, ano) O COBOL for MVS aceita o registro especial DATE. Ele vlido apenas quando utilizado com a instruo ACCEPT (no vlido sob CICS). Tem tamanho de 6 bytes alfanumricos no formato: AAMMDD (ano, mes, dia) Programas OS/VS COBOL com a estrutura abaixo devem ser alterados como se segue.

Cdigo no OS/VS COBOL. 77 DATA-EXEC PIC X(08). . . .

MOVE CURRENT-DATE TO DATA-EXEC.

Cdigo no COBOL for MVS. 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.

Elementos de Linguagem no mais Implementados

DIVERSOS Elementos
ASSIGN ... OR

Observaes
Para utilizar esta cusula no COBOL for MVS o OR deve ser removido.

ASSIGN TO integer system-name

Para utilizar esta cusula no COBOL for MVS o integer deve ser removido. O OS/VS COBOL aceita a frase e trata-a como documentacional. O COBOL for MVS no aceita esta frase. O OS/VS COBOL aceitas as frase WITH POSITIONING e DISP como extenso da instruo CLOSE. No COBOL for MVS essas frases no so aceitas.

ASSIGN ... FOR MULTIPLE REEL/UNIT Instruo CLOSE - WITH POSITIONING, DISP

Clusula FILE-LIMIT do pargrafo O OS/VS COBOL aceita a clusula e trata-a como comentrrio. O FILE-CONTROL COBOL for MVS no aceita, deve ser removida. REMARKS Comentariar, colocando um * (asterisco) na coluna 7, ou ser interpretado como sendo um comentrio do elemento anterior. A clusula LABEL RECORD deve ser retirada das entradas de descrio dos arquivos de SORT/MERGE. Todas as instrues NOTE devem ser removidas ou comentariadas. Funes similares so providas pelas instrues IF e EVALUATE

Clusula LABEL RECORD em uma entrada SD Instruo NOTE Instruo ON

Clusula RECORD CONTAINS n Numa variao do ANSI COBOL 74, a clusula RECORD CONTAINS CHARACTERS n CHARACTERS seria alterada se a clusula OCCURS DEPENDING ON fosse especificada no FD, definindo um arquivo de tamanho varivel. Sob o COBOL for MVS a clusula RECORD CONTAINS n CHARACTERS sempre define um arquivo de tamanho FIXO. Clusula LABEL RECORD com as frases TOTALING/TOTALED AREA No COBOL for MVS essas frases no so aceitas.

Elementos de Linguagem alterados

DIVERSOS Elementos
Clusula FILE STATUS

Observaes
Os STATUS KEY de retorno do QSAM e do VSAM foram alterados e esto mais especficos. Vide tabela de STATUS KEY nos anexos 1 e 2. Substituir o OTHERWISE por ELSE. Sob o OS/VS COBOL com a opo de compilao LANGLVL(1), se a clusula JUSTIFIED for utilizada com a clusula VALUE, o dado inicial alinhado a direita. No COBOL for MVS se as clusulas VALUE e JUSTIFIED so utilizadas para itens alfabticos ou alfanumricos, o dado inicial alinhado a esquerda. Por exemplo no OS/VS COBOL, teramos: 77 TEXTO PIC X(9) JUSTIFIED VALUE "FIRST". resultando no valor FIRST ocupando as 5 ltimas posies do campo. bbbbFIRST No COBOL for MVS, teramos: 77 TEXTO PIC X(9) JUSTIFIED VALUE "FIRST". resultando no valor FIRST ocupando as primeiras posies do campo. FIRSTbbbb Para obter-se o mesmo resultado, teria-se de codificar como se segue. 77 TEXTO PIC X(9) JUSTIFIED VALUE " FIRST".

Instruo IF ... OTHERWISE Clusula JUSTIFIED

Instruo MOVE CORRESPONDING

O COBOL for MVS no permite mais do que um campo receptor. Logo, a instruo MOVE CORR GROUP-ITEM-A TO GROUP-ITEM-B GROUP-ITEM-C. ter de ser desmembrada em MOVE CORR GROUP-ITEM-A TO GROUP-ITEM-B. MOVE CORR GROUP-ITEM-A TO GROUP-ITEM-C.

Instruo MOVE para campos definidos com P na PICTURE

A movimentao ou comparao do contedo de um campo definido com P na PICTURE para um campo alfanumrico, no OS/VS COBOL, tinha os zeros finais suprimidos. No COBOL for MVS os zeros finais so movidos e includos nas comparaes.

EX: 05 SEND-FIELD PIC 999PPP VALUE 123000. 05 RECV-FIELD PIC XXXXXX. . . MOVE SEND-FIELD TO RECV-FIELD. No OS/VS COBOL, o cdigo acima resultar no valor 123bbb para o campo RECV-FIELD. No COBOL for MVS o campo RECV-FIELD conter o valor 123000.

Elementos de Linguagem alterados

DIVERSOS Elementos
Registrador especial WHEN-COMPILED

Observaes
As regras para utilizao deste registrador especial so as mesmas. Entretanto, o formato dos dados so diferentes. No OS/VS COBOL o formato : hh.mm.ssMMM DD, YYYY (hora.minuto.segundoMES DIA, ANO) exemplo de utilizao: 01 DATA-COMPL PIC X(20). . . MOVE WHEN-COMPILED TO DATA-COMPL. DISPLAY PGM COMPILADO EM DATA-COMPL. No COBOL for MVS o formato : MM/DD/YYhh.mm.ss (MS/DIA/ANOhora.minuto.segundo) exemplo de utilizao: 01 DATA-COMPL PIC X(16).

. . MOVE WHEN-COMPILED TO DATA-COMPL. DISPLAY PGM COMPILADO EM DATA-COMPL. NOTA: No COBOL for MVS foi disponibilizado a funo WHEN-COMPILED que fornece a mesma informao no formato YYYYMMDDhhmmssccdhgmg Onde: YYYY = ANO MM = MS DD = DIA hh = hora mm = minuto ss = segundo cc = centsimo de segundo d = sinal(+ ou -) gh = diferena em horas ref. horrio de Greenwich gm = diferena em minutos ref. horrio de Greenwich exemplo de utilizao: DISPLAY PGM COMPILADO EM FUNCTION WHEN-COMPILED.

Elementos de Linguagem alterados

DIVERSOS

Elementos
Instruo WRITE AFTER POSITIONING

Observaes
O OS/VS COBOL suporta a instruo WRITE com a frase AFTER POSITIONING. O COBOL for MVS no suporta. No COBOL for MVS deve ser usado a instruo WRITE ... AFTER ADVANCING. Os exemplos abaixo apresentam as frase POSITIONING do OS/VS COBOL e as frases equivalentes no COBOL for MVS. Usando WRITE...AFTER ADVANCING com literais. OS/VS COBOL COBOL for MVS
AFTER POSITIONING 0 AFTER ADVANCING PAGE AFTER POSITIONING 1 AFTER ADVANCING 1 LINE AFTER POSITIONING 2 AFTER ADVANCING 2 LINES AFTER POSITIONING 3 AFTER ADVANCING 3 LINES

Usando WRITE...AFTER ADVANCING com variveis. WRITE OUTPUT-REC AFTER POSITIONING SK-CC. OS/VS COBOL SK-CC COBOL for MVS
AFTER POSITIONING SK-CC 1 AFTER ADVANCING PAGE AFTER POSITIONING SK-CC AFTER ADVANCING 1 LINE AFTER POSITIONING SK-CC 0 AFTER ADVANCING 2 LINES AFTER POSITIONING SK-CC - AFTER ADVANCING 3 LINES

NOTA: Com o COBOL for MVS, channel skipping somente suportado com referncia no SPECIAL-NAMES. Clusula VALUE Sob o COBOL for MVS passa a suportar a inicializao de variveis com nulo. A clusula passa a aceitar trs formatos, exemplificados abaixo. Formato 1 - Literal Value. VALUE literal.

Formato 2 - Condition-Name Value. 88 Condition-Name VALUE literal. OU 88 Condition-Name VALUE literal1 THRU literal2.

Formato 3 - NULL Value. VALUE NULL. OU VALUE NULLS.

Elementos de Linguagem alterados

DIVERSOS Elementos
Instruo MERGE Instruo OPEN

Observaes
Permite vrios arquivos no GIVING. Permite OPEN EXTEND para arquivos indexados e relativos. No aceita as opes LEAVE, REREAD, DISP nem REVERSED.

Instruo SEARCH

O COBOL for MVS no permite que o campo da condio WHEN seja o campo KEY especificado na tabela. Permite arquivos indexados e relativos no USING/GIVING. Permite vrios arquivos no GIVING.

Instruo SORT

Registrador especial SORT-RETURN

No OS/VS COBOL os cdigos de retorno do SORT so: 00 - Processamento efetuado com sucesso de 02 at 12 - Erros de I/O nos arquivos 16 - Erro no processamento. No COBOL for MVS os cdigos de retorno do SORT so apenas: 00 - Processamento efetuado com sucesso 16 - Erro no processamento.

Instruo START Instruo STRING

No suporta a frase USING. O campo receptor pode ser item de grupo.

Instruo UNSTRING Instruo WRITE Instruo INSPECT

No pode ser usado para campo numrico editado. No pode ser usado para arquivos QSAM abertos como I/O. A instruo INSPECT especifica que caracteres, ou grupos de caracteres, em um item de dados devem ser contados (TALLIED), atualizados (REPLACED) ou ambos. conta as ocorrncias de um caracter especfico em um item de dados preenche todo ou parte de um item de dados com brancos ou zeros

O CONVERTING funciona como se tivesse sido emitido um REPLACING com uma srie de frases ALL. Ex. INSPECT ... TALLYING ... INSPECT ... REPLACING ... INSPECT ... TALLYING ... REPLACING ... INSPECT ... CONVERTING ...

Elementos de Linguagem alterados

DIVERSOS Elementos
Instruo

Observaes
A instruo PERFORM transfere explicitamente o controle para uma ou mais procedures e implicitamente retorna o controle para a prxima instruo executvel aps a instruo PERFORM. A instruo PERFORM pode ser: Fora de linha - Quando o nome de uma procedure for

PERFORM

fornecido Em linha - Quando o nome de uma procedure for omitido

O PERFOM (IN LINE) permite codificar comando(s) na prpria instruo PERFORM. Aceita todas as variaes de testes. Ex. PERFORM ... PERFORM ... THRU ... PERFORM ... THRU ... n TIMES PERFORM ... THRU ... [with test after/before] UNTIL ... PERFORM ... THRU ... [with test after/before] VARYING ... FROM ... BY ... UNTIL ... Exemplo PERFORM (IN-LINE). PERFORM UNTIL IO-STATUS EQUAL 'QC' PERFORM 0050-OBTER-MSG-FILA-IMS THRU 0050-OBTER-MSG-FILA-IMS-FIM IF IO-STATUS EQUAL ' ' PERFORM 0100-TRATAR-EMISSAO-CMD THRU 0100-TRATAR-EMISSAO-CMD-FIM END-IF END-PERFORM. GOBACK.

Elementos de Linguagem adicionados

TERMINADOR EXPLCITO As instrues abaixo ganharam terminador explcito


ADD CALL COMPUTE DELETE DIVIDE EVALUATE IF MULTIPLY PERFORM READ RETURN REWRITE SEARCH START STRING SUBTRACT UNSTRING WRITE END-ADD END-CALL ND-COMPUTE END-DELETE END-DIVIDE END-EVALUATE END-IF END-MULTIPLY END-PERFORM END-READ END-RETURN END-REWRITE END-SEARCH END-START END-STRING END-SUBTRACT END-UNSTRING END-WRITE

DIVERSOS Elementos
Clusula PADDING CHARACTER Clusula RECORD DELIMITER Clusula EXTERNAL no FD Clusula EXTERNAL na WS Clusula GLOBAL na WS DBCS Frase NOT Usado apenas em arquivos sequenciais. Permite o compartilhamento de arquivos entre programas. Somente nvel 01 na WORKING STORAGE Indica que este conector de arquivo um GLOBAL NAME Double Byte Character String (KANJI) NOT AT END, NOT ON SIZE ERROR, NOT INVALID KEY, .... NOT ON EXCEPITION, NOT ON OVERFLOW, NOT END-OF-PAGE Instruo CONTINUE Instruo TITLE Item de dados DAY-OF-WEEK Similar ao NEXT SENTENCE Colocar ttulo no topo da pgina de compilao Informa o dia da semana de acordo com a tabela abaixo 1 = segunda 2 = tera 3 = quarta 4 = quinta 5 = sexta 6 = sabado 7 = domingo

Observaes
Usado apenas em arquivos sequenciais.

Elementos de Linguagem Adicionados

DIVERSOS Elementos
Instruo EVALUATE

Observaes
A instruo EVALUATE fornece uma notao simples para uma srie de instrues IF. 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. Instruo INITIALIZE Inicializa campo ou cojunto de campos com valores pr-determinados. Uma tabela inteira pode ser inicializada atravs desta instruo. Esta instruo funcionalmente equivalente a uma ou mais intrues MOVE. Um item de dado tipo ndice no pode ser inicializado atravs desta instruo. Ex. INITIALIZE campo(s). INITIALIZE campo(s) REPLACING tipo(s) BY campo ou literal. Funo Intrnsica Funo intrnsica uma funo que executa uma operao matemtica, uma operao com caracter ou uma operao lgica e permite que o resultado derivado automaticamente da execuo possa ser referenciado. A tabela das funes disponveis pode ser vista no anexo 3.

Elementos de Linguagem adicionados

REGISTRADORES E ENDEREAMENTOS O COBOL for MVS apresenta vrias novidades nesta rea, algumas delas sero mostradas a seguir Elementos
LENGTH OF

Observaes
Contm o nmero de bytes utilizados pr um campo Ex. MOVE LENGTH OF CAMPO-A TO CAMPO-B.

ADD LENGTH OF CAMPO-A TO CAMPO-C. ADDRESS OF Contm o endereo de cada varivel na LINKAGE SECTION. ex. SET ADDRESS OF CAMPO-LK TO CAMPO-ADDR. POINTER Indica campos definidos para armazenar endereos. ex. 05 CAMPO-ADDR PIC X(04) POINTER VALUE NULLS. SET Atribui valores a campos. Possui 5 formatos. Ex. MOVE SET ADDRES OF CAMPO-LK TO CAMPO-ADDR. SET varivel-condicional TO TRUE/FALSE SET nome-mneumonico TO ON/OFF

Permite enderear uma determinada posio de memria, no definida explicitamente. ex. MOVE varivel (posio-inicial:tamanho) TO CAMPO MOVE CAMPO-A (5:8) TO CAMPO-B. MOVE CAMPO-A (ADDR-INI:TAM) TO CAMPO-B.

ANEXOS
Anexo 1 - QSAM - STATUS KEY Status Key Values -- QSAM files
COBOL for MVS 00 04 OS/VS COBOL 00 (undefined) Successful completion COBOL for MVS only: Wrong length record Successful Meaning

completion 05 (undefined) Optional file not present Successful completion 07 (undefined) NO REWIND/REEL/UNIT/FOR REMOVAL specified for OPEN or CLOSE, but file not on a reel/unit medium. Successful completion At END (no next logical record) Successful completion Permanent error Permanent error File boundary violation. Nonoptional file not present Device type conflict OPEN attempted for file closed WITH LOCK Conflict of fixed file attributes; OPEN fails OPEN attempted for a file in OPEN mode CLOSE attempted for a file not in Open mode REWRITE attempted when last I/O statement was not READ Attempt to rewrite a sequential file record with a record of a different size Sequential READ attempted with no valid next record READ attempted when file not in OPEN INPUT or I-O mode WRITE attempted when file not in OPEN OUTPUT, I-O, or EXTEND mode DELETE or REWRITE attempted when file not in OPEN I-O mode Other errors with no further information

10 30 34 35 37 38 39 41 42 43 44

10 30 34 90 90 92 90 92 92 92 92

46 47 48

92 92 92

49

92

90

90

92 96

92 90

Logic error No file identification (No DD statement for this file)

Anexo 2 - VSAM - STATUS KEY Status Key Values -- VSAM Files


COBOL for MVS 00 02 OS/VS COBOL 00 02 Successful completion Duplicate key, and DUPLICATES specified. Successful completion 04 05 10 14 00 00 10 (undefined) Wrong length record. Successful completion Optional file not present. Successful completion At END (no next logical record) Successful completion On sequential READ for relative file, size of relative record number too large for relative key Invalid key for a VSAM indexed or relative file Invalid key for a VSAM indexed or relative file; sequence error Invalid key for a VSAM indexed or relative file; duplicate key and duplicates not allowed Invalid key for a VSAM indexed or relative file; no record found Invalid key for a VSAM indexed or relative file; attempt to write beyond file boundaries COBOL for MVS only: for a WRITE to a relative file, size of Meaning

20 21 22

20 21 22

23

23

24

24

relative record number to large for relative key 30 35 37 39 41 42 43 30 93 96 90 95 92 92 92 Permanent error Nonoptional file not present Attempt to open a file not on a mass storage device Conflict of fixed file attributes; OPEN fails OPEN attempted for a file in OPEN mode CLOSE attempted for a file not in OPEN mode REWRITE attempted when last I/O statement was not READ or DELETE Sequential READ attempted with no valid next record READ attempted when file not in OPEN INPUT or I-O mode WRITE attempted when file not in OPEN OUTPUT, I-O, or EXTEND mode DELETE or REWRITE attempted when file not in OPEN I-O mode Other errors with no further information VSAM password failure VSAM resource not available Invalid or incomplete VSAM file information No file identification (no DD statement for this VSAM file) OPEN statement execution successful; file integrity verified

46 47 48

94 92 92

49

92

90 91 93 95 96 97

90 91 93 95 96 97

Anexo 3 - Tabela de funes

A tabela abaixo apresenta uma viso geral dos tipos de argumentos, tipos de funes e valores retornados por cada funo intrnsica disponibilizada pelo COBOL for MVS. Tipos de argumentos e tipos de funes so abreviados como se segue: _ A = alphabetic _ I = integer _ N = numeric _ X = alphanumeric.

Table of Functions
FUNCTION-NAME ACOS ANNUITY ARGUMENTS N1 N1, I2 TYPE N N Arccosine of N1 Ratio of annuity paid for I2 periods at interest of N1 to initial investment of one Arcsine of N1 Arctangent of N1 Character in position I1 of program collating sequence Cosine of N1 Current date and time and difference from Greenwich Mean Time Standard date equivalent (YYYYMMDD) of integer date Julian date equivalent (YYYYDDD) of integer date Factorial of I1 The greatest integer not greater than N1 Integer date equivalent of standard date (YYYYMMDD) Integer date equivalent of Julian date (YYYYDDD) VALUE RETURNED

ASIN ATAN CHAR COS CURRENT-DATE

N1 N1 I1 N1 None

N N X N X

DATE-OF-INTEGER

I1

DAY-OF-INTEGER FACTORIAL INTEGER INTEGER-OF-DATE

I1 I1 N1 I1

I I I I

INTEGER-OF-DAY

I1

INTEGER-PART LENGTH

N1 A1 or N1 or X1 N1 N1 A1 or X1 A1... or I1... or N1... or X1...

I I

Integer part of N1 Length of argument

LOG LOG10 LOWER-CASE MAX

N N X X I N X N N N X

Natural logarithm of N1 Logarithm to base 10 of N1 All letters in the argument are set to lowercase Value of maximum argument; note that the type of function depends on the arguments

MEAN MEDIAN MIDRANGE MIN

N1... N1... N1... A1... or I1... or N1... or X1...

Arithmetic mean of arguments Median of arguments Mean of minimum and maximum arguments Value of minimum argument; note that the type of function depends on the arguments

MOD NUMVAL NUMVAL-C

I1,I2 X1 X1 or X1,X2

I N N

I1 modulo I2 Numeric value of simple numeric string Numeric value of numeric string with optional commas and currency sign

ORD ORD-MAX

A1 or X1 A1... or N1... or

I I

Ordinal position of the argument in collating sequence Ordinal position of maximum argument

X1... ORD-MIN A1...or N1... or X1... PRESENT-VALUE N1 N2... RANDOM I1 or none RANGE I1... or N1... REM REVERSE SIN SQRT STANDARDDEVIATION SUM N1,N2 A1 or X1 N1 N1 N1... I N N X N N N Value of maximum argument minus value of minimum argument; note that the type of function depends on the arguments. Remainder of N1/N2 Reverse order of the characters of the argument Sine of N1 Square root of N1 Standard deviation of arguments N N Present value of a series of future period-end amounts, N2, at a discount rate of N1 I Ordinal position of minimum argument

Random number

I1... or N1...

I N N X N X

Sum of arguments; note that the type of function depends on the arguments.

TAN UPPER-CASE VARIANCE WHEN-COMPILED

N1 A1 or X1 N1... None

Tangent of N1 All letters in the argument are set to uppercase Variance of arguments Date and time when program was compiled

BIBLIOGRAFIA
CDIGO GC26-4524 TTULO 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

QSAM - STATUS KEY Status Key Values -- QSAM files


COBOL for MVS 00 04 OS/VS COBOL 00 (undefined) Successful completion COBOL for MVS only: Wrong length record Successful completion Optional file not present Successful completion 07 (undefined) NO REWIND/REEL/UNIT/FOR REMOVAL specified for OPEN or CLOSE, but file not on a reel/unit medium. Successful completion At END (no next logical record) Successful completion Permanent error Permanent error File boundary violation. Meaning

05

(undefined)

10 30 34

10 30 34

35 37 38 39 41 42 43 44

90 90 92 90 92 92 92 92

Nonoptional file not present Device type conflict OPEN attempted for file closed WITH LOCK Conflict of fixed file attributes; OPEN fails OPEN attempted for a file in OPEN mode CLOSE attempted for a file not in Open mode REWRITE attempted when last I/O statement was not READ Attempt to rewrite a sequential file record with a record of a different size Sequential READ attempted with no valid next record READ attempted when file not in OPEN INPUT or I-O mode WRITE attempted when file not in OPEN OUTPUT, I-O, or EXTEND mode DELETE or REWRITE attempted when file not in OPEN I-O mode Other errors with no further information Logic error No file identification (No DD statement for this file)

46 47 48

92 92 92

49

92

90 92 96

90 92 90

VSAM - STATUS KEY Status Key Values -- VSAM Files


COBOL for MVS 00 OS/VS COBOL 00 Successful completion Meaning

02

02

Duplicate key, and DUPLICATES specified. Successful completion

04 05 10 14

00 00 10 (undefined)

Wrong length record. Successful completion Optional file not present. Successful completion At END (no next logical record) Successful completion On sequential READ for relative file, size of relative record number too large for relative key Invalid key for a VSAM indexed or relative file Invalid key for a VSAM indexed or relative file; sequence error Invalid key for a VSAM indexed or relative file; duplicate key and duplicates not allowed Invalid key for a VSAM indexed or relative file; no record found Invalid key for a VSAM indexed or relative file; attempt to write beyond file boundaries COBOL for MVS only: for a WRITE to a relative file, size of relative record number to large for relative key

20 21 22

20 21 22

23

23

24

24

30 35 37 39 41 42 43

30 93 96 90 95 92 92 92

Permanent error Nonoptional file not present Attempt to open a file not on a mass storage device Conflict of fixed file attributes; OPEN fails OPEN attempted for a file in OPEN mode CLOSE attempted for a file not in OPEN mode REWRITE attempted when last I/O statement was not READ or DELETE

46 47 48

94 92 92

Sequential READ attempted with no valid next record READ attempted when file not in OPEN INPUT or I-O mode WRITE attempted when file not in OPEN OUTPUT, I-O, or EXTEND mode DELETE or REWRITE attempted when file not in OPEN I-O mode Other errors with no further information VSAM password failure VSAM resource not available Invalid or incomplete VSAM file information No file identification (no DD statement for this VSAM file) OPEN statement execution successful; file integrity verified

49

92

90 91 93 95 96 97

90 91 93 95 96 97

Você também pode gostar