XMAH1 ;ISC-SF/GMB-Reply to a message API ;04/17/2002  07:33
 ;;8.0;MailMan;;Jun 28, 2002
 ; Was (WASH ISC)/CAP
 ;
 ; Entry points (DBIA 1232):
 ; ^XMAH1      Interactive respond to a message
 ; ENTA^XMAH1  Interactive respond to a message
 ;
ENTA ; Interactive respond to a message
 ; Needs:
 ; XMDUZ  user ID
 ; XMK    basket number
 ; XMZ    message number
 ; Optional:
 ; XMDF   If $D(XMDF), then addressing restrictions are ignored.
 N XMV,XMSUBJ,XMFROM,XMINSTR,XMKN,XMIEN,XMRESP,XMRESPSO,XMPAKMAN,XMSECURE,XMABORT
 S XMABORT=0
 D INIT(XMDUZ,XMK,.XMKN,XMZ,.XMSUBJ,.XMFROM,.XMINSTR,.XMIEN,.XMRESPSO,.XMRESP,.XMABORT) Q:XMABORT
 D REPLY^XMJMR(XMDUZ,.XMK,.XMKN,XMZ,XMSUBJ,XMFROM,.XMINSTR,XMIEN,XMRESPSO,0,XMRESP)
 Q
INIT(XMDUZ,XMK,XMKN,XMZ,XMSUBJ,XMFROM,XMINSTR,XMIEN,XMRESPSO,XMRESP,XMABORT) ;
 N XMIM,XMIU,XMZREC
 D INITAPI^XMVVITAE
 K XMERR,^TMP("XMERR",$J)
 S XMZREC=^XMB(3.9,XMZ,0)
 I '$$REPLY^XMXSEC(XMDUZ,XMZ,XMZREC) D SHOW^XMJERR S XMABORT=1 Q
 I $D(XMDF) S XMINSTR("ADDR FLAGS")="R" ; no addressing restrictions
 D INMSG^XMXUTIL2(XMDUZ,0,XMZ,XMZREC,"I",.XMIM,.XMINSTR,.XMIU)
 I $D(XMINSTR("SCR HINT")),'$D(XMSECURE),'$$KEYOK^XMJMCODE(XMZ,XMINSTR("SCR HINT")) S XMABORT=1 Q
 S XMSUBJ=XMIM("SUBJ")
 S XMFROM=XMIM("FROM")
 S XMRESPSO=XMIM("RESPS")
 S XMIEN=XMIU("IEN")
 S XMRESP=XMIU("RESP")
 S XMPAKMAN=$S(XMINSTR("TYPE")["X":1,XMINSTR("TYPE")["K":1,1:0)
 S XMKN=$P(^XMB(3.7,XMDUZ,2,XMK,0),U,1)
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HXMAH1   1443     printed  Sep 23, 2025@19:47:01                                                                                                                                                                                                       Page 2
XMAH1     ;ISC-SF/GMB-Reply to a message API ;04/17/2002  07:33
 +1       ;;8.0;MailMan;;Jun 28, 2002
 +2       ; Was (WASH ISC)/CAP
 +3       ;
 +4       ; Entry points (DBIA 1232):
 +5       ; ^XMAH1      Interactive respond to a message
 +6       ; ENTA^XMAH1  Interactive respond to a message
 +7       ;
ENTA      ; Interactive respond to a message
 +1       ; Needs:
 +2       ; XMDUZ  user ID
 +3       ; XMK    basket number
 +4       ; XMZ    message number
 +5       ; Optional:
 +6       ; XMDF   If $D(XMDF), then addressing restrictions are ignored.
 +7        NEW XMV,XMSUBJ,XMFROM,XMINSTR,XMKN,XMIEN,XMRESP,XMRESPSO,XMPAKMAN,XMSECURE,XMABORT
 +8        SET XMABORT=0
 +9        DO INIT(XMDUZ,XMK,.XMKN,XMZ,.XMSUBJ,.XMFROM,.XMINSTR,.XMIEN,.XMRESPSO,.XMRESP,.XMABORT)
           if XMABORT
               QUIT 
 +10       DO REPLY^XMJMR(XMDUZ,.XMK,.XMKN,XMZ,XMSUBJ,XMFROM,.XMINSTR,XMIEN,XMRESPSO,0,XMRESP)
 +11       QUIT 
INIT(XMDUZ,XMK,XMKN,XMZ,XMSUBJ,XMFROM,XMINSTR,XMIEN,XMRESPSO,XMRESP,XMABORT) ;
 +1        NEW XMIM,XMIU,XMZREC
 +2        DO INITAPI^XMVVITAE
 +3        KILL XMERR,^TMP("XMERR",$JOB)
 +4        SET XMZREC=^XMB(3.9,XMZ,0)
 +5        IF '$$REPLY^XMXSEC(XMDUZ,XMZ,XMZREC)
               DO SHOW^XMJERR
               SET XMABORT=1
               QUIT 
 +6       ; no addressing restrictions
           IF $DATA(XMDF)
               SET XMINSTR("ADDR FLAGS")="R"
 +7        DO INMSG^XMXUTIL2(XMDUZ,0,XMZ,XMZREC,"I",.XMIM,.XMINSTR,.XMIU)
 +8        IF $DATA(XMINSTR("SCR HINT"))
               IF '$DATA(XMSECURE)
                   IF '$$KEYOK^XMJMCODE(XMZ,XMINSTR("SCR HINT"))
                       SET XMABORT=1
                       QUIT 
 +9        SET XMSUBJ=XMIM("SUBJ")
 +10       SET XMFROM=XMIM("FROM")
 +11       SET XMRESPSO=XMIM("RESPS")
 +12       SET XMIEN=XMIU("IEN")
 +13       SET XMRESP=XMIU("RESP")
 +14       SET XMPAKMAN=$SELECT(XMINSTR("TYPE")["X":1,XMINSTR("TYPE")["K":1,1:0)
 +15       SET XMKN=$PIECE(^XMB(3.7,XMDUZ,2,XMK,0),U,1)
 +16       QUIT