- LRJSAU2 ;ALB/GTS/DK/TMK - Lab Vista Audit Utilities;08/16/2010 15:53:28
- ;;5.2;LAB SERVICE;**425**;Sep 27, 1994;Build 30
- ;
- ;
- KILL ;Kill off build data
- K ^TMP("LRJ SYS MAP AUD MSG",$J)
- K ^TMP("LRJ SYS MAP AUD MANAGER",$J)
- Q
- ;
- LISTHLMM(LRHLARY) ; Store audit information in the display array
- ; INPUT -
- ; LRHLARY - Array of raw extract data
- ;
- N LRREF,LRFROM,LRTO
- ;get top level with date information
- S LRREF=$P(LRHLARY,")")_",1)"
- S LRFROM=$P($G(@LRREF),"^")
- S LRTO=$P($G(@LRREF),"^",2)
- D KILL
- D KILL^VALM10()
- D CRTRPTAR(LRHLARY,LRFROM,LRTO,"DISPLAY","")
- Q
- ;
- CRTRPTAR(LRHLARY,LRFROM,LRTO,LROUTPT,LRMMARY) ; Store info in the display array
- ; INPUT -
- ; LRHLARY - Array of raw extract data
- ; LRFROM - Start date for report
- ; LRTO - End date for report
- ; LROUTPT - "DISPLAY" for Listman; "MAIL" for mail message
- ; LRMMARY - Mail message output array
- ;
- N X,XN,XP,NODE,X1,X2,X3
- N LRFSTLNE,LRPARAM,LRLNCTN,LRLNCNT,LRVALST
- S VALM("TITLE")=AUDES_" Audit Message"
- S:$G(LRMMARY)="" LRMMARY=""
- S:$G(LROUTPT)="" LROUTPT="DISPLAY"
- S LRFSTLNE=0
- S X=AUDES_$S($D(LRFROM):" from "_$$FMTE^XLFDT(LRFROM),1:"")_$S($D(LRTO):" to "_$$FMTE^XLFDT(LRTO),1:"")
- I LROUTPT="MAIL" D
- .S LRLNCNT=0
- .D LRADDNOD^LRJSAU3(.LRLNCNT,X,"",LROUTPT,LRMMARY)
- Q
- ;
- ;THE FOLLOWING API is to be called from a Taskman
- ;scheduled job LRJ SYS MAP [autyp] TASKMAN RPT where autyp=audit type
- ;;;TASKMAN should call D TSKMMARY^LRJSAU2(AUTYP,AUDES,"^TMP(""LRJ SYS F60 AUD MANAGER"",$J)","^TMP(""LRJ SYS F60 AUD MANAGER"",$J)")
- TSKMMARY(AUTYP,AUDES,AUFMT) ;TASKMAN API for Mail Message array
- ;
- ;INPUT (Roots for arrays to be created)
- ;AUTYP=Audit Type (AUF60 = File 60, AUF60XT = File 60 extract delimited file
- ;AUDES=Description (File 60 Audit, New Person Audit)
- ; LRHLARY - Array of Raw Data
- ; LRMMARY - Mail Message array to send in message
- ;AUFMT=format (Readable Display=DISPLAY; Delimited file =FILE)
- ;
- ;
- N $ESTACK,$ETRAP S $ETRAP="D TSKERR^LRJSAU2"
- N LRFROM,LRTO,LRTOMM,LRMSUBJ,XQSND,ERR,LRTOVA,LRTASKVA,LRINSTVA,AUSUB,TSKCALL,ZTIO
- ;
- ;;TO DO: GIVE INSTRUCTIONS FOR SCHEDULING THE FREQUENCY OF TASK JOB VIA TASKMAN
- ;;
- D NOW^%DTC
- S LRTO=$E(%,1,12) ;NOW is end date/time
- K %,X,%H,%I(1),%I(2),%I(3)
- S LRFROM=$$GET^XPAR("SYS","LRJ LSRP "_AUTYP_" LAST END DATE",1,"Q")
- ;
- ;If report hasn't been run before, generate for previous 7 days
- I LRFROM="" D
- .S X1=LRTO
- .S X2=-7
- .D C^%DTC
- .S LRFROM=X
- .K X,%H
- ;
- D EN^XPAR("SYS","LRJ LSRP "_AUTYP_" LAST END DATE",,LRTO,.ERR)
- D EN^XPAR("SYS","LRJ LSRP "_AUTYP_" LAST START DATE",,LRFROM,.ERR)
- ;
- S TSKCALL=1,ZTIO=""
- I AUTYP["AUF60" D AUDISP^LRJSAU60
- I AUTYP'["AUF60" Q
- S AUSUB=$S(AUTYP["AUF60":"F60",1:"")
- S (LRHLARY,LRMMARY)="^TMP(""LRJ SYS ""_AUSUB_"" AUD MANAGER"",$J)"
- I AUTYP["XT" S (LRHLARY,LRMMARY)="^TMP(""LRJ SYS ""_AUSUB_"" AUD MANAGER"",$J,""EXTRACT"")"
- ;
- I $D(@LRHLARY) D
- . S LRLPCNT=1
- . S @LRMMARY@(LRLPCNT)=AUDES_$S($D(LRFROM):" from "_$$FMTE^XLFDT(LRFROM),1:"")_$S($D(LRTO):" to "_$$FMTE^XLFDT(LRTO),1:"")
- . I AUFMT="DISPLAY" D
- . . F XCAT="NEW","OLD" D
- . . . S (LRNODE,LRSUB)=0
- . . . I '$D(@LRHLARY@(XCAT)) D Q
- . . . . S LRLPCNT=LRLPCNT+1
- . . . . S @LRMMARY@(LRLPCNT)=" No "_$S(XCAT="NEW":"new",1:"modified")_" entries"
- . . . S LRLPCNT=LRLPCNT+1
- . . . S @LRMMARY@(LRLPCNT)=""
- . . . S LRLPCNT=LRLPCNT+1
- . . . S @LRMMARY@(LRLPCNT)=$S(XCAT="NEW":"New",1:"Modified")_" entries"
- . . . S LRLPCNT=LRLPCNT+1
- . . . S @LRMMARY@(LRLPCNT)=""
- . . . F S LRNODE=$O(@LRHLARY@(XCAT,LRNODE)) Q:LRNODE="" D
- . . . . F S LRSUB=$O(@LRHLARY@(XCAT,LRNODE,LRSUB)) Q:LRSUB="" D
- . . . . . S LRLPCNT=LRLPCNT+1
- . . . . . S @LRMMARY@(LRLPCNT)=$G(@LRHLARY@(XCAT,LRNODE,LRSUB))
- . . S LRMSUBJ=AUDES_$S($D(LRFROM):" from "_$$FMTE^XLFDT(LRFROM),1:"")_$S($D(LRTO):" to "_$$FMTE^XLFDT(LRTO),1:"")
- . . S LRTOMM("G.LRJ "_AUTYP_" AUDIT TASK REPORT")=""
- . . S XQSND=DUZ
- . . D SNDMSG(LRMSUBJ,XQSND,LRMMARY,.LRTOMM,1) ;"1" = created by Taskman; send to Mailgroup
- . ;Send Extract message with attachments
- . Q:AUFMT="DISPLAY"
- . S LRMSUBJ=AUDES_$S($D(LRFROM):" from "_$$FMTE^XLFDT(LRFROM),1:"")_$S($D(LRTO):" to "_$$FMTE^XLFDT(LRTO),1:"")
- . ;
- . ;Check for Network addresses and mail attachment
- . S LRINSTVA("ADDR FLAGS")="R" ;Do not Restrict Message addressing
- . S LRINSTVA("FROM")="LSRP_"_AUTYP_" USER_ACTION"
- . S XQSND=DUZ
- . S LRTOVA(XQSND)=""
- . ;Array of raw extract, Array of message text for networkd address, Message subject
- . ;
- . S LRTOMM("G.LRJ "_AUTYP_" AUDIT TASK REPORT")=""
- . D OUTLKARY(LRHLARY,"^TMP($J,""LRNETMSG"")",LRMSUBJ)
- . D SNDMSG(LRMSUBJ,XQSND,"^TMP($J,""LRNETMSG"")",.LRTOMM,1)
- . ;
- K @LRHLARY,@LRMMARY,^TMP($J,"LRNETMSG")
- Q
- ;
- TSKERR ; Error trap to send bulletin if queued report encounters a system error
- N XMTEXT,XMY,XMSUB,XQSND
- S XMY("G.LRJ "_AUTYP_" AUDIT TASK REPORT")=""
- S XMSUB=AUDES_" AUTOMATED REPORT ERROR"
- S XMTEXT(1)="This message is to inform you that the "_AUDES_" automated report"
- S XMTEXT(2)="has encountered an error and did not complete. Please contact your"
- S XMTEXT(3)="system manager for further details."
- S XMTEXT(4)=" "
- S XMTEXT(5)="ERROR OCCURRED: "_$$FMTE^XLFDT($$NOW^XLFDT,"2")
- S XMTEXT(6)="ERROR MESSAGE : "_$$EC^%ZOSV
- S XQSND=DUZ
- D SNDMSG(XMSUB,XQSND,"XMTEXT",.XMY,1)
- ;
- ; log error in standard error trap
- D ^%ZTER
- D UNWIND^%ZTER
- Q
- ;
- CRTMMARY(LRHLARY,AUTYP,AUDES,AURTN,LRMMARY) ;Load Mail Message array
- ;INPUT
- ; LRHLARY - Array of Raw Data
- ;AUTYP = audit type (ex: AUF60 for File 60 audit
- ;AUDES = audit description (ex. File 60, New Person)
- ;AURTN = audit specific utility routine (ex. LRJSAU60 for file 60)
- ; LRMMARY - Mail Message array to send in message
- ;
- N LRMSUBJ,XQSND,LRFROM,LRTO,XQSND,LRNODE,LRSAVE,LRLPCNT,XCAT,LRSUB,LRREF,LRTOMM
- ;
- D LISTHLMM(LRHLARY)
- ;get top level with date information
- ;may seem like duplicate work since LISTHLMM has the same logic
- ;but LISTHLMM also called from other routine(s)
- ;may be safer to keep this logic here
- S LRREF=$P(LRHLARY,")")_",1)"
- S LRFROM=$P($G(@LRREF),"^")
- S LRTO=$P($G(@LRREF),"^",2)
- I LRFROM="" D Q
- . W !,?10,"First invoke ""DF"" option"
- . D PAUSE^VALM1
- . I AUTYP["F60" D F60^LRJSAU
- ;
- S LRMSUBJ=AUDES_$S($D(LRFROM):" from "_$$FMTE^XLFDT(LRFROM),1:"")_$S($D(LRTO):" to "_$$FMTE^XLFDT(LRTO),1:"")
- S XQSND=DUZ,LRLPCNT=1
- I '$G(LRMMARY) S LRMMARY="^TMP(""LRJ SYS "_$E(AUTYP,3,99)_" AUD MANAGER"",$J)"
- S @LRMMARY@(LRLPCNT)=LRMSUBJ
- F XCAT="NEW","OLD" D
- . S (LRNODE,LRSUB)=0
- . I '$D(@VALMAR@(XCAT)) D Q
- . . S LRLPCNT=LRLPCNT+1
- . . S @LRMMARY@(LRLPCNT)=" No "_$S(XCAT="NEW":"new",1:"modified")_" entries"
- . S LRLPCNT=LRLPCNT+1
- . S @LRMMARY@(LRLPCNT)=$S(XCAT="NEW":"New",1:"Modified")_" entries"
- D SNDMSG(LRMSUBJ,XQSND,LRMMARY,.LRTOMM,0)
- S @LRREF=LRFROM_"^"_LRTO
- ;I $O(@VALMAR@(0))="" K @LRMMARY@(1),@LRMMARY@(2),@LRMMARY@(3)
- Q
- ;
- SNDMSG(LRMSUBJ,XQSND,LRMSGARY,LRTOMM,LRTASK) ;Send message to requestor
- ;INPUT:
- ; LRMSUBJ - Subject of message being generated
- ; XQSND - User's DUZ, Group Name, or S.server name
- ; LRMSGARY - Array containing message text
- ; LRTOMM - Array containing users, groups, etc who should receive the message
- ; LRTASK - If defined, indicates this is called from TASKMAN job
- ;
- N LRINSTMM,LRTASKMM,XMERR,XMZ,LRLPCNT,LRTYPE
- ;
- S:'$D(LRTASK) LRTASK=0
- I 'LRTASK D
- . K XMERR
- . S LRINSTMM("ADDR FLAGS")="R" ;Do not Restrict Message addressing
- . S LRTYPE="S"
- . D TOWHOM^XMXAPIU(DUZ,,LRTYPE,.LRINSTMM)
- . S LRLPCNT=""
- . F S LRLPCNT=$O(^TMP("XMY",$J,LRLPCNT)) Q:LRLPCNT="" S LRTOMM(LRLPCNT)=""
- ;
- I +$G(XMERR)'>0 DO
- . ;no need to set additional VistA recipients - added LRTOMM as parameter
- . S LRINSTMM("FROM")="LSRP_"_AUTYP_"_USER_ACTION"
- . S LRMSUBJ=$E(LRMSUBJ,1,65)
- . D SENDMSG^XMXAPI(XQSND,LRMSUBJ,LRMSGARY,.LRTOMM,.LRINSTMM,.LRTASKMM)
- ;
- ;K @LRMSGARY,^TMP("XMY",$J),^TMP("XMY0",$J),^TMP($J,"LRNETMSG")
- Q
- ;
- ;Following Protocol invokes this API: LRJ SYS MAP AUF60 SEND EXT
- CRTXTMM(LRHLARY,AUTYP,AUDES,AURTN) ;Load Mail Message array
- ;INPUT
- ; LRHLARY - Array of Raw Data [^TMP($J,"LRJ SYS") when called by LRJ SYS MAP HL SEND MSG]
- ;
- N LRMSUBJ,XQSND
- S LRREF=$P(LRHLARY,"""EXTRACT""")_"1,0)"
- S LRMSUBJ=$G(@LRREF)
- I LRMSUBJ="" D Q
- . W !,?10,"First invoke ""DF"" option"
- . D PAUSE^VALM1
- . I AUTYP["F60" D F60^LRJSAU
- ;
- S XQSND=DUZ
- D SNDEXT(LRMSUBJ,XQSND,LRHLARY)
- Q
- ;
- SNDEXT(LRMSUBJ,XQSND,LREXTARY) ;Send extract to requestor
- ;INPUT:
- ; LRMSUBJ - Subject of message being generated
- ; XQSND - User's DUZ, Group Name, or S.server name
- ; LREXTARY - Array containing message text.
- ;
- N LRINSTMM,LRINSTVA,LRTASKMM,LRTASKVA,LRTOMM,LRTOVA,XMERR,XMZ,LRLPCNT,LRTYPE
- ;
- S LRINSTMM("ADDR FLAGS")="R" ;Do not Restrict Message addressing
- S LRTYPE="S"
- K XMERR
- D TOWHOM^XMXAPIU(DUZ,,LRTYPE,.LRINSTMM)
- ;
- ;Check for Network addresses and mail attachment
- S LRINSTVA("ADDR FLAGS")="R" ;Do not Restrict Message addressing
- S LRINSTVA("FROM")="LSRP_"_AUTYP_"_USER_ACTION"
- S LRMSUBJ=$E(LRMSUBJ,1,65)
- S LRLPCNT=""
- F S LRLPCNT=$O(^TMP("XMY",$J,LRLPCNT)) Q:LRLPCNT="" S LRTOVA(LRLPCNT)=""
- I +$G(XMERR)'>0 DO
- .D OUTLKARY(LREXTARY,"^TMP($J,""LRNETMSG"")",LRMSUBJ)
- .D SENDMSG^XMXAPI(XQSND,LRMSUBJ,"^TMP($J,""LRNETMSG"")",.LRTOVA,.LRINSTVA,.LRTASKVA)
- ;
- K ^TMP("XMY",$J),^TMP("XMY0",$J),^TMP($J,"LRNETMSG")
- Q
- ;
- OUTLKARY(LRHLARY,LRHLOTLK,LRMSUBJ) ;Create array of attachments
- ;INPUT:
- ; LRHLARY - Array containing message text
- ; LRHLOTLK - Array containing message text for network addresses
- ; LRMSUBJ - Subject of message
- ;
- N LRFILNM,LRFILNM1,LRFILNM2,LRDTTM,LRCRLF,LRSTR,LRNODE,LROUTNOD,LRNODATA,XSUB
- S LRSTR=""
- S LRNODATA=0
- S LRCRLF=$C(13,10)
- K @LRHLOTLK
- S @LRHLOTLK@(1)="Extract Generated......: "_$$FMTE^XLFDT($$NOW^XLFDT)_LRCRLF
- S @LRHLOTLK@(2)=" "
- S @LRHLOTLK@(3)="Extract Requested......: "_LRMSUBJ_LRCRLF
- S @LRHLOTLK@(4)=" "
- ;
- S LRDTTM=$$NOW^XLFDT
- S LRFILNM1=AUTYP_"_EXT_NEW_"_$P(LRDTTM,".",1)_"_"_$P(LRDTTM,".",2)_".csv"
- S LRFILNM2=AUTYP_"_EXT_MOD_"_$P(LRDTTM,".",1)_"_"_$P(LRDTTM,".",2)_".csv"
- S @LRHLOTLK@(5)=$S($D(@LRHLARY@("NEW")):"Attached LMOF",1:"No")_" NEW "_AUDES_" Entries"_$S($D(@LRHLARY@("NEW")):": "_LRFILNM1,1:"")_LRCRLF
- S @LRHLOTLK@(6)=" "
- S @LRHLOTLK@(7)=$S($D(@LRHLARY@("OLD")):"Attached LMOF",1:"No")_" MODIFIED "_AUDES_" Entries"_$S($D(@LRHLARY@("OLD")):": "_LRFILNM2,1:"")_LRCRLF
- S:($O(@LRHLARY@(0))="") LRNODATA=1
- S @LRHLOTLK@(8)=" "
- S:(LRNODATA=0) @LRHLOTLK@(9)=" "
- S:(LRNODATA=1) @LRHLOTLK@(9)="No data was extracted for date range!!"
- ;
- ;Begin output of "NEW" entries
- F XSUB="NEW","OLD" D
- . S LRNODE=0,LRSTR="",LROUTNOD=$S(XSUB="NEW":10,XSUB="OLD"&($D(@LRHLARY@("NEW"))):LROUTNOD+4,1:10)
- . I $D(@LRHLARY@(XSUB)) D
- . . S LRFILNM=$S(XSUB="NEW":LRFILNM1,1:LRFILNM2)
- . . S @LRHLOTLK@(LROUTNOD)=$$UUBEGFN(LRFILNM)
- . . F S LRNODE=$O(@LRHLARY@(XSUB,LRNODE)) Q:(LRNODE)="" D
- . . . S LRSTR=LRSTR_@LRHLARY@(XSUB,LRNODE)_LRCRLF
- . . . D ENCODE(.LRSTR,.LROUTNOD,LRHLOTLK)
- . . S:(LRSTR'="") @LRHLOTLK@(LROUTNOD+1)=$$UUEN(LRSTR)
- . . S @LRHLOTLK@(LROUTNOD+2)=" "
- . . S @LRHLOTLK@(LROUTNOD+3)="end"
- Q
- ;
- UUBEGFN(LRFILENM) ; Construct uuencode "begin" coding
- ; Call with LRFILENM = name of uuencoded file attachment
- ;
- ; Returns LRX = string with "begin..."_file name
- ;
- N LRX
- S LRX="begin 644 "_LRFILENM
- Q LRX
- ;
- ENCODE(LRSTR,LRDTANOD,LRHLOTLK) ;Encode a string, keep remainder for next line
- ;INPUT:
- ; LRSTR - String to send in message; call by reference, Remainder returned in LRSTR
- ; LRDTANOD - Number of next Node to store message line in array
- ; LRHLOTLK - Array containing message text for network addresses
- ;
- N LRQUIT,LRLEN,LRX
- S LRQUIT=0,LRLEN=$L(LRSTR)
- F D Q:LRQUIT
- . I $L(LRSTR)<45 S LRQUIT=1 Q
- . S LRX=$E(LRSTR,1,45)
- . S LRDTANOD=LRDTANOD+1,@LRHLOTLK@(LRDTANOD)=$$UUEN(LRX)
- . S LRSTR=$E(LRSTR,46,LRLEN)
- Q
- ;
- UUEN(STR) ; Uuencode string passed in.
- N J,K,LEN,LRI,LRX,S,TMP,X,Y
- S TMP="",LEN=$L(STR)
- F LRI=1:3:LEN D
- . S LRX=$E(STR,LRI,LRI+2)
- . I $L(LRX)<3 S LRX=LRX_$E(" ",1,3-$L(LRX))
- . S S=$A(LRX,1)*256+$A(LRX,2)*256+$A(LRX,3),Y=""
- . F K=0:1:23 S Y=(S\(2**K)#2)_Y
- . F K=1:6:24 D
- . . S J=$$DEC^XLFUTL($E(Y,K,K+5),2)
- . . S TMP=TMP_$C(J+32)
- S TMP=$C(LEN+32)_TMP
- Q TMP
- ;
- ;
- PARAMED(AUTYP,AUDES) ;Edit the Dates referenced by tasked Option "LRJ SYS MAP [autyp] TASKMAN RPT"
- ;where AUTYP=audit type (ex. AUF60 for File 60 audit
- ; This API invokes the Edit Instance and Value of a Parameter API to edit the following
- ; Parameters:
- ; LRJ LSRP [autyp] LAST START DATE
- ; LRJ LSRP [autyp] LAST END DATE
- ;
- ; These parameters control the period that the Audit file extract is performed via the
- ; TaskMan scheduled job for the "LRJ SYS MAP [autyp] TASKMAN RPT" option
- ;
- W !!,"Lab "_AUDES_" Audit extract dates record the report dates"
- W !," for the last extract created by the LRJ SYS MAP "_AUTYP_" TASKMAN RPT option."
- W !," The LRJ LSRP "_AUTYP_" LAST END DATE is the start date used by the next execution"
- W !," of the LRJ SYS MAP "_AUTYP_" TASKMAN RPT option.",!
- W !!,"WARNING: Editing the LRJ LSRP "_AUTYP_" LAST END DATE will affect the information"
- W !," reported by the LRJ SYS MAP "_AUTYP_" TASKMAN RPT option. This option makes"
- W !," assumptions about data previously reported based upon this date."
- W !!,"A USER CHANGING THE 'LRJ LSRP "_AUTYP_" LAST END DATE' MUST UNDERSTAND THE RESULT"
- W !," OF THE CHANGE MADE AND RECONCILE THE REPORTS CREATED AGAINST THE PREVIOUS"
- W !," REPORT CREATED!",!!
- ;
- D EDITPAR^XPAREDIT("LRJ LSRP "_AUTYP_" LAST START "_$S(AUTYP["XT":"DT",1:"DATE"))
- W !!,"-------------------------------------------------------------------------------"
- D EDITPAR^XPAREDIT("LRJ LSRP "_AUTYP_" LAST END DATE")
- ;;D EN^XPAREDIT ;;IA #2336
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HLRJSAU2 13966 printed Jan 18, 2025@03:16:17 Page 2
- LRJSAU2 ;ALB/GTS/DK/TMK - Lab Vista Audit Utilities;08/16/2010 15:53:28
- +1 ;;5.2;LAB SERVICE;**425**;Sep 27, 1994;Build 30
- +2 ;
- +3 ;
- KILL ;Kill off build data
- +1 KILL ^TMP("LRJ SYS MAP AUD MSG",$JOB)
- +2 KILL ^TMP("LRJ SYS MAP AUD MANAGER",$JOB)
- +3 QUIT
- +4 ;
- LISTHLMM(LRHLARY) ; Store audit information in the display array
- +1 ; INPUT -
- +2 ; LRHLARY - Array of raw extract data
- +3 ;
- +4 NEW LRREF,LRFROM,LRTO
- +5 ;get top level with date information
- +6 SET LRREF=$PIECE(LRHLARY,")")_",1)"
- +7 SET LRFROM=$PIECE($GET(@LRREF),"^")
- +8 SET LRTO=$PIECE($GET(@LRREF),"^",2)
- +9 DO KILL
- +10 DO KILL^VALM10()
- +11 DO CRTRPTAR(LRHLARY,LRFROM,LRTO,"DISPLAY","")
- +12 QUIT
- +13 ;
- CRTRPTAR(LRHLARY,LRFROM,LRTO,LROUTPT,LRMMARY) ; Store info in the display array
- +1 ; INPUT -
- +2 ; LRHLARY - Array of raw extract data
- +3 ; LRFROM - Start date for report
- +4 ; LRTO - End date for report
- +5 ; LROUTPT - "DISPLAY" for Listman; "MAIL" for mail message
- +6 ; LRMMARY - Mail message output array
- +7 ;
- +8 NEW X,XN,XP,NODE,X1,X2,X3
- +9 NEW LRFSTLNE,LRPARAM,LRLNCTN,LRLNCNT,LRVALST
- +10 SET VALM("TITLE")=AUDES_" Audit Message"
- +11 if $GET(LRMMARY)=""
- SET LRMMARY=""
- +12 if $GET(LROUTPT)=""
- SET LROUTPT="DISPLAY"
- +13 SET LRFSTLNE=0
- +14 SET X=AUDES_$SELECT($DATA(LRFROM):" from "_$$FMTE^XLFDT(LRFROM),1:"")_$SELECT($DATA(LRTO):" to "_$$FMTE^XLFDT(LRTO),1:"")
- +15 IF LROUTPT="MAIL"
- Begin DoDot:1
- +16 SET LRLNCNT=0
- +17 DO LRADDNOD^LRJSAU3(.LRLNCNT,X,"",LROUTPT,LRMMARY)
- End DoDot:1
- +18 QUIT
- +19 ;
- +20 ;THE FOLLOWING API is to be called from a Taskman
- +21 ;scheduled job LRJ SYS MAP [autyp] TASKMAN RPT where autyp=audit type
- +22 ;;;TASKMAN should call D TSKMMARY^LRJSAU2(AUTYP,AUDES,"^TMP(""LRJ SYS F60 AUD MANAGER"",$J)","^TMP(""LRJ SYS F60 AUD MANAGER"",$J)")
- TSKMMARY(AUTYP,AUDES,AUFMT) ;TASKMAN API for Mail Message array
- +1 ;
- +2 ;INPUT (Roots for arrays to be created)
- +3 ;AUTYP=Audit Type (AUF60 = File 60, AUF60XT = File 60 extract delimited file
- +4 ;AUDES=Description (File 60 Audit, New Person Audit)
- +5 ; LRHLARY - Array of Raw Data
- +6 ; LRMMARY - Mail Message array to send in message
- +7 ;AUFMT=format (Readable Display=DISPLAY; Delimited file =FILE)
- +8 ;
- +9 ;
- +10 NEW $ESTACK,$ETRAP
- SET $ETRAP="D TSKERR^LRJSAU2"
- +11 NEW LRFROM,LRTO,LRTOMM,LRMSUBJ,XQSND,ERR,LRTOVA,LRTASKVA,LRINSTVA,AUSUB,TSKCALL,ZTIO
- +12 ;
- +13 ;;TO DO: GIVE INSTRUCTIONS FOR SCHEDULING THE FREQUENCY OF TASK JOB VIA TASKMAN
- +14 ;;
- +15 DO NOW^%DTC
- +16 ;NOW is end date/time
- SET LRTO=$EXTRACT(%,1,12)
- +17 KILL %,X,%H,%I(1),%I(2),%I(3)
- +18 SET LRFROM=$$GET^XPAR("SYS","LRJ LSRP "_AUTYP_" LAST END DATE",1,"Q")
- +19 ;
- +20 ;If report hasn't been run before, generate for previous 7 days
- +21 IF LRFROM=""
- Begin DoDot:1
- +22 SET X1=LRTO
- +23 SET X2=-7
- +24 DO C^%DTC
- +25 SET LRFROM=X
- +26 KILL X,%H
- End DoDot:1
- +27 ;
- +28 DO EN^XPAR("SYS","LRJ LSRP "_AUTYP_" LAST END DATE",,LRTO,.ERR)
- +29 DO EN^XPAR("SYS","LRJ LSRP "_AUTYP_" LAST START DATE",,LRFROM,.ERR)
- +30 ;
- +31 SET TSKCALL=1
- SET ZTIO=""
- +32 IF AUTYP["AUF60"
- DO AUDISP^LRJSAU60
- +33 IF AUTYP'["AUF60"
- QUIT
- +34 SET AUSUB=$SELECT(AUTYP["AUF60":"F60",1:"")
- +35 SET (LRHLARY,LRMMARY)="^TMP(""LRJ SYS ""_AUSUB_"" AUD MANAGER"",$J)"
- +36 IF AUTYP["XT"
- SET (LRHLARY,LRMMARY)="^TMP(""LRJ SYS ""_AUSUB_"" AUD MANAGER"",$J,""EXTRACT"")"
- +37 ;
- +38 IF $DATA(@LRHLARY)
- Begin DoDot:1
- +39 SET LRLPCNT=1
- +40 SET @LRMMARY@(LRLPCNT)=AUDES_$SELECT($DATA(LRFROM):" from "_$$FMTE^XLFDT(LRFROM),1:"")_$SELECT($DATA(LRTO):" to "_$$FMTE^XLFDT(LRTO),1:"")
- +41 IF AUFMT="DISPLAY"
- Begin DoDot:2
- +42 FOR XCAT="NEW","OLD"
- Begin DoDot:3
- +43 SET (LRNODE,LRSUB)=0
- +44 IF '$DATA(@LRHLARY@(XCAT))
- Begin DoDot:4
- +45 SET LRLPCNT=LRLPCNT+1
- +46 SET @LRMMARY@(LRLPCNT)=" No "_$SELECT(XCAT="NEW":"new",1:"modified")_" entries"
- End DoDot:4
- QUIT
- +47 SET LRLPCNT=LRLPCNT+1
- +48 SET @LRMMARY@(LRLPCNT)=""
- +49 SET LRLPCNT=LRLPCNT+1
- +50 SET @LRMMARY@(LRLPCNT)=$SELECT(XCAT="NEW":"New",1:"Modified")_" entries"
- +51 SET LRLPCNT=LRLPCNT+1
- +52 SET @LRMMARY@(LRLPCNT)=""
- +53 FOR
- SET LRNODE=$ORDER(@LRHLARY@(XCAT,LRNODE))
- if LRNODE=""
- QUIT
- Begin DoDot:4
- +54 FOR
- SET LRSUB=$ORDER(@LRHLARY@(XCAT,LRNODE,LRSUB))
- if LRSUB=""
- QUIT
- Begin DoDot:5
- +55 SET LRLPCNT=LRLPCNT+1
- +56 SET @LRMMARY@(LRLPCNT)=$GET(@LRHLARY@(XCAT,LRNODE,LRSUB))
- End DoDot:5
- End DoDot:4
- End DoDot:3
- +57 SET LRMSUBJ=AUDES_$SELECT($DATA(LRFROM):" from "_$$FMTE^XLFDT(LRFROM),1:"")_$SELECT($DATA(LRTO):" to "_$$FMTE^XLFDT(LRTO),1:"")
- +58 SET LRTOMM("G.LRJ "_AUTYP_" AUDIT TASK REPORT")=""
- +59 SET XQSND=DUZ
- +60 ;"1" = created by Taskman; send to Mailgroup
- DO SNDMSG(LRMSUBJ,XQSND,LRMMARY,.LRTOMM,1)
- End DoDot:2
- +61 ;Send Extract message with attachments
- +62 if AUFMT="DISPLAY"
- QUIT
- +63 SET LRMSUBJ=AUDES_$SELECT($DATA(LRFROM):" from "_$$FMTE^XLFDT(LRFROM),1:"")_$SELECT($DATA(LRTO):" to "_$$FMTE^XLFDT(LRTO),1:"")
- +64 ;
- +65 ;Check for Network addresses and mail attachment
- +66 ;Do not Restrict Message addressing
- SET LRINSTVA("ADDR FLAGS")="R"
- +67 SET LRINSTVA("FROM")="LSRP_"_AUTYP_" USER_ACTION"
- +68 SET XQSND=DUZ
- +69 SET LRTOVA(XQSND)=""
- +70 ;Array of raw extract, Array of message text for networkd address, Message subject
- +71 ;
- +72 SET LRTOMM("G.LRJ "_AUTYP_" AUDIT TASK REPORT")=""
- +73 DO OUTLKARY(LRHLARY,"^TMP($J,""LRNETMSG"")",LRMSUBJ)
- +74 DO SNDMSG(LRMSUBJ,XQSND,"^TMP($J,""LRNETMSG"")",.LRTOMM,1)
- +75 ;
- End DoDot:1
- +76 KILL @LRHLARY,@LRMMARY,^TMP($JOB,"LRNETMSG")
- +77 QUIT
- +78 ;
- TSKERR ; Error trap to send bulletin if queued report encounters a system error
- +1 NEW XMTEXT,XMY,XMSUB,XQSND
- +2 SET XMY("G.LRJ "_AUTYP_" AUDIT TASK REPORT")=""
- +3 SET XMSUB=AUDES_" AUTOMATED REPORT ERROR"
- +4 SET XMTEXT(1)="This message is to inform you that the "_AUDES_" automated report"
- +5 SET XMTEXT(2)="has encountered an error and did not complete. Please contact your"
- +6 SET XMTEXT(3)="system manager for further details."
- +7 SET XMTEXT(4)=" "
- +8 SET XMTEXT(5)="ERROR OCCURRED: "_$$FMTE^XLFDT($$NOW^XLFDT,"2")
- +9 SET XMTEXT(6)="ERROR MESSAGE : "_$$EC^%ZOSV
- +10 SET XQSND=DUZ
- +11 DO SNDMSG(XMSUB,XQSND,"XMTEXT",.XMY,1)
- +12 ;
- +13 ; log error in standard error trap
- +14 DO ^%ZTER
- +15 DO UNWIND^%ZTER
- +16 QUIT
- +17 ;
- CRTMMARY(LRHLARY,AUTYP,AUDES,AURTN,LRMMARY) ;Load Mail Message array
- +1 ;INPUT
- +2 ; LRHLARY - Array of Raw Data
- +3 ;AUTYP = audit type (ex: AUF60 for File 60 audit
- +4 ;AUDES = audit description (ex. File 60, New Person)
- +5 ;AURTN = audit specific utility routine (ex. LRJSAU60 for file 60)
- +6 ; LRMMARY - Mail Message array to send in message
- +7 ;
- +8 NEW LRMSUBJ,XQSND,LRFROM,LRTO,XQSND,LRNODE,LRSAVE,LRLPCNT,XCAT,LRSUB,LRREF,LRTOMM
- +9 ;
- +10 DO LISTHLMM(LRHLARY)
- +11 ;get top level with date information
- +12 ;may seem like duplicate work since LISTHLMM has the same logic
- +13 ;but LISTHLMM also called from other routine(s)
- +14 ;may be safer to keep this logic here
- +15 SET LRREF=$PIECE(LRHLARY,")")_",1)"
- +16 SET LRFROM=$PIECE($GET(@LRREF),"^")
- +17 SET LRTO=$PIECE($GET(@LRREF),"^",2)
- +18 IF LRFROM=""
- Begin DoDot:1
- +19 WRITE !,?10,"First invoke ""DF"" option"
- +20 DO PAUSE^VALM1
- +21 IF AUTYP["F60"
- DO F60^LRJSAU
- End DoDot:1
- QUIT
- +22 ;
- +23 SET LRMSUBJ=AUDES_$SELECT($DATA(LRFROM):" from "_$$FMTE^XLFDT(LRFROM),1:"")_$SELECT($DATA(LRTO):" to "_$$FMTE^XLFDT(LRTO),1:"")
- +24 SET XQSND=DUZ
- SET LRLPCNT=1
- +25 IF '$GET(LRMMARY)
- SET LRMMARY="^TMP(""LRJ SYS "_$EXTRACT(AUTYP,3,99)_" AUD MANAGER"",$J)"
- +26 SET @LRMMARY@(LRLPCNT)=LRMSUBJ
- +27 FOR XCAT="NEW","OLD"
- Begin DoDot:1
- +28 SET (LRNODE,LRSUB)=0
- +29 IF '$DATA(@VALMAR@(XCAT))
- Begin DoDot:2
- +30 SET LRLPCNT=LRLPCNT+1
- +31 SET @LRMMARY@(LRLPCNT)=" No "_$SELECT(XCAT="NEW":"new",1:"modified")_" entries"
- End DoDot:2
- QUIT
- +32 SET LRLPCNT=LRLPCNT+1
- +33 SET @LRMMARY@(LRLPCNT)=$SELECT(XCAT="NEW":"New",1:"Modified")_" entries"
- End DoDot:1
- +34 DO SNDMSG(LRMSUBJ,XQSND,LRMMARY,.LRTOMM,0)
- +35 SET @LRREF=LRFROM_"^"_LRTO
- +36 ;I $O(@VALMAR@(0))="" K @LRMMARY@(1),@LRMMARY@(2),@LRMMARY@(3)
- +37 QUIT
- +38 ;
- SNDMSG(LRMSUBJ,XQSND,LRMSGARY,LRTOMM,LRTASK) ;Send message to requestor
- +1 ;INPUT:
- +2 ; LRMSUBJ - Subject of message being generated
- +3 ; XQSND - User's DUZ, Group Name, or S.server name
- +4 ; LRMSGARY - Array containing message text
- +5 ; LRTOMM - Array containing users, groups, etc who should receive the message
- +6 ; LRTASK - If defined, indicates this is called from TASKMAN job
- +7 ;
- +8 NEW LRINSTMM,LRTASKMM,XMERR,XMZ,LRLPCNT,LRTYPE
- +9 ;
- +10 if '$DATA(LRTASK)
- SET LRTASK=0
- +11 IF 'LRTASK
- Begin DoDot:1
- +12 KILL XMERR
- +13 ;Do not Restrict Message addressing
- SET LRINSTMM("ADDR FLAGS")="R"
- +14 SET LRTYPE="S"
- +15 DO TOWHOM^XMXAPIU(DUZ,,LRTYPE,.LRINSTMM)
- +16 SET LRLPCNT=""
- +17 FOR
- SET LRLPCNT=$ORDER(^TMP("XMY",$JOB,LRLPCNT))
- if LRLPCNT=""
- QUIT
- SET LRTOMM(LRLPCNT)=""
- End DoDot:1
- +18 ;
- +19 IF +$GET(XMERR)'>0
- Begin DoDot:1
- +20 ;no need to set additional VistA recipients - added LRTOMM as parameter
- +21 SET LRINSTMM("FROM")="LSRP_"_AUTYP_"_USER_ACTION"
- +22 SET LRMSUBJ=$EXTRACT(LRMSUBJ,1,65)
- +23 DO SENDMSG^XMXAPI(XQSND,LRMSUBJ,LRMSGARY,.LRTOMM,.LRINSTMM,.LRTASKMM)
- End DoDot:1
- +24 ;
- +25 ;K @LRMSGARY,^TMP("XMY",$J),^TMP("XMY0",$J),^TMP($J,"LRNETMSG")
- +26 QUIT
- +27 ;
- +28 ;Following Protocol invokes this API: LRJ SYS MAP AUF60 SEND EXT
- CRTXTMM(LRHLARY,AUTYP,AUDES,AURTN) ;Load Mail Message array
- +1 ;INPUT
- +2 ; LRHLARY - Array of Raw Data [^TMP($J,"LRJ SYS") when called by LRJ SYS MAP HL SEND MSG]
- +3 ;
- +4 NEW LRMSUBJ,XQSND
- +5 SET LRREF=$PIECE(LRHLARY,"""EXTRACT""")_"1,0)"
- +6 SET LRMSUBJ=$GET(@LRREF)
- +7 IF LRMSUBJ=""
- Begin DoDot:1
- +8 WRITE !,?10,"First invoke ""DF"" option"
- +9 DO PAUSE^VALM1
- +10 IF AUTYP["F60"
- DO F60^LRJSAU
- End DoDot:1
- QUIT
- +11 ;
- +12 SET XQSND=DUZ
- +13 DO SNDEXT(LRMSUBJ,XQSND,LRHLARY)
- +14 QUIT
- +15 ;
- SNDEXT(LRMSUBJ,XQSND,LREXTARY) ;Send extract to requestor
- +1 ;INPUT:
- +2 ; LRMSUBJ - Subject of message being generated
- +3 ; XQSND - User's DUZ, Group Name, or S.server name
- +4 ; LREXTARY - Array containing message text.
- +5 ;
- +6 NEW LRINSTMM,LRINSTVA,LRTASKMM,LRTASKVA,LRTOMM,LRTOVA,XMERR,XMZ,LRLPCNT,LRTYPE
- +7 ;
- +8 ;Do not Restrict Message addressing
- SET LRINSTMM("ADDR FLAGS")="R"
- +9 SET LRTYPE="S"
- +10 KILL XMERR
- +11 DO TOWHOM^XMXAPIU(DUZ,,LRTYPE,.LRINSTMM)
- +12 ;
- +13 ;Check for Network addresses and mail attachment
- +14 ;Do not Restrict Message addressing
- SET LRINSTVA("ADDR FLAGS")="R"
- +15 SET LRINSTVA("FROM")="LSRP_"_AUTYP_"_USER_ACTION"
- +16 SET LRMSUBJ=$EXTRACT(LRMSUBJ,1,65)
- +17 SET LRLPCNT=""
- +18 FOR
- SET LRLPCNT=$ORDER(^TMP("XMY",$JOB,LRLPCNT))
- if LRLPCNT=""
- QUIT
- SET LRTOVA(LRLPCNT)=""
- +19 IF +$GET(XMERR)'>0
- Begin DoDot:1
- +20 DO OUTLKARY(LREXTARY,"^TMP($J,""LRNETMSG"")",LRMSUBJ)
- +21 DO SENDMSG^XMXAPI(XQSND,LRMSUBJ,"^TMP($J,""LRNETMSG"")",.LRTOVA,.LRINSTVA,.LRTASKVA)
- End DoDot:1
- +22 ;
- +23 KILL ^TMP("XMY",$JOB),^TMP("XMY0",$JOB),^TMP($JOB,"LRNETMSG")
- +24 QUIT
- +25 ;
- OUTLKARY(LRHLARY,LRHLOTLK,LRMSUBJ) ;Create array of attachments
- +1 ;INPUT:
- +2 ; LRHLARY - Array containing message text
- +3 ; LRHLOTLK - Array containing message text for network addresses
- +4 ; LRMSUBJ - Subject of message
- +5 ;
- +6 NEW LRFILNM,LRFILNM1,LRFILNM2,LRDTTM,LRCRLF,LRSTR,LRNODE,LROUTNOD,LRNODATA,XSUB
- +7 SET LRSTR=""
- +8 SET LRNODATA=0
- +9 SET LRCRLF=$CHAR(13,10)
- +10 KILL @LRHLOTLK
- +11 SET @LRHLOTLK@(1)="Extract Generated......: "_$$FMTE^XLFDT($$NOW^XLFDT)_LRCRLF
- +12 SET @LRHLOTLK@(2)=" "
- +13 SET @LRHLOTLK@(3)="Extract Requested......: "_LRMSUBJ_LRCRLF
- +14 SET @LRHLOTLK@(4)=" "
- +15 ;
- +16 SET LRDTTM=$$NOW^XLFDT
- +17 SET LRFILNM1=AUTYP_"_EXT_NEW_"_$PIECE(LRDTTM,".",1)_"_"_$PIECE(LRDTTM,".",2)_".csv"
- +18 SET LRFILNM2=AUTYP_"_EXT_MOD_"_$PIECE(LRDTTM,".",1)_"_"_$PIECE(LRDTTM,".",2)_".csv"
- +19 SET @LRHLOTLK@(5)=$SELECT($DATA(@LRHLARY@("NEW")):"Attached LMOF",1:"No")_" NEW "_AUDES_" Entries"_$SELECT($DATA(@LRHLARY@("NEW")):": "_LRFILNM1,1:"")_LRCRLF
- +20 SET @LRHLOTLK@(6)=" "
- +21 SET @LRHLOTLK@(7)=$SELECT($DATA(@LRHLARY@("OLD")):"Attached LMOF",1:"No")_" MODIFIED "_AUDES_" Entries"_$SELECT($DATA(@LRHLARY@("OLD")):": "_LRFILNM2,1:"")_LRCRLF
- +22 if ($ORDER(@LRHLARY@(0))="")
- SET LRNODATA=1
- +23 SET @LRHLOTLK@(8)=" "
- +24 if (LRNODATA=0)
- SET @LRHLOTLK@(9)=" "
- +25 if (LRNODATA=1)
- SET @LRHLOTLK@(9)="No data was extracted for date range!!"
- +26 ;
- +27 ;Begin output of "NEW" entries
- +28 FOR XSUB="NEW","OLD"
- Begin DoDot:1
- +29 SET LRNODE=0
- SET LRSTR=""
- SET LROUTNOD=$SELECT(XSUB="NEW":10,XSUB="OLD"&($DATA(@LRHLARY@("NEW"))):LROUTNOD+4,1:10)
- +30 IF $DATA(@LRHLARY@(XSUB))
- Begin DoDot:2
- +31 SET LRFILNM=$SELECT(XSUB="NEW":LRFILNM1,1:LRFILNM2)
- +32 SET @LRHLOTLK@(LROUTNOD)=$$UUBEGFN(LRFILNM)
- +33 FOR
- SET LRNODE=$ORDER(@LRHLARY@(XSUB,LRNODE))
- if (LRNODE)=""
- QUIT
- Begin DoDot:3
- +34 SET LRSTR=LRSTR_@LRHLARY@(XSUB,LRNODE)_LRCRLF
- +35 DO ENCODE(.LRSTR,.LROUTNOD,LRHLOTLK)
- End DoDot:3
- +36 if (LRSTR'="")
- SET @LRHLOTLK@(LROUTNOD+1)=$$UUEN(LRSTR)
- +37 SET @LRHLOTLK@(LROUTNOD+2)=" "
- +38 SET @LRHLOTLK@(LROUTNOD+3)="end"
- End DoDot:2
- End DoDot:1
- +39 QUIT
- +40 ;
- UUBEGFN(LRFILENM) ; Construct uuencode "begin" coding
- +1 ; Call with LRFILENM = name of uuencoded file attachment
- +2 ;
- +3 ; Returns LRX = string with "begin..."_file name
- +4 ;
- +5 NEW LRX
- +6 SET LRX="begin 644 "_LRFILENM
- +7 QUIT LRX
- +8 ;
- ENCODE(LRSTR,LRDTANOD,LRHLOTLK) ;Encode a string, keep remainder for next line
- +1 ;INPUT:
- +2 ; LRSTR - String to send in message; call by reference, Remainder returned in LRSTR
- +3 ; LRDTANOD - Number of next Node to store message line in array
- +4 ; LRHLOTLK - Array containing message text for network addresses
- +5 ;
- +6 NEW LRQUIT,LRLEN,LRX
- +7 SET LRQUIT=0
- SET LRLEN=$LENGTH(LRSTR)
- +8 FOR
- Begin DoDot:1
- +9 IF $LENGTH(LRSTR)<45
- SET LRQUIT=1
- QUIT
- +10 SET LRX=$EXTRACT(LRSTR,1,45)
- +11 SET LRDTANOD=LRDTANOD+1
- SET @LRHLOTLK@(LRDTANOD)=$$UUEN(LRX)
- +12 SET LRSTR=$EXTRACT(LRSTR,46,LRLEN)
- End DoDot:1
- if LRQUIT
- QUIT
- +13 QUIT
- +14 ;
- UUEN(STR) ; Uuencode string passed in.
- +1 NEW J,K,LEN,LRI,LRX,S,TMP,X,Y
- +2 SET TMP=""
- SET LEN=$LENGTH(STR)
- +3 FOR LRI=1:3:LEN
- Begin DoDot:1
- +4 SET LRX=$EXTRACT(STR,LRI,LRI+2)
- +5 IF $LENGTH(LRX)<3
- SET LRX=LRX_$EXTRACT(" ",1,3-$LENGTH(LRX))
- +6 SET S=$ASCII(LRX,1)*256+$ASCII(LRX,2)*256+$ASCII(LRX,3)
- SET Y=""
- +7 FOR K=0:1:23
- SET Y=(S\(2**K)#2)_Y
- +8 FOR K=1:6:24
- Begin DoDot:2
- +9 SET J=$$DEC^XLFUTL($EXTRACT(Y,K,K+5),2)
- +10 SET TMP=TMP_$CHAR(J+32)
- End DoDot:2
- End DoDot:1
- +11 SET TMP=$CHAR(LEN+32)_TMP
- +12 QUIT TMP
- +13 ;
- +14 ;
- PARAMED(AUTYP,AUDES) ;Edit the Dates referenced by tasked Option "LRJ SYS MAP [autyp] TASKMAN RPT"
- +1 ;where AUTYP=audit type (ex. AUF60 for File 60 audit
- +2 ; This API invokes the Edit Instance and Value of a Parameter API to edit the following
- +3 ; Parameters:
- +4 ; LRJ LSRP [autyp] LAST START DATE
- +5 ; LRJ LSRP [autyp] LAST END DATE
- +6 ;
- +7 ; These parameters control the period that the Audit file extract is performed via the
- +8 ; TaskMan scheduled job for the "LRJ SYS MAP [autyp] TASKMAN RPT" option
- +9 ;
- +10 WRITE !!,"Lab "_AUDES_" Audit extract dates record the report dates"
- +11 WRITE !," for the last extract created by the LRJ SYS MAP "_AUTYP_" TASKMAN RPT option."
- +12 WRITE !," The LRJ LSRP "_AUTYP_" LAST END DATE is the start date used by the next execution"
- +13 WRITE !," of the LRJ SYS MAP "_AUTYP_" TASKMAN RPT option.",!
- +14 WRITE !!,"WARNING: Editing the LRJ LSRP "_AUTYP_" LAST END DATE will affect the information"
- +15 WRITE !," reported by the LRJ SYS MAP "_AUTYP_" TASKMAN RPT option. This option makes"
- +16 WRITE !," assumptions about data previously reported based upon this date."
- +17 WRITE !!,"A USER CHANGING THE 'LRJ LSRP "_AUTYP_" LAST END DATE' MUST UNDERSTAND THE RESULT"
- +18 WRITE !," OF THE CHANGE MADE AND RECONCILE THE REPORTS CREATED AGAINST THE PREVIOUS"
- +19 WRITE !," REPORT CREATED!",!!
- +20 ;
- +21 DO EDITPAR^XPAREDIT("LRJ LSRP "_AUTYP_" LAST START "_$SELECT(AUTYP["XT":"DT",1:"DATE"))
- +22 WRITE !!,"-------------------------------------------------------------------------------"
- +23 DO EDITPAR^XPAREDIT("LRJ LSRP "_AUTYP_" LAST END DATE")
- +24 ;;D EN^XPAREDIT ;;IA #2336
- +25 QUIT