| 1 | KMPDU ;OAK/RAK - CM Tools Utility ;2/17/04  09:47 | 
|---|
| 2 | ;;2.0;CAPACITY MANAGEMENT TOOLS;**2**;Mar 22, 2002 | 
|---|
| 3 | ; | 
|---|
| 4 | GBLCHECK(GLOBAL) ;-- extrinsic function | 
|---|
| 5 | ;----------------------------------------------------------------------- | 
|---|
| 6 | ; GLOBAL.. Global name to be checked.  Must be either: | 
|---|
| 7 | ;              ^XTMP | 
|---|
| 8 | ;              ^TMP | 
|---|
| 9 | ;              ^UTILITY | 
|---|
| 10 | ; | 
|---|
| 11 | ; RESUTL: 0 - Does not pass. | 
|---|
| 12 | ;         1 - Passes. | 
|---|
| 13 | ;----------------------------------------------------------------------- | 
|---|
| 14 | Q:$G(GLOBAL)="" 0 | 
|---|
| 15 | N GBL,I,RESULT | 
|---|
| 16 | S RESULT=0 | 
|---|
| 17 | S GBL=GLOBAL | 
|---|
| 18 | ;-- remove '^'. | 
|---|
| 19 | S GBL=$E(GBL,2,$L(GBL)) | 
|---|
| 20 | ;-- remove '('. | 
|---|
| 21 | S GBL=$P(GBL,"(") | 
|---|
| 22 | F I="XTMP","TMP","UTILITY" I GBL=I S RESULT=1 Q | 
|---|
| 23 | Q RESULT | 
|---|
| 24 | ; | 
|---|
| 25 | FMDTI(Y,X) ;-- date/time in internal fileMan format. | 
|---|
| 26 | ;---------------------------------------------------------------------- | 
|---|
| 27 | ;     X - User response ('T', '12/12/94', etc.) | 
|---|
| 28 | ; | 
|---|
| 29 | ; Return: Y(0)=InternalFilemanDate | 
|---|
| 30 | ;         Y(1)=ExternalFilemanDate | 
|---|
| 31 | ;---------------------------------------------------------------------- | 
|---|
| 32 | K Y | 
|---|
| 33 | I $G(X)']"" S Y(0)="^" Q | 
|---|
| 34 | N %DT,DATETIME | 
|---|
| 35 | S %DT="ST" D ^%DT | 
|---|
| 36 | S DATETIME=$S(Y>0:Y,1:"^") | 
|---|
| 37 | K Y | 
|---|
| 38 | ;-- fm internal format. | 
|---|
| 39 | S Y(0)=DATETIME | 
|---|
| 40 | ;-- external format. | 
|---|
| 41 | S Y(1)=$$FMTE^XLFDT(DATETIME) | 
|---|
| 42 | Q | 
|---|
| 43 | ; | 
|---|
| 44 | KILL(RESULT,VARIABLE) ;-- kill variables. | 
|---|
| 45 | ;----------------------------------------------------------------------- | 
|---|
| 46 | ;  VARIABLE... local or global variable to be killed. | 
|---|
| 47 | ; | 
|---|
| 48 | ; This subroutine kills variables (local or global).  It should be used | 
|---|
| 49 | ; mostly to kill global variables that have been set when components | 
|---|
| 50 | ; have been populated with long lists that were set into temporary | 
|---|
| 51 | ; globals.  If VARIABLE is a global variable, it must be either ^TMP or | 
|---|
| 52 | ; ^UTILITY to be killed. | 
|---|
| 53 | ;----------------------------------------------------------------------- | 
|---|
| 54 | K RESULT S RESULT="" | 
|---|
| 55 | I $G(VARIABLE)="" S RESULT="[No variable to kill]" Q | 
|---|
| 56 | I $E(VARIABLE)="^" D  Q:RESULT]"" | 
|---|
| 57 | .I '$$GBLCHECK(VARIABLE) D | 
|---|
| 58 | ..S RESULT="[Can only kill globals ^XTMP, ^TMP or ^UTILITY]" | 
|---|
| 59 | K @VARIABLE | 
|---|
| 60 | S RESULT="<"_VARIABLE_" killed>" | 
|---|
| 61 | Q | 
|---|
| 62 | ; | 
|---|
| 63 | TIMEADD(KMPDTM,KMPDADD) ;-- extrinsic function - add time | 
|---|
| 64 | ;---------------------------------------------------------------------- | 
|---|
| 65 | ; KMPDTM... Current time in dy hr:mn:sc format | 
|---|
| 66 | ; KMPDTM... Time to add to current time in dy hr:mn:sc format | 
|---|
| 67 | ; | 
|---|
| 68 | ; RETURN: total in dy hr:mn:sc format | 
|---|
| 69 | ;---------------------------------------------------------------------- | 
|---|
| 70 | Q:$G(KMPDTM)="" "" | 
|---|
| 71 | Q:$G(KMPDADD)="" KMPDTM | 
|---|
| 72 | N DY,HR,MN,SC | 
|---|
| 73 | ; current time | 
|---|
| 74 | S DY(1)=+$P(KMPDTM," ") | 
|---|
| 75 | S HR(1)=+$P($P(KMPDTM," ",2),":") | 
|---|
| 76 | S MN(1)=+$P($P(KMPDTM," ",2),":",2) | 
|---|
| 77 | S SC(1)=+$P($P(KMPDTM," ",2),":",3) | 
|---|
| 78 | ; time to be added | 
|---|
| 79 | S DY(2)=+$P(KMPDADD," ") | 
|---|
| 80 | S HR(2)=+$P($P(KMPDADD," ",2),":") | 
|---|
| 81 | S MN(2)=+$P($P(KMPDADD," ",2),":",2) | 
|---|
| 82 | S SC(2)=+$P($P(KMPDADD," ",2),":",3) | 
|---|
| 83 | ; add seconds | 
|---|
| 84 | S SC(3)=SC(1)+SC(2) | 
|---|
| 85 | ; if greater than 59 seconds | 
|---|
| 86 | I SC(3)>59 S MN(3)=SC(3)\60,SC(3)=SC(3)-60 | 
|---|
| 87 | ; add minutes | 
|---|
| 88 | S MN(3)=$G(MN(3))+MN(1)+MN(2) | 
|---|
| 89 | ; if greater than 59 minutes | 
|---|
| 90 | I MN(3)>59 S HR(3)=MN(3)\60,MN(3)=MN(3)-60 | 
|---|
| 91 | ; add hours | 
|---|
| 92 | S HR(3)=$G(HR(3))+HR(1)+HR(2) | 
|---|
| 93 | ; if greater than 23 hours | 
|---|
| 94 | I HR(3)>23 S DY(3)=HR(3)\24,HR(3)=HR(3)-24 | 
|---|
| 95 | ; days | 
|---|
| 96 | S DY(3)=$G(DY(3))+DY(1)+DY(2) | 
|---|
| 97 | ; | 
|---|
| 98 | Q DY(3)_" "_HR(3)_":"_MN(3)_":"_SC(3) | 
|---|