IEBGENER

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

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

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.