zOs/REXX/EJES
/* copy eJes begin ***************************************************/
eJesJobExtDD: procedure expose m.
parse arg jMask, dd
call eJesInit jMask
call eJesExec '* st', job_
say 'jMask='jMask':' job_lines 'jobs'
do jx=1 to job_lines
call eJesExec "0 locate" jx, job_
cc = eJesExec("* :s", ds_, 4 8)
if cc <> 0 then do
if ds_msgShort = 'Job no longer found' then
say 'job' job_jobName.jx 'no longer found'
else
call eJesErr ds_, ':s' job_jobName.jx, cc
iterate
end
say 'job' jx job_jobName'('job_jobId'):' ds_lines 'datasets'
cc = eJesExec("0 f" dd" 3 10", ds_, 4 8)
if cc <> 0 | ds_tcdata.ds__ddName <> dd then do
if ds_msgShort = 'String not found' then
say 'dd' dd 'not found' ds_tcdata.ds__ddName
else
call eJesErr ds_, 'dd' ds_tcdata.ds__ddName,
'<> searched' dd, cc
end
else do
say 'dd='dd 'step='ds_tcdata.ds__sName ,
'recs='ds_tcdata.ds__records
call eJesExec "0 :e", ex_
say strip(ex_msg.0 ex_msg.1) '==> dd eJesExt'
end
call eJesExec "0 end", ds_
end
call eJesTerm
return
endProcedure
eJesExec:
parse arg ggS1 ggStmt, ggPrf, ggRet
if ggPrf == '' then
ggCC =eJesRexx("execApi" ggS1" '"ggStmt"'")
else
ggCC =eJesRexx("execApi" ggS1" '"ggStmt"' (prefix" ggPrf)
if ggCC <> 0 & wordPos(ggCC, ggRet) < 1 then
call eJesErr ggPrf, ggStmt, ggCC
return ggCC
endProcedure eJesExec
eJesInit: procedure expose m.
parse arg ggPref
ggCC =eJesRexx('initApi')
if ggCC <> 0 & eJes_MsgShort <> 'SAF security disabled' then
call eJesErr eJes_, 'initApi', ggCC
call eJesExec "0 pReset"
call eJesExec "0 owner=" /* sonst gibts nur meine */
call eJesExec "0 maskChar *%" /* default ist space */
if ggPref \== '' then
call eJesExec "0 jName="ggPref
return
endProcedure eJesInit
eJesTerm: procedure expose m.
cc =eJesRexx('termApi')
if cc <> 0 then
call err 'termApi CC='cc eJes_msgShort
return
endProcedur eJesTerm
eJesErr:
parse arg ggPrf, ggMsg, ggEE
if ggPrf == '' then
ggPrf = 'EJES_'
call eJesScreen ggPrf, 'eJesErr CC='ggEE ggMsg
ggMsg = strip(ggMsg 'cc='ggEE ,
'msg.0='value(ggPrf'Msg.0') 'prefix='ggPrf) ,
|| '\n 'strip(value(ggPrf'MsgShort'))
if datatype(value(ggPrf'Msg.0'), 'n') then
do ggX=1 to value(ggPrf'Msg.0')
ggMsg = ggMsg'\n 'strip(value(ggPrf'Msg.ggX'))
end
call eJesTerm
call err 'eJes' ggMsg
endProcedure eJesErr
eJesMsg:
parse arg ggPrf, ggMsg
say strip(ggMsg value(ggPrf'MsgShort'),
'msg.0='value(ggPrf'Msg.0') 'prefix='ggPrf)
if datatype(value(ggPrf'Msg.0'), 'n') then
do ggX=1 to value(ggPrf'Msg.0')
say 'msg.'ggX'='value(ggPrf'Msg.ggX')
end
return
endProcedure eJesMsg
eJesScreen:
parse arg ggPrf, ggMsg
call eJesMsg ggPrf, ggMsg
say left('eJes screen fun='value(ggPrf'FunName') ,
value(ggPrf'FunType') 'Image.0='value(ggPrf'scrImage.0') ,
, 78, '-')
if datatype(value(ggPrf'scrImage.0'), 'n') then
do ggX=1 to value(ggPrf'scrImage.0')
if value(ggPrf'scrImage.ggX') <> '' then
say strip(value(ggPrf'scrImage.ggX'), 't')
end
return
endProcedure eJesScreen
/* copy eJes end ***************************************************/