Vous êtes sur la page 1sur 26

Manual Prtico

14/07/2016

Data:

JCL
1
2

Introduo............................................................................................................2
Especificao dos Elementos...............................................................................2
2.1
Carto JOB..................................................................................................2
2.2
Carto JOBLIB, JOBCAT, STEPLIB, STEPCAT, JCLLIB e SYSPROC...3
2.3
Carto EXEC...............................................................................................4
2.4
Carto DD....................................................................................................5
3
Utilitrio SORT....................................................................................................8
3.1
Comandos....................................................................................................8
3.2
JCL...............................................................................................................8
4
Utilitrio IDCAMS............................................................................................10
5
PARM DO JCL..................................................................................................12
6
Entrada de dados(Input-Stream) no JCL- SYSIN...........................................12
7
A utilizao da intruo IF/THEN/ELSE/ENDIF no jcl:.................................14
7.1
COMPARAO:......................................................................................14
7.2
LOGICOS:.................................................................................................14
7.3
Operadores:................................................................................................15
8
Efectuar Submit de um JOB a partir de outro...................................................16
9
Pool de Discos Versus Disco(VOL=SER=XXXX,UNIT=3380/3390).............16
10
Definio de um membro dentro do JCL(INCLUDE)..................................18
11
Ordem dos comandos no JCL........................................................................18
12
JCL para executar o search de strings..........................................................19
13
Calculo do BlocoSize.....................................................................................20
13.1 Clculo do blocksize de um ficheiro :.......................................................20
13.2 Clculo do n de pistas e cilindros desse ficheiros :..................................20
14
Copiar um ficheiro para outro(IEBGENER \ ICEGENER).........................21
14.1 Jcl...............................................................................................................21
14.2 Instrues de Controlo...............................................................................21
14.2.1 GENERATE.......................................................................................21
14.2.2 EXITS................................................................................................21
14.2.3 LABELS............................................................................................21
14.2.4 MEMBER..........................................................................................21
14.3 EXEMPLOS..............................................................................................22
15
Update Strings em Bibliotecas Utilizando o File-Aid Compware..............24
16
SET Utilizao no JCL...............................................................................24
16.1 MEMBRO: MMMAA...............................................................................24
16.2 JCL que UTILIZA o MMMAA.................................................................24

Especificao de JCL

Pag. 1 / 26
Pgina: 1

Manual Prtico
Data:
14/07/2016
1
Introduo
atravs dos JOBs que se executam os programas e utilitrios BATCH. Eles
podem ser executados manualmente (atravs do comando SUB) ou
automaticamente (atravs de um sistema de disparo de JOBs).
Os JOBs so compostos por STEPs, ou seja, etapas que so necessarias para que
uma rotina se complete.
Um JOB composto pelos seguintes tipos de carto:
2

Especificao dos Elementos

2.1 Carto JOB


O carto JOB indica ao sistema o incio de uma unidade de trabalho. atravs dele
que o sistema operacional faz o controle de segurana.
Formato:
//servio JOB comentrio,MSGCLASS=X,NOTIFY=userid,
// CLASS=A,MSGLEVEL=(1,1),REGION=2M,TYPRUN=HOLD
Onde:
servio
- o nome com o qual o JOB reconhecido, podendo ter at 8 bytes.
Comentrio - uma pequena descrio do job
Obs: Quando qualquer tipo de carto se estenda por mais de uma linha,
termina a linha anterior com o carcter , (vrgula) e usa-se o carto de
continuao. Este carto comea com // e seguido do restante da codificao,
devendo iniciar entre as colunas 2 e 16, inclusive.
Parmetros:
MSGCLASS=classe
produzidas pelo JOB.

Permite designar uma classe de sada para as mensagens

NOTIFY=userid
Indica ao sistema que avise o utilizador (userid) quando
o JOB terminar.
Se userid = &SYSUID, avisado o utilizador TSO que submeteu o JOB.
CLASS=classe

Permite designar uma classe para execuo do JOB.

MSGLEVEL=(m,n)
Estabelece o nvel de detalhe das informaes sobre o
JOB que o sistema listar.
Se
m=0
=> S lista carto JOB,
m=1
=> Lista JCL e procedimentos
m=2
=> Lista apenas JCL de entrada
Se
n=0
=> No saem mensagens de alocao
Especificao de JCL

Pag. 2 / 26
Pgina: 2

Manual Prtico
14/07/2016

Data:
n=1

=> Saem todas as mensagens

REGION=memsize
Estabelece a dimenso mxima (512K, 2M, 4M, 8M,
etc) da memria virtual que o JOB poder utilizar.
TYPRUN=HOLD/SCAN Pede um tratamento especial ao JES.
HOLD => Espera uma indicao do operador (comando RELEASE) para
fazer executar o JOB:
SCAN => Pede uma anlise sintxica do JCL, sem execuo do JOB.
2.2

Carto JOBLIB, JOBCAT, STEPLIB, STEPCAT, JCLLIB e


SYSPROC
Basicamente na JOBLIB e STEPLIB, esto indicadas as bibliotecas onde se
encontram os loads dos programs, modulos ou rotinas que so refernciadas no
JCL.
Quanto ao JCLLIB est indicada a biblioteca onde se encontram as PROCs de JCL.
Exemplo JOBLIB versus STEPLIB.
- Quando no for especificado JOBLIB ou STEPLIB a procura dos programas
feita na biblioteca de sistema (SYS1.LINKLIB).
//TSOIDX JOB ........
//JOBLIB DD DSN=---.---.---,DISP=SHR
//
DD DSN=---.---.---,DISP=SHR
//STEP01 EXEC PGM=PGM1,... //* Executa Load nas bibliotecas JOBLIB
//............
//*
//STEP02 EXEC PGM=PGM2,... //* Executa Load nas bibliotecas STEPLIB
//STEPLIB DD DSN=---.---.---,DISP=SHR
//............
//*
//STEP03 EXEC PGM=PGM3,... //* Executa Load nas bibliotecas JOBLIB
//............

Exemplo JCLLIB.
//TSOIDX JOB ........
//LIBS
JCLLIB ORDER=(---.---.---,---.---.---,.....)
//*
//STEP01 EXEC PROC=START,... //* Executa proc definida na(s)
//............
//* biblioteca(s) da JCLLIB
OU
//............
//LIBS
JCLLIB ORDER=(---.---.---,---.---.---,.....)
//*
//STEP01 EXEC START,... //* Executa proc definida na(s)
//............
//* biblioteca(s) da JCLLIB

Exemplo JOBCAT.

- Os catlogos VSAM so determinados pelos JOBCAT e STEPCAT..

Especificao de JCL

Pag. 3 / 26
Pgina: 3

Manual Prtico
14/07/2016
//JOBCAT
//

Data:

DD DSN=---.---.---,DISP=SHR
DD DSN=---.---.---,DISP=SHR

//............
//*
//STEP02 EXEC PGM=PGM2,...
//STEPCAT DD DSN=---.---.---,DISP=SHR
//............
//*

Exemplo SYSPROC.

- Utilizado para definir as bibliotecas das CLIST.


//............
//*
//STEP2
EXEC PGM=IKJEFT01,REGION=4096K,DYNAMNBR=10,COND=(0,LT)
//SYSPROC DD DSN=ISP.SISPEXEC,DISP=SHR
//
DD DSN=CPAC.USR.CMDPROC,DISP=SHR
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//ISPPROF DD DSN=FIC.ISPF.ISPPROF,DISP=SHR
//ISPPLIB DD DSN=ISP.SISPPENU,DISP=SHR
//ISPMLIB DD DSN=ISP.SISPMENU,DISP=SHR
//ISPSLIB DD DSN=ISP.SISPSLIB,DISP=SHR
//
DD DSN=ISP.SISPSENU,DISP=SHR
//ISPTLIB DD DSN=ISP.SISPTENU,DISP=SHR
//ISPTABL DD DSN=FIC.ISPF.ISPPROF,DISP=SHR
//SYSTSIN DD *
ISPSTART CMD(%COBMAP1 PMEEY14 YK0023 ADEV YK) BDISPMAX(100000)
/*

2.3 Carto EXEC


O carto EXEC usado para executar programas e utilitrios, e para chamar
procedimentos catalogados. O formato deste carto depende de cada intalao, ele
pode ser compretamente diferente de um ambiente para outro, portanto abaixo
estar a definio generica e alguns exemplos.
Formato:

//stepname EXEC tipo=nome,MEM=member,PARM=parmetro,COND=(0,LT,STEP01)

Onde:
stepname
- o nome com o qual o STEP reconhecido, podendo ter at 8
bytes.
tipo
- Identifica o que ser executado:
PROC - Procedimento catalogado
PGM - Programa ou utilitrio
nome - Identifica o procedimento/programa/utilitrio a ser executado.
Parmetros:
MEM=member

Especifica o nome do programa a ser executado numa PROC.

Especificao de JCL

Pag. 4 / 26
Pgina: 4

Manual Prtico
14/07/2016

Data:

PARM=parmetro Permite passar uma informao a um programa que tenha


previsto essa possibilidade
COND=(valor,operador,stepname) Estabelece as condies de execuo do
STEP. Caso a condio satisfeita o STEP no executado.
valor
=> 0,,4095
operador
=> GT, LT, EQ, NE, GE, LE
stepname
=>nome do STEP a ser validado. Caso omitido
considerado o STEP anterior

COND=EVEN O MVS executa o step mesmo que o step anterior no mesmo


job abend.
COND=ONLY Diz para o MVS executar este step s se um step anterior
no mesmo JOB abend.

2.4 Carto DD
O carto DD usado a seguir ao carto EXEC para descrever um ficheiro que vai
ser usado, e para fazer a ligao entre os ficheiros lgicos (referenciados nos
programas) e os ficheiros fsico.
Formato:
//DDname DD DSN=ficheiro,DISP=(sit_inicial,fim_normal,fim_anormal),
// DCB=(RECFM=tipo_reg,LRECL=num_bytes_reg,BLKSIZE=num_bytes_bloco),
// SPACES=(unidade,(tam_inicial,tam_adicional),RLSE),
//
UNIT=perifrico,VOL=SER=id_perifrico
ou
//DDname DD DUMMY
ou
//DDname DD *
ou
//DDname DD SYSOUT=(classe,xxxxx,xxxxx),OUTPUT=classe

Definio de um ficheiro vazio em JCL:


//FICHEIRO DD DUMMY,DSN=END.OF.FILE,DISP=SHR
Definio de um ficheiro temporrio em JCL:
//FICHEIRO DD DSN=&&DESATRIB,
//
DISP=(NEW,PASS),
//
UNIT=(SYSDA,10),SPACE=(TRK,(900,500),RLSE),
//
DCB=*.SORTIN
Onde:
DDname
- o nome lgico do ficheiro. Est especificado na
clusula ASSIGN num programa COBOL
DUMMY
- um parmetro especial do carto DD e significa inexistncia
do fiheiro
*
- um parmetro especial do carto DD e significa que o ficheiro
contem as informaes existentes aps o cartao DD at prximo carto // ou /*.
Parmetros:
Especificao de JCL

Pag. 5 / 26
Pgina: 5

Manual Prtico
14/07/2016

Data:

DSN=ficheiro
Especifica o nome fsico do ficheiro. Este nome pode ter vrias
formas.
ficheiro=> NomeDataSet - at 5 qualificadores de 8 posies cada, separados por
.(ponto).
ficheiro=> NomeFichParticionado(NomeMembro) - at 5 qualificadores de 8
posies cada, separados por .(ponto), seguido, entre parenteses do nome do
membro.
ficheiro=> &&NomeFichTemp - O sinal && significa que o ficheiro s existe
durante a execuo do JOB.
DISP=(sit_inicial,fim_normal,fim_anormal)
Especifica as aes a executar sobre o ficheiro em trs momentos: Quando
o JOB se inicia, quando o STEP termina normalmente, e quando o STEP termina
anormal.
Sit_inicial:

NEW - Cria o ficheiro


OLD
- Abre ficheiro j existente, sem compartilhar o
acesso com outros JOBs. No caso de ficheiro de sada o contedo anterior
apagado ficando somente o contedo adicionado.
SHR
- Abre ficheiro j existente, compartilha o
acesso com outros JOBs. No caso de ficheiro de sada mantm o contedo anterior
ao contedo adicionado.
MOD - Abre ficheiro j existente, compartilha o
acesso com outros JOBs. No caso de ficheiro de sada mantm o contedo anterior
ao contedo adicionado.
Caso omitido assume =NEW
fim_normal:
o ao final do JOB.

KEEP - Mantm o ficheiro


CATLG - Cataloga o ficheiro
PASS - Passa o ficheiro para outros STEPs e eliminaDELETE
- Elimina o ficheiro
UNCATLG - Descataloga o ficheiro
Caso omitido assume= NEW se sit_inicial=NEW ou

KEEP p/ outros
fim_anormal

DELETE
- Elimina o ficheiro
KEEP - Mantm o ficheiro
CATLG - Cataloga o ficheiro
UNCATLG - Descataloga o ficheiro
Caso omitido assume= Caso fim_normal PASS,
fim_anormal=fim_normal,
caso contrrio proceder como na omisso de fim_normal.
DCB=(RECFM=tipo_reg,LRECL=num_bytes_reg,BLKSIZE=num_bytes_bloco)
Especificao de JCL

Pag. 6 / 26
Pgina: 6

Manual Prtico
14/07/2016
Define a caracterstica fsica do ficheiro.
tipo_reg
FB
- Registo de tamanho fixo
VB
- Registo de tamanho varivel
UB
- Registo de tamanho indefinido
num_bytes_bloco = n * num_bytes_reg

Data:

SPACES=(unidade,(tam_inicial,tam_adicional),RLSE)
Estabelece o tamanho mximo (tam_inicial + 15 * tam_adicional) de
espao em disco a ser alocado para o ficheiro.
unidade
CYL
- Medio em cilindros
TRK
- Medio em trilhas
num_bytes_bloco => tam_inicial e tam_adicional medidos em blocos.
tam_inicial o nmero de unidades a alocar inicialmente
para o ficheiro
tam_adicional
o nmero de unidades a alocar
secundriamente para o ficheiro
RLSE

uma indicao para libertar o espao que sobrar

UNIT=perifrico
Especifica o tipo de perifrico onde ser gravado o ficheiro.
Perifrico
O seu contedo varia de acordo com a instalao do
sistema operacional. E devem ser identificados junto a uma pessoa da empresa.
Alguns exemplos:
3390
- Identifica uma unidade de disco srie 3390
SYSDA - O sistema disponibiliza um disco de trabalho
temporrio.
PRDSEQ- O sistema disponibiliza um disco da produo
permanente.
PRDTEMP- O sistema disponibiliza um disco da
produo temporrio.
TAPE - O sistema disponibiliza uma unidade de banda
magntica
RCART - O sistema disponibiliza uma unidade de
cartridige.
VOL=SER=id_perifrico
Identifica fsicamente o perifrico. O seu contedo varia de acordo com a
instalao do sistema operacional. E devem ser identificados junto a uma pessoa da
empresa. Alguns exemplos:
MVS207
MVS437

Especificao de JCL

Pag. 7 / 26
Pgina: 7

Manual Prtico
14/07/2016
3
Utilitrio SORT
3.1

Data:

Comandos

INCLUDE
COND=(57,8,CH,EQ,C'20000624',OR,57,8,CH,EQ,C'20000625')
INCLUDE COND=(9,3,CH,EQ,C'291',AND,116,2,CH,EQ,C'TK')
INCLUDE
COND=(1,5,BI,EQ,X'039100376F',AND,31,5,BI,EQ,X'019990726
F',
AND,40,5,BI,EQ,X'019990727F')
INCLUDE
COND=(3,6,CH,GE,C'981201',AND,3,6,CH,LE,C'981231')
SORT FIELDS=(1,27,A,32,8,A),FORMAT=BI,EQUALS
SORT FIELDS=(8,8,CH,A)
RECORD TYPE=F
END
MERGE FIELDS=COPY
SORT FIELDS=(12,8,A),FORMAT=BI,EQUALS
INCLUDE COND=(12,8,CH,NE,C'19991230')
SUM
FIELDS=(31,8),FORMAT=PD
SORT FIELDS=(1,3,A),FORMAT=BI,EQUALS
INCLUDE COND=(1,1,CH,EQ,C'0')
SUM
FIELDS=(23,8,31,8),FORMAT=PD

3.2 JCL
//SORT1
EXEC PGM=SORT,REGION=720K,RD=NC,COND=(0,LT)
//SORTIN
DD DSN=TSTM.TEMP.NC.BNC80P,DISP=OLD
//SORTOUT
DD
DSN=NBAN.TSTC.NC.BNC80P.LEIRIA.P7V,UNIT=SYSDA,
//
DISP=(,CATLG,DELETE),
Especificao de JCL

Pag. 8 / 26
Pgina: 8

Manual Prtico
Data:
14/07/2016
//
SPACE=(CYL,(300,100),RLSE),
//
DCB=*.SORTIN
//SYSIN
DD *
SORT FIELDS=(4,7,A,74,5,A),FORMAT=BI,EQUALS
INCLUDE COND=(4,5,BI,EQ,X'036215004F')
/*
//SORTWK01 DD UNIT=SYSDA,SPACE=(CYL,00005)
//SORTWK02 DD UNIT=SYSDA,SPACE=(CYL,00005)
//SORTWK03 DD UNIT=SYSDA,SPACE=(CYL,00005)
//SORTWK04 DD UNIT=SYSDA,SPACE=(CYL,00005)
//SYSOUT
DD SYSOUT=A,FREE=CLOSE

//*------------------------------------------------------------------//SORT01
EXEC PGM=SORT,REGION=720K,COND=(0,LT)
//SORTIN
DD DSN=POSI.TEMP.NC.FIC05NC2,DISP=OLD
//SORTOUT DD DSN=NBAN.TSTC.NC.TESTE.SORTSUM.P7V,
//
DISP=(,CATLG,DELETE),
//
SPACE=(CYL,(100,100),RLSE),
//
UNIT=SYSDA,
//
DCB=*.SORTIN
//SYSIN
DD *
SORT FIELDS=(1,3,A),FORMAT=BI,EQUALS
SUM
FIELDS=(23,8,31,8),FORMAT=PD
/*
//SORTWK01 DD UNIT=SYSDA,SPACE=(CYL,(5,5),RLSE)
//SORTWK02 DD UNIT=SYSDA,SPACE=(CYL,(5,5),RLSE)
//SORTWK03 DD UNIT=SYSDA,SPACE=(CYL,(5,5),RLSE)
//SORTWK04 DD UNIT=SYSDA,SPACE=(CYL,(5,5),RLSE)
//SYSOUT
DD SYSOUT=*
/*

Obs: Ficheiro de sada tem o mesmo formato do ficheiro de entrada, o


sort acumula o campo definido no SUM para cada repeticao da chave
definida no SORT FIELDS. So gravadas no ficheiros o numero de linha
que encontre com o SORT FIELDS diferente. Os campos que no esto
definidos no SUM correspondem ao 1 registo lido para o SORT FIELDS.

EXEMPLO:
BROWSE
NBAN.TSTC.NC.TESTE.SORTSUM.P7V
Line 00000001 Col
Command ===>
Scroll
----+----1----+----2----+----3----+----4----+----5---+----6----+----7
Especificao de JCL

Pag. 9 / 26
Pgina: 9

Manual Prtico
Data:
14/07/2016
0NC20010306
890............g...NCI2001030600001
FDCFFFFFFFF44444444FFF0000000000009800DCCFFFFFFFFFFFFF44
4444444444444
05320010306000000008900000000C0002070C539200103060000100
0000000000000
-------------------------------------------------------------------2NC2001030620010307890...e.q....b...NCI2001030600001
FDCFFFFFFFFFFFFFFFFFFF0018298000183180DCCFFFFFFFFFFFFF44
4444444444444
25320010306200103078900095680C0092610C539200103060000100
0000000000000
-------------------------------------------------------4

Utilitrio IDCAMS

O utilitrio IDCAMS muito util para trabalhar com ficheiros, analise os exemplos
seguintes.
JCL
//TSOIDX JOB ........
//IDCAMS
EXEC PGM=IDCAMS,REGION=512K
//SYSPRINT DD SYSOUT=*
//SYSOUT
DD SYSOUT=*
//SYSIN
DD *
==> {Nas Procs //SYSIN DD DDNAME=SYSIN
<Parametros para Idcams>
//DELETE.SYSIN DD *}
/*

Exemplo 1

//SYSIN
DD *
DELETE <-----.-----.-----> PRG CL
/*

/* DELETE DE FICHEIRO */

Exemplo 2

//.............
//INPUT1
DD DSN=-----.-----.-----,DISP=SHR
//.............
//SYSIN
DD *
VERIFY FILE(INPUT1)
/*

Exemplo 3

//.............
//SYSIN
DD *
REPRO INDATASET(-----.-----.-----)
OUTDATASET(-----.-----.-----)
REPLACE
/*

Exemplo 4

//.............
//SYSIN
DD *
ALTER -----.-----.----NEWNAME(-----.-----.-----)
/*

/* RENAME DE FICHEIRO */

Exemplo 5

Especificao de JCL

Pag. 10 / 26
Pgina: 10

Manual Prtico
14/07/2016
//.............
//SYSIN
DD *
ALTER -----.-----.----SHR(3 3)
/*

Data:

SHAREOPTIONS(region system) (Abbreviation=SHR) - specifies the crossregion and cross-system sharing options for a VSAM data set.
'region' and 'system' are both numbers in the range 1 thru 4.
'region' values and their meanings are:
1 - all users read, only 1 can read & write to data
set concurrently
2 - all users read and 1 user writes concurrently
3 - all users read and write concurrently
4 - all users read and write concurrently, user
program must use ENQ/DEQ
'system' values and their meanings are:
1 & 2 - reserved
3 - all users read and write concurrently
4 - all users read and write concurrently, user
program must use ENQ/DEQ

Exemplo 6

//.............
//SYSIN
DD *
DEFINE CLUSTER
(NAME (-----.-----.-----)
RECORDS(6000)
VOLUME(XXXXX)
CONTROLINTERVALSIZE(4096)
NUMBERED
RECORDSIZE(4089 4089)
RECOVERY
UNIQUE
SHAREOPTIONS(3 3))
DATA (NAME (-----.-----.-----)
INDEX
/*

Exemplo 7 - Print do ficheiro em Hexa, RC = 12 se o ficheiro no est no catlogo.


//.............
//SYSIN
DD *
PRINT
INDATASET(YKADEV.SEQ.ALOI.AT.SACO.COIV10) COUNT(1)
/*

Exemplo 8 - Print do ficheiro em Hexa, RC = 12 se o ficheiro no est no catlogo.


//.............
//SYSIN
DD *
PRINT INDATASET(YKADEV.KSDS.EMIGRANT) COUNT(25) CHARACTER
/*

Exemplo 9 -.

//.............
//SYSIN
DD *

Especificao de JCL

Pag. 11 / 26
Pgina: 11

Manual Prtico
14/07/2016

Data:

LISTCAT ENTRIES(CPWR.CPPD.FARDX.V2R0M2.RELATE)
IF LASTCC > 0 THEN DO
SET MAXCC = 0
DEFINE CLUSTER (NAME(CPWR.CPPD.FARDX.V2R0M2.RELATE) +
TRACKS(200 20) +
VOL(COSSY2)
+
KEYS(74 0)
+
RECSZ(403 4765) +
CISZ(4096)
+
SHR(3 3)
+
UNIQUE)
+
INDEX (NAME(CPWR.CPPD.FARDX.V2R0M2.RELATE.INDEX)) +
DATA (NAME(CPWR.CPPD.FARDX.V2R0M2.RELATE.DATA))
END
ELSE DO
SET MAXCC = 4
END

/*

Exemplo 10 Definio de um GDG.

//.............
//SYSIN
DD *
DEFINE GENERATIONDATAGROUP
(NAME(XXXTST.GDG.YYYY)
NOEMPTY
SCRATCH
LIMIT(20))
/*

PARM DO JCL
Definio no JCL.
//::::::::::::::::::::::::::::::::::
//STEP01 EXEC PGM=<PROGRAMA>,PARM=00003
Definio no COBOL.
LINKAGE SECTION.
01 PARMINFO.
03 PARM-LTH
PIC S9(4) COMP.
* Informao nr.bytes passados, neste exemplo fica c/
valor 5
03 PARM-DATA
PIC X(5).
* Informao passada ao programa, neste caso fica com
00003.
::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::
DATA DIVISION USING PARMINFO.

Especificao de JCL

Pag. 12 / 26
Pgina: 12

Manual Prtico
14/07/2016
6
Entrada de dados(Input-Stream) no JCL- SYSIN.

Data:

A entrada de dados Input-Stream no JCL faz-se utilizando.


Sintaxe
//SYSIN DD *
ou
//SYSIN DD DATA ,DLM=xx
Exemplos 1
//TSOIDX JOB ........
//............
//SYSIN DD *
..
(DADOS)
..
/*

Exemplos 2
//TSOIDX JOB ........
//............
//SYSIN DD DATA
..
(DADOS)
..
/*

Exemplos 3
Neste exemplo os caracteres que indicam o final da entrada
dos dados so os que esto definidos no parametro DLM=??.
Isto permite que sejam aceites como entrada de dados a
sintaxe do proprio JCL (Exemplo 4).
//TSOIDX JOB ........
//............
//SYSIN DD *,DLM=XX
..
(DADOS)
..
XX
//*

Exemplos 4
//TSOIDX JOB Y2K JCL,CLASS=A,NOTIFY=TSOID
//CONTROL1 EXEC PGM=IEBGENER,COND=EVEN
//SYSUT1 DD *,DLM=XX
//TSOIDY JOB ANO 2000,CLASS=A,NOTIFY=TSOID
DADOS
//CONTROL1 EXEC PGM=IEBGENER,COND=(8,LT)
//SYSUT1
DD DSN=TSOID.CNTL(JCL),DISP=SHR

Especificao de JCL

<-- ENTRADA DE

Pag. 13 / 26
Pgina: 13

Manual Prtico
14/07/2016

Data:

//SYSUT2
DD
SYSOUT=(,INTRDR),DCB=(RECFM=FB,LRECL=80,BLKSIZE=23200)
//SYSPRINT DD SYSOUT=*
//SYSIN DD DUMMY
//*
<-- FINAL DA ENTRADA
DE DADOS
XX
//*
//SYSUT2 DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSIN DD DUMMY
/*

Exemplos 5
//STEPA
EXEC PGM=PROGRAM1
//SYSIN
DD
DATA,DLM=MY
data record 1
data record 2
...
data record n
MY
end of data

A utilizao da intruo IF/THEN/ELSE/ENDIF no jcl:

//nome IF ( condio ) THEN comentario


// ... Aco(es) quando a condio for verdadeira

one or more JCL statements to execute if expression is TRUE

//nome ELSE comentario


// ... Aco(es) caso contrrio

one or more JCL statements to execute if expression is FALSE

//nome ENDIF comentario


Exemplos:

1) //TESTA IF (RC = 8 | RC = 10 | RC
2) //TESTA IF (RC > 8 )
3) //TESTA IF (RC <= 8 )
4) //TESTA IF (RC = 8 | RC > 10 )
5) //TESTA IF (RC = 8 & RC <= 10 )
//............
//STEP01
EXEC .....
//............
//TESTARC IF (STEP01.RC < 8) THEN
//STEP02
EXEC .....
//............
//SENAO
ELSE
//STEP03
EXEC .....
//............
//
ENDIF
//NEXTSTEP EXEC .....
//............

= 12 | RC = 14) THEN
THEN
THEN
THEN
THEN

Especificao de JCL

Pag. 14 / 26
Pgina: 14

Manual Prtico
14/07/2016
7.1 COMPARAO:
GT
LT
NG
NL
EQ
LE
GE
NE

7.2

ou
ou
ou
ou
ou
ou
ou
ou

Data:

>
<
>
<
=
<=
>=
=

Maior que
Menor que
No Maior que
No Menor que
Igual a
Menor ou Igual a
Maior ou Igual a
No Igual a

&
|

-E
- Ou
- Negao

LOGICOS:

AND
OR
NOT
Exemplo:

ou
ou
ou

// IF (ABEND | RC > 8) THEN


//SUPERC EXEC PGM=SUPERC,TIME=1
//SYSPRINT DD SYSOUT=*
//OLD
DD DSN=TEST.MACLIB,DISP=SHR
//NEW
DD DSN=TEST.PHASE.MACLIB,DISP=SHR
// ELSE
// ENDIF
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//
IF (ABEND
OR RC < 999
OR
//
ABENDCC=S001 OR ABENDCC=S013 OR ABENDCC=SB37) THEN
//CONTROL1 EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSUT1
DD DSN=YKADEV.PDS.ALOI.JCL.OLD(COID0061),DISP=SHR
//SYSUT2
DD SYSOUT=(A,INTRDR),DCB=(RECFM=F,BLKSIZE=80)
//SYSIN
DD DUMMY
//
ELSE
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

7.3

Operadores:

RC
highest return code from any prior job step
stepname.RC
- return code from the named job step
stepname.procstepname.RC
- return code from the named proc step invoked by the named job step
ABEND=TRUE or ABEND
- any abend condition in an prior job step
stepname.ABEND or stepname.ABEND=TRUE
- any abend condition in the named job step
stepname.procstepname.ABEND or stepname.procstepname.ABEND=TRUE
- any abend condition in the named proc step called by the job step
ABEND=FALSE or |ABEND

Especificao de JCL

Pag. 15 / 26
Pgina: 15

Manual Prtico
14/07/2016

Data:

- a lack of an abend condition in any prior job step


stepname.ABEND or stepname.ABEND=FALSE
- lack of an abend (i.e., normal completion) in the named job step
stepname.procstepname.ABEND or stepname.procstepname.ABEND=FALSE
- lack of an abend condition in the proc step called by the named job
step
ABENDCC=Sxxx or ABENDCC=Unnnn
- a specific system abend code in hexadecimal
as 'Sxxx' or a specific user abend code in decimal
as 'Unnnn'; the abend code checked or is that from the most
recent abend codethat occurred in the job
stepname.ABENDCC=Sxxx or stepname.ABENDCC=Unnnn
- a specific system abend code in hexadecimal as 'Sxxx' or a specific
user abend code in decimal as 'Unnnn'; the abend code checked for is
that from the job step identified by 'stepname'
stepname.procstepname.ABENDCC=Sxxx or
stepname.procstepname.ABENDCC=Unnnn
- a specific system abend code in hexadecimal as 'Sxxx' or a specific
user abend code in decimal as 'Unnnn'; the abend code checked for is
that from the proc step identified by 'procstepname' invoked by the
job step named 'stepname'
stepname.RUN
- tests whether the job step identified by
stepname.procstepname.RUN
- tests whether the proc step identified by 'procstepname' invoked by
the job step identified by 'stepname' executed
stepname.RUN=FALSE or |stepname.RUN
- tests whether the job step identified by 'stepname' did not execute
pname.procstepname.RUN=FALSE or stepname.procstepname.RUN
- tests whether the proc step identified by 'procstepname' invoked by
the job step identified by 'stepname' did not execute
comments
- comments are optional and should follow the last subparameter on the
SET statement by at least 1 blank

8
Efectuar Submit de um JOB a partir de outro.
Pode ser feito o copy de um job para o INTERNAL READER, de modo a que este
seja executado, a partir de outro job que se encontra a correr:
//............
//CONTROL1 EXEC PGM=IEBGENER,COND=(...) //* Verificar a
COND=()
//SYSUT1
DD DSN=---.---(JCL),DISP=SHR //* Biblioteca e
membro JCL
//SYSUT2
DD
SYSOUT=(,INTRDR),DCB=(RECFM=FB,LRECL=80,BLKSIZE=23200)

Especificao de JCL

Pag. 16 / 26
Pgina: 16

Manual Prtico
14/07/2016

Data:

//SYSPRINT DD SYSOUT=*
//SYSIN DD DUMMY
//*
//............

9
Pool de Discos Versus Disco(VOL=SER=XXXX,UNIT=3380/3390)
No JCL frequente encontrar a referncia UNIT=?????, em que ????? o nome
atribuido a uma serie de discos(POOL), no sendo necessrio saber o nome
individual de cada um deles. Ao referir no JCL o nome da POOL est a apontar
para todos os discos que fazem parte desta, deste modo ser o sistema encarregado
de procurar, allocar, apagar ou alterar os ficheiros referidos no JCL nos discos da
POOL. Deste modo no necessito de identificar se o ficheiro est no disco A, B ou
C. Ver exemplo 1.
Por outro lados se pretender que seja criado um ficheiro num disco especfico
necessrio identificar o seu nome e tipo, exemplo 2.
Exemplos 1
Catalogar o ficheiro TSOID.FICH1 na POOL chamada SYSDA.
//TSOIDX JOB ........
//COPIA
EXEC PGM=IEFBR14
//FICH1
DD DSN=TSOID.FICH1,DISP=(,CATLG,DELETE),
//
SPACE=(TRK,(10,10),RLSE),UNIT=SYSDA
/*

Exemplos 2
Catalogar o ficheiro TSOID.FICH1 no ficheiro MVS205. Neste exemplo implica
que necessrio conhecer o nome do disco e tipo de disco, se por alguma razo o
disco estiver offline o jcl j no executado e d erro, na pool o ficheiro
catalogado no disco que est mais disponvel, espao versus tempo de acesso, pelo
que sempre que possvel aconcelho a utilizao mostrada no exemplo 1.
//TSOIDX JOB ........
//COPIA
EXEC PGM=IEFBR14
//FICH1
DD DSN=TSOID.FICH1,DISP=(,CATLG,DELETE),
//
SPACE=(TRK,(10,10),RLSE),VOL=SER=MVS205,UNIT=3390
/*

*** The UNIT Parameter **


Syntax: UNIT=({device-number | device-type | group-name},
{unit-count | P},DEFER)
or
UNIT=AFF=ddname

Subparameter Definition
device-number = (UNIT=3390)
Especificao de JCL

Pag. 17 / 26
Pgina: 17

Manual Prtico
14/07/2016
device-type:
3330
3330-1
3350
3375
3380
3400-6
3400-9

Data:

3330 Model 1
3330 Model 11
3350 DASD
3375 DASD
3380 DASD
3420 Tape Drive (Reel Type)
3480 Tape Cartridge

group-name:
TAPE, SYSDA, or SYSALLDA
unit-count
specifies the number of devices for the data set, from 1 (the default) through 59.
You should use this subparameter for DASD files being created when VOL= is not
specified, so that multiple units will be searched if more DASD space is needed.
Use of this technique can help eliminate B37, D37, & E37 abends.
P
asks the system to allocate the same number of devices as requested by the volume
count or SER subparameters of the VOLUME parameter, whichever is higher - the
effect is that all volumes for the data set are mounted at the same time
DEFER
asks the system to assign device(s) to the data set but not to mount the volume(s)
until the data set is opened - if the data set is not opened, no mount occurs - do not
code DEFER on a SYSCKEOV DD statement
AFF=ddname
requests that the system allocate data sets residing on different, removable volumes
to the same device - the ddname given is an earlier ddname in the same job step;
unit affinity allows one tape drive to be used for multiple volumes from several
concatenated tape data sets, for example:
//DD1

DD

UNIT=(3400-6,,DEFER)

//$$MYFILE DD

UNIT=(3330-1,2)

//TEMP
//

UNIT=TAPE,VOL=SER=TAPE01
UNIT=AFF=TEMP,VOL=SER=TAPE09

10

DD
DD

Definio de um membro dentro do JCL(INCLUDE).

Definio de um membro dentro de um JCL com a instruo INCLUDE.


Exemplos 1
Especificao de JCL

Pag. 18 / 26
Pgina: 18

Manual Prtico
14/07/2016

Data:

//TSOIDX JOB ........


//IDLIB
JCLLIB ORDER=(----.---.---)
//INCLUDE INCLUDE MEMBER=OUTMSG
//...........
/*

11

Ordem dos comandos no JCL

Os comandos devem ser colocados pela seguinte, ordem:


1. Comando JOB. Primeiro comando de controlo e indica o
inicio do JOB.
2. Comando JOBLIB.
3. Comando JOBCAT ou SYSCHK.
4. Procedimentos do Fluxo de entrada(Procs definidas no
JCL).
5. Primeiro comando EXEC. Indica o programa ou
procedimento a ser executado.
6. Comando STEPCAT, STEPLIB ou DD para o STEP.
7. Comando EXEC e DD Correspondentes.
8. Comando Nulo (//). Indica o fim do Job.
COMANDOS

/*
//*
PROC
PEND
CNTL
ENDCNTL
OUTPUT

Indica o fim de dados introduzidos por JCL


Comentrios da coluna 4 at a coluna 80
Inicia uma PROC catalogado ou de fluxo de entrada e indica
os valores por default
Indica o fim de uma PROC
Indica o inicio de comandos de controle p/fluxo de entrada
Indica o fim de comandos de controle p/fluxo de entrada
Usado no JES2 e JES3 para especificar o processamento de
ficheiros de saida

//jobname JOB (codigo-conta,info.contabeis),nome,


//
parametros-do-job
jobname - at 8 caracteres.
parametros-do-job
CLASS - Classe do JOB(A-Z/0-9 existe um por default)
GROUP - Users compartilham ficheiros protegidos pelo RACF.
MSGCLASS - Classe de saida do escalonamento dos JOBS.
MSGLEVEL - Especifica se os comandos de JCL devem ou no ser
listados(Todos).
Primeiro Digito
0 - Imprime s comando JOB
Especificao de JCL

Pag. 19 / 26
Pgina: 19

Manual Prtico
14/07/2016
1 - Imprime todo o JCL
2 - Imprime s JCL do fluxo de entrada

Data:

Segundo Digito
0 - Imprime s alocaes com ABEND
1 - Imprime todas as alocaes
Ex. MSGLEVEL=(1,0)
NOTIFY - TSO user a ser informado quando a execuo do JOB for concluda.
PASSWORD - Password reconhecida pelo RACF.
PRTY
- Especifica a prioridade do JOB na fila de entrada(0-13, onde 0
menor)
RESTART- Indica o STEP onde recomea o job.
TYPRUN- Retem o JOB na fila de entrada(para verificar a sintaxe)
HOLD - Mantm o job na fila aps verificao da sintaxe.
JCLHOLD - Mantm o job na fila antes verificar a sintaxe.
SCAN - Verifica o JCL sem o executar.
COPY - Imprime listagem do JCL apenas.
USER
- User reconhecido pelo RACF.
12

JCL para executar o search de strings.

//YK0002E JOB ,'Y2K


P-04/S-04',MSGCLASS=A,NOTIFY=&SYSUID,
//
TIME=1440
//*
//SEARCH EXEC PGM=ISRSUPC,
*
//
PARM=(SRCHCMP,
//
'ANYC')
//NEWDD DD DSN=YKADEV.PDS.ALSR.FNTCOB,DISP=SHR
//
DD DSN=YKADEV.PDS.ALSR.FNTCOB.CONV,DISP=SHR
//
DD DSN=YKADEV.PDS.ALSR.FNTCOB.V0,DISP=SHR
//
DD DSN=YKADEV.PDS.ALCB.FNTCOB,DISP=SHR
//*::::::::::::::::::::::: --> Colocar mais bibliotecas se necessrio
//OUTDD DD SYSOUT=*
//SYSIN DD *
SRCHFOR '_TBASICUE'
SRCHFOR '_TBASICOS'
::::::::::::::::::::
--> Colocar mais STRINGS se necessrio
/*

13

Calculo do BlocoSize.

Actualmente j no necessrio calcular o bloco size de ficheiros porque o sistema


se encarrega de efectua-los, no entanto aqui fica o cclulo.
BLOCKSIZE/PISTAS E CILINDROS DE FICHEIROS
Modelos dos Discos
Especificao de JCL

Pag. 20 / 26
Pgina: 20

Manual Prtico
14/07/2016

Data:

Capacidade da Pista
(Bytes)
Nde Pistas por
Cilindro
Tot.Cilindros por
Disco

3390-1
3390-2
3390-3
56664

3380
3380-E
3380-K
47476

3375
35616

3350
19069

3340
8368

3330
13030

15

15

12

30

12

19

1113

885

959

555

696

404

2226
1770
3339
2655
13.1 Clculo do blocksize de um ficheiro :
Dependendo do Modelo do Disco, temos:
Capacidade da Pista / 2 = X
X / TAMANHO DO REGISTO = Y}INTEIRO
Y * TAMANHO DO REGISTO = BLOCKSIZE
13.2 Clculo do n de pistas e cilindros desse ficheiros :
Dependendo do Modelo do Disco, temos:
N DE REGISTOS * TAMANHO REGISTO = X
X / (Capacidade da Pista / 2) = Y } N DE MEIAS
PISTAS
Y * 2 = Z } N TOTAL DE PISTAS
Z / Nde Pistas por Cilindro = N DE CILINDROS
14

Copiar um ficheiro para outro(IEBGENER \ ICEGENER).

um utilitrio de copia.
14.1 Jcl
//JS10
EXEC
//SYSPRINT DD
//SYSUT1
DD
//SYSUT2
DD
//SYSIN
DD
Instrues de
/*

PGM=IEBGENER,REGION=1024K
SYSOUT=*
Mensagens
DSN=...,DISP=...
Ficheiro Sequencial de Input.
DSN=...,DISP=...
Ficheiro Sequencial de Output.
*
Instrues de Controlo
Controlo

14.2 Instrues de Controlo


So utilizadas as seguintes instrues de controlo: GENERATE, EXITS, LABELS,
MEMBER.
14.2.1 GENERATE
{label}

GENERATE MAXNAME=n
{,MAXFLDS=n}
{,MAXGPS=n}

Especificao de JCL

Pag. 21 / 26
Pgina: 21

Manual Prtico
14/07/2016

Data:

{,MAXLITS=n}
{,DBCS={YES NO}}

Os parmetros MAXNAME, MAXFLDS, MAXGPS, e MAXLITS determina o


nmero mximo membros, campos, IDENTS, e caracteres literais e usa-se sempre
DBCS=YES quando o ficheiro de input no double-byte character.
{label} RECORD {{IDENTIDENTG}=(length,'name',input-location)}
{,FIELD=({length}
{,input-location 'literal'}
{,conversion} ->(CG,CV,GC,GV,HE,PZ,VC,VG,ZP)
{output-location}),{FIELD=...}
{,LABELS=n}

14.2.2 EXITS
{label}

EXITS {INHDR=routinename}
{,OUTHDR=routinename}
{,INTLR=routinename}
{,OUTTLR=routinename}
{,KEY=routinename}
{,DATA=routinename}
{,IOERROR=routinename}
{,TOTAL=routinename,size}

14.2.3 LABELS
{label}
LABELS {DATA=YESNOALLONLYINPUT}
14.2.4 MEMBER
{label}
MEMBER NAME=(name{,alias}...)
14.3 EXEMPLOS
Exemplos 1

JCL para copiar o ficheiro TSOID.FICH1 para o TSOID.FICH2.


//TSOIDX JOB ........
//COPIA
EXEC PGM=ICEGENER
//SYSPRINT DD SYSOUT=*
//SYSOUT
DD SYSOUT=*
//SYSUT1
DD DSN=TSOID.FICH1,DISP=SHR
//*
//SYSUT2
DD DSN=TSOID.FICH2,DISP=(,CATLG,DELETE),
//
UNIT=DESENVOL,SPACE=(TRK,(10,10),RLSE),
//
DCB=(RECFM=FB,LRECL=140,DSORG=PS,BLKSIZE=0)
//SYSIN
DD DUMMY
/*

Nota:
No caso em que o ficheiro definido no SYSUT1 for varivel (RECFB=V;VB) e o
ficheiro no SYSUT2 e fixo(F;FB) identifique no carto do SYSIN o tamanho do
registo a copiar:
Especificao de JCL

Pag. 22 / 26
Pgina: 22

Manual Prtico
14/07/2016

Data:

//......
//SYSIN DD *
GENERATE MAXFLDS=1
RECORD FIELD=(140,1,,1)
/*
^
^^ ^
|
|| |
Tamanho Campo--+
|| |
Inicio do Input-----+| |
Converso -----------+ |
Inicio de Output ------+

Exemplos 2

JCL para converter uma FB CLIST numa VB CLIST, movendo o


campo nmero de sequncia.
//JS10
EXEC
//SYSPRINT DD
//SYSUT1
DD
//
//SYSUT2
DD
//
//SYSIN
DD
GENERATE
RECORD
MEMBER
/*

PGM=IEBGENER
SYSOUT=*
DSN=MY.FB.CLIST.LIB,
DISP=SHR
DSN=MY.VB.CLIST.LIB,
DISP=SHR
*
MAXFLDS=2,MAXNAME=1
FIELD=(8,73,,1),FIELD=(72,1,,9)
NAME=myclist

Exemplos 3

JCL para criar uma biblioteca(PDS) a partir de um ficheiro sequencial.


//JS10
EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSUT1
DD DSN=MY.SEQ.FILE.LIB,
//
DISP=SHR
//SYSUT2
DD DSN=MY.PDS.FILE.LIB,
//
DISP=SHR
//SYSIN
DD *
GEN1 GENERATE MAXNAME=4,MAXGPS=3
MEM1 MEMBER NAME=JOBCARD
GRP1 RECORD
IDENT=(8,'//* NJOB',1),
MEM2 MEMBER NAME=JESCARDS
GRP2 RECORD
IDENT=(8,'//* NJES',1),
MEM3 MEMBER NAME=JCLCARDS
GRP3 RECORD
IDENT=(7,'* TOP *',1),
MEM4 MEMBER NAME=RPTDATA
GRP4 RECORD
IDENT=(8,'*BOTTOM*',1)
/*

Exemplos 4

JCL para copiar uma mapa de disco para o SPOOL.


//JS10
EXEC
//SYSPRINT DD
//SYSUT1
DD
//

PGM=IEBGENER
SYSOUT=*
DSN=MY.PDS.FILE(AREPORT),
DISP=SHR

Especificao de JCL

Pag. 23 / 26
Pgina: 23

Manual Prtico
14/07/2016
//SYSUT2
//
//SYSIN

Data:

DD SYSOUT=*,
DCB=RECFM=FBA
DD DUMMY

Exemplos 5

//......
//* ---------------------------------------------------------------//*
RUN UTILITY MODULE TO LOAD DATASET
//* ---------------------------------------------------------------//BOOKSHF EXEC PGM=IEBGENER
//SYSUT1
DD *
BKSHELF=XTRN
BKSMDSN=----.----.-----.------.BKSHELF
BKSTITLE=XXXX-ZZZ/YYY RELEASE 2.0 MANUALS
BKSDATETIME=07/27/98 17:11:25
BKIDATETIME=07/27/98 17:10:57
BKSINDEX=XTRN
BKSIMDSN=----.----.-----.------.BKINDEX
BKSLEXIS=EIJENGL
BKFLAG=I
/*
//SYSUT2
DD DSN=----.----.-----.------.BKSHELF,
//
DISP=(NEW,CATLG,DELETE),
//
UNIT=SYSDA,SPACE=(8000,(2,1)),
//
DCB=(RECFM=VB,LRECL=255,BLKSIZE=8000)
//SYSPRINT DD SYSOUT=*
//SYSIN
DD DUMMY
//* ----------------------------------------------------------------

Exemplos 6

//EMDCOPY JOB ,'XX P-03/S-05',MSGCLASS=X,CLASS=A


// JCLLIB
ORDER=(PROD.SIMBOL)
//DIARIO
INCLUDE MEMBER=MMMDD
//X1
EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=X
//SYSUT1 DD DSN=EMAPRD.SEQ.FEM111,DISP=SHR
//SYSUT2 DD DSN=EMAPRD.AUDITOR.FICHCONT.&MMMDD,
//
DISP=(,CATLG),
//
SPACE=(CYL,(150,100),RLSE),
//
UNIT=SYSDA
//SYSIN
DD *
GENERATE MAXFLDS=10,MAXLITS=1
RECORD
FIELD=(21,1,,1),FIELD=(6,22,PZ,22),
X
FIELD=(2,27,PZ,31),FIELD=(5,28,PZ,32),
X
FIELD=(20,32,,39),FIELD=(9,52,PZ,59),
X
FIELD=(40,60,,74)
/*
| | | |
| | | POSICAO DE OUTPUT
| | CONVERSAO (CG,CV,GC,GV,HE,PZ,VC,VG,ZP)
| POSICAO INPUT
COMPRIMENTO DO CAMPO

Especificao de JCL

Pag. 24 / 26
Pgina: 24

Manual Prtico
Data:
14/07/2016
15 Update Strings em Bibliotecas Utilizando o File-Aid Compware.
//E813075A JOB 'UPDATE STRINGS',MSGCLASS=X,NOTIFY=&SYSUID,CLASS=A
//*********
USER=E813075
//* YOU ARE VIEWING JCL THAT FILE-AID 8.0 HAS GENERATED TO
//* SEARCH/UPDATE DATASETS GLOBALLY.
//*
//* YOU CAN CHANGE THIS JCL IF DESIRED AND USE THE SUBMIT PRIMARY
//* COMMAND TO SUBMIT THE JOB. THE CREATE OR REPLACE PRIMARY COMMAND
//* CAN BE USED TO KEEP THIS JOBSTREAM FOR FUTURE USE.
//*
//* USE THE END COMMAND TO EXIT WITHOUT SUBMITTING THE JOB.
//*
//SPTEP01 EXEC PGM=FILEAID,REGION=4M
//STEPLIB DD DSN=CPWR.FAMVS.V8R0M2.LOAD,DISP=SHR
//SYSPRINT DD SYSOUT=*
//DD01
DD DSN=NDIS.PRIVLIB.CNTL,DISP=SHR Biblioteca Input
//DD01O
DD DSN=NDIS.PRIVLIB.CNTL,DISP=SHR Biblioteca Output
//SYSIN
DD *
$$DD01 COPYALL MEMBERS=PMBD101,FORM=JCL,
Membro, (*) para todos
EDIT=(1,0,C'ECADCRT',
String a Procurar
C'TIPO_CARTAO')
String a Substituir
/*
Nota:

Ateno quando a biblioteca de input igual de output, no fica com os membros


originais, so esmagados pelas substituies.
16

SET Utilizao no JCL.

16.1 MEMBRO: MMMAA


BROWSE
XXXXX.XXXXXXXX(MMMAA) - 01.08
Command ===>
********************************* Top o
//CHANGE
SET MMMAA='ABR94'
******************************** Bottom

16.2 JCL que UTILIZA o MMMAA


//IRB220#B
JOB 0,IRB220#B,
//
CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1)
//
JCLLIB ORDER=(PROD.PROC.CNTL,MAST.SIMBOL) <= Biblioteca on
esta o membro MMMMAA
//CHANGE
INCLUDE MEMBER=MMMAA *SUBSTITUI O SIMBOLICO &&MMMAA*

//::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

//IRD600C
DD DSN=DIAA.QDIVR.AIRD6022.M060.&MMMAA,LABEL=(1,SL),
//
DISP=(,CATLG,DELETE),UNIT=ROBOT,
//
SPACE=(TRK,(0000090,0000110),RLSE), ==> IRB700
//
DCB=(RECFM=FB,LRECL=00080,BLKSIZE=0)
//*IRD600A
DD SYSOUT=(,),OUTPUT=(*.DD1),SEGMENT=5000
//::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

Especificao de JCL

Pag. 25 / 26
Pgina: 25

Manual Prtico
14/07/2016

Data:

Especificao de JCL

Pag. 26 / 26
Pgina: 26

Vous aimerez peut-être aussi