zOs/REXX/EXCPCALL

/* REXX ---------------------------------------------------------------
        alloziert dsn.db2.exec und die dsn.db2.* ispf libararies
        und macht ispf select excp
18.12.15 Walter benutzt libs dsn.db2.*
---------------------------------------------------------------------*/
parse arg aCmd, aAppl
c = 'select cmd('aCmd')'
if aAppl <> '' then
   c = c 'newAppl('aAppl') passlib'
call adrIsp 'control errors return'
call adrTso "ALTLIB ACT APPL(EXEC) DA('dsn.db2.exec')"
if adrIsp("LIBDEF ISPPLIB dataset ID('dsn.db2.panels') STACK" ,
           , 20) <> 0 then
    call adrIsp "LIBDEF ISPPLIB DATASET ID('dsn.db2.panel') STACK"
call adrIsp "select cmd(excp) NEWAPPL(FD49) PASSLIB"
call adrIsp "LIBDEF ISPPLIB"
call adrTSO "ALTLIB DEACT APPL(EXEC)"
exit

/*--- address ispf with error checking -------------------------------*/
adrTso:
parse arg ggCmd, ggRet
    address tso ggCmd
    if rc = 0 | rc = ggRet then
        return rc
    say 'rc='rc 'for address ispecec' ggCmd
    exit

/*--- address ispf with error checking -------------------------------*/
adrIsp:
parse arg ggCmd, ggRet
    zerrLm = ''
    address ispexec ggCmd
    if rc = 0 | rc = ggRet then
        return rc
    say 'rc='rc zerrLm 'for address ispecec' ggCmd
    exit