source: IHS-VA_UTILITIES-XB/ZIBRUN.m@ 641

Last change on this file since 641 was 641, checked in by Sam Habiel, 14 years ago

Initial commit of XB, move away from sf.net.
Includes kids file and documentation.

File size: 2.2 KB
Line 
1%ZIBRUN ; IHS/ADC/GTH - CHECK FOR ACTIVE ROUTINE IN A SPECIFIC UCI ; [ 02/07/97 3:02 PM ]
2 ;;4.0;XB;;Jul 20, 2009;Build 2
3 ;
4EN ;
5 Q:'($ZV?1"MSM".E!($ZV?1"DSM".E)) ; Only works for MSM or DSM.
6 ; Name of routine to be checked is passed in X.
7 S %ZIB("PARM")=X
8 S:$P(%ZIB("PARM"),"^",2)="" $P(%ZIB("PARM"),"^",2)=$ZU(0) ; If no UCI set to current UCI.
9 S %ZIB("OP SYS")=$ZV ; Set operating system.
10 D @$S(%ZIB("OP SYS")?1"DSM".E:"DSM",1:"MSM") ; Active JOB lookup per operating system.
11 D CK
12 D OUT ; KILL off variables and exit gracefully.
13 Q
14 ;
15MSM ; MSM specific look up active JOBs.
16 S $ZT="MER"
17 V 44:$J:$ZB($V(44,$J,2),1,7):2
18 S %ZIB("SYS TBL")=$V(44),%ZIB("JOB TBL")=$V(%ZIB("SYS TBL")+8,-3,2)+%ZIB("SYS TBL"),%ZIB("MAX JOBS")=$V($V(%ZIB("SYS TBL")+284),-3,4),%ZIB("PARTITION")=$V(3*4+%ZIB("JOB TBL"))
19 ; Build active JOB table (%ZIB("ACT JOB")
20 F %ZIB("ACT JOB")=1:1:%ZIB("MAX JOBS") S:$V(%ZIB("ACT JOB")*4+%ZIB("PARTITION")) $P(%ZIB("JOB TABLE",%ZIB("ACT JOB")),"^",2)=$ZU(($V(2,%ZIB("ACT JOB"),2)#32),($V(2,%ZIB("ACT JOB"),2)\32))
21 Q
22 ;
23MER ; MSM error trap.
24 V 44:$J:$ZB($V(44,$J,2),#FFFE,1):2
25 ZQ
26 ;
27DSM ; DSM specific look up active JOBs.
28 S %ZIB("SYS TBL")=$V(44),%ZIB("JOB TBL")=$V(%ZIB("SYS TBL")+4)
29 ; Build active JOB table (%ZIB("JOB TABLE"))
30 F %ZIB("JOB OFFSET")=%ZIB("JOB TBL")+2:2:%ZIB("JOB TBL")+126 I $V(%ZIB("JOB OFFSET")+1),$V(%ZIB("JOB OFFSET")+1)'=244 D
31 . S %ZIB("ACT JOB")=%ZIB("JOB OFFSET")-%ZIB("JOB TBL")\2
32 . I %ZIB("ACT JOB")]"" D
33 .. S %ZIB("UCI NBR")=$V(149,%ZIB("ACT JOB"))
34 .. I %ZIB("UCI NBR")]"" D
35 ... S $P(%ZIB("JOB TABLE",%ZIB("ACT JOB")),"^",2)=$ZU(%ZIB("UCI NBR"))
36 ... S %ZIB("ACT RTN")=""
37 ... F %ZIB("LOC")=502:1:509 Q:$V(%ZIB("LOC"),%ZIB("ACT JOB"))#256>127!'$V(%ZIB("LOC"),%ZIB("ACT JOB")) S %ZIB("ACT RTN")=%ZIB("ACT RTN")_$C($V(%ZIB("LOC"),%ZIB("ACT JOB"))#128)
38 ... S $P(%ZIB("JOB TABLE",%ZIB("ACT JOB")),"^",1)=%ZIB("ACT RTN")
39 Q
40 ;
41CK ; Check %ZIB("JOB TABLE) for match of ROUTINE^UCI.
42 S %ZIB("$T")=0,%ZIB("JOB NBR")=""
43 F S %ZIB("JOB NBR")=$O(%ZIB("JOB TABLE",%ZIB("JOB NBR"))) Q:%ZIB("JOB NBR")="" I %ZIB("JOB TABLE",%ZIB("JOB NBR"))=%ZIB("PARM") S %ZIB("$T")=1 Q
44 Q
45 ;
46OUT ;
47 I $ZV?1"MSM".E V 44:$J:$ZB($V(44,$J,2),#FFFE,1):2
48 I %ZIB("$T")
49 Q
50 ;
Note: See TracBrowser for help on using the repository browser.