function long get_que_info !labels !constants %include "$jbcmsgdef" %from %library "sys$library:basic$starlet.tlb" %include "$quidef" %from %library "sys$library:basic$starlet.tlb" %include "$ssdef" %from %library "sys$library:basic$starlet.tlb" !types record itmlst word buflen, itmcod long bufadr, retadr end record record iosblk long io_status, reserved end record !variables declare itmlst joblist(21%), filelist(3%) declare iosblk iosb declare long nullarg, sys_status, search_flags, & entry_number, priority, & job_name_len, username_len, & file_spec_len, job_status, job_offset, & file_offset, status_j, status_f, & job_size, form_name_len, jflags, & logspeclen, p_1len, p_2len, p_3len, & p_4len, p_5len, p_6len, p_7len, p_8len, & blks_done, jcopies, jcopies_done, & msg_dpid, msg_status, aftertime(2%), & subtime(2%) declare string msg %include "que_struct.bas" !procedures !functions external long function sys$getquiw, & window_message( string, long, long ) batch_que = (queue_flags and qui$m_queue_batch) joblist(1%)::buflen = 4% joblist(1%)::itmcod = qui$_search_flags joblist(1%)::bufadr = loc(search_flags) joblist(1%)::retadr = 0% joblist(2%)::buflen = 4% joblist(2%)::itmcod = qui$_entry_number joblist(2%)::bufadr = loc(entry_number) joblist(2%)::retadr = 0% joblist(3%)::buflen = 39% joblist(3%)::itmcod = qui$_job_name joblist(3%)::bufadr = loc(job_name) joblist(3%)::retadr = loc(job_name_len) joblist(4%)::buflen = 4% joblist(4%)::itmcod = qui$_priority joblist(4%)::bufadr = loc(priority) joblist(4%)::retadr = 0% joblist(5%)::buflen = 12% joblist(5%)::itmcod = qui$_username joblist(5%)::bufadr = loc(username) joblist(5%)::retadr = loc(username_len) joblist(6%)::buflen = 4% joblist(6%)::itmcod = qui$_job_status joblist(6%)::bufadr = loc(job_status) joblist(6%)::retadr = 0% joblist(7%)::buflen = 4% joblist(7%)::itmcod = qui$_job_size joblist(7%)::bufadr = loc(job_size) joblist(7%)::retadr = 0% joblist(8%)::buflen = 31% joblist(8%)::itmcod = qui$_form_name joblist(8%)::bufadr = loc(form_name) joblist(8%)::retadr = loc(form_name_len) joblist(9%)::buflen = 8% joblist(9%)::itmcod = qui$_after_time joblist(9%)::bufadr = loc(aftertime(1%)) joblist(9%)::retadr = 0% joblist(10%)::buflen = 8% joblist(10%)::itmcod = qui$_submission_time joblist(10%)::bufadr = loc(subtime(1%)) joblist(10%)::retadr = 0% joblist(11%)::buflen = 4% joblist(11%)::itmcod = qui$_job_flags joblist(11%)::bufadr = loc(jflags) joblist(11%)::retadr = 0% joblist(12%)::buflen = 0% joblist(12%)::itmcod = 0% select batch_que case <> 0% joblist(12%)::buflen = 255% joblist(12%)::itmcod = qui$_log_specification joblist(12%)::bufadr = loc(logspec) joblist(12%)::retadr = loc(logspeclen) joblist(13%)::buflen = 255% joblist(13%)::itmcod = qui$_parameter_1 joblist(13%)::bufadr = loc(p_1) joblist(13%)::retadr = loc(p_1len) joblist(14%)::buflen = 255% joblist(14%)::itmcod = qui$_parameter_2 joblist(14%)::bufadr = loc(p_2) joblist(14%)::retadr = loc(p_2len) joblist(15%)::buflen = 255% joblist(15%)::itmcod = qui$_parameter_3 joblist(15%)::bufadr = loc(p_3) joblist(15%)::retadr = loc(p_3len) joblist(16%)::buflen = 255% joblist(16%)::itmcod = qui$_parameter_4 joblist(16%)::bufadr = loc(p_4) joblist(16%)::retadr = loc(p_4len) joblist(17%)::buflen = 255% joblist(17%)::itmcod = qui$_parameter_5 joblist(17%)::bufadr = loc(p_5) joblist(17%)::retadr = loc(p_5len) joblist(18%)::buflen = 255% joblist(18%)::itmcod = qui$_parameter_6 joblist(18%)::bufadr = loc(p_6) joblist(18%)::retadr = loc(p_6len) joblist(19%)::buflen = 255% joblist(19%)::itmcod = qui$_parameter_7 joblist(19%)::bufadr = loc(p_7) joblist(19%)::retadr = loc(p_7len) joblist(20%)::buflen = 255% joblist(20%)::itmcod = qui$_parameter_8 joblist(20%)::bufadr = loc(p_8) joblist(20%)::retadr = loc(p_8len) joblist(21%)::bufadr = 0% joblist(21%)::retadr = 0% case = 0% joblist(12%)::buflen = 4% joblist(12%)::itmcod = qui$_completed_blocks joblist(12%)::bufadr = loc(blks_done) joblist(12%)::retadr = 0% joblist(13%)::buflen = 4% joblist(13%)::itmcod = qui$_job_copies joblist(13%)::bufadr = loc(jcopies) joblist(13%)::retadr = 0% joblist(14%)::buflen = 4% joblist(14%)::itmcod = qui$_job_copies_done joblist(14%)::bufadr = loc(jcopies_done) joblist(14%)::retadr = 0% joblist(15%)::bufadr = 0% joblist(15%)::retadr = 0% end select filelist(1%)::buflen = 4% filelist(1%)::itmcod = qui$_search_flags filelist(1%)::bufadr = loc(search_flags) filelist(1%)::retadr = 0% filelist(2%)::buflen = 255% filelist(2%)::itmcod = qui$_file_specification filelist(2%)::bufadr = loc(file_spec) filelist(2%)::retadr = loc(file_spec_len) filelist(3%)::buflen = 0% filelist(3%)::itmcod = 0% search_flags = (queue_type or qui$m_search_all_jobs or qui$m_search_wildcard) job_offset = 0% status_j = jbc$_normal until status_j <> jbc$_normal ! Get job info and set up job context for subsequent calls. sys_status = sys$getquiw( , & qui$_display_job by value, & nullarg by value, & joblist(1%) by ref, & iosb by ref,, ) if (sys_status and 1%) = 0% then call lib$signal( sys_status by value ) end if status_j = iosb::io_status if status_j = jbc$_normal then ! Get file info. if job_offset >= maxjobs then msg = "%No more jobs can be processed for the queue " + & queue_name + ". Edit and recompile this program " + & "allowing more job space by increasing the MAXJOBS " + & "constant found in the include file." msg_status = window_message( msg, -1%, msg_dpid ) if (msg_status and 1%) = 0% then call lib$signal( msg_status by value ) end if status_j = jbc$_nomorejob iterate end if job_offset = job_offset + 1% job_name(job_offset) = job_name username(job_offset) = username entry_number(job_offset) = entry_number job_status(job_offset) = job_status ! if (job_status(job_offset) and qui$m_job_holding) = 0% then ! selected(job_offset) = -1% ! end if job_size(job_offset) = job_size priority(job_offset) = priority formname(job_offset) = form_name after_time(job_offset, 1%) = aftertime(1%) after_time(job_offset, 2%) = aftertime(2%) sub_time(job_offset, 1%) = subtime(1%) sub_time(job_offset, 2%) = subtime(2%) job_flags(job_offset) = jflags select batch_que case <> 0% log_spec(job_offset) = mid(logspec, 1%, logspeclen) log_speclen(job_offset) = logspeclen p1(job_offset) = mid(p_1, 1%, p_1len) p1len(job_offset) = p_1len p2(job_offset) = mid(p_2, 1%, p_2len) p2len(job_offset) = p_2len p3(job_offset) = mid(p_3, 1%, p_3len) p3len(job_offset) = p_3len p4(job_offset) = mid(p_4, 1%, p_4len) p4len(job_offset) = p_4len p5(job_offset) = mid(p_5, 1%, p_5len) p5len(job_offset) = p_5len p6(job_offset) = mid(p_6, 1%, p_6len) p6len(job_offset) = p_6len p7(job_offset) = mid(p_7, 1%, p_7len) p7len(job_offset) = p_7len p8(job_offset) = mid(p_8, 1%, p_8len) p8len(job_offset) = p_8len case = 0% blocks_done(job_offset) = blks_done job_copies(job_offset) = jcopies job_copies_done(job_offset) = jcopies_done end select file_offset = 0% status_f = jbc$_normal until status_f <> jbc$_normal sys_status = sys$getquiw( , & qui$_display_file by value, & nullarg by value, & filelist(1%) by ref, & iosb by ref,,) if (sys_status and 1%) = 0% then call lib$signal( sys_status by value ) end if status_f = iosb::io_status if status_f = jbc$_normal then if file_offset >= maxfiles then msg = "%No more files for entry number " + & num1$(entry_number) + " can be processed" + & ". Edit and recompile this program allowing " + & "more file space by increasing the MAXFILES " + & "constant in the include file." msg_status = window_message( msg, -1%, msg_dpid ) if (msg_status and 1%) = 0% then call lib$signal( msg_status by value ) end if status_f = jbc$_nomorefile iterate end if file_offset = file_offset + 1% file_spec(job_offset,file_offset) = file_spec end if next ! display file num_files(job_offset) = file_offset end if next ! display job num_jobs = job_offset get_que_info = sys_status end function