Explications du File Status 12:
Tentative d’ouverture d’un fichier déjà ouvert.
Explications du File Status 12:
Tentative d’ouverture d’un fichier déjà ouvert.
Explications du File Status 09:
Aucune pièce(room) dans le répertoire ou le répertoire n’existe pas.
Explications du File Status 08:
Tentative de lecture à partir d’un fichier ouvert pour la sortie.
Dans cet exemple, IFHSTATR est utilisé pour imprimer les enregistrements SMF de type 21.
//REPORT JOB ...
//STEP1 EXEC PGM=IFHSTATR
//SYSUT1 DD UNIT=3480,DSNAME=SYS1.MAN,LABEL=(,SL),
// VOL=SER=volid,DISP=OLD
//SYSUT2 DD SYSOUT=A
/*
L’ensemble de données de sortie peut résider sur n’importe quel périphérique de sortie pris en charge par BSAM.
Remarque : Les paramètres d’entrée LRECL et BLKSIZE ne sont pas spécifiés par IFHSTATR.
Ces informations sont extraites du paramètre DCB de l’instruction DD SYSUT1 ou de l’étiquette de la bande.
Les exemples suivants illustrent certaines des utilisations de IEHPROGM.
Le tableau 1 peut être utilisé comme guide de référence rapide pour les exemples IEHPROGM.
Les nombres dans la colonne Exemple pointent vers les exemples qui suivent.
Opération | Dispositif | Commentaires | Exemple |
---|---|---|---|
SCRATCH | Disque | Le DSCB des jeux de données est rayé. | Exemple 1 : Scratch des ensembles de données système temporaires |
SCRATCH, UNCATLG | Disque | Deux ensembles de données sont rayés et leurs entrées supprimées du catalogue. | Exemple 2 : Scratch et Uncatalog Two Data Sets |
RENAME, UNCATLG, CATLG | Disque | Un ensemble de données est renommé sur deux appareils montables ; l’ancien nom de l’ensemble de données est supprimé. Le jeu de données est catalogué sous son nouveau nom. | Exemple 3 : Renommer un catalogue d’ensembles de données multi-volumes |
UNCATLG | Disque | Les structures d’index pour les ensembles de données de trois générations sont supprimées du catalogue. | Exemple 4 : Décataloguer trois ensembles de données |
RENAME, DELETEP, ADD | Disque | Un ensemble de données est renommé. Les anciens mots de passe sont supprimés et de nouveaux mots de passe sont attribués. | Exemple 5 : Renommer un ensemble de données et définir de nouveaux mots de passe |
LIST, REPLACE | Disque | Une entrée de mot de passe est répertoriée. Le mode et l’état de la protection sont modifiés et des données utilisateur sont ajoutées. | Exemple 6 : répertorier et remplacer les informations de mot de passe |
RENAME | Disque | Un membre d’un ensemble de données partitionné est renommé. | Exemple 7 : renommer un membre d’ensemble de données partitionné |
Les exemples qui utilisent un disque ou une bande à la place des noms ou des numéros de périphérique réels doivent être modifiés avant utilisation.
Les noms ou numéros de périphérique réels dépendent de la façon dont votre installation a défini les périphériques sur votre système.
Dans cet exemple, tous les ensembles de données système temporaires sont rayés de la table des matières du volume.
//SCRVTOC JOB ...
//STEP1 EXEC PGM=IEHPROGM
//SYSPRINT DD SYSOUT=A
//DD2 DD UNIT=disk,VOLUME=SER=222222,DISP=OLD
//SYSIN DD *
SCRATCH VTOC,VOL=disk=222222,SYS
/*
Les instructions de contrôle sont décrites comme suit :
Dans cet exemple, deux ensembles de données sont effacés : SET1 et ABCDE sont effacés du volume 222222.
Les deux ensembles de données ne sont pas catalogués.
//SCRDSETS JOB ...
//STEP1 EXEC PGM=IEHPROGM
//SYSPRINT DD SYSOUT=A
//DD1 DD UNIT=disk,VOLUME=SER=111111,DISP=OLD
//DD2 DD UNIT=disk,DISP=OLD,VOLUME=SER=222222
//SYSIN DD *
SCRATCH DSNAME=SET1,VOL=disk=222222
UNCATLG DSNAME=SET1
SCRATCH DSNAME=A.B.C.D.E,VOL=disk=222222
UNCATLG DSNAME=A.B.C.D.E
/*
Les déclarations de contrôle d’utilité sont discutées comme suit :
Dans cet exemple, le nom d’un ensemble de données est modifié sur deux volumes montables.
L’ancien nom d’ensemble de données est supprimé et l’ensemble de données est catalogué sous son nouveau nom d’ensemble de données.
//RENAMEDS JOB ...
//STEP1 EXEC PGM=IEHPROGM
//SYSPRINT DD SYSOUT=A
//DD1 DD VOLUME=SER=111111,UNIT=disk,DISP=OLD
//DD2 DD UNIT=(disk,,DEFER),DISP=OLD,
// VOLUME=(PRIVATE,SER=(222222,333333))
//SYSIN DD *
RENAME DSNAME=A.B.C,NEWNAME=NEWSET,VOL=disk=(222222,333333)
UNCATLG DSNAME=A.B.C
CATLG DSNAME=NEWSET,VOL=disk=(222222,333333)
/*
Les instructions de contrôle sont décrites comme suit :
Dans cet exemple, trois ensembles de données, ABCDEFSET1, ABCGHSET2 et ABIJKSET3, ne sont pas catalogués.
//DLTSTRUC JOB ...
//STEP1 EXEC PGM=IEHPROGM
//SYSPRINT DD SYSOUT=A
//DD1 DD UNIT=disk,VOLUME=SER=111111,DISP=OLD
//SYSIN DD *
UNCATLG DSNAME=A.B.C.D.E.F.SET1
UNCATLG DSNAME=A.B.C.G.H.SET2
UNCATLG DSNAME=A.B.I.J.K.SET3
/*
Les instructions de contrôle sont discutées comme suit :
Les instructions UNCATLG spécifient que les ensembles de données ABCDEFSET1, ABCGHSET2 et ABIJKSET3 ne sont pas catalogués.
Dans cet exemple, un ensemble de données est renommé.
Les mots de passe d’ensemble de données attribués à l’ancien nom d’ensemble de données sont supprimés.
Ensuite, deux mots de passe sont attribués au nouveau nom de l’ensemble de données.
Si l’ensemble de données n’est pas catalogué, un message est émis indiquant que la macro-instruction LOCATE s’est terminée sans succès.
//ADDPASS JOB ...
//STEP1 EXEC PGM=IEHPROGM,PARM='NOPRINT'
//SYSPRINT DD SYSOUT=A
//DD1 DD VOLUME=SER=222222,DISP=OLD,
// UNIT=disk
//SYSIN DD *
RENAME DSNAME=OLD,VOL=disk=222222,NEWNAME=NEW
DELETEP DSNAME=OLD,PASWORD1=KEY
ADD DSNAME=NEW,PASWORD2=KEY,TYPE=1, X
DATA='SECONDARY IS READ'
ADD DSNAME=NEW,PASWORD2=READ,CPASWORD=KEY,TYPE=2, X
DATA='ASSIGNED TO J. DOE'
/*
Les déclarations de contrôle d’utilité sont discutées comme suit :
Dans cet exemple, les informations d’une entrée de mot de passe sont répertoriées.
Ensuite, le mode de protection du mot de passe, l’état de protection de l’ensemble de données et les données utilisateur sont modifiés.
//REPLPASS JOB ...
//STEP1 EXEC PGM=IEHPROGM,PARM='NOPRINT'
//SYSPRINT DD SYSOUT=A
//DD1 DD UNIT=disk,VOLUME=SER=111111,DISP=OLD
//DD2 DD VOLUME=(PRIVATE,SER=(222222,333333)),
// UNIT=(disk,,DEFER),DISP=OLD
//SYSIN DD *
LIST DSNAME=A.B.C,PASWORD1=ABLE
REPLACE DSNAME=A.B.C,PASWORD1=ABLE,PASWORD2=ABLE,TYPE=3, X
VOL=disk=(222222,333333), X
DATA='NO SECONDARIES; ASSIGNED TO DEPT 31'
/*
Les déclarations de contrôle d’utilité sont discutées comme suit :
Dans cet exemple, un membre d’un ensemble de données partitionnées est renommé.
//REN JOB ...
//STEP1 EXEC PGM=IEHPROGM
//SYSPRINT DD SYSOUT=A
//DD1 DD VOL=SER=222222,DISP=OLD,UNIT=disk
//SYSIN DD *
RENAME VOL=disk=222222,DSNAME=DATASET,NEWNAME=BC,MEMBER=ABC
/*
Les instructions de contrôle sont discutées comme suit :
Ces exemples illustrent certaines des utilisations de IEHMOVE.
Vous pouvez utiliser le tableau 1 comme guide de référence rapide pour les exemples IEHMOVE.
Opération | Organisation de l’ensemble de données | Dispositif | Commentaires | Exemple |
---|---|---|---|---|
MOVE | Groupe d’ensembles de données | Disque | Le groupe d’ensembles de données est déplacé. | Exemple 1 : Déplacer des ensembles de données séquentiels d’un volume de disque vers des volumes distincts |
MOVE | partitionné | Disque | Un ensemble de données partitionné est déplacé ; un membre d’un autre ensemble de données partitionné est fusionné avec lui. | Exemple 2 : Déplacer l’ensemble de données partitionnées vers le volume de disque et fusionner |
MOVE | Volume | Disque | Un volume d’ensembles de données est déplacé vers un volume de disque. | Exemple 3 : Déplacer le volume des ensembles de données vers le volume du disque |
MOVE | partitionné | Disque | Un ensemble de données est déplacé vers un volume sur lequel de l’espace a été précédemment alloué. | Exemple 4 : Déplacer l’ensemble de données partitionné vers l’espace alloué |
MOVE | partitionné | Disque | Trois ensembles de données sont déplacés et déchargés vers un volume sur lequel de l’espace a été précédemment alloué. | Exemple 5 : déplacer et décharger le volume d’ensembles de données partitionnés |
MOVE | Séquentiel | Disque et bande | Un ensemble de données séquentielles est déchargé sur un volume de bande à 9 pistes sans étiquette. | Exemple 6 : Décharger un jeu de données séquentiel sur un volume de bande sans étiquette |
MOVE | Séquentiel | Disque et bande | Les ensembles de données déchargés sont chargés à partir d’un seul volume. | Exemple 7 : charger des ensembles de données séquentielles déchargées à partir d’une bande étiquetée |
MOVE | Séquentiel | Disque | Le volume source est démonté une fois la tâche terminée. Deux disques montables. | Exemple 8 : Déplacer un groupe d’ensembles de données catalogués |
Les exemples qui utilisent un disque ou une bande à la place des noms ou des numéros de périphérique réels doivent être modifiés avant utilisation.
Les noms ou numéros de périphérique réels dépendent de la façon dont votre installation a défini les périphériques sur votre système.
Dans cet exemple, trois ensembles de données séquentiels (SEQSET1, SEQSET2 et SEQSET3) sont déplacés d’un volume de disque vers trois volumes de disque distincts.
Chacun des trois volumes de réception est monté lorsque requis par IEHMOVE.
Les ensembles de données source ne sont pas catalogués. L’espace est alloué par IEHMOVE.
//MOVEDS JOB ...
//STEP1 EXEC PGM=IEHMOVE
//SYSPRINT DD SYSOUT=A
//SYSUT1 DD UNIT=disk,VOLUME=SER=333333,DISP=OLD
//DD1 DD UNIT=(disk,,DEFER),DISP=OLD,
// VOLUME=(PRIVATE,,SER=(222222))
//DD2 DD UNIT=(disk,,DEFER),DISP=OLD,
// VOLUME=(PRIVATE,,SER=(222333))
//DD3 DD UNIT=(disk,,DEFER),DISP=OLD,
// VOLUME=(PRIVATE,,SER=(222444))
//DD4 DD VOLUME=(PRIVATE,RETAIN,SER=(444444)),
// UNIT=disk,DISP=OLD
//SYSIN DD *
MOVE DSNAME=SEQSET1,TO=disk=222222,FROM=disk=444444
MOVE DSNAME=SEQSET2,TO=disk=222333,FROM=disk=444444
MOVE DSNAME=SEQSET3,TO=disk=222444,FROM=disk=444444
/*
Les instructions de contrôle sont discutées comme suit :
Dans cet exemple, un ensemble de données partitionné (PARTSET1) est déplacé vers un volume de disque.
De plus, un membre (PARMEM3) d’un autre ensemble de données partitionné (PARTSET2) est fusionné avec les membres source sur le volume de réception.
L’ensemble de données partitionnées source (PARTSET1) est rayé. L’espace est alloué par IEHMOVE.
//MOVEPDS JOB ...
//STEP1 EXEC PGM=IEHMOVE
//SYSPRINT DD SYSOUT=A
//SYSUT1 DD UNIT=disk,VOLUME=SER=333000,DISP=OLD
//DD1 DD UNIT=disk,VOLUME=SER=111111,DISP=OLD
//DD2 DD UNIT=disk,VOLUME=SER=222111,DISP=OLD
//DD3 DD UNIT=disk,VOLUME=SER=222222,DISP=OLD
//DD4 DD UNIT=disk,VOLUME=SER=222333,DISP=OLD
//SYSIN DD *
MOVE PDS=PARTSET1,TO=disk=222333,FROM=disk=222111
INCLUDE DSNAME=PARTSET2,MEMBER=PARMEM3,FROM=disk=222222
/*
Les instructions de contrôle sont discutées comme suit :
Dans cet exemple, un volume d’ensembles de données est déplacé vers un volume de disque.
Tous les ensembles de données déplacés avec succès sont supprimés du volume source ;
cependant, les entrées de catalogue appartenant à ces ensembles de données ne sont pas modifiées.
L’espace est alloué par IEHMOVE.
//MOVEVOL JOB ...
//STEP1 EXEC PGM=IEHMOVE
//SYSPRINT DD SYSOUT=A
//SYSUT1 DD UNIT=disk,VOLUME=SER=222222,DISP=OLD
//DD1 DD UNIT=disk,VOLUME=SER=111111,DISP=OLD
//DD2 DD UNIT=disk,VOLUME=SER=222222,DISP=OLD
//DD3 DD UNIT=disk,VOLUME=SER=333333,DISP=OLD
//SYSIN DD *
MOVE VOLUME=disk=333333,TO=disk=222222,PASSWORD
/*
Les instructions de contrôle sont décrites comme suit :
Dans cet exemple, un ensemble de données partitionné est déplacé vers un volume de disque sur lequel de l’espace a été précédemment alloué pour l’ensemble de données.
L’ensemble de données source est barré.
//MOVEPDS JOB ...
//STEP1 EXEC PGM=IEHMOVE
//SYSPRINT DD SYSOUT=A
//SYSUT1 DD UNIT=disk,VOLUME=SER=222222,DISP=OLD
//DD1 DD UNIT=disk,VOLUME=SER=111111,DISP=OLD
//DD2 DD UNIT=disk,VOLUME=SER=222222,DISP=OLD
//DD3 DD UNIT=disk,VOLUME=SER=333333,DISP=OLD
//SYSIN DD *
MOVE PDS=PDSSET1,TO=disk=222222,FROM=disk=333333
/*
Les instructions de contrôle sont décrites comme suit :
Dans cet exemple, trois ensembles de données partitionnés sont déplacés de trois volumes source distincts vers un volume de disque.
L’ensemble de données source PDSSET3 est déchargé.
La taille de l’enregistrement dépasse la capacité des pistes du volume de réception.
//MOVEPDS JOB ...
//STEP1 EXEC PGM=IEHMOVE
//SYSPRINT DD SYSOUT=A
//SYSUT1 DD UNIT=disk,VOLUME=SER=222222,DISP=OLD
//DD1 DD UNIT=disk,VOLUME=SER=111111,DISP=OLD
//DD2 DD UNIT=(disk,,DEFER),DISP=OLD,
// VOLUME=(PRIVATE,,SER=(333333))
//DD3 DD UNIT=disk,VOLUME=SER=222222,DISP=OLD
//SYSIN DD *
MOVE PDS=PDSSET1,TO=disk=222222,FROM=disk=333333
MOVE PDS=PDSSET2,TO=disk=222222,FROM=disk=222222
MOVE PDS=PDSSET3,TO=disk=222222,FROM=disk=444444,UNLOAD
/*
PDSSET1, PDSSET2 et PDSSET3 sont déjà alloués sur le volume de réception.
PDSSET3 est alloué en tant qu’ensemble de données séquentiel ; PDSSET1 et PDSSET2 sont alloués en tant qu’ensembles de données partitionnés.
Étant donné que PDSSET3 est déplacé vers un ensemble de données séquentiel, il est déchargé.
Les attributs DCB de PDSSET3 sont :
DCB=(RECFM=U,BLKSIZE=5000)
Les attributs déchargés sont :
DCB=(RECFM=FB,LRECL=80,BLKSIZE=800)
Les instructions de contrôle sont décrites comme suit :
Dans cet exemple, un ensemble de données séquentielles est déchargé sur un volume de bande non étiqueté à 9 pistes (800 bits par pouce).
//UNLOAD JOB ...
//STEP1 EXEC PGM=IEHMOVE
//SYSPRINT DD SYSOUT=A
//SYSUT1 DD UNIT=disk,VOLUME=SER=222222,DISP=OLD
//DD1 DD UNIT=disk,VOLUME=SER=111111,DISP=OLD
//DD2 DD UNIT=disk,VOLUME=SER=222222,DISP=OLD
//TAPEOUT DD UNIT=tape,VOLUME=SER=SCRCH2,DISP=OLD,
// DCB=(DEN=2,RECFM=FB,LRECL=80,BLKSIZE=800),
// LABEL=(,NL)
//SYSIN DD *
MOVE DSNAME=SEQSET1,TO=tape=SCRCH2,
FROM=disk=222222,TODD=TAPEOUT
/*
Les instructions de contrôle sont discutées comme suit :
Dans cet exemple, trois ensembles de données séquentielles déchargées sont chargées à partir d’un volume de bande étiqueté à 7 pistes (556 bits par pouce) vers un volume de disque.
L’espace est alloué par IEHMOVE.
L’exemple suppose que le volume de disque est capable de prendre en charge les ensembles de données dans leurs formes d’origine.
//LOAD JOB ...
//STEP1 EXEC PGM=IEHMOVE
//SYSPRINT DD SYSOUT=A
//SYSUT1 DD UNIT=disk,VOLUME=SER=222222,DISP=OLD
//DD1 DD UNIT=disk,VOLUME=SER=111111,DISP=OLD
//DD2 DD UNIT=disk,VOLUME=SER=222222,DISP=OLD
//TAPESETS DD UNIT=tape,VOLUME=SER=001234,DISP=OLD,
// LABEL=(1,SL),DCB=(DEN=1,TRTCH=C)
//SYSIN DD *
MOVE DSNAME=UNLDSET1,T0=disk=222222, X
FROM=tape=(001234,1),FROMDD=TAPESETS
MOVE DSNAME=UNLDSET2,TO=disk=222222, X
FROM=tape=(001234,2),FROMDD=TAPESETS
MOVE DSNAME=UNLDSET3,TO=disk=222222, X
FROM=tape=(001234,3),FROMDD=TAPESETS
/*
Les instructions de contrôle sont décrites comme suit :
Dans cet exemple, le groupe d’ensembles de données catalogués ABC, qui comprend les ensembles de données ABCX, ABCY et ABCZ, est déplacé de deux volumes de disque vers un troisième volume.
L’espace est alloué par IEHMOVE.
Le catalogue est mis à jour pour faire référence au volume de réception.
Les ensembles de données source sont rayés.
//MOVEDSG JOB ...
//STEP1 EXEC PGM=IEHMOVE
//SYSPRINT DD SYSOUT=A
//SYSUT1 DD UNIT=disk,VOLUME=SER=222222,DISP=OLD
//DD1 DD UNIT=disk,VOLUME=SER=111111,DISP=OLD
//DD2 DD UNIT=disk,VOLUME=SER=222222,DISP=OLD
//DD3 DD UNIT=disk,VOLUME=SER=333333,DISP=OLD
//DD4 DD UNIT=disk,VOLUME=SER=444444,DISP=OLD
//SYSIN DD *
MOVE DSGROUP=A.B.C,TO=disk=222222
/*
Les instructions de contrôle sont discutées comme suit :
//DD3 DD UNIT=(disque,,DEFER),DISP=OLD,
// VOLUME=(PRIVATE,,SER=(333333))
Ces exemples illustrent certaines des utilisations de IEHLIST.
Vous pouvez utiliser le tableau 1 comme guide de référence rapide pour les exemples IEHLIST.
Opération | Dispositif | Commentaires | Exemple |
---|---|---|---|
LISTEPDS | Disque et périphérique de sortie système | Un répertoire PDSE et deux répertoires d’ensembles de données partitionnés sont répertoriés. | Exemple 1 : Répertorier les répertoires partitionnés à l’aide de DUMP et FORMAT |
LISTEVTOC | Disque et périphérique de sortie système | La table des matières du volume est répertoriée sous forme éditée; les blocs de contrôle d’ensemble de données sélectionnés sont répertoriés sous une forme non éditée. | Exemple 2 : Lister la table des matières des volumes non indexés |
Les exemples qui utilisent le disque à la place des numéros ou des noms de périphériques réels doivent être modifiés avant utilisation.
Les numéros ou noms de périphériques réels dépendent de la façon dont votre installation a défini les périphériques sur votre système.
Dans cet exemple, le répertoire d’un PDSE est répertorié.
En outre, les répertoires de deux ensembles de données partitionnés qui résident sur le volume de résidence du système sont répertoriés.
//LISTPDIR JOB ...
//STEP1 EXEC PGM=IEHLIST
//SYSPRINT DD SYSOUT=A
//DD1 DD UNIT=diskB,VOLUME=REF=SYS1.NUCLEUS,DISP=OLD
//DD2 DD UNIT=diskA,VOLUME=SER=222222,DISP=OLD
//SYSIN DD *
LISTPDS DSNAME=D42.PDSE1,VOL=diskA=222222
LISTPDS DSNAME=(D55.PART1,D55.PART2),FORMAT
/*
Les instructions de contrôle sont les suivantes :
Dans cet exemple, une table des matières de volume non indexé est répertoriée dans le premier format modifié.
La liste éditée est complétée par une liste non éditée de blocs de contrôle d’ensembles de données sélectionnés.
//VTOCLIST JOB ...
//STEP1 EXEC PGM=IEHLIST
//SYSPRINT DD SYSOUT=A
//DD2 DD UNIT=disk,VOLUME=SER=111111,DISP=OLD
//SYSIN DD *
LISTVTOC FORMAT,VOL=disk=111111
LISTVTOC DUMP,VOL=disk=111111,DSNAME=(SET1,SET2,SET3)
/*
Les instructions de contrôle sont les suivantes :
Ces exemples illustrent certaines des utilisations de IEHINITT.
Vous pouvez utiliser le tableau 1 comme guide de référence rapide pour les exemples IEHINITT.
Opération | Commentaires | Exemple |
---|---|---|
LABEL | Trois bandes 9 pistes sont à étiqueter. | Exemple 1 : écriture d’étiquettes EBCDIC sur trois bandes |
LABEL | Une bande 9 pistes doit être étiquetée en ISO/ANSI. | Exemple 2 : écriture d’une étiquette ISO/ANSI sur une bande |
LABEL | Deux groupes de volumes de bande 9 pistes doivent être étiquetés. | Exemple 3 : placer deux groupes de numéros de série sur six volumes de bande |
LABEL | Les volumes de bande 9 pistes doivent être étiquetés. Les numéros de séquence doivent être incrémentés de 10. | Exemple 4 : placer le numéro de série sur huit volumes de bande |
LABEL | Trois volumes de bande 9 pistes doivent être étiquetés. Une étiquette alphanumérique doit être apposée sur un volume de bande ; des étiquettes numériques sont placées sur les deux volumes de bande restants. | Exemple 5 : écrire des étiquettes EBCDIC dans différentes densités |
LABEL | Deux volumes de bande 9 pistes doivent être étiquetés. Le premier volume est étiqueté à une densité de 6250 bpi ; le second à une densité de 1600 bpi. | Exemple 6 : Écrire des numéros de série sur des volumes de bande à deux densités |
LABEL | Un volume de bande à 9 pistes est étiqueté au format ISO/ANSI avec un code d’accès non vierge. | Exemple 7 : Écrire une étiquette ISO/ANSI avec un code d’accès |
Les exemples qui utilisent une bande à la place des numéros de périphérique réels doivent être modifiés avant utilisation.
Les numéros de périphérique réels dépendent de la manière dont votre installation a défini les périphériques sur votre système.
Dans cet exemple, les numéros de série 001234, 001235 et 001236 sont placés sur trois volumes de bande.
Les étiquettes sont écrites en EBCDIC à 800 bits par pouce.
Chaque volume étiqueté est monté, lorsque cela est nécessaire, sur une seule unité de bande 9 pistes.
//LABEL1 JOB ...
//STEP1 EXEC PGM=IEHINITT
//SYSPRINT DD SYSOUT=A
//LABEL DD DCB=DEN=2,UNIT=(tape,1,DEFER)
//SYSIN DD *
LABEL INITT SER=001234,NUMBTAPE=3
/*
Les instructions de contrôle sont les suivantes :
Dans cet exemple, le numéro de série 001001 est placé sur un volume de bande ISO/ANSI ; l’étiquette est écrite à 800 bits par pouce.
Le volume étiqueté est monté, si nécessaire, sur une unité de bande 9 pistes.
//LABEL2 JOB ...
//STEP1 EXEC PGM=IEHINITT
//SYSPRINT DD SYSOUT=A
//ASCIILAB DD DCB=DEN=2,UNIT=(tape,1,DEFER)
//SYSIN DD *
ASCIILAB INITT SER=001001,OWNER='SAM A. BROWN',LABTYPE=AL
/*
Les instructions de contrôle sont les suivantes :
Dans cet exemple, deux groupes de numéros de série (001234, 001235, 001236 et 001334, 001335, 001336) sont placés sur six volumes de bande.
Les étiquettes sont écrites en EBCDIC à 800 bits par pouce.
Chaque volume étiqueté est monté, lorsque cela est nécessaire, sur une seule unité de bande 9 pistes.
//LABEL3 JOB ...
//STEP1 EXEC PGM=IEHINITT
//SYSPRINT DD SYSOUT=A
//LABEL DD DCB=DEN=2,UNIT=(tape,1,DEFER)
//SYSIN DD *
LABEL INITT SER=001234,NUMBTAPE=3
LABEL INITT SER=001334,NUMBTAPE=3
/*
Les instructions de contrôle sont les suivantes :
Dans cet exemple, les numéros de série 001234, 001244, 001254, 001264, 001274, etc., sont placés sur huit volumes de bande.
Les étiquettes sont écrites en EBCDIC à 800 bits par pouce.
Chaque volume étiqueté est monté, lorsque cela est nécessaire, sur l’une des quatre unités de bande à 9 pistes.
//LABEL4 JOB ...
//STEP1 EXEC PGM=IEHINITT
//SYSPRINT DD SYSOUT=A
//LABEL DD DCB=DEN=2,UNIT=(tape,4,DEFER)
//SYSIN DD *
LABEL INITT SER=001234
LABEL INITT SER=001244
LABEL INITT SER=001254
LABEL INITT SER=001264
LABEL INITT SER=001274
LABEL INITT SER=001284
LABEL INITT SER=001294
LABEL INITT SER=001304
/*
Les instructions de contrôle sont les suivantes :
Dans cet exemple, le numéro de série TAPE1 est placé sur un volume de bande et les numéros de série 001234 et 001235 sont placés sur deux volumes de bande.
Les étiquettes sont écrites en EBCDIC à 800 et 1600 bits par pouce, respectivement
//LABEL5 JOB ...
//STEP1 EXEC PGM=IEHINITT
//SYSPRINT DD SYSOUT=A
//LABEL1 DD DCB=DEN=2,UNIT=(tape,1,DEFER)
//LABEL2 DD DCB=DEN=3,UNIT=(tape,1,DEFER)
//SYSIN DD *
LABEL1 INITT SER=TAPE1
LABEL2 INITT SER=001234,NUMBTAPE=2
/*
Les instructions de contrôle sont les suivantes :
Dans cet exemple, le numéro de série 006250 est écrit en EBCDIC sur un volume de bande à une densité de 6250 bpi, et le numéro de série 001600 est écrit en EBCDIC sur un second volume à une densité de 1600 bpi.
//LABEL6 JOB ...
//STEP1 EXEC PGM=IEHINITT
//SYSPRINT DD SYSOUT=A
//DDFIRST DD DCB=DEN=4,UNIT=(tape,1,DEFER)
//DDSECOND DD DCB=DEN=3,UNIT=(tape,1,DEFER)
//SYSIN DD *
DDFIRST INITT SER=006250
DDSECOND INITT SER=001600
/*
Les instructions de contrôle sont les suivantes :
Dans cet exemple, une bande étiquetée ISO/ANSI (AL) version 4 est créée avec un code d’accès non vierge.
Le numéro de série du volume est TAPE01.
//LABEL7 JOB ...
//STEP1 EXEC PGM=IEHINITT
//SYSPRINT DD SYSOUT=A
//LABEL DD UNIT=(tape,1,DEFER),DCB=DEN=4
//SYSIN DD *
LABEL INITT SER=TAPE01,OWNER=TAPOWNER,LABTYPE=AL,ACCESS=A,VERSION 4
/*
Les instructions de contrôle sont les suivantes :
Dans cet exemple, vous pouvez étiqueter une bande dans une étape d’un travail, puis, sans que le système démonte et remonte cette bande entre les étapes, écrivez sur la bande dans une étape suivante du même travail.
Le code JCL nécessaire suit :
//STEP1 EXEC PGM=IEHINITT
//SYSPRINT DD SYSOUT=*
(1) //LABEL DD UNIT=(tape,1,DEFER),DISP=(,PASS)
//SYSIN DD *
(2) LABEL INITT SER=serial,DISP=REWIND
//*
//STEP2 EXEC PGM=user_program
//INPUT DD DSN=input_dsn,DISP=SHR
//OUTPUT DD DSN=dsname,DISP=(NEW,CATLG),
// DCB=(dcbinfo),
(3) // UNIT=tape,VOL=(,RETAIN,SER=serial)
Notes:
(1) DISP=(NEW,PASS) ou VOL=(,RETAIN) doit être spécifié.
(2) DISP=REWIND doit être spécifié dans l'instruction INITT.
(3) VOL=SER=serial doit être spécifié.
VOL=REF=*.STEP1.LABEL ne fonctionnera pas.
Dans cet exemple, un volume de bande SL1000 doit être recréé avec deux étiquettes de clé.
//TAPEJOB JOB …
//STEP1 EXEC PGM=IEHINITT
//SYSPRINT DD SYSOUT=A
//REKEY1 DD UNIT=(TAPE,1,DEFER)
//SYSIN DD *
REKEY1 REKEY SER=SL1000,
KEYLABL1=firstkeylabel,KEYENCD1=L,
KEYLABL2=secondkeylabel,KEYENCD2=H
/*
Dans cet exemple, cinq volumes de bande doivent être recréés avec les mêmes étiquettes de clé.
//TAPEJOB JOB …
//STEP1 EXEC PGM=IEHINITT
//SYSPRINT DD SYSOUT=A
//REKEY2 DD UNIT=(TAPE,1,DEFER)
//SYSIN DD *
REKEY2 REKEY SER=( AL1000,AL2000,AL3000,AL4000,AL5000),
KEYLABL1=firstkeylabel,KEYENCD1=L,
KEYLABL2=secondkeylabel,KEYENCD2=H
/*
Dans cet exemple, trois volumes de bande 001200, 001201 et 001202 doivent être recréés avec les mêmes étiquettes de clé.
//TAPEJOB JOB …
//STEP1 EXEC PGM=IEHINITT
//SYSPRINT DD SYSOUT=A
//REKEY3 DD UNIT=(TAPE,1,DEFER)
//SYSIN DD *
REKEY3 REKEY SER=001200,NUMBTAPE=3,
KEYLABL1=firstkeylabel,KEYENCD1=L,
KEYLABL2=secondkeylabel,KEYENCD2=H
/*
Dans cet exemple, deux volumes de bande, 005000 et SL8000, doivent être recréés.
Chaque volume de bande doit être recréé avec un ensemble différent d’étiquettes de clé et de mécanismes de codage.
//TAPEJOB JOB …
//STEP1 EXEC PGM=IEHINITT
//SYSPRINT DD SYSOUT=A
//REKEY4 DD UNIT=(TAPE,1,DEFER)
//REKEY5 DD UNIT=(TAPE)
//SYSIN DD *
REKEY4 REKEY SER=005000,
KEYLABL1=firstkeylabel,KEYENCD1=L,
KEYLABL2=secondkeylabel,KEYENCD2=H
REKEY5 REKEY SER=SL8000,
KEYLABL1=differentfirstkeylabel,KEYENCD1=L,
KEYLABL2=differentsecondkeylabel,KEYENCD2=H
/*
Dans cet exemple, trois volumes de bande 001200, 001201 et 001202 doivent être recréés avec les mêmes étiquettes de clé spécifiées pour la première instruction de contrôle REKEY avec NUMBTAPE spécifié.
La deuxième instruction de contrôle spécifie qu’une bande SL8000 doit être réenregistrée avec différentes étiquettes de clé.
Notez que KEYLABL2 et son KEYENCD2 associé sont omis, ainsi les mêmes valeurs d’étiquette de clé et de mécanisme de codage spécifiées pour les mots-clés KEYLABL1 et KEYENCD1 sont utilisées pour les deux étiquettes de clé.
//TAPEJOB JOB …
//STEP1 EXEC PGM=IEHINITT
//SYSPRINT DD SYSOUT=A
//REKEY6 DD UNIT=(TAPE,1,DEFER)
//REKEY7 DD UNIT=(TAPE)
//SYSIN DD *
REKEY6 REKEY SER=001200,NUMBTAPE=3,
KEYLABL1=firstkeylabel,KEYENCD1=L,
KEYLABL2=secondkeylabel,KEYENCD2=H
REKEY7 REKEY SER=SL8000,
KEYLABL1=differentfirstkeylabel,KEYENCD1=L,
/*
Dans cet exemple, une impression apparaît d’un ensemble de données de message comprenant l’instruction INITT et les informations d’étiquette de volume initiales.
Une instruction INITT a été utilisée pour placer les numéros de série 001122 et 001123 sur deux volumes de bande d’étiquettes standard.
VOL1001122 et VOL1001123 sont interprétés comme suit :
SYSTEM SUPPORT UTILITIES IEHINITT
ALL INITT SER=001122,NUMBTAPE=2,OWNER='P.T.BROWN',DISP=REWIND
VOL1001122 P.T.BROWN
VOL1001123 P.T.BROWN
Le JCL suivant pour le travail nommé SMITH1 accomplit plusieurs tâches, même si IEFBR14 ne fait que renvoyer 0 :
//SMITH1 JOB 1,LEO,MSGCLASS=X
// EXEC PGM=IEFBR14
//NEWDS DD DSN=SMITH.LIB.CNTL,DISP=(NEW,CATLG),VOL=SER=WORK02,
// UNIT=3390,SPACE=(CYL,(3,1,25)
//OLDDS DD DSN=SMITH.OLD.DATA,DISP=(OLD,DELETE)
Les mêmes fonctions pour créer un ensemble de données et en supprimer un autre peuvent être effectuées via ISPF, par exemple, mais ces actions peuvent être nécessaires dans le cadre d’une séquence plus importante de travaux par lots.
Remarque : Cette explication du nom IEFBR14 peut vous aider à vous souvenir de ce que fait cet utilitaire… Un groupe IBM® écrivant le code OS/360 ancien utilisait le préfixe « IEF » pour tous ses modules de code.
En langage assembleur, “BR” signifie branche à l’adresse dans un registre.
Le branchement à l’adresse dans le registre général 14 est la manière standard de terminer un programme.
Ces exemples illustrent certaines des utilisations de IEBUPDTE.
Vous pouvez utiliser le tableau 1 comme guide de référence rapide pour les exemples IEBUPDTE.
Opération | Organisation de l’ensemble de données | Dispositif | Commentaires | Exemple |
---|---|---|---|---|
ADD et REPL | Partitionné | Disque | Une procédure JCL est stockée en tant que nouveau membre d’une bibliothèque de procédures (PROCLIB). Une autre procédure JCL consiste à remplacer un membre existant dans PROCLIB. | Exemple 1 : placer deux procédures dans SYS1.PROCLIB |
CREATE une bibliothèque partitionnée | Partitionné | Disque | Les données d’entrée se trouvent dans le jeu de données de contrôle. L’ensemble de données partitionné en sortie doit contenir trois membres. | Exemple 2 : créer une bibliothèque à trois membres |
CREATE un ensemble de données partitionnées | Partitionné | Disque | Entrée de l’ensemble de données de contrôle et de l’ensemble de données partitionné existant. L’ensemble de données partitionné en sortie doit contenir trois membres. | Exemple 3 : créer une nouvelle bibliothèque en utilisant SYS1.MACLIB comme source |
UPDATE INPLACE et renuméroter | Partitionné | Disque | L’ensemble de données d’entrée est également considéré comme l’ensemble de données de sortie ; par conséquent, aucune instruction SYSUT2 DD n’est requise. | Exemple 4 : Mettre à jour un membre de la bibliothèque |
CREATE et DELETE | Partitionné, séquentiel | Disque et bande | Le maître séquentiel est créé à partir d’une entrée de disque partitionné. Les enregistrements sélectionnés doivent être supprimés. Sortie bloquée. | Exemple 5 : Créer un nouveau jeu de données maître et supprimer les enregistrements sélectionnés |
CREATE, DELETE et UPDATE | Bande et disque partitionnés séquentiels | L’ensemble de données partitionné est créé à partir d’une entrée séquentielle. Les enregistrements doivent être supprimés et mis à jour. Numéros de séquence dans les colonnes autres que 73 à 80. Un membre est placé dans le jeu de données de sortie. | Exemple 6 : créer et mettre à jour un membre de bibliothèque | |
INSERT | Partitionné | Disque | Le bloc d’enregistrements logiques est inséré dans un membre existant. | Exemple 7 : Insérer des enregistrements dans un membre de la bibliothèque |
INSERT | Partitionné | Disque | Deux blocs d’enregistrements logiques doivent être insérés dans un membre existant. Les numéros de séquence sont alphanumériques. | Exemple 8 : renuméroter et insérer des enregistrements dans un membre de la bibliothèque |
CREATE | Séquentiel | Lecteur de carte et disque | Un ensemble de données séquentiel avec des étiquettes d’utilisateur est créé à partir de l’entrée de la carte. | Exemple 9 : Créer un ensemble de données séquentielles à partir d’une entrée de carte |
COPIE | Séquentiel | Disque | L’ensemble de données séquentiel est copié d’un volume à accès direct à un autre ; les étiquettes d’utilisateur peuvent être traitées par des routines de sortie. | Exemple 10 : copier un ensemble de données séquentiel d’un volume à un autre |
CREATE | Partitionné | Disque | Créer une nouvelle génération. | Exemple 11 : créer un nouvel ensemble de données partitionnées |
Les exemples qui utilisent un disque ou une bande à la place des numéros de périphérique réels doivent être modifiés avant utilisation.
Les numéros de périphérique réels dépendent de la manière dont votre installation a défini les périphériques sur votre système.
Dans cet exemple, deux procédures doivent être placées dans la bibliothèque de procédures cataloguées, SYS1.PROCLIB.
L’exemple suppose que les deux procédures peuvent être logées dans l’espace initialement alloué à la bibliothèque de procédures.
//UPDATE JOB ...
//STEP1 EXEC PGM=IEBUPDTE,PARM=MOD
//SYSPRINT DD SYSOUT=A
//SYSUT1 DD DSNAME=SYS1.PROCLIB,DISP=OLD
//SYSUT2 DD DSNAME=SYS1.PROCLIB,DISP=OLD
//SYSIN DD DATA
./ ADD LIST=ALL,NAME=ERASE,LEVEL=01,SOURCE=0
./ NUMBER NEW1=10,INCR=10
//ERASE EXEC PGM=IEBUPDTE
//DD1 DD UNIT=disk,DISP=(OLD,KEEP),VOLUME=SER=111111
//SYSPRINT DD SYSOUT=A
./ REPL LIST=ALL,NAME=LISTPROC
./ NUMBER NEW1=10,INCR=10
//LIST EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=A
//SYSUT1 DD DISP=SHR,DSN=SYS1.PROCLIB(&MEMBER)
//SYSUT2 DD SYSOUT=A,DCB=(RECFM=F,BLKSIZE=80)
//SYSIN DD DATA
./ ENDUP
/*
Les instructions de contrôle sont les suivantes :
Dans cet exemple, une bibliothèque partitionnée à trois membres est créée.
Les données d’entrée sont contenues uniquement dans le jeu de données de contrôle.
//UPDATE JOB ...
//STEP1 EXEC PGM=IEBUPDTE,PARM=NEW
//SYSPRINT DD SYSOUT=A
//SYSUT2 DD DSNAME=OUTLIB,UNIT=disk,DISP=(NEW,CATLG),
// VOLUME=SER=111112,SPACE=(TRK,(50,,10)),
// DCB=(RECFM=F,LRECL=80,BLKSIZE=80)
//SYSIN DD DATA
./ ADD NAME=MEMB1,LEVEL=00,SOURCE=0,LIST=ALL
(Instructions de données, numéros de séquence dans les colonnes 73 à 80)
./ ADD NAME=MEMB2,LEVEL=00,SOURCE=0,LIST=ALL
(Instructions de données, numéros de séquence dans les colonnes 73 à 80)
./ ADD NAME=MEMB3,LEVEL=00,SOURCE=0,LIST=ALL
(Instructions de données, numéros de séquence dans les colonnes 73 à 80)
./ ENDUP
/*
Les instructions de contrôle sont les suivantes :
Étant donné que les numéros de séquence (autres que les numéros vides) sont inclus dans les instructions de données, aucune instruction détaillée NUMBER n’est incluse dans l’exemple.
Dans cet exemple, un ensemble de données partitionnées à trois membres (NEWMCLIB) est créé.
L’ensemble de données contiendra deux membres, ATTACH et DETACH, copiés à partir d’un ensemble de données partitionné existant (SYS1.MACLIB), et un nouveau membre, EXIT, contenu dans l’ensemble de données de contrôle.
//UPDATE JOB ...
//STEP1 EXEC PGM=IEBUPDTE,PARM=MOD
//SYSPRINT DD SYSOUT=A
//SYSUT1 DD DSNAME=SYS1.MACLIB,DISP=SHR
//SYSUT2 DD DSNAME=DEV.DRIVER3.NEWMCLIB,UNIT=disk,
// DISP=(NEW,CATLG),SPACE=(TRK,(100,,10)),
// DCB=(RECFM=F,LRECL=80,BLKSIZE=4000)
//SYSIN DD DATA
./ REPRO NAME=ATTACH,LEVEL=00,SOURCE=1,LIST=ALL
./ REPRO NAME=DETACH,LEVEL=00,SOURCE=1,LIST=ALL
./ ADD NAME=EXIT,LEVEL=00,SOURCE=1,LIST=ALL
./ NUMBER NEW1=10,INCR=100
(Enregistrements de données pour le membre EXIT)
./ ENDUP
/*
Les instructions de contrôle sont les suivantes :
Notez que les trois membres d’entrée nommés (ATTACH, DETACH et EXIT) n’ont pas besoin d’être spécifiés dans l’ordre de leur séquence de classement dans l’ancien maître.
Dans cet exemple, un membre (MODMEMB) est mis à jour dans l’espace qu’il occupe réellement.
Deux enregistrements logiques existants sont remplacés et le membre entier est renuméroté.
//UPDATE JOB ...
//STEP1 EXEC PGM=IEBUPDTE,PARM=MOD
//SYSPRINT DD SYSOUT=A
//SYSUT1 DD DSNAME=PDS,UNIT=disk,DISP=(OLD,KEEP),
// VOLUME=SER=111112
//SYSIN DD *
./ CHANGE NAME=MODMEMB,LIST=ALL,UPDATE=INPLACE
./ NUMBER SEQ1=ALL,NEW1=10,INCR=5
(Déclaration de données 1, numéro de séquence 00000020)
(Déclaration de données 2, séquence numéro 00000035)
/*
Les instructions de contrôle sont les suivantes :
Dans cet exemple, un nouveau jeu de données séquentiel principal est créé à partir d’une entrée partitionnée et les enregistrements logiques sélectionnés sont supprimés.
//UPDATE JOB ...
//STEP1 EXEC PGM=IEBUPDTE,PARM=MOD
//SYSPRINT DD SYSOUT=A
//SYSUT1 DD DSNAME=DCB.PARTDS,DISP=(OLD,KEEP)
// VOLUME=SER=111112
//SYSUT2 DD DSNAME=SEQDS,UNIT=tape,LABEL=(2,SL),
// DISP=(,KEEP),VOLUME=SER=001234,
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=2000)
//SYSIN DD *
./ CHANGE NEW=PS,NAME=OLDMEMB1
(Instruction de données 1, numéro de séquence 00000123)
./ DELETE SEQ1=223,SEQ2=246
(Instruction de données 2, numéro de séquence 00000224)
/*
Les instructions de contrôle sont les suivantes :
Notez qu’un seul membre peut être utilisé comme entrée lors de la conversion en organisation séquentielle.
Dans cet exemple, un membre d’un ensemble de données partitionné est créé à partir d’une entrée séquentielle et les enregistrements logiques existants sont mis à jour.
//UPDATE JOB ...
//STEP1 EXEC PGM=IEBUPDTE,PARM=MOD
//SYSPRINT DD SYSOUT=A
//SYSUT1 DD DSNAME=BROWN.OLDSEQDS,UNIT=tape,
// DISP=(OLD,KEEP),VOLUME=SER=001234
//SYSUT2 DD DSNAME=BROWN.NEWPART,UNIT=disk,DISP=(,CATLG),
// VOLUME=SER=111112,SPACE=(TRK,(10,5,5)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=4080)
//SYSIN DD *
./ CHANGE NEW=PO,MEMBER=PARMEM1,LEVEL=01,
./ SEQFLD=605,COLUMN=40,SOURCE=0
(Instruction de données 1, numéro de séquence 00020)
./ DELETE SEQ1=220,SEQ2=250
(Instruction de données 2, numéro de séquence 00230)
(Instruction de données 3, numéro de séquence 00260)
./ ALIAS NAME=MEMB1
/*
Les instructions de contrôle sont les suivantes :
Dans cet exemple, un bloc de trois enregistrements logiques est inséré dans un membre existant et le membre mis à jour est placé dans l’ensemble de données partitionné existant.
//UPDATE JOB ...
//STEP1 EXEC PGM=IEBUPDTE,PARM=MOD
//SYSPRINT DD SYSOUT=A
//SYSUT1 DD DSNAME=PDS,UNIT=disk,DISP=(OLD,KEEP),
// VOLUME=SER=111112
//SYSUT2 DD DSNAME=PDS,UNIT=disk,DISP=(OLD,KEEP),
// VOLUME=SER=111112
//SYSIN DD *
./ CHANGE NAME=RENUM,LIST=ALL,LEVEL=01,SOURCE=0
./ NUMBER SEQ1=15,NEW1=20,INCR=5,INSERT=YES
(Déclaration de données 1)
(Déclaration de données 2)
(Déclaration de données 3)
/*
Les instructions de contrôle sont les suivantes :
Dans cet exemple, les enregistrements logiques existants portent les numéros de séquence 10, 15, 20, 25 et 30.
Les numéros de séquence sont attribués par l’instruction détaillée NUMBER, comme suit :
Le tableau 2 montre les numéros de séquence existants, les déclarations de données insérées et les nouveaux numéros de séquence qui en résultent.
Numéros de séquence et déclarations de données | Nouveaux numéros de séquence |
---|---|
10 | 10 |
15 | 15 |
Déclaration de données 1 | 20 |
Déclaration de données 2 | 25 |
Déclaration de données 3 | 30 |
20 | 35 |
25 | 40 |
30 | 45 |
Dans cet exemple, deux blocs (trois enregistrements logiques par bloc) sont insérés dans un membre existant, et le membre est placé dans l’ensemble de données partitionné existant.
Une partie du membre de sortie est également renumérotée.
//UPDATE JOB ...
//STEP1 EXEC PGM=IEBUPDTE,PARM=MOD
//SYSPRINT DD SYSOUT=A
//SYSUT1 DD DSNAME=PDS,UNIT=disk,DISP=(OLD,KEEP),
// VOLUME=SER=111112
//SYSUT2 DD DSNAME=PDS,UNIT=disk,DISP=(OLD,KEEP),
// VOLUME=SER=111112
//SYSIN DD *
./ CHANGE NAME=RENUM,LIST=ALL,LEVEL=01,SOURCE=0,SEQFLD=(765,783)
./ NUMBER SEQ1=AA015,NEW1=AA020,INCR=5,INSERT=YES
(Déclaration de données 1)
(Déclaration de données 2)
(Déclaration de données 3)
./ NUMBER SEQ1=AA030,INSERT=YES
(Énoncé de données 4)
(Énoncé de données 5)
(Énoncé de données 6)
(Énoncé de données 7, numéro de séquence AA035)
/*
Les instructions de contrôle sont les suivantes :
Les enregistrements logiques existants dans cet exemple ont les numéros de séquence AA010, AA015, AA020, AA025, AA030, AA035, AA040, AA045, AA050, BB010 et BB015.
Les opérations d’insertion et de renumérotation s’effectuent comme suit :
Le tableau 3 montre les numéros de séquence existants, les déclarations de données insérées et les nouveaux numéros de séquence.
Numéros de séquence et déclarations de données | Nouveaux numéros de séquence |
---|---|
AA010 | AA010 |
AA015 | AA015 |
Déclaration de données 1 | AA020 |
Déclaration de données 2 | AA025 |
Déclaration de données 3 | AA030 |
AA020 | AA035 |
AA025 | AA040 |
AA030 | AA045 |
Déclaration de données 4 | AA050 |
Déclaration de données 5 | AA055 |
Déclaration de données 6 | AA060 |
AA035 (Déclaration de données 7) | AA065 |
AA040 | AA070 |
AA045 | AA070 |
AA050 | AA075 |
BB010 | BB010 |
BB015 | BB015 |
Dans cet exemple, IEBUPDTE est utilisé pour créer un ensemble de données séquentielles à partir d’une entrée de carte.
Les étiquettes d’en-tête et de fin d’utilisateur, également issues du flux d’entrée, sont placées sur cet ensemble de données séquentielles.
//LABEL JOB ...
//CREATION EXEC PGM=IEBUPDTE,PARM=NEW
//SYSPRINT DD SYSOUT=A
//SYSUT2 DD DSNAME=LABEL,VOLUME=SER=123456,UNIT=disk,
// DISP=(NEW,KEEP),LABEL=(,SUL),SPACE=(TRK,(15,3))
//SYSIN DD *
./ LABEL
(Libellés d'en-tête)
./ ADD LIST=ALL,OUTHDR=ROUTINE1,OUTTLR=ROUTINE2
(Enregistrements de données )
./ LABEL
(Libellés de fin)
./ ENDUP
/*
Les instructions de contrôle sont les suivantes :
Dans cet exemple, IEBUPDTE est utilisé pour copier un ensemble de données séquentielles d’un volume DASD à un autre.
Les étiquettes utilisateur sont traitées par des routines d’exit utilisateur.
//LABELS JOB ...
//STEP1 EXEC PGM=IEBUPDTE,PARM=(MOD,,INTLRTN)
//SYSPRINT DD SYSOUT=A
//SYSUT1 DD DSNAME=OLDMAST,DISP=OLD,LABEL=(,SUL),
// VOLUME=SER=111111,UNIT=disk
//SYSUT2 DD DSNAME=NEWMAST,DISP=(NEW,KEEP),LABEL=(,SUL),
// UNIT=disk,VOLUME=SER=XB182,
// SPACE=(TRK,(5,10))
//SYSIN DD DSNAME=INPUT,DISP=OLD,LABEL=(,SUL),
// VOLUME=SER=222222,UNIT=disk
/*
Les instructions de contrôle sont les suivantes :
./ LISTE REPRO=ALL,INHDR=INHRTN,INTLR=INTRTN, C
./ OUTHDR=OUTHRTN,OUTTLR=OUTTRN
./ ENDUP
Dans cet exemple, un ensemble de données de génération partitionné composé de trois membres est utilisé comme données source dans la création d’un nouvel ensemble de données partitionnées.
IEBUPDTE est également utilisé pour ajouter un quatrième membre aux trois membres source et pour numéroter le nouveau membre.
L’ensemble de données résultant est catalogué comme un nouvel ensemble de données partitionnées.
//NEWGDS JOB ...
//STEP1 EXEC PGM=IEBUPDTE,PARM=MOD
//SYSPRINT DD SYSOUT=A
//SYSUT1 DD DSNAME=A.B.C,DISP=OLD
//SYSUT2 DD DSNAME=A.B.C,DISP=(,CATLG),UNIT=disk,
// VOLUME=SER=111111,SPACE=(TRK,(100,10,10)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=800)
//SYSIN DD DATA
./ REPRO NAME=MEM1,LEVEL=00,SOURCE=0,LIST=ALL
./ REPRO NAME=MEM2,LEVEL=00,SOURCE=0,LIST=ALL
./ REPRO NAME=MEM3,LEVEL=00,SOURCE=0,LIST=ALL
./ ADD NAME=MEM4,LEVEL=00,SOURCE=0,LIST=ALL
./ NUMBER NEW1=10,INCR=5
(Enregistrements de données comprenant MEM4)
./ ENDUP
/*
Les instructions de contrôle sont les suivantes :