| 1 | KMPDTU02 ;OAK/RAK - CP Tools Compile & File Daily Timing Stats ;2/17/04  09:43
 | 
|---|
| 2 |  ;;2.0;CAPACITY MANAGEMENT TOOLS;;Mar 22, 2002
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | DAILY ;(KMPDST,KMPDEN);-entry point
 | 
|---|
| 5 |  ;-----------------------------------------------------------------------
 | 
|---|
| 6 |  ; KMPDST... Start date in internal fileman format.
 | 
|---|
| 7 |  ; KMPDEN... End date in internal fileman format.
 | 
|---|
| 8 |  ;
 | 
|---|
| 9 |  ; This API gathers Timing data from ^KMPTMP("KMPDT") and stores it in
 | 
|---|
| 10 |  ; file 8973.2 (CP TIMING)
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 |  ;-----------------------------------------------------------------------
 | 
|---|
| 13 |  ;
 | 
|---|
| 14 |  ;Q:'$G(KMPDST)
 | 
|---|
| 15 |  ;Q:'$G(KMPDEN)
 | 
|---|
| 16 |  ; make sure end date has hours
 | 
|---|
| 17 |  ;S:'$P(KMPDEN,".",2) $P(KMPDEN,".",2)="99"
 | 
|---|
| 18 |  ;S:'$G(DT) DT=$$DT^XLFDT
 | 
|---|
| 19 |  ;
 | 
|---|
| 20 |  W:'$D(ZTQUEUED) !,"Compiling Timing data..."
 | 
|---|
| 21 |  D COMPILE
 | 
|---|
| 22 |  ;
 | 
|---|
| 23 |  Q
 | 
|---|
| 24 |  ;
 | 
|---|
| 25 | COMPILE ;-- compile & file timing data
 | 
|---|
| 26 |  ;
 | 
|---|
| 27 |  Q:$O(^KMPTMP("KMPDT",""))=""
 | 
|---|
| 28 |  N COUNT,DATA,DATA1,ID,OK,SBSCR,TODAY
 | 
|---|
| 29 |  S TODAY=$P($H,",") Q:'TODAY
 | 
|---|
| 30 |  S SBSCR="",COUNT=0
 | 
|---|
| 31 |  F  S SBSCR=$O(^KMPTMP("KMPDT",SBSCR)) Q:SBSCR=""  S ID="" D 
 | 
|---|
| 32 |  .F  S ID=$O(^KMPTMP("KMPDT",SBSCR,ID)) Q:ID=""  S DATA=^(ID) D 
 | 
|---|
| 33 |  ..; quit if not 'previous' to DT
 | 
|---|
| 34 |  ..Q:$P($P(DATA,U),".")'<TODAY
 | 
|---|
| 35 |  ..; set up DATA1 for filing
 | 
|---|
| 36 |  ..; identifier
 | 
|---|
| 37 |  ..S $P(DATA1,U)=ID
 | 
|---|
| 38 |  ..; server start date/time in internal fileman format
 | 
|---|
| 39 |  ..S $P(DATA1,U,3)=$$HTFM^XLFDT($P(DATA,U))
 | 
|---|
| 40 |  ..; server delta
 | 
|---|
| 41 |  ..S:$P(DATA,U,2) $P(DATA1,U,4)=$$HDIFF^XLFDT($P(DATA,U,2),$P(DATA,U),2)
 | 
|---|
| 42 |  ..; person
 | 
|---|
| 43 |  ..S $P(DATA1,U,5)=$P(DATA,U,3)
 | 
|---|
| 44 |  ..; client name
 | 
|---|
| 45 |  ..S $P(DATA1,U,6)=$P(DATA,U,4)
 | 
|---|
| 46 |  ..; kmptmp subscript
 | 
|---|
| 47 |  ..S $P(DATA1,U,7)=SBSCR
 | 
|---|
| 48 |  ..; title
 | 
|---|
| 49 |  ..S $P(DATA1,U,8)=$$TITLEG(SBSCR)
 | 
|---|
| 50 |  ..; ip address
 | 
|---|
| 51 |  ..S $P(DATA1,U,9)=$P($P(ID,"-")," ",2)
 | 
|---|
| 52 |  ..; file data
 | 
|---|
| 53 |  ..D FILE(DATA1,.OK)
 | 
|---|
| 54 |  ..; update counter if successfully filed
 | 
|---|
| 55 |  ..S:OK COUNT=COUNT+1
 | 
|---|
| 56 |  ..; kill of old node if successfully filed
 | 
|---|
| 57 |  ..K:OK ^KMPTMP("KMPDT",SBSCR,ID)
 | 
|---|
| 58 |  ..I '$D(ZTQUEUED) W:'(COUNT#100) "."
 | 
|---|
| 59 |  ;
 | 
|---|
| 60 |  W:'$D(ZTQUEUED) !,COUNT," records filed!"
 | 
|---|
| 61 |  ;
 | 
|---|
| 62 |  Q
 | 
|---|
| 63 |  ;
 | 
|---|
| 64 | FILE(DATA,KMPDOK) ;-- file timing data into file #8973.2
 | 
|---|
| 65 |  ;-----------------------------------------------------------------------
 | 
|---|
| 66 |  ; DATA.... Data to file in format:
 | 
|---|
| 67 |  ;          piece "^" 1 - id
 | 
|---|
| 68 |  ;                    3 - start date/time in internal fileman format
 | 
|---|
| 69 |  ;                    4 - delta
 | 
|---|
| 70 |  ;                    5 - new person
 | 
|---|
| 71 |  ;                    6 - client name
 | 
|---|
| 72 |  ;                    7 - kmptmp subscript
 | 
|---|
| 73 |  ;                    8 - title
 | 
|---|
| 74 |  ;                    9 - ip address
 | 
|---|
| 75 |  ;
 | 
|---|
| 76 |  ; KMPDOK.. Returned
 | 
|---|
| 77 |  ;            0 - not filed successfully
 | 
|---|
| 78 |  ;            1 - filed successfully
 | 
|---|
| 79 |  ;-----------------------------------------------------------------------
 | 
|---|
| 80 |  ;
 | 
|---|
| 81 |  S KMPDOK=0
 | 
|---|
| 82 |  Q:$G(DATA)=""
 | 
|---|
| 83 |  ; id
 | 
|---|
| 84 |  Q:$P(DATA,U)=""
 | 
|---|
| 85 |  ; start date/time
 | 
|---|
| 86 |  Q:$P(DATA,U,3)=""
 | 
|---|
| 87 |  ;
 | 
|---|
| 88 |  N ERROR,FDA,I,IEN,ZIEN
 | 
|---|
| 89 |  ; build fda() array for filing
 | 
|---|
| 90 |  F I=1:1:9 I $P(DATA,U,I)'="" D 
 | 
|---|
| 91 |  .S FDA($J,8973.2,"+1,",(I*.01))=$P(DATA,U,I)
 | 
|---|
| 92 |  ; quit if no fda() array
 | 
|---|
| 93 |  Q:'$D(FDA($J))
 | 
|---|
| 94 |  ; file data
 | 
|---|
| 95 |  D UPDATE^DIE("","FDA($J)","ZIEN","ERROR")
 | 
|---|
| 96 |  ; if error
 | 
|---|
| 97 |  I $D(ERROR) D MSG^DIALOG("HA",.ERROR,60,5,"ERROR") Q
 | 
|---|
| 98 |  S KMPDOK=1
 | 
|---|
| 99 |  ;
 | 
|---|
| 100 |  Q
 | 
|---|
| 101 |  ;
 | 
|---|
| 102 | TITLEG(SBSCR) ;-- extrinsic function - return title name
 | 
|---|
| 103 |  Q:$G(SBSCR)="" ""
 | 
|---|
| 104 |  N I,TITLE,X S TITLE=""
 | 
|---|
| 105 |  F I=1:1 S X=$T(TITLE+I) Q:X=""  I $P(X,";",3)=SBSCR S TITLE=$P(X,";",4) Q
 | 
|---|
| 106 |  Q TITLE
 | 
|---|
| 107 |  ;
 | 
|---|
| 108 | TITLE ;-- convert subscript to title
 | 
|---|
| 109 |  ;;ORWCV;CPRS Cover Sheet
 | 
|---|