*** Start Job, falls als CMD aufgerufen *** /* REXX Nicht löschen, wird von Menupunkt P benötigt. */ SUB "'N#C015.TESTLIB.CNTL(PACKAN)'" EXIT *** JCL für die Exec "PACKAN" *** //N#C015PA JOB (S04P91T),'HAAS,NG/E/DM-AMC',CLASS=T,MSGCLASS=Z, // NOTIFY=N#C015,TIME=(0015,00) //*--------------------------------------------------------------------- //STEP01 EXEC PGM=IKJEFT01,DYNAMNBR=30,REGION=6M //* //SYSPRINT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSEXEC DD DISP=SHR,DSN=N#C0.TSOCLIB // DD DISP=SHR,DSN=N#C015.TSOCLIB.CLIST //SYSTSIN DD * %PACKAN *** Exec "PACKAN" *** /* REXX Version mit TSO- und ISPF-Services */ /* Compiled 4 Dec 2001, 09:09:18, N#C015 ---------------------------- */ /* Compiled 12 Nov 1999, 11:46:40, N#C015 --------------------------- */ /* Init --------------------------------------------------------------*/ TRUE = 1 FALSE = 0 /* LISTC -------------------------------------------------------------*/ dummy = OUTTRAP(dsn_line.) "LISTC" dummy = OUTTRAP("OFF") /* Zusätzliche Datasets hier einfügen */ max = dsn_line.0 max = max + 1; dsn_line.max = 'N#C0.PAYROLL.CPY' max = max + 1; dsn_line.max = 'N#C0.PAYROLL.CTL' max = max + 1; dsn_line.max = 'N#C0.PAYROLL.PRC' max = max + 1; dsn_line.max = 'N#C0.REXX.FUNC' max = max + 1; dsn_line.max = 'N#C0.REXX.PANELS' max = max + 1; dsn_line.max = 'N#C0.TELEFON.LISTE' max = max + 1; dsn_line.max = 'T.C.LINKLIB.EXPEDIT.PAYROLL' /* Schleife ----------------------------------------------------------*/ DO i = 2 TO max /* Zeile 1 ist Catalog-Zeile (überlesen) */ CALL PackAn dsn_line.i END EXIT /* =.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=. */ PackAn: PROCEDURE EXPOSE TRUE FALSE PARSE UPPER ARG dsn IF SYSDSN("'"dsn"'") = 'OK' THEN DO dummy = LISTDSI("'"dsn"'") IF sysdsorg = 'PO' THEN DO member = '' /* LM-Routinen verwenden zum Ermitteln der Member (ISPF) */ /* "ISPEXEC LMINIT DATAID(datid) DATASET('"dsn"')" */ /* "ISPEXEC LMOPEN DATAID("datid") OPTION(INPUT)" */ /* "ISPEXEC LMMLIST DATAID("datid") OPTION(LIST) MEMBER(member)"*/ /* IF rc > 0 THEN member = 'NO MEMBERS' */ /* LISTDS verwenden zum Ermitteln der Member (kein ISPF) */ dummy = OUTTRAP('members.') "LISTDS '"dsn"' MEMBER" dummy = OUTTRAP('OFF') member = FirstMember() /* DSN(MEM) zusammenbauen */ IF member /= 'NO MEMBERS' THEN DO member = STRIP(member) dsn_mem = dsn || "("member")" SAY ">"dsn_mem"<" /* Erste Zeile lesen "anpacken" */ "ALLOC DD(dd) DSN('"dsn_mem"') SHR REUSE" "EXECIO 1 DISKR dd (FINIS STEM temp.)" "FREE DD(dd)" END /* LM-Routinen schließen */ /* "ISPEXEC LMCLOSE DATAID("datid")" */ /* "ISPEXEC LMFREE DATAID("datid")" */ END ELSE DO SAY ">"dsn"<" "ALLOC DD(dd) DSN('"dsn"') SHR REUSE" "EXECIO 1 DISKR dd (FINIS STEM temp.)" "FREE DD(dd)" END END RETURN FirstMember: PROCEDURE EXPOSE members. TRUE FALSE finished = FALSE retvar = 'NO MEMBERS' DO i = 1 TO members.0 UNTIL finished IF STRIP(members.i) = '--MEMBERS--' THEN DO i1 = i + 1 finished = TRUE IF i1 > members.0 THEN NOP ELSE retvar = members.i1 END END RETURN retvar