/* REXX ***************************************************************/ /* -------------------------------------------------------------------*/ /* Function: Deletes (!!!) the member beeining edited. Can be used */ /* only in members of PDS, not in seq. datasets. */ /* Syntax: KILL [member] */ /* Parameter: member = Membername of an other member of ths same PDS */ /* Author: Norbert Haas */ /* Beispiele: KILL */ /* KILL x4lodi */ /* */ /* Version Autor Datum Anlass */ /* -------- ------------- --------- --------------------------------- */ /* V02.01 N.Haas 11.06.03 english version */ /* V02.00 N.Haas 15.11.00 mit Parameter member */ /* V01.03 N.Haas 14.06.96 DSN wird angezeigt */ /* V01.02 N.Haas 21.12.95 NOENQ eingebaut bei LMMDEL */ /* V01.01 N.Haas 09.12.92 Fehler behoben, LMCLOSE/FREE nach */ /* RC bei LMDEL notwendig */ /* V01.00 N.Haas 30.06.92 Erstellung (Ursprung John Paryman)*/ /**********************************************************************/ "ISREDIT MACRO (parm)" "ISPEXEC CONTROL ERRORS RETURN" /* translate parms to upper case */ parm = TRANSLATE(parm) /* parameter ? */ IF WORDS(parm) > 1 THEN DO zedsmsg = 'WRONG PARAMETER' zedlmsg = 'MACRO KILL DOES NOT SUPPORT MORE THAN ONE PARAMETER.' "ISPEXEC SETMSG MSG(ISRZ001)" EXIT -8 END /* dsn and membername */ "ISREDIT (dsn) = DATASET" IF parm = '' THEN DO "ISREDIT (mem) = MEMBER" dsnmem = "'"dsn"("mem")'" END ELSE DO mem = parm dsnmem = "'"dsn"("mem")'" tmp = SYSDSN(dsnmem) IF tmp /= 'OK' THEN DO zedsmsg = '' zedlmsg = tmp "ISPEXEC SETMSG MSG(ISRZ001)" EXIT -8 END ELSE DO tmp = OUTTRAP('dummy.') "DELETE" dsnmem lmrc = rc tmp = OUTTRAP('OFF') zedsmsg = 'MEMBER' mem 'KILLED' zedlmsg = 'MEMBER' mem 'HAS BEEN REMOVED FROM DATASET' dsn'.' SIGNAL Ente END END /* Dataset sequential ? */ tmp = "'" || dsn || "'" dmy = LISTDSI(tmp) IF SUBSTR(sysdsorg,1,2) /= 'PO' THEN DO zedsmsg = 'DATASET NOT PARTITIONED' zedlmsg = 'MACRO KILL CAN ONLY BE USED ON PARTITIONED DATASET.' "ISPEXEC SETMSG MSG(ISRZ001)" EXIT -8 END /* LMINIT-Routine --------------------------------------------------- */ "ISPEXEC LMINIT DATAID(dsid) DATASET('"dsn"') ENQ(SHRW)" IF rc /= 0 THEN DO zedsmsg = 'LMINIT FAILED WITH RC' rc zedlmsg = 'MACRO KILL HAS GOT AN RC OF' rc 'USING LMINIT.' "ISPEXEC SETMSG MSG(ISRZ001)" EXIT -8 END /* LMOPEN-Routine --------------------------------------------------- */ "ISPEXEC LMOPEN DATAID("dsid") OPTION(OUTPUT)" IF rc /= 0 THEN DO zedsmsg = 'LMOPEN FAILED WITH RC' rc zedlmsg = 'MACRO KILL HAS GOT AN RC OF' rc 'USING LMOPEN.' "ISPEXEC SETMSG MSG(ISRZ001)" EXIT -8 END /* LMMDEL-Routine --------------------------------------------------- */ "ISPEXEC LMMDEL DATAID("dsid") MEMBER(" mem ") NOENQ" lmrc = rc IF lmrc /= 0 THEN DO zedsmsg = 'MEMBER' mem 'CANCELED' zedlmsg = 'MEMBER' mem 'HAD NEVER NEVER NEVER BEEN SAVED.' END ELSE DO zedsmsg = 'MEMBER' mem 'KILLED' zedlmsg = 'MEMBER' mem 'HAS BEEN REMOVED FROM DATASET' tmp'.' END /* LMCLOSE / LMFREE Routine if OK */ "ISPEXEC LMCLOSE DATAID("dsid")" "ISPEXEC LMFREE DATAID("dsid")" /* CANCEL it */ "ISREDIT CANCEL" /* Positive Message */ Ente: "ISPEXEC SETMSG MSG(ISRZ000)" /* this is it */ EXIT