184 lines
5.4 KiB
Mathematica
184 lines
5.4 KiB
Mathematica
SCCVU1 ;ALB/RMO,TMP - SCHED VISITS CONVERT/ARCHIVE UTILITIES; [ 10/10/95 2:39 PM ]
|
|
;;5.3;Scheduling;**211**;Aug 13, 1993
|
|
;
|
|
CHKDT(SCRESULT,SC,SCCVTYP) ; -- Check date range
|
|
; Input -- SC Array:
|
|
; SC("STARTDT") Start date
|
|
; ("ENDDT") End date
|
|
; -- SCCVTYP "CST" for convert function
|
|
; "AST" for archive function
|
|
; Output -- SCRESULT (#=Error number | 0=No Error)^Message
|
|
;
|
|
N SCENDT,SCERRMSG,SCERRNB,SCSTDT
|
|
;
|
|
S SCERRNB=0
|
|
;
|
|
S SCSTDT=$G(SC("STARTDT"))
|
|
S SCENDT=$G(SC("ENDDT"))
|
|
;
|
|
;Check if start date or end date not defined
|
|
I 'SCSTDT,'SCENDT D
|
|
. S SCERRNB=4049006.005
|
|
. D GETERR^SCCVLOG1(SCERRNB,"","","",1,.SCERRMSG)
|
|
;
|
|
;Verify date range
|
|
I 'SCERRNB S SCERRNB=$$VERDT^SCCVU2(SCSTDT,SCENDT,"",.SCERRMSG)
|
|
;
|
|
S SCRESULT=SCERRNB
|
|
I SCERRNB S SCRESULT=SCRESULT_U_$$BLDSTR(.SCERRMSG)
|
|
;
|
|
CHKDTQ Q
|
|
;
|
|
CHKDUP(SCRESULT,SC,SCCVT) ; -- Check duplicate log entries
|
|
; Input -- SC Array:
|
|
; SC("TYPE") Conversion type
|
|
; ("STARTDT") Start date
|
|
; ("ENDDT") End date
|
|
; ("TEMPLNO") Template number ien
|
|
; -- SCCVT "CST" for convert function
|
|
; "AST" for archive function
|
|
; Output -- SCRESULT (#=Error number | 0=No Error)^Message
|
|
;
|
|
N SCCVTYP,SCENDT,SCERRMSG,SCERRNB,SCLOG,SCSTDT
|
|
;
|
|
S SCERRNB=0
|
|
;
|
|
S SCCVTYP=$G(SC("TYPE"))
|
|
S SCSTDT=$G(SC("STARTDT"))
|
|
S SCENDT=$G(SC("ENDDT"))
|
|
S SCLOG=$G(SC("TEMPLNO"))
|
|
;
|
|
;Check if type, date range and Template number ien are defined
|
|
I 'SCCVTYP!('SCSTDT)!('SCENDT)!('SCLOG) D
|
|
. S SCERRNB=4049006.002
|
|
. D GETERR^SCCVLOG1(SCERRNB,"","","",1,.SCERRMSG)
|
|
;
|
|
;Check duplicate log entries
|
|
I 'SCERRNB S SCERRNB=$$CHKDUP^SCCVU2(SCCVTYP,SCSTDT,SCENDT,SCLOG,.SCERRMSG)
|
|
;
|
|
S SCRESULT=SCERRNB
|
|
I SCERRNB S SCRESULT=SCRESULT_U_$$BLDSTR(.SCERRMSG)
|
|
;
|
|
CHKDUPQ Q
|
|
;
|
|
PROCREQ(SCRESULT,SC) ; -- Process conversion/estimate request
|
|
; Input -- SC Array:
|
|
; SC("TEMPLNO") Template number ien
|
|
; ("REQNUM") Request number ien
|
|
; Output -- SCRESULT (#=Error number | 0=No Error)^Message
|
|
;
|
|
N SCERRMSG,SCERRNB,SCLOG,SCREQ,SCREQACT,SCREQEVT
|
|
S SCERRNB=0
|
|
;
|
|
S SCLOG=$G(SC("TEMPLNO"))
|
|
S SCREQ=$G(SC("REQNUM"))
|
|
;
|
|
;Quit if Template number ien or request ien are not defined
|
|
I 'SCLOG!('SCREQ) D
|
|
. S SCERRNB=4049006.003
|
|
. D GETERR^SCCVLOG1(SCERRNB,"","","",1,.SCERRMSG)
|
|
;
|
|
S SCRESULT=$S('SCERRNB:0,1:SCERRNB_U_$$BLDSTR(.SCERRMSG))
|
|
;
|
|
G:SCERRNB PROCREQQ
|
|
;
|
|
; Set request action
|
|
S SCREQACT=$P($G(^SD(404.98,SCLOG,"R",SCREQ,0)),U,2)
|
|
S SCREQEVT=$P($G(^SD(404.98,SCLOG,"R",SCREQ,0)),U,3)
|
|
;
|
|
; Queue conversion request to start or re-start
|
|
I "^1^3^"[(U_SCREQACT_U) D
|
|
. D QUE^SCCVE(SCLOG,SCREQ)
|
|
. IF SCREQEVT D JOURNAL(SCLOG)
|
|
;
|
|
; Process conversion request to stop
|
|
I SCREQACT=2 D STOP^SCCVE(SCLOG,SCREQ)
|
|
;
|
|
PROCREQQ Q
|
|
;
|
|
TASKSTA(SCRESULT,SCLOG) ; -- Retrieve task status description
|
|
; Input -- SCLOG Template number ien
|
|
; Output --
|
|
; SCRESULT (0^Task status description^status code or Error #^Message)
|
|
;
|
|
N SCERRNB,SCTSKD,ZTCPU
|
|
;
|
|
S SCERRNB=0
|
|
S SCTSKD="Unknown"
|
|
;
|
|
;Quit if Template number ien is not defined
|
|
I '$G(SCLOG) D G TASKSTAQ
|
|
. S SCERRNB=4049006.004
|
|
. D GETERR^SCCVLOG1(SCERRNB,"","","",0,.SCERRMSG)
|
|
;
|
|
;Get task status description
|
|
I 'SCERRNB D
|
|
. S ZTSK=$P($G(^SD(404.98,SCLOG,1)),U,3),ZTCPU=$P($G(^(1)),U,4)
|
|
. I ZTSK D
|
|
. . D STAT^%ZTLOAD
|
|
. . S SCTSKD=ZTSK(2)_U_ZTSK(1)
|
|
;
|
|
S SCRESULT=SCERRNB_U_SCTSKD
|
|
;
|
|
TASKSTAQ Q
|
|
;
|
|
BLDSTR(E) ; -- Build error message string
|
|
; Input -- E Error message array
|
|
; Output -- Error message string for display purposes
|
|
N I,Y,STOP
|
|
S Y=""
|
|
S (I,STOP)=0
|
|
F S I=$O(E(I)) Q:'I D Q:STOP
|
|
. I ($L(Y)+$L(E(I)))<240 S Y=Y_" "_E(I) Q
|
|
. S STOP=1
|
|
Q $G(Y)
|
|
DTOK(SC) ; -- Verify that date range is OK
|
|
N SCERR,SCOK
|
|
S SCOK=1
|
|
D CHKDT(.SCERR,.SC)
|
|
G:$G(SCERR) DTOKQ
|
|
S SC("TEMPLNO")=DA,SC("TYPE")=1
|
|
D CHKDUP(.SCERR,.SC,"CST")
|
|
;
|
|
DTOKQ ;
|
|
I +$G(SCERR) W !!,*7,$P(SCERR,U,2),!! S SCOK=0
|
|
Q SCOK
|
|
;
|
|
CNVTSCH(SCLOG) ; -- Function determines if any convert was scheduled
|
|
; Returns 0 if none scheduled, 1 if any ever scheduled
|
|
N SCSCH,Z
|
|
S SCSCH=0
|
|
S Z=0 F S Z=$O(^SD(404.98,SCLOG,"R",Z)) Q:'Z I $P($G(^(Z,0)),U,3) S SCSCH=1 Q
|
|
Q SCSCH
|
|
;
|
|
JOURNAL(SCLOG) ; -- display journal message and global growth estimates
|
|
N DIC,DR,DIQ,DA,SCDATA,SCTOT,FLD
|
|
S DIC="404.98",DA=SCLOG,DR="207:211",DIQ="SCDATA",DIQ(0)="E"
|
|
D EN^DIQ1
|
|
S SCTOT=0
|
|
F FLD=207:1:211 S SCTOT=SCTOT+$G(SCDATA(404.98,SCLOG,FLD,"E"))
|
|
;
|
|
W !
|
|
W !,">>> The estimated global growth profile for this template is the following:"
|
|
W !
|
|
W !,?10,"Global",?25,"Blocks",?40,"[Block Size: ",$$BLKSIZE^SCCVEGU1()," bytes]"
|
|
W !,?10,"---------",?25,"-----------"
|
|
W !,?10,"^SCE",?25,$J($FN($G(SCDATA(404.98,SCLOG,207,"E")),","),11)
|
|
W !,?10,"^AUPNVSIT",?25,$J($FN($G(SCDATA(404.98,SCLOG,208,"E")),","),11)
|
|
W !,?10,"^AUPNVPRV",?25,$J($FN($G(SCDATA(404.98,SCLOG,209,"E")),","),11)
|
|
W !,?10,"^AUPNVPOV",?25,$J($FN($G(SCDATA(404.98,SCLOG,210,"E")),","),11)
|
|
W !,?10,"^AUPNVCPT",?25,$J($FN($G(SCDATA(404.98,SCLOG,211,"E")),","),11)
|
|
W !,?10,"---------",?25,"-----------"
|
|
W !,?10,"Total",?25,$J($FN(SCTOT,","),11)
|
|
;
|
|
W !
|
|
W !,">>> Please verify that enough global disk space and journal space"
|
|
W !," are available for these anticipated increases."
|
|
W !
|
|
W !,">>> Also, please verify that system backup is not scheduled to"
|
|
W !," run within the start and stop times of this conversion job."
|
|
W !
|
|
D PAUSE^SCCVU
|
|
Q
|
|
;
|