HP OpenVMS Systemsask the wizard |
The Question is:
F$GETQUI and list of submitted files
The batch job can contain more then one file.
The syntax is SUBMIT filespec[,...]
SHOW ENTRY and SHOW QUEUE display all submitted files.
The lexical F$GETQUI with function DISPLAY_FILE and item FILE_SPECIFICATION
does not give more than the first file specification
Is it possible to obtain the full file list with a help of F$GETQU?
Let the following exuction describes the question.
Device name and directory have been intentionally removed from file
specifications.
$ @tmp
$ type 'f$env ("PROCEDURE")'
$ create file_1.com,file_2
$ submit file_1,file_2 /name=wizard_q /hold
$ pipe sho entry '$ENTRY' /full | sear sys$input file:
$ temp=f$getqui("CANCEL_OPERATION")
$nxt_q:
$ qname=f$getqui("DISPLAY_QUEUE","QUEUE_NAME","*")
$ if qname .nes. ""
$ then
$nxt_j:
$ jname=f$getqui("DISPLAY_JOB","JOB_NAME",,"ALL_JOBS")
$ if jname .eqs. "" then goto nxt_q
$ if jname .nes. "WIZARD_Q" then goto nxt_j
$ fspec=f$getqui("DISPLAY_FILE","FILE_SPECIFICATION",,"FREEZE_CONTEXT")
$ write sys$output "F$GETQUI says: ",jname," ",fspec
$ goto nxt_j
$ endif
$ delete /entry='$ENTRY'
$ delete file_1.com;,file_2;
$ exit
Job WIZARD_Q (queue SYS$BATCH, entry 736) holding
File: FILE_1.COM;1
File: FILE_2.COM;1
F$GETQUI says: WIZARD_Q FILE_1.COM;1
The Answer is :
Existing discussions of the f$getqui lexical include the following
topics: (813), (1240), (2159), (3951), (4546), (4568), (4903), (5188)
(5471), (5567), (5651), (5793), (5982), (6315), (6877), (6944), etc.
As for the question at hand, try this:
$ create sys$scratch:file_1.tmp,sys$scratch:file_2.tmp
$ submit sys$scratch:file_1.tmp,file_2 /name=wizard_q /hold
$ pipe sho entry '$ENTRY' /full | search sys$pipe file:
$ temp=f$getqui("CANCEL_OPERATION")
$nxt_q:
$ qname=f$getqui("DISPLAY_QUEUE","QUEUE_NAME","*")
$ if qname .eqs. "" then goto done
$nxt_j:
$ jname=f$getqui("DISPLAY_JOB","JOB_NAME",,"ALL_JOBS")
$ if jname .eqs. "" then goto nxt_q
$ if jname .nes. "WIZARD_Q" then goto nxt_j
$ write sys$output "F$GETQUI job name: ",jname
$nxt_f:
$ fname =f$getqui("DISPLAY_FILE","FILE_SPECIFICATION")
$ if fname .eqs. "" then goto nxt_j
$ write sys$output "F$GETQUI filename: ",fname
$ goto nxt_f
$done:
$ delete /entry='$ENTRY'
$ delete sys$scratch:file_1.tmp;,file_2.tmp;
$ exit
|