VistA-IHS-VA_UTILITIES-XB/XBDBQDOC.m

84 lines
2.2 KiB
Mathematica

XBDBQDOC ; IHS/ADC/GTH - DOUBLE QUEUING SHELL HANDLER DOCUMENTATION ; [ 02/07/97 3:02 PM ]
;;4.0;XB;;Jul 20, 2009;Build 2
;
;----------------------
;NOTES FOR PROGRAMMERS|
;----------------------
;
; %ZIS with "PQM" is called by XBDBQUE if '$D(XBIOP).
;
; The user will be asked to queue if queuing has not been
; selected.
;
; IO variables as necessary are automatically stored.
;
; XBxx variables are killed after loading into an XB array.
;
; XBDBQUE can be nested.
;
; The compute and print phases can call XBDBQUE individually
; (XBIOP is required).
;
; The appropriate %ZTSK node is killed.
;
;EX:
; S XBRC="C^AGTEST",XBRP="P^AGTEST",XBRX="END^AGTEST",XBNS="AG"
; D ^XBDBQUE ;handles foreground and tasking
; Q
;
; VARIABLES NEEDED FROM CALLING PROGRAM
;
;MANDATORY
; EITHER XBRC-Compute Routine or XBRP-Print Routine.
;
;OPTIONAL
; XBRC-Compute Routine.
; XBRP-Print Routine.
; XBRX-Exit Routine that cleans variables (HIGHLY SUGGESTED).
; XBNS-name space of variables to auto load in
; ZTSAVE("NS*")=""
; ="DG;AUPN;PS;..." ; (will add '*'if missing).
; XBNS("xxx")="" - ZTSAVE variable arrays where xxx is as
; described for ZTSAVE("xxxx")="".
; XBFQ=1 Force Queing.
; XBDTH=FM date time of computing/printing.
; XBIOP=pre-selected printer device with constructed with
; ION ; IOST ; IOSL ; IOM
; (mandatory if the calling routine is a queued routine).
; XBPAR= %ZIS("IOPAR") values for host file with XBIOP if
; needed.
;
TEST ;
; TESTING CODE the following are KISS (keep it supper simple) test
; of double queing code including nesting.
Q
;--------------------------------------------------------------------
TEST1 ; test of stacking a second call to XBDBQUE in the printing routine.
S SD=1,DG=2
S XBNS="SD;DG;AG;"
S XBRP="PA^XBDBQDOC"
D ^XBDBQUE
KILL DG,JKL,SD
Q
PA ;
W !,"GOT HERE ON ONE",!
X "ZW"
S IOP=XB("IOP"),XBRP="PB^XBDBQDOC",XBNS("JKL")=""
F I=1:1:10 S JKL(I)=I
S XBIOP=XB("IOP")
D ^XBDBQUE
Q
PB ;
W !,"GOT HERE ON TWO",!
X "ZW"
Q
TEST2 ; TEST FOR COMPUTING ONLY
D DT^DICRW
S XBRC="RC^XBDBQDOC"
F XBI=1:1:20 KILL ^XBDBT(XBI)
W !,"CREATES ^XBDBT(",!
D ^XBDBQUE
Q
RC S %H=$H D YX^%DTC F XBI=1:1:20 S ^PWDBT(XBI)=XBI_Y
Q