| 1 | SCCVU1 ;ALB/RMO,TMP - SCHED VISITS CONVERT/ARCHIVE UTILITIES; [ 10/10/95  2:39 PM ]
 | 
|---|
| 2 |  ;;5.3;Scheduling;**211**;Aug 13, 1993
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | CHKDT(SCRESULT,SC,SCCVTYP) ; -- Check date range
 | 
|---|
| 5 |  ; Input  -- SC       Array:
 | 
|---|
| 6 |  ;                    SC("STARTDT")    Start date
 | 
|---|
| 7 |  ;                      ("ENDDT")      End date
 | 
|---|
| 8 |  ;        -- SCCVTYP "CST" for convert function
 | 
|---|
| 9 |  ;                   "AST" for archive function
 | 
|---|
| 10 |  ; Output -- SCRESULT (#=Error number | 0=No Error)^Message
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 |  N SCENDT,SCERRMSG,SCERRNB,SCSTDT
 | 
|---|
| 13 |  ;
 | 
|---|
| 14 |  S SCERRNB=0
 | 
|---|
| 15 |  ;
 | 
|---|
| 16 |  S SCSTDT=$G(SC("STARTDT"))
 | 
|---|
| 17 |  S SCENDT=$G(SC("ENDDT"))
 | 
|---|
| 18 |  ;
 | 
|---|
| 19 |  ;Check if start date or end date not defined
 | 
|---|
| 20 |  I 'SCSTDT,'SCENDT D
 | 
|---|
| 21 |  . S SCERRNB=4049006.005
 | 
|---|
| 22 |  . D GETERR^SCCVLOG1(SCERRNB,"","","",1,.SCERRMSG)
 | 
|---|
| 23 |  ;
 | 
|---|
| 24 |  ;Verify date range
 | 
|---|
| 25 |  I 'SCERRNB S SCERRNB=$$VERDT^SCCVU2(SCSTDT,SCENDT,"",.SCERRMSG)
 | 
|---|
| 26 |  ;
 | 
|---|
| 27 |  S SCRESULT=SCERRNB
 | 
|---|
| 28 |  I SCERRNB S SCRESULT=SCRESULT_U_$$BLDSTR(.SCERRMSG)
 | 
|---|
| 29 |  ;
 | 
|---|
| 30 | CHKDTQ Q
 | 
|---|
| 31 |  ;
 | 
|---|
| 32 | CHKDUP(SCRESULT,SC,SCCVT) ; -- Check duplicate log entries
 | 
|---|
| 33 |  ; Input  -- SC       Array:
 | 
|---|
| 34 |  ;                    SC("TYPE")      Conversion type
 | 
|---|
| 35 |  ;                      ("STARTDT")   Start date
 | 
|---|
| 36 |  ;                      ("ENDDT")     End date
 | 
|---|
| 37 |  ;                      ("TEMPLNO")    Template number ien
 | 
|---|
| 38 |  ;        -- SCCVT   "CST" for convert function
 | 
|---|
| 39 |  ;                   "AST" for archive function
 | 
|---|
| 40 |  ; Output -- SCRESULT (#=Error number | 0=No Error)^Message
 | 
|---|
| 41 |  ;
 | 
|---|
| 42 |  N SCCVTYP,SCENDT,SCERRMSG,SCERRNB,SCLOG,SCSTDT
 | 
|---|
| 43 |  ;
 | 
|---|
| 44 |  S SCERRNB=0
 | 
|---|
| 45 |  ;
 | 
|---|
| 46 |  S SCCVTYP=$G(SC("TYPE"))
 | 
|---|
| 47 |  S SCSTDT=$G(SC("STARTDT"))
 | 
|---|
| 48 |  S SCENDT=$G(SC("ENDDT"))
 | 
|---|
| 49 |  S SCLOG=$G(SC("TEMPLNO"))
 | 
|---|
| 50 |  ;
 | 
|---|
| 51 |  ;Check if type, date range and Template number ien are defined
 | 
|---|
| 52 |  I 'SCCVTYP!('SCSTDT)!('SCENDT)!('SCLOG) D
 | 
|---|
| 53 |  . S SCERRNB=4049006.002
 | 
|---|
| 54 |  . D GETERR^SCCVLOG1(SCERRNB,"","","",1,.SCERRMSG)
 | 
|---|
| 55 |  ;
 | 
|---|
| 56 |  ;Check duplicate log entries
 | 
|---|
| 57 |  I 'SCERRNB S SCERRNB=$$CHKDUP^SCCVU2(SCCVTYP,SCSTDT,SCENDT,SCLOG,.SCERRMSG)
 | 
|---|
| 58 |  ;
 | 
|---|
| 59 |  S SCRESULT=SCERRNB
 | 
|---|
| 60 |  I SCERRNB S SCRESULT=SCRESULT_U_$$BLDSTR(.SCERRMSG)
 | 
|---|
| 61 |  ;
 | 
|---|
| 62 | CHKDUPQ Q
 | 
|---|
| 63 |  ;
 | 
|---|
| 64 | PROCREQ(SCRESULT,SC) ; -- Process conversion/estimate request
 | 
|---|
| 65 |  ; Input  -- SC       Array:
 | 
|---|
| 66 |  ;                    SC("TEMPLNO")    Template number ien
 | 
|---|
| 67 |  ;                      ("REQNUM")     Request number ien
 | 
|---|
| 68 |  ; Output -- SCRESULT (#=Error number | 0=No Error)^Message
 | 
|---|
| 69 |  ;
 | 
|---|
| 70 |  N SCERRMSG,SCERRNB,SCLOG,SCREQ,SCREQACT,SCREQEVT
 | 
|---|
| 71 |  S SCERRNB=0
 | 
|---|
| 72 |  ;
 | 
|---|
| 73 |  S SCLOG=$G(SC("TEMPLNO"))
 | 
|---|
| 74 |  S SCREQ=$G(SC("REQNUM"))
 | 
|---|
| 75 |  ;
 | 
|---|
| 76 |  ;Quit if Template number ien or request ien are not defined
 | 
|---|
| 77 |  I 'SCLOG!('SCREQ) D
 | 
|---|
| 78 |  . S SCERRNB=4049006.003
 | 
|---|
| 79 |  . D GETERR^SCCVLOG1(SCERRNB,"","","",1,.SCERRMSG)
 | 
|---|
| 80 |  ;
 | 
|---|
| 81 |  S SCRESULT=$S('SCERRNB:0,1:SCERRNB_U_$$BLDSTR(.SCERRMSG))
 | 
|---|
| 82 |  ;
 | 
|---|
| 83 |  G:SCERRNB PROCREQQ
 | 
|---|
| 84 |  ;
 | 
|---|
| 85 |  ; Set request action
 | 
|---|
| 86 |  S SCREQACT=$P($G(^SD(404.98,SCLOG,"R",SCREQ,0)),U,2)
 | 
|---|
| 87 |  S SCREQEVT=$P($G(^SD(404.98,SCLOG,"R",SCREQ,0)),U,3)
 | 
|---|
| 88 |  ;
 | 
|---|
| 89 |  ; Queue conversion request to start or re-start
 | 
|---|
| 90 |  I "^1^3^"[(U_SCREQACT_U) D 
 | 
|---|
| 91 |  . D QUE^SCCVE(SCLOG,SCREQ)
 | 
|---|
| 92 |  . IF SCREQEVT D JOURNAL(SCLOG)
 | 
|---|
| 93 |  ;
 | 
|---|
| 94 |  ; Process conversion request to stop
 | 
|---|
| 95 |  I SCREQACT=2 D STOP^SCCVE(SCLOG,SCREQ)
 | 
|---|
| 96 |  ;
 | 
|---|
| 97 | PROCREQQ Q
 | 
|---|
| 98 |  ;
 | 
|---|
| 99 | TASKSTA(SCRESULT,SCLOG) ; -- Retrieve task status description
 | 
|---|
| 100 |  ; Input  -- SCLOG    Template number ien
 | 
|---|
| 101 |  ; Output -- 
 | 
|---|
| 102 |  ;    SCRESULT (0^Task status description^status code or Error #^Message)
 | 
|---|
| 103 |  ;
 | 
|---|
| 104 |  N SCERRNB,SCTSKD,ZTCPU
 | 
|---|
| 105 |  ;
 | 
|---|
| 106 |  S SCERRNB=0
 | 
|---|
| 107 |  S SCTSKD="Unknown"
 | 
|---|
| 108 |  ;
 | 
|---|
| 109 |  ;Quit if Template number ien is not defined
 | 
|---|
| 110 |  I '$G(SCLOG) D  G TASKSTAQ
 | 
|---|
| 111 |  . S SCERRNB=4049006.004
 | 
|---|
| 112 |  . D GETERR^SCCVLOG1(SCERRNB,"","","",0,.SCERRMSG)
 | 
|---|
| 113 |  ;
 | 
|---|
| 114 |  ;Get task status description
 | 
|---|
| 115 |  I 'SCERRNB D
 | 
|---|
| 116 |  . S ZTSK=$P($G(^SD(404.98,SCLOG,1)),U,3),ZTCPU=$P($G(^(1)),U,4)
 | 
|---|
| 117 |  . I ZTSK D
 | 
|---|
| 118 |  . . D STAT^%ZTLOAD
 | 
|---|
| 119 |  . . S SCTSKD=ZTSK(2)_U_ZTSK(1)
 | 
|---|
| 120 |  ;
 | 
|---|
| 121 |  S SCRESULT=SCERRNB_U_SCTSKD
 | 
|---|
| 122 |  ;
 | 
|---|
| 123 | TASKSTAQ Q
 | 
|---|
| 124 |  ;
 | 
|---|
| 125 | BLDSTR(E) ; -- Build error message string
 | 
|---|
| 126 |  ; Input  -- E        Error message array
 | 
|---|
| 127 |  ; Output -- Error message string for display purposes
 | 
|---|
| 128 |  N I,Y,STOP
 | 
|---|
| 129 |  S Y=""
 | 
|---|
| 130 |  S (I,STOP)=0
 | 
|---|
| 131 |  F  S I=$O(E(I)) Q:'I  D  Q:STOP
 | 
|---|
| 132 |  . I ($L(Y)+$L(E(I)))<240 S Y=Y_" "_E(I) Q
 | 
|---|
| 133 |  . S STOP=1
 | 
|---|
| 134 |  Q $G(Y)
 | 
|---|
| 135 | DTOK(SC) ; -- Verify that date range is OK
 | 
|---|
| 136 |  N SCERR,SCOK
 | 
|---|
| 137 |  S SCOK=1
 | 
|---|
| 138 |  D CHKDT(.SCERR,.SC)
 | 
|---|
| 139 |  G:$G(SCERR) DTOKQ
 | 
|---|
| 140 |  S SC("TEMPLNO")=DA,SC("TYPE")=1
 | 
|---|
| 141 |  D CHKDUP(.SCERR,.SC,"CST")
 | 
|---|
| 142 |  ;
 | 
|---|
| 143 | DTOKQ ;
 | 
|---|
| 144 |  I +$G(SCERR) W !!,*7,$P(SCERR,U,2),!! S SCOK=0
 | 
|---|
| 145 |  Q SCOK
 | 
|---|
| 146 |  ;
 | 
|---|
| 147 | CNVTSCH(SCLOG) ; -- Function determines if any convert was scheduled
 | 
|---|
| 148 |  ; Returns 0 if none scheduled, 1 if any ever scheduled
 | 
|---|
| 149 |  N SCSCH,Z
 | 
|---|
| 150 |  S SCSCH=0
 | 
|---|
| 151 |  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
 | 
|---|
| 152 |  Q SCSCH
 | 
|---|
| 153 |  ;
 | 
|---|
| 154 | JOURNAL(SCLOG) ; -- display journal message and global growth estimates
 | 
|---|
| 155 |  N DIC,DR,DIQ,DA,SCDATA,SCTOT,FLD
 | 
|---|
| 156 |  S DIC="404.98",DA=SCLOG,DR="207:211",DIQ="SCDATA",DIQ(0)="E"
 | 
|---|
| 157 |  D EN^DIQ1
 | 
|---|
| 158 |  S SCTOT=0
 | 
|---|
| 159 |  F FLD=207:1:211 S SCTOT=SCTOT+$G(SCDATA(404.98,SCLOG,FLD,"E"))
 | 
|---|
| 160 |  ;
 | 
|---|
| 161 |  W !
 | 
|---|
| 162 |  W !,">>> The estimated global growth profile for this template is the following:"
 | 
|---|
| 163 |  W !
 | 
|---|
| 164 |  W !,?10,"Global",?25,"Blocks",?40,"[Block Size: ",$$BLKSIZE^SCCVEGU1()," bytes]"
 | 
|---|
| 165 |  W !,?10,"---------",?25,"-----------"
 | 
|---|
| 166 |  W !,?10,"^SCE",?25,$J($FN($G(SCDATA(404.98,SCLOG,207,"E")),","),11)
 | 
|---|
| 167 |  W !,?10,"^AUPNVSIT",?25,$J($FN($G(SCDATA(404.98,SCLOG,208,"E")),","),11)
 | 
|---|
| 168 |  W !,?10,"^AUPNVPRV",?25,$J($FN($G(SCDATA(404.98,SCLOG,209,"E")),","),11)
 | 
|---|
| 169 |  W !,?10,"^AUPNVPOV",?25,$J($FN($G(SCDATA(404.98,SCLOG,210,"E")),","),11)
 | 
|---|
| 170 |  W !,?10,"^AUPNVCPT",?25,$J($FN($G(SCDATA(404.98,SCLOG,211,"E")),","),11)
 | 
|---|
| 171 |  W !,?10,"---------",?25,"-----------"
 | 
|---|
| 172 |  W !,?10,"Total",?25,$J($FN(SCTOT,","),11)
 | 
|---|
| 173 |  ;
 | 
|---|
| 174 |  W !
 | 
|---|
| 175 |  W !,">>> Please verify that enough global disk space and journal space"
 | 
|---|
| 176 |  W !,"    are available for these anticipated increases."
 | 
|---|
| 177 |  W !
 | 
|---|
| 178 |  W !,">>> Also, please verify that system backup is not scheduled to"
 | 
|---|
| 179 |  W !,"    run within the start and stop times of this conversion job."
 | 
|---|
| 180 |  W !
 | 
|---|
| 181 |  D PAUSE^SCCVU
 | 
|---|
| 182 |  Q
 | 
|---|
| 183 |  ;
 | 
|---|