| 1 | XMCX ;ISC-SF/GMB-Play a Script / Queue Transmit Task ;12/04/2002  13:45 | 
|---|
| 2 | ;;8.0;MailMan;**6,10**;Jun 28, 2002 | 
|---|
| 3 | ; Was (WASH ISC)/THM | 
|---|
| 4 | ; | 
|---|
| 5 | ; Entry points used by MailMan options (not covered by DBIA): | 
|---|
| 6 | ; PLAY    XMSCRIPTPLAY     (was GO^XMC11) | 
|---|
| 7 | ; Q1      XMSTARTQUE       (was Q^XMC2) | 
|---|
| 8 | ; QALL    XMSTARTQUE-ALL   (was REQUE^XMS5) | 
|---|
| 9 | Q | 
|---|
| 10 | PLAY ; Play a script | 
|---|
| 11 | N XM,XMB,XMC,XMINST,XMSITE,XMIO,XMHOST,XMABORT | 
|---|
| 12 | K XMTLER | 
|---|
| 13 | S XM="D",XMABORT=0 | 
|---|
| 14 | D ASKINST^XMCXU(.XMINST,.XMSITE,.XMABORT) Q:XMABORT | 
|---|
| 15 | D CHKTSK^XMCXU(XMINST,2,.XMABORT) Q:XMABORT | 
|---|
| 16 | D ASKSCR^XMCXU(XMINST,XMSITE,.XMB,.XMABORT) Q:XMABORT | 
|---|
| 17 | S XMIO=$P(XMB("SCR REC"),U,5) | 
|---|
| 18 | AGAIN ; | 
|---|
| 19 | D ENT^XMC1 | 
|---|
| 20 | I ER=25!($G(XMHOST)="NO-IP") D  G:'XMABORT AGAIN | 
|---|
| 21 | . N XMTEXT,XMIPSAVE | 
|---|
| 22 | . I '$$USEDNS^XMKPR1 D  Q | 
|---|
| 23 | . . S XMABORT=1 | 
|---|
| 24 | . . ;DNS is not activated at this site, so you'll have to figure | 
|---|
| 25 | . . ;out the correct IP address yourself. | 
|---|
| 26 | . . D BLD^DIALOG(42263,"","","XMTEXT","F") | 
|---|
| 27 | . . D MSG^DIALOG("WM","","","","XMTEXT") | 
|---|
| 28 | . ;Let's see what we can do... | 
|---|
| 29 | . ;We've tried these: |1| | 
|---|
| 30 | . D BLD^DIALOG(42264,XMB("IP TRIED"),"","XMTEXT","F") | 
|---|
| 31 | . D MSG^DIALOG("WM","","","","XMTEXT") | 
|---|
| 32 | . S XMB("TRIES")=XMB("TRIES")+1 | 
|---|
| 33 | . S XMIPSAVE=XMB("IP TRIED"),XMC("PLAY")=1 | 
|---|
| 34 | . D NEXTIP^XMKPR1(XMSITE,.XMB) K XMC("PLAY") | 
|---|
| 35 | . I XMIPSAVE=XMB("IP TRIED") D  Q | 
|---|
| 36 | . . S XMABORT=1 | 
|---|
| 37 | . . ;The DNS did not return any other addresses to try.  Sorry! | 
|---|
| 38 | . . D BLD^DIALOG(42265,"","","XMTEXT","F") | 
|---|
| 39 | . . D MSG^DIALOG("WM","","","","XMTEXT") | 
|---|
| 40 | . W !,$$EZBLD^DIALOG(42266,$P(XMB("SCR REC"),U,6)) ;Now, let's try: |1| | 
|---|
| 41 | . K ER,XMER | 
|---|
| 42 | I 'XMABORT,'ER S XMC("PLAY")=1 D CHKSETIP^XMTDR(XMINST,XMSITE,.XMB) | 
|---|
| 43 | D KL^XMC | 
|---|
| 44 | Q | 
|---|
| 45 | Q1 ; Trigger a queue for transmission | 
|---|
| 46 | N XMB,XMINST,XMSITE,XMTSK,XMABORT | 
|---|
| 47 | S XMABORT=0 ; pick a queue w/msgs | 
|---|
| 48 | D ASKINST^XMCXU(.XMINST,.XMSITE,.XMABORT,"M") Q:XMABORT | 
|---|
| 49 | D CHKTSK^XMCXU(XMINST,1,.XMABORT) Q:XMABORT | 
|---|
| 50 | D ASKSCR^XMCXU(XMINST,XMSITE,.XMB,.XMABORT) Q:XMABORT | 
|---|
| 51 | D QUEUE(XMINST,XMSITE,.XMB) | 
|---|
| 52 | Q | 
|---|
| 53 | TASK ; | 
|---|
| 54 | QALL ; | 
|---|
| 55 | N XMDUZ,XMK,XMIEN,XMSITE | 
|---|
| 56 | S:$D(ZTQUEUED) ZTREQ="@" | 
|---|
| 57 | D RESEQ^XMCQA | 
|---|
| 58 | K ^TMP("XM",$J) | 
|---|
| 59 | S XMK=1000 | 
|---|
| 60 | F  S XMK=$O(^XMB(3.7,.5,2,XMK)) Q:'XMK  Q:XMK>9999  D | 
|---|
| 61 | . Q:'$$BMSGCT^XMXUTIL(.5,XMK) | 
|---|
| 62 | . W:'$D(ZTQUEUED) "." | 
|---|
| 63 | . S XMIEN=XMK-1000 | 
|---|
| 64 | . S:'$$TSKEXIST^XMKPR(XMIEN) ^TMP("XM",$J,$P(^DIC(4.2,XMIEN,0),U))=XMIEN | 
|---|
| 65 | I '$D(^TMP("XM",$J)) D  Q | 
|---|
| 66 | . W:'$D(ZTQUEUED) !!,$$EZBLD^DIALOG(42125) ;All queues with messages have tasks. | 
|---|
| 67 | I '$D(ZTQUEUED) D  Q:'$D(^TMP("XM",$J)) | 
|---|
| 68 | . W:$E($G(IOST),1,2)="C-" @IOF | 
|---|
| 69 | . W !,$$EZBLD^DIALOG(42126),! ;These queues with messages have no tasks: | 
|---|
| 70 | . S XMSITE="" | 
|---|
| 71 | . F  S XMSITE=$O(^TMP("XM",$J,XMSITE)) Q:XMSITE=""  D | 
|---|
| 72 | . . I $Y+3>IOSL D | 
|---|
| 73 | . . . D WAIT^XMXUTIL | 
|---|
| 74 | . . . W @IOF | 
|---|
| 75 | . . S XMIEN=^TMP("XM",$J,XMSITE) | 
|---|
| 76 | . . W !,$E(XMSITE,1,37) | 
|---|
| 77 | . . Q:$P(^DIC(4.2,XMIEN,0),U,2)["S" | 
|---|
| 78 | . . W ?40,$$EZBLD^DIALOG(42127) ;No Send Flag - Will not task | 
|---|
| 79 | . . K ^TMP("XM",$J,XMSITE) | 
|---|
| 80 | . Q:'$D(^TMP("XM",$J)) | 
|---|
| 81 | . N DIR | 
|---|
| 82 | . S DIR(0)="YO" | 
|---|
| 83 | . S DIR("A")=$$EZBLD^DIALOG(42128) ;Requeue the missing tasks | 
|---|
| 84 | . S DIR("B")=$$EZBLD^DIALOG(39053) ;No | 
|---|
| 85 | . D BLD^DIALOG(42129,"","","DIR(""?"")") ;Answer YES to create tasks to transmit these queues. | 
|---|
| 86 | . D ^DIR Q:Y | 
|---|
| 87 | . W !!,$$EZBLD^DIALOG(42130) ;Tasks not requeued. | 
|---|
| 88 | . K ^TMP("XM",$J) | 
|---|
| 89 | S XMSITE="" | 
|---|
| 90 | F  S XMSITE=$O(^TMP("XM",$J,XMSITE)) Q:XMSITE=""  D | 
|---|
| 91 | . S XMIEN=^TMP("XM",$J,XMSITE) | 
|---|
| 92 | . I $$UP^XLFSTR($P(^DIC(4.2,XMIEN,0),U,2))'["S" D  Q | 
|---|
| 93 | . . W:'$D(ZTQUEUED) !,$E(XMSITE,1,37),?40,$$EZBLD^DIALOG(42127) ;No Send Flag - Will not task | 
|---|
| 94 | . D QUEUE(XMIEN,XMSITE) | 
|---|
| 95 | W:'$D(ZTQUEUED) !,$$EZBLD^DIALOG(42132) ;Finished. | 
|---|
| 96 | K ^TMP("XM",$J) | 
|---|
| 97 | Q | 
|---|
| 98 | QUEUE(XMINST,XMSITE,XMB,XMWHEN,XMTSK) ; | 
|---|
| 99 | D QUEUE^XMKPR(XMINST,XMSITE,.XMB,.XMWHEN,.XMTSK) Q:$D(ZTQUEUED) | 
|---|
| 100 | W !,$E(XMSITE,1,37),?40,$$EZBLD^DIALOG($S($D(XMTSK):42131,1:39311),$G(XMTSK)) ;Task |1| queued / Task creation failed | 
|---|
| 101 | Q | 
|---|