1 | XUTMUSE2 ;SEA/RDS - TaskMan: Option, XUTMUSER, Part 3 (Edit) ;05/26/98 16:46
|
---|
2 | ;;8.0;KERNEL;**36,86**;Jul 10, 1995
|
---|
3 | ;
|
---|
4 | TASK ;Handle Unusual Tasks
|
---|
5 | N ZTD,ZTDEFALT,ZTL,ZTX
|
---|
6 | I $D(^%ZTSK(XUTMT,0))[0 W !,"This task's record is missing critical data. There's nothing to edit." Q
|
---|
7 | I $D(^%ZTSCH("TASK",XUTMT)) W !,"This task is currently running. You should either wait for the task to stop",!?5,"running, or use the Stop Task action to try to stop it sooner." Q
|
---|
8 | ;
|
---|
9 | STOP ;Report Need To Stop Task, Prompt For Confirmation
|
---|
10 | W ! S DIR(0)="YO",DIR("A")="Before you edit the task I must unschedule it, is this okay",DIR("B")="YES",DIR("?")="Yes - task will be unscheduled and you can edit it. No - don't edit."
|
---|
11 | D ^DIR K DIR I $D(DIRUT)!'Y W !,"Task not changed." Q
|
---|
12 | D ^XUTMTS I ZTSK<1 W !!,"Task not available for editing."
|
---|
13 | W !,"Task ready for editing."
|
---|
14 | ;
|
---|
15 | OUTPUT ;Report Whether Task Involved Output
|
---|
16 | W ! W:$P(ZTSK(.2),U)="" !,"Currently, this task does not request an output device." W:$P(ZTSK(.2),U)]"" !,"Currently, this task requests output device ",$P($P(ZTSK(.2),U),";"),"."
|
---|
17 | S DIR(0)="YO",DIR("A")="Do you want to change the output device for this task",DIR("B")="NO"
|
---|
18 | D ^DIR Q:$D(DIRUT) K DIR I 'Y G RUNTIME
|
---|
19 | ;
|
---|
20 | DEVICE ;Allow User To Change Output Device Request
|
---|
21 | S ZTSK(.2)="",ZTSK(.25)="" K ZTIO
|
---|
22 | S %ZIS="NQS",%ZIS("A")="Select Task's Output Device (^ for none): ",%ZIS("B")=$P(ZTSK(.2),U) D ^%ZIS G:POP RUNTIME
|
---|
23 | S ZTIO=ION_";"_IOST_";"_$S($D(IO("DOC"))#2:IO("DOC"),1:IOM_";"_IOSL)_$S($D(IO("P"))[0:"",IO("P")="":"",1:";/"_IO("P")),ZTSK(.2)=ZTIO_U_IO_U_IOT_U_IOST_U_$P(ZTSK(.2),U,5)_U
|
---|
24 | I $D(IO("HFSIO"))#2,$D(IOPAR)#2 S $P(ZTSK(.2),U,6)=IO("HFSIO"),ZTSK(.25)=IOPAR
|
---|
25 | D HOME^%ZIS
|
---|
26 | ;
|
---|
27 | RUNTIME ;Allow User To Change Task's Next Run Time
|
---|
28 | W ! S ZTDEFALT=$$HTFM^XLFDT($P(ZTSK(0),U,6))
|
---|
29 | S DIR(0)="D^::ERS^N ZTRSTRCT D SCREEN^XUTMUSE2 K:ZTRSTRCT X"
|
---|
30 | S DIR("A")="When should this task run?"
|
---|
31 | S DIR("B")=$$HTE^XLFDT($P(ZTSK(0),U,6))
|
---|
32 | S DIR("?",1)=" Your response must be a date, @ sign, and time."
|
---|
33 | S DIR("?",2)=" "
|
---|
34 | S DIR("?")=" Enter ?? for more help."
|
---|
35 | S DIR("??")="^D HELP2^XUTMUSE2"
|
---|
36 | D ^DIR K DIR
|
---|
37 | R1 ;
|
---|
38 | I $D(DTOUT) W " ** TIME-OUT **",$C(7)
|
---|
39 | I $D(DUOUT) W " ** ^-ESCAPE **"
|
---|
40 | I $D(DIRUT) Q
|
---|
41 | S $P(ZTSK(0),U,6)=$$FMTH^XLFDT(Y)
|
---|
42 | ;
|
---|
43 | PURPOSE ;Allow User To Edit Description Of Task's Purpose
|
---|
44 | W ! S DIR(0)="FO^1:200",DIR("A")="Task's purpose" S:ZTSK(.03)]"" DIR("B")=ZTSK(.03) D ^DIR Q:$D(DIRUT) K DIR S ZTSK(.03)=Y
|
---|
45 | ;
|
---|
46 | BRIEF ;Show User Brief Of Task
|
---|
47 | W !!,ZTSK,": ",$E(ZTSK(.03),1,70)
|
---|
48 | S ZTD=$E(ZTSK(.03),$L(ZTSK(.03)))=".",ZTX=$L(ZTSK)+2+$L(ZTSK(.03))+3-ZTD,ZTL=$S($P($P(ZTSK(.2),U),";")]"":$L($P($P(ZTSK(.2),U),";")),1:16)
|
---|
49 | W:ZTL+ZTX'>80 $E(".",'ZTD)," " I ZTL+ZTX>80 W:ZTX<80&'ZTD "." W ! S ZTX=0
|
---|
50 | W $S($P($P(ZTSK(.2),U),";")]"":$P($P(ZTSK(.2),U),";"),1:"No output device") S ZTX=ZTL+ZTX+3,%H=$P(ZTSK(0),U,6)
|
---|
51 | S ZTD=$S(%H="":"Next run time unknown",1:"Next run time: "_$$TIME^XUTMTP(%H)),ZTL=$L(ZTD) W:ZTL+ZTX'>80 ". " I ZTL+ZTX>80 W:ZTL<80 "." W ! S ZTX=0
|
---|
52 | W ZTD I ZTL+ZTX<80 W "."
|
---|
53 | ;
|
---|
54 | REQ ;Allow User To Reschedule Task
|
---|
55 | W ! S DIR(0)="YO",DIR("A")="Shall I reschedule this task as shown",DIR("B")="YES" D ^DIR K DIR I $D(DIRUT)!'Y W !,"Task not rescheduled." Q
|
---|
56 | S $P(ZTSK(.1),U,10,11)="^"
|
---|
57 | S $P(ZTSK(0),U,3)=DUZ
|
---|
58 | S $P(ZTSK(0),U,5)=$H
|
---|
59 | S $P(ZTSK(0),U,10)=ZTNAME
|
---|
60 | W !,"Task rescheduled."
|
---|
61 | L +^%ZTSK(ZTSK) S ^%ZTSK(ZTSK,0)=ZTSK(0),^(.03)=ZTSK(.03),^(.1)=ZTSK(.1),^(.2)=ZTSK(.2),^(.25)=ZTSK(.25)
|
---|
62 | K ZTDESC,ZTIO,ZTRTN S ZTDTH=$P(ZTSK(0),U,6) D REQ^%ZTLOAD L -^%ZTSK(ZTSK)
|
---|
63 | Q
|
---|
64 | ;
|
---|
65 | HELP2 ;RUNTIME--provide ?? help in selecting a start time for this task
|
---|
66 | N ZTREC
|
---|
67 | W !!?5,"This will be the time TaskMan starts your task."
|
---|
68 | I $P(ZTSK(0),U,8)="" Q
|
---|
69 | S ZTREC=$G(^DIC(19,+$P(ZTSK(0),U,8),0))
|
---|
70 | I ZTREC="" Q
|
---|
71 | I $P(ZTREC,U,2)="" Q
|
---|
72 | W !!?5,"The option you used to queue this task was:"
|
---|
73 | W !?5,$P(ZTREC,U,2)
|
---|
74 | H1 ;
|
---|
75 | I $O(^DIC(19,+$P(ZTSK(0),U,8),3.92,0))="" D Q
|
---|
76 | .W !!?5,"It has no restricted times, so you may run this task any time"
|
---|
77 | .W !?5,"you wish." Q
|
---|
78 | W !!?5,"It may only be run at certain times."
|
---|
79 | W !?5,"This option will notify you if you select a restricted time."
|
---|
80 | Q
|
---|
81 | ;
|
---|
82 | SCREEN ;RUNTIME--screen out start times prohibited according to the option
|
---|
83 | ;...that queued the task (or the option itself, if the task is a
|
---|
84 | ;...queued option).
|
---|
85 | I Y=ZTDEFALT S ZTRSTRCT=0 Q
|
---|
86 | N X,XQY S X=Y N Y
|
---|
87 | S XQY=+$P(ZTSK(0),U,8)
|
---|
88 | D ^XQ92
|
---|
89 | S ZTRSTRCT=X=""
|
---|
90 | S1 ;
|
---|
91 | I ZTRSTRCT D
|
---|
92 | .W !!?5,"You may not start your task at that time."
|
---|
93 | .W !!?5,"The option you used to queue this task does not allow the task"
|
---|
94 | .W !?5,"to run at that time. Please select a different time to start"
|
---|
95 | .W !?5,"the task."
|
---|
96 | .Q
|
---|
97 | Q
|
---|
98 | ;
|
---|