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

ZTLOAD3.m

Go to the documentation of this file.
  1. %ZTLOAD3 ;SEA/RDS - TaskMan: Task Requeue ;07/29/08 11:46
  1. ;;8.0;KERNEL;**67,127,136,192,446**;JUL 10, 1995;Build 35
  1. ;
  1. INPUT ;check for error conditions
  1. N %H,%T,X,X1,Y,ZT,ZT1,ZT2,ZT3,ZTH,ZTL,ZTOS,ZTREC,ZTREC1,ZTREC2,ZTREC25
  1. S ZTSK=$G(ZTSK) K ZTSK(0),ZTREQ ;Kill ZTREQ so we don't kill the entry
  1. L +^%ZTSK(ZTSK):9 S ZTREC=$G(^%ZTSK(ZTSK,0)) I ZTREC="" G BAD
  1. I $D(ZTDTH)#2,ZTDTH]"",ZTDTH'?1.5N1","1.5N,ZTDTH'?7N.".".N,ZTDTH'="@","SHD"'[$E(ZTDTH,$L(ZTDTH)) G BAD
  1. ;
  1. DQ ;make sure task is not pending
  1. D UNSCH^%ZTLOAD6
  1. I $D(^%ZTSK(ZTSK,0))[0 G BAD
  1. ;
  1. ZTDTH ;determine task's next start time
  1. S:$P(ZTREC,"^",16)="" $P(ZTREC,"^",16)=$P(ZTREC,"^",5) ;Save original create time
  1. S $P(ZTREC,"^",5)=$H ;Set a new create time
  1. I $D(ZTDTH)[0 S ZTDTH=$P(ZTREC,"^",6) G ZTRTN ;Use original time.
  1. I ZTDTH="" S ZTDTH=$H G ZTRTN
  1. I ZTDTH?1.5N1","1.5N G ZTRTN
  1. I ZTDTH?7N.".".N S ZTDTH=$$FMTH^%ZTLOAD7(ZTDTH) G ZTRTN
  1. I ZTDTH="@" G ZTRTN
  1. S ZTH=$$H3^%ZTM($P(ZTREC,"^",6)),ZTL=$E(ZTDTH,$L(ZTDTH)) ;From start time
  1. DT I ZTL="S" S ZTH=ZTH+ZTDTH
  1. I ZTL="H" S ZTH=(ZTDTH*3600)+ZTH
  1. I ZTL="D" S ZTH=(ZTDTH*86400)+ZTH
  1. DTX I ZTH<$$H3^%ZTM($H) G DT
  1. S ZTDTH=$$H0^%ZTM(ZTH)
  1. ;
  1. ZTRTN ;determine whether entry point should change
  1. I $D(ZTRTN)[0 G ZTIO
  1. I ZTRTN="" G ZTIO
  1. I ZTRTN'[U S ZTRTN=U_ZTRTN
  1. S ZT=$P(ZTREC,U,1,2)
  1. I ZT'=ZTRTN S $P(ZTREC,U,1,2)=ZTRTN I ZT="ZTSK^XQ1" S $P(ZTREC,U,7,9)="R^^"
  1. ;
  1. ZTIO ;determine whether i/o device should change
  1. N ZTREC2,ZTREC25
  1. S ZTREC2=$G(^%ZTSK(ZTSK,.2)),ZT=$P(ZTREC2,U)
  1. I $D(ZTIO)[0 G ZTIO1
  1. I ZTIO="" G ZTIO1
  1. I $P(ZTIO,";")'=$P(ZT,";") S $P(ZTREC2,U,6)="",ZTREC25=""
  1. I ZTIO="@" S $P(ZTREC2,U)="" G ZTIO1
  1. I ZTIO'=ZT S $P(ZTREC2,U)=ZTIO
  1. ;
  1. ZTIO1 ;set hunt group suppression flag
  1. S $P(ZTREC2,U,5)=$S($D(ZTIO(1))[0:"",ZTIO(1)="D":"DIRECT",1:"")
  1. ;
  1. ZTDESC ;determine whether description should change
  1. I $S($D(ZTDESC)[0:1,ZTDESC="":1,1:0) S ZTDESC=$G(^%ZTSK(ZTSK,.03))
  1. I ZTDESC=""!(ZTDESC="No Description (%ZTLOAD)") S ZTDESC="No Description (REQ~%ZTLOAD)"
  1. S ^%ZTSK(ZTSK,.03)=ZTDESC
  1. ;
  1. RECORD ;record changes in Task File entry
  1. I $D(ZTREC2)#2 S ^%ZTSK(ZTSK,.2)=ZTREC2
  1. I $D(ZTREC25)#2 S ^%ZTSK(ZTSK,.25)=ZTREC25
  1. I ZTDTH'="@" S $P(ZTREC,U,6)=ZTDTH ;Reset the Scheduled time piece
  1. S ^%ZTSK(ZTSK,0)=ZTREC
  1. S $P(^%ZTSK(ZTSK,.1),U,1,3)=$S(ZTDTH'="@":"1^"_$H_"^REQUEUED",1:"H^"_$H_"^EDITED BUT NOT REQUEUED")
  1. ;
  1. ZTSAVE ;See if new data to save
  1. K %H,%T,X,X1,Y,ZT,ZT1,ZT2,ZT3,ZTH,ZTL,ZTOS,ZTREC,ZTREC1,ZTREC2,ZTREC25
  1. K ZTDESC,ZTIO,ZTRTN
  1. I $D(ZTSAVE) K:$G(ZTSAVE)="KILL" ^%ZTSK(ZTSK,.3) D ZTSAVE^%ZTLOAD1
  1. SCHED ;schedule task, cleanup, quit
  1. I ZTDTH'="@" L +^%ZTSCH("SCHQ"):6 S ZT=$$H3^%ZTLOAD1(ZTDTH),^%ZTSK(ZTSK,.04)=ZT,^%ZTSCH(ZT,ZTSK)="" L -^%ZTSCH("SCHQ")
  1. K %X,%Y,X,X1,Y,ZT1,ZT2,ZT3,ZTDTH,ZTSAVE
  1. L -^%ZTSK(ZTSK) S ZTSK(0)=1
  1. Q
  1. ;
  1. BAD L -^%ZTSK(ZTSK) S ZTSK(0)=0
  1. Q
  1. REQP(ZT1) ;Reschedule a persistent task. Called from ZTM
  1. N ZTSK,ZT2,ZT3,ZTDTH,ZTSAVE S ZTDTH=$H,ZTSK=ZT1
  1. L +^%ZTSK(ZTSK):20 Q:'$T
  1. I $D(^%ZTSK(ZTSK,0))[0 Q ;Should tell someone
  1. G SCHED