Hi everyone!
Mike Hornsby reminds us:
> PRINTSPF on the input spoolfile (requires SM) to copy or view
> the contents of the streamed job. To restream it you will need
> to clean up the lines with editor and re-add the job card.
Here's my first stab at a script that's entirely CI-based
(on 5.5 pp7). It doesn't allow for other than the default
priority and # copies on the OUTCLASS parameter, it doesn't
handle HIPRI jobs (maybe we can get these from JOBINFO?),
and there's hardly any error checking - but it's a start!
P.S. If you improve/debug/modify/etc. this file, please let
me know - I've been getting ready to update the Command
Files page, and I'll include it there!
Enjoy!
USER DEFINED COMMAND FILE: RESTREAM.XEQ.SYS
parm job_parm = "0", AT = " ", DAY = " ", DATE = " ", IN = " "
parm entry_point = "main"
# restream.xeq - restream any job
# Tim Ericson - with inspriation from Mike Hornsby
if "!entry_point" = "main"
if "!job_parm" = "0"
echo
echo !hpfile - RE-STREAM a specified job number
echo (EXECuting, SUSPended, WAITing, or SCHEDuled!) for
echo a different time, day, date, or # days/hours/minutes.
echo
echo See STREAM command for description of parameters.
echo Note! Requires SM capability.
echo
return
endif
setvar res_job, "!job_parm"
# make the job parameter numeric
if lft ( "!res_job", 1 ) = "#"
setvar res_job, rht ( "!res_job", -2 )
endif
if lft ( "!res_job", 1 ) = "J" or lft ( "!res_job", 1 ) = "j"
setvar res_job, rht ( "!res_job", -2 )
endif
# re-create the JOB statement
showjob #J!res_job > showjobf
!hpfile entry_point = showjob < showjobf
# finish re-creating the original stream file
printspf I!res_job.IN.HPSPOOL > printsp1
!hpfile entry_point = printspf < printsp1
# build the STREAM parameter string
setvar res_parms, " "
if "!AT" <> " "
setvar res_parms, res_parms + "; at=" + "!AT"
endif
if "!DAY" <> " "
setvar res_parms, res_parms + "; day=" + "!DAY"
endif
if "!DATE" <> " "
setvar res_parms, res_parms + "; date=" + "!DATE"
endif
if "!IN" <> " "
setvar res_parms, res_parms + "; in=" + "!IN"
endif
stream newfile !res_parms
# clean up
abortjob #J!res_job
deletevar res_@
purge showjobf,temp
purge printsp1,temp
purge newfile,temp
elseif "!entry_point" = "showjob"
# brute force read 7 records
input res_rec
input res_rec
input res_rec
input res_rec
input res_rec
input res_rec
input res_rec
# re-create the JOB statement
setvar res_new_rec, &
"!" + "JOB " + str ( "!res_rec", 52, 26 ) + &
";OUTCLASS=" + str ( "!res_rec", 25, 8 ) + &
";INPRI=" + str ( "!res_rec", 17, 2 )
echo ![res_new_rec] > newfile
elseif "!entry_point" = "printspf"
# finish re-creating the original stream file
input res_rec
setvar res_eof, finfo ( "printsp1", "eof" )
setvar res_loop, 1
while res_loop < res_eof
input res_rec
setvar res_new_rec, "!" + rht ( res_rec, -34 )
echo ![res_new_rec] >> newfile
setvar res_loop, res_loop + 1
endwhile
endif
+-------------------------------------------------------------------+
My mind is my own, as are my ideas and opinions.
My heart, body, and soul, however, all belong to others. Tim.
+-------------------------------------------------------------------+
Tim Ericson tericson DenKor Dental Management Corp.
Sr. Systems Analyst at denkor 503-526-4440 (my direct number)
(& Systems Manager) dot com http://www.denkor.com
Programming HP3000s since 1983! Quality dental care since 1970!
+-------------------------------------------------------------------+
UDCs and Command Files: http://www.denkor.com/hp3000/command_files
+-------------------------------------------------------------------+
|