Tim,
I have a REXX exec I use to issue operator commands using the ISFSLASH keyword
and writes the output to a temp file. I think I may have stole it then
enhanced it for my use either from IBM, or someone on this list, but the
processing of the ISFULOG array is somewhat more complicated than you have
listed. I am posting the entire exec for you to play with, along with the JCL
I use to execute. You can have as many commands as you want in SYSIN.
//VARYOFF EXEC PGM=IKJEFT1B,PARM='%OPERCMDB'
//SYSEXEC DD DSN=your.sysexec.dataset,DISP=SHR
//SYSTSIN DD DUMMY
//SYSTSPRT DD DUMMY
//SYSIN DD *,SYMBOLS=JCLONLY
RO *ALL,V &TARGUCB.,OFFLINE
/*
/* REXX */
/* this REXX exec will issue operator commands via SDSF REXX interface
security is based on the person using the command. this exec is to be
used for batch only */
'EXECIO * DISKR SYSIN (STEM mycmd. FINIS'
if rc > 0 then do
say 'Return code from OPEN was' rc
say 'Aborting...'
exit
end
/* Allocate results output file */
ddnm = 'DD'||random(1,99999)
Address TSO "Alloc Fi("ddnm") SYSOUT"
/* Process all input commands */
Do c=1 to mycmd.0
oper_command.0 = 1
oper_command.1 = mycmd.c
Call Main_process
End
/* Free results output file */
Address TSO "Free Fi("ddnm")"
Return 0
Main_process:
/* process all data from SYSIN */
rc=isfcalls('ON')
Address SDSF ISFSLASH "("oper_command.") (WAIT)"
l_cnt = 0
If datatype(isfulog.0) = "NUM" Then Do
If isfulog.0 <> 0 Then Do
l_cnt = l_cnt + 1
l.l_cnt = substr(isfulog.1,1,43)
Do ix=1 to isfulog.0
ll = length(isfulog.ix)
if ll <> 0 Then
qdata = substr(isfulog.ix,44,ll-43)
else
qdata = isfulog.ix
l_cnt = l_cnt + 1
l.l_cnt = qdata
End
End
Else Do
l_cnt = l_cnt + 1
l.l_cnt = "No command response available"
End
End
Else Do
l_cnt = l_cnt + 1
l.l_cnt = "Error in command reponse"
End
rc=isfcalls("OFF")
If (l_cnt = 0) Then Do
l_cnt = l_cnt + 1
l.l_cnt = ' /* no data produced */'
End
l.0 = l_cnt
Address MVS "ExecIO "l_cnt" DiskW "ddnm" (Finis Stem l.)"
l_cnt = 0
Return
_________________________________________________________________
Dave Jousma
Manager Mainframe Engineering, Assistant Vice President
[email protected]
1830 East Paris, Grand Rapids, MIĀ 49546 MD RSCB2H
p 616.653.8429
f 616.653.2717
-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf
Of Tim Brown
Sent: Monday, January 30, 2017 10:58 AM
To: [email protected]
Subject: sdsf in rexx
Using sdsf in rexx with command $DO JOBQ,READY,DEST
COMMAND = '$DO JOBQ,READY,DEST'
IF ISFCALLS('ON') <> 0 THEN EXIT 99
ADDRESS SDSF "ISFEXEC '/"COMMAND"' (WAIT"
DO S1 = 1 TO ISFULOG.0
SAY ISFULOG.S1
END
Its supposed to return the $HASP686 messages in ISFULOG array, which are same
as when issued at console Sometimes it does and other times it doesn't return
anything even when there are jobs available
It just returns these 2 and not the ones with $HASP686
"CPAC 2017030 10:45:11.13 ISF031I CONSOLE DPP ACTIVATED"
"CPAC 2017030 10:45:11.13 -$DO JOBQ,READY,DEST"
$DO JOBQ,READY,DEST
$HASP686 OUTPUT(FSP96A12) ROUTECDE=LLW001
$HASP686 OUTPUT(FSP96A12) ROUTECDE=LW001
$HASP686 OUTPUT(CAP81T43) ROUTECDE=LOCAL
$HASP686 OUTPUT(CAP81T44) ROUTECDE=LOCAL
$HASP686 OUTPUT(XTBPRT) ROUTECDE=LX509
Tim Brown
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions, send email to
[email protected] with the message: INFO IBM-MAIN
This e-mail transmission contains information that is confidential and may be
privileged. It is intended only for the addressee(s) named above. If you
receive this e-mail in error, please do not read, copy or disseminate it in any
manner. If you are not the intended recipient, any disclosure, copying,
distribution or use of the contents of this information is prohibited. Please
reply to the message immediately by informing the sender that the message was
misdirected. After replying, please erase it from your computer system. Your
assistance in correcting this error is appreciated.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN