Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: BRNPTCH2

BRNPTCH2.m

Go to the documentation of this file.
  1. BRNPTCH2 ; IHS/OIT/AR - BRN Patch 2 Environment/Post Install ; [ 04/XX/2009 XX:YY XM ]
  1. ;;2.0;RELEASE OF INFO SYSTEM;**2**;APR 10, 2003
  1. ;
  1. PRE ; EP
  1. NEW CP,RPMS,RPMSVER
  1. NEW STR
  1. NEW LASTPTCH ; Last Patch
  1. NEW LSTPISTS ; Last Patch Install Status
  1. NEW ERRARRAY ; Array of errors
  1. ;
  1. D BMES^XPDUTL("Beginning of Pre Check.")
  1. I $G(XPDNM)="" D SORRY("XPDNM not defined or 0.") Q
  1. ;
  1. S CP=$P(XPDNM,"*",3) ; This Patch Number
  1. S RPMS=$P(XPDNM,"*",1) ; RPMS Module
  1. S RPMSVER=$P(XPDNM,"*",2) ; Version of RPMS module being patched
  1. ;
  1. PTCHLAST ; EP - Check for previous patch
  1. D MES^XPDUTL(" Need BRN*2.0*1 Patch Installed.")
  1. I $$PATCH^XPDUTL("BRN*2.0*1")'=1 D SORRY("BRN*2.0*1 Patch Not Installed.") Q
  1. ;
  1. D OKAY("BRN*2.0*1 Patch Installed.",10)
  1. ;
  1. S XPDNOQUE="NO QUE" ; No Queuing Allowed
  1. ;
  1. ; The following lines prevent the "Disable Options..." and "Move
  1. ; Routines..." questions from being asked during the install.
  1. I $G(XPDENV)=1 S (XPDDIQ("XPZ1"),XPDDIQ("XPZ2"))=0
  1. I $G(XPDENV)=1 S (XPDDIQ("XPZ1"),XPDDIQ("XPZ2"))=0
  1. F X="XPO1","XPZ1","XPZ2","XPI1" S XPDDIQ(X)=0
  1. ;
  1. S XPDABORT=0 ; KIDS install Flag
  1. ;
  1. USERID ; EP - CHECK FOR USER ID
  1. I '$G(DUZ) D SORRY("DUZ UNDEFINED OR 0.") Q
  1. ;
  1. I '$L($G(DUZ(0))) D SORRY("DUZ(0) UNDEFINED OR NULL.") Q
  1. ;
  1. D HOME^%ZIS
  1. D DTNOLF^DICRW ; Set DT variable without Doing a Line Feed
  1. ;
  1. S X=$P($G(^VA(200,DUZ,0)),U)
  1. I $G(X) D SORRY("Installer cannot be identified!",,,CP) Q
  1. ;
  1. D MES^XPDUTL("Pre Check complete.")
  1. ;
  1. LETSGO ; EP - USER IDENTIFIED -- LET'S GO
  1. D BMES^XPDUTL("Hello, "_$P(X,",",2)_" "_$P(X,","))
  1. ;
  1. D BMES^XPDUTL("Checking Environment for Patch "_CP_" of Version "_RPMSVER_" of "_RPMS_".")
  1. ;
  1. D NEEDIT("DI","22.0",,.ERRARRAY) ; FILEMAN 22.0
  1. D NEEDIT("XM","8.0",,.ERRARRAY) ; MAILMAN 8.0
  1. D NEEDIT("XU","8.0",,.ERRARRAY) ; KERNEL 8.0
  1. D NEEDIT("XB","3.0",,.ERRARRAY) ; IHS/VA Utilities
  1. ;
  1. I XPDABORT<1 D BMES^XPDUTL("Environment for Patch "_CP_" of Version "_RPMSVER_" of "_RPMS_" OK.")
  1. I XPDABORT>0 D SORRYEND(.ERRARRAY) ; ENVIRONMENT HAS ERROR(S)
  1. D BMES^XPDUTL(" ")
  1. Q
  1. ;
  1. ; Generic "Find RPMS Module's Version and (perhaps) Patch number"
  1. ; The MODULE variable MUST be the PREFIX name from the PACKAGE file (9.4).
  1. NEEDIT(MODULE,VERSION,PATCH,ERRARRAY) ; EP
  1. NEW NAME ; Name of PACKAGE
  1. NEW HEREYAGO,STR1,STR2 ; Scratch variables/arrays
  1. NEW SYSVER,SYSPATCH ; System Version & System Patch variables
  1. ;
  1. D FIND^DIC(9.4,"","","",MODULE,"","C","","","HEREYAGO")
  1. S NAME=$G(HEREYAGO("DILIST",1,1))
  1. ;
  1. D BMES^XPDUTL("Need at least "_NAME_" "_VERSION)
  1. ;
  1. S SYSVER=$$VERSION^XPDUTL(MODULE) ; Get the System's Version
  1. ; If System Version < Needed Version, write message and quit
  1. I SYSVER<VERSION D Q
  1. . S ERRARRAY(MODULE,NAME,VERSION)=""
  1. . D NEEDMSG("Need "_NAME_" "_VERSION_" & "_NAME_" "_SYSVER_" found!")
  1. ;
  1. D OKAY(NAME_" "_SYSVER_" found.")
  1. I VERSION<SYSVER Q ; If Version needed is lower, skip Patch check
  1. ;
  1. I $G(PATCH)="" Q ; If no Patch check, just exit
  1. ;
  1. D BMES^XPDUTL(" Need "_NAME_" "_VERSION_" Patch "_PATCH_".")
  1. S SYSPATCH=$$PATCH^XPDUTL(MODULE_"*"_VERSION_"*"_PATCH)
  1. I SYSPATCH'=1 D Q
  1. . S ERRARRAY(MODULE,NAME,VERSION)=$G(PATCH)
  1. . D NEEDMSG(NAME_" "_VERSION_" & Patch "_PATCH_" WAS NOT installed!")
  1. ;
  1. D OKAY(NAME_" "_VERSION_" Patch "_PATCH_" found.",10)
  1. ;
  1. Q
  1. ;
  1. NEEDMSG(MESSAGE) ; EP
  1. NEW STR1,STR2
  1. ;
  1. S STR1=MESSAGE
  1. I $L(STR1)<58 D SORRY(STR1,,,CP) Q
  1. ;
  1. S STR1=$P(MESSAGE,"&")_" &"
  1. S STR2=$$TRIM^XLFSTR($P(MESSAGE,"&",2),"L"," ")
  1. D SORRY(STR1,,STR2,CP)
  1. Q
  1. ;
  1. POST ; EP
  1. D BMES^XPDUTL("POST INSTALL Begins.")
  1. ;
  1. D BMES^XPDUTL(" Deleting FOIA Option from BRN MENU RPT")
  1. S OK=$$DELETE^XPDMENU("BRN MENU RPT","BRN FOIA REPORTING")
  1. S STR=$J("",10)_"FOIA Option "_$S(OK=1:"WAS",1:"WAS NOT")
  1. S STR=STR_" Deleted from ROI Reports Menu"
  1. S STR=STR_$S(OK=1:". OK",1:".")
  1. D MES^XPDUTL(STR)
  1. D BMES^XPDUTL("POST INSTALL Complete.")
  1. Q
  1. ;
  1. DEBUG ; EP - Debugging
  1. NEW CP,DEBUG,XPDNM
  1. S DEBUG="YES"
  1. S XPDNM="BRN*2.0*2"
  1. S CP=$P($T(+2),"*",3) ; This Patch
  1. D PRE
  1. Q
  1. ;
  1. SORRY(MSG,MODE,MSG2) ; EP -- Error Message routine.
  1. NEW LINECNT,STR,MESSAGE,WHATMSG
  1. ; The STR array is built so that the error/warning message will
  1. ; also appear on the INSTALL LOG via the D BMES^XPDUTL(.STR) call.
  1. ;
  1. I $G(MODE)="FATAL" D
  1. . S MESSAGE="Install Aborting due to the following Systems Environment issue:"
  1. . S XPDABORT=1 ; Fatal Error Flag Set
  1. ;
  1. I $G(MODE)="NONFATAL" S MESSAGE="*** WARNING *** WARNING *** WARNING ***"
  1. ;
  1. K DIFQ
  1. ;
  1. S LINECNT=1
  1. D ADDLINE($TR($J("",65)," ","*"),.LINECNT) ; Row of asterisks
  1. D ADDLINE(" ",.LINECNT)
  1. ;
  1. D ADDLINE($$CJ^XLFSTR("Site: "_$$LOC^XBFUNC,65),.LINECNT)
  1. D ADDLINE(" ",.LINECNT)
  1. ;
  1. D ADDLINE($$CJ^XLFSTR(MESSAGE,65),.LINECNT)
  1. D ADDLINE(" ",.LINECNT)
  1. ;
  1. D ADDLINE($$CJ^XLFSTR(">>> "_MSG_" <<<",65),.LINECNT)
  1. I $D(MSG2) D ADDLINE($$CJ^XLFSTR(">>> "_MSG2_" <<<",65),.LINECNT)
  1. D ADDLINE(" ",.LINECNT)
  1. ;
  1. I $G(MODE)["NONFATAL" D ADDLINE($$CJ^XLFSTR(MESSAGE,65),.LINECNT)
  1. ;
  1. I $G(MODE)='"FATAL" D
  1. . D ADDLINE($$CJ^XLFSTR("Please print/capture this screen and",65),.LINECNT)
  1. . D ADDLINE($$CJ^XLFSTR("notify the Support Center at",65),.LINECNT)
  1. . D ADDLINE(" ",.LINECNT)
  1. . D ADDLINE($$CJ^XLFSTR("1-999-999-9999.",65),.LINECNT)
  1. . D ADDLINE(" ",.LINECNT)
  1. ;
  1. D ADDLINE($TR($J("",65)," ","*"),.LINECNT) ; Row of asterisks
  1. D ADDLINE(" ",.LINECNT)
  1. ;
  1. D BMES^XPDUTL(.STR) ; Display the message
  1. ;
  1. ; If Debugging, just exit -- Don't send e-mail nor alert
  1. I $G(DEBUG)="YES" Q
  1. ;
  1. S WHATMSG=RPMS_" Patch "_CP_" Install "
  1. S WHATMSG=WHATMSG_$S(MODE="NONFATAL":MODE,MODE="FATAL":">>FATAL<<",1:"<UNK>")
  1. S WHATMSG=WHATMSG_" Error."
  1. ;
  1. D SNDALERT(WHATMSG)
  1. D SENDMAIL(WHATMSG)
  1. Q
  1. ;
  1. ADDLINE(ASTR,LC) ; EP -- Add a line to the STR array
  1. I $G(ASTR)="" S ASTR=" "
  1. S STR(LC)=ASTR
  1. S LC=LC+1
  1. Q
  1. ;
  1. SNDALERT(ALERTMSG) ; EP -- Send alert to installer
  1. NEW XQA,XQAARCH,XQACNDEL,XQADATA,XQAFLG,XQAGUID
  1. NEW XQAID,XQAMSG,XQAOPT,XQAREVUE,XQAROU,XQASUPV
  1. NEW XQASURO,XQATEXT,OK,NAME
  1. ;
  1. S XQAMSG=ALERTMSG
  1. S XQA(DUZ)=""
  1. D SETUP^XQALERT
  1. Q
  1. ;
  1. SENDMAIL(MAILMSG) ; EP -- E-mail to Installer; message in STR array
  1. NEW CP,RPMS,XMDUZ,XMSUB,XMTEXT,XMY
  1. ;
  1. S CP=$P($T(+2),"*",3)
  1. S RPMS=$P($T(+2),"*",4)
  1. ;
  1. S XMY(DUZ)=""
  1. S XMSUB=MAILMSG
  1. S XMTEXT="STR("
  1. S XMDUZ=RPMS_" Patch "_CP
  1. ;
  1. D ^XMD ; Send the MailMan e-mail
  1. Q
  1. ;
  1. OKAY(MSG,TAB) ; EP -- Write out "OKAY" message
  1. I $G(TAB)="" S TAB=5
  1. D MES^XPDUTL($J("",TAB)_MSG_" OK.")
  1. Q
  1. ;
  1. SORRYEND(WOTERR) ; EP -- Final Error Message
  1. NEW STR,MODULE,NAME,VERSION,PATCH,LINECNT,TMP
  1. ;
  1. ; Output a listing of ALL the errors detected during
  1. ; the environment check. The STR array will be
  1. ; displayed by the BMES^XPDUTL call.
  1. ;
  1. D SORRYHED
  1. ;
  1. ; Add ALL the errors detected to the STR array
  1. S (MODULE,NAME,VERSION)=""
  1. F S MODULE=$O(WOTERR(MODULE)) Q:MODULE="" D
  1. . F S NAME=$O(WOTERR(MODULE,NAME)) Q:NAME="" D
  1. .. F S VERSION=$O(WOTERR(MODULE,NAME,VERSION)) Q:VERSION="" D
  1. ... D ADDMESG
  1. ;
  1. D SORRYFIN
  1. ;
  1. D BMES^XPDUTL(.STR) ; Display the message in the STR array
  1. ;
  1. Q
  1. ;
  1. SORRYHED ; EP -- "Header" of Final Fatal Message
  1. S LINECNT=1
  1. D ADDLINE(" ",.LINECNT)
  1. D ADDLINE($TR($J("",65)," ","*"),.LINECNT)
  1. D ADDLINE(" ",.LINECNT)
  1. D ADDLINE($$CJ^XLFSTR("Systems Environment Error Detected",65),.LINECNT)
  1. D ADDLINE($$CJ^XLFSTR("KIDS build will be deleted",65),.LINECNT)
  1. D ADDLINE(" ",.LINECNT)
  1. D ADDLINE($$CJ^XLFSTR("Modules with Version or Patch errors",65),.LINECNT)
  1. D ADDLINE(" ",.LINECNT)
  1. Q
  1. ;
  1. ADDMESG ; EP -- Add to the STR array
  1. S PATCH=$G(WOTERR(MODULE,NAME,VERSION))
  1. D ADDLINE($$CJ^XLFSTR(NAME_" ("_MODULE_")",65),.LINECNT)
  1. ;
  1. S TMP="Version:"_VERSION
  1. I $G(PATCH)'="" S TMP=TMP_" Patch:"_$G(PATCH)
  1. ;
  1. D ADDLINE($$CJ^XLFSTR(TMP,65),.LINECNT)
  1. D ADDLINE(" ",.LINECNT)
  1. Q
  1. ;
  1. SORRYFIN ; EP -- "Fin" of Final Fatal Message
  1. D ADDLINE($$CJ^XLFSTR("Re-Installation will be necessary.",65),.LINECNT)
  1. D ADDLINE(" ",.LINECNT)
  1. D ADDLINE($$CJ^XLFSTR("If assistance is needed, please call 1-999-999-9999.",65),.LINECNT)
  1. D ADDLINE(" ",.LINECNT)
  1. D ADDLINE($TR($J("",65)," ","*"),.LINECNT)
  1. D ADDLINE(" ",.LINECNT)
  1. Q
  1. ;
  1. RESET ; EP -- For debugging only
  1. NEW OK
  1. ;
  1. D BMES^XPDUTL("Adding FOIA Option Back to BRN MENU RPT.")
  1. S OK=$$ADD^XPDMENU("BRN MENU RPT","BRN FOIA REPORTING","FOIA",)
  1. S STR=$J("",5)_"FOIA Option "_$S(OK=1:"WAS",1:"WAS NOT")
  1. S STR=STR_" Added Back to ROI Reports Menu"
  1. S STR=STR_$S(OK=1:". OK",1:".")
  1. D MES^XPDUTL(STR)
  1. D MES^XPDUTL("Adding FOIA Option Back to BRN MENU RPT Complete.")
  1. D BMES^XPDUTL(" ")
  1. Q