Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: KMPRPT

KMPRPT.m

Go to the documentation of this file.
  1. KMPRPT ;OAK/RAK - RUM Data by Option/Protocol/RPC ;12/2/05 10:01
  1. ;;2.0;CAPACITY MANAGEMENT - RUM;**2**;May 28, 2003;Build 12
  1. EN ;-- entry point.
  1. ;
  1. N %ZIS,KMPRDATE,KMPRNODE,KMPROPT,KMPRTTL,OUT,POP,X,Y
  1. N ZTDESC,ZTRTN,ZTSAVE,ZTSK
  1. ;
  1. ; title
  1. S KMPRTTL=" RUM Test Lab Data "
  1. D HDR^KMPDUTL4(KMPRTTL)
  1. ; select date
  1. S KMPRDATE=$$DATE Q:KMPRDATE=""
  1. ; node
  1. S KMPRNODE=$P(KMPRDATE,U,2) Q:KMPRNODE=""
  1. S KMPRDATE=$P(KMPRDATE,U,3) Q:'KMPRDATE
  1. ; select option
  1. W ! S KMPROPT=$$OPTION(KMPRNODE,KMPRDATE)
  1. I KMPROPT="" W $C(7),!?3,"No Options for this Date!" Q
  1. ; select output device.
  1. S %ZIS="Q",%ZIS("A")="Device: ",%ZIS("B")="HOME"
  1. W ! D ^%ZIS I POP W !,"No action taken." Q
  1. ; if queued.
  1. I $D(IO("Q")) K IO("Q") D Q
  1. .S ZTDESC=KMPRTTL
  1. .S ZTRTN="EN1^KMPRPT"
  1. .S ZTSAVE("KMPRDATE")="",ZTSAVE("KMPRNODE")="",ZTSAVE("KMPROPT")=""
  1. .S ZTSAVE("KMPRTTL")=""
  1. .D ^%ZTLOAD W:$G(ZTSK) !,"Task #",ZTSK
  1. .D EXIT
  1. ;
  1. ; if output to terminal display message.
  1. W:$E(IOST,1,2)="C-" !?3,"compiling data..."
  1. D EN1
  1. ;
  1. Q
  1. ;
  1. EN1 ;-- entry point from taskman.
  1. ;
  1. Q:'$G(KMPRDATE)
  1. Q:$G(KMPRNODE)=""
  1. Q:$G(KMPROPT)=""
  1. ;
  1. S KMPRTTL=$G(KMPRTTL)
  1. ;
  1. K ^TMP($J)
  1. D DATA,PRINT,EXIT
  1. K ^TMP($J)
  1. ;
  1. Q
  1. ;
  1. DATA ;-- set data into KMPRARRY
  1. ;
  1. Q:'$G(KMPRDATE)
  1. Q:$G(KMPRNODE)=""
  1. Q:$G(KMPROPT)=""
  1. ;
  1. N CNT,CONT,DATA,DATE,FMHDATE,HDATE,HR,I,JOB,LAB,MINUTES,OPT,OPTION,QUIET
  1. ;
  1. S QUIET=$D(ZTQUEUED)
  1. ;
  1. K ^TMP($J)
  1. S FMHDATE=+$$HTFM^XLFDT(KMPRDATE,1)
  1. ;
  1. S HR=""
  1. F S HR=$O(^KMPTMP("KMPR","DLY",KMPRNODE,KMPRDATE,HR)) Q:HR="" D
  1. .S OPTION=""
  1. .F S OPTION=$O(^KMPTMP("KMPR","DLY",KMPRNODE,KMPRDATE,HR,OPTION)) Q:OPTION="" D
  1. ..S OPT=$$OPT(OPTION) Q:OPTION=""
  1. ..Q:OPT'=KMPROPT
  1. ..S JOB=0
  1. ..F S JOB=$O(^KMPTMP("KMPR","DLY",KMPRNODE,KMPRDATE,HR,OPTION,JOB)) Q:'JOB D
  1. ...;
  1. ...S DATA=^KMPTMP("KMPR","DLY",KMPRNODE,KMPRDATE,HR,OPTION,JOB)
  1. ...S MINUTES=$P(DATA,U,10,999)
  1. ...;
  1. ...S LAB=""
  1. ...; if current data is negative
  1. ...I $P(LAB,U,5)<0 D
  1. ....S $P(^KMPTMP("KMPR","NEG","DLY",OPTION,"C"),U,5)=$P(LAB,U,5)
  1. ...;
  1. ...; if new data is negative
  1. ...I ($P(DATA,U,5)<0) D
  1. ....S $P(^KMPTMP("KMPR","NEG","DLY",OPTION,"N"),U,5)=$P(DATA,U,5)
  1. ...;
  1. ...; if sum of pieces are negative
  1. ...I ($P(LAB,U,5)+$P(DATA,U,5))<0 D
  1. ....S $P(^KMPTMP("KMPR","NEG","DLY",OPTION,"T"),U,5)=($P(LAB,U,5))_"+"_($P(DATA,U,5))_"="_($P(LAB,U,5)+$P(DATA,U,5))
  1. ...;
  1. ...; accumulate totals
  1. ...; data elements - pieces 1 - 8
  1. ...F I=1:1:8 S $P(LAB,U,I)=$P($G(LAB),U,I)+$P(DATA,U,I)
  1. ...;
  1. ...; CNT(1) = minutes 0 = 29
  1. ...; CNT(2) = minutes 30 = 59
  1. ...F I=1:1:30 S $P(CNT(1),U,I)=$P(MINUTES,U,I)
  1. ...F I=31:1:60 S $P(CNT(2),U,(I-30))=$P(MINUTES,U,I)
  1. ...;
  1. ...S ^TMP($J,FMHDATE,KMPRNODE,OPT,HR)=LAB
  1. ...F I=1:1:30 S $P(^TMP($J,FMHDATE,KMPRNODE,OPT,HR,1),U,I)=$P($G(^TMP($J,FMHDATE,KMPRNODE,OPT,HR,1)),U,I)+$P(CNT(1),U,I)
  1. ...F I=1:1:30 S $P(^TMP($J,FMHDATE,KMPRNODE,OPT,HR,2),U,I)=$P($G(^TMP($J,FMHDATE,KMPRNODE,OPT,HR,2)),U,I)+$P(CNT(2),U,I)
  1. ...W:'QUIET "."
  1. ;
  1. Q
  1. ;
  1. PRINT ;
  1. ;
  1. N DATA,DATE,ELEMENTS,HR,MINUTES,NODE,OCCUR,OPTION
  1. I '$D(^TMP($J)) W !?3,"No Data to Report!" W @IOF,!?($L(KMPRTTL)\2),KMPRTTL,! Q
  1. ;
  1. S DATE=0,CONT=1
  1. F S DATE=$O(^TMP($J,DATE)) Q:'DATE S NODE="" D Q:'CONT
  1. .F S NODE=$O(^TMP($J,DATE,NODE)) Q:NODE="" S OPTION="" D Q:'CONT
  1. ..F S OPTION=$O(^TMP($J,DATE,NODE,OPTION)) Q:OPTION="" S HR=0 D Q:'CONT
  1. ...D HDR
  1. ...F S HR=$O(^TMP($J,DATE,NODE,OPTION,HR)) Q:'HR D Q:'CONT
  1. ....Q:'$D(^TMP($J,DATE,NODE,OPTION,HR))#10 S DATA=^(HR)
  1. ....S ELEMENTS=$P(DATA,U,1,8)
  1. ....S OCCUR=$P(DATA,U,8)
  1. ....S MINUTES=$P(DATA,U,10,99)
  1. ....W !,$J(HR,3)
  1. ....W ?6,$J($FN($S($P(ELEMENTS,U):$P(ELEMENTS,U)/OCCUR,1:$P(ELEMENTS,U)),",",1),5)
  1. ....W ?14,$J($FN($S($P(ELEMENTS,U,2):$P(ELEMENTS,U,2)/OCCUR,1:$P(ELEMENTS,U,2)),",",1),5)
  1. ....W ?22,$J($FN($S($P(ELEMENTS,U,3):$P(ELEMENTS,U,3)/OCCUR,1:$P(ELEMENTS,U,3)),",",1),5)
  1. ....W ?30,$J($FN($S($P(ELEMENTS,U,4):$P(ELEMENTS,U,4)/OCCUR,1:$P(ELEMENTS,U,4)),",",1),5)
  1. ....W ?41,$J($FN($S($P(ELEMENTS,U,5):$P(ELEMENTS,U,5)/OCCUR,1:$P(ELEMENTS,U,5)),",",1),10)
  1. ....W ?53,$J($FN($S($P(ELEMENTS,U,6):$P(ELEMENTS,U,6)/OCCUR,1:$P(ELEMENTS,U,6)),",",1),10)
  1. ....; elapsed time in hr:mn:sc format
  1. ....S X=$S($P(ELEMENTS,U,7):$P(ELEMENTS,U,7)/OCCUR,1:$P(ELEMENTS,U,7))
  1. ....W ?65,$J($FN($$TIME(X),",",1),8)
  1. ....W ?75,$J(OCCUR,3)
  1. ...D CONTINUE^KMPDUTL4("Press RETURN to continue",3,.CONT)
  1. Q
  1. ;
  1. EXIT ;--cleanup
  1. S:$D(ZTQUEUED) ZTREQ="@"
  1. K KMPRDATE,KMPRNODE,KMPROPT,KMPRTTL
  1. ;
  1. Q
  1. ;
  1. DATE() ;--extrinsic function - select list of dates
  1. ;-----------------------------------------------------------------------------
  1. ; Return: FileManExternalDate^NodeName^$HDate
  1. ; "" - no entry selected
  1. ;-----------------------------------------------------------------------------
  1. N CNT,DIC,DOT,FMDT,HDT,NODE,X,Y
  1. K ^TMP("KMPRPT-LIST",$J)
  1. S NODE="",(CNT,DOT)=0
  1. F S NODE=$O(^KMPTMP("KMPR","DLY",NODE)) Q:NODE="" S HDT=0 D
  1. .F S HDT=$O(^KMPTMP("KMPR","DLY",NODE,HDT)) Q:'HDT D
  1. ..S FMDT=$$FMTE^XLFDT($$HTFM^XLFDT(HDT))
  1. ..S CNT=CNT+1,DOT=DOT+1 W:'(DOT#100) "."
  1. ..S ^TMP("KMPRPT-LIST",$J,CNT,0)=FMDT_"^"_NODE_"^"_HDT
  1. ..S ^TMP("KMPRPT-LIST",$J,"B",FMDT,CNT)=""
  1. S ^TMP("KMPRPT-LIST",$J,0)="RUM Date^1.01^"_CNT_"^"_CNT
  1. S DIC="^TMP(""KMPRPT-LIST"",$J,"
  1. S DIC(0)="E",X="?" D ^DIC
  1. S DIC(0)="AEQZ"
  1. S DIC("A")="Select RUM Date: "
  1. S DIC("W")="W "" - ""_$P(^(0),U,2)"
  1. D ^DIC
  1. K ^TMP("KMPRPT-LIST",$J)
  1. Q $S(Y<1:"",1:$G(Y(0)))
  1. Q
  1. Q ""
  1. ;
  1. HDR ;--header info
  1. W @IOF
  1. W ?((80-$L(KMPRTTL))\2),KMPRTTL
  1. S X=$$FMTE^XLFDT(DATE)
  1. W !?((80-$L(X))\2),X
  1. S X="Option: "_OPTION_" Node: "_NODE
  1. W !?((80-$L(X)\2)),X
  1. ;S X="Option: "_OPTION
  1. ;W !?((80-$L(X))\2),X
  1. W !
  1. W !?3,"|---------------------------Per Occurrence------------------------|"
  1. W !,"Hour",?6," CPU",?14," DIO",?22," BIO",?30," Page",?41,"M Commands",?53," Global",?65,"Elapsed",?75,"Occ"
  1. W !?6,"Time",?30,"Faults",?53,"References",?65," Time"
  1. W !,$$REPEAT^XLFSTR("-",IOM)
  1. ;
  1. ;
  1. OPTION(KMPRNODE,KMPRDATE) ;--extrinsic function - select list of options to display
  1. ;-----------------------------------------------------------------------------
  1. ; KMPRNODE... node
  1. ; KMPRDATE... date in $h format
  1. ;
  1. ; Return: FileManExternalDate^NodeName^$HDate
  1. ; "" - no entry selected
  1. ;-----------------------------------------------------------------------------
  1. Q:'$G(KMPRDATE) ""
  1. Q:$G(KMPRNODE)="" ""
  1. N CNT,DIC,DOT,FMDT,HDT,NODE,X,Y
  1. K ^TMP("KMPRPT-LIST",$J)
  1. S HR="",(CNT,DOT)=0
  1. F S HR=$O(^KMPTMP("KMPR","DLY",KMPRNODE,KMPRDATE,HR)) Q:HR="" S OPTION="" D
  1. .F S OPTION=$O(^KMPTMP("KMPR","DLY",KMPRNODE,KMPRDATE,HR,OPTION)) Q:OPTION="" D
  1. ..S OPT=$$OPT(OPTION) Q:OPT=""
  1. ..Q:$O(^TMP("KMPRPT-LIST",$J,"B",OPT,0))
  1. ..S CNT=CNT+1,DOT=DOT+1 W:'(DOT#100) "."
  1. ..S ^TMP("KMPRPT-LIST",$J,CNT,0)=OPT
  1. ..S ^TMP("KMPRPT-LIST",$J,"B",OPT,CNT)=""
  1. ;
  1. Q:'CNT ""
  1. S ^TMP("KMPRPT-LIST",$J,0)="RUM Option^1.01^"_CNT_"^"_CNT
  1. S DIC="^TMP(""KMPRPT-LIST"",$J,"
  1. S DIC(0)="E",X="??" D ^DIC
  1. S DIC(0)="AEQZ"
  1. S DIC("A")="Select RUM Option: "
  1. D ^DIC
  1. K ^TMP("KMPRPT-LIST",$J)
  1. Q $S(Y<1:"",1:$G(Y(0)))
  1. ;
  1. OPT(KMPROPT) ;--extrinsic function - option name
  1. ;-----------------------------------------------------------------------------
  1. ; KMPROPT... option name as stored in ^KMPTMP("KMPR","DLY"
  1. ;
  1. ; Return: OptionName
  1. ; "" - if not option
  1. ;-----------------------------------------------------------------------------
  1. Q:$G(KMPROPT)="" ""
  1. ; quit if protocol
  1. Q:$E(KMPROPT)="!" ""
  1. ; quit if job queued
  1. Q:$E(KMPROPT)="$" ""
  1. Q $P(KMPROPT,"***")
  1. ;
  1. TIME(X) ;-- extrinsic function - display time as hr:mn:sc
  1. Q:'$G(X) 0
  1. N %
  1. S %=X,X="" S:%'<86400 X=(%\86400) S:%#86400 X=X_" "_(%#86400\3600)_":"_$E(%#3600\60+100,2,3)_":"_$E(%#60+100,2,3)
  1. Q X