Académique Documents
Professionnel Documents
Culture Documents
JCL Utili
JCL Utili
UTILITAIRES
Page 1 sur 21
Anoir SEGHIOUER
SOMMAIRE
Introduction. ........................................................................................................................... 3 Compte Rendu........................................................................................................................ 3 Fichiers en entre. .................................................................................................................. 3 Fichiers en sortie. ................................................................................................................... 4 Fichier de commandes............................................................................................................ 4 Fichiers de travail. .................................................................................................................. 4 1. ALLOCATION DE FICHIERS. ........................................................................................ 4 1.1. Allocation de fichier squentiel................................................................................... 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 squentiel........................................................................................... 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 formate. ....................................................................................................... 13 6.2.1. ICETOOL............................................................................................................... 13 6.2.2. IEBPTPCH. ............................................................................................................ 16 6.3. Impression en Hexadecimal. ..................................................................................... 17 6.3.1. IDCAMS : .............................................................................................................. 17 7. REFORMATAGE DENREGISTREMENTS................................................................. 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 DUN PARTITIONNE. .................................................. 21
Page 2 sur 21
Anoir SEGHIOUER
Introduction.
C'est un ensemble de programmes gnraux fournis par les constructeurs IBM (entre autre), et destins faciliter la maintenance du systme. Ils servent en gnrale pour plusieurs catgories de maintenance. Ils cadrent un besoin technique de travail pour effectuer les types d'opration suivante : Il permet d'agir au niveau des catalogues, des disques, des contrles d'accs. Les noms de cette catgorie d'utilitaire commencent en gnrale par IEH. Permettent de copier, comparer, rorganiser les fichiers. C'est les utilitaires le plus utiliser pour le dveloppement et la maintenance. Leurs noms commencent par IEB. Un ensemble d'utilitaire permettant l'organisation des disques, mettre en place le systme initial. Ils ne sont pas utiliss par les programmeurs et reste le domaine de la cellule exploitation et programmeur systme. L'ensemble de ces utilitaires sont comparables et s'utilise d'une manire trs semblables. Lors de leur utilisation et mise au point ils mettent les mmes codes d'erreur. Les utilitaires possdent gnralement un ou plusieurs fichiers en entre, 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 manipuls avec l'utilitaire IDECAMS et son langage associ AMS. o L'ensemble du code et syntaxes prsent 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 rsultat de un tat de l'avance ment du JOB. //SYSPRINT DD SYSOUT=* Il faut toujours dfinir dans le Job. Elle est obligatoire, lors d'un oubli l'utilitaire ne s'excute pas. Le code retour utilitaire associ la SYSPRINT : 00 Ok 04 Avertissement 08 Execut mais il y a un problme. 12 ou 16 Erreur Systme.
Fichiers en entre.
Fichier standard : //SYSUT1 DD DSN=U00001.INITE.PRODUIT,DISP=.
Fichiers utilisateur : Plusieurs utilisateurs acceptent en entre des fichiers de DDNAME dfinis par l'utilisateur condition qu'ils soient prciss dans le fichier de commande SYSIN. Exemples : //IN1 DD DSN= //IN2 DD DSN=
Page 3 sur 21
Anoir SEGHIOUER
//Entree
DD
DSN= etc
Fichiers en sortie.
Fichier standard : //SYSUT2 DD DSN= Fichiers utilisateurs : La majorit des utilitaires utilise des fichiers de DDNAME dfinis par lutilisateur dans les mmes 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 actives par des commandes que lon code, en gnral dans une carte SYSIN. //SYSIN DD * PRINT TITLE ITEM=(EDITION EN CLAIR,10) RECORD FIELD=(30,1,,10), FIELDS=(9,31,PZ,43) Rgles : Chaque carte doit commencer par un ou plusieurs blancs, mais avant la colonne 16. Si une ligne ne peut contenir tous les paramtres, le dernier dune carte doit tre suivi dune virgule (sauf IDCAMS et ICETOOL qui utilisent le - comme caractre de continuation) et le suivant doit commencer entre les colonnes 4 et 16 comprises.
Fichiers de travail.
Jusqu 16 fichiers de travail peuvent tre dfinis avant les utilitaires. On utilise gnralement des fichiers temporaires. Les DDNAME sont imposs : //SYSUT3 DD UNIT=SYSDA,SPACE= //SYSUT4 DD UNIT=SYSDA,SPACE= //SORTWK01 DD UNIT=SYSDA,SPACE= etc .
1. ALLOCATION DE FICHIERS.
Elle se fait laide de IEBGENER ou IEFBR14, pour les fichier squentiels ou partitionns.
1.1.1. IEBGENER.
PGM=IEBGENER SYSOUT=* DUMMY DSN=I00001.LISTE.PRODUIT,DISP=(NEW,CATLG,CATLG), UNIT=ETUDE,SPACE=TRK,(1,2),RECFM=FB,LRECL=300 //SYSIN DD DUMMY Le fichier cre est un fichier vide. Dans ce JCL, 4 fichier sont utiliser : Exemple : //ALLOC1 //SYSPRINT //SYSUT1 //SYSUT2 EXEC DD DD DD
Page 4 sur 21
Anoir SEGHIOUER
SYSPRINT : cest le fichier du compte rendu dexcution de lutilitaire. SYSUT1 : DUMMY SYSUT2 : crire lensemble des critres qui dcrivent le fichier. SYSIN : DUMMY pour la cration.
1.1.2.IEFBR14.
//ALLOC //FIC // EXEC PGM=IEFBR14 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 lallocation du fichier en utilisant simplement les paramtres de la carte DD. Lallocation de fichier par IEFBR14, bien que plus simple que par IEBGENER, provoque parfois des dysfonctionnements lutilisation du fichier plantage avec certains langage,, nombre denregistrement diffrent de 0 alors que le fichier est vide). Lusage de ces fichiers par des programmes COBOL ne manifeste pas de problme de ce genre.
1.2.1. IEBGENER.
//ALLOCPDS //SYSPRINT //SYSUT1 DD //SYSUT2 DD // // //SYSIN DD EXEC PGM=IEBGENER DD SYSOUT=* DUMMY DSN=I00001.PROJET1.SRCE,DISP=(NEW,CATLG,CATLG), UNIT=ETUDE,SPACE=(TRK,(4,10,5)), RECFM=FB,LRECL=80 DUMMY
5 Block de directory : 5 6 30 SYSPRINT : Contient le compte rendu dexcution de lutilitaire. SYSUT1 : DUMMY SYSUT2 : ensemble des caractristiques du fichier. Le paramtre SPACE contient le nombre de blocs de directory du PDS crer (ici 5, ce qui correspond 65 = 30 membres). Le paramtre DSNTYPE=LIBRARY, facultatif, peut tre ajout pour crer un PDS-E. SYSIN : DUMMY pour cette utilisation dIEBGENER.
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 lensemble des critre de la bibliothque cre.
2. SUPPRESSION DE FICHIERS.
Elle peut tre effectu par IDCAMS ou IEFBR14.
Page 5 sur 21
Anoir SEGHIOUER
2.1. IEFBR14.
//DELETE //FIC1 //FIC2 // EXEC PGM=IEFBR14 DD DSN=I00001.LISTE.PRODUIT1,DISP=(OLD,DELETE) 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 utilise lors de suppression prventive.
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 lutilitaire. SYSIN : Paramtre de lutilitaire, liste des fichiers supprimer. La commande MAXCC=0 permet de rduire le code retour de lutilitaire 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 ralis par IEBGENER, EDCAMS, ou IEBCOPY.
: Contient le compte-rendu d'excution de l'utilitaire. : DDNAME impos. Fichier source. Peut tre catalogu ou temporaire. : DDNAME impos. Fichier cible. Peut tre catalogu ou temporaire. Si le fichier cible n'existe pas il faut prciser l'ensemble des paramtres obligatoire pour la cration. RECFM et LRECL sont facultatifs si le fichier source et cible ont les mmes caractristiques. Si le fichier existe dj prciser uniquement DSN et le DISP. : DUMMY pour cette utilisation de IEBGENER.
Page 6 sur 21
Anoir SEGHIOUER
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 SYSIN : Contient le compte-rendu d'excution de l'utilitaire. : 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 prsence du caractre '-' qui spcifie la continuation. L'exemple est pour des fichiers catalogus. Si le fichier source n'est pas catalogu (temporaire, ou membre de bibliothque), 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=ETUDE, // SPACE=(TRK,(1,2),RLSE),RECFM,FB,LRECL=100 //SYSIN DD * REPRO INFILE (ENTREE) OUTFILE (SORTIE) SYSPRINT : Contient le compte-rendu d'excution de l'utilitaire. SYSIN : Commande REPRO pour la copie de fichier. INFILE prcise le ddname du fichier source. OUTFILE prcise le ddname du fichier cible. Ils est a not la prsence du caractre '-' qui spcifie la continuation. La commande REPRO dispose de deux paramtres SKIP(n) et COUNT(m) pouvant tre utiliss 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 indiffremment, suivant les besoins, mixer lemploi de IDS, ODS, INFILE et OUTFILE.
Page 7 sur 21
Anoir SEGHIOUER
3.2.1. Sauvegarde.
Sauvegarde dans un fichier squentiel, si le fichier source est un PDS cest 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=ENTRE /* SYSPRINT : Contient le compte-rendu d'excution de l'utilitaire. ENTREE : DDNAME quelconque. PDS en entre. SORTIE : DDNAME quelconque. Squentiel en sortie (en cration dans cet exemple). SYSIN : paramtrage de lutilitaire. OUTDD : DDNAME du fichier de sortie. INDD : DDNAME du PDS en entre.
3.2.2. Restauration.
Restauration d'un PDS partir d'un fichier squentiel compress obtenu par sauvegarde par IEBCOPY (voir exemple prcdent). //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. Squentiel de sauvegarde en entre. SORTIE : DDNAME quelconque. PDS en sortie (en cration dans cet exemple). SYSIN : Paramtrage de l'utilitaire OUTDD : DDNAME PDS de sortie. INDD : DDANME du fichier en entre.
Anoir SEGHIOUER
SYSIN : Paramtrage de l'utilisateur : OUTDD : DDNAME du PDS en sortie. INDD : DDNAME du PDS en entre. S M=. : est l'abrviation de SELECT MEMBER Cas 1 : si le membre MBR1 existe dj en sortie, il n'est pas recopi. Cas 2 : Si le membre MBR2 existe dj en sortie, il est remplac. Cas 3 : Le membre MBR3 est recopi sous le nom de MBR4, si le membre MBR4 n'existe pas dj 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 dj en sortie, il est remplac. Remarque : o Sans la commande S M= tous les membres sont recopis, sauf ceux dj 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.
Page 9 sur 21
Anoir SEGHIOUER
SORTWK01 : DDNAME impos, fichier de travail du tri SYSIN : Commandes de tri sous forme position, longueur, type, squence. (tri sur le premier champ) Position : position du critre du tri. Longueur : longueur en octets du critre de tri. Type : type du critre de tri. Peut tre : CH : Caractre EBCDIC. PD : Dcimal sign pack. BI : Valeurs binaires 'quivalent CH) FI : Dcimal sign stock en binaire. ZD : Dcimal sign. Squence : sens du TRI : A pour ascendant, D pour descendant. Important : o L'espace allou au fichier de travail dpend de la taille et volumtrie du fichier tri. o Il est dconseill de trier un fichier sur lui-mme. o Il est possible d'liminer les doublons sur les critres de tri en codant : //SYSIN DD * SORT FIELDS=(position,longueur,type,squence,position,longueur,type,squence) SUM FIELDS=NONE o Si tous les critres de tri sont du mme type, on peut coder SYSIN de la manire suivante : //SYSIN DD * SORT FIELDS=(position,longueur,squence,position,longueur,squence,), 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.
Page 10 sur 21
Anoir SEGHIOUER
5. SELECTION D'ENREGISTREMENTS.
DFSORT permet de slectionner des enregistrements avant le tri, grce aux commandes OMIT COND et INCLUDE COND. Exemple: On veut en sortie les enregistrements dont : Les 3 caractres on position 8 sont des 3 caractres en position 60 et La quantit stocke 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'entre. 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'littral', )
Page 11 sur 21
Anoir SEGHIOUER
o Pn, Ln, Tn , : position, longueur et type des zones testes. o op : Comparateur (EQ,NE,GT,GE,LT,LE). o ol : oprateur logique (AND,OR) La syntaxe de l'INCLUDE COND est strictement identique.
6. IMPRESSION DE FICHIER.
C'est un ensemble d'outille permettant la ralisation d'tat simples, pour dition de contenue de fichier.
SYSPRINT : contient le compte-rendu d'excution de l'utilitaire. SYSUT1 : Fichier imprimer. SYSUT2 : Destination de l'impression : o SYSOUT=A : impression papier o SYSOUT=* : Impression jointe au compte rendu d'excution 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
Cas2 : Fichier non catalogu. //IMPRESS EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //ENTRE DD DSN=&&temp1,DISP=(SHR,PASS) //SYSIN DD * PRINT INFILE (ENTREE) CHAR SYSPRINT : Contient le compte rendu de l'utilitaire et le rsultat de l'impression. Possibilit de coder SYSOUT=A, DEST=RMTNNN pour une impression sur papier sur une imprimante donne (RMTNNN). ENTREE : DDNAME quelconque, fichier imprimer. SYSIN : ordre d'impression. CHAR pour impression en caractre affichables. Rq : Les paramtres SKIP(n) et/ou CONT(m) peuvent tre ajouts en sysin pour respectivement sauter les n premiers enregistrements et n'en imprimer que m.(voir les condition des fichiers VSAM pour plus de paramtres).
Page 12 sur 21
Anoir SEGHIOUER
TOOLMSG : Compte rendu de lutilitaire. DFSMSG : Compte rendue de tri interne ICETOOL. ENTREE : DDNAME quelconque, porte le fichier dentre. SORTIE : DDNAME quelconque, porte le nom du fichier ddition. TOOLIN : commandes ICETOOL : DISPLAY : Commande ddition. FROM : DDNAME du fichier dentre. LIST : DDNAME du fichier de sortie. DDATE : Facultatif. Affiche la date dans la ligne de titre.
Page 13 sur 21
Anoir SEGHIOUER
LINES
WIDTH
: Facultatif. Affiche lheur la ligne de titre. : Facultatif. Permet dindiquer le titre et lafficher. : Facultatif. Permet laffichage du numro de page dans la ligne de titre. : Facultatif. Dfini lentte de colonne. : Dfini position, longueur, type de la donne la donne afficher. Les types possibles sont les mmes que ceux du tri. Il est possible dajouter un littral donne, avant celle-ci avec Llittral, et/ou aprs celle-ci avec Tlittral. : Indique le nombre de ligne dans une page, ce qui permet de grer automatiquement les sauts de page et la rcriture du titre et de lentte sur chaque page. Sinon cod, valeur par dfaut : 58. : Indique la largeur du fichier ddition. Si non cod, valeur par dfaut :120.
RQ : Les paramtres DATE, TIME, TITLE, PAGE, peuvent tre cods dans un ordre indiffrent. La largur par dfaut des colonnes est de 16octets pour les donnes numriques, de 20 octets pour les donnes numriques , de 20 octets pour les donnes alphanumriques. Si les donnes sont plus larges, il faut au moins un littral en plus des donnes (par exemple un blanc) pour que lensemble des donnes sadapte. Dans notre exemple : HEADER (CODE) ON(1,4,CH,T ) CAS 2 : Avec tri des donnes. 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 caractres libres (mais obligatoirement 4), 4 derniers caractres imposs. Contient les ordres DFSORT. TEMP : DDNAME libre, contient le fichier tri. TOOLIN : Ordres ICETOOL :
Page 14 sur 21
Anoir SEGHIOUER
SORT :ordre de tri du DDNAME dentre avec un DDNAME de sortie. USING : indique le DDNAME portant les ordres de tri.
CAS 3 : Avec tri des donnes 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 //ENTRE 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 caractres * NOMBRE DE LIGNES PAR PAGES. LINES (66) WIDTH(133) Contenu du fichier d'entre : ----+----1----+----2----+----3----+----4----+----5----+----
Rsultat : ----+----1----+----2----+----3----+----4----+----5----+----
Page 15 sur 21
Anoir SEGHIOUER
TOOLIN : Commandes ddition. TOTAL : Imprime une page supplmentaire, la fin de ldition, avec un libell en dbut de ligne et le total de chaque colonne numrique son emplacement. Il est galement possible dutiliser les commandes MINIMUM, MAXIMUM, et AVERTAGE pour imprimer respectivement , le maximum, le minimum, et la moyenne de chaque colonne numrique. BREAK : Indique la position, la longueur, et le type du critre de rupture( les types utilisables sons les mmes que ceux de DFSORT). BTITLE : Permet dindiquer un libell afficher avant la valeur du critre de rupture, en dessous de chaque ligne dentte de page. DTOTAL : Imprime, la fin de chaque rupture, un libell en dbut de ligne et le total de chaque colonne numrique son emplacement. Il est galement possible dutiliser les commandes BMINIMUM, BMAXIMUM, et BAVERAGE pour imprimer respectivement, le Maximum, le Minimum, et la moyenne de chaque colonne numrique.
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 lutilitaire. SYSUT1 : DNAME impos, porte le fichier dentre. SYSUT2 : DDNAME impos, contient le rsultat de limpression
Page 16 sur 21
Anoir SEGHIOUER
Possibilit de coder SYSOUT=A,DEST=RMTXXX pour une impression sur papier sur une imprimante donne (RMTXXX). SYSIN : Commandes de formatage de ldition : TYPORG=PS : le fichier dentre est un squentiel. MAXFLDS=4 : nombre maximum de commandes FIELD. MAXLITS=100 : nombre maximum de caractres littraux dans lensemble de la SYSIN. TITLE : Commande permettant de placer une ligne dentte (2 Max) ITEM=(XXXX,YY) : place le littral XXXX la colonne YY. RECORD FIELD=(1,PD,C,PA) : Place le champ de longueur 1 la position de dpart PD dans la fichier dentre, la positon darrive PA dans le fichier de sortie, en utilisant ventuellement le paramtre de conversion c (ZP pour packer des donnes numriques, PZ pour dpacker ces zones).
Page 17 sur 21
Anoir SEGHIOUER
SYSUT2 : DDNAME impos, contient le rsultat de limpression sur papier sur une imprimante donne (RMTXXX). SYSIN : Commande demandant limpression en hxadcimal.
7. REFORMATAGE DENREGISTREMENTS.
7.1. DFSORT.
DFSORT permet de reformater des enregistrements avant ou aprs le tri, grce 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:CCODE : ,7:1,6,14:2X,16:CSOCIETE : , 26:7,25,51:2X,53:CPRODUIT : ,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 caractre spciaux (&,, ,% ) Contenu du fichier d'entre :
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9-000001RONE ET FRERE BOUCLE DOREIL 000010BAROND BIJOUTERIE BAGUE 000100ROBERT OR HORLOGERIE BRASELET
Rsultat :
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9-CODE : 000001 SOCIETE : RONE ET FRERE PRODUIT : BOUCLE DOREIL CODE : 000010 SOCIETE : BAROND BIJOUTERIE PRODUIT : BAGUE CODE : 000100 SOCIETE : ROBERT OR HORLOGERIE PRODUIT : BRASELET
SYSOUT : Compte-rendu de lutilisateur. SORTIN : DDNAME impos, porte le fichier dentre. SORTOUT : DDNAME impos, porte le fichier de sortie. SORTWK01 : DDNAME impos, fichier de travail de lutilisateur. SYSIN : Commandes de reformatage et de tri. INREC FIELDS : o 1 :CCODE : , on impose le littral CODE : la position 1 dans le fichier de sortie. o 8 :1,6 : a la position 8 dans le fichier de sortie, on insre 6 octets se trouvant la position 1 dans le fichier dentre. o 14 :2X : A la position 14 dans le fichier de sortie, on insert 2 blancs. o 16 :CSOCIETE : : A la position 16 dans le fichier de sortie, on insre le littral SOCIETE : o 26:7,25 : a la position 26 dans le fichier de sortie, en insert 25 caractres se trouvant la position 7 du fichier en entre. o 51:2X : A la position 51 dans le fichier de sortie, on insert 2 blancs. o 53:CPRODUIT : : a la position 53 du fichier de sortie, en insert le littral.
Page 18 sur 21
Anoir SEGHIOUER
o 63:32,25 : A la position 63 dans le fichier de sortie, en insre 25 caractre se trouvant la position 32 du fichier en entr. SORT FIELDS : 8,6,CH,A : On trie le fichier en ascendant sur les 6 caractres se trouvant la position 8 aprs le reformatage des enregistrements. REMARQUE : La commande OUTREC FIELDS peut tre utilise la place de la commande INREC FIELDS pour effectuer le tri avant le reformatage des enregistrements. La commande SORT FIELDS est obligatoire. Linsertion de littraux peut se faire avec les syntaxes suivantes : o Clittral : pour insrer une chane de caractre. o nX : pour insrer n blancs, o nZ : pour insrer n zros binaires (low-value), o Xvaleur hexa : pour insrer une valeur hexadcimale quelconque. Lindicateur de la colonne darrive (ex : 15 :X,Y) st facultative. Le champ est alors positionn derrire le prcdent.
7.2.IEBGENER.
Il permet de packer ou de dpacker des zones numrique. //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'entre :
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9-JEAN VALERI 00011BOUCLE DOREIL JEAN MICHEL 00007BAGUE ANNE-MARIE 00021BRASELET
Rsultat :
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9-JEAN VALERI ...BOUCLE DOREIL JEAN MICHEL ...BAGUE ANNE-MARIE ...BRASELET
SYSPRINT : Compte rendu de lutilitaire. SYSUT1 : DDNAME impos, porte le fichier dentre. 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 dentre sont placs en position 1 dans le fichier de sortie. o 5,21,ZP,21 : 5 octets (position numriques) en position 21 dans le fichier dentre sont packs puis placs en position 21 dans le fichier en sortie. o 25,26,,24 : 25 octets en position 26 dans le fichier dentre sont placs en position 24 dans le fichier de sortie. REMARQUES :
Page 19 sur 21
Anoir SEGHIOUER
Le paramtre de conversion peur tre ZP pour packer , PZ pour dpacker les donnes numrique. Une fois packer,la longueur dune zone numrique est gale la partie entire de la longueur initiale divise par 2 plus 1.
8. COMPARAISON DE FICHIERS.
La comparaison de deux fichiers squentiels ou partitionns se fait laide de IEBCOMPR. Dans le compte rendu dexcution (SYSPRINT) on rcupre les anomalies rencontres : Enregistrement inexistant dans le fichier 1. Enregistrement inexistant dans le fichier 2. La comparaison renvoie les codes retour suivants : 00 fichiers identiques. 08 fichiers diffrents. 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 dorganisation, deux valeurs possibles : PS : Fichier squentiel, valeur par dfaut. PO : Fichier partitionn. Remarque : On ne peut comparer que des fichiers ayant la mme organisation.
9. REORGANISATION.
La rorganisation de PDS se fait laide dIEBCOPY en recopiant le PDS sur lui-mme. //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 lutilitaire. PDS : DDNAME quelconque, porte le PDS rorganiser. SYSIN : Commande permettant la recopie du PDS sur lui-mme. Remarque : Il est souhaitable de lancer une telle opration, de faire une sauvegarde du PDS. Le paramtre DISP=OLD, peut tre remplacer par DISP=SHR afin de pouvoir lancer la rorganisation en mode partag ; mais attention, une sauvegarde de membre sous TSO pendant le passage de la passage de la rorganisation peut dtruire les pointeurs de la directory.
Page 20 sur 21
Anoir SEGHIOUER
Page 21 sur 21