Archives de catégorie : JCL Info

JCL – IFHSTATR

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.

JCL – IEHPROGM

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.

Tableau 1. Répertoire d’exemples IEHPROGM

OpérationDispositifCommentairesExemple
SCRATCHDisqueLe DSCB des jeux de données est rayé.Exemple 1 : Scratch des ensembles de données système temporaires
SCRATCH, UNCATLGDisqueDeux 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, CATLGDisqueUn 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
UNCATLGDisqueLes 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, ADDDisqueUn 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, REPLACEDisqueUne 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
RENAMEDisqueUn 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.

Exemples

Exemple 1 : Jeux de données système temporaires Scratch

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 :

  • L’instruction DD2 définit un volume.
    Étant donné que le volume de résidence du système n’est pas référencé, une instruction DD est nécessaire pour le définir.
  • L’instruction SCRATCH, avec SYS spécifié, indique que tous les ensembles de données système temporaires dont les dates d’expiration ont expiré sont supprimés du volume spécifié.

Exemple 2 : Scratch et Uncatalog deux ensembles de données

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 :

  • La première instruction SCRATCH spécifie que SET1, qui réside sur le volume 222222, est rayé.
  • La première instruction UNCATLG spécifie que SET1 n’est pas catalogué.
  • La deuxième instruction SCRATCH spécifie que ABCDE, qui réside sur le volume 222222, est rayé.
  • La deuxième instruction UNCATLG spécifie que ABCDE n’est pas catalogué.

Exemple 3 : Renommer un catalogue de jeux de données multi-volumes

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 :

  • RENAME spécifie que l’ensemble de données ABC, qui réside sur les volumes 222222 et 333333, doit être renommé NEWSET.
  • UNCATLG spécifie que l’ensemble de données ABC n’est pas catalogué.
  • CATLG spécifie que NEWSET, qui réside sur les volumes 222222 et 333333, est catalogué.

Exemple 4 : Décataloguer trois jeux de données

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.

Exemple 5 : Renommer un ensemble de données et définir de nouveaux mots de passe

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 :

  • RENAME spécifie que l’ensemble de données appelé OLD est renommé NEW.
    L’opérateur doit fournir un mot de passe pour renommer l’ancien ensemble de données.
  • DELETEP spécifie que l’entrée pour le mot de passe KEY est supprimée.
    Étant donné que KEY est un mot de passe de contrôle dans cet exemple, toutes les entrées de mot de passe pour le nom de l’ensemble de données sont supprimées.
    Le paramètre VOL n’est pas nécessaire car l’état de protection de l’ensemble de données tel qu’il est défini dans le DSCB ne doit pas être modifié ; la protection en lecture/écriture est actuellement définie dans le DSCB, et la protection en lecture/écriture est souhaitée lorsque les mots de passe sont réattribués sous le nouveau nom d’ensemble de données.
  • Les instructions ADD spécifient que des entrées sont ajoutées pour les mots de passe KEY et READ. KEY devient le mot de passe de contrôle et permet à la fois l’accès en lecture et en écriture à l’ensemble de données.
    READ devient un mot de passe secondaire et n’autorise qu’un accès en lecture à l’ensemble de données.
    Le paramètre VOL n’est pas nécessaire, car l’état de protection de l’ensemble de données est toujours défini dans le DSCB.

Exemple 6 : Répertorier et remplacer les informations de mot de passe

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 :

  • LIST spécifie que le compteur d’accès, le mode de protection et les données utilisateur de l’entrée pour le mot de passe ABLE sont répertoriés.
    Le fait de lister l’entrée permet d’enregistrer le contenu du compteur d’accès avant que le compteur ne soit remis à zéro par l’instruction REPLACE.
  • REPLACE spécifie que le mode de protection du mot de passe ABLE doit être modifié pour autoriser à la fois l’accès en lecture et en écriture et que l’état de protection de l’ensemble de données est modifié en protection en écriture seule.
    Le paramètre VOL est obligatoire car l’état de protection du jeu de données est modifié et le jeu de données, dans cet exemple, n’est pas catalogué.
    Comme il s’agit d’un mot de passe de contrôle, le paramètre CPASWORD n’est pas requis.

Exemple 7 : Renommer un membre d’ensemble de données partitionné

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 :

  • DD1 DD définit un volume monté en permanence.
  • SYSIN DD définit l’ensemble de données d’entrée, qui suit dans le flux d’entrée.
  • RENAME spécifie que le membre ABC dans l’ensemble de données partitionnées DATASET, qui réside sur un volume de disque, est renommé BC.

JCL – IEHMOVE

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.

Tableau 1. Répertoire d’exemples IEHMOVE

OpérationOrganisation de l’ensemble de
données
DispositifCommentairesExemple
MOVEGroupe d’ensembles de donnéesDisqueLe 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
MOVEpartitionnéDisqueUn 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
MOVEVolumeDisqueUn 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
MOVEpartitionnéDisqueUn 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é
MOVEpartitionnéDisqueTrois 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
MOVESéquentielDisque et bandeUn 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
MOVESéquentielDisque et bandeLes 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
MOVESéquentielDisqueLe 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.

Exemples

Exemple 1 : Déplacer des ensembles de données séquentiels d’un volume de disque vers des volumes distincts

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 :

  • SYSUT1 DD définit le périphérique de disque qui doit contenir l’ensemble de données de travail.
  • DD1, DD2 et DD3 DD définissent les volumes de réception.
  • DD4 DD définit un périphérique sur lequel le volume source est monté.
    Comme le sous-paramètre RETAIN est inclus, le volume reste monté jusqu’à ce que la tâche soit terminée.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • MOVE déplace les ensembles de données source vers les volumes 222222, 222333 et 222444, respectivement.
    Les ensembles de données source sont rayés.

Exemple 2 : Déplacer l’ensemble de données partitionnées vers le volume de disque et fusionner

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 :

  • SYSUT1 DD définit le volume de disque qui doit contenir l’ensemble de données de travail.
  • DD1 DD définit le dispositif de résidence du système.
  • Les instructions DD2, DD3 et DD4 DD définissent les périphériques qui doivent contenir les deux volumes source et le volume de réception.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • MOVE définit l’ensemble de données partitionné source, le volume qui le contient et son volume de réception.
  • INCLUDE inclut un membre d’un deuxième ensemble de données partitionnées dans l’opération.

Exemple 3 : Déplacer le volume d’ensembles de données vers le volume de disque

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 :

  • SYSUT1 DD définit l’appareil qui doit contenir le jeu de données de travail.
  • DD1 DD définit le dispositif de résidence du système.
  • DD2 DD définit le périphérique sur lequel le volume de réception est monté.
  • DD3 DD définit un périphérique sur lequel le volume source est monté.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • MOVE spécifie une opération de déplacement pour un volume d’ensembles de données et définit les volumes source et récepteur.
    Cette déclaration indique également que des ensembles de données protégés par mot de passe sont inclus dans l’opération.

Exemple 4 : Déplacer l’ensemble de données partitionné vers l’espace alloué

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 :

  • SYSUT1 DD définit l’appareil qui doit contenir le jeu de données de travail.
  • DD1 DD définit le dispositif de résidence du système.
  • DD2 DD définit l’appareil sur lequel le volume de réception doit être monté.
  • DD3 DD définit un périphérique sur lequel le volume source est monté.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • MOVE spécifie une opération de déplacement pour l’ensemble de données partitionnées PDSSET1 et définit les volumes source et récepteur.

Exemple 5 : Déplacer et décharger un volume d’ensembles de données partitionnés

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 :

  • SYSUT1 DD définit l’appareil qui doit contenir le jeu de données de travail.
  • DD1 DD définit le dispositif de résidence du système.
  • DD2 DD définit un périphérique sur lequel les volumes source sont montés selon les besoins.
  • DD3 DD définit un périphérique sur lequel le volume de réception est monté.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • MOVE spécifie les opérations de déplacement pour les ensembles de données partitionnés et définit les volumes source et récepteur pour chaque ensemble de données.

Exemple 6 : déchargement d’un jeu de données séquentiel sur un volume de bande sans étiquette

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 :

  • SYSUT1 DD définit l’appareil qui doit contenir le jeu de données de travail.
  • DD1 DD définit le dispositif de résidence du système.
  • DD2 DD définit un périphérique sur lequel le volume source est monté.
  • TAPEOUT DD définit un périphérique sur lequel le volume de bande récepteur est monté.
    Cette instruction fournit également des informations sur l’étiquette et le mode.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • MOVE déplace l’ensemble de données séquentielles SEQSET1 d’un volume de disque vers le volume de bande récepteur.
    L’ensemble de données est déchargé. Le paramètre TODD de cette instruction fait référence à l’instruction TAPEOUT DD pour les informations d’étiquette et de mode.

Exemple 7 : Chargement d’ensembles de données séquentiels déchargés à partir d’une bande étiquetée

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 :

  • SYSUT1 DD définit l’appareil qui doit contenir le jeu de données de travail.
  • DD1 DD définit le dispositif de résidence du système.
  • DD2 DD définit un périphérique sur lequel le volume de réception est monté.
  • TAPESETS DD définit un périphérique sur lequel le volume de bande source est monté.
    Les informations DCB sont fournies dans cette déclaration.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • MOVE déplace les ensembles de données déchargés vers le volume de réception.
  • Pour déplacer un ensemble de données d’un volume de bande contenant plusieurs ensembles de données, vous devez spécifier le numéro de séquence de l’ensemble de données dans la zone de liste du paramètre FROM de l’instruction de contrôle de l’utilitaire.

Exemple 8 : Déplacer un groupe d’ensembles de données catalogués

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 :

  • SYSUT1 DD définit l’appareil qui doit contenir le jeu de données de travail.
  • DD1 DD définit le dispositif de résidence du système.
  • DD2 DD définit un périphérique sur lequel le volume de réception est monté.
  • DD3 DD définit un périphérique sur lequel l’un des volumes source est monté.
  • DD4 DD définit un périphérique sur lequel l’un des volumes source est monté.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • MOVE déplace les ensembles de données spécifiés vers le volume 222222.
  • Cet exemple peut être utilisé pour produire le même résultat sans l’utilisation de l’instruction DD4 DD, en utilisant un périphérique de disque montable de moins.
    Avec DD3 et DD4, les deux volumes source sont montés au début de la tâche.
    Avec DD3 uniquement, le volume 333333 est monté au début de la tâche.
    Une fois le volume 333333 traité, l’utilitaire demande à l’opérateur de monter le volume 444444.
    Dans ce cas, l’instruction DD3 est codée :
//DD3 DD UNIT=(disque,,DEFER),DISP=OLD, 
// VOLUME=(PRIVATE,,SER=(333333))

JCL – IEHLIST

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.

Tableau 1. Répertoire d’exemples IEHLIST

OpérationDispositifCommentairesExemple
LISTEPDSDisque et périphérique de sortie systèmeUn 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
LISTEVTOCDisque et périphérique de sortie systèmeLa 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
Tableau 1. Répertoire d’exemples IEHLIST 

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.

EXEMPLES

Exemple 1 : Répertorier les répertoires partitionnés à l’aide de DUMP et FORMAT

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 :

  • DD1 DD définit le dispositif de résidence du système.
  • DD2 DD définit un périphérique sur lequel un volume de disque (222222) est monté.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • La première instruction LISTPDS indique que le répertoire PDSE appartenant à l’ensemble de données D42.PDSE1 doit être listé.
    La liste est dans un format non édité (dump). Cet ensemble de données réside sur le volume 222222.
  • La deuxième instruction LISTPDS indique que les répertoires d’ensembles de données partitionnés appartenant aux ensembles de données D55.PART1 et D55.PART2 doivent être répertoriés.
    La liste est au format modifié. Ces ensembles de données existent sur le volume de résidence du système.
  • La liste non modifiée d’un ensemble de données partitionnées affiche une entrée non modifiée pour un membre partitionné.
    L’entrée modifiée d’un membre partitionné affiche une entrée modifiée.

Exemple 2 : Lister la table des matières d’un volume non indexé

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 :

  • DD2 DD définit un périphérique contenant la table des matières du volume spécifié.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • La première instruction LISTVTOC indique que la table des matières du volume sur le volume de disque spécifié doit être répertoriée sous forme modifiée.
  • La deuxième instruction LISTVTOC indique que les blocs de contrôle d’ensemble de données représentant les ensembles de données SET1, SET2 et SET3 doivent être répertoriés sous une forme non éditée.

JCL – IEHINITT

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.

Tableau 1. Répertoire d’exemples IEHINITT

OpérationCommentairesExemple
LABELTrois bandes 9 pistes sont à étiqueter.Exemple 1 : écriture d’étiquettes EBCDIC sur trois bandes
LABELUne bande 9 pistes doit être étiquetée en ISO/ANSI.Exemple 2 : écriture d’une étiquette ISO/ANSI sur une bande
LABELDeux 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
LABELLes 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
LABELTrois 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
LABELDeux 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
LABELUn 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.

Exemples

Exemple 1 : Ecrire des étiquettes EBCDIC sur trois bandes

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 :

  • LABEL DD définit l’unité de bande utilisée dans l’opération d’étiquetage.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • LABEL INITT spécifie le nombre de bandes à étiqueter (3), en commençant par 001234.

Exemple 2 : Écrire une étiquette ISO/ANSI sur une bande

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 :

  • ASCIILAB DD définit le volume de bande à utiliser dans l’opération d’étiquetage.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • ASCIILAB INITT spécifie le numéro de série, l’ID du propriétaire et le type d’étiquette du volume.
    Étant donné que le mot clé VERSION n’a pas été spécifié, la bande ISO/ANSI sera créée en fonction de ce qui est spécifié dans le membre parmlib DEVSUPxx ou en tant que version 3 par défaut.

Exemple 3 : Placement de deux groupes de numéros de série sur six volumes de bande

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 :

  • LABEL DD définit l’unité de bande à utiliser dans l’opération d’étiquetage.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • LABEL INITT définit les deux groupes de numéros de série à mettre sur six volumes de bande.

Exemple 4 : Placer le numéro de série sur huit volumes de bande

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 :

  • LABEL DD définit l’unité de bande utilisée dans l’opération d’étiquetage.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • Les instructions LABEL INITT définissent les bandes à étiqueter par numéro de série de volume.

Exemple 5 : Écrire des étiquettes EBCDIC dans différentes densités

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 :

  • LABEL1 DD et LABEL2 DD définissent deux volumes de bande à utiliser dans l’opération d’étiquetage.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • LABEL1 INITT place le numéro de série TAPE1 sur le volume de bande défini dans LABEL1 DD.
    LABEL2 INITT place les numéros de série 001234 et 001235 sur le volume de bande défini dans LABEL2 DD.

Exemple 6 : Ecrire des numéros de série sur des volumes de bande à deux densités

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 :

  • DDFIRST DD définit le premier volume de bande à utiliser.
  • DDSECOND DD définit le deuxième volume de bande à utiliser.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • DDFIRST INITT écrit le numéro de série 006250 sur le volume défini dans DDFIRST DD.
    DDSECOND INITT écrit le numéro de série 001600 sur le volume défini dans DDSECOND DD.

Exemple 7 : Écrire une étiquette ISO/ANSI avec un code d’accès

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 :

  • LABEL DD définit le périphérique sur lequel la bande est montée.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • L’instruction INITT crée une étiquette ISO/ANSI Version 4 pour la bande avec le numéro de série de volume TAPE01, propriété de TAPOWNER.
    Le code d’ACCÈS est spécifié comme A, et le système d’exploitation qui reçoit ce volume doit être capable de reconnaître le A pour que le volume soit accepté.

Exemple 8 : Ecrire sur une bande après étiquetage sans démontage et remontage

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.

Exemple 9 : Rekey un volume de bande

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
/*

Exemple 10 : plusieurs bandes spécifiées pour le mot clé SER

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
/*

Exemple 11 : Trois bandes avec NUMBTAPE spécifié

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
/*

Exemple 12 : Instructions de contrôle REKEY multiples

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
/*

Exemple 13 : Instructions de contrôle multiples avec NUMBTAPE

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,
/*

Exemple 14 : Impression des spécifications de l’instruction INITT et des informations sur l’étiquette de volume initial

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 :

  • VOL1 indique qu’une étiquette de volume initiale a été écrite avec succès sur un volume de bande.
  • 001122 et 001123 sont les numéros de série qui ont été écrits sur les volumes.
  • Un espace vide après le numéro de série représente le champ Volume Security, qui n’est pas utilisé pendant le traitement OPEN/CLOSE/EOV sur une bande d’étiquettes standard.
  • Aucune erreur ne s’est produite lors du traitement.
SYSTEM SUPPORT UTILITIES   IEHINITT
 
ALL  INITT  SER=001122,NUMBTAPE=2,OWNER='P.T.BROWN',DISP=REWIND
 
VOL1001122                 P.T.BROWN
VOL1001123                 P.T.BROWN

JCL – IEFBR14

Utilitaire IEFBR14 : Ne (presque) rien faire

  • L’utilitaire IEFBR14 : ne fait (presque) rien
  • Gestion des données et du stockage sur z/OS
  • Le programme utilitaire IEFBR14 n’entreprend aucune action autre que de renvoyer un code d’achèvement de 0 ; cependant, “l’exécution” de cet utilitaire appelle d’autres composants système qui exécutent des tâches utiles.
  • Par exemple, si vous soumettez JCL pour exécuter IEFBR14, le planificateur de travaux z/OS vérifie la présence d’erreurs de syntaxe dans vos instructions JCL.
    Si votre JCL contient des instructions de définition de données (DD), l’initiateur z/OS alloue de l’espace pour les nouveaux ensembles de données et effectue le traitement de colocalisation pour tous les ensembles de données.

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)
  • Le planificateur de travaux z/OS pour vérifier si vos instructions JCL contiennent des erreurs de syntaxe.
  • L’initiateur alloue le nouveau jeu de données défini par NEWDS (SMITH.LIB.CNTL) et conserve le jeu de données à la fin du job.
  • L’initiateur supprime également un ancien jeu de données défini par OLDDS (SMITH.OLD.DATA) à la fin du travail.

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.

JCL – IEBUPDTE

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.

Tableau 1. Répertoire d’exemples IEBUPDTE

OpérationOrganisation de l’ensemble de donnéesDispositifCommentairesExemple
ADD et REPLPartitionnéDisqueUne 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éePartitionnéDisqueLes 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éesPartitionnéDisqueEntré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éroterPartitionnéDisqueL’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 DELETEPartitionné, séquentielDisque et bandeLe 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 UPDATEBande et disque partitionnés séquentielsL’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
INSERTPartitionnéDisqueLe bloc d’enregistrements logiques est inséré dans un membre existant.Exemple 7 : Insérer des enregistrements dans un membre de la bibliothèque
INSERTPartitionnéDisqueDeux 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
CREATESéquentielLecteur de carte et disqueUn 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
COPIESéquentielDisqueL’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
CREATEPartitionnéDisqueCré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.

Exemples

Exemple 1 : Placer deux procédures dans SYS1.PROCLIB

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 :

  • SYSUT1 et SYSUT2 DD définissent le jeu de données SYS1.PROCLIB, qui est supposé être catalogué.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
    L’ensemble de données contient les instructions de contrôle de l’utilitaire et les données à placer dans la bibliothèque de procédures.
  • L’instruction de fonction ADD indique que les enregistrements (instructions de données) de l’ensemble de données de contrôle doivent être placés dans la sortie.
    La procédure nouvellement créée, ERASE, est répertoriée dans le fichier de messages.
    La fonction ADD n’aura pas lieu si un membre nommé ERASE existe déjà dans le nouveau jeu de données maître référencé par SYSUT2.
  • La première instruction détaillée NUMBER indique que les procédures nouvelles et de remplacement doivent recevoir des numéros de séquence.
    Le premier enregistrement de chaque procédure se voit attribuer le numéro de séquence 10 ; l’enregistrement suivant se voit attribuer le numéro de séquence 20, et ainsi de suite.
  • L’instruction ERASE EXEC marque le début de la première nouvelle procédure.
  • L’instruction de fonction REPL indique que les enregistrements (instructions de données) dans l’ensemble de données de contrôle doivent remplacer un membre déjà existant.
    Le membre est stocké dans le nouvel ensemble de données de base référencé par SYSUT2.
    La fonction REPL n’aura lieu que si un membre nommé LISTPROC existe déjà dans l’ancien ensemble de données de base référencé par SYSUT1.
  • La deuxième instruction détaillée NUMBER est un doublon de la première.
  • L’instruction LIST EXEC marque le début de la deuxième nouvelle procédure.
  • L’instruction ENDUP marque la fin des données d’entrée SYSIN DD.

Exemple 2 : création d’une bibliothèque à trois membres

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 :

  • SYSUT2 DD définit le nouveau maître partitionné, OUTLIB.
    Un espace suffisant est alloué pour permettre des modifications ultérieures sans créer un nouvel ensemble de données maître.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
    L’ensemble de données contient les instructions de contrôle de l’utilitaire et les données à placer sous forme de trois membres dans l’ensemble de données partitionnées de sortie.
  • Les instructions de la fonction ADD indiquent que les instructions de données suivantes doivent être placées en tant que membres dans l’ensemble de données partitionnées de sortie.
    Chaque instruction de fonction ADD spécifie un nom de membre pour les données suivantes et indique que l’instruction de membre et de contrôle est répertoriée dans l’ensemble de données de message.
  • Les instructions de données contiennent les données à placer dans chaque membre de l’ensemble de données partitionnées en sortie.
  • ENDUP signale la fin de l’entrée du jeu de données de contrôle.

É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.

Exemple 3 : Créer une nouvelle bibliothèque en utilisant SYS1.MACLIB comme source

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 :

  • SYSUT1 DD définit l’ensemble de données partitionné d’entrée SYS1.MACLIB, qui est supposé être catalogué.
  • SYSUT2 DD définit l’ensemble de données partitionnées de sortie DEV.DRIVER3,NEWMCLIB.
    Un espace suffisant est alloué pour permettre des modifications ultérieures sans créer un nouvel ensemble de données maître.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • Les instructions de la fonction REPRO identifient les membres d’entrée existants (ATTACH et DETACH) à copier dans l’ensemble de données de sortie.
    Ces membres sont également répertoriés dans l’ensemble de données de message (car LIST=ALL est spécifié).
  • L’instruction de fonction ADD indique que les enregistrements (instructions de données ultérieures) doivent être placés en tant que membres dans l’ensemble de données partitionné de sortie, appelé EXIT.
    Les déclarations de données doivent être répertoriées dans l’ensemble de données de message.
  • L’instruction de détail NUMBER attribue des numéros de séquence aux instructions de données.
    (Les instructions de données contiennent des numéros de séquence vides dans les colonnes 73 à 80.)
    Le premier enregistrement du membre de sortie se voit attribuer le numéro de séquence 10 ; les numéros d’enregistrement suivants sont augmentés de 100.
  • ENDUP signale la fin des données SYSIN.

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.

Exemple 4 : Mettre à jour un membre de bibliothèque

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 :

  • SYSUT1 DD définit l’ensemble de données partitionnées qui est mis à jour sur place.
    (Notez qu’il n’est pas nécessaire de spécifier le nom du membre dans l’instruction DD.)
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • L’instruction de fonction CHANGE indique le nom du membre à mettre à jour (MODMEMB) et spécifie l’opération UPDATE=INPLACE.
    Le membre entier est répertorié dans l’ensemble de données de message.
    Notez que, comme la renumérotation est en cours, et puisque UPDATE=INPLACE a été spécifié, la liste aurait été fournie même si le paramètre LIST=ALL n’avait pas été spécifié.
    Voir le paramètre LIST pour plus d’informations.
  • L’instruction détaillée NUMBER indique que le membre entier doit être renuméroté et spécifie le premier numéro de séquence à attribuer et la valeur d’incrémentation (5) pour les numéros de séquence successifs.
  • Les instructions de données remplacent les enregistrements logiques existants ayant les numéros de séquence 20 et 35.

Exemple 5 : Créer un nouveau jeu de données de base et supprimer les enregistrements sélectionnés

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 :

  • SYSUT1 DD définit l’ensemble de données partitionnées d’entrée DCB.PARTDS, qui réside sur un volume de disque.
  • SYSUT2 DD définit l’ensemble de données séquentielles de sortie, SEQDS.
    L’ensemble de données est écrit en tant que second ensemble de données sur un volume de bande.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • CHANGE identifie le membre d’entrée (OLDMEMB1) et indique que la sortie est un ensemble de données séquentielles (NEW=PS).
  • Le premier relevé de données remplace l’enregistrement logique dont le numéro de séquence est identique au numéro de séquence dans le relevé de données (00000123).
    Si un tel enregistrement logique n’existe pas, la déclaration de données est incorporée dans l’ordre approprié dans l’ensemble de données de sortie.
  • L’instruction de détail DELETE supprime les enregistrements logiques dont les numéros de séquence sont compris entre 223 et 246 inclus.
  • La deuxième instruction de données est insérée dans la séquence appropriée dans l’ensemble de données de sortie, car aucun enregistrement logique avec le numéro de séquence 224 n’existe (il a été supprimé dans l’instruction précédente).

Notez qu’un seul membre peut être utilisé comme entrée lors de la conversion en organisation séquentielle.

Exemple 6 : Création et mise à jour d’un membre de bibliothèque

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 :

  • SYSUT1 DD définit le jeu de données séquentielles d’entrée (BROWN.OLDSEQDS).
    L’ensemble de données réside sur un volume de bande.
  • SYSUT2 DD définit le jeu de données partitionné en sortie (BROWN.NEWPART).
    Suffisamment d’espace est alloué pour accueillir des membres qui pourraient être ajoutés à l’avenir.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • L’instruction de fonction CHANGE identifie le membre de sortie (PARMEM1) et indique qu’une conversion de l’entrée séquentielle en sortie partitionnée est effectuée.
    Le paramètre SEQFLD indique qu’un numéro de séquence de 5 octets se trouve dans les colonnes 60 à 64 de chaque instruction de données.
    Le paramètre COLUMN=40 spécifie la colonne de départ d’un champ (dans les instructions de données suivantes) à partir de laquelle les informations de remplacement sont obtenues.
    SOURCE=0 indique que les informations de remplacement sont fournies par vous.
  • La première déclaration de données est utilisée comme données de remplacement.
    Les colonnes 40 à 80 de l’instruction remplacent les colonnes 40 à 80 de l’enregistrement logique correspondant.
    Si un tel enregistrement logique n’existe pas, l’image de carte entière est insérée dans le membre d’ensemble de données de sortie.
  • L’instruction de détail DELETE supprime tous les enregistrements logiques ayant des numéros de séquence de 220 à 250.
  • La deuxième instruction de données, dont le numéro de séquence se situe dans la plage spécifiée dans l’instruction détaillée DELETE, est incorporée dans son intégralité dans le membre de l’ensemble de données de sortie.
  • La troisième instruction de données, qui est au-delà de la plage de l’instruction de détail DELETE, est traitée de la même manière que la première instruction de données.
  • ALIAS attribue le nom d’alias MEMB1 au membre de l’ensemble de données de sortie PARMEM1.

Exemple 7 : Insertion d’enregistrements dans un membre de bibliothèque

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 :

  • SYSUT1 et SYSUT2 DD définissent le jeu de données partitionnées (PDS).
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • L’instruction de fonction CHANGE identifie le membre d’entrée RENUM.
    Le membre entier est répertorié dans l’ensemble de données de message.
  • L’instruction détaillée NUMBER spécifie l’opération d’insertion et contrôle l’opération de renumérotation.
  • Les instructions de données sont les enregistrements logiques à insérer.
    (Les numéros de séquence sont attribués lorsque les instructions de données sont insérées.)

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 :

  1. L’instruction de données 1 reçoit le numéro de séquence 20 (NEW1=20) et est insérée après l’enregistrement logique existant 15 (SEQ1=15).
  2. Les énoncés de données 2 et 3 reçoivent les numéros de séquence 25 et 30 (INCR=5) et sont insérés après l’énoncé de données 1.
  3. Les enregistrements logiques existants 20, 25 et 30 reçoivent respectivement les numéros de séquence 35, 40 et 45.

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éesNouveaux numéros de séquence
1010
1515
Déclaration de données 120
Déclaration de données 225
Déclaration de données 330
2035
2540
3045

Exemple 8 : Renuméroter et insérer des enregistrements dans un membre de bibliothèque

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 :

  • SYSUT1 et SYSUT2 DD définissent l’ensemble de données partitionné PDS.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • L’instruction de fonction CHANGE identifie le membre d’entrée RENUM.
    Le membre entier est répertorié dans l’ensemble de données de message.
  • Les instructions de détail NUMBER spécifient les opérations d’insertion (INSERT=YES) et contrôlent l’opération de renumérotation.
  • Les instructions de données 1, 2, 3 et 4, 5, 6 sont les blocs d’enregistrements logiques à insérer.
    Parce qu’ils contiennent des numéros de séquence vides, les numéros de séquence sont attribués lorsque les instructions de données sont insérées.
  • L’instruction de données 7, parce qu’elle contient un numéro de séquence, arrête l’opération d’insertion.
    Le numéro de séquence est identique au numéro de l’enregistrement suivant dans l’ancien ensemble de données de base ; par conséquent, l’énoncé de données 7 remplacera l’ancien enregistrement principal portant le même numéro dans l’ensemble de données de sortie.

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 :

  1. L’instruction de données 1 reçoit le numéro de séquence AA020 (NEW1=AA020) et est insérée après l’enregistrement logique existant AA015 (SEQ1=AA015).
  2. Les énoncés de données 2 et 3 reçoivent les numéros de séquence AA025 et AA030 (INCR=5) et sont insérés après l’énoncé de données 1.
  3. Les enregistrements logiques existants AA020, AA025 et AA030 reçoivent respectivement les numéros de séquence AA035, AA040 et AA045.
  4. L’instruction de données 4 reçoit le numéro de séquence AA050 et est insérée.
    (La spécification SEQ1=AA030 dans la deuxième instruction NUMBER place cette instruction de données après l’enregistrement logique existant AA030, qui est devenu l’enregistrement logique AA045.)
  5. Les énoncés de données 5 et 6 reçoivent les numéros de séquence AA055 et AA060 et sont insérés après l’énoncé de données 4.
  6. L’enregistrement logique existant AA035 est remplacé par l’énoncé de données 7, auquel est attribué le numéro de séquence AA065.
  7. Les enregistrements logiques restants du membre sont renumérotés jusqu’à ce que l’enregistrement logique BB010 soit rencontré.
    Comme cet enregistrement a un numéro de séquence supérieur au prochain numéro à attribuer, l’opération de renumérotation est terminée.

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éesNouveaux numéros de séquence
AA010AA010
AA015AA015
Déclaration de données 1AA020
Déclaration de données 2AA025
Déclaration de données 3AA030
AA020AA035
AA025AA040
AA030AA045
Déclaration de données 4AA050
Déclaration de données 5AA055
Déclaration de données 6AA060
AA035 (Déclaration de données 7)AA065
AA040AA070
AA045AA070
AA050AA075
BB010BB010
BB015BB015

Exemple 9 : Création d’un jeu de données séquentiel à partir d’une entrée de carte

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 :

  • SYSUT2 DD définit et alloue de l’espace pour l’ensemble de données séquentielles de sortie, appelé LABEL, qui réside sur un volume de disque.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
    (Cet ensemble de données de contrôle comprend l’ensemble de données d’entrée séquentielle et les étiquettes utilisateur, qui se trouvent sur des cartes.)
  • La première instruction LABEL identifie les images de carte de 80 octets dans le flux d’entrée qui deviendront des étiquettes d’en-tête utilisateur.
    (Ils peuvent être modifiés par la routine de traitement d’étiquette d’en-tête de l’utilisateur spécifiée dans l’instruction de fonction ADD.)
  • L’instruction de fonction ADD indique que les instructions de données qui suivent sont placées dans l’ensemble de données de sortie.
    Le jeu de données nouvellement créé est répertorié dans le jeu de données de message.
    Les routines d’en-tête et de fin de sortie de l’utilisateur doivent recevoir le contrôle avant l’écriture des étiquettes d’en-tête et de fin.
  • La deuxième instruction LABEL identifie les images de carte de 80 octets dans le flux d’entrée qui deviendront des étiquettes de fin d’utilisateur.
    (Ils peuvent être modifiés par la routine de traitement des étiquettes de fin de l’utilisateur spécifiée dans l’instruction de fonction ADD.)
  • ENDUP signale la fin du jeu de données de contrôle.

Exemple 10 : Copier un ensemble de données séquentiel d’un volume à un autre

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 :

  • SYSUT1 DD définit l’ensemble de données séquentielles d’entrée, appelé OLDMAST, qui réside sur un volume de disque.
  • SYSUT2 DD définit l’ensemble de données séquentielles de sortie, appelé NEWMAST, qui résidera sur un volume de disque.
  • SYSIN DD définit le jeu de données de contrôle. Le contenu de cet ensemble de données résidant sur le disque dans cet exemple est :

    ./ LISTE REPRO=ALL,INHDR=INHRTN,INTLR=INTRTN, C
    ./ OUTHDR=OUTHRTN,OUTTLR=OUTTRN
    ./ ENDUP

  • L’instruction de fonction REPRO indique que l’ensemble de données séquentielles d’entrée existant est copié dans l’ensemble de données de sortie.
    Cet ensemble de données de sortie est répertorié dans l’ensemble de données de message.
    Les routines de traitement d’étiquettes de l’utilisateur doivent avoir le contrôle lorsque des étiquettes d’en-tête ou de fin sont rencontrées sur l’ensemble de données d’entrée ou de sortie.
  • ENDUP indique la fin du jeu de données de contrôle.

Exemple 11 : Création d’un nouvel ensemble de données partitionnées

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 :

  • SYSUT1 DD définit l’ensemble de données partitionné, qui est utilisé comme données source. Il peut s’agir d’un PDSE.
  • SYSUT2 DD définit le nouvel ensemble de données partitionnées, qui est créé à partir de l’ensemble de données partitionnées source et d’un membre supplémentaire inclus en tant qu’entrée et données.
    Il peut s’agir d’un PDSE.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • Les instructions de la fonction REPRO reproduisent les membres source nommés dans l’ensemble de données partitionnées en sortie.
  • L’instruction de fonction ADD spécifie que les enregistrements de données suivant le flux d’entrée doivent être inclus en tant que MEM4.
  • L’instruction détaillée NUMBER indique que le nouveau membre doit se voir attribuer des numéros de séquence dans les colonnes 73 à 80.
    Le premier enregistrement se voit attribuer le numéro de séquence 10. Le numéro de séquence de chaque enregistrement successif est augmenté de 5.
  • ENDUP signale la fin des données de la carte d’entrée.

JCL – IEBPTPCH

Ces exemples illustrent certaines des utilisations de IEBPTPCH.
Vous pouvez utiliser le tableau 1 comme guide de référence rapide pour les exemples IEBPTPCH.

Tableau 1. Répertoire d’exemples IEBPTPCH

OpérationOrganisation de l’ensemble de donnéesDispositifCommentairesExemple
PUNCHSéquentielPerforatrice de disque et de carteFormat spécifié par l’utilisateur. Les numéros de séquence sont attribués et perforés.Exemple 1 : Imprimer un ensemble de données partitionnées
PUNCHSéquentielLecteur de carte et perforation de carteFormat spécifié par l’utilisateur. Une copie d’un jeu de cartes est réalisée.Exemple 2 : ensembles de données séquentielles de poinçonnage
PRINTSéquentielImprimante systèmeConversion en hexadécimal.Exemple 3 : dupliquer un jeu de cartes
PRINTSéquentielBande et imprimante systèmeFormat par défaut.Exemple 4 : Impression d’un ensemble de données séquentielles selon le format par défaut
PRINTSéquentielDisque et imprimante systèmeFormat spécifié par l’utilisateur. Des routines utilisateur sont fournies. Le traitement se termine une fois que le troisième groupe d’enregistrements est imprimé ou que STOPAFT est satisfait.Exemple 5 : Impression d’un ensemble de données séquentielles selon les spécifications de l’utilisateur
PRINTSéquentielImprimante systèmeImprimer avec routine de sortie utilisateur.Exemple 6 : Impression de trois groupes d’enregistrements
PRINTSéquentiel,
partitionné
Disque et imprimante systèmeFormat SYSOUT. Conversion en hexadécimal.Exemple 7 : Imprimer un ensemble de données pré-formaté
PRINTCloisonnéDisque et imprimante systèmeFormat par défaut. Conversion en hexadécimal. Dix enregistrements de chaque membre sont imprimés.Exemple 8 : Répertoire d’impression d’un ensemble de données partitionné
PRINTCloisonnéDisque et imprimante systèmeFormat par défaut. Conversion en hexadécimal. Deux membres sont imprimés.Exemple 9 : Imprimer les enregistrements sélectionnés d’un ensemble de données partitionnées
PRINTCloisonnéDisque et imprimante systèmeFormat par défaut. Les données DBCS sont vérifiées et imprimées.Exemple 10 : convertir en hexadécimal et imprimer des 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.

Exemples

Exemple 1 : Impression d’un jeu de données partitionné

Dans cet exemple, un membre d’un ensemble de données partitionnées est imprimé selon les spécifications de l’utilisateur.

PRINT TYPORG=PO,MAXNAME=1,MAXFLDS=1
MEMBER NAME=UTILUPD8
RECORD FIELD=(80)

Si l’entrée de la carte de membre n’est pas utilisée, l’ensemble des données sera imprimé.

Exemple 2 : Fichiers séquentiels punch (perforés)

Dans cet exemple, un ensemble de données séquentielles est perforé selon les spécifications de l’utilisateur.

//PHSEQNO  JOB  ...
//STEP1    EXEC PGM=IEBPTPCH
//SYSPRINT DD  SYSOUT=A
//SYSUT1   DD  DSNAME=MASTER.SEQSET,LABEL=(,SUL),DISP=SHR
//SYSUT2   DD  SYSOUT=B
//SYSIN    DD  *
        PUNCH  MAXFLDS=1,CDSEQ=0,CDINCR=20
        RECORD  FIELD=(72)
        LABELS  DATA=YES
/*

Les instructions de contrôle sont les suivantes :

  • SYSUT1 DD définit le jeu de données d’entrée, MASTER.SEQSET, qui réside sur un volume de disque ou de bande. L’ensemble de données contient des enregistrements bloqués fixes de 80 octets.
  • SYSUT2 DD définit la classe de sortie du système (le poinçon est supposé).
    Cette partie de chaque enregistrement de l’ensemble de données d’entrée défini par le paramètre FIELD est représentée par une carte perforée.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • PUNCH commence l’opération de perforation, indique qu’un paramètre FIELD est inclus dans une instruction RECORD ultérieure (MAXFLDS=1) et attribue un numéro de séquence pour la première carte perforée (00000000) et une valeur d’incrément pour les numéros de séquence successifs (20).
    Les numéros de séquence sont placés dans les colonnes 73 à 80 des enregistrements de sortie.
  • RECORD indique que les positions 1 à 72 des enregistrements d’entrée doivent être perforées.
    Les octets 73 à 80 des enregistrements d’entrée sont remplacés par les nouveaux numéros de séquence dans le jeu de cartes de sortie.
  • LABELS spécifie que les étiquettes d’en-tête utilisateur et les étiquettes de fin utilisateur sont perforées.

Les étiquettes ne peuvent pas être modifiées ; ils sont toujours déplacés vers les 80 premiers octets du tampon de sortie.
Aucun numéro de séquence n’est présent sur les cartes contenant les enregistrements d’en-tête et de fin d’utilisateur.

Exemple 3 : Dupliquer un jeu de cartes

Dans cet exemple, un jeu de cartes contenant un code de carte perforée valide ou BCD est dupliqué.

//PUNCH    JOB  ...
//STEP1    EXEC PGM=IEBPTPCH
//SYSPRINT DD  SYSOUT=A
//SYSIN    DD  DSNAME=PDSLIB(PNCHSTMT),DISP=(OLD,KEEP)
//SYSUT2   DD  SYSOUT=B
//SYSUT1   DD  DATA

  (jeu de données de carte d'entrée comprenant // cartes)

/*

Les instructions de contrôle sont les suivantes :

  • SYSIN DD définit le jeu de données de contrôle PDSLIB qui contient le membre PNCHSTMT.
    (L’ensemble de données est catalogué.)<>br Le format d’enregistrement doit être FB et la longueur de l’enregistrement logique doit être de 80.
  • SYSUT2 DD définit la classe de sortie du système (le poinçon est supposé).
  • SYSUT1 DD définit le jeu de données de carte d’entrée, qui suit dans le flux d’entrée.

Exemple 4 : Impression d’un jeu de données séquentiel selon le format par défaut

Dans cet exemple, un jeu de données séquentiel est imprimé selon le format par défaut.
La sortie imprimée est convertie en hexadécimal.

//PRINT    JOB  ...
//STEP1    EXEC PGM=IEBPTPCH
//SYSPRINT DD  SYSOUT=A
//SYSUT1   DD  DSNAME=INSET,UNIT=tape,
//             LABEL=(,NL),VOLUME=SER=001234,
//             DISP=(OLD,KEEP),DCB=(RECFM=U,BLKSIZE=2000)
//SYSUT2   DD  SYSOUT=A
//SYSIN    DD  *
     PRINT   TOTCONV=XE
     TITLE   ITEM=('PRINT SEQ DATA SET WITH CONV TO HEX',10)
/*

Les instructions de contrôle sont les suivantes :

  • SYSUT1 DD définit le jeu de données d’entrée sur un volume de bande.
    L’ensemble de données contient des enregistrements indéfinis ; aucun enregistrement ne dépasse 2 000 octets.
  • SYSUT2 DD définit le jeu de données de sortie.
    L’ensemble de données est écrit sur le périphérique de sortie du système (imprimante supposée).
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • PRINT lance l’opération d’impression et spécifie la conversion de la représentation alphanumérique en représentation hexadécimale.
  • TITLE spécifie un titre à placer en commençant dans la colonne 10 de la sortie imprimée. Le titre n’est pas converti en hexadécimal.

Exemple 5 : Impression d’un jeu de données séquentiel selon les spécifications de l’utilisateur

Dans cet exemple, un ensemble de données séquentielles est imprimé selon les spécifications de l’utilisateur.

//PTNONSTD JOB  ...
//STEP1    EXEC PGM=IEBPTPCH
//SYSPRINT DD  SYSOUT=A
//SYSUT1   DD  DSNAME=SEQSET,UNIT=tape,LABEL=(2,SUL),
//             DISP=(OLD,KEEP),VOLUME=SER=001234
//SYSUT2   DD  SYSOUT=A
//SYSIN    DD  *
       PRINT   MAXFLDS=1
       EXITS   INHDR=HDRIN,INTLR=TRLIN
       RECORD  FIELD=(80)
       LABELS  DATA=YES
/*

Les instructions de contrôle sont les suivantes :

  • SYSUT1 DD définit le jeu de données d’entrée, SEQSET, qui est le deuxième jeu de données sur un volume de bande.
  • SYSUT2 DD définit le jeu de données de sortie sur le périphérique de sortie du système (imprimante supposée).
    Chaque ligne imprimée contient 80 caractères contigus (un enregistrement) d’informations.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • PRINT commence l’opération d’impression et indique qu’un paramètre FIELD est inclus dans une instruction RECORD suivante (MAXFLDS=1).
  • EXITS indique que les exits seront dirigés vers les routines de traitement des étiquettes d’en-tête et de fin d’utilisateur lorsque ces étiquettes sont rencontrées dans l’ensemble de données SYSUT1.
  • RECORD indique que chaque enregistrement d’entrée est traité dans son intégralité (80 octets).
    Chaque enregistrement d’entrée est imprimé dans les colonnes 1 à 80 sur l’imprimante.
  • LABELS indique que les étiquettes d’en-tête et de fin utilisateur sont imprimées en fonction du code retour émis par les exits utilisateur.

Exemple 6 : Impression de trois groupes d’enregistrements

Dans cet exemple, trois groupes d’enregistrements sont imprimés.
Une routine utilisateur est fournie pour manipuler les enregistrements de sortie avant qu’ils ne soient imprimés.

//PRINT    JOB  ...
//STEP1    EXEC PGM=IEBPTPCH
//SYSPRINT DD  SYSOUT=A
//SYSUT1   DD  DSNAME=SEQDS,UNIT=disk,DISP=(OLD,KEEP),
//             LABEL=(,SUL),VOLUME=SER=111112
//SYSUT2   DD  SYSOUT=A
//SYSIN    DD  *
       PRINT   MAXFLDS=9,MAXGPS=9,MAXLITS=23,STOPAFT=32767
       TITLE   ITEM=('TIMECONV-DEPT D06'),
               ITEM=('JAN10-17',80)
       EXITS   OUTREC=NEWTIME,INHDR=HDRS,INTLR=TLRS
       RECORD  IDENT=(6,'498414',1),
               FIELD=(8,1,,10),FIELD=(30,9,XE,20)
       RECORD  IDENT=(2,'**',39),
               FIELD=(8,1,,10),FIELD=(30,9,XE,20)
       RECORD  IDENT=(6,'498414',1),
               FIELD=(8,1,,10),FIELD=(30,9,XE,20)
       LABELS  CONV=XE,DATA=ALL
/*

Les instructions de contrôle sont les suivantes :

  • SYSUT1 DD définit le jeu de données d’entrée, appelé SEQDS.
    L’ensemble de données réside sur un volume de disque.
  • SYSUT2 DD définit le jeu de données de sortie sur le périphérique de sortie du système (imprimante supposée).
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • L’instruction PRINT :
    1. Initialise l’opération d’impression.
    2. Indique que pas plus de neuf paramètres FIELD sont inclus dans les instructions RECORD suivantes (MAXFLDS=9).
    3. Indique que pas plus de neuf paramètres IDENT sont inclus dans les instructions RECORD suivantes (MAXGPS=9).
    4. Indique que pas plus de 23 caractères littéraux sont inclus dans les paramètres IDENT suivants (MAXLITS=23).
    5. Indique que le traitement est terminé après le traitement de 32767 enregistrements ou après le traitement du troisième groupe d’enregistrements, selon la première éventualité.
      Parce que MAXLINE est omis, 60 lignes sont imprimées sur chaque page.
  • TITLE spécifie deux titres, à imprimer sur une seule ligne.
    Les titres ne sont pas convertis en hexadécimal.
  • EXITS spécifie le nom d’une routine utilisateur (NEWTIME), qui est utilisée pour manipuler les enregistrements de sortie avant qu’ils ne soient imprimés.
  • La première instruction RECORD définit le premier groupe d’enregistrements à traiter et indique où les informations des enregistrements d’entrée sont placées dans les enregistrements de sortie.
    Les positions 1 à 8 des enregistrements d’entrée apparaissent aux positions 10 à 17 de la sortie imprimée, et les positions 9 à 38 sont imprimées en représentation hexadécimale et placées aux positions 20 à 79.
  • La deuxième instruction RECORD définit le deuxième groupe à traiter.
    Le paramètre de l’opérande IDENT spécifie qu’un enregistrement d’entrée est le dernier enregistrement modifié conformément à l’opérande FIELD dans cette instruction RECORD.
    L’opérande FIELD spécifie que les positions 1 à 8 des enregistrements d’entrée sont placées aux positions 10 à 17 de la sortie imprimée, et les positions 9 à 38 sont imprimées en représentation hexadécimale et apparaissent aux positions 20 à 79.
  • La troisième et dernière instruction RECORD est égale à la première instruction RECORD.
    Un enregistrement d’entrée qui répond au paramètre de l’opérande IDENT met fin au traitement, à moins que le paramètre STOPAFT de l’instruction PRINT ne l’ait déjà fait.
  • LABELS spécifie que toutes les étiquettes d’en-tête ou de fin de l’utilisateur doivent être imprimées quel que soit le code de retour, à l’exception de 16, émis par la routine de sortie de l’utilisateur.
    Il indique également que les étiquettes sont converties d’une représentation alphanumérique à une représentation hexadécimale (CONV=XE).

Exemple 7 : Impression d’un jeu de données préformaté

Dans cet exemple, l’entrée est un ensemble de données SYSOUT (séquentiel), qui a été précédemment écrit comme deuxième ensemble de données d’une bande d’étiquettes standard.
Il est imprimé au format SYSOUT.

//PTSYSOUT JOB  ...
//STEP1    EXEC PGM=IEBPTPCH
//SYSPRINT DD  SYSOUT=A
//SYSUT1   DD  UNIT=tape,LABEL=(2,SL),DSNAME=LISTING,
//             DISP=(OLD,KEEP),VOL=SER=001234
//SYSUT2   DD  SYSOUT=A
//SYSIN    DD  *
    PRINT   PREFORM=A
/*

Les instructions de contrôle sont les suivantes :

  • SYSUT1 DD définit le jeu de données d’entrée, qui était auparavant écrit comme deuxième jeu de données d’une bande d’étiquettes standard.
    L’ensemble de données a reçu le nom LISTING.
  • SYSUT2 DD définit le jeu de données de sortie sur le périphérique de sortie du système (imprimante supposée).
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • L’instruction PRINT lance l’opération d’impression et indique qu’un caractère de contrôle ASA est fourni comme premier caractère de chaque enregistrement à imprimer (PREFORM=A).

Exemple 8 : Répertoire d’impression d’un jeu de données partitionné

Dans cet exemple, le répertoire d’un jeu de données partitionné est imprimé selon le format par défaut.
La sortie imprimée est convertie en hexadécimal.

//PRINTDIR JOB  ...
//STEP1    EXEC PGM=IEBPTPCH
//SYSPRINT DD  SYSOUT=A
//SYSUT1   DD  DSNAME=MAIN.PDS,
//             DISP=(OLD,KEEP),DCB=(RECFM=U,BLKSIZE=256)
//SYSUT2   DD  SYSOUT=A
//SYSIN    DD  *
   PRINT   TYPORG=PS,TOTCONV=XE
   TITLE   ITEM=('PRINT PARTITIONED DIRECTORY OF PDS',10)
   TITLE   ITEM=('FIRST TWO BYTES SHOW NUM OF USED BYTES',10)
  LABELS   DATA=NO
/* 

Les instructions de contrôle sont les suivantes :

  • SYSUT1 DD définit l’ensemble de données d’entrée (le répertoire partitionné), qui réside sur un volume de disque.
    Les mots-clés DCB décrivent le répertoire, pas le contenu du membre.
  • SYSUT2 DD définit le jeu de données de sortie sur le périphérique de sortie du système (imprimante supposée).
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • PRINT commence l’opération d’impression, indique que le répertoire partitionné est organisé séquentiellement et spécifie la conversion de la représentation alphanumérique en représentation hexadécimale.
  • La première instruction TITLE spécifie un titre et la deuxième instruction TITLE spécifie un sous-titre.
    Aucun titre n’est converti en hexadécimal.
  • LABELS spécifie qu’aucune étiquette utilisateur n’est imprimée.
  • Remarque : tous les octets d’un bloc de répertoire ne doivent pas nécessairement contenir des données relatives à l’ensemble de données partitionnées.
    Les octets inutilisés sont parfois utilisés par le système d’exploitation comme zones de travail temporaires.
    Avec la conversion en représentation hexadécimale, les quatre premiers caractères de la sortie imprimée indiquent le nombre d’octets du bloc de 256 octets appartenant à l’ensemble de données partitionnées.
    Tous les octets inutilisés apparaissent dans la dernière partie du bloc de répertoire.
    Ils ne sont pas intercalés avec les octets utilisés.

Exemple 9 : Imprimer les enregistrements sélectionnés d’un fichier partitionné

Dans cet exemple, un ensemble de données partitionné (dix enregistrements de chaque membre) est imprimé selon le format par défaut.
La sortie imprimée est convertie en hexadécimal.

//PRINTPDS JOB  ...
//STEP1    EXEC PGM=IEBPTPCH
//SYSPRINT DD  SYSOUT=A
//SYSUT1   DD  DSNAME=WAYNE.TEST.DATA,DISP=SHR
//SYSUT2   DD  SYSOUT=A
//SYSIN    DD  *
        PRINT  TOTCONV=XE,TYPORG=PO,STOPAFT=10
        TITLE  ITEM=('PRINT PDS - 10 RECS EACH MEM',20)
/*

Les instructions de contrôle sont les suivantes :

  • SYSUT1 DD définit le jeu de données d’entrée, appelé WAYNE.TEST.DATA, sur un volume de disque.
  • SYSUT2 DD définit le jeu de données de sortie sur le périphérique de sortie du système (imprimante supposée).
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • PRINT commence l’opération d’impression, spécifie la conversion d’une représentation alphanumérique en représentation hexadécimale, indique que l’ensemble de données d’entrée est partitionné et spécifie que 10 enregistrements de chaque membre doivent être imprimés.
  • TITLE spécifie un titre à placer en commençant dans la colonne 20 de la sortie imprimée.
    Le titre n’est pas converti en hexadécimal.

Exemple 10 : Convertir en hexadécimal et imprimer des données partitionnées

Dans cet exemple, deux membres partitionnés sont imprimés selon le format par défaut.
La sortie imprimée est convertie en hexadécimal.

//PRNTMEMS JOB  ...
//STEP1    EXEC PGM=IEBPTPCH
//SYSPRINT DD  SYSOUT=A
//SYSUT1   DD  DSNAME=BROWN.MAIN.LIB,DISP=SHR
//SYSUT2   DD  SYSOUT=A
//SYSIN    DD  *
       PRINT   TYPORG=PO,TOTCONV=XE,MAXNAME=2
       TITLE   ITEM=('PRINT TWO MEMBS WITH CONV TO HEX',10)
       MEMBER  NAME=MEMBER1
       MEMBER  NAME=MEMBER2
/*

Les instructions de contrôle sont les suivantes :

  • SYSUT1 DD définit le jeu de données d’entrée, appelé BROWN.MAIN.LIB, sur un volume de disque.
  • SYSUT2 DD définit le jeu de données de sortie sur le périphérique de sortie du système (imprimante supposée).
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • PRINT commence l’opération d’impression, indique que le jeu de données d’entrée est partitionné, spécifie la conversion d’une représentation alphanumérique en représentation hexadécimale et indique que deux instructions MEMBER apparaissent dans le jeu de données de contrôle (MAXNAME=2).
  • TITLE spécifie un titre à placer en commençant dans la colonne 10 de la sortie imprimée. Le titre n’est pas converti en hexadécimal.
  • MEMBER spécifie les noms des membres à imprimer (MEMBER1 et MEMBER2).

Exemple 11 : membre d’impression contenant des données DBCS

Dans cet exemple, un membre d’un ensemble de données partitionné qui contient des données DBCS est imprimé après que les données DBCS ont été vérifiées pour s’assurer que tous les caractères DBCS sont imprimables.

//DBCS     JOB  ...
//STEP1    EXEC PGM=IEBPTPCH
//SYSPRINT DD   SYSOUT=A
//SYSUT1   DD   DSNAME=PDS,UNIT=disk,DISP=(OLD,KEEP)
//SYSUT2   DD   SYSOUT=A
//SYSIN    DD   *
           PRINT TYPORG=PO,DBCS=YES,MAXFLDS=1,MAXNAME=1
           MEMBER NAME=MEM1
           RECORD FIELD=(,,CV)
/*

Les instructions de contrôle sont les suivantes :

  • SYSUT1 DD définit l’ensemble de données d’entrée, PDS, sur un volume de disque.
  • SYSUT2 DD définit l’imprimante système comme ensemble de données de sortie.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • PRINT lance l’opération d’impression, indique que le jeu de données d’entrée est partitionné et indique que les données du jeu de caractères à deux octets seront imprimées.
    L’instruction indique également qu’une instruction MEMBER apparaît dans l’ensemble de données de contrôle et qu’un paramètre FIELD apparaît dans une instruction RECORD ultérieure.
  • MEMBER spécifie le membre, MEM1, qui doit être imprimé.
  • RECORD spécifie que les données DBCS doivent être vérifiées pour s’assurer qu’elles sont imprimables.

JCL – IEBPDSE

Ces exemples montrent certaines des utilisations de IEBPDSE.

Exemples

Exemple 1 : Validation d’un PDSE

Dans cet exemple, un PDSE est validé.

//STEPCHK EXEC PGM=IEBPDSE 
//SYSPRINT DD SYSOUT=A 
//SYSLIB DD DSN=IBMUSER.SIMPLE.V2.PDSE,DISP=OLD

Exemple 2 : Validation de deux PDSE

Cet exemple valide deux PDSE.

//STEPCHK2 EXEC PGM=IEBPDSE
//SYSLIB DD DSN=IBMUSER.SIMPLE.V2.PDSE,DISP=OLD
// JJ DSN=IBMUSER.SIMPLE.V3.PDSE,DISP=OLD
// JJ DSN=SYS1.LINKLIB,DISP=SHR

Exemple 3 : Valider le PDSE avec l’option DUMP

Cet exemple valide un PDSE et spécifie un DUMP SVC.

//STEPLINK EXEC PGM=IEBPDSE,
//              PARM=’DUMP’ 
//SYSLIB DD DSN=SYS1.SIEALNKE,DISP=SHR

Exemple 4 : Effectuer le traitement de suppression en attente sans analyser le PDSE

Cet exemple effectue un traitement de suppression sans analyse.

//STEPLINK EXEC PGM=IEBPDSE,
//              PARM=’PerformPendingDelete,NoAnalysis’ 
//SYSLIB DD DSN=IBMUSER.BUSY.PDSE,DISP=SHR

JCL – IEBIMAGE

Ces exemples illustrent quelques-unes des utilisations d’IEBIMAGE.
Vous pouvez utiliser le tableau 1 comme guide de référence rapide pour les exemples qui suivent.
Généralement, les exemples pour IBM 3800 modèle 3 peuvent être remplacés par des exemples IBM 3800 modèle 1 en supprimant l’instruction OPTION DEVICE=3800M3 et en spécifiant le paramètre OVERRUN égal à un nombre autre que 10.

Tableau 1. Répertoire d’exemple IEBIMAGE

Module CrééImprimanteCommentairesExemple
FCB3800 Modèle 1Forme 11 pouces Exemple 1 : Création d’un nouveau 3800 Forms Control Buffer Module
FCB3800 Modèle 1Forme 5-1/2 pouces, remplace le membre SYS1.IMAGELIB existant. Plusieurs codes de canal spécifiés.Exemple 2 : Remplacement d’un 3800 Forms Control Buffer Module
FCB3800 Modèle 1Forme 3-1/2 pouces, remplace le membre SYS1.IMAGELIB existant. Espacement vertical varié.Exemple 3 : Remplacement d’un 3800 Forms Control Buffer Module
FCB3800 Modèle 1Forme de 7 pouces, espacement vertical varié.Exemple 4 : Création d’un nouveau 3800 Forms Control Buffer Module
FCB3800 Modèle 1Format ISO 12 pouces. Remplace le module fourni par IBM.Exemple 5 : Remplacement du Forms Control Buffer Module STD3
FCB3800 Modèle 3Forme ISO de 7-1/2 pouces. Espacement vertical variable.Exemple 6 : Création d’un nouveau 3800 Forms Control Buffer Module pour des formats de ISO Paper supplémentaires
FCB4248Forme 11 pouces, basée sur le module existant. Nouvelle vitesse d’impression et position de copie spécifiées.Exemple 7 : Création d’un 4248 Forms Control Buffer Module
COPYMOD3800 Modèle 14 segments de modification.Exemple 8 : Construire un nouveau module de modification de copie
COPYMOD3800 Modèle 3Module existant utilisé comme base pour le nouveau module. OVERRUN spécifié.Exemple 9 : Construire un nouveau module de modification de copie à partir d’une copie existante
TABLE3800 Modèle 3Module fourni par IBM modifié pour inclure un autre caractère.Exemple 10 : Ajouter un nouveau caractère à un module de table d’arrangement des caractères
TABLE3800 Modèle 3Module existant utilisé comme base pour le nouveau module. La hauteur a changé.Exemple 11 : Construire un nouveau module de table d’arrangement des caractères à partir d’une copie existante
TABLE3800 Modèle 1Module existant utilisé comme base pour le nouveau module. Inclut les caractères conçus par l’utilisateur du module GRAPHIC.Exemple 12 : Créer des caractères graphiques dans un module de table de disposition des caractères
TABLE3800 Modèle 3Module existant utilisé comme base pour le nouveau module. Le nouveau module supprime toutes les références GRAPHIC et réinitialise les entrées de la table de traduction.Exemple 13 : Supprimer les références graphiques d’un module Table d’arrangement des caractères
GRAPHIC3800 Modèle 1Module entièrement fourni par IBM imprimé.Exemple 14 : Répertorier le module de modification des caractères graphiques à usage national World Trade
GRAPHIC3800 Modèle 3Segments copiés à partir du module fourni par IBM.Exemple 15 : Construire un module de modification de caractères graphiques à partir du module de modification de caractères World Trade GRAFMOD
GRAPHIC3800 Modèle 3Le nouveau module contient un caractères conçu par l’utilisateur. Disposition des caractères existante (TABLE) modifiée pour inclure un nouveau caractère.Exemple 16 : Construire un nouveau module de modification de caractères graphiques et modifier une table de disposition des caractères pour l’utiliser
GRAPHIC3800 Modèle 1Segments copiés à partir d’un module existant. Création d’un caractères conçu par l’utilisateur.Exemple 17 : Création d’un module de modification de caractères graphiques à partir de plusieurs sources
GRAPHIC3800 Modèle 3Le nouveau module GRAPHIC contient un caractère conçu par l’utilisateur. Disposition des caractères existante (TABLE) modifiée pour inclure un nouveau caractère.
COPYMOD créé pour imprimer un nouveau caractère.
Résultat testé.
Exemple 18 : Définir et utiliser un caractère dans un module de modification de caractères graphiques
CHARSET3800 Modèle 1Jeu de caractères complet de la bibliothèque avec motifs de numérisation imprimés.Exemple 19 : Module Liste d’un jeu de caractères de bibliothèque
CHARSET3800 Modèle 3Segments copiés à partir du module GRAPHIC fourni par IBM.Exemple 20 : Création d’un module de jeu de caractères de bibliothèque
CHARSET3800 Modèle 3Le nouveau module contient un caractères conçu par l’utilisateur.
Disposition des caractères existante (TABLE) modifiée pour inclure un nouveau caractère.
Exemple 21 : Création d’un module de jeu de caractères de bibliothèque et modification d’une table de disposition des caractères pour l’utiliser
CHARSET3800 Modèle 1Segments copiés à partir d’un module existant. Création d’un caractères conçu par l’utilisateur.Exemple 22 : création d’un module de jeu de caractères de bibliothèque à partir de plusieurs sources

Exemple 1 : Création d’un nouveau 3800 Forms Control Buffer Module

3800 Modèle 1

Dans cet exemple, l’espacement vertical et les codes de canal pour un format de 11 pouces sont spécifiés, et le module est ajouté au jeu de données SYS1.IMAGELIB en tant que nouveau membre.

 //FCBMOD1  JOB   ...
 //STEP1    EXEC  PGM=IEBIMAGE
 //SYSUT1   DD  DSNAME=SYS1.IMAGELIB,DISP=OLD
 //SYSPRINT DD  SYSOUT=A
 //SYSIN    DD  *
     FCB  CH1=1,CH12=80,LPI=8
     NAME IJ
 /*

Les instructions de contrôle sont décrites comme suit :

  • L’instruction SYSUT1 DD inclut DISP=OLD pour garantir qu’aucun autre travail ne peut modifier l’ensemble de données pendant l’exécution de ce travail.
  • CH1=1 spécifie le code du canal 1 pour la ligne 1, permettant le positionnement à la ligne 1.
  • CH12=80 spécifie le code du canal 12 pour la ligne 80, permettant le positionnement à la ligne 80 et une indication d’exception d’unité à la ligne 80 (la dernière ligne imprimable sur la page.)
  • LPI=8 spécifie que le format entier doit être à un espacement vertical de 8 lignes par pouce.
    Étant donné que le paramètre SIZE est omis, la longueur du format par défaut est de 11 pouces.
    Comme il y a 10 pouces d’espace imprimable dans un format de 11 pouces, 80 lignes sont imprimées à 8 lignes par pouce.
  • Le nom du nouveau module FCB est IJ ; il est stocké en tant que membre du jeu de données SYS1.IMAGELIB.

Exemple 2 : Remplacement d’un 3800 Forms Control Buffer Module

3800 Modèle 1

Dans cet exemple, les codes de taille et de canal pour un format 5-1/2 pouces sont spécifiés et le module est ajouté au jeu de données SYS1.IMAGELIB en remplacement d’un membre existant.
Le nouveau module est ajouté à la fin de l’ensemble de données ; le nom dans le répertoire du jeu de données est mis à jour afin qu’il pointe vers le nouveau module ; l’ancien module n’est plus accessible via le répertoire du jeu de données.

//FCBMOD2  JOB  ...
//STEP1    EXEC PGM=IEBIMAGE
//SYSUT1   DD  DSNAME=SYS1.IMAGELIB,DISP=OLD
//SYSPRINT DD  SYSOUT=A
//SYSIN    DD  *
    FCB  CH1=(1,7,13,20),CH12=26,SIZE=55
    NAME S55(R)
/*

Les instructions de contrôle sont discutées comme suit :

  • L’instruction SYSUT1 DD inclut DISP=OLD pour garantir qu’aucun autre travail ne peut modifier l’ensemble de données pendant l’exécution de ce travail.
  • CH1=(1,7,13,20) spécifie le code du canal 1 pour la ligne imprimable 1, la ligne 7, la ligne 13 et la ligne 20.
  • CH12=26 spécifie le code du canal 12 pour la ligne imprimable 26.
  • SIZE=55 spécifie la longueur du format à 55 dixièmes de pouce ou 5-1/2 pouces.
  • Étant donné que le paramètre LPI est omis, l’espacement vertical par défaut est de 6 lignes par pouce.
    Parce qu’il y a 4-1/2 pouces de lignes imprimables dans un format de 5-1/2 pouces, il y a 27 lignes d’impression sur ce format.
  • Le nom du module FCB est S55 et il remplace un module FCB existant du même nom.
    Le nouveau module FCB est stocké en tant que membre du jeu de données SYS1.IMAGELIB.

Exemple 3 : Remplacement d’un 3800 Forms Control Buffer Module

3800 Modèle 1

Dans cet exemple, l’espacement vertical, les codes de canal et la taille d’un format sont spécifiés, et le module est ajouté au jeu de données SYS1.IMAGELIB en remplacement d’un membre existant.
Le nouveau module est ajouté à la fin de l’ensemble de données ; le nom dans le répertoire du jeu de données est mis à jour afin qu’il pointe vers le nouveau module ; l’ancien module n’est plus accessible via le répertoire du jeu de données.

//FCBMOD3  JOB  ...
//STEP1    EXEC PGM=IEBIMAGE
//SYSUT1   DD  DSNAME=SYS1.IMAGELIB,DISP=OLD
//SYSPRINT DD  SYSOUT=A
//SYSIN    DD  *
   FCB  CH1=1,CH2=4,CH5=11,SIZE=35,LPI=((6,2),(8,3),(6,4),(8,9))
   NAME HL(R)
/*

Les instructions de contrôle sont discutées comme suit :

  • L’instruction SYSUT1 DD inclut DISP=OLD pour garantir qu’aucun autre travail ne peut modifier l’ensemble de données pendant l’exécution de ce travail.
  • CH1=1 spécifie le code du canal 1 pour la ligne imprimable 1.
  • CH2=4 spécifie le code du canal 2 pour la ligne 4.
  • CH5=11 spécifie le code du canal 5 pour la ligne 11.
  • LPI=((6,2),(8,3),(6,4),(8,9)) spécifie l’espacement vertical pour les 18 premières lignes imprimables sous la forme :
    (6,2) spécifie les lignes 1 à 2 sont à un espacement vertical de 6 lignes par pouce et occupent 2/6 de pouce.
    (8,3) spécifie que les lignes 3 à 5 sont à un espacement vertical de 8 lignes par pouce et occupent 3/8 de pouce.
    (6,4) spécifie que les lignes 6 à 9 sont à un espacement vertical de 6 lignes par pouce et occupent 4/6 de pouce.
    (8,9) spécifie que les lignes 10 à 18 sont à un espacement vertical de 8 lignes par pouce et occupent 1-1/8 pouce.
  • SIZE=35 spécifie la longueur du format à 35 dixièmes de pouce ou 3-1/2 pouces.
    Étant donné qu’il y a 2-1/2 pouces d’espace imprimable sur un format de 3-1/2 pouces et que le paramètre LPI spécifie un espacement vertical pour 2-1/2 pouces de lignes, l’espacement vertical de toutes les lignes du format est comptabilisé.
  • Le nom du module FCB est HL ; il remplace un module existant du même nom.
    Le nouveau module FCB est stocké en tant que membre du jeu de données SYS1.IMAGELIB.

Exemple 4: Création d’un nouveau 3800 Forms Control Buffer Module

//FCBMOD4  JOB  ...
//STEP1    EXEC PGM=IEBIMAGE
//SYSUT1   DD  DSNAME=SYS1.IMAGELIB,DISP=OLD
//SYSPRINT DD  SYSOUT=A
//SYSIN    DD  *
    FCB  CH1=1,CH6=33,SIZE=70,LPI=((8,32),(12,2))
    NAME TGT
/*

3800 Modèle 1

Dans cet exemple, l’espacement vertical, les codes de canal et la longueur d’un format sont spécifiés, et le module est ajouté au jeu de données SYS1.IMAGELIB en tant que nouveau membre.

Les instructions de contrôle sont décrites comme suit :

  • L’instruction SYSUT1 DD inclut DISP=OLD pour garantir qu’aucun autre travail ne peut modifier l’ensemble de données pendant l’exécution de ce travail.
  • CH1=1 spécifie le code du canal 1 pour la ligne imprimable 1.
  • CH6=33 spécifie le code du canal 6 pour la ligne 33.
  • LPI=((8,32),(12,2)) spécifie que les 32 premières lignes imprimables du format doivent être à un espacement vertical de 8 lignes par pouce, et les 2 lignes imprimables suivantes doivent être à un espacement vertical espacement de 12 lignes par pouce.
  • SIZE=70 spécifie que la longueur du format est de 70 dixièmes de pouce, ou 7 pouces.
    Étant donné qu’il y a 6 pouces de lignes imprimables dans un format de 7 pouces et que le paramètre LPI spécifie 32 lignes à 8 lignes par pouce, ou 4 pouces, et 2 lignes à 12 lignes par pouce, ou 1/6 pouce, l’espacement vertical pour les 1-5/6 pouces restants sont par défaut de 6 lignes par pouce.
  • Le nom du nouveau module FCB est TGT ; il est stocké en tant que membre du jeu de données SYS1.IMAGELIB.

Exemple 5: Remplacement du 3800 Forms Control Buffer Module STD3

3800 Modèle 1

Dans cet exemple, un module FCB est défini qui utilise des formats de papier ISO, remplaçant le module fourni par IBM nommé STD3.
Cela doit être fait avant que les routines de formatage de vidage qui impriment des vidages haute densité puissent les imprimer à 8 lignes par pouce sur cette imprimante.

//FCBMOD5  JOB  ...
//STEP1    EXEC PGM=IEBIMAGE
//SYSUT1   DD  DSNAME=SYS1.IMAGELIB,DISP=OLD
//SYSPRINT DD  SYSOUT=A
//SYSIN    DD  *
    FCB  CH1=1,CH12=88,LPI=(8,88),SIZE=120
    NAME STD3(R)
/*

Les instructions de contrôle sont discutées comme suit :

  • L’instruction SYSUT1 DD inclut DISP=OLD pour garantir qu’aucun autre travail ne peut modifier l’ensemble de données pendant l’exécution de ce travail.
  • CH1=1 spécifie le code du canal 1 pour la ligne imprimable 1 ; CH12=88 spécifie le code du canal 12 pour la ligne 88.
  • LPI=(8,88) spécifie que les 88 lignes imprimables du format doivent être à un espacement vertical de 8 lignes par pouce.
  • SIZE=120 spécifie que la longueur du format est de 120 dixièmes de pouce, ou 12 pouces, qui est le format de papier ISO le plus long.
  • Le nom du nouveau module FCB est STD3 ; il s’agit de remplacer le module existant du même nom sur SYS1.IMAGELIB.

Exemple 6: tion d’un nouveau 3800 Forms Control Buffer Module pour un ISO Paper Sizes additionnel

3800 Modèle 1

Dans cet exemple, un module FCB est défini qui utilise des formats de papier ISO et sur lequel la fonction supplémentaire de formats de papier ISO est installée.

//FCBMOD    JOB   ...                                          72
//STEP1     EXEC  PGM=IEBIMAGE
//SYSUT1    DD    DSNAME=SYS1.IMAGELIB,DISP=OLD
//SYSPRINT  DD    SYSOUT=A
//SYSIN     DD    *
    FCB  CH1=1,CH12=75,SIZE=85,
         LPI=((10,35),(12,4),(10,35),(6,1)                      X
    NAME ARU
/*

Les instructions de contrôle sont discutées comme suit :

  • L’instruction SYSUT1 DD inclut DISP=OLD pour garantir qu’aucun autre travail ne peut modifier l’ensemble de données pendant l’exécution de ce travail.
  • CH1=1 spécifie le code du canal 1 pour la ligne 1, permettant le positionnement à la ligne 1.
  • Ch12=75 spécifie le code du canal 12 pour la ligne 75, permettant le positionnement à la ligne 75 et une indication d’exception d’unité à 75 (la dernière ligne imprimable sur la page.)
  • LPI=((10,35),(12,4),(10,35),(6,1)) spécifie l’espacement vertical pour toute la zone imprimable sur le format.
    La dernière ligne imprimable du format doit avoir un espacement vertical de 6 lignes par pouce.
    La somme des lignes attribuées doit être un multiple de 1/2.

    EXEMPLE
    (10,35)=3 1/2″ (12,4)=2/6″ (6,1)=1/6″
    et 3 1/2 + 2/6 + 3 1/2 + 1/6 = 7 1/2 qui est un multiple de 1/2
  • SIZE=85 spécifie la longueur du format à 85 dixièmes de pouce, ou 8-1/2 pouces, bien que la zone imprimable soit de 7-1/2 pouces.
  • Le nom du nouveau module FCB est ARU ; il est stocké en tant que membre du jeu de données SYS1.IMAGELIB.

Exemple 7:  Création d’un 4248 Forms Control Buffer Module

Dans cet exemple, un nouveau module FCB par défaut 4248 est construit en utilisant un module FCB existant comme modèle.
Le nouveau module, NEW1, est ajouté à SYS1.IMAGELIB en tant que nouveau membre.
Le module existant, OLD1, reste inchangé.
OLD1 peut être un FCB 4248 appelé FCB4OLD1 ou un FCB 3211 appelé FCB2OLD1.
(Si les deux modules existaient, FCB4OLD1 serait utilisé.)

//FCBMOD7  JOB   ...
//STEP1    EXEC  PGM=IEBIMAGE
//SYSUT1   DD  DSNAME=SYS1.IMAGELIB,DISP=OLD
//SYSPRINT DD  SYSOUT=A
//SYSIN    DD  *
    OPTION  DEVICE=4248
    INCLUDE OLD1
    FCB     COPYP=67,PSPEED=M,DEFAULT=YES
    NAME    NEW1
/*

Les instructions de contrôle sont discutées comme suit :

  • L’instruction SYSUT1 DD inclut DISP=OLD pour garantir qu’aucun autre travail ne peut modifier l’ensemble de données pendant l’exécution de ce travail.
  • DEVICE=4248 dans l’instruction OPTION spécifie que ce module doit être créé pour l’imprimante 4248.
  • L’instruction INCLUDE spécifie qu’une copie du module existant OLD1 doit être utilisée comme base pour le nouveau module, NEW1.
  • COPYP=67 indique que la fonction de copie horizontale doit être activée et que les copies horizontales doivent commencer à s’imprimer à la 67e position d’impression à partir de la marge de début (gauche). Notez que la valeur 67 divise une imprimante à 132 marteaux en deux zones de copie égales pour deux copies horizontales de même taille.
    Avec COPYP=67, un maximum de 66 octets peut être envoyé à l’imprimante.
  • PSPEED=M indique que la vitesse de l’imprimante doit être réglée sur moyenne (3000 LPM).
    Ce paramètre remplace toute valeur PSPEED précédemment définie dans le module OLD1 ; il s’applique au module NEW1, mais ne modifie pas la valeur définie dans OLD1.
  • DEFAULT=YES indique que ce module, NEW1, doit devenir un module FCB par défaut pour cette installation.
  • Étant donné que ces paramètres ne sont pas spécifiés, les valeurs de LINES, SIZE, LPI et CHx sont par défaut les valeurs qui existent déjà dans le module OLD1.
  • L’instruction NAME indique que ce module doit s’appeler NEW1.

Exemple 8: Création d’un nouveau Copy Modification Module

3800 Modèle 1

Dans cet exemple, un module de modification de copie qui contient quatre segments de modification est construit.
Le module est ajouté au jeu de données SYS1.IMAGELIB en tant que nouveau membre.

//COPMOD1  JOB  ...
//STEP1    EXEC PGM=IEBIMAGE
//SYSUT1   DD  DSNAME=SYS1.IMAGELIB,DISP=OLD
//SYSPRINT DD  SYSOUT=A
//SYSIN    DD  *
COPY1  COPYMOD COPIES=(1,1),LINES=(1,1),POS=50,                        X
               TEXT=(C,'CONTROLLER'S COPY')
COPY2A COPYMOD COPIES=(2,1),LINES=(1,1),POS=50,                        X
               TEXT=(C,'SHIPPING MANAGER'S COPY')
COPY2B COPYMOD COPIES=(2,1),LINES=(34,3),POS=75,                       X
               TEXT=(10C,' ')
COPYALL COPYMOD COPIES=(1,4),LINES=(58,1),POS=35,                      X
               TEXT=((C,'***'),(C,'CONFIDENTIAL'),(3X,'5C'))
         NAME  RTO1
/*

Les instructions de contrôle sont discutées comme suit :

  • L’instruction SYSUT1 DD inclut DISP=OLD pour garantir qu’aucun autre travail ne peut modifier l’ensemble de données pendant l’exécution de ce travail.
  • L’instruction COPY1 COPYMOD spécifie le texte qui s’applique à chaque page de la première copie de l’ensemble de données de sortie : LINES=(1,1) et POS=50 spécifient que le texte doit figurer sur la première ligne imprimable de chaque page, à partir de la 50e position d’impression depuis le début (à gauche).
    Le paramètre TEXT identifie chaque page de la copie comme étant la copie du contrôleur.
  • L’instruction COPY2A COPYMOD spécifie le texte qui s’applique à chaque page de la deuxième copie de l’ensemble de données de sortie.
    Le texte doit figurer sur la première ligne de chaque page, à la 50e position d’impression à partir de la gauche, chaque page de la copie étant la copie du directeur des expéditions.
  • L’instruction COPY2B COPYMOD spécifie qu’une partie du texte de l’ensemble de données de sortie de la deuxième copie doit être masquée, de sorte que la première, la troisième et les copies suivantes contiennent des informations qui ne sont pas imprimées sur la deuxième copie.
    La zone vierge doit être sur les lignes 34, 35 et 36, en commençant à la 75e position d’impression à partir de la gauche.
    Le texte des lignes 34, 35 et 36, entre les positions d’impression 75 et 84, doit être vide (c’est-à-dire que le caractère spécifié entre les guillemets simples du paramètre TEXT est un blanc).
  • L’instruction COPYALL COPYMOD spécifie le texte qui s’applique aux quatre premières copies de l’ensemble de données de sortie.
    Cet exemple suppose que pas plus de quatre copies sont imprimées à chaque fois que le travail qui produit le jeu de données de sortie est traité.
    Le texte doit être sur la 58e ligne de chaque page, à la 35e position d’impression à partir de la gauche.
    La légende ***CONFIDENTIEL*** doit figurer sur chaque page de la copie.
    Notez que le texte peut être codé au format caractère et hexadécimal.
  • Le nom du module de modification de copie est RTO1 ; il est stocké en tant que membre du jeu de données SYS1.IMAGELIB.

Exemple 9: Construction d’un nouveau Copy Modification Module à partir d’une copie existante

Dans cet exemple, une copie d’un module de modification de copie existant, RTO1, est utilisée comme base pour un nouveau module de modification de copie.
Le nouveau module est ajouté au jeu de données SYS1.IMAGELIB en tant que nouveau membre.

Le module existant, RTO1, reste inchangé et disponible pour utilisation.

//COPMOD2  JOB  ...
//STEP1    EXEC PGM=IEBIMAGE
//SYSUT1   DD  DSNAME=SYS1.IMAGELIB,DISP=OLD
//SYSPRINT DD  SYSOUT=A
//SYSIN    DD  *
    INCLUDE  RTO1,DELSEG=1
    OPTION   OVERRUN=8,DEVICE=3800M3
    COPYMOD  COPIES=(2,3),LINES=(52,6),POS=100,                        X
               TEXT=(X,'40404040404040405C5C')
    NAME     AP
/*

Les instructions de contrôle sont discutées comme suit :

  • L’instruction SYSUT1 DD inclut DISP=OLD pour garantir qu’aucun autre travail ne peut modifier l’ensemble de données pendant l’exécution de ce travail.
  • L’instruction INCLUDE spécifie qu’une copie du module de modification de copie nommée RTO1 est utilisée comme base pour le nouveau module et que le premier segment de modification de RTO1 doit être supprimé de la copie.
  • OVERRUN=8 dans l’instruction OPTION spécifie que le programme IEBIMAGE doit imprimer un message d’avertissement si la modification de la copie peut entraîner une condition de dépassement de ligne lors de l’impression à 6 et 8 lignes par pouce.
    Le programme doit également supprimer tous les messages d’avertissement qui s’appliquent à l’impression à 10 et 12 lignes par pouce.
    DEVICE=3800M3 dans l’instruction OPTION spécifie le traitement en mode de compatibilité 3800 Model 3.
  • L’instruction COPYMOD spécifie le texte qui s’applique à chaque page des deuxième, troisième et quatrième copies de l’ensemble de données de sortie :
    LINES=(52,6) et POS=100 spécifient que le texte doit être sur la 52e ligne et répété pour de la 53e à la 57e ligne de chaque page, en commençant à la 100e position d’impression à partir de la gauche (début).
    L’instruction TEXT spécifie le texte sous forme hexadécimale : huit blancs suivis de deux astérisques (dans cet exemple, on suppose que X’40’ s’imprime comme un blanc et que X’5C’ s’imprime comme un astérisque ; en pratique, le la table d’arrangement des caractères utilisée avec le module de modification de copie peut traduire X’40’ et X’5C’ en d’autres caractères imprimables).
  • Le nom du nouveau module de modification de copie est AP ; il est stocké en tant que membre du jeu de données SYS1.IMAGELIB.

Exemple 10: Ajout d’un nouveau caractère à un module Table de disposition des caractères

3800 Modèle 1

Dans cet exemple, un module de table de disposition des caractères fourni par IBM est modifié pour inclure un autre caractère, puis ajouté au jeu de données SYS1.IMAGELIB en remplacement du module fourni par IBM.

//CHARMOD1 JOB  ...
//STEP1    EXEC PGM=IEBIMAGE
//SYSUT1   DD  DSNAME=SYS1.IMAGELIB,DISP=OLD
//SYSPRINT DD  SYSOUT=A
//SYSIN    DD  *
     INCLUDE  GF10
     OPTION   DEVICE=3800M3
     TABLE    LOC=((2A,2A),(6A,2A),(AA,2A),(EA,2A))
     NAME     GF10(R)
/*

Les instructions de contrôle sont discutées comme suit :

  • L’instruction SYSUT1 DD inclut DISP=OLD pour garantir qu’aucun autre travail ne peut modifier l’ensemble de données pendant l’exécution de ce travail.
  • L’instruction INCLUDE spécifie qu’une copie de la table d’arrangement des caractères nommée GF10 doit être utilisée comme base pour le nouveau module.
  • L’instruction OPTION avec le paramètre DEVICE spécifie le traitement en mode de compatibilité 3800 modèle 3.
  • L’instruction TABLE spécifie des informations mises à jour pour quatre entrées de table de traduction : X’2A’, X’6A’, X’AA’ et X’EA’.
    (Ces quatre emplacements ne sont pas utilisés dans la table GF10 fournie par IBM.)
    Chacune des quatre entrées de la table de traduction doit pointer vers la position «2A» (43e caractère) dans le premier WCGM, qui contient le modèle de balayage pour un losange.
  • Le nom de la table d’arrangement des caractères est GF10 et il est stocké en tant que nouveau module dans le jeu de données SYS1.IMAGELIB.
    Le répertoire du jeu de données est mis à jour afin que le nom GF10 pointe vers le nouveau module ; l’ancien module GF10 n’est plus accessible via le répertoire du jeu de données.

Exemple 11 : Création d’un nouveau module Table d’arrangement des caractères à partir d’une copie existante

3800 Modèle 1

Dans cet exemple, un module de table d’arrangement de caractères existant est copié et utilisé comme base pour un nouveau module.
La nouvelle table d’arrangement des caractères est identique à l’ancienne, sauf qu’elle utilise le jeu de caractères gothique à 15 pas au lieu de gothique à 10 pas.

//CHARMOD2 JOB  ...
//STEP1    EXEC PGM=IEBIMAGE
//SYSUT1   DD  DSNAME=SYS1.IMAGELIB,DISP=OLD
//SYSPRINT DD  SYSOUT=A
//SYSIN    DD  *
    INCLUDE  A11
    OPTION   DEVICE=3800M3
    TABLE    CGMID=87
    NAME     A115
/*

Les instructions de contrôle sont discutées comme suit :

  • L’instruction SYSUT1 DD inclut DISP=OLD pour garantir qu’aucun autre travail ne peut modifier l’ensemble de données pendant l’exécution de ce travail.
  • L’instruction INCLUDE spécifie qu’une copie de la table d’arrangement des caractères nommée A11 doit être utilisée comme base pour le nouveau module.
    La table d’arrangement des caractères A11 traduit les codes de données 8 bits en caractères imprimables dans le jeu de caractères gothiques à 10 pas.
  • L’instruction OPTION avec le paramètre DEVICE spécifie le traitement en mode de compatibilité 3800 modèle 3.
  • L’instruction TABLE spécifie un nouvel identificateur de jeu de caractères, X’87’, qui est l’identificateur du jeu de caractères gothiques à 15 pas.
    Aucune autre modification n’est apportée au tableau d’arrangement des caractères.
    Le nouveau tableau appelle les caractères du jeu de caractères gothique à 15 pas.
  • Le nom de la nouvelle table d’arrangement des caractères est A115 ; il est stocké en tant que membre du jeu de données SYS1.IMAGELIB.

Exemple 12 : Création de caractères graphiques dans un module Table d’arrangement des caractères

Dans cet exemple, un module de table d’arrangement de caractères existant est copié et utilisé comme base pour un nouveau module qui comprendra des caractères conçus par l’utilisateur d’un module de modification de caractères graphiques.
Le nouveau module est ensuite ajouté au jeu de données SYS1.IMAGELIB.

//CHARMOD3 JOB  ...
//STEP1    EXEC PGM=IEBIMAGE
//SYSUT1   DD  DSNAME=SYS1.IMAGELIB,DISP=OLD
//SYSPRINT DD  SYSOUT=A
//SYSIN    DD  *
    INCLUDE ONB
    TABLE   GCMLIST=ONB1,LOC=((6F,2F,1),(7C,3C,1),(6A,2A,0))
    NAME    ONBZ
/*

Les instructions de contrôle sont discutées comme suit :

  • L’instruction SYSUT1 DD inclut DISP=OLD pour garantir qu’aucun autre travail ne peut modifier l’ensemble de données pendant l’exécution de ce travail.
  • L’instruction INCLUDE spécifie qu’une copie de la table d’arrangement des caractères nommée ONB doit être utilisée comme base pour le nouveau module.
    ONB fait référence à deux WCGM.
  • L’instruction TABLE identifie un module de modification de caractères graphiques et précise les entrées de la table de traduction pour chacun de ses segments :
    GCMLIST=ONB1 identifie le module de modification de caractères graphiques nommé ONB1.
    Le paramètre LOC spécifie l’emplacement de l’entrée de table de traduction, la position des caractères et le numéro WCGM pour chaque segment du module :
    Le premier segment correspond au code de données 8 bits X’6F’.
    Le motif de balayage des segments doit être chargé à la position de caractère X’2F’ (c’est-à-dire la 48ème position de caractère) dans le deuxième WCGM.
    Le deuxième segment correspond au code de données à 8 bits X’7C’.
    Le motif de balayage du segment doit être chargé à la position de caractère X’3C’ (c’est-à-dire,
    Le troisième segment correspond au code de données à 8 bits X’6A’.
    Le motif de balayage du segment doit être chargé à la position de caractère X’2A’ (c’est-à-dire la 43ème position de caractère) dans le premier WCGM.
    Le nom de la nouvelle table d’arrangement des caractères est ONBZ ; il est stocké en tant que nouveau module dans le jeu de données SYS1.IMAGELIB.

Exemple 13 : Supprimer les références graphiques d’un module Table de disposition des caractères

3800 Modèle 3

Dans cet exemple, un module de table d’arrangement de caractères existant est copié et utilisé comme base pour un nouveau.
La nouvelle table d’arrangement de caractères supprime les références à tous les modules de modification de caractères graphiques et réinitialise les entrées de table de traduction qui ont été utilisées pour pointer vers des positions de caractères pour les segments d’un module de modification de caractères graphiques.

//CHARMOD4 JOB  ...
//STEP1    EXEC PGM=IEBIMAGE
//SYSUT1   DD  DSNAME=SYS1.IMAGELIB,DISP=OLD
//SYSPRINT DD  SYSOUT=A
//SYSIN    DD  *
    INCLUDE  ZYL
    OPTION   DEVICE=3800M3
    TABLE    GCMLIST=DELETE,LOC=((6A),(6B))
    NAME     ZYLA
/*

Les instructions de contrôle sont discutées comme suit :

  • L’instruction SYSUT1 DD inclut DISP=OLD pour garantir qu’aucun autre travail ne peut modifier l’ensemble de données pendant l’exécution de ce travail.
  • L’instruction INCLUDE spécifie qu’une copie de la table d’arrangement des caractères nommée ZYL doit être utilisée comme base pour le nouveau module.
  • L’instruction OPTION avec le paramètre DEVICE spécifie le traitement en mode de compatibilité 3800 modèle 3.
  • L’instruction TABLE supprime les références aux modules de modification de caractères graphiques et réinitialise deux entrées de table de traduction :
    GCMLIST=DELETE spécifie que tous les noms de modules de modification de caractères graphiques inclus avec le module lors de la copie de la table d’arrangement des caractères ZYL doivent être remis à zéro (X’ 40′).
    Le paramètre LOC identifie deux emplacements dans la table de traduction, X’6A’ et X’6B’, qui doivent être définis sur X’FF’ (la valeur par défaut lorsqu’aucune position de caractère ou aucune valeur WCGM n’est spécifiée).
  • Le nom de la nouvelle table d’arrangement des caractères est ZYLA ; il est stocké en tant que membre du jeu de données SYS1.IMAGELIB.

Exemple 14 : Répertorier le module de modification des caractères graphiques des graphics à usage national World Trade

3800 Modèle 1

Dans cet exemple, chaque segment du module de modification de caractères graphiques fourni par IBM contenant les graphiques à usage national du commerce international est imprimé.
Chaque segment est unique, bien que les modèles de balayage de certains segments soient identiques aux modèles de balayage d’autres segments, seul le code de données 8 bits étant différent.

//GRAFMOD1 JOB  ...
//STEP1    EXEC PGM=IEBIMAGE
//SYSUT1   DD  DSNAME=SYS1.IMAGELIB,DISP=SHR
//SYSPRINT DD  SYSOUT=A
//SYSIN    DD  *
    GRAPHIC
    NAME  *
/*

Les instructions de contrôle sont décrites comme suit :

  • DISP=SHR est codé car la bibliothèque n’est pas mise à jour.
  • Le module de modification des caractères graphiques World Trade National Use Graphics est identifié par le pseudonyme *.
    Le motif de balayage de chacun des caractères du module est imprimé.

Exemple 15 : Construction d’un module de modification de caractères graphiques à partir du module de modification de caractères World Trade GRAFMOD

3800 Modèle 3

Dans cet exemple, un module de modification de caractères graphiques est construit.
Ses caractères sont des segments copiés du module de modification des caractères graphiques World Trade National Use Graphics.
(Voir le Guide du programmeur du sous-système d’impression IBM 3800 pour les affectations EBCDIC des caractères.)
Le nouveau module est stocké dans le jeu de données système SYS1.IMAGELIB.

//GRAFMOD2 JOB  ...
//STEP1    EXEC PGM=IEBIMAGE
//SYSUT1   DD  DSNAME=SYS1.IMAGELIB,DISP=OLD
//SYSPRINT DD  SYSOUT=A
//SYSIN    DD  *
   OPTION DEVICE=3800M3
   GRAPHIC REF=((24),(25),(26),(27),(28),(31),(33),(35),(38),(40))
   NAME   CSTW
/*

Les instructions de contrôle sont discutées comme suit :

  • L’instruction SYSUT1 DD inclut DISP=OLD pour garantir qu’aucun autre travail ne peut modifier l’ensemble de données pendant l’exécution de ce travail.
  • DEVICE=3800M3 dans l’instruction OPTION spécifie le format de module du mode de compatibilité 3800 modèle 3.
  • En ne spécifiant pas le mot-clé GCM, l’instruction GRAPHIC identifie le module de modification des caractères graphiques World Trade National Use Graphics.
    Dix de ses segments doivent être copiés et utilisés avec le nouveau module.
  • Le nom du module de modification des caractères graphiques est CSTW ; il est stocké en tant que nouveau module dans le jeu de données SYS1.IMAGELIB.

Exemple 17 : Création d’un module de modification de caractères graphiques à partir de plusieurs sources

3800 Modèle 1

Dans cet exemple, un module de modification de caractères graphiques est créé.
Son contenu provient de trois sources différentes :
neuf segments sont copiés à partir d’un module existant avec l’instruction INCLUDE ;
l’instruction GRAPHIC permet de sélectionner un autre segment à copier ;
l’instruction GRAPHIC est également utilisée pour établir les caractéristiques d’un caractère conçu par l’utilisateur.
Le nouveau module de modification des caractères graphiques, une fois construit, est ajouté au SYS1.IMAGELIB.

//GRAFMOD4 JOB  ...
//STEP1    EXEC PGM=IEBIMAGE
//SYSUT1   DD  DSNAME=SYS1.IMAGELIB,DISP=OLD
//SYSPRINT DD  SYSOUT=A
//SYSIN    DD  *
    INCLUDE CSTW,DELSEG=3
    GRAPHIC REF=(1,6A),GCM=BODE,ASSIGN=9A
     ********           SEQ=06
    **********          SEQ=07
   ****    ****         SEQ=08
   ***      ***         SEQ=09
   ***     ****         SEQ=10
   ***  ******          SEQ=11
   ***  ******          SEQ=12
   ***     ****         SEQ=13
   ***      ****        SEQ=14
   ***       ***        SEQ=15
   ***       ***        SEQ=16
   *** **** ****        SEQ=17
   ***  *******         SEQ=18
   ***   *****          SEQ=19
    NAME  JPCK
/*

Les instructions de contrôle sont discutées comme suit :

  • L’instruction SYSUT1 DD inclut DISP=OLD pour garantir qu’aucun autre travail ne peut modifier l’ensemble de données pendant l’exécution de ce travail.
  • L’instruction INCLUDE spécifie qu’une copie du module de modification de caractères graphiques nommé CSTW doit être incluse avec le nouveau module.
    Tous les segments de CSTW, à l’exception du troisième segment (résultant de DELSEG=3), doivent être copiés dans le nouveau module et devenir les premier à neuvième segments de modification du module.
  • L’instruction GRAPHIC spécifie les dixième et onzième segments du module :
    REF=(1,6A) et GCM=BODE précisent que le 10ème segment du nouveau module doit être obtenu en copiant le premier segment du module de modification de caractères graphiques nommé BODE.
    De plus, le code de données à 8 bits du segment doit être modifié de sorte que son caractère soit identifié avec le code X’6A’.
    ASSIGN=9A spécifie que le 11e segment du nouveau module est un caractère conçu par l’utilisateur dont le code de données 8 bits est X’9A’ et dont la largeur est de 10 pas (la valeur par défaut lorsqu’aucune valeur de pas n’est spécifiée).
    L’instruction GRAPHIC est suivie d’instructions de données qui spécifient le modèle de balayage du caractère.
  • Le nom du module de modification des caractères graphiques est JPCK, il est stocké en tant que nouveau module dans le jeu de données SYS1.IMAGELIB.

Exemple 18 : Définition et utilisation d’un caractère dans un module de modification de caractères graphiques

3800 Modèle 3

Dans cet exemple, un module de modification de caractère graphique contenant un caractère conçu par l’utilisateur est construit.
Ensuite, une table d’agencement de caractères de format est modifiée pour inclure ce nouveau caractère.
Ensuite, un module de modification de copie est créé pour imprimer le nouveau caractère enfermé dans une boîte de caractères de format.
Enfin, le résultat est testé pour permettre la comparaison de la sortie avec l’entrée.

  //CHAR     JOB  ...
  //BUILD    EXEC PGM=IEBIMAGE
  //SYSUT1   DD  DSNAME=SYS1.IMAGELIB,DISP=OLD
  //SYSPRINT DD  SYSOUT=A
  //SYSIN    DD  *
           OPTION  DEVICE=3800M3
  STEP1    GRAPHIC ASSIGN=5C
  XXX                 XXX SEQ=01
  XXX                 XXX SEQ=02
  XXX                 XXX SEQ=03
  XXX                 XXX SEQ=04
  XXXXXXXXXXXXXXXXXXXXXXX SEQ=05
  XXXXXXXXXXXXXXXXXXXXXXX SEQ=06
  XXXXXXXXXXXXXXXXXXXXXXX SEQ=07
  XXX                 XXX SEQ=08
  XXX                 XXX SEQ=09
  XXX                 XXX SEQ=10
  XXX                 XXX SEQ=11
                          SEQ=12
                          SEQ=13
                          SEQ=14
  XXXXXXXXXXXXXXXXXXXXXXX SEQ=15
  XXXXXXXXXXXXXXXXXXXXXXX SEQ=16
  XXXXXXXXXXXXXXXXXXXXXXX SEQ=17
  XXX       XXX       XXX SEQ=18
  XXX       XXX       XXX SEQ=19
  XXX       XXX       XXX SEQ=20
  XXX       XXX       XXX SEQ=21
  XXXX     XXXXX     XXXX SEQ=22
   XXXX   XXXXXXX   XXXX  SEQ=23
    XXXXXXXXXXXXXXXXXXX   SEQ=24
      XXXXX    XXXXXX     SEQ=25
                          SEQ=26
                          SEQ=27
                          SEQ=28
  XXXXXXXXXXXXXXXXXXXXXXX SEQ=29
  XXXXXXXXXXXXXXXXXXXXXXX SEQ=30
  XXXXXXXXXXXXXXXXXXXXXXX SEQ=31
                  XXXXXXX SEQ=32
       XXXXXXXXXXXXXXXXXX SEQ=33
  XXXXXXXXXXXXXXXX        SEQ=34
  XXXXXXXXXXXXXXXX        SEQ=35
       XXXXXXXXXXXXXXXXXX SEQ=36
                  XXXXXXX SEQ=37
  XXXXXXXXXXXXXXXXXXXXXXX SEQ=38
  XXXXXXXXXXXXXXXXXXXXXXX SEQ=39
  XXXXXXXXXXXXXXXXXXXXXXX SEQ=40
            NAME AIBM

  STEP2    OPTION  DEVICE=3800M3
           INCLUDE FM10
           TABLE   GCMLIST=AIBM,LOC=(5C,2C)
           NAME    BIBM
  STEP3    OPTION  DEVICE=3800M3
           COPYMOD COPIES=1,LINES=58,POS=5,TEXT=(C,'W6X')
           COPYMOD COPIES=1,LINES=59,POS=5,TEXT=(C,'7*7')
           COPYMOD COPIES=1,LINES=60,POS=5,TEXT=(X,'E9F6E8')
           NAME    CIBM
  /*
  //TEST     EXEC PGM=IEBIMAGE
  //SYSUT1   DD  DSNAME=SYS1.IMAGELIB,DISP=OLD
  //SYSPRINT DD  SYSOUT=A,CHARS=(GF10,BIBM),
  //             MODIFY=(CIBM,1)
  //SYSIN    DD  *
          OPTION   DEVICE=3800M3
          GRAPHIC
          NAME     AIBM
  /*

Les instructions de contrôle sont discutées comme suit :

  • L’instruction SYSUT1 DD inclut DISP=OLD pour garantir qu’aucun autre travail ne peut modifier l’ensemble de données pendant l’exécution de ce travail.
  • Le paramètre ASSIGN de ​​l’instruction GRAPHIC spécifie que le code de données 8 bits pour le caractère conçu par l’utilisateur est X’5C’ et que la largeur est de 10 pas (la valeur par défaut lorsqu’aucun pas n’est spécifié).
    L’instruction GRAPHIC est suivie d’instructions de données qui spécifient le motif de balayage du caractère pour un interligne vertical de 6 lignes par pouce.
  • Le nom du module de modification des caractères graphiques est AIBM et il est stocké en tant que nouveau module dans SYS1.IMAGELIB.
  • A l’ÉTAPE 2, l’instruction INCLUDE spécifie qu’une copie de la table d’arrangement des caractères FM10 doit être utilisée comme base pour le nouveau module.
  • L’instruction TABLE identifie le module de modification de caractères graphiques nommé AIBM, créé à l’étape précédente.
    Le paramètre LOC de l’instruction TABLE spécifie l’emplacement de l’entrée de la table de traduction (le code de données 8 bits du caractère) de X’5C’ et la position (X’2C’) où ce caractère doit être chargé dans le WCGM.
  • Le nom de la nouvelle table de disposition des caractères, qui est ajoutée à SYS1.IMAGELIB, est BIBM.
  • À l’ÉTAPE 3, les trois instructions COPYMOD spécifient le texte qui doit être placé sur les lignes 58, 59 et 60 de la première copie du jeu de données de sortie, en commençant à la position d’impression 5 sur chaque ligne.
    Lorsqu’ils sont utilisés avec la table de disposition des caractères BIBM, les caractères W, 6 et X s’impriment sous la forme d’un coin supérieur gauche, d’un segment de ligne horizontal et d’un coin supérieur droit, tous en épaisseur de ligne 3.
    Les caractères 7, * et 7 s’impriment sous la forme d’un poids-3 segment de ligne verticale des deux côtés du caractère conçu par l’utilisateur construit à l’étape 1 (l’astérisque a l’affectation EBCDIC 5C, qui adresse ce caractère).
    Les caractères hexadécimaux E9, F6 et E8 complètent la zone de format d’épaisseur de ligne 3 autour du caractère.
  • Le nom du module de modification de copie est CIBM ; il est stocké en tant que nouveau module sur SYS1.IMAGELIB.
  • A TEST, l’instruction EXEC appelle une nouvelle exécution du programme IEBIMAGE pour tester les modules qui viennent d’être créés.
    Dans l’instruction SYSPRINT DD, la table d’agencement des caractères BIBM est la deuxième des deux spécifiées, et le module de modification de copie CIBM est spécifié avec un caractère de référence de table de 1, pour utiliser cette table BIBM.
  • L’instruction GRAPHIC sans opérande spécifié appelle l’impression du module, AIBM, spécifié avec l’instruction NAME qui la suit.
    Chaque page de la liste de sortie pour cette exécution IEBIMAGE a une petite image de la modification imprimée dans le coin inférieur gauche.
  • L’instruction OPTION avec le paramètre DEVICE à STEP1, STEP2 et STEP3 spécifie le format du module en mode de compatibilité 3800 modèle 3 et les considérations de traitement.

Exemple 19 : Lister un module de jeu de caractères de bibliothèque

3800 Modèle 1

Dans cet exemple, chaque segment d’un jeu de caractères de bibliothèque est imprimé.
Le motif de balayage de chacun des caractères du module est imprimé.

//LIBMOD1  JOB  ...
//STEP1    EXEC PGM=IEBIMAGE
//SYSUT1   DD  DSNAME=SYS1.IMAGELIB,DISP=SHR
//SYSPRINT DD  SYSOUT=A
//SYSIN    DD  *
    CHARSET
    NAME    83
/*

Les instructions de contrôle sont décrites comme suit :

  • NAME spécifie le nom du jeu de caractères de la bibliothèque (83).

Exemple 20 : Création d’un module de jeu de caractères de bibliothèque

3800 Modèle 3

Dans cet exemple, un module de jeu de caractères de bibliothèque est construit.
Ses caractères sont des segments copiés du module de modification des caractères graphiques World Trade National Use Graphics.
Pour obtenir la liste de tous les segments de ce module, consultez le Guide du programmeur du sous-système d’impression IBM 3800.
Les affectations EBCDIC pour les caractères sont remplacées par des codes d’emplacement WCGM.
Le nouveau module est stocké dans le jeu de données système SYS1.IMAGELIB.

//LIBMOD2  JOB  ...
//STEP1    EXEC PGM=IEBIMAGE
//SYSUT1   DD  DSNAME=SYS1.IMAGELIB,DISP=OLD
//SYSPRINT DD  SYSOUT=A
//SYSIN    DD  *
    OPTION   DEVICE=3800M3
    CHARSET  REF=((24,01),(25,02),(26,03),(27,04),(28,05),             X
               (31,06),(33,07),(35,08),(38,09),(40,0A))
    NAME     73
/*

Les instructions de contrôle sont discutées comme suit :

  • L’instruction SYSUT1 DD inclut DISP=OLD pour garantir qu’aucun autre travail ne peut modifier l’ensemble de données pendant l’exécution de ce travail.
  • DEVICE=3800M3 dans l’instruction OPTION spécifie le format de module du mode de compatibilité 3800 modèle 3.
  • En ne spécifiant pas le mot-clé GCM ou un ID de jeu de caractères de bibliothèque, l’instruction CHARSET identifie le module de modification de caractères graphiques World Trade National Use Graphics.
    Dix de ses segments doivent être copiés et utilisés avec le nouveau module.
    Par exemple, le 24e segment doit être copié et affecté à l’emplacement WCGM 01.
    Voir le paramètre REF (24,01).
  • Le nom du module de jeu de caractères de la bibliothèque est 73 et il est stocké en tant que nouveau module dans le jeu de données SYS1.IMAGELIB.

Exemple 21 : Création d’un module de jeu de caractères de bibliothèque et modification d’une table de disposition des caractères pour l’utiliser

3800 Modèle 3

Dans cet exemple, un module de jeu de caractères de bibliothèque est construit.
Le module contient un caractère conçu par l’utilisateur, un “E” inversé, dont le code d’emplacement WCGM 6 bits est désigné par X’03’ et dont le pas est de 10.
Une table d’arrangement de caractères existante est ensuite modifiée pour inclure le E inversé . .

//LIBMOD3  JOB  ...
//STEP1    EXEC PGM=IEBIMAGE
//SYSUT1   DD  DSNAME=SYS1.IMAGELIB,DISP=OLD
//SYSPRINT DD  SYSOUT=A
//SYSIN    DD  *
    OPTION  DEVICE=3800M3
    CHARSET ASSIGN=(03,10)
    XXXXXXXXXXXXXXX     SEQ=10
    XXXXXXXXXXXXXXX     SEQ=11
    XXXXXXXXXXXXXXX     SEQ=12
               XXXX     SEQ=13
               XXXX     SEQ=14
               XXXX     SEQ=15
               XXXX     SEQ=16
               XXXX     SEQ=17
               XXXX     SEQ=18
               XXXX     SEQ=19
      XXXXXXXXXXXXX     SEQ=20
      XXXXXXXXXXXXX     SEQ=21
      XXXXXXXXXXXXX     SEQ=22
               XXXX     SEQ=23
               XXXX     SEQ=24
               XXXX     SEQ=25
               XXXX     SEQ=26
               XXXX     SEQ=27
               XXXX     SEQ=28
               XXXX     SEQ=29
    XXXXXXXXXXXXXXX     SEQ=30
    XXXXXXXXXXXXXXX     SEQ=31
    XXXXXXXXXXXXXXX     SEQ=32
    NAME     73
    INCLUDE  GS10
    OPTION   DEVICE=3800M3
    TABLE    CGMID=(83,73),LOC=(E0,03,1)
    NAME     RE10
/*

Les instructions de contrôle sont discutées comme suit :

  • L’instruction SYSUT1 DD inclut DISP=OLD pour garantir qu’aucun autre travail ne peut modifier l’ensemble de données pendant l’exécution de ce travail.
  • DEVICE=3800M3 dans l’instruction OPTION spécifie le format de module du mode de compatibilité 3800 modèle 3 et les considérations de traitement.
  • Le paramètre ASSIGN de ​​l’instruction CHARSET établit le code d’emplacement WCGM 6 bits, X’03’, et la largeur, pas de 10, pour le caractère conçu par l’utilisateur.
    Les instructions de données qui suivent l’instruction CHARSET décrivent le modèle de balayage du caractère.
  • Le nom du module de jeu de caractères de la bibliothèque est 73 et il est stocké en tant que nouveau module dans le jeu de données SYS1.IMAGELIB.
  • L’instruction INCLUDE spécifie qu’une copie de la table de disposition des caractères GS10 doit être utilisée comme base pour la nouvelle table.
  • L’instruction TABLE spécifie l’ajout du jeu de caractères de la bibliothèque contenant le E inversé à cette copie de la table GS10.
    CGMID=(83,73) spécifie l’identifiant du jeu de caractères X’83’ pour le jeu Gothic-10 (qui est le jeu déjà utilisé par la table GS10) et spécifie X’73’ comme identifiant du jeu de caractères pour permettre le chargement du deuxième WCGM avec le jeu de caractères de bibliothèque 73.
    LOC=(E0,03,1) spécifie que le E inverse, auquel a été attribué l’emplacement WCGM 03 dans le deuxième WCGM, doit être référencé par le code EBCDIC X’E0′.
  • La nouvelle table d’arrangement des caractères est nommée RE10 ; il est stocké en tant que nouveau module dans le jeu de données SYS1.IMAGELIB.

Exemple 22 : Création d’un module de jeu de caractères de bibliothèque à partir de plusieurs sources

3800 Modèle 3

Dans cet exemple, un module de jeu de caractères de bibliothèque est créé. Son contenu provient de trois sources différentes :
– 62 segments sont copiés d’un module existant avec l’instruction INCLUDE ;
– l’instruction CHARSET permet de sélectionner un autre segment à copier ;
– une deuxième instruction CHARSET est utilisée pour établir les caractéristiques d’un caractère conçu par l’utilisateur.
Le nouveau module de jeu de caractères de la bibliothèque, une fois construit, est ajouté au fichier SYS1.IMAGELIB.

//LIBMOD4  JOB  ...
//STEP1    EXEC PGM=IEBIMAGE
//SYSUT1   DD  DSNAME=SYS1.IMAGELIB,DISP=OLD
//SYSPRINT DD  SYSOUT=A
//SYSIN    DD  *
    INCLUDE  33,DELSEG=(3,4)
    CHARSET  REF=(1,02),GCM=BODE,ASSIGN=03
     ********           SEQ=06
    **********          SEQ=07
   ****    ****         SEQ=08
   ***      ***         SEQ=09
   ***     ****         SEQ=10
   ***  ******          SEQ=11
   ***  ******          SEQ=12
   ***     ****         SEQ=13
   ***      ****        SEQ=14
   ***       ***        SEQ=15
   ***       ***        SEQ=16
   *** **** ****        SEQ=17
   ***  *******         SEQ=18
   ***   *****          SEQ=19
    NAME  53
/*

Les instructions de contrôle sont discutées comme suit :

  • L’instruction SYSUT1 DD inclut DISP=OLD pour garantir qu’aucun autre travail ne peut modifier l’ensemble de données pendant l’exécution de ce travail.
  • L’instruction INCLUDE spécifie qu’une copie du module de jeu de caractères de bibliothèque nommé 33 doit être incluse avec le nouveau module.
    Tous les segments de 33, à l’exception des troisième et quatrième segments (résultant de DELSEG=3,4), doivent être copiés dans le nouveau module et devenir la base du nouveau module.
  • L’instruction CHARSET spécifie les troisième et quatrième segments du module :
    REF=(1,02) et GCM=BODE spécifient que le troisième segment du nouveau module doit être obtenu en copiant le premier segment du module de modification de caractères graphiques nommé BODE.
    Le code d’emplacement WCGM à 6 bits du segment doit être défini de sorte que son caractère soit identifié avec le code X’02’.
    ASSIGN=03 spécifie que le quatrième segment du nouveau module est un caractère conçu par l’utilisateur dont le code d’emplacement WCGM 6 bits est X’03’ et dont la largeur est de 10 pas (la valeur par défaut lorsqu’aucune valeur de pas n’est spécifiée).
    L’instruction CHARSET est suivie d’instructions de données qui spécifient le modèle de balayage du caractère.
  • Le nom du module de jeu de caractères de la bibliothèque est 53, il est stocké en tant que nouveau module dans le jeu de données SYS1.IMAGELIB.