-
Concurso Mainframe IBM 2011 - BrasilParte 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 trabalhar, consulte nossa documentao sobre Configurao do RDz. L esto todas as
informaes necessrias para que possa trabalhar com a ferramenta da Rational para desenvolvedores
em System z.
Na Parte 3, voc ir rever alguns conceitosde JCL e aprender conceitos novos. Algumas atividades
vo envolver COBOL, outras vo envolver DB2...
...e ao final, voc ter de resolver um desafio, aplicando tudo que viu no Concurso at agora!
Para facilitar, voc poder optar por utilizar o RDz para concluir as atividades! Esta ferramenta
nada mais que uma IDE para desenvolvedores que trabalham com aplicaes para o Mainframe.
Consulte nossa documentao de Configurao da Parte 3 para instalar a ferramenta no seu
computador!
-
PARTINDO PARA AS ATIVIDADES
Acesse 'ZOS.BR.PARTE3(P3)'e apenas submeta-o
Este JCL copiou para voc todos os datasets necessrios para proceder com as atividades. Verifique em
sua DSLIST e ver que esto l. Se no encontr-los, experimente procurar na DSLIST por
IBMxxxx.PARTE3. Isto retornar todos os datasets copiados!
Comeou a Parte 3! Voc acredita que j chegou at aqui?Voc aprendeu muito na Parte 1 e Parte 2, portanto fique orgulhoso, j foi bem longe!
Para continuar, ser necessrio que copie nossos datasetspara o seu usurio.
-
Fundamentos de Sintaxe e Execuo do JCL
Como foi visto nas atividades anteriores do concurso, o JCL (Job Control Language) instrui o z/OS a
rodar um batch job ou comear uma atividade.
Voc pode identificar facilmente um JCL pelo // nas colunas 1 e 2.
JCL deve ser escrito em caixa alta a no ser que o texto esteja entre aspas como nomes de arquivos
UNIX.
Todo Batch Job deve conter:
Declarao JOB
Declarao EXEC
Declarao de JOB marca o incio do batch job e designa um nome para o mesmo.
A declarao EXEC marca o incio de um passo (ou job step), designa um nome para o mesmo e
identifica o programa ou procedimento a ser executado no passo. Todo batch job deve ter pelo menos
uma declarao EXEC.
Exemplo:
//MEUJOB JOB
// EXEC PGM=IEFBR14
Exemplo com passo de nome PASSO1:
//MEUJOB JOB
//PASSO1 EXEC PGM=IEFBR14
Exemplo de job com mltiplos passos:
//MEUJOB JOB
// PASSO1 EXEC PGM=IEFBR14
//PASSO2 EXEC PGM=IEFBR14
//PASSO3 EXEC PGM=IEFBR14
Adicionalmente, a maioria dos batch jobs contm algo a mais:
Declaraes DD (Data Definition)
Usado para identificar e caracterizar dados de entrada e sada a serem usados em um passo.
Exemplo:
//MEUJOB JOB
//PASSO1 EXEC PGM=SORT
//SORTIN DD parametros
//SORTOUT DD parametros
//SYSIN DD parametros
//SYSOUT DD parametros
-
Uma declarao DD deve ser precedida por um DD Name.
O exemplo acima contm 4: SORTIN, SORTOUT, SYSIN, SYSOUT.
Os parametros DD referenciam a recursos do z/OS como JES queue, nome de dataset, status de
dataset e caminho Unix, alm de outros.
Exemplo:
PATH='/unixpath/filename'
SYSOUT=*
DSN=DATA.SET.NAME
DISP=(start, end, abnormal_end)
onde start = OLD, SHR, MOD ou NEW
end = DELETE, KEEP, CATLG, UNCATLG ou PASS
abnormal_end = DELETE, KEEP, CATLG, UNCATLG ou PASS
O programa abrir estes parametros DD como input ou output.
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
=sd;prefix;owner IBMxxxx; st
Isso o levar at a lista de logs. Rpido, no ?
Localize o job J0001 ao final da lista e digite ? no espao sua frente.
Voc est visualizando os DD names gerados na execuo de seu JCL. Digite s frente de cada um
para visualizar o output do JES2 separadamente.
Acesse 'IBMxxxx.PARTE3.OUTPUT(A001)'e responda as questes 1 7
Edite 'IBMxxxx.PARTE3.JCL(J0002)'e observe os nomes dos passos, programas e DD
Names Submeta o job e, aps faz-lo, digite na linha de comando
=sd;prefix;owner IBMxxxx; st
De volta lista de logs, digite ? frente frente do J0002 e explore os outputs gerados.
Acesse 'IBMxxxx.PARTE3.OUTPUT(A001)'e responda as questes 8 12
-
Funes e Caractersticas do JCL
O JCL flexvel. Esta flexibilidade permite:
1. Substituio de variveis
2. Passar dados para um programa
3. Alocao temporria de dataset
4. Concatenao de datasets
5. Capacidade de aceitar comandos IF/THEN/ELSE
Vamos ver isso na prtica?
Edite 'IBMxxxx.PARTE3.JCL(J0003)' e observe os nomes dos passos, programas e
DD Names
O J0003 executa repetidamente o IEBGENER, um utilitrio do sistema, usando um procedimento do JCL
chamado PROC1, e ento executa o IEBGENER diretamente (sem o uso do procedimento PROC1).
IEBGENER tipicamente usado para copiar dados do DD Name SYSUT1 (input) para o DD Name
SYSUT2 (output).
J0003 copia alguns registros para datasets temporrios, e ento os dados nestes datasets so passados
para outros passos do job. Os datasets temporrios so combinados em um nico dataset temporrio.
Este nico dataset copiado para um membro de um dataset particionado e permanente.
Observao: datasets temporrios so identificados pelo DSN=&& em uma declarao DD. Datasets
temporrios so descartados quando o job termina de executar.
Com base no que voc viu no J0003, acesse 'IBMxxxx.PARTE3.OUTPUT(A002)' e
responda as questes 1 4
Submeta 'IBMxxxx.PARTE3.JCL(J0003)' e verifique o output no log de jobs do SDSF
Um passo do JCL est como FLUSH graas a uma tentativa de escrever os dados temporrios em um
arquivo unix no seu diretrio ('/z/ibmxxxx'). A substituio da varivel para o seu diretrio no unix est
incorreto.
Corrija seu JCL e submeta-o novamente.
Como resultado de uma execuo correta, uma questo adicional foi inserida ao final do
'IBMxxxx.PARTE3.OUTPUT(A002)'.
Responda questo adicional gravada em 'IBMxxxx.PARTE3.OUTPUT(A002)'.
-
Fundamentos de Data Set no z/OS
Enquanto o z/OS possui apenas uma regra para um dataset name, ele tambm pode ter vrios tipos de
datasets. A diversidade nestes tipos de datasets permite aos desenvolvedores e arquitetos escolherem
o tipo de dataset que melhor serve para uma situao especfica.
Nomes de Datasets Regras
1. Nomes de dataset no podem exceder 44 caracteres, inlcuindo todos os segmentos e pontos.
2. Cada segmento (identificador, ou qualifier) deve ter de 1 a 8 caracteres. Cada segmento
separado do outro por um ponto.
3. Os segmentos podem ser HLQ (High Level Qualifier), MLQ (Middle Level Qualifier) e LLQ (Low
Level Qualifier).
Atributos de Datasets
1. Record Length fixed / variable
2. Record Format fixed / blocked
3. Data Set Organization tipo de dataset
4. Primary Disk Space Size area contgua no disco chamada de extenso
5. Secondary Disk Space Size habilidade de realizar uma adio na extenso do disco quando a
"Primary Space" atingir o seu limite
Tipos de Datasets
1. Sequencial assim como um arquivo unix, o contedo de um dataset sequencial so apenas
registros de dados;
2. Particionado ou Particionado/Extendido um dataset particionado (PDS) pode ser comparado a um
sistema de arquivos hierrquico com apenas um subdiretrio. Este "diretrio" contm membros
que por sua vez contm os registros de dados; um dataset particionado extendido (PDSE) existe
em adio ao PDS;
3. VSAM uma estrutura mais complexa para arquivamento de dados e registros. Existem quatro
tipos de VSAM disponveis: KSDS, ESDS, RRDS e LDS.
Novos datasets podem ser alocados interativamente pelo TSO/ISPF ou submetendo um job.
Edite 'IBMxxxx.PARTE3.CNTL(DEFCL)' e altere todos os IBMxxxx para seu usurio
Neste dataset aloca novos datasets sequenciais, particionados e VSAM, e ento copia alguns dados
para cada um e lista os vrios atributos.
Submeta 'IBMxxxx.PARTE3.JCL(J0004)' e garanta que retornou MAXCC=0 antes de
executar o prximo passo
Submeta 'IBMxxxx.PARTE3.JCL(J0005)' e garanta que retornou MAXCC=0 antes de
executar o prximo passo
-
Submeta 'IBMxxxx.PARTE3.JCL(J0006)' e garanta que retornou MAXCC=0 antes de
executar o prximo passo
Submeta 'IBMxxxx.PARTE3.JCL(J0007)'
Responda todas as perguntas localizadas em 'IBMxxxx.PARTE3.OUTPUT(A003)'
Voc poder encontrar algumas respostas nos outputs gerados por estes jobs.
Edite 'IBMxxxx.PARTE3.JCL(J0008)' , alterando os controles para garantir que ele
delete todos os 6 datasets recentemente alocados na ltima atividade. Submeta-o.
Os operandos CLUSTER E NONVSAM so mutualmente exclusivos. Precisam ser corretamente
removidos para que os datasets sejam deletados. Todos os 6 datasets precisam ser deletados com
sucesso para completar esta tarefa.
-
CONHECENDO O COBOL
O z/OS capaz de processar a maioria das linguagens de programao mais populares, bem como as
linguagens mais eficientes e confiveis durante os ltimos 50 anos. Todas as linguagens de
programao tem suas qualidades distintas. No entanto, comum que programadores tenham
preferncia pelas linguagens mais populares.
COBOL (Common Business-Oriented Language) uma das linguagens mais antigas e famosas.
Percebe-se isto atravs das suas milhares de linhas de cdigo escritas nestes ltimos 50 anos e que at
hoje processam um grande volume de dados crticos todos os dias. Evoluiu junto com os avanos da
tecnologia: hoje, as aplicaes em COBOL so muito eficientes, resultado de dcadas de
aprimoramento da linguagem.
O COBOL est principalmente presente em grandes empresas que lidam com uma quantidade
significativa de dados crticos. Graas sua simplicidade, possvel detectar erros de programao de
maneira fcil e intuitiva.
Voc sabia que:
Programas em COBOL processam 70% dos dados em todo o mundo?
Rodam 30.000.000.000 transaes diariamente? (83% das transaes mundiais)
Esto em produo em cerca de 98% das empresas Fortune 500?
No mainframe, o COBOL precisa ser compilado para um cdigo em linguagem de mquina, o que
chamamos de mdulo LOAD. Este mdulo pode executar novamente sem precisar ser compilado
novamente. Uma nova compilao s necessria quando o cdigo sofre alguma mudana.
-
z/OS Enterprise COBOL
Submeta 'IBMxxxx.PARTE3.JCL(J0011)'
Este JCL compilou um simples "hello world", transformando o programa COBOL em um mdulo LOAD
executvel.
De agora em diante, vamos precisar constantemente ir ao TSO Ready para executar alguns comandos.
O prximo procedimento eliminar qualquer passo preliminar desnecessrio para chegar ao prompt do
TSO Ready:
1. No ISPF, entre no menu 0 (Settings)
2. Posicione o cursor em "Log/List" (canto superior esquerdo) e pressione enter
3. Um menu drop-down aparecer com as opes:
1. Log Data set Defaults
2. List Data set Defaults
4. Selecione (1) e altere a opo PROCESS para "2"
5. Volte e selecione (2). Altere a opo PROCESS para "2"
6. Aps terminar, saia com o F3
Na linha de comando, digite =x para terminar o ISPF.
Voc estar agora no prompt READY. Voc dever reconhec-lo pelos momentos em que precisou
deslogar do mainframe. Este prompt permite a insero de comandos (alm de apenas LOGOFF) para a
manipulao dos dados, programas e menus que vimos no ISPF.
O prximo comando ir interativamente executar o programa CBL01, o programa em COBOL salvo em
seu LOAD module.
Aps verificar que o programa est funcionando (saber se ele imprimir a frase designada), digite ISPF
para retornar interface de painel.
Edite 'IBMxxxx.PARTE3.JCL(J0012)' e altere-o de forma a executar o mesmo mdulo
LOAD criado pelo job J0011
Conforme reza a lenda, todo primeiro programa escrito em uma linguagem nova deve imprimir o hello world.
Do contrrio, poder trazer azar para o programador. Voc, caro competidor, no
quer m sorte a esta altura do campeonato, quer?
-
O JCL requer um nome de programa para ser executado e a localizao do mdulo LOAD onde o
programa est armazenado.
Submeta 'IBMxxxx.PARTE3.JCL(J0012)' para provar que sua modificao est
correta
Se rodar com sucesso, "hello world" vai aparecer no output de J0012.
O cdigo de 'IBMxxxx.PARTE3.SOURCE(CBL02)' vai aceitar entrada de dados e apresentar sada.
recomendvel que olhe o cdigo fonte. Os cdigos apresentados iro ficar mais complexos medida
que se avana nas atividades.
Submeta 'IBMxxxx.PARTE3.JCL(J0013)'
V para o prompt do TSO Ready usando o =x na linha de comando. No prompt, digite:
call parte3.load(cbl02)
Aps executar o programa, retorne ao menu ISPF.
-
Trabalhando com a Sintaxe do COBOL
O cdigo de 'IBMxxxx.PARTE3.SOURCE(CBL03)' tem um erro de sintaxe. necessrio que o mesmo
seja identificado e corrigido para que o programa rode corretamente.
Submeta 'IBMxxxx.PARTE3.JCL(J0014)' e verifique o log desta execuo no SDSF.
Voc poder identificar o erro atravs do output de compilao.
Aps corrigir o erro no cdigo fonte, o passo de compilao (COMPILE) ir executar com sucesso. O
passo de linkagem (LINK) ir falhar, no entanto.
Embutido no cdigo fonte de CBL03 h uma chamada para um mdulo externo (CLRSCN). Esta
chamada limpa a tela do TSO aps execuo. O ddname SYSLIB procurado no passo de linkagem
para mdulos chamados.
O mdulo CLRSCN est localizado em LVL0.LINKLIB. Quando LVL0.LINKLIB est concatenado com o
ddname SYSLIB, o CLRSCN pode ser encontrado.
Adicione o SYSLIB ddname no passo LINK em 'IBMxxxx.PARTE3.JCL(J0014)'
conforme abaixo:
//LINK.SYSLIB DD DSNAME=CEE.SCEELKED,DISP=SHR
// DD DSNAME=LVL0.LINKLIB,DISP=SHR
O resultado ser a compilao do CBL03 com sucesso.
Do prompt TSO Ready, verifique o comportamento de seu CBL03. Digite:
call parte3.load(cbl03)
Digite enter para passar da tela de boas-vindas do zEnterprise Bank. Digite NO para terminar a execuo. Volte ao menu ISPF. Perguntas a serem respondidas vo surgir enquanto avana nas
atividades. Familiaridade com as documentaes pode ser extremamente essencial para o sucesso.
Para mais informaes em sintaxe de COBOL, consulte as duas documentaes abaixo:
Enterprise COBOL for z/OS Programming Guide
Enterprise COBOL for z/OS Language Reference
Responda as perguntas localizadas em 'IBMxxxx.PARTE3.OUTPUT(A004)'
As respostas para as perguntas so facilmente encontradas nos guias Programming Guide e Language
Reference.
-
Submeta 'IBMxxxx.PARTE3.JCL(J0015)'
V para o prompt do TSO Ready e rode o seu programa:
call parte3.load(cbl04)
CBL04 oferece 10 valores de saque diferentes. Quando solicitado um saque de $ 200,00, apenas $
20,00 dispensado na tela. Corrija este erro de sintaxe no cdigo fonte de seu CBL04 para que seja
retornado a quantidade correta.
DICA: O output do passo de compilao contm uma dica sobre este problema. Clusulas PICTURE so
importantes para esta tarefa.
Submeta 'IBMxxxx.PARTE3.JCL(J0017)'
A compilao de CBL06 falhar.
O uso de pontos (.) muito importante em COBOL. Ele identifica:
1. O final da palavra DIVISION
2. O final da palavra SECTION
3. Final de nomes de pargrafos na Area A
4. Final de uma sentena
5. Final de uma entrada
6. ltima declarao em um pargrafo
Modifique CBL06 para incluir os pontos mandatrios. Utilize o log de compilao para auxlio. Aps
compilar com sucesso, v para o prompt do TSO Ready e digite:
call parte3.load(cbl06)
Aps execut-lo com sucesso, retorne ao menu ISPF.
Submeta 'IBMxxxx.PARTE3.JCL(J0019)'
V para o prompt do TSO Ready e digite:
call parte3.load(cbl08)
Observe o comportamento do COBOL quanto a campos numricos definidos. CBL08 adiciona 5 dgitos
onde 00001 seria 1.
Digite 00000 para terminar o programa.
-
z/OS Enterprise COBOL e DB2 API
Agora vamos incrementar tudo que foi visto at aqui aprendendo os APIs.
API significa Application Programming Interface e existe para todas as linguagens. Estes APIs permitem
que o programa se comunique com bancos de dados relacionais, processos transacionais, etc.
O comando EXEC SQL em cdigos fonte instruem o programa a se comunicar especificamente com um
banco de dados relacional. Um programa com este API requer um "DB2 Plan" para executar com
sucesso. Este "plano" criado usando um comando "BIND" do DB2. Este processo feito no JCL usado
para compilar o programa.
Bancos de dados relacionais so usados para gerenciar uma grande quantidade de dados que esto
sendo acessados simultaneamente por diversas pessoas, browsers na internet, aparelhos e softwares.
O DB2 o banco de dados relacional da IBM.
SQL significa Structured Query Language uma linguagem comum usada por todos os bancos de dados relacionais. Uma vez que voc aprende SQL para manipular tabelas em um banco de dados
especfico, no difcil mexer com outros bancos de dados relacionais.
SQL dividido em quatro categorias:
1) DML Data Manipulation Language
1. Comandos SELECT, UPDATE, INSERT e DELETE
2) DDL Data Definition Language
1. Estruturas CREATE, ALTER e DROP
3) DCL Data Control Language
1. Privilgios GRANT e REVOKE
4) TCL Transaction Control Language
1. COMMIT e ROLLBACK
Submeta 'IBMxxxx.PARTE3.JCL(J0023)'
Este JCL cria uma tabela 'MOVIES'. Consulte o membro 'IBMxxxx.PARTE3.SQL(MOVTBL)' e observe o
seguinte:
1. Um '--' na coluna 1 e 2 marca a linha como um comentrio. Desta forma, o comando declarado
nesta linha no ser executado;
2. Declaraes sem '--' criam a tabela chamada MOVIES;
3. Declaraes SQL terminam em ';'
-
Submeta 'IBMxxxx.PARTE3.JCL(J0024)'
Este JCL popula a tabela MOVIES com mais dados.
Altere 'IBMxxxx.PARTE3.SQL(MOVTBL)' conforme segue:
1. Comente a declarao CREATE
2. Descomente ambas as declaraes INSERT
Submeta 'IBMxxxx.PARTE3.JCL(J0023)'
Altere 'IBMxxxx.PARTE3.SQL(MOVTBL)' conforme segue:
1. Comente as declaraes INSERT
2. Descomente as declaraes SELECT
Submeta 'IBMxxxx.PARTE3.JCL(J0023)'
O output do J0023 que executou a declarao SELECT deveria incluir 2 registros de filmes na tabela
MOVIES.
Os paineis TSO/ISPF podem interativamente processar SQL. No entanto, a procedure DBPROCAG
necessria para utilizar estes painis.
Da linha de comando TSO/ISPF, digite:
tso sysinfo
Se PROC(SPFPROCE) estiver presente, ser necessrio que realize logoff e logue novamente, digitando
(na tela de login do TSO a mesma tela usada para digitar sua senha) DBPROCAG sobre o SPFPROCE.
Aps realizar este procedimento, voc estar com o DB2 habilitado. Na linha de comando, digite:
D2
Voc estar no menu interativo do DB2. Observe no canto superior direito os dizeres:
DB2I PRIMARY OPTION MENU SSID: DBAG
Caso o DBAG no esteja visvel no topo do painel, selecione a opo D (DB2I DEFAULTS) e digite DBAG
no campo DB2 NAME.
Pressione enter. Voc ir para um segundo painel. Pressione enter novamente e voc estar de volta ao
menu do DB2. Agora o DBAG dever estar visvel como SSID no canto superior direito.
Do DB2I Primary Option Menu, selecione a opo 1 (PROCESS SQL STATEMENTS USING SPUFI). SPUFI
-
significa SQL Processing Using File Input.
Modifique os campos conforme segue:
1 DATA SET NAME ... ===> PARTE3.SQL(MOVTBL)
4 DATA SET NAME ===> DB2.OUT
5 CHANGE DEFAULTS ===> NO
Poder aparecer uma mensagem de WARNING na tela aps dar enter. Pressione enter para ignorar esta
mensagem.
O resultado o seu membro usado como entrada em modo de edio pelo editor do ISPF.
Comente as declaraes CREATE e INSERT.
Descomente diferentes declaraes de SELECT para observar o resultado. Pressionar F3 ir salvar as
alteraes e retornar ao menu SPUFI. Pressione enter para proceder com o processamento das
declaraes SQL. O resultado ser disposto na tela.
No membro 'IBMxxxx.PARTE3.JCL(J0023)' h um template de INSERT para que dados sejam
inseridos na tabela. Use o SPUFI para processar o PARTE3.JCL(J0023) para adicionar dois de seus
filmes favoritos. Voc pode usar o comando SELECT para verificar se foram inseridos com sucesso.
Submeta 'IBMxxxx.PARTE3.JCL(J0025)'
Este JCL compila o programa CBL12 e cria um plano DB2 de mesmo nome, o CBL12.
CBL12 ir:
1. Requisitar um nmero de conta vlido na tabela DB2 CUSTOMER
2. Comparar o nmero de conta inserido com a tabela DB2 CUSTOMER
3. Terminar o programa quando o nmero da conta no estiver inserido na tabela
4. Requisitar um PIN number
5. Comparar o nmero PIN inserido com a tabela DB2 PIN usando o mesmo nmero de conta
inserido
6. Apresentar "CONTINUE" ou "DENIED" de acordo com o resultado de comparao
V para o prompt do TSO Ready.
Digite os seguintes comandos:
alloc da(*) f(sysin) shr reuse
alloc da(*) f(prtarea) shr reuse
V para o menu ISPF e entre na opo D2.
De volta ao menu DB2I Primary Option Menu, selecione a opo 6 (RUN) e preencha da seguinte
maneira:
1 DATA SET NAME ===> PARTE3.LOAD(CBL12)
-
Pressione enter.
Seu programa comear a executar. Insira:
Entre 400012340002 como nmero de conta.
Entre 3104 como PIN.
3104 o nmero de PIN correto para a conta informada.
Execute o programa novamente e insira:
Entre 400012340002 como nmero de conta.
Entre 3140 como PIN.
3140 o nmero de PIN incorreto para a conta informada.
-
DESAFIO FINAL
Para completar esta etapa, ser necessrio rever alguns conceitos vistos na Parte 3 e, possivelmente,
na Parte 2. Reveja alguns exerccios, releia alguns documentos, visite as pginas que indicamos. Elas
podem fazer a diferena na hora de realizar o desafio final. Use o tempo que precisar e lembre-se, a
colocao da Parte 3 ser feita com base na qualidade do resultado final, e no na rapidez que voc
enviar.
Agora que voc j sabe conceitos importantes de JCL, COBOL e DB2, hora de partir para o desafio final!
Olhe para trs e veja o quanto voc j trilhou! Estamos orgulhosos que tenha chegado to longe.Agora falta pouco para voc completar a Parte 3 e
concorrer ao prmio final!
-
A Fantstica Corrida
Cenrio:
O presidente de uma empresa de TI descobriu que, enquanto seus servidores lentos
processavam o grande contedo de informaes, sobrava muito tempo ocioso para seus funcionrios,
que estavam ficando desmotivados. Baseado nisto, resolveu investir em um esporte srio que pudesse
unir a equipe durante as folgas do expediente e despertar neles o esprito competitivo. Desta situao
nasceu a Corrida Profissional de Cadeiras de Escritrio. O esporte, que comeou como um pequeno
evento que acontecia isoladamente em alguns setores, revelou-se um sucesso entre os funcionrios,
que transformaram este em um evento srio, mensal e inter-setorial. Os 3 primeiros finalistas so
premiados de acordo com a sua colocao, ganhando a medalha de ouro, prata ou bronze e 50, 25 ou
10 pontos respectivamente. O profissional que acumular mais pontos ao final do ano ainda ganha um
aumento de 5% em cima do seu salrio atual.
Passado algum tempo, o presidente viu que no adiantava apenas investir nos seus funcionrios
e decidiu finalmente trocar os servidores lentos por mainframes potentes. O servio melhorou, o
trabalho dos funcionrios rendeu mais, porm a tradio da Corrida de Cadeiras de Escritrio
permaneceu. Resolvendo organizar as informaes para conceder o aumento no final do ano, o
presidente percebeu que precisava de um programa que fizesse o trabalho por ele. Ele chamou o
programador mais experiente em desenvolvimento COBOL no Mainframe voc e solicitou o seguinte
projeto:
Escopo: Desenvolver um programa que possibilite o cadastro de funcionrios, possibilite o cadastro de
corridas, com seus respectivos vencedores, e retorne dois relatrios: relatrio de corridas e
vencedores, e relatrio que retorne apenas os funcionrios e seus pontos. Aps completar o cadastro
das 12 corridas do ano, o programa tambm dever ter a opo de calcular o novo salrio do
funcionrio vencedor com base no melhor pontuado do ano, informar na tela quem este funcionrio,
sua pontao, seu antigo salrio e o novo salrio e alterar este valor na tabela. Aps calcular o novo
salrio, todos os pontos concedidos durante o ano para todos os funcionrios devem ser zerados.
Banco de Dados: Programa deve permitir o cadastro dos funcionrios e das corridas realizadas ms a
ms. O programa dever ter a tabela FUNCIONARIOS com as colunas (MATRICULA, NOME,
SOBRENOME, CPF, SETOR, SALARIO, PONTOS) e a tabela CORRIDAS com as colunas (CODIGO, ANO,
MS, DIA, PRIMEIRO_LUGAR, SEGUNDO_LUGAR, TERCEIRO_LUGAR).
Observao: O cadastro nas tabelas pode ser realizado chamando um JCL que possui estes dados a
serem inseridos. Porm, conseguir fazer com que o presidente insira os dados dos funcionrios direto
no programa durante a sua execuo, para popular as tabelas em tempo real, ser um diferencial.
Linguagem: COBOL
IDE: RDz
Formato: Menu em formato texto com as opes a serem escolhidas.
-
Lembre-se de seguir os requisitos acima. A forma como o programa ir processar os inputs, as
mensagens de erro, entre outros, fica a seu critrio.
As referncias abaixo podem te ajudar muito!
JCL Intro University of Georgia
Enterprise COBOL for z/OS Programming Guide
Enterprise COBOL for z/OS Language Reference
DB2 for z/OS SQL Reference
Ao final, voc dever enviar um e-mail para [email protected] com o ttulo CONCLUSO PARTE 3
IBMxxxx e com os seguintes documentos anexos:
1) Documentao completa explicando todo os processos realizados nesta at a concluso do
trabalho.
2) Membros e datasets usados no programa (cdigo fonte em COBOL e os JCLs). OBS: Devem estar
em textos separados no bloco de notas. No precisa enviar os membros de perguntas e respostas,
estes sero avaliados em seu prprio dataset.
Assim que recebermos seu e-mail, seu acesso ao mainframe ser revogado. Para esta etapa, no
necessrio que acerte todas as perguntas. Seu desempenho nas respostas, no entanto, poder ser
usado como critrio de desempate se houver necessidade.
Parabns! Voc realmente superou as expectativas! Por chegar at aqui, voc demonstrou uma grande
capacidade de aprendizado!
Vamos rever tudo o que voc fez? Voc agora no s sabe o conceito, como tambm sabe trabalhar
com:
1. z/OS e Menu ISPF
2. Alocao de datasets e seus respectivos membros
3. Edio de datasets e membros.
4. Conceitos de JCL
5. Criar e trabalhar com macros
6. Visualizar logs no SDSF
7. REXX no mainframe
8. C no mainframe
9. COBOL no mainframe
10. DB2 no mainframe
11. Resolver problemas de jobs e compilao
12. Desenvolvimento no System z utilizando o RDz
-
Parabns pela sua conquista!
Independentemente de terminar entre os trs primeiros colocados, voc agora tem um currculo rico e
pode dizer com certeza que voc j possui uma boa experincia acerca dos tpicos citados acima. Estas
informaes em seu currculo podem fazer a diferena na hora de uma contratao. Alm destas
qualidades tcnicas, voc demonstrou qualidades profissionais que se destacam aos olhos dos
entrevistadores.
Obrigado por participar da 5a edio do Concurso Mainframe Brasil 2011!
Boa sorte e nos vemos no dia da premiao! :)
-
Continue seus Estudos!
Se estiver interessado em aprimorar os seus estudos, consulte todos os mateirias indicados durante o
Concurso:
Materiais para Estudo:
z/OS v1.11 Information Center
IBM LookAt z/OS Message Help
ABCs of z/OS System Programming
Introduction to the New Mainframe z/OS Basics
JCL Intro University of Georgia
Enterprise COBOL for z/OS Programming Guide
Enterprise COBOL for z/OS Language Reference
DB2 for z/OS SQL Reference
Com dvidas ou querendo trocar ideias sobre mainframe? Entre em contato com a equipe: