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

ECXDTASK.m

Go to the documentation of this file.
  1. ECXDTASK ;ALB/TJL - Option, ECX KILL TASK ;3/19/24 14:35
  1. ;;3.0;DSS EXTRACTS;**190**;Dec 22, 1997;Build 36
  1. ;
  1. ; Reference to $$PRDEA^XUSER supported by DBIA #2343.
  1. ; Reference to ^%ZTLOAD:ASKSTOP,KILL,S, supported by ICR # 10063
  1. ;
  1. ENV ;Establish Routine Environment
  1. N DIR,XUTMT,ZTSK
  1. K DIRUT,DTOUT,DUOUT ;Clean-up for so we can use them too.
  1. N U,LN,DTOUT,DUOUT,X,Y,ZT,ZTOUT,ZTS
  1. S U="^" S $P(LN,"-",80)=""
  1. START ;
  1. K ^TMP($J)
  1. N ABBR,STAT,FOUND,QCOUNT,TASKNO,LISTNO,QREC,DA7271,VERB,PRINTNM,JOBNO
  1. N STARTDT,ENDDT,SCHED,DTCREATE,HSEC,SECNODE
  1. W @IOF ;,"Please wait while I find the DSS Extract tasks...searching..."
  1. S (FOUND,QCOUNT,ZTOUT)=0 S $P(LN,"-",80)=""
  1. S ABBR="" F S ABBR=$O(^XTMP("ECX EXTRACT",ABBR)) Q:ABBR="" D
  1. . S QREC=^XTMP("ECX EXTRACT",ABBR) Q:QREC=""
  1. . S ZTSK=$P(QREC,U,1) D STAT^%ZTLOAD
  1. . I ZTSK(0) D
  1. . . S JOBNO=$P(QREC,U,6)
  1. . . I ZTSK(1)=1,ZTSK(2)="Active: Pending" S STAT="P" D VALID Q
  1. . . I ZTSK(1)=2,ZTSK(2)="Active: Running" S STAT="R" D VALID
  1. . . Q
  1. . Q
  1. W ! ;"finished!!",!
  1. I 'FOUND W !,"There are no extract-related tasks queued.",! Q
  1. E S SECNODE=0,LISTNO=0 F S SECNODE=$O(^TMP($J,SECNODE)) Q:SECNODE'>0 D I ZTOUT Q
  1. . S TASKNO=0 F S TASKNO=$O(^TMP($J,SECNODE,TASKNO)) Q:TASKNO="" D I ZTOUT Q
  1. . . S LISTNO=LISTNO+1
  1. . . S ^TMP($J,0,LISTNO)=TASKNO
  1. . . S QREC=^TMP($J,SECNODE,TASKNO,0)
  1. . . S DA7271=$O(^ECX(727.1,"C",$P(QREC,U,1),0))
  1. . . S PRINTNM=$P(^ECX(727.1,DA7271,0),U,7)
  1. . . S Y=$P(QREC,U,5) D DD^%DT S STARTDT=Y
  1. . . S Y=$P(QREC,U,6) D DD^%DT S ENDDT=Y
  1. . . S SCHED=$P(QREC,U,4)
  1. . . S JOBNO=$P(QREC,U,7)
  1. . . S DTCREATE=$P(QREC,U,9)
  1. . . S DTCREATE=$$HTE^XLFDT(DTCREATE,"M")
  1. . . S VERB="Queued to start" S:$P(QREC,U,8)="R" VERB="Running since"
  1. . . S SCHED=$$HTE^XLFDT(SCHED,"M")
  1. . . W !,LISTNO_": (Task #"_TASKNO_")"
  1. . . W:$L($G(JOBNO))>0 ?32,"DSS Extract Log Record Number: "_JOBNO
  1. . . W !?3,PRINTNM_" Extract from "_STARTDT_" to "_ENDDT_"."
  1. . . W !?5,"Task created at "_$P(DTCREATE,"@",2)_" on "_$P(DTCREATE,"@",1)_" by "_$$NAME^XUSER($P(QREC,U,3),"F")
  1. . . W !?5,"Scheduled to start at "_$P(SCHED,"@",2)_" on "_$P(SCHED,"@",1)
  1. . . W !,LN
  1. . . I $Y>18 D EOP S ZTOUT=$D(DTOUT)!$D(DUOUT) Q:ZTOUT W @IOF
  1. I 'ZTOUT D EOL W !
  1. D PROMPT
  1. I $L(XUTMT)=0 W !?7,"No task selected. Returning to the DSS Extracts Transmission",!?7,"Management menu." Q
  1. D STOPTASK
  1. Q
  1. VALID ; Task is either running or scheduled - add to list
  1. N TASKDA S QCOUNT=QCOUNT+1,FOUND=1
  1. S TASKDA=$P(QREC,U,1)
  1. S HSEC=$$H3^%ZTM($P(QREC,U,3))
  1. S ^TMP($J,HSEC,TASKDA)=QCOUNT
  1. S ^TMP($J,HSEC,TASKDA,0)=ABBR_U_QREC
  1. S $P(^TMP($J,HSEC,TASKDA,0),U,8,9)=STAT_U_$P(^%ZTSK(ZTSK,0),U,5)
  1. Q
  1. ;
  1. EOP ;Simulate DIR(0)="E" Call To DIR (For Use Within DIR calls)
  1. S Y="" F ZT=0:0 R !,"Press RETURN to continue or '^' to exit: ",Y:$S($D(DTIME)#2:DTIME,1:60) S:'$T DTOUT="" S:Y="^" DUOUT="" Q:Y=""!(Y="^") W !!,"Enter either RETURN or '^'",! W:Y'["?" $C(7)
  1. Q
  1. ;
  1. EOL ;Simulate DIR(0)="E" call to DIR for end of listings
  1. S Y="" F ZT=0:0 R !,"End of listing. Press RETURN to continue: ",Y:$S($D(DTIME)#2:DTIME,1:60) S:'$T DTOUT="" S:Y="^" DUOUT="" Q:Y=""!(Y="^") W !!,"Enter either RETURN or '^'",! W:Y'["?" $C(7)
  1. Q
  1. ;
  1. PROMPT ; Prompt the user for a task number
  1. N DIRUT,X,Y,ZT
  1. F D SETPARAM,^DIR Q:+Y=Y!$D(DIRUT)
  1. S ZTSK=$S($D(DIRUT):"",'$D(^%ZTSK(Y,0))&$D(^TMP($J,0,Y)):$G(^TMP($J,0,Y)),1:Y)
  1. S XUTMT=ZTSK
  1. Q
  1. ;
  1. SETPARAM ;
  1. S DIR(0)="NAO^1:9999999999:0^D XFORM^ECXDTASK"
  1. S DIR("A")="Select Extract Task to Stop: "
  1. S DIR("?")="^D HELP1^ECXDTASK"
  1. S DIR("??")="^D HELP2^ECXDTASK" I DIR("??")="@" K DIR("??")
  1. ;I $D(XUTMT("B"))#2 S DIR("B")=XUTMT("B")
  1. I $D(DTIME)[0 S DIR("T")=60
  1. Q
  1. ;
  1. XFORM ; XFORM--Does task have an intact ^%ZTSK(#,0)
  1. I '$D(^%ZTSK(X)),$D(^TMP($J,0,X)) S X=$G(^TMP($J,0,X)) ;Use index to get task number.
  1. Q
  1. ;
  1. HELP1 ;SELECT--Default Help For '?'
  1. W !?5,"Select an extract task by its Task # (an integer between 1 and 999999999)"
  1. I $D(^TMP($J,0)) W ",",!?5,"or by its index number from the list."
  1. Q
  1. ;
  1. HELP2 ;SELECT--Default Help For '??'
  1. N DIR,DIRUT,X,Y D START
  1. Q
  1. ;
  1. STOPTASK ;Lookup Task File Data And Set Stop Flag
  1. N DA,RET
  1. S (DA,FOUND)=0
  1. F S DA=$O(^TMP($J,DA)) Q:FOUND!(DA="") D
  1. . I $G(^TMP($J,DA,XUTMT)) S FOUND=1
  1. I 'FOUND W !!,"Only tasks for DSS Extracts that are running or queued can be stopped." Q
  1. S RET=$$ASKSTOP^%ZTLOAD(XUTMT)
  1. D REPORT
  1. Q
  1. REPORT ;Report Results Of Lookup And Stop
  1. I $O(ZTSK(.3))]"" W !!?5,"Task unscheduled and stopped." K XUTMT Q
  1. I "1356ABCDEFGIL"[$P(ZTSK(.1),U) W !,"This task was already stopped." K XUTMT Q
  1. W !!?5,"Task stopped!" K XUTMT Q
  1. ;