You are on page 1of 21

Concurso Mainframe IBM 2011 - Brasil

Parte 3 - Atividades
Tempo para concluso de semanas a meses
O uso do RDz no obrigatrio e no afetar a sua classificao. Se tiver dvidas sobre como instalar,
configurar e trabalar, consulte nossa documentao sobre !onfigurao do RDz. " esto todas as
informa#es necessrias $ara %ue $ossa trabalar com a ferramenta da Rational $ara desenvolvedores
em S&stem z.
Na Parte 3, voc ir rever alguns conceitos
de JCL e aprender conceitos novos. Algumas atividades
vo envolver COBOL, outras vo envolver B!...
...e ao "inal, voc ter de resolver um desa"io,
aplicando tudo #ue viu no Concurso at$ agora%
Para "acilitar, voc poder optar por utili&ar o '&
para concluir as atividades% (sta "erramenta
nada mais $ #ue uma )( para desenvolvedores #ue
tra*al+am com aplica,-es para o .ain"rame.
Consulte nossa documenta,o de Con"igura,o da
Parte 3 para instalar a "erramenta no seu
computador%
PARTINDO PARA AS ATIVIDADES
Acesse 'ZOS.BR.PARTE3(P3)'e apenas submeta-o
'ste (!" co$iou $ara voc) todos os datasets necessrios $ara $roceder com as atividades. *erifi%ue em
sua DS"+S, e ver %ue esto l. Se no encontr-los, e.$erimente $rocurar na DS"+S, $or
+/0.....12R,'3. +sto retornar todos os datasets co$iados4
Comeou a Parte 3! Voc acredita que j chegou at aqui?
Voc aprendeu muito na Parte 1 e Parte 2,
portanto fique orguho!o, j foi "em onge!
Para continuar, !er nece!!rio que copie no!!o! data!et!
para o !eu u!urio#
Fundamentos de Sintaxe e Execuo do JCL
!omo foi visto nas atividades anteriores do concurso, o (!" 5(ob !ontrol "anguage6 instrui o z7OS a
rodar um 8batc 9ob: ou comear uma atividade.
*oc) $ode identificar facilmente um (!" $elo 77 nas colunas ; e <.
(!" deve ser escrito em cai.a alta a no ser %ue o te.to este9a entre as$as como nomes de ar%uivos
=>+?.
,odo /atc (ob deve conter@
Declarao (O/
Declarao '?'!
Declarao de (O/ marca o inAcio do batc 9ob e designa um nome $ara o mesmo.
2 declarao '?'! marca o inAcio de um $asso 5ou 9ob ste$6, designa um nome $ara o mesmo e
identifica o $rograma ou $rocedimento a ser e.ecutado no $asso. ,odo batc 9ob deve ter $elo menos
uma declarao '?'!.
'.em$lo@
770'=(O/ (O/
77 '?'! 1B0C+'D/R;E
'.em$lo com $asso de nome 12SSO;@
770'=(O/ (O/
7712SSO; '?'! 1B0C+'D/R;E
'.em$lo de 9ob com mlti$los $assos@
770'=(O/ (O/
77 12SSO; '?'! 1B0C+'D/R;E
7712SSO< '?'! 1B0C+'D/R;E
7712SSO3 '?'! 1B0C+'D/R;E
2dicionalmente, a maioria dos batc 9obs contm algo a mais@
Declara#es DD 5Data Definition6
=sado $ara identificar e caracterizar dados de entrada e saAda a serem usados em um $asso.
'.em$lo@
770'=(O/ (O/
7712SSO; '?'! 1B0CSOR,
77SOR,+> DD $arametros
77SOR,O=, DD $arametros
77SFS+> DD $arametros
77SFSO=, DD $arametros
=ma declarao DD deve ser $recedida $or um 8DD >ame:.
O e.em$lo acima contm E@ SOR,+>, SOR,O=,, SFS+>, SFSO=,.
Os $arametros DD referenciam a recursos do z7OS como ('S %ueue, nome de dataset, status de
dataset e camino =ni., alm de outros.
'.em$lo@
12,GCH7uni.$at7filenameH
SFSO=,CI
DS>CD2,2.S',.>20'
D+S1C5start, end, abnormalJend6
onde start C O"D, SGR, 0OD ou >'K
end C D'"',', L''1, !2,"B, =>!2,"B ou 12SS
abnormalJend C D'"',', L''1, !2,"B, =>!2,"B ou 12SS
O $rograma abrir estes $arametros DD como in$ut ou out$ut.
Edite 'IBMxxxx.PARTE3.JCL(J0001)'e observe os nomes dos passos e programas
Submeta o job e, aps faz-lo, digite na linha de comando
CsdM$refi.MoNner +/0....M st
+sso o levar at a lista de logs. R$ido, no O
"ocalize o 9ob (PPP; ao final da lista e digite O no es$ao Q sua frente.
*oc) est visualizando os DD names gerados na e.ecuo de seu (!". Digite s Q frente de cada um
$ara visualizar o out$ut do ('S< se$aradamente.
Acesse 'IBMxxxx.PARTE3.OUTPUT(A001)'e responda as questes ! "
Edite 'IBMxxxx.PARTE3.JCL(J0002)'e observe os nomes dos passos, programas e ##
$ames
Submeta o job e, aps faz-lo, digite na linha de comando
CsdM$refi.MoNner +/0....M st
De volta Q lista de logs, digite O Q frente frente do (PPP< e e.$lore os out$uts gerados.
Acesse 'IBMxxxx.PARTE3.OUTPUT(A001)'e responda as questes % ! &
Funes e Caractersticas do JCL

O (!" fle.Avel. 'sta fle.ibilidade $ermite@
;. Substituio de variveis
<. 1assar dados $ara um $rograma
3. 2locao tem$orria de dataset
E. !oncatenao de datasets
R. !a$acidade de aceitar comandos +D7,G'>7'"S'
*amos ver isso na $rticaO
Edite 'IBMxxxx.PARTE3.JCL(J0003)' e observe os nomes dos passos, programas e
## $ames
O (PPP3 e.ecuta re$etidamente o +'/B'>'R, um utilitrio do sistema, usando um $rocedimento do (!"
camado 1RO!;, e ento e.ecuta o +'/B'>'R diretamente 5sem o uso do $rocedimento 1RO!;6.
+'/B'>'R ti$icamente usado $ara co$iar dados do DD >ame SFS=,; 5in$ut6 $ara o DD >ame
SFS=,< 5out$ut6.
(PPP3 co$ia alguns registros $ara datasets tem$orrios, e ento os dados nestes datasets so $assados
$ara outros $assos do 9ob. Os datasets tem$orrios so combinados em um nico dataset tem$orrio.
'ste nico dataset co$iado $ara um membro de um dataset $articionado e $ermanente.
Observao@ datasets tem$orrios so identificados $elo DS>CSS em uma declarao DD. Datasets
tem$orrios so descartados %uando o 9ob termina de e.ecutar.
'om base no que voc viu no J0003, acesse 'IBMxxxx.PARTE3.OUTPUT(A002)' e
responda as questes ! (
Submeta 'IBMxxxx.PARTE3.JCL(J0003)' e verifique o output no log de jobs do S#S)
=m $asso do (!" est como D"=SG graas a uma tentativa de escrever os dados tem$orrios em um
ar%uivo uni. no seu diretrio 5H7z7ibm....H6. 2 substituio da varivel $ara o seu diretrio no uni. est
incorreto.
!orri9a seu (!" e submeta-o novamente.
!omo resultado de uma e.ecuo correta, uma %uesto adicional foi inserida ao final do
'IBMxxxx.PARTE3.OUTPUT(A002)'.
*esponda ! quest+o adicional gravada em 'IBMxxxx.PARTE3.OUTPUT(A002)',
Fundamentos de Data Set no z/OS
'n%uanto o z7OS $ossui a$enas uma regra $ara um dataset name, ele tambm $ode ter vrios ti$os de
datasets. 2 diversidade nestes ti$os de datasets $ermite aos desenvolvedores e ar%uitetos escolerem
o ti$o de dataset %ue melor serve $ara uma situao es$ecAfica.
>omes de Datasets T Regras
;. >omes de dataset no $odem e.ceder EE caracteres, inlcuindo todos os segmentos e $ontos.
<. !ada segmento 5identificador, ou %ualifier6 deve ter de ; a U caracteres. !ada segmento
se$arado do outro $or um $onto.
3. Os segmentos $odem ser G"V 5Gig "evel Vualifier6, 0"V 50iddle "evel Vualifier6 e ""V 5"oN
"evel Vualifier6.
2tributos de Datasets
;. Record "engt T fi.ed 7 variable
<. Record Dormat T fi.ed 7 blocWed
3. Data Set Organization T ti$o de dataset
E. 1rimar& DisW S$ace Size T area contAgua no disco camada de e.tenso
R. Secondar& DisW S$ace Size T abilidade de realizar uma adio na e.tenso do disco %uando a
X1rimar& S$aceX atingir o seu limite
,i$os de Datasets
;. Se%uencial T assim como um ar%uivo uni., o contedo de um dataset se%uencial so a$enas
registros de dadosM
<. 1articionado ou 1articionado7'.tendido T um dataset $articionado 51DS6 $ode ser com$arado a um
sistema de ar%uivos ierr%uico com a$enas um subdiretrio. 'ste XdiretrioX contm membros
%ue $or sua vez contm os registros de dadosM um dataset $articionado e.tendido 51DS'6 e.iste
em adio ao 1DSM
3. *S20 T uma estrutura mais com$le.a $ara ar%uivamento de dados e registros. '.istem %uatro
ti$os de *S20 dis$onAveis@ LSDS, 'SDS, RRDS e "DS.
>ovos datasets $odem ser alocados interativamente $elo ,SO7+S1D ou submetendo um 9ob.
Edite 'IBMxxxx.PARTE3.CNTL(DEFCL)' e altere todos os -./0000 para seu usu1rio
>este dataset aloca novos datasets se%uenciais, $articionados e *S20, e ento co$ia alguns dados
$ara cada um e lista os vrios atributos.
Submeta 'IBMxxxx.PARTE3.JCL(J0004)' e garanta que retornou /A2''34 antes de
e0ecutar o pr0imo passo
Submeta 'IBMxxxx.PARTE3.JCL(J0005)' e garanta que retornou /A2''34 antes de
e0ecutar o pr0imo passo
Submeta 'IBMxxxx.PARTE3.JCL(J0006)' e garanta que retornou /A2''34 antes de
e0ecutar o pr0imo passo
Submeta 'IBMxxxx.PARTE3.JCL(J000)'
*esponda todas as perguntas localizadas em 'IBMxxxx.PARTE3.OUTPUT(A003)'
*oc) $oder encontrar algumas res$ostas nos out$uts gerados $or estes 9obs.
Edite 'IBMxxxx.PARTE3.JCL(J000!)' , alterando os controles para garantir que ele
delete todos os 5 datasets recentemente alocados na 6ltima atividade, Submeta-o,
Os o$erandos !"=S,'R ' >O>*S20 so mutualmente e.clusivos. 1recisam ser corretamente
removidos $ara %ue os datasets se9am deletados. ,odos os Y datasets $recisam ser deletados com
sucesso $ara com$letar esta tarefa.
CONHECENDO O COBOL
O z7OS ca$az de $rocessar a maioria das linguagens de $rogramao mais $o$ulares, bem como as
linguagens mais eficientes e confiveis durante os ltimos RP anos. ,odas as linguagens de
$rogramao tem suas %ualidades distintas. >o entanto, comum %ue $rogramadores tenam
$refer)ncia $elas linguagens mais $o$ulares.
!O/O" 5!ommon /usiness-Oriented "anguage6 uma das linguagens mais antigas e famosas.
1ercebe-se isto atravs das suas milares de linas de cdigo escritas nestes ltimos RP anos e %ue at
o9e $rocessam um grande volume de dados crAticos todos os dias. 'voluiu 9unto com os avanos da
tecnologia@ o9e, as a$lica#es em !O/O" so muito eficientes, resultado de dcadas de
a$rimoramento da linguagem.
O !O/O" est $rinci$almente $resente em grandes em$resas %ue lidam com uma %uantidade
significativa de dados crAticos. Braas Q sua sim$licidade, $ossAvel detectar erros de $rogramao de
maneira fcil e intuitiva.
*oc) sabia %ue@
1rogramas em !O/O" $rocessam ZP[ dos dados em todo o mundoO
Rodam 3P.PPP.PPP.PPP transa#es diariamenteO 5U3[ das transa#es mundiais6
'sto em $roduo em cerca de \U[ das em$resas Dortune RPPO
>o mainframe, o !O/O" $recisa ser com$ilado $ara um cdigo em linguagem de m%uina, o %ue
camamos de mdulo "O2D. 'ste mdulo $ode e.ecutar novamente sem $recisar ser com$ilado
novamente. =ma nova com$ilao s necessria %uando o cdigo sofre alguma mudana.
z/OS Enterprise COBOL
Submeta 'IBMxxxx.PARTE3.JCL(J0011)'
'ste (!" com$ilou um sim$les Xello NorldX, transformando o $rograma !O/O" em um mdulo "O2D
e.ecutvel.
De agora em diante, vamos $recisar constantemente ir ao ,SO Read& $ara e.ecutar alguns comandos.
O $r.imo $rocedimento eliminar %ual%uer $asso $reliminar desnecessrio $ara cegar ao $rom$t do
,SO Read&@
;. >o +S1D, entre no menu P 5Settings6
<. 1osicione o cursor em X"og7"istX 5canto su$erior es%uerdo6 e $ressione enter
3. =m menu dro$-doNn a$arecer com as o$#es@
;. "og Data set Defaults
<. "ist Data set Defaults
E. Selecione 5;6 e altere a o$o 1RO!'SS $ara X<X
R. *olte e selecione 5<6. 2ltere a o$o 1RO!'SS $ara X<X
Y. 2$s terminar, saia com o D3
>a lina de comando, digite C. $ara terminar o +S1D.
*oc) estar agora no $rom$t R'2DF. *oc) dever reconec)-lo $elos momentos em %ue $recisou
deslogar do mainframe. 'ste $rom$t $ermite a insero de comandos 5alm de a$enas "OBODD6 $ara a
mani$ulao dos dados, $rogramas e menus %ue vimos no +S1D.
O $r.imo comando ir interativamente e.ecutar o $rograma !/"P;, o $rograma em !O/O" salvo em
seu "O2D module.
2$s verificar %ue o $rograma est funcionando 5saber se ele im$rimir a frase designada6, digite +S1D
$ara retornar Q interface de $ainel.
Edite 'IBMxxxx.PARTE3.JCL(J0012)' e altere-o de forma a e0ecutar o mesmo mdulo
78A# criado pelo job 944
Con"orme re&a a lenda, todo primeiro
programa escrito em uma linguagem
nova deve imprimir o /+ello 0orld1.
o contrrio, poder tra&er a&ar para
o programador. 2oc, caro competidor, no
#uer m sorte a esta altura do campeonato, #uer3
O (!" re%uer um nome de $rograma $ara ser e.ecutado e a localizao do mdulo "O2D onde o
$rograma est armazenado.
Submeta 'IBMxxxx.PARTE3.JCL(J0012)' para provar que sua modifica:+o est1
correta
Se rodar com sucesso, Xello NorldX vai a$arecer no out$ut de (PP;<.
O cdigo de 'IBMxxxx.PARTE3.SOURCE(CBL02)' vai aceitar entrada de dados e a$resentar saAda. ]
recomendvel %ue ole o cdigo fonte. Os cdigos a$resentados iro ficar mais com$le.os Q medida
%ue se avana nas atividades.
Submeta 'IBMxxxx.PARTE3.JCL(J0013)'
* $ara o $rom$t do ,SO Read& usando o 30 na lina de comando. >o $rom$t, digite@
call $arte3.load5cblP<6
2$s e.ecutar o $rograma, retorne ao menu +S1D.
Traa!"ando com a Sintaxe do COBOL
O cdigo de 'IBMxxxx.PARTE3.SOURCE(CBL03)' tem um erro de sinta.e. ] necessrio %ue o mesmo
se9a identificado e corrigido $ara %ue o $rograma rode corretamente.
Submeta 'IBMxxxx.PARTE3.JCL(J0014)' e verifique o log desta e0ecu:+o no S#S),
;oc poder1 identificar o erro atrav<s do output de compila:+o,
2$s corrigir o erro no cdigo fonte, o $asso de com$ilao 5!O01+"'6 ir e.ecutar com sucesso. O
$asso de linWagem 5"+>L6 ir falar, no entanto.
'mbutido no cdigo fonte de !/"P3 uma camada $ara um mdulo e.terno 5!"RS!>6. 'sta
camada lim$a a tela do ,SO a$s e.ecuo. O ddname SFS"+/ $rocurado no $asso de linWagem
$ara mdulos camados.
O mdulo !"RS!> est localizado em "*"P."+>L"+/. Vuando "*"P."+>L"+/ est concatenado com o
ddname SFS"+/, o !"RS!> $ode ser encontrado.
Adicione o S=S7-. ddname no passo 7-$> em 'IBMxxxx.PARTE3.JCL(J0014)'
conforme abai0o?
77"+>L.SFS"+/ DD DS>20'C!''.S!''"L'D,D+S1CSGR
77 DD DS>20'C"*"P."+>L"+/,D+S1CSGR
O resultado ser a com$ilao do !/"P3 com sucesso.
Do $rom$t ,SO Read&, verifi%ue o com$ortamento de seu !/"P3. Digite@
call $arte3.load5cblP36
Digite enter $ara $assar da tela de boas-vindas do z'nter$rise /anW. Digite >O $ara terminar a
e.ecuo. *olte ao menu +S1D. 1erguntas a serem res$ondidas vo surgir en%uanto avana nas
atividades. Damiliaridade com as documenta#es $ode ser e.tremamente essencial $ara o sucesso.
1ara mais informa#es em sinta.e de !O/O", consulte as duas documenta#es abai.o@
'nter$rise !O/O" for z7OS 1rogramming Buide
'nter$rise !O/O" for z7OS "anguage Reference
*esponda as perguntas localizadas em 'IBMxxxx.PARTE3.OUTPUT(A004)'
2s res$ostas $ara as $erguntas so facilmente encontradas nos guias 1rogramming Buide e "anguage
Reference.
Submeta 'IBMxxxx.PARTE3.JCL(J0015)'
* $ara o $rom$t do ,SO Read& e rode o seu $rograma@
call $arte3.load5cblPE6
!/"PE oferece ;P valores de sa%ue diferentes. Vuando solicitado um sa%ue de ^ <PP,PP, a$enas ^
<P,PP dis$ensado na tela. !orri9a este erro de sinta.e no cdigo fonte de seu !/"PE $ara %ue se9a
retornado a %uantidade correta.
D+!2@ O out$ut do $asso de com$ilao contm uma dica sobre este $roblema. !lusulas 1+!,=R' so
im$ortantes $ara esta tarefa.
Submeta 'IBMxxxx.PARTE3.JCL(J001)'
2 com$ilao de !/"PY falar.
O uso de $ontos 5.6 muito im$ortante em !O/O". 'le identifica@
;. O final da $alavra D+*+S+O>
<. O final da $alavra S'!,+O>
3. Dinal de nomes de $argrafos na 2rea 2
E. Dinal de uma sentena
R. Dinal de uma entrada
Y. _ltima declarao em um $argrafo
0odifi%ue !/"PY $ara incluir os $ontos mandatrios. =tilize o log de com$ilao $ara au.Alio. 2$s
com$ilar com sucesso, v $ara o $rom$t do ,SO Read& e digite@
call $arte3.load5cblPY6
2$s e.ecut-lo com sucesso, retorne ao menu +S1D.
Submeta 'IBMxxxx.PARTE3.JCL(J001")'
* $ara o $rom$t do ,SO Read& e digite@
call $arte3.load5cblPU6
Observe o com$ortamento do !O/O" %uanto a cam$os numricos definidos. !/"PU adiciona R dAgitos
onde PPPP; seria ;.
Digite PPPPP $ara terminar o $rograma.
z/OS Enterprise COBOL e DB# $%&
2gora vamos incrementar tudo %ue foi visto at a%ui a$rendendo os 21+s.
21+ significa 2$$lication 1rogramming +nterface e e.iste $ara todas as linguagens. 'stes 21+s $ermitem
%ue o $rograma se comuni%ue com bancos de dados relacionais, $rocessos transacionais, etc.
O comando '?'! SV" em cdigos fonte instruem o $rograma a se comunicar es$ecificamente com um
banco de dados relacional. =m $rograma com este 21+ re%uer um XD/< 1lanX $ara e.ecutar com
sucesso. 'ste X$lanoX criado usando um comando X/+>DX do D/<. 'ste $rocesso feito no (!" usado
$ara com$ilar o $rograma.
/ancos de dados relacionais so usados $ara gerenciar uma grande %uantidade de dados %ue esto
sendo acessados simultaneamente $or diversas $essoas, broNsers na internet, a$arelos e softNares.
O D/< o banco de dados relacional da +/0.
SV" significa Structured Vuer& "anguage uma linguagem comum usada $or todos os bancos de
dados relacionais. =ma vez %ue voc) a$rende SV" $ara mani$ular tabelas em um banco de dados
es$ecAfico, no difAcil me.er com outros bancos de dados relacionais.
SV" dividido em %uatro categorias@
;6 D0" T Data 0ani$ulation "anguage
;. !omandos S'"'!,, =1D2,', +>S'R, e D'"','
<6 DD" T Data Definition "anguage
;. 'struturas !R'2,', 2",'R e DRO1
36 D!" T Data !ontrol "anguage
;. 1rivilgios BR2>, e R'*OL'
E6 ,!" T ,ransaction !ontrol "anguage
;. !O00+, e RO""/2!L
Submeta 'IBMxxxx.PARTE3.JCL(J0023)'
'ste (!" cria uma tabela H0O*+'SH. !onsulte o membro 'IBMxxxx.PARTE3.S#L(MO$TBL)' e observe o
seguinte@
;. =m H--H na coluna ; e < marca a lina como um comentrio. Desta forma, o comando declarado
nesta lina no ser e.ecutadoM
<. Declara#es sem H--H criam a tabela camada 0O*+'SM
3. Declara#es SV" terminam em HMH
Submeta 'IBMxxxx.PARTE3.JCL(J0024)'
'ste (!" $o$ula a tabela 0O*+'S com mais dados.
Altere 'IBMxxxx.PARTE3.S#L(MO$TBL)' conforme segue?
;. !omente a declarao !R'2,'
<. Descomente ambas as declara#es +>S'R,
Submeta 'IBMxxxx.PARTE3.JCL(J0023)'
Altere 'IBMxxxx.PARTE3.S#L(MO$TBL)' conforme segue?
;. !omente as declara#es +>S'R,
<. Descomente as declara#es S'"'!,
Submeta 'IBMxxxx.PARTE3.JCL(J0023)'
O out$ut do (PP<3 %ue e.ecutou a declarao S'"'!, deveria incluir < registros de filmes na tabela
0O*+'S.
Os $aineis ,SO7+S1D $odem interativamente $rocessar SV". >o entanto, a $rocedure D/1RO!2B
necessria $ara utilizar estes $ainis.
Da lina de comando ,SO7+S1D, digite@
tso s&sinfo
Se 1RO!5S1D1RO!'6 estiver $resente, ser necessrio %ue realize logoff e logue novamente, digitando
5na tela de login do ,SO T a mesma tela usada $ara digitar sua sena6 D/1RO!2B sobre o S1D1RO!'.
2$s realizar este $rocedimento, voc) estar com o D/< abilitado. >a lina de comando, digite@
D<
*oc) estar no menu interativo do D/<. Observe no canto su$erior direito os dizeres@
D/<+ 1R+02RF O1,+O> 0'>= SS+D@ D/2B
!aso o D/2B no este9a visAvel no to$o do $ainel, selecione a o$o D 5D/<+ D'D2=",S6 e digite D/2B
no cam$o D/< >20'.
1ressione enter. *oc) ir $ara um segundo $ainel. 1ressione enter novamente e voc) estar de volta ao
menu do D/<. 2gora o D/2B dever estar visAvel como SS+D no canto su$erior direito.
Do D/<+ 1rimar& O$tion 0enu, selecione a o$o ; 51RO!'SS SV" S,2,'0'>,S =S+>B S1=D+6. S1=D+
significa SV" 1rocessing =sing Dile +n$ut.
0odifi%ue os cam$os conforme segue@
; D2,2 S', >20' ... CCC` 12R,'3.SV"50O*,/"6
E D2,2 S', >20' a CCC` D/<.O=,
R !G2>B' D'D2=",S CCC` >O
1oder a$arecer uma mensagem de K2R>+>B na tela a$s dar enter. 1ressione enter $ara ignorar esta
mensagem.
O resultado o seu membro usado como entrada em modo de edio $elo editor do +S1D.
!omente as declara#es !R'2,' e +>S'R,.
Descomente diferentes declara#es de S'"'!, $ara observar o resultado. 1ressionar D3 ir salvar as
altera#es e retornar ao menu S1=D+. 1ressione enter $ara $roceder com o $rocessamento das
declara#es SV". O resultado ser dis$osto na tela.
>o membro 'IBMxxxx.PARTE3.JCL(J0023)' um tem$late de +>S'R, $ara %ue dados se9am
inseridos na tabela. =se o S1=D+ $ara $rocessar o PARTE3.JCL(J0023) $ara adicionar dois de seus
filmes favoritos. *oc) $ode usar o comando S'"'!, $ara verificar se foram inseridos com sucesso.
Submeta 'IBMxxxx.PARTE3.JCL(J0025)'
'ste (!" com$ila o $rograma !/";< e cria um $lano D/< de mesmo nome, o !/";<.
!/";< ir@
;. Re%uisitar um nmero de conta vlido na tabela D/< !=S,O0'R
<. !om$arar o nmero de conta inserido com a tabela D/< !=S,O0'R
3. ,erminar o $rograma %uando o nmero da conta no estiver inserido na tabela
E. Re%uisitar um 1+> number
R. !om$arar o nmero 1+> inserido com a tabela D/< 1+> usando o mesmo nmero de conta
inserido
Y. 2$resentar X!O>,+>='X ou XD'>+'DX de acordo com o resultado de com$arao
* $ara o $rom$t do ,SO Read&.
Digite os seguintes comandos@
alloc da5I6 f5s&sin6 sr reuse
alloc da5I6 f5$rtarea6 sr reuse
* $ara o menu +S1D e entre na o$o D<.
De volta ao menu D/<+ 1rimar& O$tion 0enu, selecione a o$o Y 5R=>6 e $reenca da seguinte
maneira@
; D2,2 S', >20' CCC` 12R,'3."O2D5!/";<6
1ressione enter.
Seu $rograma comear a e.ecutar. +nsira@
'ntre EPPP;<3EPPP< como nmero de conta.
'ntre 3;PE como 1+>.
3;PE o nmero de 1+> correto $ara a conta informada.
'.ecute o $rograma novamente e insira@
'ntre EPPP;<3EPPP< como nmero de conta.
'ntre 3;EP como 1+>.
3;EP o nmero de 1+> incorreto $ara a conta informada.
DESAFIO FINAL
1ara com$letar esta eta$a, ser necessrio rever alguns conceitos vistos na 1arte 3 e, $ossivelmente,
na 1arte <. Reve9a alguns e.ercAcios, releia alguns documentos, visite as $ginas %ue indicamos. 'las
$odem fazer a diferena na ora de realizar o desafio final. =se o tem$o %ue $recisar e lembre-se, a
colocao da 1arte 3 ser feita com base na %ualidade do resultado final, e no na ra$idez %ue voc)
enviar.
Agora #ue voc 4 sa*e conceitos importantes de
JCL, COBOL e B!, +ora de partir para o desa"io "inal%
Ol+e para trs e ve4a o #uanto voc 4 tril+ou%
(stamos orgul+osos #ue ten+a c+egado to longe.
Agora "alta pouco para voc completar a Parte 3 e
concorrer ao prmio "inal%
$ Fant'stica Corrida
!enrio@
O $residente de uma em$resa de ,+ descobriu %ue, en%uanto seus servidores lentos
$rocessavam o grande contedo de informa#es, sobrava muito tem$o ocioso $ara seus funcionrios,
%ue estavam ficando desmotivados. /aseado nisto, resolveu investir em um es$orte srio %ue $udesse
unir a e%ui$e durante as folgas do e.$ediente e des$ertar neles o es$Arito com$etitivo. Desta situao
nasceu a !orrida 1rofissional de !adeiras de 'scritrio. O es$orte, %ue comeou como um $e%ueno
evento %ue acontecia isoladamente em alguns setores, revelou-se um sucesso entre os funcionrios,
%ue transformaram este em um evento srio, mensal e inter-setorial. Os 3 $rimeiros finalistas so
$remiados de acordo com a sua colocao, ganando a medala de ouro, $rata ou bronze e RP, <R ou
;P $ontos res$ectivamente. O $rofissional %ue acumular mais $ontos ao final do ano ainda gana um
aumento de R[ em cima do seu salrio atual.
1assado algum tem$o, o $residente viu %ue no adiantava a$enas investir nos seus funcionrios
e decidiu finalmente trocar os servidores lentos $or mainframes $otentes. O servio melorou, o
trabalo dos funcionrios rendeu mais, $orm a tradio da !orrida de !adeiras de 'scritrio
$ermaneceu. Resolvendo organizar as informa#es $ara conceder o aumento no final do ano, o
$residente $ercebeu %ue $recisava de um $rograma %ue fizesse o trabalo $or ele. 'le camou o
$rogramador mais e.$eriente em desenvolvimento !O/O" no 0ainframe T voc) T e solicitou o seguinte
$ro9eto@
'sco$o@ Desenvolver um $rograma %ue $ossibilite o cadastro de funcionrios, $ossibilite o cadastro de
corridas, com seus res$ectivos vencedores, e retorne dois relatrios@ relatrio de corridas e
vencedores, e relatrio %ue retorne a$enas os funcionrios e seus $ontos. 2$s com$letar o cadastro
das ;< corridas do ano, o $rograma tambm dever ter a o$o de calcular o novo salrio do
funcionrio vencedor com base no melor $ontuado do ano, informar na tela %uem este funcionrio,
sua $ontao, seu antigo salrio e o novo salrio e alterar este valor na tabela. 2$s calcular o novo
salrio, todos os $ontos concedidos durante o ano $ara todos os funcionrios devem ser zerados.
/anco de Dados@ 1rograma deve $ermitir o cadastro dos funcionrios e das corridas realizadas m)s a
m)s. O $rograma dever ter a tabela D=>!+O>2R+OS com as colunas 502,R+!="2, >O0',
SO/R'>O0', !1D, S',OR, S2"2R+O, 1O>,OS6 e a tabela !ORR+D2S com as colunas 5!OD+BO, 2>O,
0bS, D+2, 1R+0'+ROJ"=B2R, S'B=>DOJ"=B2R, ,'R!'+ROJ"=B2R6.
Observao@ O cadastro nas tabelas $ode ser realizado camando um (!" %ue $ossui estes dados a
serem inseridos. 1orm, conseguir fazer com %ue o $residente insira os dados dos funcionrios direto
no $rograma durante a sua e.ecuo, $ara $o$ular as tabelas em tem$o real, ser um diferencial.
"inguagem@ !O/O"
+D'@ RDz
Dormato@ 0enu em formato te.to com as o$#es a serem escolidas.
"embre-se de seguir os re%uisitos acima. 2 forma como o $rograma ir $rocessar os in$uts, as
mensagens de erro, entre outros, fica a seu critrio.
2s refer)ncias abai.o $odem te a9udar muito4
(!" +ntro T =niversit& of Beorgia
'nter$rise !O/O" for z7OS 1rogramming Buide
'nter$rise !O/O" for z7OS "anguage Reference
D/< for z7OS SV" Reference
2o final, voc) dever enviar um e-mail $ara concurzcbr.ibm.com com o tAtulo 8!O>!"=SdO 12R,' 3 T
+/0....: e com os seguintes documentos ane.os@
;6 Documentao com$leta e.$licando todo os $rocessos realizados nesta at a concluso do
trabalo.
<6 0embros e datasets usados no $rograma 5cdigo fonte em !O/O" e os (!"s6. O/S@ Devem estar
em te.tos se$arados no bloco de notas. >o $recisa enviar os membros de $erguntas e res$ostas,
estes sero avaliados em seu $r$rio dataset.
2ssim %ue recebermos seu e-mail, seu acesso ao mainframe ser revogado. 1ara esta eta$a, no
necessrio %ue acerte todas as $erguntas. Seu desem$eno nas res$ostas, no entanto, $oder ser
usado como critrio de desem$ate se ouver necessidade.
1arabns4 *oc) realmente su$erou as e.$ectativas4 1or cegar at a%ui, voc) demonstrou uma grande
ca$acidade de a$rendizado4
*amos rever tudo o %ue voc) fezO *oc) agora no s sabe o conceito, como tambm sabe trabalar
com@
;. z7OS e 0enu +S1D
<. 2locao de datasets e seus res$ectivos membros
3. 'dio de datasets e membros.
E. !onceitos de (!"
R. !riar e trabalar com macros
Y. *isualizar logs no SDSD
Z. R'?? no mainframe
U. ! no mainframe
\. !O/O" no mainframe
;P. D/< no mainframe
;;. Resolver $roblemas de 9obs e com$ilao
;<. Desenvolvimento no S&stem z utilizando o RDz
1arabns $ela sua con%uista4
+nde$endentemente de terminar entre os tr)s $rimeiros colocados, voc) agora tem um currAculo rico e
$ode dizer com certeza %ue voc) 9 $ossui uma boa e.$eri)ncia acerca dos t$icos citados acima. 'stas
informa#es em seu currAculo $odem fazer a diferena na ora de uma contratao. 2lm destas
%ualidades tcnicas, voc) demonstrou %ualidades $rofissionais %ue se destacam aos olos dos
entrevistadores.
O*rigado por participar da 5
a
edi,o do
Concurso .ain"rame Brasil !677%
Boa sorte e nos vemos no dia da premia,o% 89
Continue seus Estudos(
Se estiver interessado em a$rimorar os seus estudos, consulte todos os mateirias indicados durante o
!oncurso@
0ateriais $ara 'studo@
z7OS v;.;; +nformation !enter
+/0 "ooW2t T z7OS 0essage Gel$
2/!s of z7OS S&stem 1rogramming
+ntroduction to te >eN 0ainframe T z7OS /asics
(!" +ntro T =niversit& of Beorgia
'nter$rise !O/O" for z7OS 1rogramming Buide
'nter$rise !O/O" for z7OS "anguage Reference
D/< for z7OS SV" Reference
!om dvidas ou %uerendo trocar ideias sobre mainframeO 'ntre em contato com a e%ui$e@
concurzcbr.ibm.com