| 1 | XMUTPUR0 ;(KVAMC)/XXX-Purge "AI" X-ref ;01/21/2003  07:50 | 
|---|
| 2 | ;;8.0;MailMan;**10**;Jun 28, 2002 | 
|---|
| 3 | ; Entry points used by MailMan options (not covered by DBIA): | 
|---|
| 4 | ; PURGE  XMMGR-PURGE-AI-XREF | 
|---|
| 5 | PURGE ; | 
|---|
| 6 | N XMQUIET,XMABORT,XMDT | 
|---|
| 7 | S XMABORT=0,XMQUIET=$D(ZTQUEUED)!($E(IOST,1,2)'="C-") | 
|---|
| 8 | D INIT(.XMDT,XMQUIET,.XMABORT) | 
|---|
| 9 | I XMABORT W:'XMQUIET !,"Process aborted." Q | 
|---|
| 10 | D PROCESS(XMDT,XMQUIET) | 
|---|
| 11 | Q | 
|---|
| 12 | INIT(XMDT,XMQUIET,XMABORT) ; | 
|---|
| 13 | I $D(^XMBX(3.9,"AI"))<10 S XMABORT=1 W:'XMQUIET !,"XMBX Global 'AI' Node empty!" Q | 
|---|
| 14 | S XMDT=$$FMADD^XLFDT(DT,-730) | 
|---|
| 15 | Q:XMQUIET | 
|---|
| 16 | N DIR,X,Y | 
|---|
| 17 | S DIR(0)="D^:"_$$FMADD^XLFDT(DT,-1)_":EP" | 
|---|
| 18 | S DIR("A")="Kill all XMBX 'AI' nodes older than" | 
|---|
| 19 | S DIR("B")=$$FMTE^XLFDT(XMDT) | 
|---|
| 20 | D ^DIR I $D(DIRUT) S XMABORT=1 Q | 
|---|
| 21 | I XMDT'=Y D  Q:XMABORT | 
|---|
| 22 | . S XMDT=Y | 
|---|
| 23 | . K DIR,X,Y | 
|---|
| 24 | . S DIR(0)="Y" | 
|---|
| 25 | . S DIR("A")="Are you sure" | 
|---|
| 26 | . S DIR("B")="NO" | 
|---|
| 27 | . D ^DIR I 'Y!$D(DIRUT) S XMABORT=1 | 
|---|
| 28 | W !,"We will kill all nodes older than ",$$FMTE^XLFDT(XMDT),"." | 
|---|
| 29 | W !!,"***** Starting at ",$P($$HTE^XLFDT($H),"@",2),! | 
|---|
| 30 | Q | 
|---|
| 31 | PROCESS(XMDT,XMQUIET) ; | 
|---|
| 32 | N XMS,XMI,XMZ,XMXDT,XMCNT,XMKILL | 
|---|
| 33 | S (XMCNT,XMKILL)=0 ; XMCNT=#nodes, XMKILL=#killed | 
|---|
| 34 | S (XMS,XMI,XMZ)="" ; XMS=Site, XMI=Msg ID, XMZ=Msg # here at this site | 
|---|
| 35 | F  S XMS=$O(^XMBX(3.9,"AI",XMS)) Q:XMS=""  D | 
|---|
| 36 | . F  S XMI=$O(^XMBX(3.9,"AI",XMS,XMI)) Q:XMI=""  D | 
|---|
| 37 | . . S XMZ=$O(^XMBX(3.9,"AI",XMS,XMI,"")) | 
|---|
| 38 | . . I XMZ="" K ^XMBX(3.9,"AI",XMS,XMI) Q | 
|---|
| 39 | . . S XMXDT=$G(^XMBX(3.9,"AI",XMS,XMI,XMZ)) | 
|---|
| 40 | . . S XMCNT=XMCNT+1 | 
|---|
| 41 | . . I 'XMQUIET,XMCNT#1000=0 W:$X>70 ! W ".",XMCNT | 
|---|
| 42 | . . I 'XMXDT S ^XMBX(3.9,"AI",XMS,XMI,XMZ)=DT Q | 
|---|
| 43 | . . I XMXDT<XMDT K ^XMBX(3.9,"AI",XMS,XMI,XMZ) S XMKILL=XMKILL+1 | 
|---|
| 44 | Q:XMQUIET | 
|---|
| 45 | W !,"Nodes Reviewed:",?16,$J($FN(XMCNT,","),10),!,"Nodes Killed:",?16,$J($FN(XMKILL,","),10),!,"Nodes Remaining:",?16,$J($FN(XMCNT-XMKILL,","),10) | 
|---|
| 46 | W !,"***** Finished at ",$P($$HTE^XLFDT($H),"@",2) | 
|---|
| 47 | Q | 
|---|