Sie sind auf Seite 1von 33

Anoir SEGHIOUER

Job Control Language

JCL

Page 1 de 33

Anoir SEGHIOUER

SOMMAIRE

Job Control Language ................................................................................................................ 1


Introduction. ........................................................................................................................... 3
1. GENERALITES................................................................................................................. 3
1.1. Description. ................................................................................................................. 3
1.2. Codage......................................................................................................................... 3
2. SYNTAXE GENERALE. .................................................................................................. 4
2.1. Paramtres d'un ordre JCL : ........................................................................................ 5
2.2. Carte suite.................................................................................................................... 5
2.3. Carte Commentaire. .................................................................................................... 6
3. ORDRE JOB. ..................................................................................................................... 6
3.1. Format gnral : .......................................................................................................... 6
3.2. Description des paramtres. ........................................................................................ 6
4. L'ordre EXEC..................................................................................................................... 8
4.1. Format. ........................................................................................................................ 8
4.2. Description des paramtres. ........................................................................................ 8
5. ORDRE DD ou carte DD. ................................................................................................ 12
5.1. Gnralit. ................................................................................................................. 12
5.2. Fichier Carte. ............................................................................................................. 13
5.3. Dfinition des fichiers magntique non VSAM. ....................................................... 13
5.3.1 Format. .................................................................................................................... 13
5.3.2. Paramtre................................................................................................................ 13
5.4. Dfinition des fichiers VSAM................................................................................... 20
5.5. Dfinir des fichiers SYSAOUT................................................................................. 21
6. DDNAMES SYSTEME. .................................................................................................. 23
6.1. Recherche de programmes pour excution. .............................................................. 23
6.2. Dfinition de catalogues............................................................................................ 24
6.3. Edition des messages programmes............................................................................ 25
6.4. Options de DEBUGGING COBOL. ......................................................................... 25
6.5. Edition des DUMPS .................................................................................................. 25
7. CONCATENATION DE FICHIERS............................................................................... 25
8. Carte OUTPUT ................................................................................................................ 26
9. LES PROCEDURES........................................................................................................ 27
9.1. Contenu dune procdure. ......................................................................................... 27
9.2. Description schmatique dune procdure. ............................................................... 27
9.3. Types de procdures.................................................................................................. 27
9.4. Cration dune procdure. ......................................................................................... 28
9.5. Utilisation dune procdure. ...................................................................................... 29
9.6. Modification des cartes EXEC.................................................................................. 29
9.7. Modification des cartes DD....................................................................................... 30
9.8. Dfinition de variables symboliques ......................................................................... 32

Page 2 de 33

Anoir SEGHIOUER

Introduction.
Le systme d'exploitation pilote la machine en optimisant l'utilisation des ressources. Pour
cela il doit connatre et avoir pour chaque travail excuter tous les paramtres qui les
dfinissent. Ici en vas prsenter un des langage qui permet cela pour le grands systme, c'est
les membres JCL (Job Control Langage) qui lui dfini ces paramtres.
Il permet la communication entre l'utilisateur et le systme MVS par un ensemble de
commande prsenter dans l'anciens temps par des cartes perforer. Cela tant actuellement
Obsolte, il sufi d'crire un membre PDS dans une bibliothque et le soumettre. Dans la suite
je dcrirais les ordres de communication du JCL.

1. GENERALITES.
1.1. Description.
Un JCL ce compose d'un certain nombre d'ordres qui on un but de :
1. Soumettre au systme un travail, c'est--dire un ensemble de programmes excuter.
L'ordre utilis pour cela est : JOB
2. Donne le nom du programme excuter, ou la procdure appeler, EXEC
3. Dfinir l'ensemble des donnes associes aux programmes du traitement demander a
tre excuter, DD.
L'ensemble des ordres de contrle sont soumis une syntaxe qu'il faut respecter sous peine de
voir un refus d'excution et envoie d'un message JOB NOT RUN JCL ERROR.
L'excution d'un JCL est squentielle, les ordres de contrle doivent tre prcises dans un
ordre dtermin l'intrieur du JOB, et cela tape par tape. Ces tapes seront respectueux
des condition coder par l'utilisateur.
Les JOB sont indpendant dans leurs soumissions.

1.2. Codage.
Un JCL ce compose principalement d'ordre dcrit prcdemment:
En premire ligne un ordre JOB une seul par JCL(membre PDS).
Une succession d'ordre EXEC. Il doit tre suivie par des ordres DD pour spcifier l'ensemble
des composants (fichier entrer, fichier de sortie, Sysin, compte rendu d'exec, fichier de display
)
La prsence d'une carte fin n'est pas obligatoire.
Dans le tableau qui suit un rcapitulatif des ordres est prsent.
Nom de la carte
COMMAND
CNTL/ENDCNTL

Paramtres dfinis
Indique la commande MVS ou JES2 effectuer lors de
l'excution du JCL (depuis MVS/ESA SP4)
Marque dbut/la fin du ou des paramtres de contrle pour un
sous-systme d'impression.

Page 3 de 33

Anoir SEGHIOUER

Nom logique d'un fichier, nom physique, utilisateur(cration,


lecture, modification, suppression..), type de support
(bande,disque), identification du support, taille du fichier,
caractristiques intrinsques (organisation, blocage, taille des
enregistrement), labels.
Nom de l'tape du JOB, nom du programme excuter,
EXEC
paramtres passer au programme, taille mmoire allouer,
conditions d'excution, dure d'excution de l'tape.
IF/THEN/ELSE/ENDIF Permet de Conditionner l'excution des tapes (depuis MVS/ESA
SP4).
Spcifie le nom du membre de bibliothque inclure dans le JCL.
INCLUDE
Aucune possibilit de paramtrage (depuis MVS/ESA SP4)
Prcise la bibliothque qui contient la procdure ou le groupe
JCLLIB
d'include que l'on vaut excuter (depuis MVS/ESA SP4)
Nom du JOB, du Programme, ou programmeur, classe
JOB
d'excution, classe de sortie, niveau des messages d'erreur, dure
d'excution, conditions de reprise.
Options d'impression que le JES utilisera pour les fichier en
OUTPUT
SYSAOUT.
Dfinit une procdure, permet de donner des valeurs par dfaut
PROC
aux variables.
Dtermine la fin d'une procdure.
PEND
Donne des valeurs aux variables qui paramtrent le JCL (depuis
SET
MVS/ESA SP4)
Transmission d'enregistrements d'un systme sous JES3 vers un
XMIT
autre systme.
Commentaire
//*
FIN de JCL
//
Fin de donnes
/*
DD

2. SYNTAXE GENERALE.
Le fichier JCL a un format sur 80 caractres. Seul les colonnes de 1 71 sont utilis.
Chaque carte (ligne du JCL) commence par // en colonne 1 et 2.
----+----1----+----2----+----3----+----4----+----5----+----6----+----7-//USSERA1
JOB (),'AGK9AINT ALIM-COMPTA',CLASS=9,MSGCLASS=T,REGION=0M,
//
MSGLEVEL=(1,1),NOTIFY=&SYSUID
.. .
//STEP1
EXEC PGM1
//FICHIER
1

Zone 1 :

Zone 2 :

DD DSN=DR0.FCT.BEM.PARMS(PGK9AP0),DISP=SHR,
2

.. . Comment
4

C'est la zone qui identifie le nom de la carte attribu par le programme pour a
reconnaissance. Ce compose de 8 caractres alphanumrique commencent
obligatoirement par une lettre
Type d'ordre : JOB, EXEC, DD, PROC, PEND.

Page 4 de 33

Anoir SEGHIOUER

Zone 3 :
Zone 4 :

La liste des paramtres, spars par des virgules sans blanc sauf aprs le
dernier.
Cette zone est considre comme tant du commentaire.

Dans la carte de l'ordre JOB plusieurs paramtres sont prcis celons les environnements de
travail. Elle fini en position 70 par une virgule, et peut tre poursuivie dans une deuxime et
troisime ligne partir de la Cologne 9.

2.1. Paramtres d'un ordre JCL :


Deux types de paramtres, les positionnels et mots cls.
A. Positionnels : c'est la position de la valeur qui dtermine la valeur.
Exemple : supposons que le systme attend 3 paramtre, A, B et C; dans cette ordre. leur
attribue successivement est 693, ABCDRF, HEUR1
Plusieurs cas son possible :
Si l'ont veux valoriser que A et C :
393,,HEUR1
Si l'ont veux valoriser que A et B :
393,ABCDRF,,
Si l'ont veux valoriser que B et C
:
,ABCDRF,HEUR1,
Si l'ont veux valoriser A
:
693
Si l'ont veux valoriser C
:
,,HEUR1
Les paramtres positionnels sont toujours situs en tte d'une chane de paramtres, et doivent
tre cods dans un ordre prcis.
B. A mot Cl: chaque valeur de paramtre est prcde d'un mot cl dsignant le
paramtre suivi d'un signe =.
Exemple :
PGM = EXTRAC1
SPACE=(TRK,(15,5))

2.2. Carte suite.


Il est possible et frquent que la liste des paramtres ne tienne pas sur une seule carte, dans ce
cas on peut la prolonger sur les cartes suivantes. Deux rgles doivent tre respectes.
Si sur une carte, la liste des paramtres n'est pas termine, le dernier paramtre doit tre suivi
d'une virgule.
Si une carte est la suite des paramtres de la prcdente, elle comporte // dans les positions 1
et 2, ni nom ni type pour cette carte le premier paramtre dois commencer entre les cols 4 16
comprises.
Exemple :
----+----1----+----2----+----3----+----4----+----5
//SORTIE
DD DSN=&SYSUID..PGM12.PLACE.P12,
//
DISP=(,CATLG,),
//
UNIT=3390,SPACE=(CYL,(50,50),RLSE),
//
DCB=(RECFM=FB,BLKSIZE=0,LRECL=800)

Page 5 de 33

Anoir SEGHIOUER

2.3. Carte Commentaire.


En code //* en position 1,2 et 3, ce qui suit col 4 71 est considr comme du commentaire.
Cette carte permet d'expliquer de justifier l'utilisation du JOB. Il est conseill d'ajouter des
commentaires quant c'est ncessaire pour comprendre l'ensemble des tats du JOB. Cela dans
le but de faciliter la maintenance et garder une trace explicative dans des JOB complexe.
Dans la suite nous allons introduire les paramtres en dtail pour chaque type d'ordre d'un
JCL.

3. ORDRE JOB.
3.1. Format gnral :
//nom JOB

infos account
,nom programmeur
,CLASS=classe dxecution
,MSGCLASS=classe de sortie
,MSGLEVEL=(a,b)
,NOTIFY=userid_TST
,TYPRUN=SCAN/HOLD
,RESTART=nomdtape
,TIME=(minutes,secondes)/1440
,ADDRSPC=VIRT/REAL
,REGION=nK
,PRTY=P
,USER=userid-RACF
,GROUP=groupe fichiers RACF
,PASSWORD=mot de pass RACF
,PERFORM=groupe performances SRM
,COND=((code, opration,

3.2. Description des paramtres.


nom : cest le nom donn au JOB. Il commence en colo3,par un caractre alphabtique, et
peut comporter de18 caractres dont 7alphanumrique.
Il est frquent que a soit forcement le USERID de lutilisateur qui excute le JOB.
Account :
paramtre positionnel. Il sagit dun paramtre de comptabilisation, permettant
par exemple de calculer le cot de dveloppement dun programme, dun projet, etc
Programmeur :
Paramtre positionnel. Le nom du programmeur. Max 20 caractres.
Mettre entre quottes si caractres spciaux.
CLASS : dtermine la classe dentre de JOB. Il existe 36 classes numrotes de A Z et de
0 9.Chaque classe est affecte un groupe de travail ou une catgorie de JOB en fonction de
critres spcifiques lexploitation. Le Job sera dans cette file d'attente.
MSGLEVEL : permet de prciser le niveau de compte rendu dexcution que lon veut
obtenir. Comporte deux sous paramtres positionnels.
MSGLEVEL=(JCL,MESSAGES)
JCL :
0 : Seule la carte JOB sera liste.
1 : Toutes les cartes JCL seront dites, Les procdures appeles seront
incluses dans le compte rendu.
2 : Toutes les cartes JCL seront dites, lexclusion des procdures

Page 6 de 33

Anoir SEGHIOUER

MESSAGES :

0
: Les messages de lallocator et du terminator ne sont pas dits.
Toutes fois si une tape se termine anormalement, les massages sont
dits.
1
: Tous les messages sont dits.
En gnral,il est conseill de demander le maximum de renseignement, mme si cela conduit
diter plusieurs feuilles de comptes-rendus. Cela est obtenu par les valeurs par dfaut(1,1) .
TIME= : Dtermine la dure maximum (en temps CPU, processeur) du JOB pour lensemble
des tapes. Comporte deux sous paramtres positionnels. TIME=(min,s).
min :dur en minute de 0 1440.
s : dure en seconde de 0 60.
Exemple :
TIME=(5,30) ou TIME=(,10) 10second ou TIME=2 min
Si le temps est dpasse, ltape en cours sera abandonne et produit un code retour
system :S322
PRTY= : dtermine la priorit affecte au JOB dans les classes dentres et de sortie. Les
valeurs possibles vont de 0 15, 15 tant la plus haut priorit. La valeur standard par dfaut
est 5. A noter quil nest pas souhaitable dutiliser systmatiquement des priorits leves, car
cela conduit inluctablement un engorgement du systme. De plus, il existe des routines
dveloppes par lquipe systme qui contrlent la validit de la priorit en fonction par
exemple du nom du Job ou du code affaire.
NOTYFY= : permet au systme davertir lutilisateur que le job est termin. Le paramtre est
le USERID (identifiant utilisateur) utilis pour se connecter TSO.
RESTART= : permet de dmarrer lexcution dun JOB une autre tape que la premire.
Cela est parfois utile lorsque lon excute plusieurs fois le job et que lon ne dsire pas
rexecuter les premires tapes. La valeur se code de la faon suivante :
*
: Dmarrage a la premire tape (quivalent labsence du paramtre).
STEPn : Nom de ltap o lon veut dmarrer lexcution (stepname).
STEPn.PROCSTEPm : En cas de dmarrage dans une procdure, STEPn indique ltape
dappel et PROCSTEPm le nom de ltape de la procdure.
Exemple :
RESTART=*
sexcute depuis le dbut
RESTART=EDIT
sexcute depuis ltape EDIT
RESTART=COMPIL.COB appel de sous JCL.
TYPRUN =SCAN : Permet de soumettre le JOB uniquement au contrle de l'interprteur,
sans allocation ni excution. Elle permet un contrle de syntaxe du JCL.
PASSWORD : Permet de donner un mot de passe donnant accs des fichiers protgs par
RACF. IL est coder avec le paramtre USER est ce constitue de 1 8 caractre
alphanumrique.
COND= : Permet de donner une ou plusieurs conditions d'arrt d'un JOB. Le code est un
nombre de 0 4095 que le systme compare avec les codes retours issus des diffrents STEP.
On pourra donner jusqu' 8 conditions relies entre elles par une liaison OU. Voir syntaxe de
la carte EXEC.
Exemple : COND=(8,LE)

Exemple de carte JOB :


1----+----1----+----2----+----3----+----4----+----5----+----6----+----7-//A00008T
JOB ,'TRI *>',MSGCLASS=T,CLASS=8,MSGLEVEL=T,
//
NOTIFY=&SYSUID,REGION=0M

2-

Page 7 de 33

Anoir SEGHIOUER

----+----1----+----2----+----3----+----4----+----5----+----6----+----7-//A00008UL JOB UNLOAD,'UNL TABTB',MSGCLASS=T,CLASS=0,NOTIFY=A00008,


//
REGION=4M

3----+----1----+----2----+----3----+----4----+----5----+----6----+----7-//A00008RE JOB (),'TRT PGMTRT2 ',CLASS=9,MSGCLASS=T,REGION=6M,


//
NOTIFY=&SYSUID

Tous les paramtres ne sont pas obligatoire, chaque socit a ces condition de contrle et
outil technique qui permet la gestion du travail de qualit. Il est recommander pour dfinir
cette carte de demande un exemple sur le site.

4. L'ordre EXEC.
Elle permet d'identifier le programme ou la procdure excuter.
Limite : un JOB ne peut tre constitu de plus de 255 tapes (soit 255 ordre exec).
C'est obligatoirement le premier ordre d'un STEP. Elle ce compose de paramtres positionnels
et des paramtres mots-cls. La zone nom de la carte est ncessaire pour faire un rfrence
arrire qu STEP, modifier les paramtres des cartes EXEC et DD dans les procdures
catalogues, effectuer des reprises en dbut d'tapes ou un check-point.
Pour l'ensemble de ces besoins, il est recommand de donnes au diffrent STEP d'un JOB
des noms diffrents.
Si le programme a excut n'est pas trouv le JOB envois un code retour systme
ABEND S806
Si la procdure n'est pas trouve elle envoie un message PROCEDURE NOT
FOUND.

4.1. Format.
//NOM

EXEC

PGM=nom.pgm
PROC=nom.pr
ou nom procedure

,PARM=valeur
,ADDRSPC=VIRT/REAL
,COND= ((cde,opr)
,(cde,opr,stp)
,(cde,opr,prc.stp),EVEN/ONLY)
,PERFORM=n
,REGION=nk
,TIME=1440/(min,s)

4.2. Description des paramtres.


NOM : c'est le nom donn l'tape par le programmeur. 1 8 caractres alphanumriques, le
premier tant obligatoirement une lettre.
PGM = : Ce paramtre est positionnel; Il est ncessaire pour demander l'excution du
programme. Il s'agit d'un programme compil antrieurement. Il ce compose de 8 caractre
alphanumrique. Le programme est contenu dans une bibliothque dclare systme
d'exploitation et le programme et au format LINK-EDIT.
PROC = : Ce paramtre est positionnel. Il est utilis pour appeler une procdure catalogue et
demander son excution.

Page 8 de 33

Anoir SEGHIOUER

Ce n'est pas un paramtre obligatoire. Il suffit, pour appeler une procdure, de fournir
simplement son nom.
ADDRSPC = : Il est demander le chargement du programme excuter soit en mmoire
relle, soit en mmoire virtuelle.
Ordre de priorit du paramtre : Le paramtre ADDRSPC, s'il est cod dans la carte JOB,
prime sur les paramtres cods dans une carte EXEC. Sil est cod dans une carte EXEC
d'appel de procdure prime sur celui cod dans les cartes EXEC de la procdure.
COND = Ce paramtre permet de donner une ou plusieurs conditions de non excution d'un
STEP.
Prend la forme suivante COND=(Valeur numrique, oprateur,Nom du step)
L'oprateur prend les valeurs suivantes :
GT
: plus grand que.
GE
: plus grand ou gal.
EQ
: gal.
NE
: non gal.
LT
: plus petit que.
LE
: Plus petit ou gal.
Fonctionnement :
Le test peut tre fait par rapport au rsultat de n'importe quelle tape prcdente(on ne
donne pas de nom d'tape) ou par rapport au rsultat d'une tape prcise (on donne le
nom de l'tape).
Si une des conditions est ralise, l'tape pour laquelle elle est codifie n'est pas
excute et on passe l'tape suivante.
EVEN et ONLY : sont particuliers dans le sens ou ils font intervenir la notion
d'ABEND. L'interprtation doit se faire de la faon suivante:
COND=EVEN : Excuter l'tape mme si n'importe quelle tape prcdente
s'est termine par un ABEND.
COND=ONLY : Excuter l'tape si et seulement si n'importe quelle tape
prcdente s'est termine par un ABEND.
Remarque : Si le paramtre COND est fourni dans la carte JOB et dans les cartes EXEC, le
systme ragit de la faon suivante :
Si la condition dfinie dans la carte JOB est ralise, il y a arrt du JOB.
Si non, le systme teste la condition dfinie dans la carte EXEC. En fonction du
rsultat, il initialise ou n'initialise pas l'tape.
Exemple 1 :
//I000001AS
//STEP1
//FICENT1
//FICSOR1

JOB
EXEC PGM=PGM1
DD
DISP=SHR
DD
DSN=FIC1

Rsultat lors de l'excution 


//STEP2
//FICENT2
//FICSOR2

Returne Code = 0

EXEC PGM=PGM2,COND(0,NE)
DD
DISP=SHR,DSN=FIC1
DD
DSN=FIC2

Rsultat lors de l'excution 

Returne Code = 8

Page 9 de 33

Anoir SEGHIOUER

//STEP3
//FICENT3
//FICSOR3

EXEC PGM=PGM3,COND(0,NE,STEP1)
DD
DISP=SHR,DSN=FIC1
DD
DSN=FIC3

Rsultat lors de l'excution 


//STEP4
//FICENT4
//FICSOR4

Returne Code = 0

EXEC PGM=PGM4,COND(0,NE,STEP2)
DD
DISP=SHR,DSN=FIC2
DD
DSN=FIC4

 Le programme PGM1 s'excute et se termine avec mission d'un code retour 0.


 Avant d'initialiser l'tape STEP2, l'initiator teste la condition dfinie dans la carte
EXEC de la faon suivante :

Est-ce que 0 est diffrent du code retour mis par l'une des tapes
prcdentes?

Le programme PGM1 ayant mis un code retour gal 0, la condition n'est


pas ralise et l'tape STEP2 peut s'excut.
 Le programme PGM2 s'excute et se termine avec mission d'un code retour gal 8.
 Avant d'initialiser l'tape STEP3, l'initiator teste la condition dfinie dans la carte
EXEC de la faon suivante :

Est-ce que 0 est diffrent du code retour mis par l'tape STP1?

Le programme PGM1 ayant mis un code retour gal 0, la condition n'est


pas ralise et l'tape STEP3 peut s'excuter.
 Le programme PGM3 s'excute et se termine avec mission d'un code retour 0.
 Avant d'initialiser l'tape STEP4, l'initiator teste la condition dfinie dans la carte
EXEC de la faon suivante:

Est-ce que 0 est diffrent du code retour mis par l'tape STEP2.

Le programme PGM2 ayant mis un code retour gal 8, la condition est


ralise est l'tape STEP4 ne peut tre excuter.
Exemple 2 :
//I000001AS
//STEP1
//FICENT1
//FICSOR1

JOB
EXEC PGM=PGM1
DD
DISP=SHR
DD
DSN=FIC1

Rsultat lors de l'excution 


//STEP2
//FICENT2
//FICSOR2

EXEC PGM=PGM2,COND=ONLY
DD
DISP=SHR,DSN=FIC1
DD
DSN=FIC2

Rsultat lors de l'excution 


//STEP3
//FICENT3
//FICSOR3

ABEND

Returne Code = 8

EXEC PGM=PGM3,COND=(0,NE,STEP1)
DD
DISP=SHR,DSN=FIC1
DD
DSN=FIC3

Rsultat lors de l'excution 

Returne Code = 0

Page 10 de 33

Anoir SEGHIOUER

//STEP4
//FICENT4
//FICSOR4

EXEC PGM=PGM4,COND=((0,NE,STEP2),EVEN)
DD
DISP=SHR,DSN=FIC2
DD
DSN=FIC4

 Le programme PGM1 s'excute et se termine par ABEND.


 Avant l'initialiser l'tape STEP2, l'initiator teste la condition dfinie dans la carte
EXEC de la faon suivante :

Est-ce l'une des tapes prcdentes s'est termine par ABEND?

Le programme PGM1 est termin par un ABEND, la condition est ralise


STEP2 peut s'excuter.
 Le programme PGM2 s'excute et se termine avec mission d'un code retour gal 8.
 Pour l'initialisation de l'tape STEP3, l'initiator teste la condition dfinie dans la carte
EXEC de la faon suivante :

tant donn qu'il y a eu ABEND dans une tape prcdente et que EVEN ou
ONLY ce sont pas spcifis, l'tape STEP3 ne peut pas s'excuter.
 Avant d'initialiser l'tape STEP4, l'initiator teste la condition dfinie dans la carte
EXEC de la faon suivante :

Est-ce que l'tapes prcdentes se sont excuts s'est termine par un


ABEND? (OUI).

Est-ce que le test du code retour est satisfait. (OUI).

Dans ces conditions l'tape STEP4 ne peut pas s'excuter (voir tableaux
suivant).

Tableaux rcapitulatifs des cas possible avec les oprateurs :


DESCRIPTION
COND=(code,GT)
COND=(code,GE)
COND=(code,EQ)
COND=(code,LT)
COND=(code,LE)
COND=(code,NE)

Initialiseur tape
RC>=code
RC >code
RC code
RC =<code
RC <code
RC =code

Pas d'initialisation de l'tape


RC <code
RC =<code
RC =code
RC >code
RC>=code
RC code

Tableaux rcapitulatifs des cas possible pour EVEN et ONLY :


Spcification de
EVEN ou ONLY ?
EVEN
EVEN
EVEN
EVEN
ONLY
ONLY
ONLY
ONLY
NON
NON

ABEND tapes
prcdentes?
NON
NON
OUI
OUI
NON
NON
OUI
OUI
NON
NON

TESTS RC
satisfaits
NON
OUI
NON
OUI
NON
OUI
NON
OUI
NON
OUI

INIT tape
OUI
NON
OUI
NON
NON
NON
OUI
NON
OUI
NON

Page 11 de 33

Anoir SEGHIOUER

NON
NON

OUI
OUI

NON
OUI

NON
NON

PARM : Ce paramtre permet de passer divers paramtres un programme. Les paramtres


pouvant tre passs sont :
Paramtre utilisateur.
Paramtre compilateur et assembleurs.
Les paramtres LINK-EDIT.
En ce qui concerne les paramtres utilisateurs, le programmeur doit avoir prvue une zone de
rception dans son programme dans la LINKAGE SECTION.
Si la valeur du paramtre contient plusieurs expressions spares par une virgule, il faut la
mettre entre parenthses ou entre apostrophes, ces caractres n'tant pas transmis au
programme.
Si la valeur contient des caractres spciaux, elle doivent tre mise entre parenthse ou entre
apostrophes.
On peut transmettre jusqu' 100 caractres de paramtres utilisateurs et des paramtres
COBOL.
PERFORM : Ce paramtre permet d'affecter le STEP un groupe de performance
particulier.
Si le paramtre PERFORM est aussi cod dans la carte JOB, il primera sur ceux cods dans
les diffrentes cartes EXEC.
Par dfaut il le systme qui dfinie le groupe de performance en fonction des paramtre du
systme.

5. ORDRE DD ou carte DD.


5.1. Gnralit.
Elle permet de dfinir pour une tape les fichiers suivants :
Fichiers carte de donnes.
Fichiers magntiques non VSAM.
Fichiers VSAM si il est CR22s par IDCAMS.
Fichiers SYSOUTS
Elle assure la liaison entre le programme et le fichier physique.
Il faut une carte DD par fichier physique.
Un programme connat les fichiers au travers de leur caractristique logiques :
Organisation du fichier
Structure des enregistrements.
Par contre, il ignore leur caractristique physique :
Nature du support (disque, bande,etc)
Emplacement sur support
Nom physique du fichier sur le support.
Ces dtails son spcifis dans le JCL au niveau de la DD.
La liaison entre le fichier logique dfini dans le programme et le fichier physique dfini dans
la carte DD est faite par une Etiquette logique conserve dans le bloc de contrle et qui doit
obligatoirement figurer dans la zone nom de la carte DD.
L'tiquette est appele Nom externe ou DDNAME du fichier. Il ce compose de 8 caractres
maximum avec un caractre alphabtique dans le premier caractre.

Page 12 de 33

Anoir SEGHIOUER

5.2. Fichier Carte.


//DDNAME DD

DUMMY
*
DATA
,DLM=nn

Description des paramtres.


* : permet d'introduire des donnes cartes sans les caractres // en colonnes 1 et 2
DATA : permet d'introduire des donnes cartes comportant // en colonnes 1 et 2(mais pas /*).
La fin de fichier doit alors tre annonce par le dlimiteur standard /*.
DUMMY : Permet d'ignorer les ordres d'entres / sorties faits sur le fichier. Doit tre donn le
premier.
Exemple :
//FICMVT
DD
*
A1230
/*
Carte de mouvements
//SYSIN
DD
DATA
Procdure cataloguer
/*
//FICBLAS DD
DATA,DLM=ZZ
Donnes contenant /*
/*
ZZ

5.3. Dfinition des fichiers magntique non VSAM.


5.3.1 Format.
//DDNAME DD

DUMMY
,DSNAME= ou DSN=
,DISP=
,UNIT=
,VOL=
,SPACE=
,DCB=
,LABEL=

5.3.2. Paramtre
5.3.2.1. DUMMY : Ce paramtre est positionnel de la carte DD. Quand il est cod il doit tre
le premier. Il demande au systme d'ignorer tous les ordres d'entr/sortie faites sur ce fichier.
Il n'a pas de sous paramtres.

Page 13 de 33

Anoir SEGHIOUER

5.3.2.2. DSNAME =
c'est le nom physique du fichier. Pour un fichier en cration le systme stock ce nom dans les
labels du fichier. Pour un fichier en lecture utilise ce nom pour localiser le fichier dans le
volume.
DSNAME= {nom-fichier}
{nom-pds(membre)}
{nom-fichier(numrode gnration)}
{&&nom-fichier}
{&&nom-pds(membre)}
{*.DDNAME}
{*.nom-STEP.DDNAME}
{*.nom-step.nom-step-proc.DDNAME}
Nom-fichier : ici le nom est fourni qu'il soit sequentiel ou partitionn.
Nom-pds(membre) : membre de fichier partitionn. On fournit le nom du PDS suivi,
Entre parenthses, du nom du membre trait.
Nom-fichier (num de gnration) : nom d'un fichier GDG suivi, entre parenthse par
le numro de gnration dans le GDG.
&&nom-fichier : nom temporaire, squentiel ou partitionn. Le systme gnre dans
ce cas un nom sous la forme :
SYSaajjj.Thhmmss.RA000.nom-job.nom-fichier
Aajjj : date de cration en anne nombre de jour.
Hhmmss : heure de cration
Nom-job : Nom du job figurant dans la zone "nom" de la carte JOB
Nom-fichier : nom donn au fichier derrire les caractres "&&"
Si on ommet le paramtre DSNAME, le systme gnre alors un nom
sous la forme :
SYSaajjj.Thhmmss.RA000.nom-job.Rnnnnnnn
Dans le quel 'nnnnnnn' reprsente le numro d'ordre de cration du
fichier dans le JOB.
&&nom-pds(membre) : nom d'un membre de fichier partitionn temporaire.
*,DDNAME : rfrence arrire un nom de fichier contenu dans une carte DD faisant
partie du mme STEP.
*.nom-step.DDNAME : rfrence arrire a un nom de fichier contenu dans une carte
DD faisant partie d'un STEP antrieur dans le mme JOB.
*.nom-step.nom-step-proc.DDNAME : rfrence arrire un nom de fichier contenu
dans une carte DD faisant partie d'une tape de procdure catalogue
appele par une tape antrieur du JOB.
Exemple :
1 dfinition d'une gnration GDG.
//DDX
DD
DSN=RESERV.GDG(0).
2- Dfinition de membre de PDS.
//DDX
DD
DSN=BIBLIO1.UTIL.FIC(PARAM)
3- Dfinition de fichier temporaire.
//DDX
DD
DSN=&&TEMP1
4- dfinition d'un fichier non temporaire.

Page 14 de 33

Anoir SEGHIOUER

//DDX

DD

DSN=BIBLIO.PGM1.FICSTOK,

5.3.2.3. DISP :
(disposition), il permet d'indiqu au systme l'tat du fichier traiter, ce qu'il faut faire du
fichier la fin de l'tape, si elle ce passe bien ou lors d'une fin anormale(c..d. fin provoqu
par le systme)
Les sous paramtre du DISP sont positionnels.
DISP= (NEW,DELETE,DELETE)
(OLD,KEEP,KEEP)
(SHR,PASS,CATLG)
(MOD,CATLG,UNCATLG)
,UNCATLG
-1- -2-3Sous parameter-1- : indiquera l'tat du fichier.
Sous paramtre -2- : indiquera ce qu'il faut faire du fichier en cas de fin normale de l'tape.
Sous paramtre -3- : ce qu'il faut faire du fichier en cas de fin anormale de l'tape.(ABEND).
ETAT DU FICHIER.
NEW : Le fichier est cr par l'tape en cours. Il est usage exclusif du JOB pendant toute la
dure du JOB.
OLD : il existait avant l'tape en cours. Il est usage exclusif du JOB pendant toute la dure
du JOB.
SHR : il existe avant l'tape en cours. Il est partageable entre tous les JOBs actifs.
MOD : il existe avant l'tape et est en cours de l'excution. Il est a l'usage exclusif a l'usage
du JOB. Il permet de ce positionn au dernier enregistrement du fichier pour crire des
nouveaux enregistrements. Si le systme ne trouve nulle part d'informations concernant le
volume qui contient le fichier, il considre celui-ci comme NEW.
DISPOSITION EN CAS DE FIN NORMALE.
DELETE : le fichier devra tre supprim. La suppression d'un fichier catalogu entrane celle
de son entre au catalogue condition que le systme ne trouve les informations d'unit et de
volume que dans le catalogue. DELETE et PASS sont les seules dispositions valides pour un
fichier temporaire (DSN omis ou DSN=&&TEMP).
KEEP : il est conserv sans le cataloguer. Pour un fichier bande le volume est dcharg.
CATLG : il est conserv et catalogu. Pour toute utilisation ultrieure, il suffit de fournir son
nom et sa disposition dans la carte DD.
UNCATLG : il doit tre catalogu mais non conserv.
PASS : Il passe une tape ultrieure du mme JOB. Il passe d'une tape une autre s'il y a
besoin.
Un volume bande n'est pas rembobin sauf si le programmeur en dcide autrement au
CLOSE du fichier. Pour le conserver il suffit de coder une disposition KEEP ou CATLG a sa
dernire utilisation.
Exemple :
//PASS
JOB
//ET1
EXEC PGM=PGM1
//DDNAME1 DD
DSN=FIC001,DISP=(NEW,PASS),UNIT=SYSDA
//ET2

EXEC PGM=PGM2

Page 15 de 33

Anoir SEGHIOUER

//ET3
EXEC PGM=PGM3
//DDNAME3 DD
DSN=FIC001,DISP=(OLD,PASS),UNIT=SYSDA
//ET4
EXEC PGM=PGM4
//DDNAME3 DD
DSN=FIC001,DISP=(OLD,CATLG),UNIT=SYSDA
DISPOSITION A PRENDRE EN CAS DE FIN ANORMALE.
A l'exception de PASS, toutes les dispositions prcdentes peuvent tre donnes pour une fin
anormale d'tape.
OPTIONS PRISES PAR DEFAUT.
1 er position :
NEW.
2eme position:
DELETE si le fichier est NEW.
KEEP, si le fichier existe dj (OLD ou SHR).
3eme position :
par dfaut en cas de fin anormale, le systme applique la disposition
Demande pour la fin normale.
Exemple :
1- DDNAME1
DD
DSN=FIC1,DISP=(NEW,CATLG,DELETE)
Fichier en cration, catalogage en fin normale,suppression en cas de fin anormal
2- DDNAME1
DD
DSN=FIC1,DISP=(OLD,DELETE,KEEP)
Fichier existent, suppression lors d'une fin normale, conservation lors d'une fin anormale
3- DDNAME1
DD
DSN=FIC1, pas de disposition
Fichier en cration, suppression en cas de fin normale ou anormale.
2- DDNAME1
DD
DSN=FIC1,DISP=(OLD,,DELETE)
Fichier existent, conservation en cas de fin normale, suppression en cas de fin anormale.
UNIT : Ce paramtre dfini l'unit physique contenant ou devant contenir le fichier.
Obligatoir lors de la cration d'un fichier
UNIT =
adresse-unit, nbre-units, DEFER,
AFF=DDNAME
Type-unit, P
Nom-groupe
Les trois sous paramtre sont positionnels.
Adresse-unit : elle permet de donn une adresse prcise pour l'allocation physique du
fichier, elle est a proscrire d'une manire gnrale
ndre-unit : indique au systme le nombre d'units rserver pour un fichier
multi volumes. Par dfaut le systme rserve une unit.
DEFFER
: permet un montage diffr du volume. Elle sera faite qu'au moment de
l'OPEN du fichier si OPEN il y a.
UNIT=AFF= : indique au systme le fichier dfini doit tre implant sur la mme
unit qu'un fichier dj dfini dans l'tape.
Type-unit : on donne ici un type d'unit du systme(3480,3350,3380,3420, etc..)
P(parallle) : prcise au systme au tous les volumes d'un fichier multi volume
doivent tre en ligne au moment du traitement. La routine d'allocation
de l'INITIATOR rservera autant d'units que ncessaire, le nombre de
volume souhait lui tant alors fourni dans le paramtre volume.
Nom-groupe : identifie le groupe d'unit pour l'implantation du fichier. Ils sont dfini
a la gnration du systme.
Exemple :

Page 16 de 33

Anoir SEGHIOUER

1- //DDNAME1

DD

DSN=I000001.FICHIER1,DISP=(NEW,CATLG),
UNIT=SYSDA,
Le fichier sera dans le groupe SYSDA, a n'importe quelle unit.
2- //DDNAME1
DD
DSN=I000001.FICHIER1,DISP=(NEW,KEEP),
UNIT=3380,
Le fichier sera dans n'importe quelle unit 3380.
3- //DDNAME1
DD
DSN=I000001.FICHIER1,DISP=(NEW,CATLG),
UNIT=(TAPE,P),
VOL=SER=(VOL001,VOL002)
Le fichier multi volume. Le volume VOL001 et VOL002 doivent tre monts en parallle
pour le traitement.
4- //DDNAME1
DD
DSN=I000001.FICHIER1,DISP=(NEW,CATLG),
UNIT=(TAPE,,DEFER),
Le fichier ne sera mont qu' l'OPEN du fichier.
VOLUME : permet de dfinir le volume qui contient ou qui contiendra le fichier. Il est
obligatoire pour crer un fichier sur un volume spcifique, reprendre un fichier non cataloger
ou non pass.
VOLume= PRIVATE, RETAIN, sqvol, nbvol,
SER=numvol
REF=*.ddname
REF=*.stp.ddname
REF=*.stp.stprc.ddname
REF=dsname
Les quatre sous paramtre sont positionnels.
Un volume peut faire l'objet d'une demande :
SPECIFIQUE : l'utilisateur impose un volume prcis qui contient le fichier.
Non SPECIFIQUE : L'emplacement du fichier est laiss au choix du systme qui
cherchera la place dans un volume public.
RETAIN : permet la conservation de l'unit supportant le volume utiliser.
Sqvol(squence volume) : pour un fichier multi volumes permet l'indication du
volume utiliser.
Nbvol(nombre de volume) : indique le nombre de volume traiter(fichier multi
volumes). Par dfaut, le systme assume le traitement de 5 volumes au
maximum. Au del, il faut coder le nombre (pour un max de 255) de volumes
ncessaires.
SER= (serial) : ce sous paramtre fait une demande spcifique de volume, un ou
plusieurs peuvent tre cod.
REF=dsname : le fichier sera sur le mme volume qu'un fichier existant ou catalogue.
REF=*.ddname : le fichier sera dans le mme volume qu'un fichier de l'tape.
REF=*.step1.ddname : le fichier sera dans le mme volume qu'un fichier du step1
REF=*.step.procstep.ddname : le fichier sera dans le mme volume que le fichier
dcrit dans le step de la procdure du JOB.
Exemple :
1//STEP1
EXEC PGM=PGM1
//FICSOR
DD
DSN=I000001.FICSOR,DISP=(NEW,KEEP),
//
UNIT=TAPE,VOL=(,RETAIN)
//STEP2
EXEC PGM=PGM2
//FICENTR DD
DSN=I000001.FICSOR,DISP=(OLD,CATLG),
//
UNIT=TAPE,VOL=REF=*.S1.FICSOR

Page 17 de 33

Anoir SEGHIOUER

23-

//DDENTR
//
//DDOUT
//
//

DD
DD

DSN=I000001.FIC1,DISP=SHR,UNIT=3380,
VOL=SER=VOL001
DSN=I0000001.fic2,DISP=(NEW,CTALG),
UNIT=TAPE,
VOL=(,,,6,SER=(BDE001,BDE002,BDE003,BDE004))

SPACE : indique au systme quelle espace disque sera rserver pour ce fichier en cration.
Deux type de dclaration : spcifier et non spcifier. Ces deux type correspond a des format
diffrente, l'ensemble de ces sous paramtre sont positionnels.
Demande non spcifique :
SPACE=(type-alloc,(allocp,allocs,dir),(RLSE,CONTIG,ROUND))
Type-alloc : indique l'unit d'allocation de l'spaces.
TRK : pistes
CYL : cylindres
nnn : longreur moyenne, en octets, du bloc unitaire. Le nombre
maximum tant donne dans le programme.
Allocp : donne l'allocation primaire. Le systme essais toujours de satisfaire
l'allocation primaires. Il doit y avoir suffisamment de place pour l'allocation
primaire sinon il y a arrt du traitement.
Allocs : donne la taille des allocations secondaires.
dir : pour les fichier partitionns. Donne le nombre de blocs de directory rserver en
dbut d'allocation primaire.
RLSE : libration de l'espace disque non utilis par le fichier au moment de sa
fermeture.
CONTIG : demande que l'allocation de l'espace soit faites de faon contigu.
ROUND : force l'alignement des allocations demandes en blocs d'une certaine taille
frontire du cylindre.
Demande spcifique :
Elle impose un emplacement spcifique pour le fichier. Elle en nombre de pistes et fournit
l'adresse relative de la premire piste du domaine dfini.
SPACE=(ABSTR,(taille,piste-dpart,(directory)))
Exemple :
//FICSOR
//

DD

DSN=A0001.FIC1,DISP=(NEW,CATLG),
UNIT=SYSDA,SPACE=(CYL,30,RLSE)

Allocation primaire de 30 cylindres, pas d'allocations secondaires, libration de la place non utilise au close.

//FICSOR
DD
DSN=A0001.FIC1,DISP=(NEW,CATLG),
//
UNIT=3380,VOL=SER=VOL001,SPACE=(TRK,(10,5))
Allocation de 10 piste primaires et 5 secondaires.
//FICSOR
DD
DSN=A0001.FIC1.PDS,DISP=(NEW,CATLG),
//
UNIT=3380,VOL=SER=VOL002,SPACE=(CYL,(5,,20))
Allocation d'un PDS, 5cylindre en primaire, pas d'allocation secondaire,et 20 blocs directory.
//FICSOR
DD
DSN=A0001.FIC1.PDS,DISP=(NEW,CATLG),
//
UNIT=3380,VOL=SER=VOL002,SPACE=(3120,(100,50))
Allocation primaire de 100 blocs de 3120 octets
Allocations secondaires de 50 blocs de 3120 octets.
DCB : il permet de fournir les caractristique physique d'un fichier non VSAM.

Page 18 de 33

Anoir SEGHIOUER

La forme la plus souvent represent est la suivante :


DCB =
(dsname,LRECL=,BLKSIZE=,RECFM=,DSORG=,DEN=)
*.ddname
*.step.ddname
RECFM= : indique le format des enregistrements :
F
 Fixe
 Fixe bliqu
FB
V
 Variable
VB
 Variable bloqu.
 indefini
U
Pour les fichiers d'impression, la lettre A peut suivre les diffrents codes pour
indiquer que le premier caractre est un caractre de contrle de saut.
LRECL= : donne la taille des enregistrements logiques :
Format F ou FB : longueur commune a tous les enregistrements.
Format V ou VB : longueur maximum des enregistrements incluant les
4 octets de contrle.
Format U : ce sous paramtre est inutile.
BLKSIZE= : permet de donn la taille des enregistrement physique (blocs). Il est
obligatoire pour un fichier en cration.
Taille max autorise :32760 octets.
Format F ou FB : doit etre un multiple de LRECL.
Format V ou VB : doit tre au minimum gal LRECL + 4
Format U : est libre dans les limite 16-32760.
DSORG = : donne l'organisation du fichier :
PS
 squentielle
DA
 accs direct
IS
 squentielle indxe (ISAM).
 partitionne.
PO
DEN= : donne la densit d'enregistrement dans les bandes magntiques.
2
 800 BPI
 1600 BPI
3
4
 6250 BPI
Dsname : permet de rfrence les caractristique physique du fichier catalogu.
*.ddname : fait rfrence aux caractristiques physique d'un fichier dfini
antrieurement dans le STEP.
*.STEPNAME.ddname : fait rfrence aux caractristiques physique d'un fichier
dfini antrieurement dans le STEP antrieur.
Exemple:
//DDNAME DD
DSN=A0001.Fic1,DISP=(NEW,CATLG),UNIT=SYSDA,
//
SPACE=(TRK,10),DCB=BLKSIZE=3120
//DDNAME DD
//

DSN=A0001.Fic1,DISP=(NEW,CATLG),UNIT=SYSDA,
SPACE=(TRK,10),DCB=(BLKSIZE=8000,DEN=3)

LABEL : dfinie essentiellement :


La position d'un fichier dans une bande.
Le type de labels utiliss pour un fichier bande.
L'existence d'une protection par mot de passe.
La date d'expiration du fichier.
LABEL=(rang,type,protection,protection, EXPDT=date)

Page 19 de 33

Anoir SEGHIOUER

RETPD=nnn
Rang : indique la position du fichier sur bande (dfaut=1).peut tre omis pour
reprendre un fichier catalogu ou pass ainsi qu'un GDG.
Type : indique le type de label traiter.
SL : Standard IBM (par dfaut)
SUL : Standard IBM et Utilisateur.
NSL : non standard
NL : pas de labels
BLP : pas de traitement de labels
Protection (plus utilis) : ce sous paramtre permet d'indiquer une protection par mot
de passe.
EXPDT= : donne une date de rtention un fichier sous format
Anne/Quantime(AAQQQ ou AAAA/QQQ)
RETPD= : donne uns priode de rtention du fichier sous forme de nombre de jours
pendant les quels il sera conserv.
Exemple :
//DDNAME1 DD
DSN=A00001.FICSOR,DISP=(NEW,CATLG),UNIT=TAPE,
//
DCB=BLKSIZE=800,LABEL=3,SL)
//DDNAME1 DD
//

DSN=A00001.FICSOR,DISP=(NEW,CATLG),UNIT=SYSDA,
DCB=BLKSIZE=3120,SPACE=(CYL,10),LABEL=EXPDT=90260

//DDNAME1 DD
//

DSN=A00001.FICSOR,DISP=(NEW,CATLG),UNIT=SYSDA,
DCB=BLKSIZE=3120,SPACE=(CYL,10),LABEL=EXPDT=1990/260

//DDNAME1 DD
//

DSN=A00001.FICSOR,DISP=(NEW,CATLG),UNIT=SYSDA,
DCB=BLKSIZE=3120,SPACE=(CYL,10),LABEL=RETPD=60

5.4. Dfinition des fichiers VSAM.

//DDNAME DD

DUMMY
,DSNAME=
,DISP=
,AMP=

Les paramtres DUMMY et DSNAME sont les mme que ceux vus pour les fichiers non
VSAM.
Le paramtre DISP ne peut prendre que les valeurs OLD et SHR. Les autres sont ignores.
AMP : Ce paramtre permet de complta les information sur les paramtres du fichier
VSAM
AMP=('AMORG,BUFND=n,BUFINI=n,BUFSP=n')
Si l'ont code plusieurs paramtres dans AMP, ceux-ci doivent tre entre cote.
AMORG : indique au systme que la carte DD dfinit un fichier VSAM.
BUFND= : permet de donner le nombre de si DATA stocker dans les
buffers.
BUFNI= : donne le nombre de CI INDEX stocker dans les buffers.
BUFSP= : il permet de modifier la taille des buffers 'E/S pour le transfert des

Page 20 de 33

Anoir SEGHIOUER

DATA et des INDEX.


La valeur indique doit tre suprieure celle donne dans le paramtre
BUFSP la dfinition du CLUSTER.

5.5. Dfinir des fichiers SYSAOUT.


//DDNAME1

DD

DUMMY
,SYSOUT=
,COPIES=
,FCB=
,UCS=
,HOLD=
,FREE=
,OUTLIM=
,DEST=
,OUTPUT=
,BURST=
,CHARS=
,FLASH=

SYSOUT : permet d'affecter un fichier SYSOUT les caractristiques suivantes :


Classe de sortie.
Writer devant prendre l'dition en charge.
Format de parier ou code carte JES2 ou OUTPUT.
SYSOUT=(clesse/*/(,),Writer/INTRDR,Format/code)
Classe : classe de sortie utiliser pour le stockage de sysout.
* : La classe de sortie doit tre la mme que celle donne dans le paramtre
MSGCLASS de la carte JOB.
(,) : Classe nulle. Utilise une classe dfinie dans une carte OUTPUT la quelle on
fera rfrence au moyen du paramtre OUTPUT.
Writer : identification du writer externe devant prendre l'dition en charge.
INTRDR : la sysout doit tre renvoy dans une file d'attente d'entre au travers d'un
lecteur interne.
Format : format de papier a utiliser pour l'impression (1 4 caractre)
Code : identifiant d'une carte /* OUTPUT de JES2 dans la quelle on aura dfini les
caractristiques du fichier SYSOUT.
Exemple :
//DDNAME1 DD
SYSOUT=(F,FACT)
//DDNAME2 DD

SYSOUT=V

COPIES : spcifier le nombre de copies dsires pour un dition. Optionnellement si


limpression doit ce faire sur une imprimante 3800, On peut spcifier la faon dont doivent
tre groupes les copies.
COPIES=(nnn,(groupe1,groupe2, ))
nnn :nombre de copy dsires dans les limite de 1255.Pour les sous systme 3800
cette valeur est ignore si on a cod les valeur de groupes.
Sans valeur de groupe, le nombre de copies indiqu sera imprim dans la
squence des pages pour chaque copie.

Page 21 de 33

Anoir SEGHIOUER

Groupe1,groupe2 : ces paramtres ne sont pris en compte que pour limpression sur
sous-systme 3800.Ils indique le groupage des copies imprimer. Chaque
valeur donnera le nombre de copies de chaque page devant tre groupes
ensembles. Chaque groupe peut prendre une valeur de 1 255. On pourra avoir
au maximum 8 groupe dont la somme des valeurs ne doit pas dpasser 255.
Exemple :
//IMPR1
DD
SYSOUT=F,COPIES=32
//IMPR2
DD
SYSOUT=B,COPIES=(1,(1,2))
FCB : spcifi la bande pilote utiliser pour limpression de SYSOUT. Limage de la bande
pilote doit se trouver dans la bibliothque systme SYS1.IMAGELIB.
FCB=(image-id,(ALIGN/VERIFY))
Image-id : nom dun membre de SYS1.IMAGELIB dfinissant la bande pilote
utiliser (1 4 caractre).
ALIGN : demande loprateur de vrifier le cadrage du papier avant ldition.
VERIFY : demande loprateur si limage dtat est bien la bande.
Exemple :
//IMPR1
DD
SYSOUT=F,COPIES=3,FCB=FACT
UCS : chane de caractres utiliser pour limpression de SYSOUT sur imprimante
impacts. Police de caractres utiliser pour impression sur 3800 LASER.
UCS=identification.
Exemple :
//IMPR1
DD
SYSOUT=F,COPIES=3,UCS=CHN5
HOLD :
HOLD=YES(Y)/NO(N)
YES : le sysout doit tre mis ltat HOLD dans les filles dattente de sortie. Sa fera
par commande pupitre.
NO :Le sysout sera dit son tour.
Exemple :
//IMPR1
DD
SYSOUT=F,COPIES=3,HOLD=YES.
FREE : ce paramtre permet de dterminer quel moment le systme doit dsallouer le
fichier dfini dans la carte DD.
FREE=END/CLOSE
END : Le fichier sera dsallou la fin du JOB(DEFAUT)
CLOSE :le fichier sera dsallouer a a fermeture. Utiliser dans les fichiers SYSOUT
pour limpression du fichier par JES2 mme si le JOB nest pas termin.
Exemple :
//IMPR1
DD
SYSOUT=F,FREE=CLOSE
OUTLIM : limite le nombre de ligne de la sysaout. La limite atteinte, le traitement sarrte
par ABEND.
OUTLIM=nnnnnnnn
nnnnnnnn : nombre maximum de ligne produit (1 16777215).
Exemple :
//IMPR1
DD
SYSOUT=F,OUTLIM=1000
DEST : spcifie la destination dune SYSOUT.
DEST=
LOCAL

Page 22 de 33

Anoir SEGHIOUER

Nnnn
RMTnn
NnRn
LOCAL :la SYSOUT sera dit sur nimporte quelle imprimante locale.
Nnnn : Le SYSOUT sera dit au nud de rseau spcifi.
RMTnn : la SYSOUT sera dit la station remonte spcifie.
NnRn : La SYSOUT sera dit a la station remote spcifie et rattache au nud de
rseau spcifi
Exemple :
//OMPR1
DD
SYSOUT=F,DEST=RMT1
OUTPUT : permet dassocier au fichier SYSOUT des caractristiques dfinies
antrieurement par une ou plusieurs cartes OUTPUT.
OUTPUT= *.ddname,
*.ddname,
*stepname.ddname,*stepname.ddname,
*.stepname.procstepname.ddname,
*ddname : rfrence une carte OUTPUT dfinie soit dans la mme tape soit juste
avant la premire carte EXEC
*stepname.ddname : rfrence une carte OUPUT dfinie dans un STEP antrieur.
*.stepname.procstepname.ddname : rfrence une carte OUTPUT dfinie dans
une tape de procdure appele dans un STEP antrieur.
Exemple :
Les exemples seront vus lors de ltude de la carte OUTPUT.
Remarque :
Tout paramtre associ au paramtre SYSOUT et qui ne figure pas dans la carte OUT PUT
est ajout aux options de traitement prises dans la carte OUTPUT.
Tout paramtre associ au paramtre SYSOUT prime sur les paramtres quivalents de la
carte OUTPUT.
BURST : permet de demander lutilisation ou la non utilisation du dispositif de rupture de
limprimante 3800 LASER.
BRUST =YES/NO
CHARS : permet de dfinir les polices de caractres utiliser pour impression sur
limprimante 3800 LASER.
CHARS=(nom1,nom2, )
FLASH : permet de dfinir le fond de page utiliser pour impression sur imprimante 3800
LASER.
FLASH=nom,nb copies
nom : nom du fond de page utiliser.
Nb copies : nombre de copies de SYOUT traiter avec le fond de page.

6. DDNAMES SYSTEME.
6.1. Recherche de programmes pour excution.
LINKLIB LOGIQUE.
La Linklib logique est un ensemble de bibliothques constitu de la SYS1.LINKLIB et
de bibliothques systme et prives qui lui sont rattaches. Cet ensemble est dfini dans des
membres LNKLSTnn de SYS1.PARMLIB.
A partie du moment o un programme que lon veut excuter se trouve dans une
bibliothque de la Linklib logique, il nest pas ncessaire de dfinir cette bibliothque. Dans
le JCL.
DEFINITION DE BIBLIOTHEQUE PRIVEES.

Page 23 de 33

Anoir SEGHIOUER

La recherche dun programme dans une ou plusieurs bibliothques prives peut tre
demande par lune des cartes suivantes :
//JOBLIB
DD
DSN=BIB.LOAD,DISP=SHR
//STEPLIB DD
DSN=BIB.LOAD2,DISP=SHR
Carte JOBLIB : permet de dfinir une bibliothque prive qui sera valable pour
toute la dure du JOB. Elle doit suivre obligatoirement la carte JOB. Et
la carte JES2 sil yen a et prcder la premire carte EXC.
Exemple :
//JOB1
JOB
//JOBLIB
DD
DSN=BIB.LOAD1,DISP=SHR
//STEP1
EXEC PGM=PROG1
Remarque : a chaque fois que le JOB demande lexcution dun programme, le
systme le recherche dans les bibliothques de la JOBLIB. Si il nest pas
trouver dans ,la recherche ce poursuit dans la LINKLIB LOGIQUE.
Carte STEPLIB : permet de dfinir une bibliothque prive qui ne sera valable que
pour la dure du STEP dans le quel elle est dfinie. Elle fait partie des
carte DD.
Exemple :
//JOB2 JOB
//STEP1
EXEC PGM=PROG2
//STEPLIB DD
DSN=BIB.LOAD2,DISP=SHR
Remarque :
Avec une carte STEPLIB,quand ltape demande lexcution du programme, le
Systme le recherche dans la bibliothque dfinie par STEPLIB. Sinon il continue sa
recherche dans la LINKLIB LOGIQUE. Il ny aura en aucun cas de recherche dans les
bibliothques ventuellement dfinie par JOBLIB.

6.2. Dfinition de catalogues.


La dfinition dun catalogue peut tre demande par lune des cartes suivantes :
//JOBCAT

DD

//STEPCAT DD

DSN=USER.CAT1,DIS=SHR
DSN=USER.CAT2,DISP=SHR

JOBCAT : un catalogue dfini avec une carte JOBCAT sera valable pour toute la dure du
JOB. La recherche dun fichier de fera dans lordre suivant :
1) Catalogue dfini par JOBCAT
2) Master Catalog
3) Catalogue associ au premier Qualifieur du nom du fichier.
Une carte JOBCAT doit obligatoirement tre place entre la carte JOB et la premire carte
EXEC.
Si il existe une carte JOBCAT doit obligatoirement tre place entre la carte JOB et la
premire carte EXEC.
SI il existe une carte JOBLIB pour le mme JOB elle doit tre placer entre la carte JOB et la
carte JOBCAT.
Exemple :
//JOB1
JOB
//JOBLIB
DD
DSN=BIB.LOAD1,DISP=SHR
//JOBCAT
DD
DSN=USER.CAT1,DISP=SHR

Page 24 de 33

Anoir SEGHIOUER

//STEP1
EXEC PGM=PROG1
STEPCAT : un catalogue dfini par une carte STEPCAT est valable seulement pour la dure
du STEP dans la quelle il est dfini. La recherche dun fichier se fait dans lordre suivant :
1) Catalogue dfini par STEPCAT
2) Master Catalog
3) Catalogue associer au premier qualifieur du nom de fichier.
Une carte STEPCAT se place parmi les cartes DD de ltape.
Exemple :
//JOB1
JOB
//JOBLIB
DD
DSN=BIB.LOAD1,DISP=SHR
//STEP1
EXEC PGM=PROG1
//STEPCAT DD
DSN=USER.CAT2,DISP=SHR

6.3. Edition des messages programmes.


Ldition des messages programmes est faites sur un fichier SYSOUT dfini par une carte :
//SYSOUT DD
SYSOUT=classe

6.4. Options de DEBUGGING COBOL.


Certaines options de debugging cobol ncessitent la prsence des cartes suivantes.
//SYSDBOUT

DD

SYSOUT=classe

// SYSABOUT

DD

SYSOUT=classe.

6.5. Edition des DUMPS


La sortie de DUMPS peut se faire sur fichier SYSOUT, disque ou bande. Elle est obtenue par
lintermdiaire dune carte :
//SYSUDUMP
DD
SYSOUT=classe

7. CONCATENATION DE FICHIERS.
La concatnation permet de dfinir plusieurs fichiers dune tape sous un mme DDNAME.
Elle nest utilisable que pour des fichiers en lecture contenant le mme type dinformations.
La lecture ce fait en squence dans lordre de prsentation des fichiers. On peut concatner
jusqu 255 fichiers.
Exemle :
Dfinition de plusieurs bibliothques de LOAD modules sous les mmes JOBLIB.
//JOB1
JOB
//JOBLIB
DD
DSN=BIB.LOAD1,DISP=SHR
//
DD
DSN=BIB.LOAD2,DISP=SHR
//
DD
DSN=BIB.LOAD2,DISP=SHR
//
DD
DSN=BIB.LOAD2,DISP=SHR
//STEP1
EXEC PGM=PROG1
Dfinition des fichiers dentre du tri
//JOB1
JOB
//STEP1
EXEC PGM=SORT
//SORTIN
DD
DSN=FIC.TRI1,DISP=SHR
//
DD
DSN=FIC.TRI2,DISP=SHR

Page 25 de 33

Anoir SEGHIOUER

//
//

DD
DD

DSN=FIC.TRI3,DISP=SHR
DSN=FIC.TRI4,DISP=SHR

8. Carte OUTPUT
Cette carte permet de dfinir des caractristiques communes plusieurs fichiers sysout dun
JOB. Elle sutilise en association avec le paramtre OUTPUT de la carte DD.
Format.
//nom OUTPUT

CLASS=classe/*
,COPIES=nnn
,DEFAULT=YES/NO
,FORMS=code papier
,FCB=
,UCS=
,DEST=
,BURST=
,CHARS=
,FLASH=
CLass : Donne une classe de sortie pour le ou les fichiers SYSOUT associs la carte
OUTPUT.
COPIES : mme signification que dans la carte DD.
DEFAULT : YES : Toutes les carte DD dfinissant des ficher SYSOUT et ne possdant pas
le paramtre OUTPUT seront associes cette carte OUT PUT.
NO : pas dassociation implicite.
DEST : identique que la description de la carte DD.
FCB : identique que la description de la carte DD.
UCS : identique que la description de la carte DD.
BURST : identique que la description de la carte DD.
CHARS : identique que la description de la carte DD.
FLASH : identique que la description de la carte DD.
FORMS : Code papier utiliser pour limpression.
Exemple :
//JOB1

JOB

//OUT1
//OUT2
//OUT3

OUTPUT
OUTPUT
OUTPUT

//STEP1
//IMP1

EXEC PGM=PGM1
DD
SYSOUT=(,),OUTPUT=(*.OUT1,*.OUT2)

//STEP2
//IMP2

EXEC PGM=PGM2
DD
SYSOUT=(,),OUTPUT=*.OUT1

//STEP3
//IMP3

EXEC PGM=PGM3
DD
SYSOUT=(,),HOLD=YES

CLASS=Z,COPIES=2,DEST=RMT1
CLASS=Y,COPIES=3,DEST=RMT3
CLASS=P,COPIES=1,DEFAULT=YES

Page 26 de 33

Anoir SEGHIOUER

9. LES PROCEDURES.
Une procdure est quivalent a un sous-programme de JCL que lont peut appeler par une
carte EXEC. Elle sutilise lors ce que noue avons dans le systme un ensemble de carte de
JCL, de Bibliothque suffisamment standard pour pouvoir tre utilis assez frquemment
dans des travaux diffrents. Cest le cas par exemple des compilations, des lancements de
Logiciels transactionnels des SGBD (systme de gestion de donne).

9.1. Contenu dune procdure.


Une procdure peut contenir des cartes EXEC :
 Une procdure ne peut appeler une autre procdure que depuis MVS/ESA SP4
(jusqu 15 niveaux)
 Elle peut contenir des carte DD,qui reprsente des fichiers utiliss par la
procdure,ainsi que des cartes IF,ELSE, END-IF
 Elle ne peut contenir des Carte JOB, DDDATA, DD*
 Elle peut contenir la carte PROC, la carte PEND est normalement rserve aux
procdures IN STREAM, on peut cependant la coder dans une procdure
catalogue depuis MVS/ESA SP4.

9.2. Description schmatique dune procdure.


//MYJOB
//STEP1
//FICH
//STEP2

JOB
EXEC PROCD
DD
DSB= .
EXEC PGM=PROGRAM1

recherch de la procdure catalogu 

//MYJOB
//STEPA
//FICHENT1
//FICHENT2
//SYSOUT
//FICH
//STEP2

procedure
//PROCD
PROC
//STEPA
EXEC PGM=PGM1
//FICHENT1 DD
DSN=
//FICHENT2 DD
DSN=
//SYSOUT DD
SYSOUT=*
//
PEND

JOB
EXEC PGM=PGM1
DD
DSN=
DD
DSN=
DD
SYSOUT=*
DD
DSB= .
EXEC PGM=PROGRAM1

PROCD : marque le dbut de la procdure.


PEND : marque la fin de la procdure.

9.3. Types de procdures.


IN STEREAM : utiliser lors de la cration de la procdure. Contenue dans la carte JOB qui
lappelle. Ceci nayant dintrt que pendant la phase de test de la procdure. La procdure est
dlimite par les cartes PROC et PEND.

Page 27 de 33

Anoir SEGHIOUER

CATALOGUED : il sagit de procdure denregistrement dfinitivement la nouvelle


procdure dans une ou plusieurs bibliothques disponible pour tout le monde. La bibliothque
standard est la SYS1.PROCLIB.
Syntaxe :
//name
JCLLIB
ORDER=(nom_de_bibliotheque,(nom_de_bibliotheque),.)

9.4. Cration dune procdure.


La cration ce fait au moyen dun diteur (exemple SPF) et consiste soit crer et tester une
procdure IN STEREAM, puis lajouter dans un membre de la bibliothque des procdures,
soit crer directement le membre dans la bibliothque puis crire directement le membre
dans la bibliothque puis crire le JCL dappel.

9.4.1. Procdure IN STERN.


Le nom de la carte PROC dtermine le nom de la procdure. On peut ensuite appeler cette
procdure aussi souvent que ncessaire dans le mme JOB.
Exemple :
//MYJOB
JOB
//*___________________________________________ PROCEDURE DEBUT
//MYPROC PROC
//PROC1
EXEC PGM=PROGRA1
//STSOUT
DD
SYSOUT=*
//FICENTR1 DD
DSN=FIC1.ENTRE
//FICSORT2 DD
DSN=FIC1.SORTI
//PROC2
EXEC PGM=PROGRA2
//
SYSOUT
DD
SYSOUT=*
//
//
PEND
//*_____________________________________________PROCEDURE FIN
//STEP1
EXEC PGM=PROGRAM3
//

9.4.2. Procdure catalogue.


Contenu de la procdure catalogue par exemple dans SYS1.PROCLIB :
//MYPROC PROC
//PROC1
EXEC PGM=PGM1
//SYSOUT DD
SYSOUT=*
//FICENTR DD
DSN=FIC.ENTRE1
//FICSOR
DD
DSN=FIC.SORTI1
//PROC2
EXEC PGM=PGM2
//SYSOUT DD
SYSOUT=*
//
Le nom de la procdure est donn par le nom du membre qui la contient, et non pas par le
nom de la carte PROC. Si la carte PROC ne contient pas de paramtre, elle est facultative, ce
qui est le cas de cet exemple.
Appel de la procdure :
//MYJOB
JOB
//STEP1
EXEC MYPROC

Page 28 de 33

Anoir SEGHIOUER

//

9.5. Utilisation dune procdure.


Une procdure est un JCL standardis, elle ne peut prendre en compte priori les cas
particuliers de tous les utilisateurs. Elle doit donc tre donc paramtrable. On sera amen
apporter dynamiquement des modifications au moment de lappel :
Modification des cartes EXEC.
Modification des cartes DD.
Dfinition de variables avec valeurs par dfaut ou imposes au moment de lappel.
Lors de lappel dune procdure, linterprteur recherchera la procdure dans la bibliothque
systme ou utilisateur (carte JCLLIB), la fusionnera avec le JCL dappel et procdera aux
modifications demandes par lappel. Dans le compte rendu dexcution, on pourra visualiser
le rsultat de cette fusion dans la mesure o lon aura cod MSGLEVEL=(1, )dans la carte
JOB.
Distinction entre les diffrents types de cartes dans la partie JCL IMAGE du compte rendu
dexcution du JOB :
Hors procdure :
//

Carte du JCL dorigine
dans une procdure catalogue :

Carte de procdure non modifie.
XX

Carte de procdure modifie.
X/
//

carte ajoute la procdure.
Dans une procdure IN STREAM :
++

carte de procdure non modifie
+/

carte de procdure modifie

carte ajoute la procdure
//

9.6. Modification des cartes EXEC.


Pour lensemble des cartes EXEC de la procdure, les modifications se font dans la carte
EXEC dappel. On peut ajouter, modifier ou supprimer des paramtres (sauf le nom du PGM
excuter).
La syntaxe gnrale est la suivante :
Paramtre.(PROCSTEP)=Valeur
PROCSTEP est le nom de ltape de procdure dans la quelle on veut agir. Sil est omis, le
paramtre sera valable pour toutes les tapes de la procdure.
Exemple :
//STEP1
EXEC MYPROC,COD.ET1=O,NE),
//
TIME.ET2=(,5)
Rgles :
Bien que lon puisse imbriquer jusqu 15 niveau de procdure depuis MVS/ESA SP4, on ne
peut pas paramtrer que le premier niveau.
Les paramtres modifier doivent respecter lordre suivant :
o Dabord les paramtres sappliquant toutes les tapes
o Puis ceux qui modifient une tape particulire, dans lordre des tapes.
Ajout : on code le paramtre, ltape, la valeur. Linterprteur ajoute ce paramtre sil
nexiste pas dj dans ltape.
Modification : On code le paramtre, ltape, la valeur. Linterprteur attribue la
nouvelle valeur au paramtre sil existe dj, sinon il procde un ajout.

Page 29 de 33

Anoir SEGHIOUER

Suppression : On code le paramtre, ltape, mais pas la valeur. Si ce paramtre existe


dans ltape, linterprteur le supprime, sinon il ne fait rien.
Exemple :
Soit la procdure suivante :
//S1
EXEC
PGM=MYPROG,PARM=TOTO

//S2
EXEC
PGM=PROG2,TIME=1
.. et lappel de la procdure :
//STEP1
EXEC
MYPROC,COND.S1=(0,NE),
//
PARM.S1=,TIME.S2=(,5)
Qui apporte les modifications suivantes :
Ajout de COND dans ltape S1
Suppression de PARM dans ltape S1.
Modification de TIME dans S2.
X/S1 EXEC PGM=MYPROG,COND=(0,NE)

X/S2 EXEC PGM=PROG2,TIME=(,5)

9.7. Modification des cartes DD.


Se font par lintermdiaire de cartes DD code dans le JCL dappel. On peut ajouter ou
supprimer des cartes DD.
Syntaxe gnrale :
//PROCSTEP.DDNAME
DD
procstep est le nom dtape de la procdure que lon veut modifier.
Rgles : bien que lon imbrique 15 niveau de procdure depuis MVS/ESA SP4, on ne peut
paramtrer que le premier niveau.
Bien que lon puisse imbriquer jusqu 15 niveau de procdure depuis MVS/ESA SP4, on ne
peut paramtrer que le premier niveau.
Les cartes DD doivent respecter un certain ordre :
o On doit aller dans lordre des tapes de la procdure,
o Pour une tape donne, on doit dabord trouver les cartes DD qui modifient des
cartes DD prsentes dans la procdure, puis les cartes DD ajoutes la
procdure.
Si on omet le nom de ltape devant le ddname, la carte sera ajoute la dernire tape
que lon a nomme (la premire, si aucune tape nest nomme).
Ajout : si la carte code dans le JCL dappel nexiste pas, elle est ajoute dans ltape
concerne de la procdure. Si dautres cartes DD de cette tape ont t modifies, elles
doivent prcder les cartes ajoutes.
Modification : si la carte code dans le JCL dappel existe dans la procdure, ses
paramtres sont modifis en fonction des rgles suivantes :
o Si un paramtre cod nexistait pas, il est ajout.
o Si un paramtre existe existait dj, il est modifi.
o Si un paramtre est cod sans valeur, il est supprim.
o Si un paramtre existant nest pas recod, il est conserv.
Suppression de tous les paramtres sauf le DCB : On code la carte avec le paramtre
DUMMY
Exemple :
//S1
//SYSOUT

EXEC PGM=PROG1
DD
SYSOUT=*

Page 30 de 33

Anoir SEGHIOUER

//FICENT
//S2
//SYSOUT
//IMPRIM

DD
EXEC
DD
DD

DSN=I00020.FICENT,DISP=SHR
PGM=PROGRAM2
SYSOUT=*
SYSOUT=*,copies=2

et appel de la procedure
//STEP1
//S1.FICENT
//S1.FICSOR
//
//S2.IMPRIM

EXEC MYPROC
DD
DISP=OLD
DD
DSN= I00020.FICENT,DISP=SHR
UNIT=SYSDA,SPACE=(TRK,10),DCB=BLKSIZE=120
DD
SYSOUT=A,OUTLIM=1000,COPIES=
modif
Ajout
suppression

Entrane les modifications suivantes (extrait du JCL image) :


//SEP1
EXEC
XXS1
EXEC
XXSYSOUT DD
X/S1.FICENT DD
//S1.FICSOR DD
//
XXS2
EXEC
XXSYSOUT DD
X/S2.IMPRIMDD

MYPROC
PGM=PROG1
SYSOUT=*
DSN= I00020.FICENT,DISP=OLD
DSN= I00020.FICENT,DISP=SHR
UNIT=SYSDA,SPACE=(TRK,10),DCB=BLKSIZE=120
PGM=PROGRAM2
SYSOUT=*
SYSOUT=A,OUTLIM=1000
Modif
Ajout
Cas particulier des fichiers concatns :
Il doit y avoir autant de cartes DD dans le JCL dappel que dans ltape de la procdure. Les
cartes doivent apparatre dans le mme ordre.
Pour modifier un paramtre, on le code dans la carte DD correspondante.
Si aucun paramtre ne doit tre chang dans une carte,on code cette carte sans paramtre.
Exemples :
Dans la procdure PROCA :
//SX
EXEC

//DD1
DD
DNS=LOAD.LOAD1,DISP=SHR
//
DD
DNS=LOAD.LOAD3,DISP=SHR
//
DD
DNS=LOAD.LOAD2,DISP=SHR
1- Dans le JCL dappel de la procdure :
//STEPA
EXEC
PROCA
//SX.DD1
DD
DSN=I0004.PROJ1,DISP=SHR
On trouvera dans le JCL image :
X/SX.DD1 DD
DSN=I0004.PROJ1,DISP=SHR
X/
DD
DNS=LOAD.LOAD3,DISP=SHR
X/
DD
DNS=LOAD.LOAD2,DISP=SHR
2- Dans le JCL dappel de la procdure
//STEPA
EXEC
PROCA
//SX.DD1
DD
DSN=I0004.PROJ1,DISP=SHR
DD
DSN=I0004.PROJ2,DISP=SHR

Page 31 de 33

Anoir SEGHIOUER

On trouve dans le JCL image


X/SXDD1
DD
DSN=I0004.PROJ1,DISP=SHR
DD
DSN=I0004.PROJ2,DISP=SHR
DD
DSN=LOAD.LOAD2,DISP=SHR
3- Dans le JCL dappel de la procdure :
//STEPA
EXEC PROCA
//SXDD1
DD
DSN=I0004.PROJ1,DISP=SHR
//
DD
//
DD
DSN=I0004.PROJ2,DISP=SHR
On trouve dans le JCL image
//SXDD1
DD
DSN=I0004.PROJ1,DISP=SHR
//
DD
DNS=LOAD.LOAD3,DISP=SHR
//
DD
DSN=I0004.PROJ2,DISP=SHR

9.8. Dfinition de variables symboliques

9.8.1. Codage des variables.


Dans une procdure, il est possible de remplacer les valeurs fixes attribues aux paramtres
par des noms de variables symboliques.
Cela augmente la souplesse dutilisation des procdures que lon peut alors modifier
simplement en changeant les valeurs attribues aux variables symboliques.
Une variable scrit sous la forme :
Paramtre =&nom
Le & permet linterprteur de diffrencier les variables des valeurs attribues aux
paramtres ordinaires. Pour attribuer une valeur une variable, on code son nom sans le
&.Ceci peut tre fait soit au niveau de la carte EXEC dappel de la procdure, soit au niveau
de la carte PROC (facultative pour les procdures catalogues, obligatoire pour les procdures
instream).
La valeur est alors attribue toutes les occurrences de la variable symbolique.

9.8.2. Variable par dfaut.


La carte PROC permet dattribuer des valeurs par dfaut aux variables de la procdure.
//MYPROC PROC
DUREE=(,2),FIC=TOTO,DISPO=SHR,VERS=M0000,
//
APPLI=COMM,AA=95,QQQ=312
//STEP1

EXEC

PGM=PROGRAM1,TIME=&DUREE,PARM=&AA&QQQ

//FIC1

DD

DSN=&FIC,DISP=&DISPO

//FIC2

DD

DSN=&APPLI..&VERS,DISP=(NEW,ATALG,DELETE),

Attention : Le double point prcdant &VERS est indispensable pour sparer deux variables
dans un nom de fichier.

9.8.3. Attribution dynamique de valeurs.


On attribue les valeurs aux variables, dynamiquement lors de lexcution de la procdure, en
codant les paramtres au niveau de la carte EXEC dappel. Les valeurs attribues ainsi
remplacent les valeurs codes sur la carte PROC.
Exemple :

Page 32 de 33

Anoir SEGHIOUER

Carte dappel pour la procdure ci-dessus :


//STEP1
EXEC
MYPROC,DUREE=1,FIC=STOCK.DONNEE,
APPLI=COMM,VERS=DU280571
Linterprteur attribuera une dure de une minute et utilisera les fichiers STOCK.DONNEE et
COMM.DU280571. :
//STEP1
EXEC
PROG=PROGRAM1,TIME=1,PARM=95312
//FIC1
DD
DSN=STOCK.DONNEE,DISP=SHR
//FIC2
DD
DSN=COMM.DU280571,DISP=(NEW,CATLG,DELETE), ..
Remarque : Lattribution dynamique de valeurs des variables peut galement se faire
directement dans le JCL, sans avoir faire appel a une procdure, laide de la carte SET.
Exemple :
//I000AA
JOB ..
//
SET NOMFIC=GOR.RESU456.ED56,IMPR=RMT231
//EDIT
EXEC PGM=EDITION
//ETAT
DD
DSN=&NOMFIC,DISP=SHR
//SORTIE
DD
SYSOUT=A,DEST=&IMPR
Le JCL soumis sera :
//I000AA
//
//EDIT
//ETAT
//SORTIE

JOB
SET
EXEC
DD
DD

..
NOMFIC=GOR.RESU456.ED56,IMPR=RMT231
PGM=EDITION
DSN=GOR.RESU456.ED56,DISP=SHR
SYSOUT=A,DEST=RMT231

Page 33 de 33

Das könnte Ihnen auch gefallen