1 | XBDBQDOC ; IHS/ADC/GTH - DOUBLE QUEUING SHELL HANDLER DOCUMENTATION ; [ 02/07/97 3:02 PM ]
|
---|
2 | ;;4.0;XB;;Jul 20, 2009;Build 2
|
---|
3 | ;
|
---|
4 | ;----------------------
|
---|
5 | ;NOTES FOR PROGRAMMERS|
|
---|
6 | ;----------------------
|
---|
7 | ;
|
---|
8 | ; %ZIS with "PQM" is called by XBDBQUE if '$D(XBIOP).
|
---|
9 | ;
|
---|
10 | ; The user will be asked to queue if queuing has not been
|
---|
11 | ; selected.
|
---|
12 | ;
|
---|
13 | ; IO variables as necessary are automatically stored.
|
---|
14 | ;
|
---|
15 | ; XBxx variables are killed after loading into an XB array.
|
---|
16 | ;
|
---|
17 | ; XBDBQUE can be nested.
|
---|
18 | ;
|
---|
19 | ; The compute and print phases can call XBDBQUE individually
|
---|
20 | ; (XBIOP is required).
|
---|
21 | ;
|
---|
22 | ; The appropriate %ZTSK node is killed.
|
---|
23 | ;
|
---|
24 | ;EX:
|
---|
25 | ; S XBRC="C^AGTEST",XBRP="P^AGTEST",XBRX="END^AGTEST",XBNS="AG"
|
---|
26 | ; D ^XBDBQUE ;handles foreground and tasking
|
---|
27 | ; Q
|
---|
28 | ;
|
---|
29 | ; VARIABLES NEEDED FROM CALLING PROGRAM
|
---|
30 | ;
|
---|
31 | ;MANDATORY
|
---|
32 | ; EITHER XBRC-Compute Routine or XBRP-Print Routine.
|
---|
33 | ;
|
---|
34 | ;OPTIONAL
|
---|
35 | ; XBRC-Compute Routine.
|
---|
36 | ; XBRP-Print Routine.
|
---|
37 | ; XBRX-Exit Routine that cleans variables (HIGHLY SUGGESTED).
|
---|
38 | ; XBNS-name space of variables to auto load in
|
---|
39 | ; ZTSAVE("NS*")=""
|
---|
40 | ; ="DG;AUPN;PS;..." ; (will add '*'if missing).
|
---|
41 | ; XBNS("xxx")="" - ZTSAVE variable arrays where xxx is as
|
---|
42 | ; described for ZTSAVE("xxxx")="".
|
---|
43 | ; XBFQ=1 Force Queing.
|
---|
44 | ; XBDTH=FM date time of computing/printing.
|
---|
45 | ; XBIOP=pre-selected printer device with constructed with
|
---|
46 | ; ION ; IOST ; IOSL ; IOM
|
---|
47 | ; (mandatory if the calling routine is a queued routine).
|
---|
48 | ; XBPAR= %ZIS("IOPAR") values for host file with XBIOP if
|
---|
49 | ; needed.
|
---|
50 | ;
|
---|
51 | TEST ;
|
---|
52 | ; TESTING CODE the following are KISS (keep it supper simple) test
|
---|
53 | ; of double queing code including nesting.
|
---|
54 | Q
|
---|
55 | ;--------------------------------------------------------------------
|
---|
56 | TEST1 ; test of stacking a second call to XBDBQUE in the printing routine.
|
---|
57 | S SD=1,DG=2
|
---|
58 | S XBNS="SD;DG;AG;"
|
---|
59 | S XBRP="PA^XBDBQDOC"
|
---|
60 | D ^XBDBQUE
|
---|
61 | KILL DG,JKL,SD
|
---|
62 | Q
|
---|
63 | PA ;
|
---|
64 | W !,"GOT HERE ON ONE",!
|
---|
65 | X "ZW"
|
---|
66 | S IOP=XB("IOP"),XBRP="PB^XBDBQDOC",XBNS("JKL")=""
|
---|
67 | F I=1:1:10 S JKL(I)=I
|
---|
68 | S XBIOP=XB("IOP")
|
---|
69 | D ^XBDBQUE
|
---|
70 | Q
|
---|
71 | PB ;
|
---|
72 | W !,"GOT HERE ON TWO",!
|
---|
73 | X "ZW"
|
---|
74 | Q
|
---|
75 | TEST2 ; TEST FOR COMPUTING ONLY
|
---|
76 | D DT^DICRW
|
---|
77 | S XBRC="RC^XBDBQDOC"
|
---|
78 | F XBI=1:1:20 KILL ^XBDBT(XBI)
|
---|
79 | W !,"CREATES ^XBDBT(",!
|
---|
80 | D ^XBDBQUE
|
---|
81 | Q
|
---|
82 | RC S %H=$H D YX^%DTC F XBI=1:1:20 S ^PWDBT(XBI)=XBI_Y
|
---|
83 | Q
|
---|