21
Anoir SEGHIOUER Page 1 sur 21 UTILITAIRES

JCL Utilities

Embed Size (px)

Citation preview

Page 1: JCL Utilities

Anoir SEGHIOUER

Page 1 sur 21

UTILITAIRES

Page 2: JCL Utilities

Anoir SEGHIOUER

Page 2 sur 21

SOMMAIRE

Introduction. ........................................................................................................................... 3 Compte Rendu........................................................................................................................ 3 Fichiers en entrée. .................................................................................................................. 3 Fichiers en sortie. ................................................................................................................... 4 Fichier de commandes............................................................................................................ 4 Fichiers de travail. .................................................................................................................. 4 1. ALLOCATION DE FICHIERS. ........................................................................................ 4

1.1. Allocation de fichier séquentiel................................................................................... 4 1.2. Allocation de fichier partitionné. ................................................................................ 5

2. SUPPRESSION DE FICHIERS......................................................................................... 5 2.1. IEFBR14...................................................................................................................... 6 2.2.IDCAMS. ..................................................................................................................... 6

3. COPIE DE FICHIER. ........................................................................................................ 6 3.1. Copy de fichier séquentiel........................................................................................... 6 3.1.1. IEBGENER. ............................................................................................................. 6 3.1.2. IDCAMS .................................................................................................................. 7 3.2. Copie de fichier partitionné......................................................................................... 7 3.2.1. Sauvegarde. .............................................................................................................. 8 3.2.2. Restauration.............................................................................................................. 8 3.2.3. Copie partielle de partitionné. .................................................................................. 8

4. TRI DE FICHIER............................................................................................................... 9 4.1. Les fichiers de l'utilitaire de tri.................................................................................... 9 4.2. Tri d'un fichier. ............................................................................................................ 9 4.3. Fusion de fichier........................................................................................................ 10 4.4. DFSORT et l'an 2000. ............................................................................................... 11

5. SELECTION D'ENREGISTREMENTS.......................................................................... 11 6. IMPRESSION DE FICHIER. .......................................................................................... 12

6.1. Impression Simple..................................................................................................... 12 6.1.1. IEBGENER. ........................................................................................................... 12 6.1.2. IDECAMS.............................................................................................................. 12 6.2. Édition formatée. ....................................................................................................... 13 6.2.1. ICETOOL............................................................................................................... 13 6.2.2. IEBPTPCH. ............................................................................................................ 16 6.3. Impression en Hexadecimal. ..................................................................................... 17 6.3.1. IDCAMS : .............................................................................................................. 17

7. REFORMATAGE D’ENREGISTREMENTS................................................................. 18 7.1. DFSORT.................................................................................................................... 18 7.2.IEBGENER. ............................................................................................................... 19

8. COMPARAISON DE FICHIERS.................................................................................... 20 9. REORGANISATION....................................................................................................... 20 10. CATALOGAGE / DECATALOGAGE DE FICHIER.................................................. 21 11.CREATION DE MEMBRES D’UN PARTITIONNE. .................................................. 21

Page 3: JCL Utilities

Anoir SEGHIOUER

Page 3 sur 21

Introduction. C'est un ensemble de programmes généraux fournis par les constructeurs IBM (entre autre), et destinés à faciliter la maintenance du système. Ils servent en générale pour plusieurs catégories de maintenance. Ils cadrent un besoin technique de travail pour effectuer les types d'opération suivante :

• Il permet d'agir au niveau des catalogues, des disques, des contrôles d'accès. Les noms de cette catégorie d'utilitaire commencent en générale par IEH.

• Permettent de copier, comparer, réorganiser les fichiers. C'est les utilitaires le plus utiliser pour le développement et la maintenance. Leurs noms commencent par IEB.

• Un ensemble d'utilitaire permettant l'organisation des disques, mettre en place le système initial. Ils ne sont pas utilisés par les programmeurs et reste le domaine de la cellule exploitation et programmeur système.

L'ensemble de ces utilitaires sont comparables et s'utilise d'une manière très semblables. Lors de leur utilisation et mise au point ils émettent les mêmes codes d'erreur. Les utilitaires possèdent généralement un ou plusieurs fichiers en entrée, un ou plusieurs fichier en sortie, des fichier de travail, un fichier de compte rendu et un fichier de commande. Important :

o Les fichiers VSAM doivent être manipulés avec l'utilitaire IDECAMS et son langage associé AMS.

o L'ensemble du code et syntaxes présenté dans ce document n'est a utiliser que sur des fichier non VSAM.

Plusieurs de ces utilitaire sont livré avec TSO/ISPF est fond redondance.

Compte Rendu. C'est un fichier de sortie qui donne le résultat de un état de l'avance ment du JOB. //SYSPRINT DD SYSOUT=* Il faut toujours définir dans le Job. Elle est obligatoire, lors d'un oubli l'utilitaire ne s'exécute pas. Le code retour utilitaire associé à la SYSPRINT : 00 Ok 04 Avertissement 08 Executé mais il y a un problème. 12 ou 16 Erreur Système.

Fichiers en entrée. Fichier standard : //SYSUT1 DD DSN=U00001.INITE.PRODUIT,DISP=…. Fichiers utilisateur : Plusieurs utilisateurs acceptent en entrée des fichiers de DDNAME définis par l'utilisateur à condition qu'ils soient précisés dans le fichier de commande SYSIN. Exemples : //IN1 DD DSN= … //IN2 DD DSN= …

Page 4: JCL Utilities

Anoir SEGHIOUER

Page 4 sur 21

//Entree DD DSN=… etc

Fichiers en sortie. Fichier standard : //SYSUT2 DD DSN=… Fichiers utilisateurs : La majorité des utilitaires utilise des fichiers de DDNAME définis par l’utilisateur dans les mêmes condition que les fichiers de sortie. //OUT1 DD DSN= … //OUT2 DD DSN=… //SORTIE DD DSN=…

Fichier de commandes. Les utilitaires sont des programmes modulaires qui peuvent chacun remplir plusieurs fonctions et accepter de nombreuses options. Ces fonctions sont activées par des commandes que l’on code, en général dans une carte SYSIN. //SYSIN DD * PRINT TITLE ITEM=(‘EDITION EN CLAIR’,10) RECORD FIELD=(30,1,,10), FIELDS=(9,31,PZ,43) Règles : Chaque carte doit commencer par un ou plusieurs blancs, mais avant la colonne 16. Si une ligne ne peut contenir tous les paramètres, le dernier d’une carte doit être suivi d’une virgule (sauf IDCAMS et ICETOOL qui utilisent le ‘-‘ comme caractère de continuation) et le suivant doit commencer entre les colonnes 4 et 16 comprises.

Fichiers de travail. Jusqu’à 16 fichiers de travail peuvent être définis avant les utilitaires. On utilise généralement des fichiers temporaires. Les DDNAME sont imposés : //SYSUT3 DD UNIT=SYSDA,SPACE=… //SYSUT4 DD UNIT=SYSDA,SPACE=… //SORTWK01 DD UNIT=SYSDA,SPACE=… etc ….

1. ALLOCATION DE FICHIERS. Elle se fait à l’aide de IEBGENER ou IEFBR14, pour les fichier séquentiels ou partitionnés.

1.1. Allocation de fichier séquentiel.

1.1.1. IEBGENER. Exemple : //ALLOC1 EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSUT1 DD DUMMY //SYSUT2 DD DSN=I00001.LISTE.PRODUIT,DISP=(NEW,CATLG,CATLG),

UNIT=ETUDE,SPACE=TRK,(1,2),RECFM=FB,LRECL=300 //SYSIN DD DUMMY Le fichier crée est un fichier vide. Dans ce JCL, 4 fichier sont utiliser :

Page 5: JCL Utilities

Anoir SEGHIOUER

Page 5 sur 21

SYSPRINT : c’est le fichier du compte rendu d’exécution de l’utilitaire. SYSUT1 : DUMMY SYSUT2 : écrire l’ensemble des critères qui décrivent le fichier. SYSIN : DUMMY pour la création.

1.1.2.IEFBR14. //ALLOC EXEC PGM=IEFBR14 //FIC DD DSN=I000001.LISTE.PRODUIT,DISP=(NEW,CATLG,CATLG), // UNIT=ETUDE,SPACE=(TRK,(1,2),RLSE),RECFM=FB,LRECL=300 FIC : DDNAME quelconque. IEFBR14 sert ici de programme fictif pour l’allocation du fichier en utilisant simplement les paramètres de la carte DD. L’allocation de fichier par IEFBR14, bien que plus simple que par IEBGENER, provoque parfois des dysfonctionnements à l’utilisation du fichier plantage avec certains langage,, nombre d’enregistrement différent de 0 alors que le fichier est vide…). L’usage de ces fichiers par des programmes COBOL ne manifeste pas de problème de ce genre.

1.2. Allocation de fichier partitionné.

1.2.1. IEBGENER. //ALLOCPDS EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSUT1 DD DUMMY //SYSUT2 DD DSN=I00001.PROJET1.SRCE,DISP=(NEW,CATLG ,CATLG), // UNIT=ETUDE,SPACE=(TRK,(4,10, 5)), // RECFM=FB,LRECL=80 //SYSIN DD DUMMY 5 Block de directory : 5 × 6 � 30 SYSPRINT : Contient le compte rendu d’exécution de l’utilitaire. SYSUT1 : DUMMY SYSUT2 : ensemble des caractéristiques du fichier. Le paramètre SPACE contient le nombre de blocs de directory du PDS à créer (ici 5, ce qui correspond à 6×5 = 30 membres). Le paramètre DSNTYPE=LIBRARY, facultatif, peut être ajouté pour créer un PDS-E. SYSIN : DUMMY pour cette utilisation d’IEBGENER.

1.2.2.IEFBR14. //ALLOCDS EXEC PGM=IEFBR14 //FIC DD DSN=I00001.PROJET1.SRCE, // DISP=(NEW,CATLG,CATLG),UNIT=ETUDE, // SPACE=(TRK,(4,10, 5)),RECFM=FB,LRECL=80 FIC : DDNAME quelconque. Listé l’ensemble des critère de la bibliothèque à crée.

2. SUPPRESSION DE FICHIERS. Elle peut être effectué par IDCAMS ou IEFBR14.

Page 6: JCL Utilities

Anoir SEGHIOUER

Page 6 sur 21

2.1. IEFBR14. //DELETE EXEC PGM=IEFBR14 //FIC1 DD DSN=I00001.LISTE.PRODUIT1,DISP=(OLD,DELE TE) //FIC2 DD DSN=I00001.LISTE.PRODUIT2, // DISP=(MOD,DELETE),UNIT=ETUDE,SPACE=(TRK,0) FIC1 : DDNAME quelconque, ce fichier doit obligatoirement existé avant la suppression. FIC2 : Ce fichier peut ne pas exister avant suppression. Cette syntaxe est utilisée lors de suppression préventive.

2.2.IDCAMS. Utilisé pour les fichiers VSAM. //DELETE EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DELETE (I00001.LISTE.PRODUIT) DELETE (I00001.PROJET1.SRCE) SET MAXCC=0 SYSPRINT : compte-rendu de l’utilitaire. SYSIN : Paramètre de l’utilitaire, liste des fichiers à supprimer. La commande MAXCC=0 permet de réduire le code retour de l’utilitaire à 0. Que le fichier existe ou pas avant la suppression. Sans cette commande, le code retour serait égal à 8, en cas de non existence du fichier.

3. COPIE DE FICHIER. Elle peut être réalisé par IEBGENER, EDCAMS, ou IEBCOPY.

3.1. Copy de fichier séquentiel.

3.1.1. IEBGENER. //COPIE EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSUT1 DD DSN=I00001.LISTE.PRODUIT1,DISP=SHR //SYSUT2 DD DSN=I00001.LISTE.ECONO,DISP=(,CATLG), // UNIT=ETUDE,SPACE=(TRK,(1,10),RLSE) //SYSIN DD DUMMY SYSPRINT : Contient le compte-rendu d'exécution de l'utilitaire. SYSUT1 : DDNAME imposé. Fichier source. Peut être catalogué ou temporaire. SYSUT2 : DDNAME imposé. Fichier cible. Peut être catalogué ou temporaire.

• Si le fichier cible n'existe pas il faut préciser l'ensemble des paramètres obligatoire pour la création.

• RECFM et LRECL sont facultatifs si le fichier source et cible ont les mêmes caractéristiques.

• Si le fichier existe déjà préciser uniquement DSN et le DISP. SYSIN : DUMMY pour cette utilisation de IEBGENER.

Page 7: JCL Utilities

Anoir SEGHIOUER

Page 7 sur 21

3.1.2. IDCAMS A utiliser pour les fichier VSAM. 1er CAS : //COPIE EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * REPRO IDS (I00001.LISTE.PRODUIT) - ODS(I00001.LISTE.EXERIEUR) SYSPRINT : Contient le compte-rendu d'exécution de l'utilitaire. SYSIN : commande REPRO pour la copie de fichier. IDS pour INDATASET pour le fichier source ODS pour OUTDATASET pour le fichier cible. Ils est a noté la présence du caractère '-' qui spécifie la continuation. L'exemple est pour des fichiers catalogués. Si le fichier source n'est pas catalogué (temporaire, ou membre de bibliothèque), et/ou fichier cible non catalogué, la syntaxe du cas suivant est a utiliser. 2eme CAS : //COPIE EXEC PGM=ODCAMS //SYSPRINT DD SYSOUT=* //ENTREE DD DSN=&&SOURCE,DISP=(SHR,PASS) //SORTIE DD DSN=I00001.FICHIER.ORODUIT,DISP=(,CATLG),UNIT=ETUD E, // SPACE=(TRK,(1,2),RLSE),RECFM,FB,LRECL=100 //SYSIN DD * REPRO INFILE (ENTREE) – OUTFILE (SORTIE) SYSPRINT : Contient le compte-rendu d'exécution de l'utilitaire. SYSIN : Commande REPRO pour la copie de fichier. INFILE précise le ddname du fichier source. OUTFILE précise le ddname du fichier cible. Ils est a noté la présence du caractère '-' qui spécifie la continuation.

• La commande REPRO dispose de deux paramètres SKIP(n) et COUNT(m) pouvant être utilisés seuls ou ensembles afin de, respectivement, sauter les n premiers enregistrements du fichiers source, et/ou copier seulement m enregistrement dans le fichiers cible. Exemple : //SYSIN DD *

REPRO IDS (I00001.FICHIER.PRODUIT) – OUTFILE (SORTIE) –

SKP (40) COUNT (160)

Saute les 40 premier enregistrements, en recopie seulement 160 suivant. • On peut indifféremment, suivant les besoins, mixer l’emploi de IDS, ODS, INFILE et

OUTFILE.

3.2. Copie de fichier partitionné En utilise pour cela IEBCOPY essentiellement.

Page 8: JCL Utilities

Anoir SEGHIOUER

Page 8 sur 21

3.2.1. Sauvegarde. Sauvegarde dans un fichier séquentiel, si le fichier source est un PDS c’est une compression. //SAUV EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //ENTREE DD DSN=I00001.LISTE.SRCE(PGM060),DISP=SHR //SORTIE DD DSN=I00001.PGM.A060,DISP=(,CTLG),UNIT=ETUDE, // ESPACE=(TRK,(1,2),RLSE),RECFM=FB,LRECL=80 //SYSIN DD *

COPY OUTDD=SORTIE,INDD=ENTRÉE /* SYSPRINT : Contient le compte-rendu d'exécution de l'utilitaire. ENTREE : DDNAME quelconque. PDS en entrée. SORTIE : DDNAME quelconque. Séquentiel en sortie (en création dans cet exemple). SYSIN : paramétrage de l’utilitaire. OUTDD : DDNAME du fichier de sortie. INDD : DDNAME du PDS en entrée.

3.2.2. Restauration. Restauration d'un PDS à partir d'un fichier séquentiel compressé obtenu par sauvegarde par IEBCOPY (voir exemple précédent). //RESTAUR EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //ENTREE DD DSN=I00001.PROGR.P060,DISP=SHR //SORTIE DD DSN=I00001.PROJET1.SRCE(PGM060),DISP=(,CATLG),

UNIT=ETUDE,SPACE=(TRK,(1,5,10)),RECFM=FB,LRECL=80 //SYSIN DD * OUTDD=SORTIE,INDD=ENTREE SYSPRINT : Compte rendu de l'utilitaire. ENTREE : DDNAME quelconque. Séquentiel de sauvegarde en entrée. SORTIE : DDNAME quelconque. PDS en sortie (en création dans cet exemple). SYSIN : Paramétrage de l'utilitaire OUTDD : DDNAME PDS de sortie. INDD : DDANME du fichier en entrée.

3.2.3. Copie partielle de partitionné. Copie de membre d'une bibliothèque vars une autre. //COPIE EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //ENTREE DD DSN=I00001.LISTE.PRODUITE,DISP=SHR //SORTIE DD DSN=I00001.LISTE.PRODUITS,DISP=SHR //SYSIN DD * COPY OUTDD=SORTIE,INDD=ENTREE S M=((MBR1)) cas 1 S M=((MBR2,,R)) cas 2 � Création dans la bibliothèque. S M=((MBR3,MBR4)) cas 3 S M=((MBR5,MBR6,R)) cas 4 � Si MBR6 existe déjà il sera écrasé. /* SYSPRINT : Compte-rendu de l'utilitaire. ENTREE : DDNAME quelconque. Séquentiel de sauvegarde en entrée. SORTIE : DDNAME quelconque. PDS en sortie.

Page 9: JCL Utilities

Anoir SEGHIOUER

Page 9 sur 21

SYSIN : Paramétrage de l'utilisateur : • OUTDD : DDNAME du PDS en sortie. • INDD : DDNAME du PDS en entrée. • S M=…. : est l'abréviation de SELECT MEMBER • Cas 1 : si le membre MBR1 existe déjà en sortie, il n'est pas recopié. • Cas 2 : Si le membre MBR2 existe déjà en sortie, il est remplacé. • Cas 3 : Le membre MBR3 est recopié sous le nom de MBR4, si le membre

MBR4 n'existe pas déjà en sortie. Si non il n'est pas recopié. • Cas 4 : le membre MBR5 est recopié sous le nom de MBR6, si le membre

MBR6 existe déjà en sortie, il est remplacé. Remarque :

o Sans la commande S M= … tous les membres sont recopiés, sauf ceux déjà existant dans le PDS de sortie.

o Il est possible de mettre autant de commande S M .. que l'on veut. o Il existe également la commande E M= … pour EXCLURE MEMBRE. o Pour éviter les fautes de frappe et les oublis, il est possible d'obtenir un fichier

contenant la liste des membres d'un PDS : placez-vous sur un écran liste de directory, et tapez SAVE XXX sur la ligne de commande. Vous obtiendrez un fichier <Votre_USER>.XXX.MEMBRES contenant la directory. Il ne vous reste plus qu'à manipuler ce fichier avec l'éditeur pour en faire une SYSIN IEBCOPY.

4. TRI DE FICHIER. Le tri de fichier se fait à l'aide de DFSORT.

4.1. Les fichiers de l'utilitaire de tri. SORTWK01/02… : Fichiers de travail. SORTIN(+ SYSUT1) : Fichier en entrée. SYSOUT : Compte rendue de l'exécution. SORTOUT(+SYSUT2) : Fichier de sortie.

4.2. Tri d'un fichier. //TRIE EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SORTIN DD DSN=I00001.LISTE.PRODUIT,DISP=SHR SORTOUT DD DSN=I00001.LISTPRD.TRICODE,UNIT=ETUDE, // SPACE=(TRK,(1,2)),LRECL=100,RECFM=FB, //SORTWK01 DD UNIT=ETUDE,SPACE=(CYL,(1,1)) //SYSIN DD * SORT FIELDS=(1,7,CH,A) � critère de Tri /* 1 : position 7 : Longueur CH : format alphanumérique. A : sens du tri. SYSOUT : Compte-rendu de l'utilitaire. SORTIN : DDNAME imposé, porte le fichier d'entrée. SORTOUT : DDNAME imposé, porte le fichier de sortie.

Page 10: JCL Utilities

Anoir SEGHIOUER

Page 10 sur 21

SORTWK01 : DDNAME imposé, fichier de travail du tri SYSIN : Commandes de tri sous forme position, longueur, type, séquence. (tri sur le premier champ) Position : position du critère du tri. Longueur : longueur en octets du critère de tri. Type : type du critère de tri. Peut être : CH : Caractère EBCDIC. PD : Décimal signé packé.

BI : Valeurs binaires 'équivalent CH) FI : Décimal signé stocké en binaire. ZD : Décimal signé.

Séquence : sens du TRI : A � pour ascendant, D � pour descendant. Important :

o L'espace alloué au fichier de travail dépend de la taille et volumétrie du fichier à trié. o Il est déconseillé de trier un fichier sur lui-même. o Il est possible d'éliminer les doublons sur les critères de tri en codant :

//SYSIN DD * SORT FIELDS=(position,longueur,type,séquence,position,longueur,type,séquence…) SUM FIELDS=NONE

o Si tous les critères de tri sont du même type, on peut coder SYSIN de la manière suivante :

//SYSIN DD * SORT FIELDS=(position,longueur,séquence,position,longueur,séquence,…), FORMAT=type:CH, PD,BI ou … Le programme SORT renvoie les codes retour utilisateurs suivants : 00 : tout s'est bien passé. 16 : erreur de syntaxe dans la SYSIN 20 : carte SYSOUT manquante.

4.3. Fusion de fichier. Les fichiers à fusionner doivent être préalablement triés sur le même critère. La fusion consiste à inter-classer un ou plusieurs dans un autre, dans l'ordre des clés. La syntaxe est identique au tri mis à part l'ordre SORT remplacé par MERGE. Exemple : //FUSION EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SORTIN01 DD DSN=I00001.LISTE.PRODUIT1,DISP=SHR //SORTIN02 DD DSN=I00001.LISTE.PRODUITA,DISP=SHR //SORTIN03 DD DSN=I00001.LISTE.PRODUITB,DISP=SHR //SORTOUT DD DSN=I00001.LISTE.PRODUITT,DISP=NEW,CATLG,DELETE), // UNIT=ETUDE,SPACE=(TRK,(1,5)),LREL=100,RECFM=FB //SYSIN DD * MERGE FIELDS=(1,8,CH,D) Pour un MERGE, les cartes SORTWK(fichier de travail) ne sont pas obligatoires.

Page 11: JCL Utilities

Anoir SEGHIOUER

Page 11 sur 21

4.4. DFSORT et l'an 2000. Permet de faire le tri de dates dont l'année est codée sur deux positions numériques. Ceci est possible grâce à l'adoption de nouveaux formats de tri pour les années (Y2C, Y2Z, Y2P et Y2D), et à la notion de fenêtre de siècle fixe ou glissante :

• Y2C ou Y2Z : formats utilisés pour la années stockées sur deux position en caractères, numériques, ou numériques signées (PIC X(2),PIC 9(2), ou PIC S9(2)).

• Y2P format utilisé pour les années stockées sur deux positions numériques signées packées PIC S9(2) COMP-3).

• Y2D format utilisé pour les années stockées sur deux positions numériques mais codées sur un octet.

• La fenêtre de siècle est paramétrée par le système à l'installation de DFSORT par l'option Y2PAST=x. x peut être :

o soit un nombre compris entre 1000 et 3000. Dans ce cas la fenêtre de siècle est fixe (Y2PAST=19980 : le siècle commence en 1980, 97 correspond à 1997, 70 correspond à 2070).

o Soit un nombre compris entre 0 et 100. dans ce cas la fenêtre de siècle est flottante et se déplace d'un an tous les ans (Y2PAST=20 : le siècle commence 20 ans avant la date courante : si nous sommes en 1997, le siècle commence en 1997 – 20=1977 et se termine en 2076)

Exemples : Tri sur une date définie sur 6 caractères jjmmaa : SORT FILDS=(5,2,Y2C,A,3,2,CH,A,1,2,CH,A) TRI sur une date définie sur 6 caractères aammjj, avec modification de la fenêtre de siècle : OPTION Y2PAST=1960 SORT FIELDS=(1,2,Y2C,A,3,2,CH,A,5,2,CH,A)

5. SELECTION D'ENREGISTREMENTS. DFSORT permet de sélectionner des enregistrements avant le tri, grâce aux commandes OMIT COND et INCLUDE COND. Exemple: On veut en sortie les enregistrements dont : Les 3 caractères on position 8 sont des 3 caractères en position 60 et La quantité stockée en packé en position 33 sur 4 octets est positive. //SELCT EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SORTIN DD DSN=I00001.LISTE.PRODUITA,DISP=SHR //SORTOUT DD DSN=I00001.LISTE.PRODUIT.TRI,DISP=(NAW,CATLG,CATLG) // UNIT=ETUDE,SPACE=(TRK,(1,5)),LRECL=100,RECFM=FB //SORTWK01 DD UNIT=ETUDE,SPACE=(TRK,1,5)) //SYSIN DD * INCLUDE COND=(8,3,CH,NE,60,3,CH,AND,33,4,PD,GT,0) SORT FILDS=(1,8,CH,D) SYSOUT : Compte-rendu de l'utilitaire. SORTIN : DDNAME imposé, porte le fichier d'entrée. SORTOUT : DDNAME imposé, porte le fichier de sortie. SORTWK01 : DDNAE imposé, fichier de travail du tri. SYSIN : Commande d'inclusion ou d'exclusion et de tri.

o OMIT COMD=(P1,L1,T1,op,P2,L2,T2,ol,P3L3,T3,op,C'littéral', …)

Page 12: JCL Utilities

Anoir SEGHIOUER

Page 12 sur 21

o Pn, Ln, Tn , : position, longueur et type des zones testées. o op : Comparateur (EQ,NE,GT,GE,LT,LE). o ol : opérateur logique (AND,OR) La syntaxe de l'INCLUDE COND est strictement identique.

6. IMPRESSION DE FICHIER. C'est un ensemble d'outille permettant la réalisation d'état simples, pour édition de contenue de fichier.

6.1. Impression Simple.

6.1.1. IEBGENER. //IMPRESS EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSUT1 DD DSN=I00001.LISTE.PRODUIT,DISP=SHR //SYSUT2 DD SYSOUT=A,DEST=RMTNNN //SYSIN DD DUMMY SYSPRINT : contient le compte-rendu d'exécution de l'utilitaire. SYSUT1 : Fichier à imprimer. SYSUT2 : Destination de l'impression :

o SYSOUT=A : impression papier o SYSOUT=* : Impression jointe au compte rendu d'exécution o DEST=RMTNNN : Facultatif : imprimante destinataire de l'impression.

SYSIN : DUMMY pour cette utilisation d'IEBGENER.

6.1.2. IDECAMS. Cas 1 : Fichier catalogué //IMPRESS EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * PRINT IDS (I0001.LISTE.PRODUIT) CHAR � envoie dans SYSPRINT le

contenu du fichier Cas2 : Fichier non catalogué. //IMPRESS EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //ENTRÉE DD DSN=&&temp1,DISP=(SHR,PASS) //SYSIN DD * PRINT INFILE (ENTREE) CHAR SYSPRINT : Contient le compte rendu de l'utilitaire et le résultat de l'impression. Possibilité de coder SYSOUT=A, DEST=RMTNNN pour une impression sur papier sur une imprimante donnée (RMTNNN). ENTREE : DDNAME quelconque, fichier à imprimer. SYSIN : ordre d'impression. CHAR pour impression en caractère affichables. Rq : Les paramètres SKIP(n) et/ou CONT(m) peuvent être ajoutés en sysin pour respectivement sauter les n premiers enregistrements et n'en imprimer que m.(voir les condition des fichiers VSAM pour plus de paramètres).

Page 13: JCL Utilities

Anoir SEGHIOUER

Page 13 sur 21

6.2. Édition formatée.

6.2.1. ICETOOL. Permet quelque d'avoir une mise en forme plus élaboré comme : Ligne d'entête. Entête de cologne. Rupture de page. Édition de Totaux. … Cas 1 : Édition simple. //EDITION EXEC PGM=ICETOOL //TOOLMSG DD SYSOUT=* //DFSMSG DD SYSOUT=* //ENTREE DD DSN=I00001.LISTE.PRODUIT,DISP=SHR //SORTIE DD SYSOUT=* � consultable directement sur l'écran. //TOOLIN DD * � Carte de commandes ICETOOL DISPLAY FORM(ENTREE) – LIST(SORTIE) DATE TIME TITLE('LISTE PRODUIT') PAGE – HEADER ('CODE') ON(1,7,CH,T' ') HEADER('SOCIETE') ON(8,20,CH) HEADER('QUANTITE') ON(28,3,PD) � packée decimal � Nombre de lignes par page. LINES(66) – WIDTH (133) Contenu du fichier d'entrée : ----+----1----+----2----+----3----+----4----+----5- ---+---- 0000001BIJOUTERIE DU PONT ... 0000002DUVALE FRERE ... 0000003ATHEN BIJOUTERIE ... Résultat : ----+----1----+----2----+----3----+----4----+----5- ---+---- 25/08/06 20:55:30 LISTE SOCIETE - 1 – CODE SOCIETE QUANTITE 0000001 BIJOUTERIE DU PONT 100 0000002 DUVALE FRERE 25 0000003 ATHEN BIJOUTERIE 551 TOOLMSG : Compte rendu de l’utilitaire. DFSMSG : Compte rendue de tri interne ICETOOL. ENTREE : DDNAME quelconque, porte le fichier d’entrée. SORTIE : DDNAME quelconque, porte le nom du fichier d’édition. TOOLIN : commandes ICETOOL :

• DISPLAY : Commande d’édition. • FROM : DDNAME du fichier d’entrée. • LIST : DDNAME du fichier de sortie. • DDATE : Facultatif. Affiche la date dans la ligne de titre.

Page 14: JCL Utilities

Anoir SEGHIOUER

Page 14 sur 21

• TIME : Facultatif. Affiche l’heur la ligne de titre. • TITLE : Facultatif. Permet d’indiquer le titre et l’afficher. • PAGE : Facultatif. Permet l’affichage du numéro de page dans la ligne de titre. • HEADER : Facultatif. Défini l’entête de colonne. • ON : Défini position, longueur, type de la donnée à la donnée à afficher. Les

types possibles sont les mêmes que ceux du tri. Il est possible d’ajouter un littéral à donnée, avant celle-ci avec L’littéral’, et/ou après celle-ci avec T’littéral ’.

• LINES : Indique le nombre de ligne dans une page, ce qui permet de gérer automatiquement les sauts de page et la réécriture du titre et de l’entête sur chaque page. Sinon codé, valeur par défaut : 58. • WIDTH : Indique la largeur du fichier d’édition. Si non codé, valeur par défaut :120. RQ : Les paramètres DATE, TIME, TITLE, PAGE, peuvent être codés dans un ordre indifférent. La largur par défaut des colonnes est de 16octets pour les données numériques, de 20 octets pour les données numériques , de 20 octets pour les données alphanumériques. Si les données sont plus larges, il faut au moins un littéral en plus des données (par exemple un blanc) pour que l’ensemble des données s’adapte. Dans notre exemple :

HEADER (‘CODE’) ON(1,4,CH,T’ ‘) CAS 2 : Avec tri des données. ICETOOL peut utiliser des ordres de tri (DFSORT) : //EDITION EXEC PGM=ICETOOL //TOOLMSG DD SYSOUT=* //DFSMSG DD SYSOUT=* //TRI1CNTL DD * SORT FIELDS=(1,4,CH,A) //TEMP DD DSN=&TEMP,DISPR=(,PASS),UNIT=ETUDE,SPACE=(CYL,1), // RECFM=FB,LRECL=80 //ENTREE DD DSN=I00001.LISTE,PRODUIT,DISP=SHR //SORTIE DD SYSOUT=* //TOOLIN DD * * CARTE DE COMMANDES ICETOOL SORT FROM(ENTREE) TO(TEMP) UTSING(TRI1) DISPLAY FROM(TEMP) – LIST (SORTIE) DATE TIME TITLE(‘LISTE SOCIETE’) PAGE – HEADER(‘CODE’) ON(1,4,CH,T’ ‘) - HEADER(‘SOCIETE’) ON(5,20,CH) - HEADER(‘NB SALARIESE’) ON(25,3,PD) - * NOMBRE DE LIGNES PAR PAGE. LINES (66) - WIDTH (133) DFSMSG : DDNAME imposé, compte-rendu du tri. TRI1CNTL : 4 premiers caractères libres (mais obligatoirement 4), 4 derniers caractères imposés. Contient les ordres DFSORT. TEMP : DDNAME libre, contient le fichier trié. TOOLIN : Ordres ICETOOL :

Page 15: JCL Utilities

Anoir SEGHIOUER

Page 15 sur 21

• SORT :ordre de tri du DDNAME d’entrée avec un DDNAME de sortie. • USING : indique le DDNAME portant les ordres de tri.

CAS 3 : Avec tri des données et rupture. //EDITION EXEC PGM=ICETOOL //TOOLMSG DD SYSOUT=* //DFSMSG DD SYSOUT=* //TRI1CNTL DD *

SORT FIELDS=(1,4,CH,A) //TEMP DD DSN=&&TEMP,DISP=(,PASS),UNIT=ETUDE,SPACE=(TRK,1) // RECFM=FB,LRECL=80 //ENTRÉE DD DSN=I00001.LISTE.CLIENT,DISP=SHR //SORTIE DD SYSOUT=* //TOOLIN DD * * CARTES DE COMMANDES ICETOOL SORT FROM (ENTREE) TO (TEMP) USING(TRI1) DISPLAY FROM(TEMP) - LIST(SORTIE) DATE TIME TITLE(‘LISTE STOCK’) PAGE -

HEADER(‘CODE’) ON(1,4,CH,T’ ‘) - HEADER(‘SOCIETE CLIENT’) ON(5,20,CH) - HEADER(‘NB SALARIESE’) ON(25,3,PD) - * LIGNE DE TOTAL GENERAL TOTAL(‘QUANTITE TOTALE : ’) - * CRITERES DE RUPTURE BTITLE(‘TYPE PIECE : ‘) - BTOTAL(‘QTE PIECE : ‘) - BREAK(1,2,CH) - � rupture sur les deux premiers caractères * NOMBRE DE LIGNES PAR PAGES. LINES (66) - WIDTH(133) Contenu du fichier d'entrée : ----+----1----+----2----+----3----+----4----+----5- ---+---- Résultat : ----+----1----+----2----+----3----+----4----+----5- ---+----

Page 16: JCL Utilities

Anoir SEGHIOUER

Page 16 sur 21

TOOLIN : Commandes d’édition.

• TOTAL : Imprime une page supplémentaire, à la fin de l’édition, avec un libellé en début de ligne et le total de chaque colonne numérique à son emplacement. Il est également possible d’utiliser les commandes MINIMUM, MAXIMUM, et AVERTAGE pour imprimer respectivement , le maximum, le minimum, et la moyenne de chaque colonne numérique.

• BREAK : Indique la position, la longueur, et le type du critère de rupture( les types utilisables sons les mêmes que ceux de DFSORT).

• BTITLE : Permet d’indiquer un libellé à afficher avant la valeur du critère de rupture, en dessous de chaque ligne d’entête de page.

• DTOTAL : Imprime, à la fin de chaque rupture, un libellé en début de ligne et le total de chaque colonne numérique à son emplacement. Il est également possible d’utiliser les commandes BMINIMUM, BMAXIMUM, et BAVERAGE pour imprimer respectivement, le Maximum, le Minimum, et la moyenne de chaque colonne numérique.

6.2.2. IEBPTPCH. EXEMPLE : //IMPRIM EXEC PGM PGM=IEBTPCH //SYSPRINT DD SYSOUT=* //SYSUT1 DD DSN=I000001.LISTE.PRODUIT,DISP=SHR //SYSUT2 DD SYSOUT=* //SYSIN DD * PRINT TYPORG=PS,MAXFLDS=4 ,MAXLITS=100 TITLE ITEM=(‘CODE PROD.’,1), ITEM=(‘LIBELLE’,12), ITEM=(‘QTE’,64), ITEM=(‘VALEUR’,69) RECORD FIELD=(5,1,,1), FIELD=(50,6,,12), FIELD=(4,56,,64), FIELD=(5,60,PZ,69) RESULTAT : SYSPRINT : Contient le compte-rendu de l’utilitaire. SYSUT1 : DNAME imposé, porte le fichier d’entrée. SYSUT2 : DDNAME imposé, contient le résultat de l’impression

Page 17: JCL Utilities

Anoir SEGHIOUER

Page 17 sur 21

Possibilité de coder SYSOUT=A,DEST=RMTXXX pour une impression sur papier sur une imprimante donnée (RMTXXX). SYSIN : Commandes de formatage de l’édition :

• TYPORG=PS : le fichier d’entrée est un séquentiel. • MAXFLDS=4 : nombre maximum de commandes FIELD. • MAXLITS=100 : nombre maximum de caractères littéraux dans l’ensemble de la

SYSIN. • TITLE : Commande permettant de placer une ligne d’entête (2 Max) • ITEM=(‘XXXX’,YY) : place le littéral XXXX à la colonne YY. • RECORD FIELD=(1,PD,C,PA) : Place le champ de longueur 1 à la position de départ

PD dans la fichier d’entrée, à la positon d’arrivée PA dans le fichier de sortie, en utilisant éventuellement le paramètre de conversion c (ZP pour packer des données numériques, PZ pour dépacker ces zones).

6.3. Impression en Hexadecimal.

6.3.1. IDCAMS : Cas 1 : Fichier catalogué. //IMPRIM EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * PRINT IDS (I00001.LISTE.PROD) HAX Cas 2 : Fichier non catalogué. /IMPRIM EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //ENTREE DD DSN=&&TEMP2,DISP=(SHR,PASS) //SYSIN DD * PRINT INFILLE (ENTREE) HEX SYSPRINT : Contient le compte-rendu de l’utilitaire et le résultat de l’impression. Possibilité de coder STSOUT=A,DEST=RMTXXX pour une impression sur papier sur une imprimante donnée (RMTXX). ENTREE : Exemple 2, DDNAME quelconque, fichier à imprimer. SYSIN : ordre d’impression. HEX pour impression en héxadécimal. Il est également possible de remplacer HAX par DUMP pour obtenir une impression moitié hexadécimale (partie gauche du listing), moitié caractères affichables (partie droite du listing). Remarque : Les paramètres SKIP(n) et/ou COUNT(m) peuvent être ajoutés en sysin pour respectivement sauter les n première enregistrements et n’en imprimer que m. Voir les chapitres concernant les fichiers VSAM pour plus de paramètres. 6.3.2. IEBPTPCH //IMPRIM EXEC PGM=IEBPTPCH //SYSPRINT DD SYSOUT=* //SYSUT1 DD DSN=I00001.LISTE.PRODUIT,DISP=SHR //SYSUT2 DD DYSOUT=* //SYSIN DD * PRINT TOTCONV=XE SYSPRINT : Contient le compte-rendu de l’utilitaire. SYSUT1 : DDNAME imposé, porte le fichier d’entrée.

Page 18: JCL Utilities

Anoir SEGHIOUER

Page 18 sur 21

SYSUT2 : DDNAME imposé, contient le résultat de l’impression sur papier sur une imprimante donnée (RMTXXX). SYSIN : Commande demandant l’impression en héxadécimal.

7. REFORMATAGE D’ENREGISTREMENTS.

7.1. DFSORT. DFSORT permet de reformater des enregistrements avant ou après le tri, grâce aux commandes INREC et OUTREC. Exemple : //FORMATE EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SORTOUT DD DSN=I00001.LISTE.PRDUIT,DISP=(NEW,CATLG,DELETE), // UNIT=ETUDE,SPACE=(TRK,(1,1),RLSE),LRECL=100,RECFM=FB //SORTWK01 DD UNIT=ETUDE,SPACE=(TRK,(1,1)) //SYSIN DD * INREC FIELDS=(1:C’CODE : ‘,7:1,6,14:2X,16:C’SOCIETE : ‘,

26:7,25,51:2X,53:C’PRODUIT : ‘,63:32,25) SORT FIELDS=(8,6,CH,A) A : B , C A :Position en fichier de sortie. B : Position dans le fichier en entrer. C : Longueur de la zone. Entre cote en ne peut pas mettre des caractère spéciaux (&,’, »,% …) Contenu du fichier d'entrée : ----+----1----+----2----+----3----+----4----+----5- ---+----6----+----7----+----8----+----9-- 000001RONE ET FRERE BOUCLE D’OREIL 000010BAROND BIJOUTERIE BAGUE 000100ROBERT OR HORLOGERIE BRASELET

Résultat : ----+----1----+----2----+----3----+----4----+----5- ---+----6----+----7----+----8----+----9-- CODE : 000001 SOCIETE : RONE ET FRERE PRODUIT : BOUCLE D’OREIL CODE : 000010 SOCIETE : BAROND BIJOUTERIE PRODUIT : BAGUE CODE : 000100 SOCIETE : ROBERT OR HORLOGERIE PRODUIT : BRASELET

SYSOUT : Compte-rendu de l’utilisateur. SORTIN : DDNAME imposé, porte le fichier d’entrée. SORTOUT : DDNAME imposé, porte le fichier de sortie. SORTWK01 : DDNAME imposé, fichier de travail de l’utilisateur. SYSIN : Commandes de reformatage et de tri.

• INREC FIELDS : o 1 :C’CODE : ‘ , on impose le littéral ‘CODE : ‘ à la position 1 dans le fichier

de sortie. o 8 :1,6 : a la position 8 dans le fichier de sortie, on insère 6 octets se trouvant à

la position 1 dans le fichier d’entrée. o 14 :2X : A la position 14 dans le fichier de sortie, on insert 2 blancs. o 16 :C’SOCIETE : ‘ : A la position 16 dans le fichier de sortie, on insère le

littéral ‘SOCIETE : ‘ o 26:7,25 : a la position 26 dans le fichier de sortie, en insert 25 caractères se

trouvant à la position 7 du fichier en entrée. o 51:2X : A la position 51 dans le fichier de sortie, on insert 2 blancs. o 53:C’PRODUIT : ‘ : a la position 53 du fichier de sortie, en insert le littéral.

Page 19: JCL Utilities

Anoir SEGHIOUER

Page 19 sur 21

o 63:32,25 : A la position 63 dans le fichier de sortie, en insère 25 caractère se trouvant à la position 32 du fichier en entré.

SORT FIELDS : 8,6,CH,A : On trie le fichier en ascendant sur les 6 caractères se trouvant à la position 8 après le reformatage des enregistrements.

REMARQUE : • La commande OUTREC FIELDS peut être utilisée à la place de la commande INREC

FIELDS pour effectuer le tri avant le reformatage des enregistrements. • La commande SORT FIELDS est obligatoire. • L’insertion de littéraux peut se faire avec les syntaxes suivantes :

o C’littéral’ : pour insérer une chaîne de caractère. o nX : pour insérer n blancs, o nZ : pour insérer n zéros binaires (low-value), o X’valeur hexa’ : pour insérer une valeur hexadécimale quelconque.

• L’indicateur de la colonne d’arrivée (ex : 15 :X,Y) st facultative. Le champ est alors positionné derrière le précédent.

7.2.IEBGENER. Il permet de packer ou de dépacker des zones numérique. //FORMATE EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSUT1 DD DSN=I00001.LISTE.PRODUIT,DISP=SHR //SYSUT2 DD DSN=I00001.LISTE.PRODUIT.NUM,DISP=(,CATLG,) // UNIT=ETUDE,SPACE=(TRK,(1,1),RLSE),RECFM=FB,LRECL=100 //SYSIN DD * GENERATE MAXFLDS=3 RECORD FIELD=(20,1,,1) FIELD=(5,21,ZP,21) FIELD=(25,26,,24) // Contenu du fichier d'entrée : ----+----1----+----2----+----3----+----4----+----5- ---+----6----+----7----+----8----+----9-- JEAN VALERI 00011BOUCLE D’OREIL JEAN MICHEL 00007BAGUE ANNE-MARIE 00021BRASELET

Résultat : ----+----1----+----2----+----3----+----4----+----5- ---+----6----+----7----+----8----+----9-- JEAN VALERI ...BOUCLE D’OREIL JEAN MICHEL ...BAGUE ANNE-MARIE ...BRASELET

SYSPRINT : Compte rendu de l’utilitaire. SYSUT1 : DDNAME imposé, porte le fichier d’entrée. SYSUT2 : DDNAME imposé, porte le fichier de sortie. SYSIN : Commandes de reformatage :

GENERATE MAXFLDS : Nombre de commandes FIELD dans la sysin. RECORD FIELD :

o 20,1,,1 : 20 octets en positions 1 dans le fichier d’entrée sont placés en position 1 dans le fichier de sortie. o 5,21,ZP,21 : 5 octets (position numériques) en position 21 dans le fichier d’entrée sont packés puis placés en position 21 dans le fichier en sortie. o 25,26,,24 : 25 octets en position 26 dans le fichier d’entrée sont placés en position 24 dans le fichier de sortie.

REMARQUES :

Page 20: JCL Utilities

Anoir SEGHIOUER

Page 20 sur 21

Le paramètre de conversion peur être ZP pour packer , PZ pour dépacker les données numérique. Une fois packer,la longueur d’une zone numérique est égale à la partie entière de la longueur initiale divisée par 2 plus 1.

8. COMPARAISON DE FICHIERS. La comparaison de deux fichiers séquentiels ou partitionnés se fait à l’aide de IEBCOMPR. Dans le compte rendu d’exécution (SYSPRINT) on récupère les anomalies rencontrées :

• Enregistrement inexistant dans le fichier 1. • Enregistrement inexistant dans le fichier 2.

La comparaison renvoie les codes retour suivants : • ‘00’ fichiers identiques. • ‘08’ fichiers différents.

Exemple : //STEP EXEC PGM=IEBCOMPR //SYSPRINT DD SYSOUT*,OUTLIM=500 //SYSUT1 DD DSN=I00001.LISTE.PRODUIT.OLD,DISP=SHR //SYSUT2 DD DSN=I00002.LISTE.PRODUIT.NEW,DISP=SHR //SYSIN DD * COMPARE TYPORG=PS // SYSUT1 et SYSUT2 : DDNAME imposes. Fichier à comparer. COMPARE : Commande qui permet la comparaison. TYPORG : Type d’organisation, deux valeurs possibles : PS : Fichier séquentiel, valeur par défaut. PO : Fichier partitionné. Remarque : On ne peut comparer que des fichiers ayant la même organisation.

9. REORGANISATION. La réorganisation de PDS se fait à l’aide d’IEBCOPY en recopiant le PDS sur lui-même. //REORGAN EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //PDS DD DSN=I00001.LISTE.PRODUIT,DISP=OLD //SYSIN DD * COPY OUTDD=PDS,INDD=PDS SYSPRINT : Compte-rendu de l’utilitaire. PDS : DDNAME quelconque, porte le PDS à réorganiser. SYSIN : Commande permettant la recopie du PDS sur lui-même. Remarque : Il est souhaitable de lancer une telle opération, de faire une sauvegarde du PDS. Le paramètre DISP=OLD, peut être remplacer par DISP=SHR afin de pouvoir lancer la réorganisation en mode partagé ; mais attention, une sauvegarde de membre sous TSO pendant le passage de la passage de la réorganisation peut détruire les pointeurs de la directory.

Page 21: JCL Utilities

Anoir SEGHIOUER

Page 21 sur 21

10. CATALOGAGE / DECATALOGAGE DE FICHIER. //STEP1 EXEC PGM=IEFBR14 //FIC1 DD DSN=I00001.LISTE.PRODUIT,DISP=(SHR,CATLG),UNIT=ETU DE, // VOL=SER=YYYYYY //FIC2 DD DSN=I00001.LISTE.PRODUIT,DISP=(SHR,UNCAT LG) FI1, FIC2 : DDNAME quelconques. IEFBR14 sert ici de programme fictif pour le catalogage et le dé catalogage de fichier.

11.CREATION DE MEMBRES D’UN PARTITIONNE. Peu utilisée, cette fonction permet de copier un fichier sur bande dans un fichier partitionné. //STEP1 EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSUT1 DD DSN=I00001.LISTE.PRODUIT,DISP=SHR //SYSUT2 DD DSN=I00002.LISTE.TEST,DISP=SHR //SYSIN DD * GENERATE MAXNAME=3,MAXGPS=2,MAXLITS=100 MEMBER NAME=MBR1 RECORD IDENT=(7,’MEMBRE1’,1) MEMBER NAME=MBR2 RECORD IDENT=(7,’MEMBRE2’,1) MEMBRE NAME=MBR3 // en copy dans MBR1 tous les enregistrements de SYSUT1 jusqu’à ce qu’on trouve un enregistrement avec MEMBRE1 en première position sur 7 caractères, ensuite on passe à MBR2 puis à MBR3 jusqu’à la fin du fichier. SYSPRINT : Compte-rendu de l’utilitaire. SYSUT1 : DDNAME imposé, porte le fichier d’entrée. SYSUT2 : DDNAME imposé, porte le PDS de sortie. SYSIN : Commande de création de membre :

o MAXNAME : nombre de commandes Name dans la SYSIN. o MAXGPS : nombre de commandes IDENT dans la sysin. o MAXLITS : nombre de caractères littéraux dans la sysin.