XMPH ;(WASH ISC)/THM/CAP-PackMan Load Routines/Print Msg ;12/04/2002 13:48
;;8.0;MailMan;**10**;Jun 28, 2002
; Entry points used by MailMan options (not covered by DBIA):
; LOAD XMPROU - Load routines
;USER ENTRY LIST OF ROUTINES
Q
DEV ;GET OUTPUT DEVICE / QUEUE PACKMAN PRINT
N I,ZTSAVE
F I="DIE","XMZ","XMDUZ","XMV(","XMP2","XMR","XCF" S ZTSAVE(I)=""
D EN^XUTMDEVQ("ZTSK^XMPH","MailMan: PackMan Print",.ZTSAVE)
Q
ZTSK ;QUEUED PRINT COMES HERE
N XMSUBJ,XMZSTR
I XCF=3 D
. D TOP^XMPC
E I $E($G(IOST),1,2)'="C-" D
. N XMPARM,XMZREC
. S XMZREC=$G(^XMB(3.9,XMZ,0))
. W $$EZBLD^DIALOG($S($P(XMZREC,U,7)["K":34076,1:34077)) ; KIDS Build / PackMan message
. W $S(XMP2="T":" text print for ",1:" print for "),XMV("NAME")
. S XMPARM(1)=^XMB("NETNAME"),XMPARM(2)=$$MMDT^XMXUTIL1($$NOW^XLFDT)
. W !,$$EZBLD^DIALOG(34503,.XMPARM) ; Printed at |1| |2|
. Q:XMP2="S"
. S XMSUBJ=$$EZBLD^DIALOG(34536,$$SUBJ^XMXUTIL2(XMZREC)) ; Subj: |1|
. S XMZSTR=$$EZBLD^DIALOG(34537,XMZ) ; [#|1|]
. W !,XMSUBJ
. D W^XMJMP1(" ",XMZSTR)
. D W^XMJMP1(" ",$$DATE^XMXUTIL2(XMZREC))
. D WL^XMJMP1($$EZBLD^DIALOG(34538,$$NAME^XMXUTIL($P(XMZREC,U,2),1))) ; From:
. D W^XMJMP1(" ",$$EZBLD^DIALOG(34541)) ; Page 1
. D LINE^XMJMP1
. W !
D S^XMP2
I $D(ZTQUEUED) S ZTREQ="@"
Q
LOAD ;LOAD ROUTINE FROM <X> INTO GLOBAL <DIF>_I_",0)"
;
;DIFROM NEEDS A MESSAGE NUMBER
;
S (DIE,DIF)="^XMB(3.9,XMZ,2,"
I $D(DIFROM) W !!,"Please enter the names of the routines you wish to load into this message.",!!,"Only routines will be loaded."
I W !!,"INITs, will be sent automatically.",!!
;K ^UTILITY($J#256)
X ^%ZOSF("RSEL") Q:$O(^UTILITY($J,0))=""
S X=0 S:'$D(XCNP) XCNP=0
F S X=$O(^UTILITY($J,X)) Q:X="" D LL
K ^UTILITY($J)
Q
LL N XMHOLD S XMHOLD=XCNP
W !,"Loading ",X S DIF=DIE,XCNP=XCNP+1,@(DIF_XCNP_",0)")="$ROU "_X
X ^%ZOSF("LOAD") S $P(@(DIF_"0)"),U,3,4)=XCNP_U_XCNP
S @(DIF_XCNP_",0)")="$END ROU "_X
;
;Check for control characters in text
F XMHOLD=XMHOLD:1:XCNP I $G(@(DIF_XMHOLD_",0)"))?.E1C.E D S XQCH="HALT" G H^XUS
. W !!,$C(7),"Errored out loading routine ",X," - control character in text."
. W !,"Use ^XINDEX to identify it, then remove from routine and try again.",!!
. D KILLMSG^XMXUTIL(XMZ)
Q
;
PACK ;LOAD ENTIRE PACKAGE (ROUTINES ONLY)
;
S:'$D(XCNP) XCNP=0
I '$D(DIFROM) S DIC="^DIC(9.4,",DIC(0)="AEQM" D ^DIC Q:Y<0 S DA=+Y
S XMROU="^DIC(9.4,"_DA_",2,""B"","
P S (XMA0,XMB0)="",(DIE,DIF)="^XMB(3.9,"_XMZ_",2,"
G P9:'$D(^%ZOSF("TEST")) S XMB=^("TEST")
P1 S XMA0=$O(@(XMROU_"XMA0)")) I $L(XMA0) D TST G P1
G ER:XMB0
P9 S XMA0=$O(@(XMROU_"XMA0)")) G Q:XMA0="" S X=XMA0 D LL G P9
;
XMROU ;LOAD ROUTINES (FROM XMD)
;
S XCNP=XCNP+1,$P(^XMB(3.9,XMZ,2,0),U,3,4)=XCNP_U_XCNP,^(XCNP,0)="$END TXT"
S XMROU="XMROU(" G P
;
TST S X=XMA0 X XMB Q:$T S XMB0=1 W !,"Program ",X," does not exist." Q
ER W !!,"<< Correct the errors listed above.",!,"Then you may try again.",!
Q K XMA0,XMB0,XMB,XMROU,DIE,DIF Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HXMPH 3010 printed Oct 16, 2024@18:13:32 Page 2
XMPH ;(WASH ISC)/THM/CAP-PackMan Load Routines/Print Msg ;12/04/2002 13:48
+1 ;;8.0;MailMan;**10**;Jun 28, 2002
+2 ; Entry points used by MailMan options (not covered by DBIA):
+3 ; LOAD XMPROU - Load routines
+4 ;USER ENTRY LIST OF ROUTINES
+5 QUIT
DEV ;GET OUTPUT DEVICE / QUEUE PACKMAN PRINT
+1 NEW I,ZTSAVE
+2 FOR I="DIE","XMZ","XMDUZ","XMV(","XMP2","XMR","XCF"
SET ZTSAVE(I)=""
+3 DO EN^XUTMDEVQ("ZTSK^XMPH","MailMan: PackMan Print",.ZTSAVE)
+4 QUIT
ZTSK ;QUEUED PRINT COMES HERE
+1 NEW XMSUBJ,XMZSTR
+2 IF XCF=3
Begin DoDot:1
+3 DO TOP^XMPC
End DoDot:1
+4 IF '$TEST
IF $EXTRACT($GET(IOST),1,2)'="C-"
Begin DoDot:1
+5 NEW XMPARM,XMZREC
+6 SET XMZREC=$GET(^XMB(3.9,XMZ,0))
+7 ; KIDS Build / PackMan message
WRITE $$EZBLD^DIALOG($SELECT($PIECE(XMZREC,U,7)["K":34076,1:34077))
+8 WRITE $SELECT(XMP2="T":" text print for ",1:" print for "),XMV("NAME")
+9 SET XMPARM(1)=^XMB("NETNAME")
SET XMPARM(2)=$$MMDT^XMXUTIL1($$NOW^XLFDT)
+10 ; Printed at |1| |2|
WRITE !,$$EZBLD^DIALOG(34503,.XMPARM)
+11 if XMP2="S"
QUIT
+12 ; Subj: |1|
SET XMSUBJ=$$EZBLD^DIALOG(34536,$$SUBJ^XMXUTIL2(XMZREC))
+13 ; [#|1|]
SET XMZSTR=$$EZBLD^DIALOG(34537,XMZ)
+14 WRITE !,XMSUBJ
+15 DO W^XMJMP1(" ",XMZSTR)
+16 DO W^XMJMP1(" ",$$DATE^XMXUTIL2(XMZREC))
+17 ; From:
DO WL^XMJMP1($$EZBLD^DIALOG(34538,$$NAME^XMXUTIL($PIECE(XMZREC,U,2),1)))
+18 ; Page 1
DO W^XMJMP1(" ",$$EZBLD^DIALOG(34541))
+19 DO LINE^XMJMP1
+20 WRITE !
End DoDot:1
+21 DO S^XMP2
+22 IF $DATA(ZTQUEUED)
SET ZTREQ="@"
+23 QUIT
LOAD ;LOAD ROUTINE FROM <X> INTO GLOBAL <DIF>_I_",0)"
+1 ;
+2 ;DIFROM NEEDS A MESSAGE NUMBER
+3 ;
+4 SET (DIE,DIF)="^XMB(3.9,XMZ,2,"
+5 IF $DATA(DIFROM)
WRITE !!,"Please enter the names of the routines you wish to load into this message.",!!,"Only routines will be loaded."
+6 IF $TEST
WRITE !!,"INITs, will be sent automatically.",!!
+7 ;K ^UTILITY($J#256)
+8 XECUTE ^%ZOSF("RSEL")
if $ORDER(^UTILITY($JOB,0))=""
QUIT
+9 SET X=0
if '$DATA(XCNP)
SET XCNP=0
+10 FOR
SET X=$ORDER(^UTILITY($JOB,X))
if X=""
QUIT
DO LL
+11 KILL ^UTILITY($JOB)
+12 QUIT
LL NEW XMHOLD
SET XMHOLD=XCNP
+1 WRITE !,"Loading ",X
SET DIF=DIE
SET XCNP=XCNP+1
SET @(DIF_XCNP_",0)")="$ROU "_X
+2 XECUTE ^%ZOSF("LOAD")
SET $PIECE(@(DIF_"0)"),U,3,4)=XCNP_U_XCNP
+3 SET @(DIF_XCNP_",0)")="$END ROU "_X
+4 ;
+5 ;Check for control characters in text
+6 FOR XMHOLD=XMHOLD:1:XCNP
IF $GET(@(DIF_XMHOLD_",0)"))?.E1C.E
Begin DoDot:1
+7 WRITE !!,$CHAR(7),"Errored out loading routine ",X," - control character in text."
+8 WRITE !,"Use ^XINDEX to identify it, then remove from routine and try again.",!!
+9 DO KILLMSG^XMXUTIL(XMZ)
End DoDot:1
SET XQCH="HALT"
GOTO H^XUS
+10 QUIT
+11 ;
PACK ;LOAD ENTIRE PACKAGE (ROUTINES ONLY)
+1 ;
+2 if '$DATA(XCNP)
SET XCNP=0
+3 IF '$DATA(DIFROM)
SET DIC="^DIC(9.4,"
SET DIC(0)="AEQM"
DO ^DIC
if Y<0
QUIT
SET DA=+Y
+4 SET XMROU="^DIC(9.4,"_DA_",2,""B"","
P SET (XMA0,XMB0)=""
SET (DIE,DIF)="^XMB(3.9,"_XMZ_",2,"
+1 if '$DATA(^%ZOSF("TEST"))
GOTO P9
SET XMB=^("TEST")
P1 SET XMA0=$ORDER(@(XMROU_"XMA0)"))
IF $LENGTH(XMA0)
DO TST
GOTO P1
+1 if XMB0
GOTO ER
P9 SET XMA0=$ORDER(@(XMROU_"XMA0)"))
if XMA0=""
GOTO Q
SET X=XMA0
DO LL
GOTO P9
+1 ;
XMROU ;LOAD ROUTINES (FROM XMD)
+1 ;
+2 SET XCNP=XCNP+1
SET $PIECE(^XMB(3.9,XMZ,2,0),U,3,4)=XCNP_U_XCNP
SET ^(XCNP,0)="$END TXT"
+3 SET XMROU="XMROU("
GOTO P
+4 ;
TST SET X=XMA0
XECUTE XMB
if $TEST
QUIT
SET XMB0=1
WRITE !,"Program ",X," does not exist."
QUIT
ER WRITE !!,"<< Correct the errors listed above.",!,"Then you may try again.",!
Q KILL XMA0,XMB0,XMB,XMROU,DIE,DIF
QUIT