Cópia de JCL & Utilitarios

Embed Size (px)

DESCRIPTION

jcl

Citation preview

Servios de Informtica MainFrame Training

JCL e UTILITRIOS

SISTEMA OPERACIONAL OS/390 JCL E UTILITRIOS

QUADRO OS/390

LINGUAGEN S DE PROGRAMA O Cobol Natural Pl/I

BASES DE DADOS Vsam Sequenci al Particion ado

BANCOS EDITOR UTILITR DE ES IOS DADOS Adabas DB2 IMS/DBD C Roscoe Tso Idcams Icegener Adrdssu Sort

SEGURA NA Racf TopSecret

ENDUSER Cics

1

Servios de Informtica MainFrame Training

JCL e UTILITRIOS

DEFINIES SOBRE SISTEMA CONSIDERAES 2

Servios de Informtica MainFrame Training

JCL e UTILITRIOS

Sistema um conjunto de programas, softwares, aplicativos e utilitrios que relacionam-se dentro de um mesmo assunto. Ex.: Programas de folha de ponto, imposto de renda, seguros, frias, 13o. salrio referem-se ao sistema de Folha de pagamento. Programas de balano, balancete, saldos, dbitos crditos, referem-se ao sistema de Contabilidade. O Analista de Sistemas o profissional responsvel pela implantao de um sistema. Ele faz o levantamento na rea a ser informatizada, com base nos controles manuais existentes e das necessidades do negcio. Ele deve estar atento s legislaes e deve procurar conhecer ao mximo o setor, e ter a sensibilidade para que o sistema ser implantado atenda s necessidades do negcio. No dever ser crtico nem se deixar levar pelo gosto pessoal. Depois de ter todo o mapeamento necessrio, faz uma prvia do vir a ser o sistema a ser implantado. Depois de exaustivas apresentaes, reunies e brain-stormings, o sistema comea ento a ser implantado. a que entra a figura do Programador. Ele dever atender s necessidades levantadas pelo Analista e ento os programas desenvolvidos comearo a ser testados um a um. Chega ento a fase crucial que a da montagem do sistema, como se fosse um quebra-cabeas. Os programadores envolvidos quase nunca sabem ou conhecem todo o processo. Geralmente cumprem as especificaes determinadas pelo Analista de Sistemas. COMO MONTAR UM SISTEMA Imaginemos um sistema em fase de implantao. O Analista obviamente saber a ordem em que os programas devero ser executados. Com base nestas seqncias ele ento montar o fluxo do sistema, que ser um dos documentos a serem enviados para a produo.

3

Servios de Informtica MainFrame Training

JCL e UTILITRIOS

Fluxo hipottico:

PROG001

PROG003

PROG004

PROG009

PROG011

PROG008

PROG021 PROG012 PROG010

PROG022

Fig. 01

4

Servios de Informtica MainFrame Training

JCL e UTILITRIOS

Com base no fluxo da fig. 01 podemos fazer algumas constataes: Se o PROG001 no processar ok, nenhum outro programa poder processar. Quando o PRG009 terminas ok, 2 outros programas podero processar. O PROG022 depende do fim ok de 2 outros programas. Repare nas seqncias: PROGR001 + PROGR003 + PROG009 PROGR011 + PROGR021 Com base nestas informaes, poderemos montar 2 pacotes de programas que processaro numa mesma seqncia lgica. A este pacote denominamos JOB. Tambm poderemos montar um outro JOB com PROGR008 + PROG010 ou PROGR008 + PROGR012. COMPONENTES DO SISTEMA OPERACIONAL CATLOGO DO SISTEMA OPERACIONAL x VTOC Imagine a cena: voc chega a um hotel onde ir encontrar-se com algum hospedado. Voc no sabe onde ele se encontra. Voc se identifica recepo do hotel que consulta um catlogo. Aps encontrar o hspede que que voc procura, a recepcionista ento te indica pegar um elevador e se dirigir ao 15o. andar, no apartamento 1506. Voc se encaminha e ao tocar a campainha voc cumpriu seu roteiro. Catlogo do hotel ---> catlogo do sistema operacional. Elevador ---> canal Numerao dos apartamentos ---> VTOC Campainha ---> Header do arquivo. CATLOGO POOL DE DISCOS

VTOC

5

Servios de Informtica MainFrame Training

JCL e UTILITRIOS

O catlogo do sistema contm a informao de todos os arquivos existentes no sistema. Ele recebe a solicitao do vinda do carto DD, procura o arquivo no catlogo, encontra o disco onde est o arquivo. Chegando no disco, procura pela VTOC onde h um catlogo interno contendo todas as informaes daquele volume com o endereo fsico do registro dentro do disco. O sistema ento l o registro em blocos para a memria do computador.

ESTRUTURA DE ARQUIVOS O mainframe trabalha bsicamente com 3 tipos de arquivos que j vem embutido quando se adquire o sistema operacional: sequencial, VSAM e particionado. Opcionalmente uma empresa pode tambm trabalhar com banco de dados como ADABAS, DB2 e IMS/DB. Antes porm, vamos a uma pequena analogia. Quando voc almoa, voc usa um garfo, certo ? Repare que o garfo tem um tamanho anatmico que permitir que voc coma tranquilo e no tempo certo. Se voc tentasse comer enfiando o prato de uma s vez na boca no conseguiria. Se voc usasse palito para alcanar os gros de arroz levaria horas para almoar, certo ? A mesma coisa acontece no mainframe. O sistema para ser bem aproveitado 'engole' de uma s vez 6

Servios de Informtica MainFrame Training

JCL e UTILITRIOS

uma quantidade de registros do tamanho da sua capacidade de transmisso do canal que leva os dados do disco at a memria. Isto chamamos de blocagem. ARQUIVO SEQUENCIAL Pode ser fixo ou varivel. REGISTRO FIXO O registro fixo possui a mesma quantidade campos e bytes em todo o registro com o mesmo lay-out. Veja o exemplo: 129398547ADELMO 3.730,002M 637374839MARIA SERPENTINA 340,000F 283747487SERGIO BRAGANA 320,001M O lay-out do arquivo : 1 10 = cdigo do funcionrio 11 49 = nome do funcionrio 50 76 = salrio 77 = quantidade de dependentes 78 = sexo Percebemos que um arquivo fixo pois o lay-out o mesmo para todos os registros. A blocagem vai ser calculada pelo sistema. Neste caso temos um arquivo de 78 posies. A blocagem ideal fica sempre em torno de 32.000 bytes. Portanto quanto maior o tamanho do registro, menor a quantidade de registros a serem enviados para a memria. Mas a quantidade de dados ser a mesma. Detalhe: o sistema no quebra registros. REGISTRO VARIVEL Imaginemos os seguintes registros: 8374RUA XAVIER DE TOLEDO BRAGANA, 720 BLOCO 16 AP 17 SUITE 12 2938RUA Z, 9 CONTADOR RECEPCIONISTA OFFICE-BOY

7

Servios de Informtica MainFrame Training

JCL e UTILITRIOS

Considerando o seguinte lay-out: 1-4 cdigo 5-80 endereo Repare que se o registro for fixo haver um desperdcio de bytes quando o endereo for curto. Neste caso o Analista de Sistemas poder adotar o registro varivel. Dever ser informado a clusula RECORD FORMAT IS VARIABLE no lugar de FIXED. Para o carto DD, dever ser informado o tamanho mximo (no nosso exemplo 80) acrescido de 4. Portanto 84. Estes 4 bytes a mais so para controle do registro. ARQUIVOS PARTICIONADOS So arquivos que possuem um diretrio interno e membros que podem ser parmetros, programas, procedures, jobs, etc. No so usados como base de dados e sim como bibliotecas do sistema. ARQUIVOS VSAM Existem 3 tipos de arquivos VSAM: KSDS, RRDS e ESDS. Estes 2 ltimos so utilizados muito raramente e por isso no ser objeto de nosso estudo. Vamos nos fixar em KSDS, que 99% das utilizaes. -So arquivos que trabalham com chaves. -So base de dados para o CICS mas tambm podem ser usados batch, mas no devem ser usados simultneamente. -Possui 2 arquivos inter-relacionados mas separados fsicamente. Um INDEX e um DATA. O index (ou chave) a base para o acesso ao data. -No pode ter chaves dIDElicadas. -O acesso pode ser randmico(ideal) ou sequencial. No acesso randmico o sistema procura a chave do registro para ento acessar o data, onde conter o restante das informaes. J o sequencial acessa todos os registro como se fosse um arquivo sequencial puro. -O IDCAMS um utilitrio criado para manuteno deste tipo de arquivo que estudaremos mais tarde. -Os arquivos VSAM devero ser definidos antes da sua utilizao, seja ele utilizado para leitura ou gravao atravs deste utilitrio. -Pode tambm ser fixo ou varivel. -No existe blocagem como no arquivo sequencial mas um formato de alocao especial atravs de clculos especiais. -O cluster a juno dos arquivos de INDEX e DATA.

8

Servios de Informtica MainFrame Training

JCL e UTILITRIOS

INTERFACES COM O SISTEMA O sistema operacional possui interfaces que podem ser utilizadas para interagir com o sistema ou para movimentao de dados. Os exemplos mais comuns so ROSCOE e TSO como editores de texto e o CICS para gerenciador de dados. ROSCOE e TSO Embora tenham interfaces diferentes o objetivo o mesmo. Colocar o usurio dentro do sistema. Atravs destes aplicativos pode-se por exemplo criar JCL, editar programas, acessar arquivos, compilar programas, submeter jobs etc. sempre utilizado por usurios internos. CICS Customer information control system. Como o prprio nome indica, utilizado para acessar informaes, inserir dados, deletar dados etc. Tem sempre como base de dados arquivos do tipo VSAM. A interface criada pela equipe de desenvolvimento e cada tela est associada a uma transao. Quando o usurio acessa o sistema e valida seu user, ele ento poder utilizar as transaes que lhe so permitidas. Uma transao CICS pode acessar um ou mais arquivos VSAM.

9

Servios de Informtica MainFrame Training

JCL e UTILITRIOS

10

Servios de Informtica MainFrame Training

JCL e UTILITRIOS

J.C.L. DEFINIO DE UM JOB Um job (servio) composto por um ou mais programas que sero processados dentro de uma seqncia. Se esta seqncia for quebrada por alguma anormalidade, interrompe-se o fluxo, repara-se o erro e faz a retomada. Uma interrIDEo causada pelo programa chamamos de ABEND. Esta retomada (ou restart) poder ser feita desde o incio, a partir do ponto que houve a ocorrncia, em algum ponto anterior do Job, ou at mesmo de algum job anterior. Pode tambm ser necessrio a recIDEerao de algum arquivo que tenha sido o causador do trmino anormal. Um seqncia de jobs em cadeia chamamos de rotina. Observaes muito importantes sobre um JOB: Um job composto de pelo menos um programa. Este programa poder ser um desenvolvido na empresa ou at mesmo um utilitrio. Um job SEMPRE (obrigatoriamente) comea com um carto JOB, que ir se apresentar para o sistema operacional e disponibilizar as filas e prioridades dentro do sistema A cada programa ou utilitrio denominamos STEP. Cada step representado por um carto chamado EXEC. O carto EXEC responsvel por chamar o programa compilado e linkeditado. (Podendo ser tambm um utilitrio) Dentro de cada carto EXEC teremos cartes DD que iro disponibilizar os dispositivos necessrios para o funcionamento do programa. DESENHO BSICO DE UM JOB //XXXXXXX JOB XXXXXXXXXXXXXXXXXXXXXXX //XXXXXXX EXEC XXXXXXXXXXXXXXXXXXXXXX //XXXXXXX DD XXXXXXXXXXXXXXXXXXXXXXX //XXXXXXX DD XXXXXXXXXXXXXXXXXXXXXXX //XXXXXXX DD XXXXXXXXXXXXXXXXXXXXXXX //XXXXXXX.....EXEC XXXXXXXXXXXXXXXXXXXXXXX //XXXXXXX DD XXXXXXXXXXXXXXXXXXXXXXX //XXXXXXX DD XXXXXXXXXXXXXXXXXXXXXXX //XXXXXXX DD XXXXXXXXXXXXXXXXXXXXXXX //XXXXXXX.....DD XXXXXXXXXXXXXXXXXXXXXXX //XXXXXXX.....EXEC XXXXXXXXXXXXXXXXXXXXXXX //XXXXXXX DD XXXXXXXXXXXXXXXXXXXXXXX 11

Servios de Informtica MainFrame Training

JCL e UTILITRIOS

//XXXXXXX DD //XXXXXXX DD //XXXXXXX.....DD //

XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX

Fig. 02 Repare: temos neste exemplo um Job composto de 4 steps. Estes steps podem ser programas caseiros e/ou utilitrios (como o SORT e o IDCAMS) que sero visto adiante. Voltando a fig.01 poder muito bem ser a seqncia 01 tendo um SORT entre os programas PROG003 e PROG009. Neste caso o PROG003 gerou um arquivo a ser lido pelo PROG009. Mas antes de utilizar, o PROG009 precisa reclassificar o arquivo para atender sua regra de negcio. A FUNO DO J.C.L. Quando mencionamos as palavras JOB, EXEC e DD, estamos falando de uma linguagem: JCL (Job control language ou linguagem de programao de servios). A funo do JCL solicitar e informar recursos e dispositivos ao sistema operacional. Os cartes JOB, EXEC e DD obrigatoriamente devero ter um NOME. Este nome ser conhecido como JOBNAME, STEPNAME e DDNAME. So inserido logo aps o // e antes do carto comando. Um exemplo tpico de um JOB com um step apenas para ilustrao. //IDE14KR JOB (9983,98,978,09),ADELMO, // CLASS=6,MSGCLASS=U //STEP0101 EXEC PGM=MYPROGSS //ENTR01 DD DSN=IDEYA.CADCLI,DISP=SHR //SAIDA02 DD DSN=IDEYA.CADENT,DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA,SPACE=(TRK,(5,1),RLSE), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=0) //SYSOUT DD SYSOUT=* //PARM01 DD * PRINTALL 12

Servios de Informtica MainFrame Training

JCL e UTILITRIOS

//* //STEP0102 EXEC PGM=MYPROGXX,COND=(0,NE) //ENTR03 DD DSN=IDEYA.CADENT,DISP=SHR //ENTR04 DD DSN=IDEYA.CADRET,DISP=SHR //SAIDA03 DD DSN=IDEYA.CADSAI(+1),DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA,SPACE=(TRK,(5,1),RLSE), // DCB=(GDG,RECFM=FB,LRECL=120,BLKSIZE=0) //RELATO DD SYSOUT=(R,,XPTO) // Fig.03 Neste exemplo temos um job com 2 steps apenas que ir executar um programa chamado MYPROGRSS , e ter 2 arquivos de entrada sendo o primeiro em disco chamado pelo DDNAME ENTR01 e um parmetro chamado PARM01 E uma sada chamado pelo DDNAME SAIDA02. Um outro step ir executar o programa MYPROGXX, que ir ler 2 arquivos e gerar um terceiro arquivo em GDG.

REGRAS BSICAS DE J.C.L. No se esquea que JCL uma srie de comandos que voc est passando para o sistema operacional entender o seu programa, como se fossem parmetros. JAMAIS confunda JCL ERROR com ABEND. O primeiro erro de sintaxe ou indisponibilidade de recursos. O segundo falha de programa que em alguns caso pode at mesmo ser causado por recursos do sistema. Em caso de erro de JCL, o programa em questo no foi executado. Os cartes // nas colunas 1 e 2 so obrigatrios em todo o JCL, exceto se houver algum parmetro a ser passado pelo usurio (opo) ao programa. (Veja regra 6) Existem parmetros obrigatrios e parmetros opcionais. Com exceo do Account e programer-name do carto Job, todos os outros parmetros possuem o sinal =. O parmetros vm a esquerda e os sub-parmetros direita do sinal.] Os sub-parmetros podem ser 1 ou mais de 1. Quando houver mais de 1 sub-parmetro dever estar entre aspas. Se o seu programa tem opo de processamento (ex: listagem total ou parcial), este opo (que na verdade tambm um parmetro), este

13

Servios de Informtica MainFrame Training

JCL e UTILITRIOS

poder ser passado aps um carto DD que contenha o comando DD *. Ao comear numa empresa pea sempre uma cpia da padronizao da empresa. Nem sempre voc poder batizar seu programa, jobname, stepname etc com o nome que voc quer. Existem regras, com certeza. CARTO JOB //IDE14KR JOB (9983,98,978,09),ADELMO, // CLASS=6,MSGCLASS=U IDE14KR o JOBNAME. Dever ter sempre uma padronizao estabelecida pela rea de produo da empresa. Procure saber a regra antes de fazer a denominao. Regra: Dever ter de 1 a 8 caracteres (em geral sempre 8), sendo o primeiro alfabtico. JOB Nome do carto de comando Obrigatrio. Sempre entre espaos em branco. (9983,98,978,09): Informe-se com a produo pois isto varia de empresa para empresa. Pode nem ser obrigatrio. Mas se for, dever ser sempre o primeiro aps o JOB. ADELMO Programer-name. Obrigatrio. Para identificar o nome do usurio. Se no houver account, vem logo aps o comando JOB. CLASS=Define a classe que ser submetida na fila de JOBS. MSGCLASS=Define a classe de sysout (relatrio) onde sero geradas todas as logs durante o tempo em que o job permanecer no sistema. Outros parmetros usados podero ser requeridos na empresa, mas no so obrigatrio no carto JOB, tais como TYPRUN, NOTIFY e outros.

O CARTO EXEC composto do stepname, carto comando (EXEC) e o nome do programa (ou utilitrio) a ser chamado pelo JOB. Sintaxe: //STEP0101 EXEC PGM=MYPROGXX,COND=(0,NE) Neste caso, o MYPROGSS um programa que dever estar na biblioteca padro do sistema. Antes de dar OPEN no programa o sistema ir verificar se o programa realmente existe. Em seguida ir verificar os 14

Servios de Informtica MainFrame Training

JCL e UTILITRIOS

recursos solicitados pelos cartes DD para s ento dar OPEN no programa e carrega-lo em memria. Todos os programas ao terminarem, emitem um cdigo de retorno para o sistema operacional. Se for 0 (zero) significa que terminou OK. O COND, neste caso ser para checar se o(s) step(s) anterior(es) terminou(aram) ok. Os mais comuns: (0,NE) Se todos os steps anteriores terminaram OK, pode processar este step. (2,LT) Significa que este step aceita que um os steps anteriores emitam um return code igual a 0 ou 1. Regra bsica: Comparar os return code anteriores e comparar com o parmetro. Se for negativo, execute. Se for positivo no execute. Outros exemplos: (0,LT) no ir executar nunca pois no existe return code negativo. (0,EQ) s processa se algum step anterior der return code diferente de 0. (EVEN) executa mesmo que algum step anterior tenha terminado anormalmente. (ONLY) executa somente se algum programa tenha terminado anormalmente. OBSERVAO: Em caso de erro de JCL o parmetro COND no respeitado. A interrIDEo ocorre de qualquer forma. O CARTO DD Acompanhando nosso exemplo na fig.03, vamos utilizar os cartes para as definies. Antes porm bom lembrar que o carto DD utilizado para pedir ao sistema alocao de recursos fsicos (dispositivos) para que o programa seja processado. Sintaxe: //ENTR01 DD DSN=IDEYA.CADCLI,DISP=SHR //SAIDA02 DD DSN=IDEYA.CADENT,DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA,SPACE=(TRK,(5,1),RLSE), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=0) DDNAME = (ENTR01) Tem que ser o mesmo que voc especificou na select do seu programa. Confira sempre a padronizao na sua instalao. DD = o nome do carto-comando. 15

Servios de Informtica MainFrame Training

JCL e UTILITRIOS

DSN = Parmetro que ir dizer ao sistema qual o nome externo do arquivo em questo. Lembre-se que neste caso voc est associando ENTRO1 ao arquivo IDEYA.CADCLI e SAIDA02 ao arquivo IDEYA.CADENT. O nome externo o nome que o sistema conhece o arquivo. DISP = Informa o status do arquivo no sistema operacional. Sintaxe: NEW,CATLG,CATLG DISP=SHR,UNCTLG,UNCTLG OLD,DELETE,DELETE KEEP,KEEP PRIMEIRO SUB-PARMETRO STATUS DO ARQUIVO SHR ---> Significa que o arquivo j existe e pode ser lido por recurso simultneamente. OLD ---->Significa que o arquivo j existe e que o programa exclusividade na leitura. NEW ---->Arquivo novo, a ser criado neste momento. outro exige

SEGUNDO E TERCEIRO SUB-PARMETRO AO A SER TOMADA EM CASO DE TRMINO NORMAL E TRMINO ANORMAL RESPECTIVAMENTE. CATLG --> Catalogue o arquivo. bviamente que esta opo deve estar sempre acompanhada de NEW no primeiro sub-parmetro. Porque se o arquivo estiver sendo lido porque j est catalogado. UNCATLG --> Descatalgoue o arquivo. Evite usar sempre. DELETE ---> Delete o arquivo. Se precisar deletar o arquivo use sempre esta opo. KEEP ---> Mantenha o arquivo do jeito que intacto (do que jeito que estava antes). LEMBRETES: -SEMPRE use o modelo da pgina anterior para entrada/sada. -Se o arquivo de entrada(OLD ou SHR) no precisa especificar demais parmetros, pois bviamente j est catalogado e o sistema saber encontr-lo. Se for de sada voc dever usar os demais parmetros do exemplo ENTR02.

16

Servios de Informtica MainFrame Training

JCL e UTILITRIOS

Exemplos invlidos: (SHR,CATLG,DELETE) ---> Se o arquivo novo (SHR) como ir catalogar se j est catalogado ? O sistema no recataloga. (NEW,KEEP,DELETE) ---> Como manter um arquivo que ainda no existe ? Default: Se voc colocar (SHR,KEEP,KEEP). Outros sub-parmetros: UNIT= ----> Especifica o tipo de dispositivo onde voc criar o arquivo. Geralmente disco SYSDA. Confira sempre com um funcionrio da sua seo ou com a equipe de produo. SPACE= ----> Espao a ser utilizado. Lembre-se que no precisa ser preciso, mas quanto mais preciso melhor. uma estimativa. O sistema ir checar se h disponibilidade para gravar seu arquivo. Se no houver, cancelar. Sintaxe: SPACE=(TRK,(5,2),RLSE). Repare que h sub-parmetro dentro de sub-parmetro. Neste caso permanece a regra de utilizar ' ( ) '. Neste exemplo estamos alocando 5 trilhas (TRK) na alocao primria, 2 trilhas de alocao secundria e liberando (RLSE) as trilhas no utilizadas. Poderia ser cilindros (CYL) ao invs de TRK mas no convm sua utilizao. Para saber o nmero ideal considere que uma trilha comporta aproximadamente 56.000 bytes. Portanto neste caso estamos alocando 5 trilhas. Se no for suficiente esta alocao, o sistema alocar mais 2 trilhas (alocao secundria) at 16 vezes para atender a solicitao. Se ainda no for suficiente o programa cancelar. DCB= ---> Indica o formato do arquivo a ser gravado. No necessrio para arquivos a serem lidos, pois o catlogo guarda esta informaes. Sintaxe: DCB=(RECFM=FB,LRECL=98,BLKSIZE=0) Obs.: A ordem dos sub-parmetros no obrigatria. Neste exemplo: Indica que o arquivo FB (fixo blocado). Confira que o seu programa possui as clusulas 'BLOCK 0' e 'RECORD FORMAT IS FIXED'. Outras 17 apenas DISP=SHR o sistema assume

Servios de Informtica MainFrame Training

JCL e UTILITRIOS

opes possveis: VB (varivel blocado), FBA (fix blocado com caracter de impresso) e F (fixo sem blocagem. EVITE sempre) e PO (particionado) O tamanho do registro 98. Se fosse varivel deveria ser o tamanho do maior registro + 4. BLKSIZE= ---> Blocagem do registro. o maior nmero de bytes trazidos para a memria de uma s vez. sempre uma quantidade prxima de 32.000. Deixe sempre com '0', pois o sistema calcula automticamente a blocagem ideal. SYSOUT= ---> Este carto tem finalidade definir a classe em que o relatrio ser impresso. Como as empresas sempre tem mais que uma impressora, diversos recebedores, diversos tipos de formulrios estas informaes sero de utilizadas para fazer estas definies. Neste exemplo o relatrio ser emitida na classe 5 com tipo de formulrio XPTO, que pode ser por exemplo uma fatura. GDG/GENERATION DATA GROIDE Imagine o seguinte step: //STEP0102 EXEC PGM=MYPROGXX,COND=(0,NE) //ENTR03 DD DSN=IDEYA.CADENT,DISP=SHR //ENTR04 DD DSN=IDEYA.CADRET,DISP=SHR //SAIDA03 DD DSN=IDEYA.CADSAI,DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA,SPACE=(TRK,(5,1),RLSE), // DCB=(RECFM=FB,LRECL=120,BLKSIZE=0) //RELATO DD SYSOUT=(R,,XPTO) // Repare que o arquivo de sada referente ao DD SAIDA03 est tentando catalogar um arquivo. O que acontecer se o arquivo j existir ? Isto muito comum quando uma rotina tem uma certa frequncia de processamento. Neste caso o sistema no ir catalogar o arquivo pois emitir um erro de JCL Direct acess dIDElicate e o step ir interromper. Voc ter 2 sadas: deletar o arquivo previamente ou usar arquivos GDG. Os arquivos to tipo GDG permitem que voc grave um mesmo arquivo com uma extenso que ele mesmo cria e controla. Tudo que voc precisa fazer entregar o controle ao GDG. Isto feito atravs do utilitrio IDCAMS e sempre feito pela equipe de produo. Veja como funciona para o arquivo exemplificado. IDEYA.CADSAI 18 GDGBASE LIM=05

Servios de Informtica MainFrame Training

JCL e UTILITRIOS

IDEYA.CADSAI.G004V00 IDEYA.CADSAI.G005V00 IDEYA.CADSAI.G006V00 IDEYA.CADSAI.G006V00 IDEYA.CADSAI.G007V00 Neste exemplo o pessoal da produo definiu o GDGBASE com 5 geraes. Ao completar o ciclo de 5 arquivos ele automaticamente libera a 6a. greao. Isto muito til pois evita-se ter que deletar um arquivo antes de cria-lo, permite ler um arquivo anterior etc. Portanto, para gravar siga o modelo abaixo: //STEP0102 EXEC PGM=MYPROGXX,COND=(0,NE) //ENTR03 DD DSN=IDEYA.CADENT,DISP=SHR //ENTR04 DD DSN=IDEYA.CADRET,DISP=SHR //SAIDA03 DD DSN=IDEYA.CADSAI(+1),DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA,SPACE=(TRK,(5,1),RLSE), // DCB=(GDG,RECFM=FB,LRECL=120,BLKSIZE=0) //RELATO DD SYSOUT=(R,,XPTO) // O que h de diferente ? No dsname foi includo ao final o parmetro (+1) que indica acrescentar uma gerao. No DCB foi includo a opo GDG. Para ler este arquivo depois: //SAIDA03 DD DSN=IDEYA.CADSAI(0),DISP=SHR

Muito importante: GDG s vale para arquivos seqenciais. Para ler o ltimo arquivo no necessita escrever toda a extenso que ele criou. Basta apenas colocar (0) para ler a ltima verso. Para ler a penltima verso coloque (-1) e assim por diante. Se ao ler o arquivo esquecer de colocar o parmetro (0) o sistema ir ler TODOS os arquivos como se fosse apenas um.

19

Servios de Informtica MainFrame Training

JCL e UTILITRIOS

UTILITRIOS SORT/MERGE O DFSORT um utilitrio da IBM apropriado para fazer classificao de arquivos. Pode tambm ser usado para intercalao. Alm disso, o DFSORT pode eliminar registros durante a cpia atravs de filtros, excluir campos, reformatar, sumarizar registro iguais, saltar registros, criar mais de uma sada etc. Seu uso muito extenso e vamos tratar dos itens mais utilizados. Sintaxe: //IDE14KR JOB (9983,98,978,09),ADELMO, // CLASS=6,MSGCLASS=U //STEP0101 EXEC PGM=SORT //SORTIN DD DSN=IDEYA.CADCLI,DISP=SHR //SORTOUT DSN=IDEYA.CADCLI.CLASS,DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA,SPACE=(TRK,(5,1),RLSE), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=0) //SYSOUT DD SYSOUT=* //SYSIN DD * SORT FIELDS=(13,10,BI,A),FORMAT=F //* OPES POSSVEIS: ALTSEQ DEBUG END INCLUDE INREC OMIT OPTION OUTFIL OUTREC RECORD SORT SUM

DD

20

Servios de Informtica MainFrame Training

JCL e UTILITRIOS

UTILITRIOS - SORT SORT-INCLUDE Sort com seleo do que voc quer para gravar na sada //S01X04 EXEC PGM=SORT,COND=(0,NE),REGION=4096K //*---------------------------------------------------//* SORT POR BANCO, NUMPER //*---------------------------------------------------//SORTMSG DD SYSOUT=* //SORTWK01 DD UNIT=SYSDA,SPACE=(TRK,450) //SORTIN DD * A E B E A D B D X D B A A A //SORTOUT DD SYSOUT=* SORT FIELDS=COPY INCLUDE COND=(1,1,CH,EQ,C'A',AND,(9,1,CH,EQ,C'E',OR, 9,1,CH,EQ,C'A')) //* RESULTADO: A E A A OUTRO INCLUDE //SYSIN DD *,DCB=BLKSIZE=80 INCLUDE COND=(10,05,CH,EQ,C'00002',OR, 20,05,CH,EQ,C'00030') OPTION COPY EXEMPLO: ARQUIVO DE ENTRADA