XMCQH ;ISC-SF/GMB-Transmit Queue History ;01/08/2003 13:52
;;8.0;MailMan;**8,14**;Jun 28, 2002
; Was (WASH ISC)/CAP/AML/RJ
;
; Entry points used by MailMan options (not covered by DBIA):
; ENTER XMQHIST (was ^XMS4)
ENTER ;
N XMPARM,XMABORT
S XMABORT=0
D INIT(.XMPARM,.XMABORT) Q:XMABORT
S ZTSAVE("XMPARM(")=""
D EN^XUTMDEVQ("ENT^XMCQH",$$EZBLD^DIALOG(42100),.ZTSAVE) ; MailMan: Transmission Queue History Report
Q
INIT(XMPARM,XMABORT) ; Get period to report on. Default is current month.
S (XMPARM("START"),XMPARM("END"))=$E(DT,1,5)
Q:$D(ZTQUEUED)
D START(.XMPARM,.XMABORT) Q:XMABORT
D END(.XMPARM,.XMABORT)
Q
START(XMPARM,XMABORT) ; Start of report period
N DIR,Y,X
S DIR(0)="DO^:DT:E"
S DIR("A")=$$EZBLD^DIALOG(42107) ; Start of report period
D BLD^DIALOG(42107.1,"","","DIR(""?"")")
;Enter a month and year or just a year. Any day will be ignored.
;This is the start of the period you want reported. The report will
;start on the first day of the period you enter.
S DIR("B")=$$FMTE^XLFDT(XMPARM("START")_"00")
D ^DIR I $D(DUOUT)!$D(DTOUT) S XMABORT=1 Q
S XMPARM("START")=$E(Y,1,5)
Q
END(XMPARM,XMABORT) ; End of report period
S XMPARM("END")=XMPARM("START")
Q:$E(XMPARM("START"),1,5)=$E(DT,1,5) ; This month
Q:XMPARM("START")=($E(DT,1,3)_"00") ; This year
N DIR,Y,X,XMDT
S XMDT=XMPARM("START")
S:$E(XMDT,4,5)="00" XMDT=$E(XMDT,1,3)_"01"
S DIR(0)="DO^"_XMDT_"01:DT:E"
S DIR("A")=$$EZBLD^DIALOG(42108) ; End of report period
D BLD^DIALOG(42108.1,"","","DIR(""?"")")
;Enter a month and year or just a year. Press enter to accept the default.
;This is the end of the period you want reported. The report will go
;through the last day of the period you enter.
I $E(XMPARM("END"),4,5)="00" S XMPARM("END")=$E(XMPARM("END"),1,3)_"1200"
E S XMPARM("END")=$$SCH^XLFDT("1M(L)",XMPARM("END")_"01")
S DIR("B")=$$FMTE^XLFDT(XMPARM("END"))
D ^DIR I $D(DUOUT)!$D(DTOUT) S XMABORT=1 Q
S XMPARM("END")=$E(Y,1,5)
Q
ENT ;
N XMNAME,XMRPT,XMIEN,XMREC,XMABORT,XMQD,XMCNT,XMTITLE,XMMON,XMSENT,XMRCVD
;Transmission Queue History
;Domain Queued Sent Rcvd Domain Queued Sent Rcvd
I $E(XMPARM("END"),4,5)'="00",$E(XMPARM("START"),4,5)="00" D
. I $E(XMPARM("END"),4,5)=12 S XMPARM("END")=XMPARM("START") Q
. S $E(XMPARM("START"),4,5)="01"
I $E(XMPARM("END"),4,5)="00",$E(XMPARM("START"),4,5)'="00" D
. I $E(XMPARM("END"),1,3)=$E(DT,1,3) S XMPARM("END")=$E(DT,1,5) Q
. S $E(XMPARM("END"),4,5)=12
I XMPARM("START")=XMPARM("END") D
. S XMTITLE=$$EZBLD^DIALOG(42101,$$FMTE^XLFDT(XMPARM("START")_"00")) ;Transmission Queue History, |1|
E D
. N XMP S XMP(1)=$$FMTE^XLFDT(XMPARM("START")_"00"),XMP(2)=$$FMTE^XLFDT(XMPARM("END")_"00")
. S XMTITLE=$$EZBLD^DIALOG(42101.1,.XMP) ;Transmission Queue History, |1| - |2|
D INIT^XMCQA(.XMRPT,XMTITLE,42102)
I $E(XMPARM("END"),4,5)="00" S XMPARM("END")=$E(XMPARM("END"),1,3)_"12"
S XMNAME="",(XMCNT,XMABORT,XMCNT("SENT"),XMCNT("RCVD"),XMCNT("QD"))=0
F S XMNAME=$O(^DIC(4.2,"B",XMNAME)) Q:XMNAME="" D Q:XMABORT
. S XMIEN=""
. F S XMIEN=$O(^DIC(4.2,"B",XMNAME,XMIEN)) Q:'XMIEN D Q:XMABORT
. . S (XMSENT,XMRCVD)=0
. . S XMMON=XMPARM("START")-.01
. . F S XMMON=$O(^XMBS(4.2999,XMIEN,100,XMMON)) Q:XMMON>XMPARM("END")!'XMMON D
. . . S XMREC=$G(^XMBS(4.2999,XMIEN,100,XMMON,0))
. . . S XMSENT=XMSENT+$P(XMREC,U,2),XMRCVD=XMRCVD+$P(XMREC,U,3)
. . S XMQD=$$BMSGCT^XMXUTIL(.5,XMIEN+1000)
. . I 'XMQD,'XMSENT,'XMRCVD Q
. . S XMCNT("SENT")=XMCNT("SENT")+XMSENT
. . S XMCNT("RCVD")=XMCNT("RCVD")+XMRCVD
. . S XMCNT("QD")=XMCNT("QD")+XMQD
. . S XMCNT=XMCNT+1
. . I XMCNT#2 D Q:XMABORT
. . . I $Y+3>IOSL D Q:XMABORT
. . . . D PAGE^XMCQA(.XMABORT) Q:XMABORT
. . . . D HDR^XMCQA(.XMRPT)
. . . W !
. . E W " "
. . W $$MELD^XMXUTIL1(XMNAME,XMQD,22),$J(XMSENT,8),$J(XMRCVD,8)
Q:XMABORT
I $Y+7>IOSL D Q:XMABORT
. D PAGE^XMCQA(.XMABORT)
. D HDR^XMCQA(.XMRPT)
W !!,$$MELD^XMXUTIL1($$EZBLD^DIALOG(42103),XMCNT,27) ; Total Domains:
W !,$$MELD^XMXUTIL1($$EZBLD^DIALOG(42104),XMCNT("QD"),27) ; Total Queued:
W !,$$MELD^XMXUTIL1($$EZBLD^DIALOG(42105),XMCNT("SENT"),27) ; Total Sent:
W !,$$MELD^XMXUTIL1($$EZBLD^DIALOG(42106),XMCNT("RCVD"),27) ; Total Received:
I $D(ZTQUEUED) S ZTREQ="@"
Q
XMCQH ;ISC-SF/GMB-Transmit Queue History ;01/08/2003 13:52
+1 ;;8.0;MailMan;**8,14**;Jun 28, 2002
+2 ; Was (WASH ISC)/CAP/AML/RJ
+3 ;
+4 ; Entry points used by MailMan options (not covered by DBIA):
+5 ; ENTER XMQHIST (was ^XMS4)
ENTER ;
+1 NEW XMPARM,XMABORT
+2 SET XMABORT=0
+3 DO INIT(.XMPARM,.XMABORT)
IF XMABORT
QUIT
+4 SET ZTSAVE("XMPARM(")=""
+5 ; MailMan: Transmission Queue History Report
DO EN^XUTMDEVQ("ENT^XMCQH",$$EZBLD^DIALOG(42100),.ZTSAVE)
+6 QUIT
INIT(XMPARM,XMABORT) ; Get period to report on. Default is current month.
+1 SET (XMPARM("START"),XMPARM("END"))=$EXTRACT(DT,1,5)
+2 IF $DATA(ZTQUEUED)
QUIT
+3 DO START(.XMPARM,.XMABORT)
IF XMABORT
QUIT
+4 DO END(.XMPARM,.XMABORT)
+5 QUIT
START(XMPARM,XMABORT) ; Start of report period
+1 NEW DIR,Y,X
+2 SET DIR(0)="DO^:DT:E"
+3 ; Start of report period
SET DIR("A")=$$EZBLD^DIALOG(42107)
+4 DO BLD^DIALOG(42107.1,"","","DIR(""?"")")
+5 ;Enter a month and year or just a year. Any day will be ignored.
+6 ;This is the start of the period you want reported. The report will
+7 ;start on the first day of the period you enter.
+8 SET DIR("B")=$$FMTE^XLFDT(XMPARM("START")_"00")
+9 DO ^DIR
IF $DATA(DUOUT)!$DATA(DTOUT)
SET XMABORT=1
QUIT
+10 SET XMPARM("START")=$EXTRACT(Y,1,5)
+11 QUIT
END(XMPARM,XMABORT) ; End of report period
+1 SET XMPARM("END")=XMPARM("START")
+2 ; This month
IF $EXTRACT(XMPARM("START"),1,5)=$EXTRACT(DT,1,5)
QUIT
+3 ; This year
IF XMPARM("START")=($EXTRACT(DT,1,3)_"00")
QUIT
+4 NEW DIR,Y,X,XMDT
+5 SET XMDT=XMPARM("START")
+6 IF $EXTRACT(XMDT,4,5)="00"
SET XMDT=$EXTRACT(XMDT,1,3)_"01"
+7 SET DIR(0)="DO^"_XMDT_"01:DT:E"
+8 ; End of report period
SET DIR("A")=$$EZBLD^DIALOG(42108)
+9 DO BLD^DIALOG(42108.1,"","","DIR(""?"")")
+10 ;Enter a month and year or just a year. Press enter to accept the default.
+11 ;This is the end of the period you want reported. The report will go
+12 ;through the last day of the period you enter.
+13 IF $EXTRACT(XMPARM("END"),4,5)="00"
SET XMPARM("END")=$EXTRACT(XMPARM("END"),1,3)_"1200"
+14 IF '$TEST
SET XMPARM("END")=$$SCH^XLFDT("1M(L)",XMPARM("END")_"01")
+15 SET DIR("B")=$$FMTE^XLFDT(XMPARM("END"))
+16 DO ^DIR
IF $DATA(DUOUT)!$DATA(DTOUT)
SET XMABORT=1
QUIT
+17 SET XMPARM("END")=$EXTRACT(Y,1,5)
+18 QUIT
ENT ;
+1 NEW XMNAME,XMRPT,XMIEN,XMREC,XMABORT,XMQD,XMCNT,XMTITLE,XMMON,XMSENT,XMRCVD
+2 ;Transmission Queue History
+3 ;Domain Queued Sent Rcvd Domain Queued Sent Rcvd
+4 IF $EXTRACT(XMPARM("END"),4,5)'="00"
IF $EXTRACT(XMPARM("START"),4,5)="00"
Begin DoDot:1
+5 IF $EXTRACT(XMPARM("END"),4,5)=12
SET XMPARM("END")=XMPARM("START")
QUIT
+6 SET $EXTRACT(XMPARM("START"),4,5)="01"
End DoDot:1
+7 IF $EXTRACT(XMPARM("END"),4,5)="00"
IF $EXTRACT(XMPARM("START"),4,5)'="00"
Begin DoDot:1
+8 IF $EXTRACT(XMPARM("END"),1,3)=$EXTRACT(DT,1,3)
SET XMPARM("END")=$EXTRACT(DT,1,5)
QUIT
+9 SET $EXTRACT(XMPARM("END"),4,5)=12
End DoDot:1
+10 IF XMPARM("START")=XMPARM("END")
Begin DoDot:1
+11 ;Transmission Queue History, |1|
SET XMTITLE=$$EZBLD^DIALOG(42101,$$FMTE^XLFDT(XMPARM("START")_"00"))
End DoDot:1
+12 IF '$TEST
Begin DoDot:1
+13 NEW XMP
SET XMP(1)=$$FMTE^XLFDT(XMPARM("START")_"00")
SET XMP(2)=$$FMTE^XLFDT(XMPARM("END")_"00")
+14 ;Transmission Queue History, |1| - |2|
SET XMTITLE=$$EZBLD^DIALOG(42101.1,.XMP)
End DoDot:1
+15 DO INIT^XMCQA(.XMRPT,XMTITLE,42102)
+16 IF $EXTRACT(XMPARM("END"),4,5)="00"
SET XMPARM("END")=$EXTRACT(XMPARM("END"),1,3)_"12"
+17 SET XMNAME=""
SET (XMCNT,XMABORT,XMCNT("SENT"),XMCNT("RCVD"),XMCNT("QD"))=0
+18 FOR
SET XMNAME=$ORDER(^DIC(4.2,"B",XMNAME))
IF XMNAME=""
QUIT
Begin DoDot:1
+19 SET XMIEN=""
+20 FOR
SET XMIEN=$ORDER(^DIC(4.2,"B",XMNAME,XMIEN))
IF 'XMIEN
QUIT
Begin DoDot:2
+21 SET (XMSENT,XMRCVD)=0
+22 SET XMMON=XMPARM("START")-.01
+23 FOR
SET XMMON=$ORDER(^XMBS(4.2999,XMIEN,100,XMMON))
IF XMMON>XMPARM("END")!'XMMON
QUIT
Begin DoDot:3
+24 SET XMREC=$GET(^XMBS(4.2999,XMIEN,100,XMMON,0))
+25 SET XMSENT=XMSENT+$PIECE(XMREC,U,2)
SET XMRCVD=XMRCVD+$PIECE(XMREC,U,3)
End DoDot:3
+26 SET XMQD=$$BMSGCT^XMXUTIL(.5,XMIEN+1000)
+27 IF 'XMQD
IF 'XMSENT
IF 'XMRCVD
QUIT
+28 SET XMCNT("SENT")=XMCNT("SENT")+XMSENT
+29 SET XMCNT("RCVD")=XMCNT("RCVD")+XMRCVD
+30 SET XMCNT("QD")=XMCNT("QD")+XMQD
+31 SET XMCNT=XMCNT+1
+32 IF XMCNT#2
Begin DoDot:3
+33 IF $Y+3>IOSL
Begin DoDot:4
+34 DO PAGE^XMCQA(.XMABORT)
IF XMABORT
QUIT
+35 DO HDR^XMCQA(.XMRPT)
End DoDot:4
IF XMABORT
QUIT
+36 WRITE !
End DoDot:3
IF XMABORT
QUIT
+37 IF '$TEST
WRITE " "
+38 WRITE $$MELD^XMXUTIL1(XMNAME,XMQD,22),$JUSTIFY(XMSENT,8),$JUSTIFY(XMRCVD,8)
End DoDot:2
IF XMABORT
QUIT
End DoDot:1
IF XMABORT
QUIT
+39 IF XMABORT
QUIT
+40 IF $Y+7>IOSL
Begin DoDot:1
+41 DO PAGE^XMCQA(.XMABORT)
+42 DO HDR^XMCQA(.XMRPT)
End DoDot:1
IF XMABORT
QUIT
+43 ; Total Domains:
WRITE !!,$$MELD^XMXUTIL1($$EZBLD^DIALOG(42103),XMCNT,27)
+44 ; Total Queued:
WRITE !,$$MELD^XMXUTIL1($$EZBLD^DIALOG(42104),XMCNT("QD"),27)
+45 ; Total Sent:
WRITE !,$$MELD^XMXUTIL1($$EZBLD^DIALOG(42105),XMCNT("SENT"),27)
+46 ; Total Received:
WRITE !,$$MELD^XMXUTIL1($$EZBLD^DIALOG(42106),XMCNT("RCVD"),27)
+47 IF $DATA(ZTQUEUED)
SET ZTREQ="@"
+48 QUIT