Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: ZTLOAD5

ZTLOAD5.m

Go to the documentation of this file.
  1. %ZTLOAD5 ;SEA/RDS-TaskMan: P I: Task Status ;1/18/08 14:29
  1. ;;8.0;KERNEL;**49,339,446**;JUL 10, 1995;Build 35
  1. ;
  1. INPUT ;check input parameters for error conditions
  1. N %,ZT1,ZT2,ZT3
  1. S:$D(ZTSK)[0 ZTSK=""
  1. I $D(ZTSK)>1 S %=ZTSK K ZTSK S ZTSK=%
  1. S ZTSK(0)=0,ZTSK(1)=0,ZTSK(2)="Undefined"
  1. I ZTSK<1!('$D(^%ZTSK(ZTSK,0))) Q
  1. L +^%ZTSK(ZTSK):5 E S ZTSK(2)="Busy" Q ;p446
  1. D SEARCH L -^%ZTSK(ZTSK)
  1. Q
  1. ;
  1. I $D(^%ZTSCH("TASK",ZTSK))#2 D Q
  1. . S ZTSK(0)=1,ZTSK(1)=2,ZTSK(2)="Active: Running"
  1. . ;With a zero lock timeout it may report "active" falsely
  1. . L +^%ZTSCH("TASK",ZTSK):0 I $T S ZTSK(1)=5,ZTSK(2)="Inactive: Interrupted" L -^%ZTSCH("TASK",ZTSK) ;p446
  1. . Q
  1. S ZT1=0 D Q:ZTSK(0) ;*339
  1. . F S ZT1=$O(^%ZTSCH(ZT1)) Q:ZT1'>0 I $D(^%ZTSCH(ZT1,ZTSK))#2 S ZTSK(0)=1,ZTSK(1)=1,ZTSK(2)="Active: Pending" Q
  1. S ZT1="" D Q:ZTSK(0)
  1. . F S ZT1=$O(^%ZTSCH("IO",ZT1)),ZT2="" Q:ZT1="" D Q:ZTSK(0)
  1. . . F S ZT2=$O(^%ZTSCH("IO",ZT1,ZT2)) Q:ZT2="" I $D(^(ZT2,ZTSK))#2 S ZTSK(0)=1,ZTSK(1)=1,ZTSK(2)="Active: Pending" Q
  1. S ZT1="" D Q:ZTSK(0)
  1. . F S ZT1=$O(^%ZTSCH("JOB",ZT1)) Q:ZT1="" I $D(^(ZT1,ZTSK))#2 S ZTSK(0)=1,ZTSK(1)=1,ZTSK(2)="Active: Pending" Q
  1. S ZT1="" D Q:ZTSK(0)
  1. . F S ZT1=$O(^%ZTSCH("LINK",ZT1)),ZT2="" Q:ZT1="" D Q:ZTSK(0)
  1. . . F S ZT2=$O(^%ZTSCH("LINK",ZT1,ZT2)) Q:ZT2="" I $D(^(ZT2,ZTSK))#2 S ZTSK(0)=1,ZTSK(1)=1,ZTSK(2)="Active: Pending" Q
  1. S ZT1=0 D Q:ZTSK(0) ;*339
  1. . F S ZT1=$O(^%ZTSCH("C",ZT1)) Q:ZT1'>0 I $D(^(ZT1,ZTSK)) S ZTSK(0)=1,ZTSK(2)="Active: Pending" Q
  1. ;
  1. FLAG ;If we didn't find it in a list, use status flag
  1. I $D(^%ZTSK(ZTSK,.1))[0 Q
  1. S ZT=$P(^%ZTSK(ZTSK,.1),U),ZTSK(0)=1
  1. I ZT=2!(ZT=4) S ZTSK(1)=1,ZTSK(2)="Active: Pending" Q
  1. I ZT=6 S ZTSK(1)=3,ZTSK(2)="Inactive: Finished" Q
  1. I ZT="H"!(ZT="K") S ZTSK(1)=4,ZTSK(2)="Inactive: Available" Q
  1. S ZTSK(1)=5,ZTSK(2)="Inactive: Interrupted"
  1. Q
  1. ;
  1. DESC ;Find tasks with matching description.
  1. ;From %ZTLOAD input param DESC,LST
  1. Q:$G(DESC)=""
  1. N ZTSK,X D ENV
  1. S:'$D(LST) LST="^TMP($J)" S ZTSK=0
  1. F S ZTSK=$O(^%ZTSK(ZTSK)) Q:ZTSK'>0 S X=$G(^%ZTSK(ZTSK,0)) D
  1. . Q:$$SKIP()
  1. . I $G(^%ZTSK(ZTSK,.03))=DESC S @LST@(ZTSK)=""
  1. . Q
  1. Q
  1. RTN ;Find tasks with matching routines
  1. ;From %ZTLOAD input param RTN,LST
  1. Q:$G(RTN)=""
  1. N ZTSK,X D ENV
  1. S:'$D(LST) LST="^TMP($J)" S:RTN'["^" RTN="^"_RTN S ZTSK=0
  1. F S ZTSK=$O(^%ZTSK(ZTSK)) Q:ZTSK'>0 S X=$G(^%ZTSK(ZTSK,0)) D
  1. . Q:$$SKIP()
  1. . I $P(X,"^",1,2)=RTN S @LST@(ZTSK)="" Q
  1. . I "^"_($P(X,"^",2))=RTN S @LST@(ZTSK)=""
  1. . Q
  1. Q
  1. OPTION ;Find tasks with matching option names
  1. ;From %ZTLOAD input param OPNM, LST
  1. Q:$G(OPNM)="" N ZTSK,X,FLG D ENV
  1. S:'$D(LST) LST="^TMP($J)" S ZTSK=0,FLG=(OPNM?1.N1"^"1A.ANP)
  1. Q:'FLG&(OPNM'?1A.ANP)
  1. F S ZTSK=$O(^%ZTSK(ZTSK)) Q:ZTSK'>0 S X=$G(^%ZTSK(ZTSK,0)) D
  1. . Q:$$SKIP()
  1. . I FLG,$P(X,"^",8,9)=OPNM S @LST@(ZTSK)="" Q
  1. . I $P(X,"^",1,2)="ZTSK^XQ1",$P(X,"^",9)=OPNM S @LST@(ZTSK)=""
  1. . Q
  1. Q
  1. SKIP() ;Screen on ZTKEY, UCI, DUZ, return: 0=OK, 1=Skip
  1. Q:ZTKEY 0
  1. Q:($P(X,U,11)_","_$P(X,U,12))'=ZTUCI 1
  1. Q:$P(X,U,3)'=DUZ 1
  1. Q 0
  1. ENV ;Setup
  1. S ZTKEY=$D(^XUSEC("ZTMQ",DUZ)),U="^"
  1. X ^%ZOSF("UCI") S ZTUCI=Y
  1. Q
  1. ;
  1. JOB ;Return JOB # for running task. Called from JOB^ZTLOAD (*339)
  1. N Z1,Z2 S Z1=""
  1. I $G(ZTM)>0 S Z2=$G(^%ZTSCH("TASK",ZTM)),Z1=$S($L(Z2):$P(Z2,"^",10),1:"")
  1. Q Z1