IEBGENER
IEBGENER ist ein Hilfsprogramm, welches in IBM-Großrechnerbetriebssystemen seit OS/360 verwendet wird, wenn mittels JCL beispielsweise eine Kopie einer sequentiellen Datei angefertigt werden soll. Das Programm gehört in die Gruppe einer ganzen Reihe von Hilfsprogrammen (sogenannte Utility) zur Dateibearbeitung wie IEBCOPY, IDCAMS und IEBUPDTE.
Funktionalität
[Bearbeiten | Quelltext bearbeiten]Die Kernfunktionalität umfasst:
- Kopieren einer sequentiellen Datei in eine andere sequentielle Datei
- Kopieren einer sequentiellen Datei in ein oder mehrere Member einer PDS bzw. PDSE Datei
Das Programm benötigt 4 Dateiangaben:
- SYSUT1 als Eingabedatei
- SYSUT2 als Ausgabedatei
- SYSPRINT zur Ausgabe von Systemmeldungen
- SYSIN zur Eingabe optionaler Steueranweisungen
Beispiele
[Bearbeiten | Quelltext bearbeiten]Beispiel 1: Kopieren sequentielle Datei
[Bearbeiten | Quelltext bearbeiten]//JOB1 JOB (12345),MSGCLASS=X,NOTIFY=SYSPROG1
//S020 EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DISP=SHR,DSN=MY.DATA.CUSTOMER
//SYSUT2 DD DISP=(NEW,CATLG,DELETE),
// DSN=MY.DATA.CUSTOMER.COPY,
// LIKE=MY.DATA.CUSTOMER
//SYSIN DD DUMMY
/*
Die bestehende Datei MY.DATA.CUSTOMER wird auf die neu (Zeile 5, DISP=NEW) anzulegende und zu katalogisierende (Zeile 5, DISP=CATLG) Datei MY.DATA.CUSTOMER.COPY kopiert. Die weiteren Parameter für die Zieldatei, wie die logische Satzlänge, werden von der Quelldatei übernommen (Zeile 7, LIKE Parameter).
Beispiel 2: Zerlegen einer sequentiellen Datei in eine PDSE Datei
[Bearbeiten | Quelltext bearbeiten]//JOB1 JOB (12345),MSGCLASS=X,NOTIFY=SYSPROG1
//S020 EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD *
70437 STUTTGART MEIER MUSTERSTRASSE 12
ANZAHL 7XXXX 001 STUECK
80331 MUENCHEN MUELLER BAHNHOFSTRASSE 42
86154 AUGBURG SCHULZE HAUPTSTRASSE 12
ANZAHL 8XXXX 002 STUECK
/*
//SYSUT2 DD DSN=MY.DATA.ADDRESS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(2,2),RLSE),
// UNIT=DASD,DSNTYPE=(LIBRARY,2),MAXGENS=10,
// DCB=(DSORG=PO,RECFM=FB,LRECL=80)
//SYSIN DD *
GENERATE MAXNAME=2,MAXGPS=1
MEMBER NAME=U70000
GROUP1 RECORD IDENT=(5,'7XXXX',8)
MEMBER NAME=U80000
/*
Die benötigte Eingabedatei SYSUT1 wird exemplarisch direkt in den Zeilen 5 bis 9 im Jobstream angegeben. Die Eingabe enthält fiktive Adressdaten aus dem Süddeutschen Raum, Postleitzahlen 7 und 8. Je Postleitzahlenbereich ist eine Summenzeile (Zeilen 6 und 9) vorhanden. Per IEBGENER werden nun über die Steuerdaten in Zeile 17 bis 20 die Eingabedaten in zwei Gruppen aufgeteilt, nämlich 7er und 8er Postleitzahlen. Als jeweiliges Gruppenende (Gruppenwechsel) wird die Summenzeile verwendet. Die Summenzeile selber bleibt Bestandteil der jeweiligen Datengruppe.
Die Ausgabedatei MY.DATA.ADDRESS wird in den Zeilen 11 bis 15 als neue PDSE Datei (DISP=NEW, LIBRARY) mitsamt Versionierung (MAXGENS=10) angelegt. Innerhalb der PDSE Datei werden zwei Member U70000 und U80000 erzeugt welche jeweils einen Teil der gesplitteten Eingabedatei aufnehmen.
Hinweis: Da das Utility IEBGENER älter ist, als ISPF unter TSO werden von IEBGENER keine ISPF Statistikdaten geschrieben. Die fraglichen Felder bleiben leer.