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ération
Organisation de l’ensemble de données
Dispositif
Commentaires
Exemple
PUNCH
Séquentiel
Perforatrice de disque et de carte
Format 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
PUNCH
Séquentiel
Lecteur de carte et perforation de carte
Format 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
PRINT
Séquentiel
Imprimante système
Conversion en hexadécimal.
Exemple 3 : dupliquer un jeu de cartes
PRINT
Séquentiel
Bande et imprimante système
Format par défaut.
Exemple 4 : Impression d’un ensemble de données séquentielles selon le format par défaut
PRINT
Séquentiel
Disque et imprimante système
Format 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
PRINT
Séquentiel
Imprimante système
Imprimer avec routine de sortie utilisateur.
Exemple 6 : Impression de trois groupes d’enregistrements
PRINT
Séquentiel, partitionné
Disque et imprimante système
Format SYSOUT. Conversion en hexadécimal.
Exemple 7 : Imprimer un ensemble de données pré-formaté
PRINT
Cloisonné
Disque et imprimante système
Format 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é
PRINT
Cloisonné
Disque et imprimante système
Format 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
PRINT
Cloisonné
Disque et imprimante système
Format 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.
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.
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 :
Initialise l’opération d’impression.
Indique que pas plus de neuf paramètres FIELD sont inclus dans les instructions RECORD suivantes (MAXFLDS=9).
Indique que pas plus de neuf paramètres IDENT sont inclus dans les instructions RECORD suivantes (MAXGPS=9).
Indique que pas plus de 23 caractères littéraux sont inclus dans les paramètres IDENT suivants (MAXLITS=23).
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.
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.
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.
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.
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.
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éé
Imprimante
Commentaires
Exemple
FCB
3800 Modèle 1
Forme 11 pouces
Exemple 1 : Création d’un nouveau 3800 Forms Control Buffer Module
FCB
3800 Modèle 1
Forme 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
FCB
3800 Modèle 1
Forme 3-1/2 pouces, remplace le membre SYS1.IMAGELIB existant. Espacement vertical varié.
Exemple 3 : Remplacement d’un 3800 Forms Control Buffer Module
FCB
3800 Modèle 1
Forme de 7 pouces, espacement vertical varié.
Exemple 4 : Création d’un nouveau 3800 Forms Control Buffer Module
FCB
3800 Modèle 1
Format ISO 12 pouces. Remplace le module fourni par IBM.
Exemple 5 : Remplacement du Forms Control Buffer Module STD3
FCB
3800 Modèle 3
Forme 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
FCB
4248
Forme 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
COPYMOD
3800 Modèle 1
4 segments de modification.
Exemple 8 : Construire un nouveau module de modification de copie
COPYMOD
3800 Modèle 3
Module 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
TABLE
3800 Modèle 3
Module 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
TABLE
3800 Modèle 3
Module 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
TABLE
3800 Modèle 1
Module 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
TABLE
3800 Modèle 3
Module 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
GRAPHIC
3800 Modèle 1
Module entièrement fourni par IBM imprimé.
Exemple 14 : Répertorier le module de modification des caractères graphiques à usage national World Trade
GRAPHIC
3800 Modèle 3
Segments 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
GRAPHIC
3800 Modèle 3
Le 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
GRAPHIC
3800 Modèle 1
Segments 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
GRAPHIC
3800 Modèle 3
Le 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
CHARSET
3800 Modèle 1
Jeu 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
CHARSET
3800 Modèle 3
Segments copiés à partir du module GRAPHIC fourni par IBM.
Exemple 20 : Création d’un module de jeu de caractères de bibliothèque
CHARSET
3800 Modèle 3
Le 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
CHARSET
3800 Modèle 1
Segments 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.
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.
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
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.
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é.)
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 nouveauCopy 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.
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.
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.
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.
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.
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.
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.
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.
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é.
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.
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é . .
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.
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.
Les exemples qui suivent illustrent certaines des utilisations d’IEBGENER. Vous pouvez utiliser le tableau 1 comme guide de référence rapide pour les exemples IEBGENER. Les nombres dans la colonne Exemple font référence aux exemples qui suivent.
Tableau 1. Répertoire d’exemple IEBGENER
Opération
Organisation du jeu de données
Périphérique
Commentaires
Exemple
PRINT
Séquentiel
Disque et imprimante
Le jeu de données est répertorié sur une imprimante.
Exemple 1 : Impression d’un ensemble de données séquentielles
CONVERT
Séquentiel à partitionné
Bande et disque
Sortie bloquée. Trois membres doivent être créés.
Exemple 2 : Création d’un ensemble de données partitionnées à partir d’une entrée séquentielle
MERGE
Séquentiel vers partitionné
Disque
Sortie bloquée. Deux membres doivent être fusionnés dans l’ensemble de données existant.
Exemple 3 : convertir une entrée séquentielle en membres partitionnés
COPY
Séquentiel
Instream et bande
Sortie bloquée.
Exemple 4 : entrée en flux, ensemble de données séquentielles sur volume de bande
COPY and reblock
Séquentiel
Disque et bande
Effectue une copie de bande bloquée à partir du disque ; demande de tampon explicite.
Exemple 5 : Produire une copie bloquée sur bande à partir d’un fichier disque non bloqué
COPY avec édition
Séquentiel
bande
Sortie bloquée. Ensemble de données édité comme un groupe d’enregistrements.
Exemple 6 : Modifier et copier un ensemble de données d’entrée séquentielle avec des étiquettes
COPY avec édition
Séquentiel
Fichier z/OS UNIX sur disque
Sortie bloquée. Nouvelle longueur d’enregistrement spécifiée pour l’ensemble de données de sortie. Deux groupes d’enregistrements spécifiés.
Exemple 7 : Modification et copie d’un fichier z/OS UNIX séquentiel dans un ensemble de données séquentiel
COPY avec validation DBCS
Séquentiel
Disque
Les données DBCS sont validées et modifiées avant la copie.
Exemple 8 : Éditer les données du jeu de caractères à deux octets
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.
EXEMPLE
Exemple 1 : Impression d’un jeu de données séquentiel
Dans cet exemple, un ensemble de données séquentielles est imprimé. La sortie imprimée est alignée à gauche, avec un enregistrement de 80 octets apparaissant sur chaque ligne de sortie imprimée.
Les instructions de contrôle des travaux sont les suivantes :
SYSIN DD définit un jeu de données factice. Étant donné qu’aucune modification n’est effectuée, aucune instruction de contrôle d’utilitaire n’est requise.
SYSUT1 DD définit le jeu de données séquentielles d’entrée.
SYSUT2 DD indique que la sortie doit être écrite sur le périphérique de sortie du système (imprimante). IEBGENER copie LRECL et RECFM à partir de l’ensemble de données SYSUT1 et le système détermine un BLKSIZE.
Exemple 2 : Création d’un ensemble de données partitionné à partir d’une entrée séquentielle
Dans cet exemple, un ensemble de données partitionné (composé de trois membres) est créé à partir d’une entrée séquentielle.
//TAPEDISK JOB ...
//STEP1 EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=A
//SYSUT1 DD DSNAME=INSET,UNIT=tape,LABEL=(,SL),
// DISP=(OLD,KEEP),VOLUME=SER=001234
//SYSUT2 DD DSNAME=NEWSET,UNIT=disk,DISP=(,KEEP),
// VOLUME=SER=111112,SPACE=(TRK,(10,5,5)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=2000)
//SYSIN DD *
GENERATE MAXNAME=3,MAXGPS=2
MEMBER NAME=MEMBER1
GROUP1 RECORD IDENT=(8,'FIRSTMEM',1)
MEMBER NAME=MEMBER2
GROUP2 RECORD IDENT=(8,'SECNDMEM',1)
MEMBER NAME=MEMBER3
/*
Les instructions de contrôle sont les suivantes :
SYSUT1 DD définit le jeu de données d’entrée (INSET). L’ensemble de données est le premier ensemble de données sur un volume de bande.
SYSUT2 DD définit le jeu de données partitionné en sortie (NEWSET). L’ensemble de données doit être placé sur un volume de disque. Dix pistes d’espace primaire, cinq pistes d’espace secondaire et cinq blocs (256 octets chacun) d’espace de répertoire sont alloués pour permettre une expansion future de l’ensemble de données. Les enregistrements de sortie sont bloqués pour réduire l’espace requis par l’ensemble de données.
SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée. Les instructions de contrôle d’utilitaire sont utilisées pour créer des membres à partir de données d’entrée séquentielles ; les déclarations ne spécifient aucune modification.
GENERATE indique que trois noms de membre sont inclus dans les instructions MEMBER suivantes et que le paramètre IDENT apparaît deux fois dans les instructions RECORD suivantes.
La première instruction MEMBER affecte un nom de membre (MEMBER1) au premier membre.
La première instruction RECORD (GROUP1) identifie le dernier enregistrement à placer dans le premier membre. Le nom de cet enregistrement (FIRSTMEM) apparaît dans les huit premières positions de l’enregistrement d’entrée.
Les instructions MEMBER et RECORD restantes définissent les deuxième et troisième membres. Notez que, comme il n’y a pas d’instruction RECORD associée à la troisième instruction MEMBER, le reste du fichier d’entrée sera chargé en tant que troisième membre.
Exemple 3 : Convertir une entrée séquentielle en membres partitionnés
Dans cet exemple, l’entrée séquentielle est convertie en deux membres partitionnés. Les membres nouvellement créés sont fusionnés dans un ensemble de données partitionné existant. Les étiquettes utilisateur sur l’ensemble de données d’entrée sont transmises à la routine d’exit utilisateur.
//DISKTODK JOB ...
//STEP1 EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=A
//SYSUT1 DD DSNAME=INSET,UNIT=disk,DISP=(OLD,KEEP),
// VOLUME=SER=111112,LABEL=(,SUL)
//SYSUT2 DD DSNAME=EXISTSET,UNIT=disk,DISP=(MOD,KEEP),
// VOLUME=SER=111113
GENERATE MAXNAME=3,MAXGPS=1
EXITS INHDR=ROUT1,INTLR=ROUT2
MEMBER NAME=(MEMX,ALIASX)
GROUP1 RECORD IDENT=(8,'FIRSTMEM',1)
MEMBER NAME=MEMY
Les instructions de contrôle sont les suivantes :
SYSUT1 DD définit le jeu de données d’entrée (INSET). L’ensemble de données d’entrée, qui réside sur un volume de disque, possède des étiquettes d’utilisateur standard.
SYSUT2 DD définit le jeu de données partitionné en sortie (EXISTSET). Les membres créés au cours de cette étape de travail sont fusionnés dans l’ensemble de données partitionné.
L’instruction SYSIN DD est omise. Comme la ligne GENERATE ne commence pas par //, le système suppose qu’elle est précédée d’une ligne //SYSIN DD *. SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée. Les instructions de contrôle d’utilitaire sont utilisées pour créer des membres à partir de données d’entrée séquentielles ; les déclarations ne spécifient aucune modification. Un /* à la fin de tout ensemble de données DD * est inutile car une instruction JCL ou la fin du flot de travaux marque la fin de l’ensemble de données du flux d’entrée.
GENERATE indique qu’un maximum de trois noms et alias sont inclus dans les instructions MEMBER suivantes et qu’un paramètre IDENT apparaît dans une instruction RECORD suivante.
EXITS définit les routines utilisateur qui doivent traiter les étiquettes utilisateur.
La première instruction MEMBER affecte un nom de membre (MEMX) et un alias (ALIASX) au premier membre.
L’instruction RECORD identifie le dernier enregistrement à placer dans le premier membre. Le nom de cet enregistrement (FIRSTMEM) apparaît dans les huit premières positions de l’enregistrement d’entrée.
La seconde instruction MEMBER affecte un nom de membre (MEMY) au second membre. Le reste de l’ensemble de données d’entrée est inclus dans ce membre.
Exemple 4 : Entrée In-Stream, données séquentielles définies sur le volume de bande
Dans cet exemple, un ensemble de données séquentielles d’entrée en flux est copié sur un volume de bande.
Les instructions de contrôle des tâches sont les suivantes :
SYSIN DD définit un jeu de données factice. Aucune modification n’est effectuée ; par conséquent, aucune instruction de contrôle d’utilitaire n’est nécessaire.
SYSUT2 DD définit le jeu de données de sortie, OUTSET. L’ensemble de données est écrit sur un volume de bande avec des étiquettes standard IBM. L’ensemble de données doit résider en tant que premier (ou unique) ensemble de données sur le volume.
SYSUT1 DD définit les données en flux qui sont en fait un ensemble de données JES SYSIN. L’ensemble de données ne contient aucune déclaration.
Exemple 5 : Produire une copie bloquée sur bande à partir d’un fichier disque non bloqué
Dans cet exemple, une copie bloquée sur bande est réalisée à partir d’un fichier disque séquentiel non bloqué. Étant donné que l’ensemble de données de disque a une taille de bloc relativement petite, le nombre de tampons explicitement demandés est supérieur à la valeur par défaut de cinq. Cela améliore les performances en permettant un plus grand chevauchement de la lecture de l’ensemble de données SYSUT1 avec l’écriture de l’ensemble de données SYSUT2.
Les instructions de contrôle de job sont les suivantes :
L’instruction EXEC nomme le programme IEBGENER et spécifie la taille de la région de stockage virtuel requise. (Le calcul de la taille de la région est décrit dans le tableau 1.)
L’instruction SYSIN DD est factice, car aucune modification ne doit être effectuée.
L’instruction SYSUT1 DD identifie un fichier disque d’entrée. Normalement, les informations DCB RECFM, LRECL et BLKSIZE ne doivent pas être spécifiées dans l’instruction DD pour un fichier de disque existant car les informations existent dans l’étiquette d’ensemble de données dans le VTOC ; il est spécifié dans cet exemple pour illustrer le contraste avec l’ensemble de données de sortie. Les informations de série sur l’unité et le volume pourraient être omises si l’ensemble de données était catalogué. Les informations DCB spécifient BUFNO = 20 pour permettre la lecture de jusqu’à vingt blocs à chaque rotation du disque, en supposant que la piste du disque contiendra autant de blocs.
L’instruction SYSUT2 DD identifie le jeu de données de bande de sortie et spécifie une taille de bloc de 32 000 octets. La valeur par défaut de cinq tampons devrait être suffisante pour suivre le rythme de l’entrée.
Exemple 6 : Modification et copie d’un ensemble de données d’entrée séquentiel avec étiquettes
Dans cet exemple, un ensemble de données d’entrée séquentiel est modifié et copié.
//TAPETAPE JOB ...
//STEP1 EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=A
//SYSUT1 DD DSNAME=OLDSET,UNIT=tape,DISP=(OLD,KEEP),
// VOLUME=SER=001234,LABEL=(3,SUL)
//SYSUT2 DD DSNAME=NEWSET,UNIT=tape,DISP=(NEW,PASS),
// DCB=(RECFM=FB,LRECL=80),
// VOLUME=SER=001235,LABEL=(,SUL)
//SYSIN DD *
GENERATE MAXFLDS=3,MAXLITS=11
RECORD FIELD=(10,'**********',,1),
FIELD=(5,1,HE,11),FIELD=(1,'=',,16)
EXITS INHDR=ROUT1,OUTTLR=ROUT2
LABELS DATA=INPUT
RECORD LABELS=2
(premier enregistrement de label d'en-tête)
(second enregistrement de label d'en-tête)
RECORD LABELS=2
(premier enregistrement de label d'en-queue)
(second enregistrement de label d'en-queue)
/*
Les instructions de contrôle sont les suivantes :
SYSUT1 DD définit le jeu de données d’entrée séquentiel (OLDSET). L’ensemble de données a été initialement écrit en tant que troisième ensemble de données sur un volume de bande.
SYSUT2 DD définit le jeu de données de sortie séquentiel (NEWSET). L’ensemble de données est écrit en tant que premier ensemble de données sur un volume de bande. Les enregistrements de sortie sont bloqués pour réduire l’espace requis par l’ensemble de données et pour réduire le temps d’accès requis lorsque l’ensemble de données est ensuite consulté. Le paramètre BLKSIZE est omis afin que le système calcule une valeur optimale inférieure ou égale à 32,760 octets à moins que le programmeur système ne définisse la valeur par défaut différemment. L’ensemble de données est transmis à une étape de tâche suivante. Le LABEL=(,SUL) est obligatoire en raison des libellés utilisateur créés.
SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
GENERATE indique qu’un maximum de trois paramètres FIELD est inclus dans les instructions RECORD suivantes et qu’un maximum de 11 caractères littéraux sont inclus dans les paramètres FIELD suivants.
La première instruction RECORD contrôle l’édition, comme suit : les astérisques sont placés aux positions 1 à 10 ; les positions 1 à 5 de l’enregistrement d’entrée sont converties du mode H-set BCDIC en mode EBCDIC et déplacées vers les positions 11 à 15 ; et un signe égal est placé en position 16.
EXITS indique que les routines utilisateur spécifiées nécessitent un contrôle lorsque SYSUT1 est ouvert et lorsque SYSUT2 est fermé.
LABELS indique que les étiquettes sont incluses dans le flux d’entrée.
La deuxième instruction RECORD indique que les deux enregistrements suivants de SYSIN doivent être écrits en tant qu’étiquettes d’en-tête utilisateur sur SYSUT2.
La troisième instruction RECORD indique que les deux enregistrements suivants de SYSIN doivent être écrits en tant qu’étiquettes de fin utilisateur sur SYSUT2.
Exemple 7 : Modification et copie d’un fichier séquentiel z/OS UNIX dans un ensemble de données séquentiel
Dans cet exemple, le fichier az/OS UNIX System Services (z/OS UNIX) est modifié et copié. La longueur d’enregistrement logique de l’ensemble de données de sortie est inférieure à celle de l’ensemble de données d’entrée.
SYSUT1 DD définit le fichier d’entrée. Son nom est /dist3/stor44/sales.mon. Il contient du texte dans des enregistrements de 100 octets. Le délimiteur d’enregistrement n’est pas indiqué ici. Le fichier peut se trouver sur un système non System/390 disponible via NFS (Network File System).
SYSUT2 DD définit le jeu de données de sortie (NEWSET). Vingt pistes d’espace de stockage primaire et dix pistes d’espace de stockage secondaire sont allouées pour l’ensemble de données sur un volume de disque. La longueur d’enregistrement logique des enregistrements de sortie est de 80 octets et la sortie est bloquée.
SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
GENERATE indique qu’un maximum de quatre paramètres FIELD sont inclus dans les instructions RECORD ultérieures et qu’un paramètre IDENT apparaît dans une instruction RECORD ultérieure.
EXITS identifie la routine utilisateur qui gère les erreurs d’entrée/sortie.
La première instruction RECORD (GRP1) contrôle l’édition du premier groupe d’enregistrements. FIRSTGRP, qui apparaît dans les huit premières positions d’un enregistrement d’entrée, est défini comme étant le dernier enregistrement du premier groupe d’enregistrements. Les données des positions 80 à 100 de chaque enregistrement d’entrée sont déplacées vers les positions 60 à 80 de chaque enregistrement de sortie correspondant. (Cet exemple implique que les données dans les positions 60 à 79 des enregistrements d’entrée dans le premier groupe d’enregistrements ne sont plus nécessaires ; ainsi, la longueur de l’enregistrement logique est raccourcie de 20 octets.) Les données dans les positions restantes dans chaque enregistrement d’entrée sont transféré directement vers les enregistrements de sortie, comme spécifié dans le deuxième paramètre FIELD.
La deuxième instruction RECORD (GRP2) indique que le reste des enregistrements d’entrée doit être traité comme le deuxième groupe d’enregistrements. Les données des positions 90 à 100 de chaque enregistrement d’entrée sont déplacées vers les positions 70 à 80 des enregistrements de sortie. (Cet exemple implique que les données des positions 70 à 89 des enregistrements d’entrée du groupe 2 ne sont plus nécessaires ; ainsi, la longueur de l’enregistrement logique est raccourcie de 20 octets.) Les données des positions restantes dans chaque enregistrement d’entrée sont transférées directement aux enregistrements de sortie, comme spécifié dans le deuxième paramètre FIELD.
Exemple 8 : Modifier les données d’un jeu de caractères à deux octets
Dans cet exemple, un jeu de données modifié contenant des données de jeu de caractères à deux octets est créé. Les caractères Shift-out/shift-in (< et >) sont insérés pour entourer les chaînes DBCS.
Les instructions de contrôle sont les suivantes :
SYSUT1 DD définit l’ensemble de données d’entrée, INPUT, qui réside sur un volume de disque.
SYSUT2 DD définit l’ensemble de données de sortie, OUTPUT, qui résidera 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.
GENERATE indique qu’un maximum de quatre paramètres FIELD et de neuf caractères littéraux apparaîtront dans les instructions RECORD suivantes et que l’ensemble de données d’entrée contient des données DBCS.
RECORD spécifie comment les enregistrements d’entrée seront modifiés avant d’être placés dans l’ensemble de données de sortie. Le premier paramètre FIELD indique que les 20 premières positions (octets) des enregistrements d’entrée doivent être placées dans les 20 premières positions des enregistrements de sortie.
Le deuxième paramètre FIELD indique que les données des positions 33 à 48 doivent être vérifiées pour s’assurer qu’elles sont des données DBCS valides et que les caractères de décalage sortant/d’entrée doivent être insérés autour de ce champ. Pour que les données DBCS soient valides, chaque octet des caractères à 2 octets doit avoir une valeur hexadécimale comprise entre X’41’ et X’FE’, ou le caractère à 2 octets doit être un espace DBCS (X’4040′). Une fois la vérification et l’insertion terminées, ce champ doit être copié dans les enregistrements de sortie à partir de la position 21.
Le troisième paramètre FIELD agit sur le champ de 30 octets commençant à la position 50 dans les enregistrements d’entrée. Ce champ est vérifié pour les données DBCS valides, et les caractères de décalage sortant/décalage sont insérés autour du champ. Le champ résultant est copié dans les enregistrements de sortie à partir de la position 39.
Notez qu’en spécifiant les emplacements de sortie dans le paramètre FIELD, vous devez tenir compte des positions supplémentaires que les caractères SO/SI utiliseront. Par exemple, la chaîne DBCS de huit caractères (16 octets) commençant à la position 21 ne se termine pas à la position 36, mais à la 38. Les caractères SO/SI sont des caractères à un octet, de sorte que la paire occupera deux positions.
Le paramètre FIELD final efface les positions finales des enregistrements de sortie avec des astérisques.
Ces exemples montrent certaines des utilisations d’IEBEDIT. Vous pouvez utiliser le tableau 1 comme guide de référence rapide.
Tableau 1. Répertoire d’exemple IEBEDIT
Opération
Périphérique
Commentaires
Exemple
EDIT
Bande
Copiez un job dans le jeu de données de sortie.
Exemple 1 : copie d’un travail
EDIT
Bande
Copie sélectivement les steps de job de chacun des trois jobs.
Exemple 2 : copie d’étapes à partir de trois Jobs
EDIT
Disque et bande
Inclut un step de job et exclut step de job d’un autre job.
Exemple 3 : Inclure un step de job, exclure un step d’un autre
EDIT
Disque
Copiez l’instruction JOB pour JOBA, le step de job STEPF et tous les steps qui suivent.
Exemple 4 : Copier l’instruction pour JOBA et JOB STEPF
EDIT
Bande
Copie l’intégralité de l’ensemble de données d’entrée. L’enregistrement ..* est converti en une instruction /* dans l’ensemble de données de sortie.
Exemple 5 : Copier l’intégralité de l’ensemble de données d’entrée
EDIT
Bande
Copie l’intégralité de l’ensemble de données d’entrée, y compris les instructions de contrôle JES2.
Exemple 6 : copier l’ensemble de données pour inclure un nouveau délimiteur
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.
EXEMPLE
Exemple 1 : Copier un job
Dans cet exemple, un job (JOBA), y compris toutes ses steps, est copié dans l’ensemble de données de sortie. L’ensemble de données d’entrée contient trois jobs : JOBA, JOBB et JOBC.
SYSUT1 DD définit le jeu de données d’entrée, INJOBS. L’ensemble de données réside sur un volume de bande étiqueté standard (001234).
SYSUT2 DD définit le jeu de données de sortie, appelé OUTTAPE. L’ensemble de données doit résider en tant que premier ensemble de données sur un volume de bande étiqueté standard (001235). Le système sélectionnera une taille de bloc optimale.
SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
EDIT indique que JOBA doit être copié dans son intégralité.
Exemple 2 : Copier les étapes de trois jobs
Cet exemple copie les step de job de chacun des trois jobs. L’ensemble de données d’entrée contient trois jobs : JOBA, qui comprend STEPA, STEPB, STEPC et STEPD ; JOBB, qui comprend STEPE, STEPF et STEPG ; et JOBC, qui comprend STEPH et STEPJ.
SYSUT1 DD définit le jeu de données d’entrée, INJOBS. L’ensemble de données réside sur un volume de bande étiqueté standard (001234).
SYSUT2 DD définit le jeu de données de sortie, OUTSTRM. L’ensemble de données doit résider en tant que deuxième ensemble de données sur un volume de bande étiqueté standard (001235). La taille de bloc courte est très inefficace.
SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
Les instructions EDIT copient les instructions JOB et les étapes de travail décrites comme suit :
L’instruction JOB et les étapes STEPC et STEPD pour JOBA.
L’instruction JOB et STEPE pour JOBB.
L’instruction JOB et STEPJ pour JOBC.
Exemple 3 : inclure le step d’un job, exclure le step d’un autre
Cet exemple inclut une étape de travail d’un travail et exclut une étape de travail d’un autre travail. L’ensemble de données d’entrée contient trois travaux : JOBA, qui comprend STEPA, STEPB, STEPC et STEPD ; JOBB, qui comprend STEPE, STEPF et STEPG ; et JOBC, qui comprend STEPH et STEPJ.
SYSUT1 DD définit le jeu de données d’entrée, INSET. L’ensemble de données réside sur un volume de disque (111111).
SYSUT2 DD définit le jeu de données de sortie, OUTTAPE. L’ensemble de données doit résider en tant que premier ou unique ensemble de données sur un volume de bande sans étiquette (800 bits par pouce).
SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
Les instructions EDIT copient les instructions JOB et les étapes de travail comme suit :
L’instruction JOB et les step STEPF et STEPG pour JOBB.
L’instruction JOB et STEPH, à l’exception de STEPJ, pour JOBC.
Exemple 4 : Copier l’instruction pour JOBA et JOB STEPF
Cet exemple copie l’instruction JOB pour JOBA, le step de job STEPF et tous les steps qui la suivent. L’ensemble de données d’entrée contient un job (JOBA), qui inclut STEPA à STEPL. Les steps de job STEPA à STEPE ne sont pas incluses dans le jeu de données de sortie.
SYSUT1 DD définit le jeu de données d’entrée, INSTREAM. L’ensemble de données réside sur un volume de disque (111111).
SYSUT2 DD définit le jeu de données de sortie, OUTSTREAM. L’ensemble de données doit résider sur un volume de disque (222222). Deux pistes sont affectées au jeu 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.
EDIT copie l’instruction JOB pour JOBA et les étapes de travail STEPF à STEPL.
Exemple 5 : Copier l’intégralité de l’ensemble de données d’entrée
Cet exemple copie l’intégralité du jeu de données d’entrée. L’enregistrement contenant les caractères ..* dans les colonnes 1 à 3 est converti en une instruction /* dans le jeu de données de sortie.
SYSUT2 DD définit le jeu de données de sortie, OUTTAPE. L’ensemble de données sera le premier ensemble de données sur un volume de bande (001234).
SYSIN DD définit un jeu de données de contrôle factice.
SYSUT1 DD définit le jeu de données d’entrée, qui suit dans le flux d’entrée. Le travail est arrêté lorsque l’instruction /* est rencontrée. (SYSUT1 inclut donc l’instruction DELETE JOB, l’instruction EXEC, les instructions SYSPRINT, DD1 et SYSIN DD.)
Exemple 6 : Copier l’intégralité de l’ensemble de données pour inclure un nouveau délimiteur
Cet exemple copie l’intégralité du jeu de données d’entrée, y compris l’instruction de contrôle JES2, car un nouveau délimiteur (JP) a été codé. Sinon, le /* dans l’instruction de contrôle JES2 aurait arrêté l’entrée.
SYSUT2 DD définit le jeu de données de sortie, TAPEOUT. L’ensemble de données sera le premier ensemble de données sur un volume de bande d’étiquettes standard (001234).
SYSIN DD définit un jeu de données de contrôle factice.
SYSUT1 DD définit le jeu de données d’entrée, qui suit dans le flux d’entrée. Le paramètre DLM définit les caractères JP pour agir comme un délimiteur pour les données d’entrée.
IEBEDIT copie l’instruction JOB via l’instruction /* (y compris les instructions de travail LISTVTOC et MESSAGE, l’instruction FSTEP EXEC et les instructions SYSPRINT, DD2 et SYSIN DD).
Ces exemples illustrent certaines des utilisations d’IEBDG. Vous pouvez utiliser le tableau 1 comme guide de référence rapide pour les exemples IEBDG.
Tableau 1. Répertoire d’exemples IEBDG
Opération
Organisation de l’ensemble de données
Dispositif
Commentaires
Exemple
Placez des zéros binaires dans les champs sélectionnés.
Séquentiel
Ruban
Entrée et sortie bloquées.
Exemple 1 : Placer des zéros binaires dans des enregistrements copiés à partir d’un ensemble de données séquentiel
Motif alphabétique ondulé
Séquentiel
Bande, disque
Entrée et sortie bloquées.
Exemple 2 : modèle alphabétique d’ondulation de 10 octets
Créer des enregistrements de sortie à partir d’instructions de contrôle d’utilitaire
Séquentiel
Disque
Sortie bloquée.
Exemple 3 : créer des enregistrements de sortie à partir des instructions de contrôle des services publics
Modifier les enregistrements des membres partitionnés et du flux d’entrée
Partitionné, Séquentiel
Disque
Le reblocage est effectué. Chaque bloc d’enregistrements de sortie contient dix enregistrements d’entrée partitionnés modifiés et deux enregistrements de flux d’entrée.
Exemple 4 : Utiliser les membres et les enregistrements d’entrée comme base du membre de sortie
Créer des membres partitionnés à partir d’instructions de contrôle d’utilitaire
Partitionné
Disque
Sortie bloquée. Un ensemble d’instructions de contrôle d’utilité par membre.
Exemple 5 : Créer des enregistrements dans trois ensembles de données de sortie et les écrire dans trois membres d’ensembles de données partitionnés
Modèles fournis par l’utilisateur pour rouler et onduler
Séquentiel
Disque
Les enregistrements de sortie sont créés à partir des instructions de contrôle de l’utilitaire.
Exemple 6 : Créer des enregistrements avec vos propres modèles
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 définit les périphériques sur votre système.
EXEMPLE
Exemple 1 : Placer des zéros binaires dans des enregistrements copiés à partir d’un jeu de données séquentiel
Dans cet exemple, des zéros binaires sont placés dans deux champs de 100 enregistrements copiés à partir d’un ensemble de données séquentiel. Après l’opération, chaque enregistrement de l’ensemble de données copié (OUTSET) contient des zéros binaires aux emplacements 20 à 29 et 50 à 59.
SEQIN DD définit un ensemble de données d’entrée séquentiel (INSET). L’ensemble de données a été écrit à l’origine sur un volume de bande sans étiquette.
SEQOUT DD définit le jeu de données de test (OUTSET). Les enregistrements de sortie sont identiques aux enregistrements d’entrée, à l’exception des emplacements 20 à 29 et 50 à 59, qui contiennent des zéros binaires à la fin de l’opération.
SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
DSD marque le début d’un ensemble d’instructions de contrôle d’utilitaire et fait référence aux instructions DD définissant les ensembles de données d’entrée et de sortie.
Les première et deuxième instructions FD créent deux champs de 10 octets (FIELD1 et FIELD2). Étant donné qu’aucun modèle n’est spécifié pour ces champs, chaque champ contient le remplissage par défaut de zéros binaires. Les champs doivent commencer aux 20e et 50e octets de chaque enregistrement de sortie.
CREATE construit 100 enregistrements de sortie dans lesquels le contenu des champs précédemment définis (FIELD1, FIELD2) est placé à leurs emplacements de départ respectifs dans chacun des enregistrements de sortie. Les enregistrements d’entrée de l’ensemble de données INSET sont utilisés comme base des enregistrements de sortie.
END signale la fin d’un ensemble d’instructions de contrôle d’utilitaire.
Exemple 2 : Modèle alphabétique d’ondulation (ripple) sur 10 octets
SEQIN DD définit un ensemble de données séquentielles d’entrée (INSET). L’ensemble de données a été écrit à l’origine sur un volume de bande étiqueté standard.
SEQOUT DD définit le jeu de données de sortie de test (OUTSET). Dix pistes d’espace primaire et dix pistes d’espace secondaire sont allouées pour l’ensemble de données séquentielles 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.
DSD marque le début d’un ensemble d’instructions de contrôle d’utilitaire et fait référence aux instructions DD définissant les ensembles de données d’entrée et de sortie.
L’instruction FD crée un champ de 10 octets dans lequel le modèle ABCDEFGHIJ est initialement placé. Les données sont ondulées après l’écriture de chaque enregistrement de sortie.
CREATE construit 100 enregistrements de sortie dans lesquels le contenu d’un champ préalablement défini (FIELD1) est inclus. L’instruction CREATE utilise les enregistrements d’entrée de l’ensemble de données INSET comme base des enregistrements de sortie.
END signale la fin d’un ensemble d’instructions de contrôle d’utilitaire.
Exemple 3 : Création d’enregistrements de sortie à partir d’instructions de contrôle d’utilitaire
Dans cet exemple, les enregistrements de sortie sont entièrement créés à partir d’instructions de contrôle d’utilitaire. Trois champs sont créés et utilisés dans la construction des enregistrements de sortie. Dans deux des champs, les données alphabétiques sont tronquées ; l’autre champ est un champ numérique qui est incrémenté (indexé) de un après l’écriture de chaque enregistrement de sortie.
La figure 1 montre le contenu des enregistrements de sortie à la fin du step du job.
SEQOUT DD définit l’ensemble de données de sortie de test. Dix pistes d’espace primaire et dix pistes d’espace secondaire sont allouées pour l’ensemble de données séquentielles 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.
DSD marque le début d’un ensemble d’instructions de contrôle d’utilitaire et fait référence à l’instruction DD définissant l’ensemble de données de sortie.
FD définit le contenu de trois champs à utiliser dans la construction des enregistrements de sortie. Le premier champ contient 30 octets de données alphabétiques à tronquer à gauche après l’écriture de chaque enregistrement de sortie. Le deuxième champ contient 30 octets de données alphabétiques à tronquer juste après l’écriture de chaque enregistrement de sortie. Le troisième champ est un champ de 10 octets contenant un nombre décimal condensé (1234567890) à augmenter de un après l’écriture de chaque enregistrement.
CREATE construit 100 enregistrements de sortie dans lesquels le contenu des champs précédemment définis (CHAMP1, CHAMP2 et CHAMP3) est inclus. Notez qu’après l’écriture de chaque enregistrement, CHAMP1et CHAMP2 sont restaurés en pleine largeur.
END signale la fin d’un ensemble d’instructions de contrôle d’utilitaire.
Exemple 4 : Utiliser les membres et les enregistrements d’entrée comme base du membre de sortie
Dans cet exemple, deux membres partitionnés et des enregistrements d’entrée du flux d’entrée sont utilisés comme base d’un membre de sortie partitionné. Chaque bloc de 12 enregistrements de sortie contient 10 enregistrements modifiés d’un membre partitionné d’entrée et deux enregistrements du flux d’entrée. La figure 2 montre le contenu du membre partitionné de sortie à la fin du step.
PARIN1 DD définit l’un des membres partitionnés en entrée.
PARIN 2 DD définit le second des membres partitionnés en entrée. (Notez que les membres proviennent de différents ensembles de données partitionnés.)
PAROUT DD définit le membre partitionné de sortie. Cet exemple suppose que l’ensemble de données partitionné n’existe pas avant le step ; c’est-à-dire que cette instruction DD alloue de l’espace pour l’ensemble de données partitionnées.
SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
DSD marque le début d’un ensemble d’instructions de contrôle d’utilitaire et fait référence aux instructions DD définissant les ensembles de données d’entrée et de sortie.
FD crée un champ de 13 octets dans lequel l’image BATIMENT 003 est placée.
La première instruction REPEAT indique que le groupe suivant de deux instructions CREATE doit être répété 10 fois.
La première instruction CREATE crée 10 enregistrements de sortie. Chaque enregistrement de sortie est construit à partir d’un enregistrement d’entrée (de l’ensemble de données partitionné INSET1) et du CHAMP1 précédemment défini.
La deuxième instruction CREATE indique que deux enregistrements doivent être construits à partir des enregistrements d’entrée inclus ensuite dans le flux d’entrée.
L’enregistrement $$$E sépare les enregistrements d’entrée de l’instruction REPEAT. Le groupe d’instructions REPEAT suivant est identique au groupe précédent, sauf que les enregistrements d’un membre partitionné différent sont utilisés comme entrée.
END signale la fin d’un ensemble d’instructions de contrôle d’utilitaire.
Exemple 5 : Créer des enregistrements dans trois ensembles de données de sortie et les écrire dans trois membres d’ensembles de données partitionnés
Restriction : Cet exemple ne fonctionnera pas si les ensembles de données sont des ensembles de données gérés par le système ou SMS.
Dans cet exemple, les enregistrements de sortie sont créés à partir de trois ensembles d’instructions de contrôle d’utilitaire et écrits dans trois membres dans un ensemble de données partitionnées. Quatre champs sont créés et utilisés dans la construction des enregistrements de sortie. Dans deux des champs (CHAMP1 et CHAMP3), les données alphabétiques sont décalées. CHAMP2 est décimal zoné fixe et CHAMP4 est alphanumérique fixe.
La figure 3 montre les membres de l’ensemble de données partitionnées à la fin du step du job.
PAROUT1 DD définit le premier membre (MEMBA) de l’ensemble de données de sortie partitionnées. Cet exemple suppose que l’ensemble de données partitionnées n’existe pas avant cette étape de travail ; c’est-à-dire que cette instruction DD alloue de l’espace pour l’ensemble de données.
PAROUT2 et PAROUT3 DD définissent respectivement les deuxième et troisième membres de l’ensemble de données partitionné en sortie. Notez que chaque instruction DD spécifie DISP=OLD et UNIT=AFF=PAROUT1.
SYSIN DD définit l’ensemble de données de contrôle qui suit dans le flux d’entrée.
DSD marque le début d’un ensemble d’instructions de contrôle d’utilitaire et fait référence à l’instruction DD définissant le membre applicable à cet ensemble d’instructions de contrôle d’utilitaire.
FD définit le contenu d’un champ qui est utilisé dans la construction ultérieure des enregistrements de sortie.
CREATE construit quatre enregistrements à partir de combinaisons de champs précédemment définis.
END signale la fin d’un ensemble d’instructions de contrôle d’utilitaire.
Exemple 6 : Création d’enregistrements avec vos propres modèles
Dans cet exemple, 10 champs contenant des modèles de caractères fournis par l’utilisateur sont utilisés dans la construction des enregistrements de sortie. Une fois qu’un enregistrement est écrit, chaque champ est roulé ou agité, comme spécifié dans l’instruction FD applicable.
La figure 4 montre le contenu des enregistrements de sortie à la fin du step.
PAROUT1 DD définit le premier membre (MEMBA) de l’ensemble de données de sortie partitionnées. Cet exemple suppose que l’ensemble de données partitionnées n’existe pas avant ce step ; c’est-à-dire que cette instruction DD alloue de l’espace pour l’ensemble de données.
PAROUT2 et PAROUT3 DD définissent respectivement les deuxième et troisième membres de l’ensemble de données partitionné en sortie. Notez que chaque instruction DD spécifie DISP=OLD et UNIT=AFF=PAROUT1.
SYSIN DD définit l’ensemble de données de contrôle qui suit dans le flux d’entrée.
DSD marque le début d’un ensemble d’instructions de contrôle d’utilitaire et fait référence à l’instruction DD définissant le membre applicable à cet ensemble d’instructions de contrôle d’utilitaire.
FD définit le contenu d’un champ qui est utilisé dans la construction ultérieure des enregistrements de sortie.
CREATE construit quatre enregistrements à partir de combinaisons de champs précédemment définis.
END signale la fin d’un ensemble d’instructions de contrôle d’utilitaire.
Les exemples suivants illustrent certaines des utilisations d’IEBCOPY. Le tableau 1 peut être utilisé comme guide de référence rapide pour les exemples IEBCOPY. Les nombres dans la colonne Exemple font référence aux exemples qui suivent.
Tableau 1. Répertoire d’exemple IEBCOPY
Opération
Périphérique
Commentaires
Exemple
COPY
Disque
Copiez un jeu de données complet d’un volume de disque à un autre.
Exemple 1 : copier un jeu de données entier
COPY
Disque
Copie trois jeux de données d’entrée dans un jeu de données de sortie existant.
Exemple 2 : fusionner quatre ensembles de données
COPY
Disque
Sélectionne des membres dans deux jeux de données d’entrée et les copie dans un jeu de données de sortie existant. Un membre remplace un membre portant le même nom qui existe déjà dans le jeu de données de sortie.
Exemple 3 : Copier et remplacer les membres sélectionnés d’un ensemble de données
UNLOAD et compresser sur place
Disque et bande
Décharge un jeu de données partitionné sur un volume de bande pour créer une copie de sauvegarde compressée.
Exemple 4 : décharger et compresser un ensemble de données
COPY et compresser sur place
Disque
Copie deux jeux de données d’entrée dans un jeu de données de sortie existant, qui est compressé sur place. Copie et remplace tous les membres d’un jeu de données. Les membres de l’ensemble de données en sortie portent le même nom que ceux remplacés.
Exemple 5 : fusionner des ensembles de données et compresser l’ensemble de données fusionné
COPY
Disques
Sélectionne, supprime et copie des membres des jeux de données d’entrée vers un jeu de données de sortie. Illustre diverses opérations de copie.
Exemple 6 : Opérations de copie multiples avec un jeu de données de sortie
COPY
Disques
Sélectionne, supprime et copie des membres des jeux de données d’entrée vers différents jeux de données de sortie. Illustre diverses opérations de copie.
Exemple 7 : Opérations de copie multiples avec différents ensembles de données de sortie
LOAD
Bande et disque
Charge un jeu de données séquentiel sur le disque.
Exemple 8 : Chargement d’un ensemble de données
UNLOAD , LOAD et COPY
Disque et bande
Supprimer, décharger, charger et copier les membres sélectionnés.
Exemple 9 : Décharger les membres sélectionnés, charger, copier et fusionner
Modifier sur place
Disque
Les membres sélectionnés sont modifiés sur place.
Exemple 10 : Modifier les modules de charge en place
COPY et REBLOCK
Disque (3380)
Disque (3380)
Copie une bibliothèque de chargement sur des appareils avec différentes tailles de bloc optimales. La nouvelle liaison doit avoir lieu avant que le membre puisse être ajouté à la bibliothèque de chargement.
Exemple 11 : Remplacement d’un module de chargement à l’aide de COPYMOD
COPY et REBLOCK
Disque (3380)
Les copies chargent la bibliothèque sur des appareils avec différentes tailles de bloc. Reverrouille la bibliothèque à une taille compatible avec chaque périphérique sur lequel la bibliothèque sera copiée, puis copie sur ces périphériques.
Exemple 12 : Rebloquer la bibliothèque de chargement et la distribuer à différents types d’appareils
Convertir en PDSE
Disque
Convertit un jeu de données partitionné en PDSE.
Exemple 13 : Convertir un ensemble de données partitionné en PDSE
COPY
Disque
Copiez un PDSE dans un PDSE.
Exemple 14 : Copier des groupes d’un PDSE vers un PDSE
COPY
Disques
Copiez un PDSE entier dans un PDSE avec l’option de remplacement (R).
Exemple 15 : Copier des groupes d’un PDSE vers un PDSE avec REPLACE
COPY
Disques
Copiez un groupe sélectionné en spécifiant un alias.
Exemple 16 : Copier un groupe sélectionné d’un PDSE vers un PDSE
COPYGROUP
Disques
Copiez un groupe sélectionné de membres PDS et leurs alias vers un autre PDS.
Exemple 17 : Copier les membres sélectionnés et leurs alias d’un PDS vers un PDS
COPYGROUP
Disques
Copier les membres sélectionnés d’un PDS vers un autre PDS.
Exemple 18 : Copier les membres sélectionnés d’un PDS vers un PDS
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 : Copie un ensemble de données entier
Dans cet exemple, un ensemble de données partitionné (DATASET5) est copié d’un volume de disque à un autre. La figure 1 montre les ensembles de données d’entrée et de sortie avant et après le traitement.
SYSUT1 DD définit un ensemble de données partitionnées, DATASET5, qui contient deux membres (A et C).
SYSUT2 DD définit un nouveau jeu de données partitionné, DATASET4, qui doit être conservé après l’opération de copie. Cinq pistes sont allouées pour l’ensemble de données ; deux blocs sont alloués pour les entrées de répertoire.
Étant donné que l’ensemble de données partitionné ne comporte que deux membres, SYSUT3 et SYSUT4 DD ne sont pas nécessaires.
Étant donné que les ensembles de données d’entrée et de sortie sont identifiés comme SYSUT1 et SYSUT2, l’ensemble de données SYSIN n’est pas nécessaire. Le jeu de données SYSUT1 sera entièrement copié dans le jeu de données SYSUT2. Une fois l’opération de copie terminée, DATASET4 contiendra les mêmes membres que ceux de DATASET5. Cependant, il n’y aura pas d’espace intégré inutilisé dans DATASET4. Si vous copiez un PDSE, le traitement est le même, sauf qu’il n’y a pas d’espace intégré inutilisé dans un PDSE.
FIGURE 1 : Copie d’un ensemble de données partitionnées—copie complète
Exemple 2 : fusionner quatre ensembles de données
Dans cet exemple, les membres sont copiés à partir de trois jeux de données partitionnés en entrée (DATASET1, DATASET5 et DATASET6) vers un jeu de données partitionné en sortie existant (DATASET2). La séquence dans laquelle les instructions de contrôle se produisent contrôle la manière et la séquence dans lesquelles les ensembles de données partitionnés sont traités. La figure 2 montre les ensembles de données d’entrée et de sortie avant et après le traitement.
FIGURE 2 : Copie à partir de trois ensembles de données partitionnées en entrée
IN1 DD définit un ensemble de données partitionnées (DATASET1). Cet ensemble de données contient trois membres (A, B et F) dans un format fixe avec une longueur d’enregistrement logique de 80 octets et une taille de bloc de 80 octets.
IN5 DD définit un ensemble de données partitionnées (DATASET5). Cet ensemble de données contient deux membres (A et C) au format bloqué fixe avec une longueur d’enregistrement logique de 80 octets et une taille de bloc de 160 octets.
OUT2 DD définit un ensemble de données partitionnées (DATASET2). Cet ensemble de données contient deux membres (C et E) au format bloc fixe. Les membres ont une longueur d’enregistrement logique de 80 octets et une taille de bloc de 240 octets.
IN6 DD définit un ensemble de données partitionnées (DATASET6). Cet ensemble de données contient trois membres (B, C et D) au format de bloc fixe avec une longueur d’enregistrement logique de 80 octets et une taille de bloc de 400 octets. Cet ensemble de données doit être supprimé lorsque le traitement est terminé.
SYSUT3 définit un ensemble de données de déversement temporaire.
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 une instruction COPY et trois instructions INDD.
COPY indique le début de l’opération de copie. Le paramètre OUTDD spécifie DATASET2 comme ensemble de données de sortie.
La première instruction INDD spécifie DATASET1 comme premier ensemble de données d’entrée à traiter. Tous les membres (A, B et F) sont copiés dans DATASET2.
La deuxième instruction INDD spécifie DATASET6 comme deuxième ensemble de données d’entrée à traiter. Le traitement se déroule comme suit :
Le remplacement n’étant pas spécifié, les membres B et C, qui existent déjà dans DATASET2, ne sont pas copiés dans DATASET2.
Le membre D est copié dans DATASET2.
Tous les membres de DATASET6 sont perdus lorsque l’ensemble de données est supprimé.
La troisième instruction INDD spécifie DATASET5 comme troisième ensemble de données d’entrée à traiter. Aucun membre n’est copié dans DATASET2 car tous existent dans DATASET2.
Exemple 3 : Copier et remplacer les membres sélectionnés d’un ensemble de données
Dans cet exemple, deux membres (A et B) sont sélectionnés à partir de deux ensembles de données partitionnées en entrée (DATASET5 et DATASET6) et copiés dans un ensemble de données partitionnées en sortie existant (DATASET1). Le membre B remplace un membre portant le même nom qui existe déjà dans l’ensemble de données de sortie. La figure 3 montre les ensembles de données d’entrée et de sortie avant et après le traitement.
FIGURE 3 : Copie sélective avec remplacement spécifié au niveau du membre
OUT1 DD définit un ensemble de données partitionnées (DATASET1), qui contient trois membres (A, B et F).
IN6 DD définit un ensemble de données partitionnées (DATASET6), qui contient trois membres (B, C et D).
IN5 DD définit un ensemble de données partitionnées (DATASET5), qui contient deux membres (A et C).
SYSUT3 et SYSUT4 DD définissent des ensembles de données de déversement temporaires. Une piste est allouée pour chacun 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. L’ensemble de données contient une instruction COPY, une instruction INDD et une instruction SELECT.
COPY indique le début de l’opération de copie. L’utilisation d’une instruction SELECT provoque une copie sélective. Le paramètre OUTDD spécifie DATASET1 comme ensemble de données de sortie.
INDD spécifie DATASET5 comme premier ensemble de données d’entrée à traiter et DATASET6 comme deuxième ensemble de données d’entrée à traiter. Le traitement se déroule comme suit :
Les membres sélectionnés sont recherchés sur DATASET5.
Le membre A est trouvé, mais n’est pas copié dans DATASET1 car DATASET1 a déjà un membre nommé A et l’option de remplacement n’est pas spécifiée pour le membre A.
Les membres sélectionnés introuvables sur DATASET5 sont recherchés sur DATASET6.
Le membre B est trouvé et copié dans DATASET1, même s’il existe déjà un membre B de DATASET1 dans DATASET1, car l’option de remplacement est spécifiée pour le membre B au niveau du membre. Le pointeur dans le répertoire de DATASET1 est modifié pour pointer vers le nouveau membre (copié) B ; ainsi, l’espace occupé par l’ancien membre B est inutilisé.
SELECT spécifie les membres à sélectionner dans les ensembles de données d’entrée (DATASET5 et DATASET6) à copier dans l’ensemble de données de sortie (DATASET1).
Exemple 4 : Décharger et compresser un ensemble de données
Dans cet exemple, un ensemble de données partitionné est déchargé sur un volume de bande pour créer une copie de sauvegarde de l’ensemble de données. Si cette étape réussit, l’ensemble de données partitionné doit être compressé sur place.
SYSUT1 DD définit un ensemble de données partitionnées (PARTPDS) qui réside sur un volume de disque et est supposé avoir 700 membres. Le nombre de membres est utilisé pour calculer l’allocation d’espace sur SYSUT3.
SYSUT2 DD définit un ensemble de données séquentielles pour contenir PARTPDS sous forme déchargée. Des informations sur la taille des blocs peuvent éventuellement être ajoutées ; cet ensemble de données doit être NOUVEAU.
SYSUT3 DD définit le jeu de données de déversement temporaire. Le jeu de données SYSUT4 n’est jamais utilisé pour une opération de déchargement.
SYSIN DD définit le jeu de données de contrôle. Étant donné que SYSIN est fictif et que SYSUT2 définit un ensemble de données séquentiel, tous les membres de l’ensemble de données SYSUT1 seront déchargés dans l’ensemble de données SYSUT2.
La deuxième instruction EXEC marque le début de l’opération de compression sur place. Le paramètre SIZE indique que les tampons doivent être aussi grands que possible. Le paramètre COND indique que la compression sur place ne doit être effectuée que si l’opération de déchargement a réussi.
COMPDS DD définit un ensemble de données partitionné (PARTPDS) qui contient 700 membres et réside sur un volume de disque.
SYSUT3 DD définit l’ensemble de données de déversement temporaire à utiliser s’il n’y a pas assez d’espace dans la mémoire principale pour les entrées de répertoire de l’ensemble de données d’entrée. TEMPA contient un enregistrement de 80 caractères pour chaque membre.
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 une instruction COPY.
COPY marque le début de l’opération de copie. Étant donné que la même instruction DD est spécifiée pour les opérandes INDD et OUTDD, l’ensemble de données est compressé sur place. Si un PDSE est utilisé, cette étape ne sera pas traitée.
Si vous souhaitez décharger plusieurs ensembles de données en une seule utilisation d’IEBCOPY, vous devez utiliser une instruction COPY distincte pour chaque opération de déchargement. Un seul ensemble de données d’entrée peut être spécifié dans une opération de déchargement.
Exemple 5 : Fusionner des ensembles de données et compresser l’ensemble de données fusionné
Dans cet exemple, deux ensembles de données partitionnées en entrée (DATASET5 et DATASET6) sont copiés dans un ensemble de données partitionné en sortie existant (DATASET1). De plus, tous les membres de DATASET6 sont copiés ; les membres de l’ensemble de données de sortie portant le même nom que les membres copiés sont remplacés. Après le traitement de DATASET6, l’ensemble de données de sortie (DATASET1) est compressé sur place. La figure 4 montre les ensembles de données d’entrée et de sortie avant et après le traitement.
Figure 4 : Compress-in-Place suivant la copie complète avec “replace”
INOUT1 DD définit un ensemble de données partitionné (DATASET1), qui contient trois membres (A, B et F).
IN5 DD définit un ensemble de données partitionnées (DATASET5), qui contient deux membres (A et C).
IN6 DD définit un ensemble de données partitionnées (DATASET6), qui contient trois membres (B, C et D).
SYSUT3 et SYSUT4 DD définissent des ensembles de données de déversement temporaires. Une piste est allouée pour chacun 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. L’ensemble de données contient une instruction COPY.
COPY indique le début de l’opération de copie. L’opérande OUTDD spécifie DATASET1 comme ensemble de données de sortie. L’opérande INDD spécifie DATASET5 comme premier ensemble de données d’entrée à traiter. Il spécifie ensuite DATASET6 comme deuxième ensemble de données d’entrée à traiter. De plus, l’option de remplacement est spécifiée pour tous les membres copiés à partir de DATASET6. Enfin, il spécifie DATASET1 comme dernier ensemble de données d’entrée à traiter. Étant donné que DATASET1 est également le jeu de données de sortie, DATASET1 est compressé sur place. Toutefois, si DATASET1 est un PDSE, l’opération de compression sur place ne sera pas traitée.
Le traitement se déroule comme suit :
Le membre A n’est pas copié de DATASET5 dans DATASET1 car il existe déjà sur DATASET1 et l’option de remplacement n’a pas été spécifiée pour DATASET5.
Le membre C est copié de DATASET5 vers DATASET1, occupant le premier espace disponible.
Tous les membres sont copiés de DATASET6 vers DATASET1, immédiatement après le dernier membre. Les membres B et C sont copiés même si l’ensemble de données de sortie contient déjà des membres portant les mêmes noms, car l’option de remplacement est spécifiée au niveau de l’ensemble de données.
Les pointeurs dans le répertoire de DATASET1 sont modifiés pour pointer vers les nouveaux membres B et C. Ainsi, l’espace occupé par les anciens membres B et C est inutilisé. Les membres actuellement sur DATASET1 sont compressés sur place, éliminant ainsi l’espace inutilisé intégré.
Exemple 6 : Opérations de copie multiples avec un jeu de données de sortie
Dans cet exemple, les membres sont sélectionnés, exclus et copiés à partir d’ensembles de données partitionnées d’entrée vers un ensemble de données partitionnées de sortie. Cet exemple est conçu pour illustrer plusieurs opérations de copie.
La figure 5 et la figure 6 montrent les ensembles de données d’entrée et de sortie avant et après le traitement.
INOUTA DD définit une donnée partitionnée, DATASETA, qui contient sept membres (MA, MB, MC, MD, ME, MF et MG).
INB DD définit un ensemble de données partitionné, DATASETB, qui contient deux membres (MA et MJ).
INC DD définit un ensemble de données partitionné, DATASETC, qui contient quatre membres (MF, ML, MM et MN).
IND DD définit un ensemble de données partitionné, DATASETD, qui contient deux membres (MM et MP).
INE DD définit un ensemble de données partitionné, DATASETE, qui contient quatre membres (MD, ME, MF et MT).
OUTX DD définit un ensemble de données partitionné (DATASETX). Ce jeu de données est nouveau et est à conserver après l’opération de copie. Trois pistes sont allouées pour l’ensemble de données sur un volume de disque. Deux blocs sont alloués pour les entrées de répertoire.
SYSUT3 définit un ensemble de données de déversement temporaire.
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 deux instructions COPY, plusieurs instructions INDD, une instruction SELECT et une instruction EXCLUDE.
La première instruction COPY indique le début de la première opération de copie. Cette opération de copie est effectuée pour créer une copie de sauvegarde de DATASETA.
La deuxième instruction COPY indique le début d’une autre opération de copie. Étant donné que DATASETA est spécifié dans les paramètres INDD et OUTDD, DATASETA est compressé sur place. L’ensemble de données de sortie est d’abord compressé sur place pour économiser de l’espace, car on sait qu’il contient de l’espace intégré inutilisé. L’instruction INDD suivante spécifie DATASETB comme prochain ensemble de données d’entrée à copier. Seul le membre MJ est copié, car DATASETA contient déjà un membre nommé MA.
La troisième instruction COPY indique le début de la troisième opération de copie. Le paramètre OUTDD spécifie DATASETA comme ensemble de données de sortie. Cette opération de copie contient plusieurs étapes de copie. La première instruction INDD spécifie DATASETD comme premier ensemble de données d’entrée à traiter. Seul le membre MP est copié dans DATASETA car l’instruction EXCLUDE spécifie que le membre MM doit être exclu de la première étape de copie dans cette opération de copie.
Figure 5. Opérations de copie multiples/étapes de copie (Partie 1 de 2)
Figure 6. Opérations de copie multiples/étapes de copie (Partie 2 de 2)
Exemple 7 : Opérations de copie multiples avec différents jeux de données de sortie
Dans cet exemple, les membres sont sélectionnés, exclus et copiés à partir d’ensembles de données partitionnées d’entrée vers un ensemble de données partitionnées de sortie. Cet exemple est conçu pour illustrer plusieurs opérations de copie. La figure 7, la figure 8 et la figure 9 montrent les ensembles de données d’entrée et de sortie avant et après le traitement.
OUTA DD définit un ensemble de données partitionné, DATASETA, qui contient trois membres (MA, MB et MD).
INOUTB DD définit un ensemble de données partitionnées, DATASETB, qui contient deux membres (MA et MJ).
INOUTC DD définit un ensemble de données partitionnées, DATASETC, qui contient quatre membres (MF, ML, MM et MN).
INOUTD DD définit un ensemble de données partitionné, DATASETD, qui contient deux membres (MM et MP).
INE DD définit un ensemble de données partitionné, DATASETE, qui contient trois membres (MA, MJ et MK).
SYSUT3 et SYSUT4 DD définissent des ensembles de données de déversement temporaires. Une piste est allouée pour chacun 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. L’ensemble de données contient trois instructions COPY, deux instructions SELECT, une instruction EXCLUDE et plusieurs instructions INDD.
La première instruction COPY indique le début d’une opération de copie. L’opérande OUTDD spécifie DATASETA comme ensemble de données de sortie. La première instruction INDD spécifie DATASETE comme premier ensemble de données d’entrée à traiter. L’instruction SELECT spécifie que les membres MA et MJ doivent être copiés de DATASETE vers DATASETA. Le traitement se déroule comme suit :
Le membre MA est recherché et trouvé, mais n’est pas copié car l’option de remplacement n’est pas spécifiée.
Le membre MJ est recherché, trouvé et copié dans DATASETA.
La deuxième instruction INDD marque la fin de la première étape de copie et le début de la deuxième étape de copie dans la première opération de copie. Il spécifie DATASETC comme deuxième ensemble de données d’entrée à traiter. Les membres MF et ML, qui ne sont pas nommés dans l’instruction EXCLUDE, sont copiés car DATASETA ne contient ni l’un ni l’autre. EXCLUDE spécifie que les membres MM et MN ne doivent pas être copiés de DATASETC vers DATASETA.
La deuxième instruction COPY indique le début d’une autre opération de copie. Le paramètre OUTDD spécifie DATASETB comme ensemble de données de sortie. Le paramètre INDD spécifie DATASETD comme premier ensemble de données d’entrée à traiter. Les membres MP et MM sont copiés dans DATASETB. L’instruction INDD suivante spécifie DATASETC comme deuxième et DATASETB comme troisième ensemble de données d’entrée à traiter. Les membres MF, ML, MM et MN sont copiés de DATASETC. Le membre MM est copié, bien que DATASETB contienne déjà un membre MM, car l’option de remplacement est spécifiée. Le pointeur dans le répertoire de DATASETB est modifié pour pointer vers le nouveau membre (copié) MM. Ainsi, l’espace occupé par l’élément remplacé MM est un espace encastré, inutilisé. DATASETB est ensuite compressé sur place pour supprimer l’espace intégré inutilisé. (DATASETB est spécifié comme jeux de données d’entrée et de sortie.)
La troisième instruction COPY indique le début de la dernière opération de copie. Le paramètre OUTDD spécifie DATASETD comme ensemble de données de sortie. Le paramètre INDD spécifie DATASETB comme ensemble de données d’entrée. SELECT spécifie que le membre MM doit être copié de DATASETB vers DATASETD. Étant donné que l’option de remplacement est spécifiée au niveau de l’ensemble de données, le membre MM est copié et remplace le membre MM de DATASETD.
Figure 7. Opérations de copie multiples/étapes de copie au sein d’un step de job (Partie 1 de 3)
Figure 8. Opérations de copie multiples/étapes de copie au sein d’un step de job (Partie 2 de 3)
Figure 9. Opérations de copie multiples/étapes de copie au sein d’une étape de tâche (Partie 3 de 3)
Exemple 8 : Chargement d’un jeu de données
Dans cet exemple, un ensemble de données séquentiel créé par une opération de déchargement IEBCOPY est chargé.
SYSUT1 DD définit un ensemble de données séquentielles précédemment créé par une opération de déchargement IEBCOPY. L’ensemble de données contient 28 membres dans une organisation séquentielle.
SYSUT2 DD définit un nouvel ensemble de données partitionnées sur un volume de disque. Cet ensemble de données est à conserver après l’opération de chargement. Dix cylindres sont alloués pour l’ensemble de données ; dix blocs sont alloués pour les entrées de répertoire.
SYSUT3 DD définit un jeu de données de déversement temporaire sur un volume de disque.
SYSIN DD définit le jeu de données de contrôle.
Exemple 9 : décharger les membres sélectionnés, charger, copier et fusionner
Dans cet exemple, les membres sont sélectionnés, exclus, déchargés, chargés et copiés. Le traitement se déroulera comme suit :
PDS1 DD définit un ensemble de données partitionné appelé ACCOUNTA qui contient six membres (A, B, C, D, E et F).
PDS2 DD définit un ensemble de données partitionné appelé ACCOUNTB qui contient trois membres (A, K et L).
SEQ1 DD définit un nouveau jeu de données séquentiel appelé SAVAC.
SEQ2 DD définit un nouvel ensemble de données séquentielles appelé SAVACB sur un volume de bande. La bande porte des étiquettes standard IBM.
NEWUP DD définit un ancien ensemble de données séquentiel appelé NEWACC qui est la forme déchargée d’un ensemble de données partitionné qui contient huit membres (A, B, C, D, M, N, O et P). Il réside sur un volume de bande.
MERGE DD définit un ensemble de données partitionné appelé ACCUPDAT qui contient six membres (A, B, C, D, Q et R).
SYSUT3 et SYSUT4 DD définissent des ensembles de données de déversement temporaires.
SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
La première instruction COPY indique le début de la première opération de copie. Le paramètre OUTDD spécifie que SAVAC est le jeu de données de sortie et le paramètre INNDD spécifie que ACCOUNTA est le jeu de données d’entrée. Étant donné que SAVAC est un ensemble de données séquentiel, ACCOUNTA sera déchargé lors de cette opération de copie. L’instruction EXCLUDE spécifie que les membres D et C ne doivent pas être déchargés vers SAVAC avec le reste d’ACCOUNTA.
La deuxième instruction COPY indique le début de la deuxième opération de copie. Le paramètre OUTDD spécifie que SAVACB est le jeu de données de sortie et le paramètre INDD spécifie que ACCOUNTB est le jeu de données d’entrée. Étant donné que SAVACB est un ensemble de données séquentiel, ACCOUNTB sera déchargé lors de cette opération de copie. L’instruction SELECT spécifie que les membres A et K sont les seuls membres de ACCOUNTB qui doivent être déchargés vers SAVACB.
La troisième instruction COPY indique le début de la dernière opération de copie. Le paramètre OUTDD spécifie que ACCUPDAT est le jeu de données de sortie. L’instruction EXCLUDE spécifie que le membre A est exclu de cette opération de copie. Les trois ensembles de données spécifiés dans le paramètre INDD seront traités comme suit :
Le jeu de données NEWACC est un jeu de données séquentiel, il est donc chargé dans ACCUPDAT. Etant donné que l’option de remplacement est spécifiée, les membres B, C et D de NEWACC remplacent les membres portant le même nom dans ACCUPDAT. Les membres restants de NEWACC sont également copiés dans ACCUPDAT, à l’exception de A, qui est exclu de l’opération de copie.
L’ensemble de données ACCOUNTA est un ensemble de données partitionné, ses membres sont donc copiés dans ACCUPDAT. Le remplacement n’étant pas spécifié, seuls les membres E et F sont copiés.
L’ensemble de données ACCOUNTB est un ensemble de données partitionné, de sorte que ses membres sont copiés dans ACCUPDAT. Seuls les membres K et L sont copiés.
Exemple 10 : Modifier les modules de chargement en place
Dans cet exemple, tous les membres de l’ensemble de données MODLIBJ, les membres MODX, MODY et MODZ de l’ensemble de données MODLIBK et tous les membres de l’ensemble de données MODLIBL, à l’exception de MYMACRO et MYJCL, sont modifiés sur place.
LIBJ DD définit l’ensemble de données partitionné MODLIBJ, qui a été précédemment créé et catalogué.
LIBK DD définit le jeu de données partitionné MODLIBK, qui a été précédemment créé et catalogué.
LIBL DD définit l’ensemble de données partitionné MODLIBL, qui a été préalablement créé et catalogué.
SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
La première instruction ALTERMOD spécifie que l’ensemble de données défini dans LIBJ doit être modifié sur place.
La deuxième instruction ALTERMOD plus l’instruction SELECT suivante indiquent que les membres MODX, MODY et MODZ doivent être modifiés sur place. Le reste de MODLIBK est inchangé.
La troisième instruction ALTERMOD plus l’instruction EXCLUDE suivante indiquent que tout MODLIBL doit être modifié sur place, à l’exception des membres appelés MYMACRO et MYJCL. Ces membres restent inchangés.
Exemple 11 : Remplacement d’un module de chargement à l’aide de COPYMOD
Dans cet exemple, un module de chargement dans une bibliothèque de chargement existante est remplacé par un autre module. Le nouveau module réside à l’origine sur un périphérique DASD 3390, tandis que la bibliothèque de chargement sur laquelle il est copié réside sur un 3380. Étant donné que le module a une taille de bloc supérieure à la taille de bloc affectée au jeu de données de sortie, le module doit être rebloqué avant il est ajouté à la bibliothèque de chargement.
Cet exemple illustre comment vous pouvez transférer des modules de charge entre des appareils de différentes tailles. Dans ce cas, les modules mis à jour sont créés sur un 3390 et testés avant d’être ajoutés à la bibliothèque de chargement pour une utilisation générale.
TESTLIB DD définit une bibliothèque de chargement sur un périphérique d’accès direct 3390. Il a une taille de bloc de 23470.
PRODLIB DD définit une bibliothèque de chargement sur un équipement à accès direct 3380. Il a une taille de bloc de 19069.
SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
L’instruction COPYMOD identifie PAYROLL.MASTER.LOADLIB comme ensemble de données de sortie et JOHNDOE.COBOL.TESTLOAD comme ensemble de données d’entrée. L’instruction SELECT indique que le module de chargement WAGETAX doit être copié à partir de l’ensemble de données d’entrée et doit remplacer tout membre portant ce nom qui se trouve dans l’ensemble de données de sortie. Le membre est également rebloqué en 19069.
Notez que, dans ce cas, COPYMOD doit être utilisé pour copier le membre WAGETAX dans PAYROLL.MASTER.LOADLIB. Étant donné que la taille de bloc d’origine de WAGETAX est supérieure à la plus grande taille de bloc pouvant résider dans l’ensemble de données de sortie, tenter cette opération avec l’instruction COPY échouerait. Le problème serait attribué à une erreur de validation DCB en raison d’une taille de bloc incorrecte.
Exemple 12 : Rebloquer la bibliothèque de chargement et la distribuer à différents types d’équipements
Dans cet exemple, une bibliothèque de chargement est distribuée (en la copiant) aux périphériques dont la taille de bloc maximale diffère de celle sur laquelle réside la bibliothèque de chargement d’origine. La bibliothèque est d’abord rebloquée à une taille de bloc maximale compatible avec chacun des appareils sur lesquels la bibliothèque sera copiée. Ensuite, la bibliothèque est copiée sur ces appareils.
Cet exemple illustre comment des bibliothèques de chargement peuvent être développées sur un type de périphérique à accès direct, puis distribuées à d’autres types de périphériques à accès direct.
L’instruction REBLOCK EXEC commence l’étape de reblocage.
TESTED DD définit la bibliothèque de chargement cataloguée TESTED.MASTER.LOADLIB.
STDSIZE DD définit un ensemble de données existant, PROGRAM.MASTER.LOADLIB, qui réside sur un périphérique d’accès direct 3390 et a une taille de bloc de 23470.
L’instruction COPYMOD dans l’ensemble de données SYSIN spécifie que TESTED.MASTER.LOADLIB doit être fusionné dans PROGRAM.MASTER.LOADLIB. Il spécifie également que PROGRAM.MASTER.LOADLIB doit être rebloqué avec une taille de bloc maximale de 13030. Cette taille de bloc est choisie car elle est suffisamment petite pour tenir sur les périphériques d’accès direct 3380 et 3390.
L’instruction DISTRIB EXEC commence l’étape de distribution, où l’ensemble de données rebloqué est copié sur des périphériques avec des tailles de bloc maximales différentes.
STDSIZE DD définit le même ensemble de données qui a été rebloqué à l’étape précédente.
LIB3380 DD définit l’ensemble de données PROGRAM.LIB3380.LOADLIB, qui réside sur un périphérique d’accès direct 3380.
Les instructions COPY du jeu de données SYSIN spécifient que le jeu de données PROGRAM.MASTER.LOADLIB doit être copié dans les jeux de données de sortie sans être rebloqué. Si PROGRAM.MASTER.LOADLIB n’avait pas été rebloqué à la plus petite taille de bloc, cette étape se terminerait sans succès.
Exemple 13 : Conversion d’un ensemble de données partitionné en PDSE
Dans cet exemple, un ensemble de données partitionné est converti en PDSE.
SYSUT1 DD définit le jeu de données d’entrée, PDS, qui est un jeu de données partitionné. Le mot clé DSNTYPE n’a aucun effet car il s’agit d’un ensemble de données existant.
SYSUT2 DD définit le jeu de données de sortie, PDSE, qui est un jeu de données partitionné étendu. Ce nouvel ensemble de données sera géré par SMS car il possède une classe de stockage. Le paramètre LIKE indique que les attributs DCB et SPACE pour PDSESET doivent être copiés à partir de PDSSET. Le paramètre DSNTYPE définit le nouvel ensemble de données comme un PDSE plutôt que comme un ensemble de données partitionnées. DATACLAS=DCLASY identifie le PPDSE comme un objet de programme PDSE avec une longueur d’enregistrement logique indéfinie. Le sous-système de gestion du stockage choisit un volume approprié pour l’allocation, en fonction de la définition de SCLASX.
Étant donné que les noms symboliques SYSUT1 et SYSUT2 sont utilisés pour définir les ensembles de données d’entrée et de sortie, aucun ensemble de données SYSIN n’est requis.
Exemple 14 : Copier des groupes d’un PDSE vers un PDSE
Dans cet exemple, les membres et leurs alias (groupes) sont copiés d’un PDSE vers un PDSE (copie complète de l’ensemble de données).
Voir Copie d’objets programme (instructions COPYGRP et COPYGROUP) pour plus d’informations sur la copie de groupes.
DDIN DD définit l’ensemble de données d’entrée, PDSESETA, qui est un ensemble de données partitionné étendu. DDOUT DD définit le jeu de données de sortie, PDSESETA, qui est un jeu de données partitionné étendu. Le sous-paramètre LIKE indique que les attributs DCB et SPACE pour PDSSETB doivent être copiés à partir de PDSESETA. Le sous-paramètre DSNTYPE définit le nouvel ensemble de données comme un PDSE. Le sous-système de gestion de stockage choisit un volume approprié pour l’allocation.
SYSUT3 DD définit un ensemble de données de déversement temporaire.
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 une instruction COPYGRP, une instruction INDD et une instruction OUTDD.
COPYGRP indique le début de l’opération de copie. Le paramètre INDD affiche PDSESETA comme ensemble de données d’entrée. Le paramètre OUTDD affiche PDSSETB comme ensemble de données de sortie.
Exemple 15 : Copier des groupes d’un PDSE vers un PDSE avec remplacement
Dans cet exemple, les membres et leurs alias sont copiés en groupes d’un PDSE vers un PDSE avec l’option de remplacement (R).
DDIN DD définit l’ensemble de données d’entrée, PDSE, qui est un ensemble de données partitionné étendu. DDOUT DD définit l’ensemble de données de sortie, PDSE, qui est un ensemble de données partitionné étendu. Le paramètre DSNTYPE définit le nouvel ensemble de données comme un PDSE. Le sous-système de gestion de stockage choisit un volume approprié pour l’allocation.
SYSUT3 DD définit un ensemble de données de déversement temporaire.
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 une instruction COPYGRP, une instruction INDD et une instruction OUTDD.
COPYGRP indique le début de l’opération de copie. Le paramètre ((INDD,R)) affiche PDSESETA comme ensemble de données d’entrée contenant des membres pour remplacer les membres portant le même nom dans PDSSETB. Le paramètre OUTDD affiche PDSSETB comme ensemble de données de sortie.
Exemple 16 : Copier un groupe sélectionné d’un PDSE vers un PDSE
Dans cet exemple, un membre sélectionné et ses alias sont copiés d’un PDSE vers un PDSE. Le nom du membre ou un maximum de huit caractères peuvent être indiqués dans l’instruction SELECT.
Voir JCL – Copie des objets du programme (instructions COPYGRP et COPYGROUP) pour plus d’informations sur la sélection de groupes sur COPYGRP.
DDIN DD définit l’ensemble de données d’entrée, PDSE, qui est un ensemble de données partitionné étendu. DDOUT DD définit l’ensemble de données de sortie, PDSE, qui est un ensemble de données partitionné étendu. Tous les PDSE doivent être gérés par le sous-système de gestion du stockage. Le paramètre LIKE indique que les attributs DCB et SPACE pour PDSSETB doivent être copiés à partir de PDSESETA. Le paramètre DSNTYPE définit le nouvel ensemble de données comme un PDSE. Le sous-système de gestion de stockage choisit un volume approprié pour l’allocation.
SYSUT3 DD définit un ensemble de données de déversement temporaire.
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 une instruction COPYGRP, une instruction INDD et une instruction OUTDD.
COPYGRP indique le début de l’opération de copie. Le paramètre INDD affiche PDSESETA comme ensemble de données d’entrée. Le paramètre OUTDD affiche PDSSETB comme ensemble de données de sortie.
L’instruction SELECT indique qu’un groupe portant l’alias ALIAS001 doit être sélectionné dans l’ensemble de données d’entrée (PDSESETA) et copié dans l’ensemble de données de sortie (PDSESETB).
Exemple 17 : Copier les membres sélectionnés et leurs alias d’un PDS vers un PDS
Dans cet exemple, les membres sélectionnés et leurs alias sont copiés d’un PDS vers un PDS, tandis qu’une instruction EXCLUDE est utilisée pour empêcher la copie d’autres membres et de leurs alias. Les instructions SELECT et EXCLUDE ne peuvent être utilisées que si l’opération est un COPYGROUP et que le masque de modèle de filtre de nom de membre est utilisé pour les deux. Reportez-vous aux descriptions des instructions SELECT et EXCLUDE pour plus de détails sur l’utilisation du masque de modèle de filtre de nom de membre.
DDIN DD définit l’ensemble de données d’entrée, PDSA, un ensemble de données partitionnées avec les membres suivants :
ABCDEFGH
BCDEFGHI
CDEFGHIJ
DEFGHIJK
EFGHIJKL
FGHJKLM
GHIJKLMN
DDOUT DD définit l’ensemble de données de sortie, PDSB, un ensemble de données partitionné.
Le paramètre LIKE indique que les attributs DCB et SPACE pour PDSB doivent être copiés à partir de PDSA.
Le paramètre DSNTYPE définit l’ensemble de données en tant que PDS.
Le sous-système de gestion de stockage choisit un volume approprié pour l’ensemble de données nouvellement alloué.
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 une instruction COPYGROUP, une instruction SELECT et une instruction EXCLUDE.
COPYGROUP indique le début d’une opération de copie de groupe.
Le paramètre INDD affiche PDSA comme ensemble de données d’entrée.
Le paramètre OUTDD affiche PDSB comme ensemble de données de sortie.
L’instruction SELECT utilise le masquage du modèle de filtre et indique que tout membre correspondant au modèle de masquage et tous ses alias seront sélectionnés dans l’ensemble de données d’entrée et copiés dans l’ensemble de données de sortie. Dans cet exemple, les membres ABCDEFGH, BCDEFGHI, CDEFGHIJ et GHIJKLMN et leurs alias seront copiés.
L’instruction EXCLUDE peut être utilisée pour le masquage de modèle de filtre pour une opération COPYGROUP uniquement lorsqu’une instruction SELECT de masquage de filtre est présente. Cela empêchera les membres correspondants et tous leurs alias d’être copiés dans le jeu de données de sortie. Dans cet exemple, les membres DEFGHIJK, EFGHIJKL et FGHIJKLM et leurs alias ne seront pas copiés.
Exemple 18 : Copier des membres sélectionnés d’un PDS vers un PDS
Dans cet exemple, les membres sélectionnés sont copiés d’un PDS vers un PDS. Cet exemple diffère de l’exemple 16 en ce que COPYGROUP permet aux membres d’être copiés avec leurs alias d’un PDS vers un PDS, tandis que COPYGRP ne copie les alias que lorsque l’un ou les deux ensembles de données d’entrée et de sortie est un PDSE. Si les deux sont des PDS, cela entraînera une opération COPY.
Voir JCL – Copie des objets du programme (instructions COPYGRP et COPYGROUP) pour plus d’informations sur la sélection de groupes avec COPYGROUP et les différences entre les instructions COPYGROUP et COPYGRP.
DDIN DD définit l’ensemble de données d’entrée, PDSA, qui est un ensemble de données partitionnées.
DDOUT DD définit l’ensemble de données de sortie, PDSB, qui est un ensemble de données partitionnées.
Le paramètre LIKE indique que les attributs DCB et SPACE pour PDSB doivent être copiés à partir de PDSA.
Le paramètre DSNTYPE définit le nouvel ensemble de données en tant que PDS.
Le sous-système de gestion de stockage choisit un volume approprié pour l’allocation.
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 une instruction COPYGROUP et deux instructions SELECT.
COPYGROUP indique le début d’une opération de copie de groupe.
Le paramètre INDD affiche PDSA comme ensemble de données d’entrée.
Le paramètre OUTDD affiche PDSB comme ensemble de données de sortie.
L’instruction SELECT indique que le membre MEMBER02, MEMBER03 et tous leurs alias doivent être sélectionnés dans l’ensemble de données d’entrée (PDSA) et copiés dans l’ensemble de données de sortie (PDSB).
Si l’option de remplacement (R) est indiquée sur le paramètre INDD :
Les membres de l’ensemble de données de sortie et leurs alias seront remplacés s’ils ont les mêmes noms de membre et d’alias que les membres et les alias de l’ensemble de données d’entrée. Exemple : L’ensemble de données d’entrée a le membre A avec l’alias B ; l’ensemble de données de sortie a le membre A avec l’alias B. Le membre et l’alias de l’ensemble de données d’entrée remplaceront le membre et l’alias de l’ensemble de données de sortie.
La copie échouera si l’alias d’un membre dans les données de sortie est le même que l’alias d’un membre nommé différemment dans l’ensemble de données d’entrée. Exemple : L’ensemble de données d’entrée a le membre A avec l’alias B ; l’ensemble de données de sortie a le membre C avec l’alias B. La copie échouera car l’alias B pointe vers un membre avec un nom différent sur l’ensemble de données de sortie.
Si les membres et les alias de l’ensemble de données de sortie ne correspondent pas aux membres et aux alias de l’ensemble de données d’entrée, tous les membres et alias de l’ensemble de données d’entrée sont copiés. Exemple : L’ensemble de données d’entrée a le membre A avec l’alias B ; l’ensemble de données de sortie a le membre C avec l’alias D. Après la copie, l’ensemble de données de sortie contiendra A avec l’alias B et C avec l’alias D.
Il est recommandé d’utiliser l’instruction COPYGRP ou COPYGROUP pour copier des modules de chargement PDS ou des objets de programme PDSE et leurs alias depuis ou vers un ensemble de données PDSE. Les objets programme peuvent avoir des alias de plus de huit caractères. L’utilisation de l’instruction COPYGRP ou COPYGROUP garantit que ces alias plus longs sont copiés avec leur membre.
Utilisez l’instruction COPYGRP ou COPYGROUP pour commencer une copie, un déchargement ou un chargement de groupe. Un groupe se compose d’un membre et de tous ses alias. COPYGRP ou COPYGROUP traite le groupe comme une seule entité.
COPYGRP peut être utilisé pour copier un ensemble de données lorsque l’ensemble de données d’entrée ou l’ensemble de données de sortie, ou les deux, sont PDSE : – PDSE vers PDSE – PDSE vers PDS – PDS vers PDSE
COPYGROUP peut être utilisé pour copier un ensemble de données lorsque l’ensemble de données d’entrée ou l’ensemble de données de sortie, ou les deux, sont PDS ou PDSE : – PDSE vers PDSE – PDSE vers PDS – PDS vers PDSE – PDS vers PDS
Pour décharger des groupes :
Utilisation de COPYGRP : PDSE vers PS
Utilisation de COPYGROUP : PDSE vers PS ou PDS vers PS
Pour charger des groupes :
Utilisation de COPYGRP : PS vers PDSE
Utilisation de COPYGROUP : PS vers PDSE ou PS vers PDS
Si aucun ensemble de données n’est un PDSE, la demande est traitée comme une opération COPY soumise aux exigences de syntaxe de COPYGRP.
Lors de l’utilisation de l’instruction COPYGRP ou COPYGROUP :
Tous les alias d’un groupe seront copiés avec le membre ou ni les alias ni le membre d’un groupe ne seront copiés.
Il ne peut y avoir qu’un seul INDD par opération de copie.
Vous pouvez utiliser l’instruction SELECT pour copier sélectivement des membres. Le nom du membre ou un alias peut être spécifié pour copier le membre et tous ses alias.
N’indiquez pas de remplacement (R) sur l’instruction SELECT.
Les exemples du tableau 1 illustrent certaines des utilisations d’IEBCOMPR. Les nombres dans la colonne Exemple font référence aux exemples qui suivent. 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.
Tableau 1. Répertoire d’exemple IEBCOMPR
Opération
Organisation du jeu de données
Périphérique
Commentaires
Exemple
COMPARE
Séquentiel
Cassette 9 pistes
Aucune routine utilisateur. Entrée bloquée.
Exemple 1 : Comparer des ensembles de données résidant sur bande
COMPARE
Séquentiel
Cassette 7 pistes
Aucune routine utilisateur. Entrée bloquée.
Exemple 2 : Comparer des ensembles de données séquentielles résidant sur bande
COMPARE
Séquentiel
Bande 7 pistes et bande 9 pistes
Routines utilisateur. Entrée bloquée. Bandes de différentes densités.
Exemple 3 : Comparer des ensembles de données séquentielles écrites à différentes densités
COMPARE
Séquentiel
Flux d’ entrée système Bande 9 pistes
Aucune routine utilisateur. Entrée bloquée.
Exemple 4 : Comparer des ensembles de données séquentielles : flux d’entrée et entrée de bande
COPY (avec IEBGENER) et COMPARE
Séquentiel
Disque ou bande
Aucune routine utilisateur. Entrée bloquée. Deux étapes de travail ; les ensembles de données sont transmis à la deuxième étape du travail.
Exemple 5 : copier et comparer un ensemble de données séquentielles en deux steps de job
COMPARE
partitionné
Disque
Aucune routine utilisateur. Entrée bloquée.
Exemple 6 : Comparer deux ensembles de données partitionnés
COPY (avec IEBCOPY) et COMPARE
partitionné
Disque
Routine utilisateur. Entrée bloquée. Deux étapes de travail ; les ensembles de données sont transmis à la deuxième étape du travail.
Exemple 7 : Copier et comparer un ensemble de données partitionnées en deux steps de job
COMPARE
PDSE
Disque
Aucune routine utilisateur. Ensembles de données gérés par SMS.
Exemple 8 : Comparer deux PDSE
EXEMPLE
Exemple 1 : Comparer des ensembles de données résidant sur bande
Dans cet exemple, deux ensembles de données séquentielles résidant sur des volumes de bande à 9 pistes sont comparés.
Les instructions de contrôle de travail sont décrites comme suit :
SYSUT1 DD définit un ensemble de données d’entrée (SET1), qui réside sur un volume de bande 9 pistes sans étiquette.
SYSUT2 DD définit un ensemble de données d’entrée (SET2), qui réside sur un volume de bande 9 pistes sans étiquette.
SYSIN DD définit un jeu de données factice. Étant donné qu’aucune routine utilisateur n’est utilisée et que les ensembles de données d’entrée ont une organisation séquentielle, les instructions de contrôle de l’utilitaire ne sont pas nécessaires.
Exemple 2 : Comparer des ensembles de données séquentielles résidant sur bande
Dans cet exemple, deux ensembles de données séquentielles résidant sur des volumes de bande à 7 pistes sont comparés.
Les instructions de contrôle sont discutées comme suit :
SYSUT1 DD définit un ensemble de données d’entrée, SET1, qui réside sur un volume de bande étiqueté à 7 pistes. L’ensemble de données bloqué a été initialement écrit à une densité de 800 bits par pouce (DEN=2) avec le convertisseur de données activé (TRTCH=C).
SYSUT2 DD définit un jeu de données d’entrée, SET2, qui est le premier ou le seul jeu de données sur un volume de bande étiqueté à 7 pistes. L’ensemble de données bloqué a été initialement écrit à une densité de 800 bits par pouce (DEN=2) avec le convertisseur de données activé (TRTCH=C).
SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
COMPARE TYPORG=PS spécifie que les ensembles de données d’entrée sont organisés de manière séquentielle.
LABELS DATA=ONLY spécifie que les étiquettes d’en-tête utilisateur doivent être traitées comme des données et comparées. Toutes les autres étiquettes sur la bande sont ignorées.
Exemple 3 : Comparer des ensembles de données séquentiels écrits à différentes densités
Dans cet exemple, deux ensembles de données séquentielles qui ont été écrites à des densités différentes sur différentes unités de bande sont comparées.
Les instructions de contrôle sont discutées comme suit :
SYSUT1 DD définit un jeu de données d’entrée, SET1, qui est le premier ou le seul jeu de données sur un volume de bande étiqueté à 7 pistes. L’ensemble de données bloqué a été initialement écrit à une densité de 556 bits par pouce (DEN=1) avec le convertisseur de données activé (TRTCH=C).
SYSUT2 DD définit un ensemble de données d’entrée, SET2, qui est le premier ou le seul ensemble de données bloquées sur un volume de bande étiqueté. Dans cet exemple, supposons que SYSUT2 se trouve sur un lecteur de bande à 9 pistes.
SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
COMPARE TYPORG=PS spécifie que les ensembles de données d’entrée sont organisés de manière séquentielle.
EXITS identifie les noms des routines à utiliser pour traiter les étiquettes d’en-tête d’entrée utilisateur et les étiquettes de fin.
LABELS DATA=NO spécifie que les étiquettes d’en-tête et de fin d’entrée utilisateur pour chaque ensemble de données ne doivent pas être comparées.
Exemple 4 : Comparer des ensembles de données séquentiels – Flux d’entrée et entrée de bande
Dans cet exemple, deux ensembles de données séquentiels (flux d’entrée et bande) sont comparés.
Les instructions de contrôle sont décrites comme suit :
SYSIN DD définit un jeu de données de contrôle factice. Étant donné qu’aucune routine utilisateur n’est fournie et que les ensembles de données d’entrée sont séquentiels, les instructions de contrôle de l’utilitaire ne sont pas nécessaires.
SYSUT2 DD définit un ensemble de données d’entrée, qui réside sur un volume de bande sans étiquette.
SYSUT1 DD définit un ensemble de données de flux d’entrée système.
Exemple 5 : Copier et comparer un jeu de données séquentiel en deux step de job
Dans cet exemple, un jeu de données séquentiel sur disque ou sur bande est copié et comparé en deux step de job.
Le premier step de job copie l’ensemble de données et transmet les ensembles de données d’origine et copiés au deuxième step de job. Le deuxième step de job compare les deux ensembles de données.
Les instructions de contrôle pour le step de job IEBCOMPR sont présentées comme suit :
SYSUT1 DD définit un ensemble de données d’entrée transmis à partir du step de job précédent (COPYSET1). L’ensemble de données réside sur un volume de bande étiqueté.
SYSUT2 DD définit un ensemble de données d’entrée transmis à partir du step de job précédent (COPYSET2). L’ensemble de données, qui a été créé au step de job précédent, réside sur un volume de bande étiqueté.
SYSIN DD définit un jeu de données de contrôle factice. Etant donné que l’entrée est séquentielle et qu’aucun exit utilisateur n’est fourni, aucune instruction de contrôle d’utilitaire n’est requise.
Exemple 6 : Comparer deux ensembles de données partitionnés
Dans cet exemple, deux ensembles de données partitionnés sont comparés.
Le premier step de job copie l’ensemble de données et transmet les ensembles de données d’origine et copiés au deuxième step de job. Le deuxième step de job compare les deux ensembles de données.
Les instructions de contrôle pour l’étape de travail IEBCOMPR sont abordées comme suit :
SYSUT1 DD définit un ensemble de données d’entrée bloquées (MAINDB.LOG.OLDSET) transmis à partir du step précédent. L’ensemble de données réside sur un volume de disque ou de bande.
SYSUT2 DD définit un ensemble de données d’entrée bloquées (MAINDB.LOG.NEWMEMS) transmis à partir du step précédent. L’ensemble de données 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.
COMPARE TYPORG=PO spécifie une organisation partitionnée.
EXITS spécifie qu’une routine d’erreur utilisateur, SEEERROR, doit être utilisée.
Étant donné que les noms des ensembles de données d’entrée ne sont pas identiques, les ensembles de données peuvent être récupérés par leurs noms d’ensemble de données.
Les PDSE ne doivent plus être gérés par SMS. Étant donné que ces PDSE sont catalogués, vous n’avez pas besoin de spécifier les paramètres UNIT ou VOLUME.
Les instructions de contrôle sont décrites comme suit :
SYSUT1 DD et SYSUT2 DD définissent les PDSE d’entrée, PDSE1 et PDSE2. Étant donné qu’aucune valeur DCB n’est spécifiée, les valeurs DCB qui ont été spécifiées lors de la création des ensembles de données seront utilisées.
SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
COMPARE TYPORG=PO indique que les ensembles de données d’entrée sont des PDSE.