Bruno Jakob
02-10-03, 07:20
Keine Ahnung, wo die Textdatei hingekommen ist, also nochmal als Anhang und zusätzlich hier im Beitrag:
/* ************************************************** *********** */
/* Name der Arbeitsdatei festlegen */
/* ************************************************** *********** */
arbeitsdat = "QTEMP/XXXXX"
/* ************************************************** *********** */
/* outq: 10 Stellen Name der OUTQ, 10 Stellen Bibl. */
/* ************************************************** *********** */
outq = 'PRT01 *LIBL '
/* ************************************************** *********** */
/* Arbeitsdatei erstellen bzw. leermachen */
/* Satzlänge u. Umständen vergrößern */
/* ************************************************** *********** */
"CRTPF FILE("arbeitsdat") RCDLEN(200)"
"CLRPFM "arbeitsdat
/* ************************************************** *************** */
/* USERSPACE erstellen */
/* ************************************************** *************** */
attri = ' '
initz = ' '
spclen = '00000400'x
"CALL PGM(QUSCRTUS) PARM('SPLARC QTEMP '",
"&ATTRI &SPCLEN &INITZ *ALL 'Userspace für SPLARC1')"
select
when rc = 'CPF9870' then nop /* Userspace existiert schon */
when rc <> 0 then do /* Userspace nicht erstellt */
say 'USRSPC nicht erstellt.'
end
otherwise nop
end
/* ************************************************** *************** */
/* USERSPACE füllen */
/* ************************************************** *************** */
user = '*ALL '
form = '*ALL '
data = '*ALL '
"CALL PGM(QUSLSPL) PARM('SPLARC QTEMP '",
"'SPLF0100' &USER &OUTQ &FORM &DATA)"
if rc <> 0 then do /* Userspace nicht gefüllt. */
say 'USRSPC nicht gefüllt.'
end
/* ************************************************** *************** */
/* USERSPACE Initialisierungsinformationen empfangen */
/* ************************************************** *************** */
strpos = '0000007D'x /* Hier steht Anzahl Einträge im Userspace */
leng = '00000010'x /* gespeichert sind. */
"CALL PGM(QUSRTVUS) PARM('SPLARC QTEMP '",
"&STRPOS &LENG &DATEN)"
if rc <> 0 then do /* INIT-Infos nicht empfang. */
say 'USRSPC-Init nicht gelesen.'
end
/* ************************************************** *************** */
/* USERSPACE Einträge empfangen */
/* ************************************************** *************** */
strposd = c2d(substr(daten,1,4)) /* Startpos der Einträge */
strposd = strposd + 1
anzahl = c2d(substr(daten,9,4)) /* Anzahl der Einträge */
laenge = c2d(substr(daten,13,4)) /* Länge eines Eintrages */
leng = d2c(laenge,4)
daten = copies(' ',laenge)
do anzahl
strpos = d2c(strposd,4)
"CALL PGM(QUSRTVUS) PARM('SPLARC QTEMP '",
"&STRPOS &LENG &DATEN)"
if rc <> 0 then do /* Eintrag nicht empfangen */
say 'USRSPC-Eintrag nicht gelesen.'
end
/* ************************************************** *************** */
/* Spool-File Informationen empfangen */
/* ************************************************** *************** */
splinfo = copies(' ',220)
splilaenge = d2c(220,4)
splifmt = 'SPLA0100'
splijobn = '*INT '
jobid = substr(daten,51,16)
splid = substr(daten,67,16)
splispln = '*INT '
splisplnr = d2c(-1,4)
"CALL PGM(QUSRSPLA) PARM(&SPLINFO &SPLILAENGE",
"&SPLIFMT &SPLIJOBN &JOBID &SPLID &SPLISPLN &SPLISPLNR)"
if rc <> 0 then do /* Eintrag nicht empfangen */
say 'SPLF-Info nicht empfangen.'
end
spoolname = substr(splinfo,67,10)
jobname = substr(splinfo,41,10)
benutzer = substr(splinfo,51,10)
jobnummer = substr(splinfo,61,6)
spoolnr = c2d(substr(splinfo,77,4))
status = substr(splinfo,101,10)
/* ************************************************** *************** */
/* Spool-Datei in Datei kopieren */
/* ************************************************** *************** */
"CPYSPLF FILE(&SPOOLNAME) TOFILE("arbeitsdat")",
"JOB(&JOBNUMMER/&BENUTZER/&JOBNAME)",
"SPLNBR(&SPOOLNR) MBROPT(*ADD) CTLCHAR(*FCFC)"
if rc <> 0 then do
say 'SPLF nicht kopiert.'
end
/* ************************************************** *************** */
/* Position für nächsten Eintrag erhöhen */
/* ************************************************** *************** */
strposd = strposd + laenge
end
exit
/* ************************************************** *********** */
/* Name der Arbeitsdatei festlegen */
/* ************************************************** *********** */
arbeitsdat = "QTEMP/XXXXX"
/* ************************************************** *********** */
/* outq: 10 Stellen Name der OUTQ, 10 Stellen Bibl. */
/* ************************************************** *********** */
outq = 'PRT01 *LIBL '
/* ************************************************** *********** */
/* Arbeitsdatei erstellen bzw. leermachen */
/* Satzlänge u. Umständen vergrößern */
/* ************************************************** *********** */
"CRTPF FILE("arbeitsdat") RCDLEN(200)"
"CLRPFM "arbeitsdat
/* ************************************************** *************** */
/* USERSPACE erstellen */
/* ************************************************** *************** */
attri = ' '
initz = ' '
spclen = '00000400'x
"CALL PGM(QUSCRTUS) PARM('SPLARC QTEMP '",
"&ATTRI &SPCLEN &INITZ *ALL 'Userspace für SPLARC1')"
select
when rc = 'CPF9870' then nop /* Userspace existiert schon */
when rc <> 0 then do /* Userspace nicht erstellt */
say 'USRSPC nicht erstellt.'
end
otherwise nop
end
/* ************************************************** *************** */
/* USERSPACE füllen */
/* ************************************************** *************** */
user = '*ALL '
form = '*ALL '
data = '*ALL '
"CALL PGM(QUSLSPL) PARM('SPLARC QTEMP '",
"'SPLF0100' &USER &OUTQ &FORM &DATA)"
if rc <> 0 then do /* Userspace nicht gefüllt. */
say 'USRSPC nicht gefüllt.'
end
/* ************************************************** *************** */
/* USERSPACE Initialisierungsinformationen empfangen */
/* ************************************************** *************** */
strpos = '0000007D'x /* Hier steht Anzahl Einträge im Userspace */
leng = '00000010'x /* gespeichert sind. */
"CALL PGM(QUSRTVUS) PARM('SPLARC QTEMP '",
"&STRPOS &LENG &DATEN)"
if rc <> 0 then do /* INIT-Infos nicht empfang. */
say 'USRSPC-Init nicht gelesen.'
end
/* ************************************************** *************** */
/* USERSPACE Einträge empfangen */
/* ************************************************** *************** */
strposd = c2d(substr(daten,1,4)) /* Startpos der Einträge */
strposd = strposd + 1
anzahl = c2d(substr(daten,9,4)) /* Anzahl der Einträge */
laenge = c2d(substr(daten,13,4)) /* Länge eines Eintrages */
leng = d2c(laenge,4)
daten = copies(' ',laenge)
do anzahl
strpos = d2c(strposd,4)
"CALL PGM(QUSRTVUS) PARM('SPLARC QTEMP '",
"&STRPOS &LENG &DATEN)"
if rc <> 0 then do /* Eintrag nicht empfangen */
say 'USRSPC-Eintrag nicht gelesen.'
end
/* ************************************************** *************** */
/* Spool-File Informationen empfangen */
/* ************************************************** *************** */
splinfo = copies(' ',220)
splilaenge = d2c(220,4)
splifmt = 'SPLA0100'
splijobn = '*INT '
jobid = substr(daten,51,16)
splid = substr(daten,67,16)
splispln = '*INT '
splisplnr = d2c(-1,4)
"CALL PGM(QUSRSPLA) PARM(&SPLINFO &SPLILAENGE",
"&SPLIFMT &SPLIJOBN &JOBID &SPLID &SPLISPLN &SPLISPLNR)"
if rc <> 0 then do /* Eintrag nicht empfangen */
say 'SPLF-Info nicht empfangen.'
end
spoolname = substr(splinfo,67,10)
jobname = substr(splinfo,41,10)
benutzer = substr(splinfo,51,10)
jobnummer = substr(splinfo,61,6)
spoolnr = c2d(substr(splinfo,77,4))
status = substr(splinfo,101,10)
/* ************************************************** *************** */
/* Spool-Datei in Datei kopieren */
/* ************************************************** *************** */
"CPYSPLF FILE(&SPOOLNAME) TOFILE("arbeitsdat")",
"JOB(&JOBNUMMER/&BENUTZER/&JOBNAME)",
"SPLNBR(&SPOOLNR) MBROPT(*ADD) CTLCHAR(*FCFC)"
if rc <> 0 then do
say 'SPLF nicht kopiert.'
end
/* ************************************************** *************** */
/* Position für nächsten Eintrag erhöhen */
/* ************************************************** *************** */
strposd = strposd + laenge
end
exit