Академический Документы
Профессиональный Документы
Культура Документы
MAINFRAME COBOL
(Amostra)
Pgina: 1
Aula2TSO(TimeSharingOption)
Opo3.3doPDF
3Move/CopyMove,copy,orpromotemembersordatasets
Reparenasseguintesmensagens:FromISPFLibrary:eFromOtherPartitionedor
SequentialDataSetquenosdoaexatasensaoqueestamosnosreferindoaumarquivode
origem.Nesteexemplovamoscopiarummembrodeumabiblioteca(GP.GPMF99.COBLIB)
utilizandoaopocparaumoutrodataset.VamoscopiaromembroBALANCEparauma
outrabiblioteca......masparaqualbiblioteca?Vamosdarum<ENTER>.
www.gpritreinamento.com.br(11)32272261
Pgina:1
Repare que agora apareceu 2 vezes a palavra TO que nos d a exata sensao de
refernciaaumarquivodedestino.Nesteexemploestoucopiandoomembroselecionadono
exemplo anterior para esta biblioteca. Vamos manter o nome de origem do membro. Se
quisssemosalterarbastavacolocarnocampomemberonovonome.Nocantosuperiorda
tela aparece a confirmao do nome do arquivo/membro que est sendo copiado.
Omembrododatasetfoicopiadonormalmenteeretornaautomaticamenteateladeorigem.
Opo3.4doPDF
4DslistPrintordisplay(toprocess)listofdatasetnames.PrintordisplayVTOC
information.
www.gpritreinamento.com.br(11)32272261
Pgina:2
Vamos listar todos os arquivos do catlogo que comeam com GP.GPMF80. O resultado:
Podemostrabalharcomosdatasetslistadosacima.Podemoseditar(E),visualizar(B),
deletar(D),renomear(R),copiar(C),mover(M),etc.Umaoutraopo,nestatelautilizaro
comando barra (como no exemplo), que vai abrir vrias opes, inclusive as citadas acima.
Vejaoresultado:
Um popup foi aberto e vrias opes sobre o que fazer com o arquivo selecionado.
Bastaselecionaronmerodaopo.Funcionarcomooscomandocitados.
Apartirdestecomandoquasetodasasfunesmostradasatomomentopoderoser
feitasapartirdestaopo.
www.gpritreinamento.com.br(11)32272261
Pgina:3
Asopesde5a11estodesabilitadaseporissonoseroobjetosdeestudo.Elas
sodeusodareadesuporteoperacional.
Opo3.12doPDF
12SuperCComparedatasets
VamoscompararoarquivoGP.GPMF80.MANUTcomoarquivoGP.GPMF99.MANUT.
Necessitaremos2painisparaentrarcomainformao.
Comeste:
www.gpritreinamento.com.br(11)32272261
Pgina:4
Eoresultadoser.......
Aopo13geraemdiscoestasdiferenas.Masafuncionalidadeamesma.
Opo3.14doPDF
14SearchForSearchdatasetsforstringsofdata(StandardDialog)
www.gpritreinamento.com.br(11)32272261
Pgina:5
Oresultado:
As opes 4 e 5 do PDF servem para compilar programas dentro do TSO. Porm sua
funcionalidadeaindanoestativada.necessriocompiladorinstaladodentrodoTSO,oque
novantajoso.
Asopes7a11sodestinadasexclusivamenteequipedesuporte.
Naopo6possvelemitircomandosparaoperao,comocancelarjobs,mensagens
paraooperadorouatmesmofunesdoRACF.Obviamentequeestafunogeralmente
desabilitadaparareadedesenvolvimento.
www.gpritreinamento.com.br(11)32272261
Pgina:6
PRINCIPAISCOMANDOSDETSO
ComandosdeTSOsoentradasnalinhadecomando,sempreusadosnomanuseiode
arquivos editados. Lembrese que qualquer arquivo para ser alterado ou incluir informaes
eleprecisasereditado.Portantoumarquivoeditadoumarquivoaltervel.
F MARIA procura pela palavra Maria dentro do arquivo. Para continuar procurando a
mesmaocorrncianorestantedoarquivo,continueteclandoF5,
C SECTIONSECAOALLalteratodasasocorrnciassectionparasecao(emtodoarquivo).
SAVEsalvaoarquivoemuso(comomesmonomeevidentemente).
CANCEL cancelatodasasalteraesrealizadasdesdeoltimosave.Oarquivomantm
asmesmascaractersticasanteriores.
RECOVERYONUmanicavez,habilitaaopoUNDO(desfazer)umafuno.
L PGM01 Este comando s poder ser executado quando dentro de uma biblioteca.
Utilizadoparalocalizarummembrodentrodeumabiblioteca.
HEX Exibeoarquivoemhexa
HEXOFFRetornaadecimal.
RES Limpamensagensdosistema.
M+F8Posicionacursornaultimalinha
M+F7Posicionacursornaprimeiralinha
L 26Posicionacursornalinha26
EXC SECTIONALLExcluitodasaslinhascomaocorrnciasection(semall,somentea
primeira)
www.gpritreinamento.com.br(11)32272261
Pgina:7
COMANDOSDELINHAS
(tambmvlidosomenteparamodoedit)
COLS Criarguanalinhasuperior
C copialinha
CC+CCCopiablocodelinhas
A LocalizadorparaoscomandosCopyeMove.A=after
M Move1linha
MM+MM Moveblocodelinhas
RRepetelinha
RR+RR Repeteblocodelinhas.
| Inserelinhas
N+DeslocaotextoNcolunasparadireita
N DeslocaotextoNcolunasparaaesquerda
www.gpritreinamento.com.br(11)32272261
Pgina:8
OSDSF
EstaatelaprincipaldoSystemDisplaySearchFacility,ousimplesmenteSDSF.um
aplicativoque,aexemplodoPDF,rodadebaixodoTSO.Aprincipalfunodesteaplicativo
permitiroacompanhamentoemonitoraodejobsdentrodosistemaoperacional.
Nesta tela acima podemos perceber que as opes mostram as diversas reas do
sistemaoperacionalporondetrafegamosjobsbatch.Nemtodasasopesestarohabilitadas
para voc na sua empresa. E mesmo dentre as opes liberadas existem funes como por
exemplo,cancelarjobs,deletarsysout,monitorarjobdeoutrousurioquevoccertamente
noterpermisso,poisoSDSFcontroladopeloRACF.
LOG Exibealogdaconsolemsterdosistemaoperacional.
DA Exibejobsemexecuo(certamenteosquevoctempermissodevisualizar)
I JobspresosnaInputqueue.
O Jobsnaoutputqueue(noliberadosparavisualizao)
H Jobsemhold
ST Jobsnasada,liberadosparavisualizao(sysoutsdeexecuo)
PR Impressorasdosistemaoperacional
INIT Statusdosinitiators
www.gpritreinamento.com.br(11)32272261
Pgina:9
Demaisfunesutilizadaspelosuportetcnico.
OpoST
Visualizarjobs
NOTA:ouserGPMF80sconseguevisualizarosjobsiniciadoscomGPMF80.Aopo
s(deselect)abreavisualizaodasysoutdojobscomoveremosaseguir.
Resultado.
www.gpritreinamento.com.br(11)32272261
Pgina:10
NAVEGANDOENTRETELAS
UsandoF2eF9
Imagine a situao: Voc entrou no sistema pela opo P.3.4, abriu um job e o
submeteu.Paravisualizarasysoutdeexecuo,vocdeveriateclarF34vezes,voltaraomenu
principal,entrarnoSDSF,eentrarnaopoST.Vocvojob,masprecisasubmeter.Vocsai
dafunoST,retornaaoPDFevainavegandoatretornaraojob.Acertaojob,submeteetem
quevoltaraoSDSF.
ParaminimizaresteesforovocpodedividiratelacomF2etrabalharcomosefosse
2usuriossimultneos.VocnavegaentreambosutilizandoateclaF9.
Reparequeatelaestdividida.Alinhapontilhadaindicaadivisoem2sessessimultneas.
www.gpritreinamento.com.br(11)32272261
Pgina:11
SAINDODOTSO
VocdevepressionarF3atapareceratelaabaixo:
Digite2emProcessoptionepressione<Enter>.
LOGOFF
O comando LOGOFF (que voc dever digitar logo abaixo de READY) encerra a sesso de
TSO. Como confirmao da ao e enviada a seguinte mensagem ao terminal :
NOTA:NuncasaiadoTSOsemLOGOFFaUSERIDficapresaevocnoconseguir
logarsenovamente.
www.gpritreinamento.com.br(11)32272261
Pgina:12
Questionrio
1. CitedoisrecursosdentrodoPDFISPFquenospermitecriar/editarummember.
2. DentrodaexibiodaexecuodeumJOBemSDSystemDisplay,qualo
recursoparaselocalizarcadeiasdecaracteres(strings),irparaoinicioefimda
exibio?
3. ComonaexibiodeumJOBemSDSystemDisplay,podesedeterminarde
quantosstepsoJOBcompostoeoresultadodaexecuodecadaumdeles
?possvelaindaaexibioindividualdecadastep?
www.gpritreinamento.com.br(11)32272261
Pgina:13
AULAS3e4JCL(JobControlLanguage)
DEFINIODEUMJOB
Umjob(servio)compostoporumoumaisprogramasqueseroprocessadosdentrodeuma
seqncia.Seestaseqnciaforquebradaporalgumaanormalidade,interrompeseofluxo,reparaseo
erroefazaretomada.UmainterrupocausadapeloprogramachamamosdeABEND.Estaretomada
(ourestart)poderserfeitadesdeoincio,apartirdopontoquehouveaocorrncia,emalgumponto
anteriordoJob,ouatmesmodealgumjobanterior.Podetambmsernecessrioarecuperaode
algum arquivo que tenha sido o causador do trmino anormal. Um seqncia de jobs em cadeia
chamamosderotina.
ObservaesmuitoimportantessobreumJOB:
Umjobcompostodepelomenosumprograma.
Esteprogramapoderserumdesenvolvidonaempresaouatmesmoumutilitrio.
UmjobSEMPRE(obrigatoriamente)comeacomumcartoJOB,queirseapresentarparao
sistemaoperacionaledisponibilizarasfilaseprioridadesdentrodosistema
AcadaprogramaouutilitriodenominamosETAPA(step).
CadasteprepresentadoporumcartochamadoEXEC.
O carto EXEC responsvel por chamar o programa compilado e linkeditado (podendo ser
tambmumutilitrioouumaProcedure).
Dentro de cada carto EXEC teremos cartes DD que iro disponibilizar os dispositivos
necessriosparaofuncionamentodoprograma.
DESENHOBSICODEUMJOB
//XXXXXXXJOBXXXXXXXXXXXXXXXXXXXXXXX
//XXXXXXXEXECXXXXXXXXXXXXXXXXXXXXXX
//XXXXXXXDDXXXXXXXXXXXXXXXXXXXXXXX
//XXXXXXXDDXXXXXXXXXXXXXXXXXXXXXXX
//XXXXXXXDDXXXXXXXXXXXXXXXXXXXXXXX
//XXXXXXX....EXECXXXXXXXXXXXXXXXXXXXXXXX
//XXXXXXXDDXXXXXXXXXXXXXXXXXXXXXXX
//XXXXXXXDDXXXXXXXXXXXXXXXXXXXXXXX
//XXXXXXXDDXXXXXXXXXXXXXXXXXXXXXXX
//XXXXXXX.....DDXXXXXXXXXXXXXXXXXXXXXXX
//
Repare:temosnesteexemploumJobcompostode4steps.Estesstepspodemserprogramascaseiros
e/ouutilitrios(comooSORTeoIDCAMS)ouprocedures.
Voltandoafig.01podermuitobemseraseqncia01tendoumSORTentreosprogramasPROG003e
PROG009.NestecasooPROG003gerouumarquivoaserlidopeloPROG009.Masantesdeutilizar,o
PROG009precisareclassificaroarquivoparaatendersuaregradenegcio.
www.gpritreinamento.com.br(11)32272261
Pgina:14
QuandomencionamosaspalavrasJOB,EXECeDD,estamosfalandodeumalinguagem:JCL(Job
control language ou linguagem de programao de servios). A funo do JCL solicitar e informar
recursosedispositivosaosistemaoperacional.
OscomandosJOBeDDobrigatoriamentedeveroterumNOME(opcionalnocomandoEXEC).
Este nome ser conhecido como JOBNAME, STEPNAME e DDNAME. So inseridos logo aps o // e
antesdocomando.
EXEMPLODEJ.C.L.
UmexemplotpicodeumJOBcomumstepapenasparailustrao.
//GPTINNssJOB(Nome),ANTONIO,CLASS=6,MSGCLASS=U
//STEP0101EXECPGM=MYPROGSS
//ENTR01DDDSN=GP.GPALU99.CADCLI,DISP=SHR
//SAIDA02DDDSN=GP.GPALU99.CADENT,DISP=(NEW,CATLG,DELETE),
//UNIT=SYSALLDA,SPACE=(TRK,(5,1),RLSE),
//DCB=(RECFM=FB,LRECL=80,BLKSIZE=0)
//SYSOUTDDSYSOUT=*
//PARM01DD*
PRINTALL
//*
//STEP0102EXECPGM=MYPROGXX,COND=(0,NE)
//ENTR03DDDSN=GP.GPALU99.CADENT,DISP=SHR
//ENTR04DDDSN=GP.GPALU99.CADRET,DISP=SHR
//SAIDA03DDDSN=GP.GPALU99.CADSAI(+1),DISP=(NEW,CATLG,DELETE),
//UNIT=SYSDA,SPACE=(TRK,(5,1),RLSE),
//DCB=(GDG,RECFM=FB,LRECL=120,BLKSIZE=0)
//RELATODDSYSOUT=(R,,XPTO)
//
//GPTINNssJOB(Nome),ANTONIO,CLASS=6,MSGCLASS=U
//STEP0101EXECPGM=MYPROGSS
//ENTR01DDDSN=GP.GPALU99.CADCLI,DISP=SHR
//SAIDA02DDDSN=GP.GPALU99.CADENT,DISP=(NEW,CATLG,DELETE),
//UNIT=SYSALLDA,SPACE=(TRK,(5,1),RLSE),
//DCB=(RECFM=FB,LRECL=80,BLKSIZE=0)
//SYSOUTDDSYSOUT=*
//PARM01DD*
PRINTALL
//*
Neste exemplo temos um job com 2 steps apenas que ir executar um programa chamado
MYPROGRSS,eter2arquivosdeentradasendooprimeiroemdiscochamadopeloDDNAMEENTR01
eumparmetrochamadoPARM01EumasadachamadopeloDDNAMESAIDA02.
UmoutrostepirexecutaroprogramaMYPROGXX,queirler2arquivosegerarumterceiro
arquivoemGDG.
www.gpritreinamento.com.br(11)32272261
Pgina:15
1234567890123456789012345678901234567890123456789012345678901234567890123
//GP0014KRJOB(9983,98,978,09),ANTONIO,CLASS=6,MSGCLASS=U
//STEP0101EXECPGM=MYPROGSS
//ENTR01DDDSN=GP.GPALU99.CADCLI,DISP=SHR
OscartesJCLpossuem4(quatro)divisesemseucomando:
Colunas12=cartes//(obrigatrio)
Colunas310=nomedocarto(podeserJOBNAME,STEPNAMEouDDNAME)
Colunas1215=Tipo
Colunas1672=Comando
necessrioumespaoembrancoentreocardname/comando/clusula.TodaclusuladoJCL
comeacom//nascolunas1e2.Exceoapenasquandovaiseinserirmassadados.Umjob
compostodepelomenosumprograma.Esteprogramapoderserumdesenvolvidonaempresaouum
utilitrio.
UmjobSEMPRE(obrigatoriamente)comeacomumcartoJOB,queirseapresentarpara
o
sistemaoperacionaledisponibilizarasfilaseprioridadesdentrodosistema
AcadaprogramaouutilitriodenominamosSTEP.
CadasteprepresentadoporumcartochamadoEXEC.
OcartoEXECresponsvelporchamaroprogramacompiladoelinkeditado.(Podendoser
tambmumutilitrio)
DentrodecadacartoEXECteremoscartesDDqueirodisponibilizarosdispositivos
necessriosparaofuncionamentodoprograma.
REGRASBSICASDEJ.C.L.
No se esquea que JCL uma srie de comandos que voc est passando para o sistema
operacionalentenderoseuprograma,comosefossemparmetros.
JAMAIS confunda JCL ERROR com ABEND. O primeiro erro de sintaxe ou indisponibilidade de
recursos.Osegundofalhadeprogramaqueemalgunscasopodeatmesmosercausadopor
recursosdosistema.
EmcasodeerrodeJCL,oprogramaemquestonofoiexecutado.
Os cartes // nas colunas 1 e 2 so obrigatrios em todo o JCL, exceto se houver algum
parmetroaserpassadopelousurio(opo)aoprograma.(Vejaregra6)
Existemparmetrosobrigatrioseparmetrosopcionais.
ComexceodoAccounteprogramernamedocartoJob,todososoutrosparmetrospossuemo
sinal=.Oparmetrosvmaesquerdaeossubparmetrosdireitadosinal.]
Os subparmetros podem ser 1 ou maisde 1. Quandohouver mais de 1 subparmetro dever
estarentreaspas.
Seoseuprogramatemopodeprocessamento(ex:listagemtotalouparcial),esteopo(quena
verdadetambmumparmetro),estepoderserpassadoapsumcartoDDquecontenha
ocomandoDD*.
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.
Existemregras,comcerteza.
www.gpritreinamento.com.br(11)32272261
Pgina:16
COMANDOJOB
//GPAE99PGJOB(9983,98,978,09),ANTONIO,
//CLASS=6,MSGCLASS=U
GPAE99PGoJOBNAME.Devertersempreumapadronizaoestabelecidapelareadeproduo
daempresa.Procuresaberaregraantesdefazeradenominao.NaGPTIsempreouseridseguidode
2posieslivres.
Regra:Deverterde1a8caracteres(emgeralsempre8),sendooprimeiroalfabtico.
JOBNomedocartodecomandoObrigatrio.Sempreentreespaosembranco.
(9983,98,978,09):Informesecomaproduopoisistovariadeempresaparaempresa.Podenemser
obrigatrio.Massefor,deversersempreoprimeiroapsoJOB.
ACOUNTNomeparacontabilizaodeusodosrecursos.
CLASS=DefineaclassequesersubmetidanafiladeJOBS.
MSGCLASS=Defineaclassedesysout(relatrio)ondeserogeradastodasaslogsduranteotempoem
queojobpermanecernosistema.
MSGLEVEL=(x,y)DefineonveldasmensagensqueseroexibidasapsaexecuodoJOB.
OparmetroXpodeassumirosvalores0,1ou2
OparmetroYpodeassumirosvalores0ou1
TYPERUN=HOLD|SCAN
Outrosparmetrosusadospoderoserrequeridosnaempresa,masnosoobrigatrionocartoJOB,
taiscomoTYPERUN,NOTIFYeoutros.
COMANDEXEC
compostodostepname(opcional),cartocomando(EXEC)eonomedoprograma(ouutilitrio)aser
chamadopeloJOB,apsapalavraPGM=.
PodesecodificaroparmetroPROC=ouinidicarumnomesemqualquerpalavrachave(PGMouPROC)
parachamadasaprocedurescatalogadas.
PROCEDURECATALOGADA
MuitasempresaspreferemutilizarprocedurecatalogadasaoinvsdeJOBSextensos.umaopobem
saudvelpoisevitasemanutenesepermitepassarparmetrosparaasprocedures.Vejaoexemplo
deumJOBantesedepoisdaconversoemprocedurecatalogada(ousimplesmentePROC).
Antes:
//GP0014KRJOB(9983,98,978,09),ANTONIO,
//CLASS=6,MSGCLASS=U
//STEP0101EXECPGM=MYPROGSS
//ENTR01DDDSN=GP.GPALU99.CADCLI,DISP=SHR
//SAIDA02DDDSN=GP.GPALU99.CADENT,DISP=(NEW,CATLG,DELETE),
//UNIT=SYSDA,SPACE=(TRK,(5,1),RLSE),
//DCB=(RECFM=FB,LRECL=80,BLKSIZE=0)
//SYSOUTDDSYSOUT=*
www.gpritreinamento.com.br(11)32272261
Pgina:17
DEPOIS:
O job (chamada) vai executar uma procedure chamada UP01P04 que est na biblioteca padro do
sistema.OsparmetrospodemserpassadospeloJOBoupelocartoPROC.
//GPUP0014KRJOB(9983,98,978,09),ANTONIO,
//CLASS=6,MSGCLASS=U
//PROC001EXECUP01P04,CLIENTE=GP0014,SAIDA=CADRET
APROCEDURECATALOGADA
//GP01P04PROCVOUP=SHR
//STEP0101EXECPGM=MYPROGSS
//ENTR01DDDSN=&CLIENTE..GPALU99.CADCLI,DISP=SHR
//SAIDA02DDDSN=&CLIENTE..GPALU99.CADENT,DISP=(NEW,CATLG,DELETE),
//UNIT=SYSDA,SPACE=(TRK,(5,1),RLSE),
//DCB=(RECFM=FB,LRECL=80,BLKSIZE=0)
//SYSOUTDDSYSOUT=*
//PARM01DD*
PRINTALL
//*
//STEP0102EXECPGM=MYPROGXX,COND=(0,NE)
//ENTR03DDDSN=&CLIENTE..GPALU99.CADENT,DISP=&VOUP
//ENTR04DDDSN=&CLIENTE..GPALU99.&SAIDA,DISP=SHR
//SAIDA03DDDSN=&CLIENTE..GPALU99.CADSAI(+1),DISP=(NEW,CATLG,DELETE),
//UNIT=SYSDA,SPACE=(TRK,(5,1),RLSE),
//DCB=(GDG,RECFM=FB,LRECL=120,BLKSIZE=0)
//RELATODDSYSOUT=(R,,XPTO)
//GP01P04PROCVOUP=SHR
OparmetroPARM=,nocartoEXECusadoparapassarinformaesparaoprograma.
Sintaxe:
//STEP0101EXECPGM=MYPROGXX,PARM=900512,COND=(0,NE)
Neste caso, o MYPROGSS um programa que dever estar na biblioteca padro do sistema.
AntesdedarOPENnoprogramaosistemairverificarseoprogramarealmenteexiste.Emseguidair
verificarosrecursossolicitadospeloscartesDDparasentodarOPENnoprogramaecarregaloem
memria.
Todososprogramasaoterminarem,emitemumcdigoderetornoparaosistemaoperacional.
Sefor0(zero)significaqueterminouOK.
www.gpritreinamento.com.br(11)32272261
Pgina:18
O COND,neste caso ser para checar se o(s) step(s) anterior(es) terminou(aram) ok. Os mais
comuns:
(0,NE)SetodososstepsanterioresterminaramOK,podeprocessarestestep.
(2,LT)Significaqueestestepaceitaqueumosstepsanterioresemitamumreturncodeiguala0ou
1.
Regra bsica: Comparar os return code anteriores e comparar com o parmetro. Se for negativo,
execute.Seforpositivonoexecute.Outrosexemplos:
(0,LT)noirexecutarnuncapoisnoexistereturncodenegativo.
(0,EQ)sprocessasealgumstepanteriorderreturncodediferentede0.
(EVEN)executamesmoquealgumstepanteriortenhaterminadoanormalmente.
(ONLY)executasomentesealgumprogramatenhaterminadoanormalmente.
OBSERVAO:EmcasodeerrodeJCLoparmetroCONDnorespeitado.Ainterrupo
ocorredequalquerforma
OCOMANDODD
Acompanhando nosso exemplo, 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)paraqueoprogramasejaprocessado.
Sintaxe:
//GPUP0014KRJOB(9983,98,978,09),ANTONIO,
//CLASS=6,MSGCLASS=U
//PROC001EXECUP01P04,CLIENTE=GP0014,SAIDA=CADRET
DDNAME=(ENTR01)Temqueseromesmoquevocespecificounaselectdoseuprograma.Confira
sempreapadronizaonasuainstalao.
DD=onomedocartocomando.
DSN=Parmetroqueirdizeraosistemaqualonomeexternodoarquivoemquesto.
DISP=Informaostatusdoarquivonosistemaoperacional.
Sintaxe:
DISP=(NEW,CATLG,CATLG)
DISP=(SHR,UNCTLG,UNCTLG)
DISP=(OLD,DELETE,DELETE)
......DISP=(NEW,KEEP,KEEP)
PRIMEIROSUBPARMETROSTATUSDOARQUIVO
SHR>Significaqueoarquivojexisteepodeserlidopor outrorecursosimultneamente.
OLD>Significaqueoarquivojexisteequeoprograma exigeexclusividadenaleitura.
NEW>Arquivonovo,asercriadonestemomento.
www.gpritreinamento.com.br(11)32272261
Pgina:19
SEGUNDOETERCEIROSUBPARMETROAOASERTOMADAEMCASODETRMINONORMALE
TRMINOANORMALRESPECTIVAMENTE.
CATLG>Catalogueoarquivo.bviamentequeestaopodeveestarsempreacompanhadadeNEW
noprimeirosubparmetro.Porqueseoarquivoestiversendolidoporquejestcatalogado.
UNCATLG>Descatalogueoarquivo.Eviteusarsempre.
DELETE>Deleteoarquivo.Seprecisardeletaroarquivousesempreestaopo.
KEEP>Mantenhaoarquivodojeitoqueestavaantes
SEMPREuseomodelodapginaanteriorparaentrada/sada.
Seoarquivodeentrada(OLDouSHR)noprecisaespecificardemaisparmetros,pois
bviamentejestcatalogadoeosistemasaberencontrlo.Sefordesadavocdever
usarosdemaisparmetrosdoexemploENTR02
Exemplosinvlidos:
(SHR,CATLG,DELETE)>Seoarquivonovo(SHR)comoircatalogarsejestcatalogado?Osistema
norecataloga.
(NEW,KEEP,DELETE)>Comomanterumarquivoqueaindanoexiste?
Default:
SevoccolocarapenasDISP=SHRosistemaassume(SHR,KEEP,KEEP).
Outrossubparmetros:
UNIT=>Especificaotipodedispositivoondevoccriaroarquivo.GeralmentediscoSYSALLDA.
Confirasemprecomumfuncionriodasuaseooucomaequipedeproduo.
VOL=SER=nome > indica o volume onde reside ou residir o arquivo. Se especificarmos um nome
genricoparaoparmetroUNIT(ex.SYSALLDA)duranteacriaodeumarquivoouomesmoestiver
catalogadoquandoforutilizadocomentradaesseparametropoderseromitido.
SPACE= > Espao a ser utilizado. Lembrese 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).
Reparequehsubparmetrodentrodesubparmetro.Permanecearegradeutilizar'()'.
Neste exemplo estamos alocando 5 trilhas (TRK) na alocao primria, 2 trilhas de alocao
secundriaeliberando(RLSE)astrilhasnoutilizadas.Poderiasercilindros(CYL)aoinvsdeTRKmas
no convm sua utilizao. Para saber o nmero ideal considere que uma trilha comporta
aproximadamente56.000bytes.Portantonestecasoestamosalocando5trilhas.Senoforsuficiente
esta alocao, o sistema alocar mais 2 trilhas (alocao secundria) at 16 vezes para atender a
solicitao.Seaindanoforsuficienteoprogramacancelar.
DCB=>Indicaoformatodoarquivoasergravado.Nonecessrioparaarquivosaseremlidos,poiso
catlogoguardaestainformaes.
Sintaxe:
www.gpritreinamento.com.br(11)32272261
Pgina:20
DCB=(RECFM=FB,LRECL=98,BLKSIZE=0)
Obs.:Aordemdossubparmetrosnoobrigatria.
Nesteexemplo:
IndicaqueoarquivoFB(fixoblocado).Confiraqueoseuprogramapossuiasclusulas'BLOCK
0'e'RECORDFORMATISFIXED'.Outrasopespossveis:VB(varivelblocado),FBA(fixblocadocom
caracterdeimpresso)eF(fixosemblocagem.EVITEsempre)ePO(particionado)
Otamanhodoregistro98.Sefossevariveldeveriaserotamanhodomaiorregistro+4.
BLKSIZE=>Blocagemdoregistro.omaiornmerodebytestrazidosparaamemriadeumasvez.
sempre uma quantidade prxima de 32.000. Deixe sempre com '0', pois o sistema calcula
automticamenteablocagemideal.
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
estasinformaesserodeutilizadasparafazerestasdefinies.Nesteexemploorelatrioseremitida
naclasse5comtipodeformulrioXPTO,quepodeserporexemploumafatura.
DDsESPECIAIS
ComandoSYSINouDD*
(PRONUNCIASE(DEDASTERISCO))
Quandosefaznecessriopassaralgumainformaoparaoprogramaatravsdealgumaopo,ouvai
seinformaralgumdadodigitadoparaoprograma,istofeitoatravsdocartoDD*.Vejaoexemplo
abaixo:
//STEP0102EXECPGM=MYPROGXX,COND=(0,NE)
//ENTR03DDDSN=GP.GPALU99.CADENT,DISP=SHR
//SAIDA03DDDSN=GP.GPALU99.CADSAI(+1),DISP=(NEW,CATLG,DELETE),
//UNIT=SYSDA,SPACE=(TRK,(5,1),RLSE),
//DCB=(GDG,RECFM=FB,LRECL=120,BLKSIZE=0)
//SYSINDD*
DATE=25052002
//
//STEP0102EXECPGM=MYPROGXX,COND=(0,NE)
//ENTR03DDDSN=GP.GPALU99.CADENT,DISP=SHR
//SAIDA03DDDSN=GP.GPALU99.CADSAI(+1),DISP=(NEW,CATLG,DELETE),
//UNIT=SYSDA,SPACE=(TRK,(5,1),RLSE),
//DCB=(GDG,RECFM=FB,LRECL=120,BLKSIZE=0)
//SYSINDD*
DATE=25052002
//
//STEP0102EXECPGM=MYPROGXX,COND=(0,NE)
//ENTR03DDDSN=GP.GPALU99.CADENT,DISP=SHR
//SAIDA03DDDSN=GP.GPALU99.CADSAI(+1),DISP=(NEW,CATLG,DELETE),
//UNIT=SYSDA,SPACE=(TRK,(5,1),RLSE),
//DCB=(GDG,RECFM=FB,LRECL=120,BLKSIZE=0)
//SYSINDD*
DATE=25052002
//
www.gpritreinamento.com.br(11)32272261
Pgina:21
//STEP0102EXECPGM=MYPROGXX,COND=(0,NE)
//ENTR03DDDSN=GP.GPALU99.CADENT,DISP=SHR
//SAIDA03DDDSN=GP.GPALU99.CADSAI(+1),DISP=(NEW,CATLG,DELETE),
//UNIT=SYSDA,SPACE=(TRK,(5,1),RLSE),
//DCB=(GDG,RECFM=FB,LRECL=120,BLKSIZE=0)
//SYSINDD*
DATE=25052002
//
//STEP0102EXECPGM=MYPROGXX,COND=(0,NE)
//ENTR03DDDSN=GP.GPALU99.CADENT,DISP=SHR
//SAIDA03DDDSN=GP.GPALU99.CADSAI(+1),DISP=(NEW,CATLG,DELETE),
//UNIT=SYSDA,SPACE=(TRK,(5,1),RLSE),
//DCB=(GDG,RECFM=FB,LRECL=120,BLKSIZE=0)
//SYSINDD*
DATE=25052002
//
OUTROEXEMPLO:
//STEP0102EXECPGM=MYPROGZZ,COND=(0,NE)
//SAIDA03DDDSN=GP.GPALU99(+1),DISP=(NEW,CATLG,DELETE),
//UNIT=SYSDA,SPACE=(TRK,(5,1),RLSE),
//DCB=(GDG,RECFM=VB,LRECL=720,BLKSIZE=0)
//ENTR01DD*
23MARIARAIMUNDAAV.CASTELOBRANCO,727, RICAHOGRANDE
Comando SYSOUT DD SYSOUT=* indica a sada padro para mensagens emitidas pelo programa
(exemploDISPLAY).
//STEPLIBDDDSN=GP.LOADLIB,DISP=SHRou
//JOBLIBDDDSN=GP.LOADLIB,DISP=SHR
Imagine que voc tenha um arquivo de entrada que por um motivo qualquer no foi
processadoanteriormente.Ex.:ontemopessoaldacontabilidadenoconseguiuenviaromovimentoe
por isso o processamento de fluxo de caixa no foi processado. Neste momento voc j poder
processar o job, s que agora voc tem dois arquivos de entrada. O que fazer ? Executar o job duas
www.gpritreinamento.com.br(11)32272261
Pgina:22
vezes,umaparacadaarquivo?Nonecessariamente.Vocpoderconcatenarosdoisarquivosefazer
umsprocessamento.Vejaabaixo.
//STEP0102EXECPGM=MYPROGXX,COND=(0,NE)
//ENTR01DDDSN=GP.GPALU99.FLUXOCX(1),DISP=SHR
//DDDSN=GP.GPALU99.FLUXOCX(0),DISP=SHR
//SAIDA02DDDSN=GP.GPALU99.GERAL(+1),DISP=(NEW,CATLG,DELETE),
//UNIT=SYSDA,SPACE=(TRK,(5,1),RLSE),
//DCB=(GDG,RECFM=FB,LRECL=120,BLKSIZE=0)
//RELATODDSYSOUT=(R,,XPTO)
DICASGERAISSOBREJCL
No se esquea que JCL uma srie de comandos que voc est passando para o
sistemaoperacionalentenderoseuprograma,comosefossemparmetros.
JAMAIS confunda JCL ERROR com ABEND. O primeiro erro de sintaxe ou
indisponibilidadederecursos.Osegundofalhadeprogramaqueemalgunscasopode
atmesmosercausadoporrecursosdosistema.
EmcasodeerrodeJCL,oprogramaemquestonofoiexecutado.
Oscartes//nascolunas1e2soobrigatriosemtodooJCL,excetosehouveralgum
parmetroaserpassadopelousurio(opo)aoprograma.(Vejaregra6)
Existemparmetrosobrigatrioseparmetrosopcionais.
Com exceo do Account do ccomandoo Job, todos os outros parmetros possuem o
sinal=.Oparmetrosvmaesquerdaeossubparmetrosdireitadosinal.
Ossubparmetrospodemser1oumaisde1.Quandohouvermaisde1subparmetro
deverestarentreparenteses.
Se o seu programa tem opo de processamento (ex: listagem total ou parcial), este
opo(quenaverdadetambmumparmetro),estepoderserpassadoapsum
cartoDDquecontenhaocomandoDD*.
Aocomearnumaempresapeasempreumacpiadapadronizaodaempresa.Nem
sempre voc poder batizar seu programa, jobname, stepname etc com o nome que
vocquer.Existemregras,comcerteza
Assimcomonoprograma,aidentaonoJCLtambmmuitoimportante.
Nunca deixe de inserir comentrio sucinto sobre a finalidade do programa que voc
estpassandoparaaproduo.
Parainserirumcomentrio,bastacolocar//*nascolunas1a3.
Quando o comando no cabe na mesma linha, devese colocar uma vrgula aps o
ltimoparmetroecontinuarnalinhadebaixo,semprecomeandocom//massem
cardname.
OUTROSPARMETROS:
Paraseforaraleituradeumarquivonumdeterminadodispositivo,comoporexemplouma
fitavindadeclienteexternoquenoconstanocatlogo,ouumarquivoqueestnaVTOCdeumdisco
masnonocatlogo,usamosVOL=SER=
Modelo://ENTRADADDDSN=GP.GPALU99.ALUNOS,DISP=SHR,VOL=SER=R00134
www.gpritreinamento.com.br(11)32272261
Pgina:23
//SAIDA03DDDSN=&&CADSAI,DISP=(NEW,PASS),
//UNIT=SYSDA,SPACE=(TRK,(5,1),RLSE),
//DCB=(GDG,RECFM=FB,LRECL=120,BLKSIZE=0)
IF/THEN/ELSE/ENDIF
ComandoIF(implementadoapartirdoOS/390ouMVS/ESAv4);
PermiteaconstruodeexpressesrelacionaisparatestedecondioemumJOB;
OferecealternativadefcilcompreensoparaousodoCOND;
Sintaxe:
//nomeIFcondioTHEN
stepoustepsaexecutarseacondioforverdadeira
//nome[ELSE
stepoustepsaexecutarseacondioforfalsa]
//nomeENDIF
expressorelacional1
GT
LT
NG
NL
[AND]
EQ
valor
expresso2...expresson
NE
[OR]
GE
LE
[step.]RC
[step.]ABEND
[step.]RUN
Exemplo:
//JOBTESTEJOBMSGLEVEL=1,CLASS=A,MSGCLASS=X
//PASSO1EXECPGM=IEFBR14
//DD1DDDSN=GP.GPAE99.PDS2,
//DISP=(OLD,CATLG,DELETE),SPACE=(TRK,(10,5,100)),
//DCB=(LRECL=80,BLKSIZE=0,RECFM=FB),UNIT=DISCO
//*
//IF0001IFRCEQ0THEN
//*
//PASSO2EXECPGM=IEBGENER
//SYSINDDDUMMY
//SYSPRINTDDSYSOUT=*
//SYSUT1DDDSN=GP.GPAE99.FONTES(DADOS),DISP=SHR
//SYSUT2DDDSN=GP.GPAE99.PDS2(DADOS),DISP=SHR
//*
//IF0001ENDIF
www.gpritreinamento.com.br(11)32272261
Pgina:24
Outrosexemplos:
IFcomELSEexecutarPASSO4sealgumstepanteriorterminoucomRC0oucancelou,seno
executarPASSO5
//IF001IFRC>0ORABENDTHEN
//*
//PASSO4EXECPGM=IEBGENER
//SYSINDDDUMMY
//SYSPRINTDDSYSOUT=*
//SYSUT1DDDSN=GP.GPAE99.PDS(DADOS),DISP=SHR
//SYSUT2DDSYSOUT=*
//*
//IF001ELSE
//*
//PASSO5EXECPGM=IEBGENER
//SYSINDDDUMMY
//SYSPRINTDDSYSOUT=*
//SYSUT1DDDSN=GP.GPAE99.FONTES(DADOS),DISP=SHR
//SYSUT2DDSYSOUT=*
//*
//IF001ENDIF
IFsencadeados:(executarPASSO5sePASSO4terminarcomRC=0)
//IF001IF(RC>0ORABEND)THEN
//*
//PASSO4EXECPGM=IEBGENER
//SYSINDDDUMMY
//SYSPRINTDDSYSOUT=*
//SYSUT1DDDSN=GP.GPAE99.PDS(DADOS),DISP=SHR
//SYSUT2DDSYSOUT=*
//*
//IF002IFPASSO4.RC=0
//*
//PASSO5EXECPGM=IEBGENER
//SYSINDDDUMMY
//SYSPRINTDDSYSOUT=*
//SYSUT1DDDSN=GP.GPAE99.FONTES(DADOS),DISP=SHR
//SYSUT2DDSYSOUT=*
//*
//IF002ENDIF
//IF001ENDIF
www.gpritreinamento.com.br(11)32272261
Pgina:25
UTILITRIOS
Programasfornecidosjuntocomosistemaoperacionalouadquiridonomercadoparaexecutartarefas
comunsatodasinstalaes.
Comandosdecontroledosutilitrios
1234567890123456789012345678901234567890123456789012345678901234567890123
Coluna1Acoluna1precisaestarembrancoseumlabelnocodificado.
Coluna16operaoecontinuao.Acontinuaodeumcomandoprecisacomearnacoluna
16
Coluna72Codifiqueumcaracternobranconacoluna72paracontinuarumcomando
IEBGENERutilizadoparacopiararquivossequenciais(SYSUT1paraSYSUT2)
Exemplo:
//GPAE99EXJOB
//CONSTROIEXECPGM=IEBGENER
//SYSPRINTDDSYSOUT=A
//SYSINDDDUMMY
//SYSUT1DD*
JOAOPAULO53AF875701,23DEMAIO
ANTONIOJOSE78AF34320,SOBENTO
/*
//SYSUT2DDDSN=GP.GPAE99.TEST,UNIT=SYSALLDA,
//SPACE=(TRK,(1,1)),DISP=(NEW,CATLG),
//DCB=(RECFM=FB,LRECL=80,BLKSIZE=0)
IEFBR14utilizadoparacrierouexcluirarquivos
Exemplo:
//GPAE99EXJOB
//STEPALOCEXECPGM=IEFBR14
//VKSDS1DDDSN=DSVAABVS.LSG.A889.ALBERTO,DISP=(,CATLG,DELETE),
//SPACE=(CYL,(10,10)),DCB=(LRECL=100,RECFM=F)
//*
//STEPDELEXECPGM=IEFBR14
//VKSDS1DDDSN=DSVAABVS.LSG.A889.ALBERTO,DISP=(OLD,DELETE),
//SPACE=(CYL,(10,10)),DCB=(LRECL=100,RECFM=F)
www.gpritreinamento.com.br(11)32272261
Pgina:26
Exercciosdefixao
UtilizandoabibliotecaGP.GPATxx.FONTES,criaromembroJOB01,conformesegue:
OBS.:GPATxxsubstituirporseuuserid
1.Codificar(conformeindicado)esubmeterparvalidao,oseguinteJCL:
//GPATxxJ1JOBCLASS=A,
//MSGCLASS=X,MSGLEVL=0
//NOTIFY=GPATXX'PROGRAMADOR:BILLGATES'
//STEP1EXECPGM=IEFBR14,PARM='TOMARAQUECAIA'
//STEP4EXECIEFBR14,PARM='100288'
//TEP3EXECPGM=IEFBR14COMENTARIO
//STEP2EXECPGM=IEFBR15PROGRAMANOVO?
//STEP4EXEQIEFBR14,ACCT='ADMP,ATR2099,'
Combasenoresultadodasubmissoresponda:
1. QualonmerodoJOB?________________
2.
ParaqueclassedeentradaoJOBfoidirecionado?_____
3.
ParaqueclassedesadaoJOBfoidirecionado?_______
4.
OJOBexecutounormalmente?_______
5.
VaclassedesadaindicadanoparmetroMSGCLASS(viaSDSF)evejaoresultadoexecuo.
OqueaconteceucomoJOB?____________________________________________
6.
Porqueasmensagenssobreaexecuonoestonaclasseindicadadoparmetro
MSGCLASS?________________
7.
AltereparmetroMSGLEVELparaMSGLEVEL=1eenvieoJCLparaexecuonovamente.
8.
Vejaosdiversoserrosqueocorreram.Tentecompreenderamensagemdeerro,corrijaos
problemasdecodificaoapresentadoseexecuteoJCLnovamente.Refaaessaoperaoat
noexistiremmaiserrosdeJCL.OJOBexecutou?Oqueocorreu?
______________________________
ExerccioParmetroCOND,comandosDDeutilitriosIEFBR14eIEBGENER
Codificar,validareexecutaroseguinteJCL.SalvarnabibliotecaGP.GPATxx.FONTEScomonomede
JOB02
NOMEDOJOB GPATxxJ2
ExecutaremclasseA;
EnviarmensagensdeexecuoparaclasseX(exibirsempretodososnveisdemensagens);
NotificarousuriodoTSOsobreoterminodaexecuo.
PASSO1
www.gpritreinamento.com.br(11)32272261
Pgina:27
UtilizandooIEFBR14alocarumarquivoseqencial,comregistrosfixosblocadosde120posies,
reservando2trilhasdeespaoprimrio,1trilhasdeespaosecundrio.
Deixarosistemacalcularotamanhodobloco;
Nomedoarquivo:GP.GPATxx.ARQUIVO1
PASSO2
SeostepanteriorterminoucomRCmaiorque0noexecute.
CopiarcomIEBGENERparaoarquivocriadonostepanterioromembroDADOSdabiblioteca
GP.GERAL.EXEMPLOS
PASSO3
Seostep2terminoucomRC>0executeessepasso
Excluiroarquivocriadonostep1utilizandooIEFBR14.
PASSO4
Seossteps1ou2terminaramnormalmenteexecuteessestep.
UtilizandooIEBGENERlistarocontedodoarquivocriadonoPASSO2
ExercciodefixaocomandoIF
CriarcomoJOB03umacpiadoJOB02esubstituirousodoCONDpelocomandoIF.
SalvaretestaronovoJOB,garantindoqueoresultadodaexecuocontinuarsendoomesmoobtido
comoparmetroCOND.
www.gpritreinamento.com.br(11)32272261
Pgina:28
Questionrio
1. DequeformaidentificamosemumscriptdeJCLsealinha/cartoum
comando,comentriooucontinuaodecomando.
2. ComodentrodocomandoEXECidentificamosseomesmoexecutauma
procedure,programaouutilitrio?
3. QualarelaoentreumprogramaCoboleocomandoDD?
4. Quecomandodeveprecederosdadosdeentradacodificadosdentrodo
SCRIPTdeJCL?
5. ComodirecionarasadadeumdispositivoparaaSYSOUT?
6. OsdadosdaSYSINdevemsercodificadosapartirdequalcolunaeseos
dadosqueconstituemumregistrosomarem120caracteres,como
proceder?
www.gpritreinamento.com.br(11)32272261
Pgina:29