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.