MainframeSupports
tip uge 04/2006:

Tilbage i uge 49/2005 skrev jeg om, hvordan man vha. IEBPTPCH kan omforme et PDS til en flad fil. Nu er tiden kommet til at afsløre, hvordan man kan omforme en enkelt flad fil til mange members i et og samme PDS. Programmet til dette hedder IEBUPDTE og er kendt af næsten enhver systemprogrammør, men de fleste af os almindelige programmører kender det desværre ikke. Du har nu muligheden for at lære IEBUPDTE at kende.

For at kunne lave mange members i et PDS ud fra et enkelt fladt dataset er du selvfølgelig nødt til på en eller anden måde at angive hvilke data i den flade fil, der skal i hvilke members. IEBUPDTE forlanger, at input-datasettet indeholder nogle records med en bestemt syntaks som adskiller de enkelte members. Disse records ser således ud:

./ ADD NAME=membernavn

Der er ikke nogen bestemte krav til antallet af blanke mellem ./ og ADD og mellem ADD og NAME=membernavn. Desværre er manualen til IEBUPDTE ikke skrevet af IBM's bedste folk på området, så det er lidt svært at gennemskue formkravene, så du må selv afprøve grænserne. For at få lidt perspektiv på, viser jeg lige et eksempel, hvor et nyt PDS bliver skabt ud fra sekventielt input:

//STEP0001 EXEC PGM=IEBUPDTE,PARM=NEW
//SYSPRINT DD SYSOUT=*
//SYSUT2   DD DISP=(NEW,CATLG),DSN=MY.PDS,SPACE=(TRK,(5,5,5)),
//         RECFM=FB,LRECL=80,BLKSIZE=0
//SYSIN    DD *
./ ADD NAME=FIRSTMEM
LINE 1 OF FIRSTMEM
LINE 2 OF FIRSTMEM
./ ADD NAME=SECNDMEM
LINE 1 OF SECNDMEM
LINE 2 OF SECNDMEM
LINE 3 OF SECNDMEM
/*

Efter eksekveringen af ovenstående step, vil MY.PDS indeholde to members kaldet FIRSTMEM og SECNDMEM med det angivne indhold. Det er faktisk ret enkelt. Og nu til besværlighederne. Manualen er enormt svær at tyde. Kun LRECL mindre end 81 kan bruges. Jeg har ikke prøvet de mange andre muligheder med IEBUPDTE, så dem må du selv udforske.

Forrige danske tip        Last tip in english        Tip oversigten