[623] | 1 | %ZTLOAD4 ;SEA/RDS-TaskMan: P I: Is Queued? ;7/26/91 11:55 ;
|
---|
| 2 | ;;8.0;KERNEL;;JUL 10, 1995
|
---|
| 3 | ;;7.0;
|
---|
| 4 | ;
|
---|
| 5 | INPUT ;check input parameters for error conditions
|
---|
| 6 | I $D(ZTSK)[0 S ZTSK=""
|
---|
| 7 | I $D(ZTSK)>1 S ZTLOAD=ZTSK K ZTSK S ZTSK=ZTLOAD K ZTLOAD
|
---|
| 8 | I ZTSK<1!(ZTSK\1'=ZTSK) S ZTSK="",ZTSK(0)="",ZTSK("E")="IT" G QUIT
|
---|
| 9 | S ZTSK(0)="",ZTSK("E")="U",X="QUIT^%ZTLOAD3",@^%ZOSF("TRAP")
|
---|
| 10 | S %ZTVOL=^%ZOSF("VOL")
|
---|
| 11 | I $D(ZTCPU)[0 S ZTCPU=%ZTVOL
|
---|
| 12 | I ZTCPU="" S ZTCPU=%ZTVOL
|
---|
| 13 | I ZTCPU'=%ZTVOL G THERE
|
---|
| 14 | ;
|
---|
| 15 | HERE ;lookup task's status on current volume set
|
---|
| 16 | L +^%ZTSK(ZTSK) I $D(^%ZTSK(ZTSK,0))[0 S ZTSK("E")="I" G QUIT
|
---|
| 17 | S ZTREC=^%ZTSK(ZTSK,0),ZTD=$P(ZTREC,U,6)
|
---|
| 18 | S ZTSK("DUZ")=$P(ZTREC,U,3),ZTSK("D")=ZTD
|
---|
| 19 | I ZTD]"",$D(^%ZTSCH(ZTD,ZTSK))#2 S ZTSK(0)=1 G QUIT
|
---|
| 20 | I ZTD]"",$D(^%ZTSCH("JOB",ZTD,ZTSK))#2 S ZTSK(0)=1 G QUIT
|
---|
| 21 | ;
|
---|
| 22 | S ZT1="" F ZT=0:0 S ZT1=$O(^%ZTSCH(ZT1)) Q:'ZT1 I $D(^(ZT1,ZTSK))#2 S ZTSK(0)=1 G QUIT
|
---|
| 23 | S ZT1="IO",ZT2="" F ZT=0:0 S ZT2=$O(^%ZTSCH(ZT1,ZT2)),ZT3="" Q:ZT2="" F ZT=0:0 S ZT3=$O(^%ZTSCH(ZT1,ZT2,ZT3)) Q:ZT3="" I $D(^(ZT3,ZTSK))#2 S ZTSK(0)=1 G QUIT
|
---|
| 24 | S ZT1="JOB",ZT2="" F ZT=0:0 S ZT2=$O(^%ZTSCH(ZT1,ZT2)) Q:ZT2="" I $D(^(ZT2,ZTSK))#2 S ZTSK(0)=1 G QUIT
|
---|
| 25 | S ZT1="LINK",ZT2="" F ZT=0:0 S ZT2=$O(^%ZTSCH(ZT1,ZT2)),ZT3="" Q:ZT2="" F ZT=0:0 S ZT3=$O(^%ZTSCH(ZT1,ZT2,ZT3)) Q:ZT3="" I $D(^(ZT3,ZTSK))#2 S ZTSK(0)=1 G QUIT
|
---|
| 26 | S ZTSK(0)=0
|
---|
| 27 | ;
|
---|
| 28 | QUIT ;cleanup and quit
|
---|
| 29 | L:ZTSK -^%ZTSK(ZTSK) K %ZTCPU,%ZTM,%ZTM1,%ZTM2,%ZTMAST,%ZTVOL,X,Y,ZT,ZT1,ZT2,ZT3,ZTCPU,ZTD,ZTREC
|
---|
| 30 | I ZTSK(0)]"" K ZTSK("E") Q
|
---|
| 31 | I ZTSK("E")'="U" Q
|
---|
| 32 | S ZTSK("E",0)=$$EC^%ZOSV
|
---|
| 33 | Q
|
---|
| 34 | ;
|
---|
| 35 | THERE ;rest of code looks up task's status on some other volume set
|
---|
| 36 | ;
|
---|
| 37 | FILES ;find TaskMan files on the volume set to be searched
|
---|
| 38 | S %ZTCPU=$O(^%ZIS(14.5,"B",ZTCPU,""))
|
---|
| 39 | I %ZTCPU="" S ZTSK("E")="IS" G QUIT
|
---|
| 40 | S %ZTM=$P(^%ZOSF("MGR"),",")
|
---|
| 41 | S %ZTM=$S($D(^%ZIS(14.5,%ZTCPU,0))[0:%ZTM,$P(^(0),U,6)="":%ZTM,1:$P(^(0),U,6))
|
---|
| 42 | S X=%ZTM,Y=ZTCPU
|
---|
| 43 | S ZTSK("E")="LS",ZT=$D(^[X,Y]%ZTSK(0)),ZTSK("E")="U" ; check link
|
---|
| 44 | ;
|
---|
| 45 | SEARCH ;find out if task is queued on that volume set
|
---|
| 46 | I $D(^[X,Y]%ZTSK(ZTSK,0))[0 S ZTSK("E")="I" G QUIT
|
---|
| 47 | S ZTREC=^[X,Y]%ZTSK(ZTSK,0),ZTD=$P(ZTREC,U,6)
|
---|
| 48 | S ZTSK("DUZ")=$P(ZTREC,U,3),ZTSK("D")=ZTD
|
---|
| 49 | I ZTD]"",$D(^[X,Y]%ZTSCH(ZTD,ZTSK))#2 S ZTSK(0)=1 G QUIT
|
---|
| 50 | I ZTD]"",$D(^[X,Y]%ZTSCH("JOB",ZTD,ZTSK))#2 S ZTSK(0)=1 G QUIT
|
---|
| 51 | ;
|
---|
| 52 | S ZT1="" F ZT=0:0 S ZT1=$O(^[X,Y]%ZTSCH(ZT1)) Q:'ZT1 I $D(^(ZT1,ZTSK))#2 S ZTSK(0)=1 G QUIT
|
---|
| 53 | S ZT1="IO",ZT2="" F ZT=0:0 S ZT2=$O(^[X,Y]%ZTSCH(ZT1,ZT2)),ZT3="" Q:ZT2="" F ZT=0:0 S ZT3=$O(^[X,Y]%ZTSCH(ZT1,ZT2,ZT3)) Q:ZT3="" I $D(^(ZT3,ZTSK))#2 S ZTSK(0)=1 G QUIT
|
---|
| 54 | S ZT1="JOB",ZT2="" F ZT=0:0 S ZT2=$O(^[X,Y]%ZTSCH(ZT1,ZT2)) Q:ZT2="" I $D(^(ZT2,ZTSK))#2 S ZTSK(0)=1 G QUIT
|
---|
| 55 | S ZT1="LINK",ZT2="" F ZT=0:0 S ZT2=$O(^[X,Y]%ZTSCH(ZT1,ZT2)),ZT3="" Q:ZT2="" F ZT=0:0 S ZT3=$O(^[X,Y]%ZTSCH(ZT1,ZT2,ZT3)) Q:ZT3="" I $D(^(ZT3,ZTSK))#2 S ZTSK(0)=1 G QUIT
|
---|
| 56 | S ZTSK(0)=0 G QUIT
|
---|
| 57 | ;
|
---|