- DI1018P ; IHS/OIT/FBD - FILEMAN V22.0 PATCH 1018 ENVIRONMENT CHECKS AND POST-INIT PROCESS;
- ;;22.0;VA FILEMAN;**1018**;JUN 03,2015;Build 3
- ;
- ;
- ; The following line prevents the "Disable Options..." and "Move Routines..." questions from being asked during the install.
- I $G(XPDENV)=1 S (XPDDIQ("XPZ1"),XPDDIQ("XPZ2"))=0
- F X="XPO1","XPZ1","XPZ2","XPI1" S XPDDIQ(X)=0
- ;KERNEL
- I +$$VERSION^XPDUTL("XU")<8 D MES^XPDUTL($$CJ^XLFSTR("Version 8.0 of KERNEL is required. Not installed",80)) D SORRY(2) I 1
- E D MES^XPDUTL($$CJ^XLFSTR("Requires Kernel Version 8.0....Present.",80))
- ;FILEMAN
- I +$$VERSION^XPDUTL("DI")<22 D MES^XPDUTL($$CJ^XLFSTR("Version 22.0 of FILEMAN is required. Not installed.",80)) D SORRY(2) I 1
- E D MES^XPDUTL($$CJ^XLFSTR("Requires Fileman v22....Present.",80))
- ;DI 22.0 PATCH 1017
- I '$$INSTALLD("DI*22.0*1017") D SORRY(2)
- ;
- Q ;END OF ENVIRONMENT CHECK
- ;
- ;
- PRE ;PATCH 1018 PRE-INIT CHECKS AND PROCESSES
- D MES^XPDUTL($$CJ^XLFSTR("Beginning DI v22.0 patch 1018 pre-init process.",80))
- ;
- D MES^XPDUTL($$CJ^XLFSTR("Setting flag to prevent KIDS env check/pre-init/post-init routine deletion...",80))
- S DIZFLG=+$O(^XTV(8989.2,"B","XPD NO_EPP_DELETE",0)) ;CHECK IF NO-DELETE PARAMETER ALREADY EXISTS IN KERNEL PARAMETERS FILE
- I 'DIZFLG D ;IF NOT, ADD IT
- . K DO
- . S DIC="^XTV(8989.2,",DIC(0)="L",X="XPD NO_EPP_DELETE",DIADD=1
- . D FILE^DICN S DIZFLG=+Y K DO,DIC,DIADD,X
- S DIE="^XTV(8989.2,",DA=DIZFLG,DR="4///1" ;SET XPD NO_EPP_DELETE PARAMETER VALUE TO 1 (NO-DELETE = TRUE)
- D ^DIE
- K DIE,DA,DR
- D MES^XPDUTL($$CJ^XLFSTR("Flag set complete.",80))
- ;
- D MES^XPDUTL($$CJ^XLFSTR("DI v22.0 patch 1018 pre-init process complete.",80))
- Q
- ;
- ;
- POST ;PATCH 1018 POST-INIT PROCESSES
- D MES^XPDUTL($$CJ^XLFSTR("Beginning DI v22.0 patch 1018 post-init process.",80))
- ;
- D MES^XPDUTL($$CJ^XLFSTR("Re-initializing FileMan...",80))
- D ;INCREMENT STACK TO COMPARTMENTALIZE FOLLOWING 'NEW' COMMANDS NECESSARY FOR NA^DINIT CALL
- .N %,%H,%X,%Y,DD,DH,DIC,DIK,DIT,DITZS,D,DA,VERSION,DU,F,I,J,P,X,Y,DIRUT,DTOUT,DUOUT ;'NEW'-ED EQUIVALENT OF KL^DINIT6 VARIABLE KILL
- .D VERSION^DINIT N DIFROM S DIFROM=VERSION D DT^DICRW ;FILEMAN VERSION NUMBER RETRIEVAL
- .D NA^DINIT ;GOES DIRECTLY INTO REQUIRED ^DINIT EXECUTION WITHOUT GIVING USER ^DINIT'S NORMAL CHANCE TO OPT OUT
- D MES^XPDUTL($$CJ^XLFSTR("FileMan re-initialization complete...",80))
- ;
- D BMES^XPDUTL("Delivering DI v22.0 patch 1018 install message to select users...")
- D MAIL
- ;
- D MES^XPDUTL($$CJ^XLFSTR("DI v22.0 patch 1018 post-init process complete.",80))
- Q
- ;
- ;
- MAIL ;----- SEND INSTALL MAIL MESSAGE
- ;
- N DIFROM,XMSUB,XMDUZ,XMTEXT,XMY
- ;
- K ^TMP("DI1018MS",$J)
- S ^TMP("DI1018MS",$J,1)=" --- DI v22.0 patch 1018 has been installed into this namespace ---"
- S ^TMP("DI1018MS",$J,2)=" "
- I $G(XPDA) D
- . S %=0
- . F S %=$O(^XTMP("XPDI",XPDA,"BLD",XPDBLD,1,%)) Q:'% D
- . . S ^TMP("DI1018MS",$J,(%+2))=" "_^(%,0)
- ;
- S XMSUB=$P($P($T(+1),";",2)," ",3,99)
- S XMDUZ=$S($G(DUZ):DUZ,1:.5)
- S XMTEXT="^TMP(""DI1018MS"",$J,"
- S XMY(1)=""
- S XMY(DUZ)=""
- ;
- F %="XUMGR","XUPROG","XUPROGMODE" D SINGLE(%)
- D ^XMD
- ;
- K ^TMP("DI1018MS",$J)
- Q
- ;
- ;
- SINGLE(K) ;----- GET HOLDERS OF A SINGLE KEY K.
- N Y
- Q:'$D(^XUSEC(K))
- S Y=0
- F S Y=$O(^XUSEC(K,Y)) Q:'Y S XMY(Y)=""
- Q
- ;
- ;
- INSTALLD(AUTSTAL) ;EP - Determine if patch AUTSTAL was installed, where
- ; AUTSTAL is the name of the INSTALL. E.g "AG*6.0*11".
- ;
- NEW AUTY,DIC,X,Y
- S X=$P(AUTSTAL,"*",1)
- S DIC="^DIC(9.4,",DIC(0)="FM",D="C"
- D IX^DIC
- I Y<1 D IMES Q 0
- S DIC=DIC_+Y_",22,",X=$P(AUTSTAL,"*",2)
- D ^DIC
- I Y<1 D IMES Q 0
- S DIC=DIC_+Y_",""PAH"",",X=$P(AUTSTAL,"*",3)
- D ^DIC
- S AUTY=Y
- D IMES
- Q $S(AUTY<1:0,1:1)
- ;
- ;
- IMES ;
- D MES^XPDUTL($$CJ^XLFSTR("Patch """_AUTSTAL_""" is"_$S(Y<1:" *NOT*",1:"")_" installed.",IOM))
- Q
- ;
- ;
- SORRY(X) ;
- KILL DIFQ
- I X=3 S XPDQUIT=2 Q
- S XPDQUIT=X
- W *7,!,$$CJ^XLFSTR("Sorry....FIX IT!",IOM)
- Q
- DI1018P ; IHS/OIT/FBD - FILEMAN V22.0 PATCH 1018 ENVIRONMENT CHECKS AND POST-INIT PROCESS;
- +1 ;;22.0;VA FILEMAN;**1018**;JUN 03,2015;Build 3
- +2 ;
- +3 ;
- +4 ; The following line prevents the "Disable Options..." and "Move Routines..." questions from being asked during the install.
- +5 IF $GET(XPDENV)=1
- SET (XPDDIQ("XPZ1"),XPDDIQ("XPZ2"))=0
- +6 FOR X="XPO1","XPZ1","XPZ2","XPI1"
- SET XPDDIQ(X)=0
- +7 ;KERNEL
- +8 IF +$$VERSION^XPDUTL("XU")<8
- DO MES^XPDUTL($$CJ^XLFSTR("Version 8.0 of KERNEL is required. Not installed",80))
- DO SORRY(2)
- IF 1
- +9 IF '$TEST
- DO MES^XPDUTL($$CJ^XLFSTR("Requires Kernel Version 8.0....Present.",80))
- +10 ;FILEMAN
- +11 IF +$$VERSION^XPDUTL("DI")<22
- DO MES^XPDUTL($$CJ^XLFSTR("Version 22.0 of FILEMAN is required. Not installed.",80))
- DO SORRY(2)
- IF 1
- +12 IF '$TEST
- DO MES^XPDUTL($$CJ^XLFSTR("Requires Fileman v22....Present.",80))
- +13 ;DI 22.0 PATCH 1017
- +14 IF '$$INSTALLD("DI*22.0*1017")
- DO SORRY(2)
- +15 ;
- +16 ;END OF ENVIRONMENT CHECK
- QUIT
- +17 ;
- +18 ;
- PRE ;PATCH 1018 PRE-INIT CHECKS AND PROCESSES
- +1 DO MES^XPDUTL($$CJ^XLFSTR("Beginning DI v22.0 patch 1018 pre-init process.",80))
- +2 ;
- +3 DO MES^XPDUTL($$CJ^XLFSTR("Setting flag to prevent KIDS env check/pre-init/post-init routine deletion...",80))
- +4 ;CHECK IF NO-DELETE PARAMETER ALREADY EXISTS IN KERNEL PARAMETERS FILE
- SET DIZFLG=+$ORDER(^XTV(8989.2,"B","XPD NO_EPP_DELETE",0))
- +5 ;IF NOT, ADD IT
- IF 'DIZFLG
- Begin DoDot:1
- +6 KILL DO
- +7 SET DIC="^XTV(8989.2,"
- SET DIC(0)="L"
- SET X="XPD NO_EPP_DELETE"
- SET DIADD=1
- +8 DO FILE^DICN
- SET DIZFLG=+Y
- KILL DO,DIC,DIADD,X
- End DoDot:1
- +9 ;SET XPD NO_EPP_DELETE PARAMETER VALUE TO 1 (NO-DELETE = TRUE)
- SET DIE="^XTV(8989.2,"
- SET DA=DIZFLG
- SET DR="4///1"
- +10 DO ^DIE
- +11 KILL DIE,DA,DR
- +12 DO MES^XPDUTL($$CJ^XLFSTR("Flag set complete.",80))
- +13 ;
- +14 DO MES^XPDUTL($$CJ^XLFSTR("DI v22.0 patch 1018 pre-init process complete.",80))
- +15 QUIT
- +16 ;
- +17 ;
- POST ;PATCH 1018 POST-INIT PROCESSES
- +1 DO MES^XPDUTL($$CJ^XLFSTR("Beginning DI v22.0 patch 1018 post-init process.",80))
- +2 ;
- +3 DO MES^XPDUTL($$CJ^XLFSTR("Re-initializing FileMan...",80))
- +4 ;INCREMENT STACK TO COMPARTMENTALIZE FOLLOWING 'NEW' COMMANDS NECESSARY FOR NA^DINIT CALL
- Begin DoDot:1
- +5 ;'NEW'-ED EQUIVALENT OF KL^DINIT6 VARIABLE KILL
- NEW %,%H,%X,%Y,DD,DH,DIC,DIK,DIT,DITZS,D,DA,VERSION,DU,F,I,J,P,X,Y,DIRUT,DTOUT,DUOUT
- +6 ;FILEMAN VERSION NUMBER RETRIEVAL
- DO VERSION^DINIT
- NEW DIFROM
- SET DIFROM=VERSION
- DO DT^DICRW
- +7 ;GOES DIRECTLY INTO REQUIRED ^DINIT EXECUTION WITHOUT GIVING USER ^DINIT'S NORMAL CHANCE TO OPT OUT
- DO NA^DINIT
- End DoDot:1
- +8 DO MES^XPDUTL($$CJ^XLFSTR("FileMan re-initialization complete...",80))
- +9 ;
- +10 DO BMES^XPDUTL("Delivering DI v22.0 patch 1018 install message to select users...")
- +11 DO MAIL
- +12 ;
- +13 DO MES^XPDUTL($$CJ^XLFSTR("DI v22.0 patch 1018 post-init process complete.",80))
- +14 QUIT
- +15 ;
- +16 ;
- MAIL ;----- SEND INSTALL MAIL MESSAGE
- +1 ;
- +2 NEW DIFROM,XMSUB,XMDUZ,XMTEXT,XMY
- +3 ;
- +4 KILL ^TMP("DI1018MS",$JOB)
- +5 SET ^TMP("DI1018MS",$JOB,1)=" --- DI v22.0 patch 1018 has been installed into this namespace ---"
- +6 SET ^TMP("DI1018MS",$JOB,2)=" "
- +7 IF $GET(XPDA)
- Begin DoDot:1
- +8 SET %=0
- +9 FOR
- SET %=$ORDER(^XTMP("XPDI",XPDA,"BLD",XPDBLD,1,%))
- IF '%
- QUIT
- Begin DoDot:2
- +10 SET ^TMP("DI1018MS",$JOB,(%+2))=" "_^(%,0)
- End DoDot:2
- End DoDot:1
- +11 ;
- +12 SET XMSUB=$PIECE($PIECE($TEXT(+1),";",2)," ",3,99)
- +13 SET XMDUZ=$SELECT($GET(DUZ):DUZ,1:.5)
- +14 SET XMTEXT="^TMP(""DI1018MS"",$J,"
- +15 SET XMY(1)=""
- +16 SET XMY(DUZ)=""
- +17 ;
- +18 FOR %="XUMGR","XUPROG","XUPROGMODE"
- DO SINGLE(%)
- +19 DO ^XMD
- +20 ;
- +21 KILL ^TMP("DI1018MS",$JOB)
- +22 QUIT
- +23 ;
- +24 ;
- SINGLE(K) ;----- GET HOLDERS OF A SINGLE KEY K.
- +1 NEW Y
- +2 IF '$DATA(^XUSEC(K))
- QUIT
- +3 SET Y=0
- +4 FOR
- SET Y=$ORDER(^XUSEC(K,Y))
- IF 'Y
- QUIT
- SET XMY(Y)=""
- +5 QUIT
- +6 ;
- +7 ;
- INSTALLD(AUTSTAL) ;EP - Determine if patch AUTSTAL was installed, where
- +1 ; AUTSTAL is the name of the INSTALL. E.g "AG*6.0*11".
- +2 ;
- +3 NEW AUTY,DIC,X,Y
- +4 SET X=$PIECE(AUTSTAL,"*",1)
- +5 SET DIC="^DIC(9.4,"
- SET DIC(0)="FM"
- SET D="C"
- +6 DO IX^DIC
- +7 IF Y<1
- DO IMES
- QUIT 0
- +8 SET DIC=DIC_+Y_",22,"
- SET X=$PIECE(AUTSTAL,"*",2)
- +9 DO ^DIC
- +10 IF Y<1
- DO IMES
- QUIT 0
- +11 SET DIC=DIC_+Y_",""PAH"","
- SET X=$PIECE(AUTSTAL,"*",3)
- +12 DO ^DIC
- +13 SET AUTY=Y
- +14 DO IMES
- +15 QUIT $SELECT(AUTY<1:0,1:1)
- +16 ;
- +17 ;
- IMES ;
- +1 DO MES^XPDUTL($$CJ^XLFSTR("Patch """_AUTSTAL_""" is"_$SELECT(Y<1:" *NOT*",1:"")_" installed.",IOM))
- +2 QUIT
- +3 ;
- +4 ;
- SORRY(X) ;
- +1 KILL DIFQ
- +2 IF X=3
- SET XPDQUIT=2
- QUIT
- +3 SET XPDQUIT=X
- +4 WRITE *7,!,$$CJ^XLFSTR("Sorry....FIX IT!",IOM)
- +5 QUIT