Escolar Documentos
Profissional Documentos
Cultura Documentos
Curso de JCL Carlos Campos - InCOMPLETO
Curso de JCL Carlos Campos - InCOMPLETO
JCL
Job Control Language
Comandos, Sintaxe, Regras e Procedimentos
Exemplos de programas e Pensamentos
Segunda edição
São Paulo
2014
Carlos J E de campos, 2014
Capa: Ramon Alvarenga
Revisão: Fernanda Rizzo
Diagramação: Carlos J E de Campos
2014
Todos os direitos desta obra pertencem a
Carlos J E de Campos
www.carloscamposinfo.com
JCL
Agradecimentos
Agradeço à minha filhota, Vanessa Soares de Campos, por ser a minha fonte de
esperança e por mostrar compreensão e paciência em muitos momentos da nossa
vida.
Agradeço ao amigo Roberto Azem, que sempre esteve por perto, nos momentos de
estudo e naqueles em que precisava de ouvidos e conselhos.
Agradeço aos meus pais Alice de Assunção Esteves Costa e José Manuel Lopes
Moreira de Campos, por terem-me dado a vida, educação, formação moral e muito
apoio.
Agradeço ao companheiro Benedito Aparecido Alves, pelo apoio que tem me dado
nesta segunda fase dos meus livros, acompanhando-me no dia a dia do trabalho,
ouvindo-me e apoiando-me com o seu conhecimento e sabedoria. Benê, como é
conhecido, tem sido um grande conselheiro.
Reflexão
“Para adquirir conhecimento é preciso estudar, para adquirir sabedoria é preciso
observar.”
Autor: William Arthur Ward
Introdução
Reflexão
“E conhecereis a verdade e a verdade vos libertará.”
João 8:32
Reflexão
“Muitos homens iniciaram uma nova era na sua vida a partir da leitura de um livro”.
Autor: Henry Thoreau
JCL
Resenha
Quando fui convidado para participar deste projeto, não fiquei surpreso nem tive
dúvidas do que iria encontrar quando pude ler todos os outros livros do autor. Na
nossa área, os livros são muito raros e com pouco conteúdo. Normalmente, sem
exemplos que reforcem o entendimento. Os que existem são os manuais técnicos e
na língua inglesa.
Li este livro e comparei com outros da área, observando a maneira como o conteúdo
do JCL está organizado. Gostei muito da forma simples e objetiva de como os
comandos são apresentados. Todos estão na forma básica e possuem exemplos que
o leitor pode ler, interpretar e até executar.
O livro de JCL atingiu o objetivo: apresentar a linguagem de forma prática, de modo
a ser facilmente utilizado pelo programador, e ainda virar um guia de referência,
assim como foram elaboradas as outras obras do autor.
O autor, assim como fez no livro de LÓGICA, COBOL, DB2 e CICS, tem a preocupação
de fornecer um material didático e, ao mesmo tempo, um treinamento com uma
metodologia que leva a uma boa formação básica para ser um bom programador,
utilizando lógica e bons princípios da linguagem JCL para ambiente de
desenvolvimento Mainframe.
Objetivo do método
Este método tem como objetivo alcançar os mais diversos indivíduos (visual,
auditivo ou cinestésico) para que tomem consciência dos conceitos. Todo o método
está baseado na indução do raciocínio, para que se crie a lógica necessária. Com isto,
a energia necessária gasta com o esforço para criar a lógica é gasta durante o
treinamento. Depois de formado, o individuo passa a raciocinar automaticamente
com muito menor esforço. Por exemplo, quando houver uma solicitação que seja
necessária à criação de duas quebras, uma dentro da outra, o raciocínio vem
automaticamente e, à medida que vai elaborando a lógica, o seu formato já vem no
padrão aprendido.
Benefícios do método
Os benefícios do método aplicado podem se resumir no seguinte:
Aumento do desempenho no raciocínio lógico
Acomodação crescente do conhecimento
Consolidação das estruturas lógicas
Facilidade de criar a solução lógica
JCL
Certificação para
desenvolvedor Mainframe
O instituto ICPDUG (INTERNATIONAL COBOL PROGRAM DEVELOPER USERS GROUP),
para valorizar a área de desenvolvimento de sistema, fornece o exame de
certificação para desenvolvedor COBOL Mainframe, com o objetivo de identificar o
especialista em desenvolvimento de sistemas COBOL Mainframe.
Objetivo da certificação
A certificação vem agregar valor para a empresa, na medida em que vai avaliar o
conhecimento para a necessidade específica que o profissional precisa ter,
possibilitando a criação de um quadro de profissionais altamente qualificados e
nivelados com o objetivo de planejar, definir e criar sistemas e programas com
eficiência e qualidade.
E para o profissional, vem para valorizar a sua capacitação, a sua formação,
diferenciando-o dos demais profissionais, fornecendo-lhe as credencias de um
profissional especialista, aderente com as necessidades de conhecimento específico.
Como é a certificação
O certificado de Especialista em COBOL Mainframe, CMCPDS - Certified Mainframe
COBOL Program Development Specialist (Especialista em Desenvolvimento de
Programação COBOL Mainframe). O especialista máster recebe o título, após ter
obtido todas as certificações para as seguintes especialidades:
LÕGICA - Programação estruturada
COBOL - Linguagem de programação
DB2 - Sistema Gerenciador de Banco de Dados Relacional
CICS - Sistema Gerenciador de ambiente ONLINE
JCL - Linguagem de controle Batch
Reflexão
“Em algum lugar, algo incrível está esperando para ser descoberto.”
Autor: Carl Seagan
Sumário
Agradecimentos ........................................................................3
Introdução ..............................................................................5
Resenha .................................................................................7
Formação de especialista COBOL....................................................9
Metodologia dos cursos .......................................................... 10
Objetivo do método .............................................................. 10
Benefícios do método ............................................................ 10
Certificação para desenvolvedor Mainframe .................................... 11
Objetivo da certificação ......................................................... 11
Como é a certificação............................................................ 11
Sumário ............................................................................... 13
Notação utilizada ................................................................. 21
Como codificar subparâmetros .................................................... 23
códigoretorno ..................................................................... 23
chaveregistro ...................................................................... 23
classe ............................................................................... 24
ddname ............................................................................ 24
dsname ............................................................................. 24
formdado .......................................................................... 24
jobname............................................................................ 24
nomearquivo ...................................................................... 25
nomeform .......................................................................... 25
nomeprog .......................................................................... 25
nomeproc .......................................................................... 25
nromaxcomponente .............................................................. 25
operadorlogico .................................................................... 26
posini ............................................................................... 26
comandos-do-sort............................................................. 152
Comandos do DFSORT ........................................................... 153
Sequência de execução dos comandos do DFSORT....................... 153
Classificar registros do arquivo ................................................ 155
Uso do comando SORT FIELDS.................................................. 155
Sintaxe do comando SORT FIELDS .......................................... 155
Exemplo de ordenação – SORT FIELDS ..................................... 159
Sequência de execução de SORT FIELDS .................................. 159
Selecionar registro do arquivo ................................................. 161
Tipos de selecionamento de registro de entrada ........................ 161
Regras de preenchimento e truncamento na comparação .............. 162
Regras de comparação para INCLUDE e OMIT............................. 162
Selecionar registros que serão gravados ..................................... 163
Uso do comando INCLUDE COND ............................................ 163
Ignorar registros para não serem gravados .................................. 167
Uso do comando OMIT COND ................................................ 167
Somar valores em registros..................................................... 169
Uso do comando SUM FIELDS ................................................ 169
Eliminar chaves duplicadas ..................................................... 171
Uso do comando SUM FIELDS=NONE ........................................ 172
Sintaxe do comando SUM FIELDS=NONE ................................... 172
Exemplo de eliminação de duplicados ..................................... 172
Reformatar registros de entrada .............................................. 173
Uso do comando INREC FIELDS .............................................. 174
Reformatar registros de saída ................................................. 177
Uso do comando OUTREC FIELDS ........................................... 178
Como inserir dados no registro de saída................................... 180
Juntar arquivos .................................................................. 183
Uso do comando MERGE FIELDS ............................................. 184
Exemplo de MERGE com arquivos ordenados ............................. 185
Notação utilizada
[ ] Opcional
{ } Optar por um, sendo que as opções estão separadas pelo símbolo “|”
que significa “ou”
< > Operador lógico "OU". Significa que pode ser substituído por um dos
parâmetros.
| Operador lógico "OU". Significa que pode ser substituído por um dos
parâmetros.
... Existem procedimentos não mencionados
....|....1....|....2....|....3....|....4....|....5....|....6....|....7..
Reflexão
“Só é lutador quem sabe lutar consigo mesmo.”
Autor: Carlos Drummond de Andrade
códigoretorno
Número inteiro indicador da situação de término do STEP, conhecido com RETURN
CODE. Valor entre 0 e 4095.
chaveregistro
Especifica a chave primária do registro.
ddname
Nome do arquivo lógico utilizado dentro do programa de aplicação. No caso de
programa COBOL, é utilizado na SELECT. Deve seguir as seguintes regras de
stepname.
dsname
Nome do arquivo físico utilizado pelo sistema operacional. Ver nomearquivo.
formdado
Sequência de dois caracteres para indicar o tipo de formato do campo a ser utilizado
na ordenação.
jobname
Nome da instrução (comando ou cartão) JOB e, deve seguir as seguintes regras:
Pode ter de um a oito caracteres.
Deve ter um nome exclusivo na instalação.
Deve começar por um caractere alfanumérico ou pelos caracteres: $, @ e #.
Deve começar na coluna 3.
O primeiro caractere deve ser alfabético ou nacional ($, #, @).
Deve ser seguido por pelo menos um espaço em branco.
Reflexão
“Devemos educar nosso coração a ser piedoso, gentil, terno, cheio de perdão e
compaixão.”
Autor desconhecido
JCL
nomearquivo
Nome do arquivo a ser utilizado. O nome do arquivo pode ser simples ou composto.
Se for simples, segue as regras de nomedopgm.
Se for composto, pode ter no máximo 44 caracteres de tamanho, se for GDG, poderá
ter no máximo 35 caracteres. No caso de nome composto, o nome pode ser uma
junção de vários nomes simples separados por um ponto.
O nome composto deve possuir a seguinte formatação:
--------.--------.--------.--------.--------
Por exemplo:
AD.CJEC.CURSO.JCL.ARQJCL78
nomeform
Nome do formulário pré-formatado. O formulário é identificado por um código de 4
caracteres e necessita de um tratamento específico para que seja montado pelo
programa e impresso em papel. Por exemplo:
//SAIDAPGM DD SYSOUT=A,,ZT42
nomeprog
Nome do utilitário ou programa de aplicação.
Pode ter de um a oito caracteres.
Deve ter um nome exclusivo na instalação.
O primeiro caractere deve ser alfabético ou ($, #, @).
nomeproc
Nome de um procedimento (processo catalogado).
Pode ter de um a oito caracteres.
Deve ter um nome exclusivo na instalação.
O primeiro caractere deve ser alfabético ou ($, #, @).
nromaxcomponente
Número inteiro de 1 a 255.
posini
Número inteiro para indicar a posição inicial do valor a ser utilizado na ordenação. A
1ª posição é o byte 1.
posiçãoinicial
Número inteiro para indicar a posição inicial da chave principal. A primeira posição é
identificada pelo número zero.
quantidade
Número inteiro.
qtdecopias
Número de cópias a serem impressas do formulário. É um número inteiro. Por
exemplo:
//SYSPRINT DD SYSOUT=A,COPIES=3
Neste exemplo, o parâmetro COPIES está com o número 3. Isso significa que os
dados que estão na SYSPRINT serão impressos três vezes.
qtdebufers
Número inteiro para determinar a quantidade de regiões de memória.
qtdedispositivo
Quantidade de dispositivos que podem ser utilizados. É um número decimal de 1 até
59.
qtderegistro
Especifica o número de registros lógicos que será copiado. É um número inteiro.
JCL
stepname
Nome do STEP. Deve seguir as seguintes regras:
Pode ter de um a oito caracteres.
Deve ter um nome exclusivo na instalação.
Deve começar por um caractere alfanumérico ou pelos caracteres: $, @ e #.
Deve começar na coluna 3.
O primeiro caractere deve ser alfabético ou nacional ($, #, @).
Deve ser seguido por pelo menos um espaço em branco.
stepanterior
Nome do STEP anterior, já executado. Deve seguir as regras de stepname.
tamanho
Número inteiro para determinar o tamanho.
tamcampo
Número inteiro para indicar o tamanho do campo (sequência de caracteres) a ser
utilizado na ordenação.
tamanhomedio
Número inteiro indicativo do tamanho médio do registro.
tamanhomaximo
Número inteiro indicativo do tamanho máximo do registro.
usuário
Nome do usuário que tem permissão para ver o formulário (relatório).
Mainframe 1
Este capítulo tem como finalidade apresentar a história e os fundamentos dos
computadores Mainframe, em especial, da IBM, por ter sido o que mais se
popularizou.
Reflexão
“A ciência sem a religião é coxa; a religião sem a ciência é cega.”
Albert Einstein
Reflexão
“Não vos enganeis: as más conversas corrompem os bons costumes.”
I Coríntios 15:33
JCL
História do Mainframe
Os Mainframes nasceram em 1946 e foram sendo aperfeiçoados. Em 7 de abril de
1964, a IBM apresentou o System/360,
Mainframe que, na época, foi o maior
projeto de uma empresa. Desde então,
outras empresas – como a HP e a Burroughs
(atual Unisys) – lançaram seus modelos.
Posteriormente, a IBM lançou a série /370 e
a Burroughs, as máquinas de terceira
geração: B-3500 e B-6500, sucedidas pela
série 700: B-3700 e B-6700.
Figura 1 – IBM 704
No fim da década de 1970, ao mesmo
tempo em que os sistemas destinados a grandes corporações cresciam, começaram
a ser reduzidos os tamanhos de uma série de máquinas: a IBM lançou o /3 e a
Burroughs, a série B-1700 e, posteriormente, a B-700, máquinas de quarta geração,
cujo software básico era escrito em MIL (Micro Implemented Language) e SDL
(Software Development Language). Como foram as primeiras máquinas Burroughs
microprogramáveis, isso lhes proporcionou flexibilidade ímpar. Estas máquinas
marcaram o início do uso de circuitos integrados com tecnologia TTL e integração
em média escala (MSI).
Atualmente, a IBM produz quatro versões de Mainframes, denominados System Z
series, que, modernizados, suportam diversos sistemas operacionais: z/OS, z/OS.e,
z/VM, z/VSE, VSE/ESA, TPF, z/TPF e Linux on System z.
Hoje, segundo especialistas, há uma forte tendência de crescimento para este setor,
inclusive com as novas versões do Cobol (principal linguagem dos Mainframes) que
usam ambiente gráfico.
A primeira empresa a usar o S/360 no Brasil foi a Bayer, empresa de produtos
químicos, em 1966. Outras empresas e órgãos do governo adotaram o Mainframe
depois, como o governo do Estado de São Paulo, a Usiminas e Paulo Afonso.
Desde então, outras empresas, como a HP e a Unisys, lançaram seus modelos de
Mainframe. Além disso, bastante coisa mudou no mundo da tecnologia. Na verdade,
boa parte do mercado de informática que existe hoje surgiu depois do primeiro
Mainframe. Foi apenas depois disso, por exemplo, que surgiu o circuito integrado,
mais conhecido hoje em dia como chip semicondutor. Sem esses chips, dificilmente
teriam surgidos os microprocessadores, que começaram a se tornar populares na
década de 80.
Reflexão
“Há um poder maravilhoso no silêncio.”
Autor Desconhecido
System z9
Processa parte
Application Assist das cargas do
Processor (zAAP) DB2
2004
Integrated Processa JAVA
Facility for Linux
(IFL) 2001
Reflexão
“Só é livre o homem que sabe dar ordens a si mesmo.”
Autor: Pitágoras
Imponência do Mainframe
A IBM tem o projeto BIG Green, que consolida em 30 Mainframes uma enorme
capacidade de armazenamento e de processamento, com alta economia de energia
(Fonte IBM).
Mainframe e supercomputador
A distinção entre supercomputadores e Mainframes não está clara, mas podemos
dizer que os supercomputadores são utilizados na solução de problemas em que o
tempo de cálculo é um limite, enquanto os Mainframes são utilizados em tarefas
que exigem alta disponibilidade e envolvem alto volume de processamento de
dados.
Os supercomputadores são otimizados para realizar tarefas complexas, utilizando
principalmente a memória, enquanto os Mainframes são otimizados para realizar
tarefas que acessam grandes quantidades de informação oriunda de bases de dados,
arquivos. Os supercomputadores são construídos para atender a uma finalidade
específica. Os Mainframes são construídos para realizar uma grande variedade de
tarefas de execução diária. Normalmente, os supercomputadores são utilizados em
aplicações científicas e militares, enquanto os Mainframes são voltados a aplicações
civis, sejam governamentais ou empresariais. A análise de modelos de clima, análise
estrutural de proteínas e processamento de filmes digitais são tarefas bastante
apropriadas para os supercomputadores. O processamento de cartões de crédito,
gerenciamento de contas bancárias e processamento de seguro são tarefas
normalmente realizadas por Mainframes. Uma exceção: certas aplicações militares
exigem um nível de segurança muito alto, que é uma forte característica dos
Mainframes.
C
...
O
N
T
R
Console(s) O
operador L Terminal Terminal
A
D Discos
O
R Impressoras
A
CPU S Fitas
Cartuchos
Teclado 3270
Os terminais (teclado) do Mainframe também são um pouco diferentes, assim como
existem diversos teclados para os computadores pessoais. Depende do fabricante e
do idioma do país.
Reflexão
“Para adquirir conhecimento é preciso estudar, para adquirir sabedoria é preciso
observar.”
William Arthur Ward
Reflexão
“Se quer tirar mel, não espante a colmeia.”
Autor desconhecido
JCL
Reflexão
“Não julgueis segundo a aparência, e sim pela reta justiça.”
João 7:24
Reflexão
“A menos que admita a existência de Deus, a questão sobre propósito de vida não tem
sentido.”
Bertrand Russell
Reflexão
“Só é lutador quem sabe lutar consigo mesmo.”
Carlos Drummond de Andrade
JCL
O que é JCL
JCL significa linguagem de controle de serviço, que é composta por instruções, mais
conhecida como cartões, que depois de codificadas são utilizadas pelo sistema
operacional para dirigir a execução de programas.
Qualquer Mainframe IBM utiliza o JCL para executar processos batch, porém o
formato poderá variar de acordo com a empresa.
A codificação das instruções JCL, os programas a serem executados e os arquivos de
dados utilizados no processamento, constituem um serviço, ou seja, um JOB.
As instruções JCL descrevem o que o sistema operacional deve fazer:
Especifica a prioridade de execução do JOB.
Pode condicionar a continuidade do fluxo de execução ou de um
determinado passo do processamento.
Identifica o nome do programa ou procedure a ser executado.
Identifica o arquivo que o programa quer trabalhar (ler ou gravar) e o
relaciona com sua execução.
Especifica os dispositivos e as memórias auxiliares para a execução do
programa ou utilitário.
Submete
JES interpreta o JCL e passa
para S.O.
Reflexão
“Não te furtes de fazer o bem a quem de direito, estando na tua mão o poder de fazê-
lo.”
Salomão. Sl 3: 27
JOB MANAGEMANT
JOB MANAGEMENT é o programa responsável por receber e expedir os serviços
solicitados e gerenciar os recursos necessários para a execução de cada atividade
solicitada. O gerenciamento é feito individualmente para cada etapa chamada de
STEP. É por meio do comando JOB que é informado ao JOB MANAGEMENT o início
de um novo serviço.
TASK MANAGEMENT
TASK MANAGEMENT é também chamado de Supervisor, porque é responsável por
administrar o espaço de memória da CPU. Uma TASK é um serviço solicitado pela
execução de um programa, também definido como uma unidade de trabalho da
CPU. É por meio do comando EXEC que é informado ao TASK MANAGEMENT qual o
programa (PROCEDURE) vai ser executado.
DATA MANAGEMENT
DATA MANAGEMENT é o componente responsável por todas as operações em
arquivos. Administra a abertura, o fechamento, o volume necessário (EOV) e o fim
do arquivo (EOF). É por meio do comando DD, que é informado à DATA
MANAGEMENT quais são os arquivos que o programa vai utilizar.
Sistema
Operacional
JOB TASK DATA
MANAGEME MANAGEME MANAGEME
NT NT NT
JOB EXEC DD
JCL
O que é um JOB
Dá-se o nome de JOB a um programa, script, escrito na linguagem JCL para executar
um ou mais programas, utilitários, de forma serial. JOB é a unidade máxima de
execução (unidade de básica de trabalho, serviço), é codificado segundo instruções e
é mais conhecido como cartões, com uma regra rígida de posicionamento na linha,
assim como faz o COBOL. O JOB, obrigatoriamente, deve começar com a instrução
de nome JOB. Popularmente, o nome da instrução JOB é utilizado para identificar
um “programa” em JCL. Um job consiste em um ou vários passos, cada qual sendo
uma requisição para um programa específico.
Por exemplo, imagine o seguinte processo responsável por criar um relatório
impresso com os seguintes passos: um programa para selecionar os registros
apropriados e copiá-los para um arquivo temporário; outro para organizar esses
dados sob um determinado critério; e outro para apresentar as informações ao
usuário final.
O que é um STEP
Cada unidade de execução de um JOB, programa ou utilitário, que é comandado
pela execução do cartão (comando) EXEC, dá-se o nome de STEP.
Estrutura de um JOB
O JOB, obrigatoriamente, é identificado pelo cartão (comando) JOB, que identifica o
início do programa (script), da mesma forma que o programa COBOL precisa ter a
divisão IDENTIFICATION DIVISION.
1a2 3 a 10 11 12 a 72 73 a 80
(com exceções)
Espaço:
se existirem
informações, indica
que são parâmetros
de uma instrução.
Se o restante da
linha à direita
estiver vazia, Codificação da Numeração
// significa fim do JOB. Espaço instrução com
* – junto com duas seus parâmetros sequencial
barras indica que o
que está à direita é
comentário.
Conjunto de até oito
letras – indica o
nome do cartão.
Observação: essa é a nossa orientação para que o JOB possa ter sua
codificação organizada e facilmente entendida, visualmente, por todos os
envolvidos.
JCL
Reflexão
“Ser subdesenvolvido não é "não ter futuro"; é nunca estar no presente.”
Arnaldo Jabor
Declaração //*
Para codificar um comentário é necessário utilizar a combinação dos caracteres
“//*” (duas barras inclinadas para a direita seguido de um asterisco). Todos os
caracteres que estiverem à direita de “//*”, na mesma linha, serão considerados
como comentário.
Observar que a primeira linha representa a régua com a escala posicional para que
se visualize as posições nas linhas, e sempre será esta a sua função nesta obra.
Neste exemplo, a linha começa com //*, por esse motivo toda a linha é um
comentário.
....|....1....|....2....|....3....|....4....|....5....|....6....|.
//RELAT004 DD DSN=AD.RELAT004,
// DISP=(NEW,CATLG,DELETE),
// DCB=(LRECL=133,RECFM=FB),
// SPACE=(TRK,(10,10),RLSE),
// UNIT=SYSWRK
Reflexão
“Só é livre o homem que sabe dar ordens a si mesmo.”
Pitágoras
SPOOL de entrada
À medida que o JOB é submetido, ele é validado quanto à sua sintaxe. Se a sintaxe
estiver correta, então, o JOB é enfileirado na SPOOL de entrada e fica no aguardo da
sua seleção para ser executado. Se houver erro na sua sintaxe, o JOB não será
enfileirado.
Todo JOB deve ter uma classe, pois é a partir da sua classificação que é chamado a
ser executado.
SPOOL de saída
Durante a execução é possível que um JOB gere mensagens, relatório ou dados de
saída. Uma vez os dados, mensagens ou relatórios inseridos na SPOOL de saída, eles
poderão ser vistas ou impressas.
Reflexão
“Todo o homem que encontro é superior a mim em alguma coisa. E, neste particular,
eu aprendo com dele.”
Emerson
JCL
Execução de JOB
Para um JOB ser executado é necessário que esteja enfileirado num arquivo especial
chamado: SPOOL de entrada. A escolha do JOB a ser executado pode depender de
várias considerações, isto é, da configuração de cada instalação. Uma das regras
para a prioridade na seleção é a classe do JOB. Todo JOB deve ter uma classe,
porque é a partir da sua classificação que ele é chamado a ser executado.
Início do JOB: o JOB sempre inicia com o cartão JOB. Cartão JOB é o identificador de
um JOB, podemos dizer que é o nome, cabeçalho. Sem ele um JOB não executa.
Passos do JOB: um JOB pode ter um ou mais passos (STEP). Cada passo é um
procedimento, isto é, executa um programa de aplicação ou um utilitário. Por
exemplo, gera um relatório ou copia um arquivo.
Fim do JOB: para terminar um JOB é sempre bom colocar o comando “//” (duas
barras) para indicar o término do JOB, isto é, pára de executar o JOB, não executa
nada após.
Reflexão
“Nós estamos nos afogando em informações, mas sedentos de conhecimento.”
John Naisbitt
Observar que entre o fim do STEP01 (passo 1) e o início do STEP02 (passo 2) existe
uma linha de comentário, mas no final do JOB1002A existe uma linha com o
comando “//” para indicar o término do JOB.
Reflexão
“Não falarei mal de nenhum homem e falarei tudo de bom que souber de cada
pessoa.”
Benjamim Franklin
JCL
Saída de JOB
As mensagens surgidas a partir da execução de um JOB podem ser originadas pelo
JCL, programa ou pelo utilitário sendo executado. Para qualquer situação, as
mensagens são direcionadas para uma área chamada SPOOL de saída. Uma área de
SPOOL de saída pode ter várias subáreas. Cada subárea é gerada por parâmetros
específicos. Existem os seguintes parâmetros:
JESJCL = recebe o JOB expandido gerado pelo JES2.
JESMSGLG = recebe o resultado da pré-compilação gerada pelo JES2.
JESYSMSG = recebe a estatística da pré-compilação gerada pelo JES2.
SYSIN = recebe os dados que vão servir de entrada para a execução do
programa ou utilitário.
SYSOUT = recebe as mensagens geradas pelo JCL referente à execução do
programa ou utilitário.
SYSPRINT = recebe as mensagens geradas pelo programa ou utilitário.
SYSUDUMP = recebe as mensagens pelo JCL referente ao DUMP.
A saída de um JOB é diferente dos arquivos de entrada ou de saída utilizados no
STEP. No caso, as informações geradas pela execução do JOB ou pelo STEP podem
ser direcionadas para visualização eletrônica ou serem diretamente impressas numa
impressora. Este direcionamento se dá na classificação do parâmetro SYSOUT, que
será abordado mais adiante.
Reflexão
“Feliz o Homem que acha sabedoria, e o Homem que adquire conhecimento; porque
melhor é o lucro que ele dá do que o da prata, e melhor a sua renda do que o ouro
fino. Mais preciosa é do que pérolas, e tudo o que podes desejar não é comparável a
ela.”
Salomão. Sl 3: 13-14
Que valores o RETURN-CODE pode ter para indicar fim de execução normal fora o
zero?
Isso depende do que está sendo executado.
JCL