| 1 | LEX2052 ;ISL/KER - LEX*2.0*52 Environment Check ;08/18/2007 | 
|---|
| 2 | ;;2.0;LEXICON UTILITY;**52**;Sep 23, 1996;Build 25 | 
|---|
| 3 | ; | 
|---|
| 4 | ; Global Variables | 
|---|
| 5 | ;    None | 
|---|
| 6 | ; | 
|---|
| 7 | ; External References | 
|---|
| 8 | ;    EN^DIQ1          DBIA  10015 | 
|---|
| 9 | ;    $$PATCH^XPDUTL   DBIA  10141 | 
|---|
| 10 | ;    $$VERSION^XPDUTL DBIA  10141 | 
|---|
| 11 | ;    BMES^XPDUTL      DBIA  10141 | 
|---|
| 12 | ;    MES^XPDUTL       DBIA  10141 | 
|---|
| 13 | ; | 
|---|
| 14 | ; Variables NEWed or KILLed elsewhere | 
|---|
| 15 | ;    XPDABORT         Kernel Systems Manual pg 454 | 
|---|
| 16 | ;    XPDQUIT          Kernel Systems Manual pg 454 | 
|---|
| 17 | ; | 
|---|
| 18 | ; Special Variables | 
|---|
| 19 | ;    XPDDIQ("XPZ1")   Kernel Systems Manual pg 456 | 
|---|
| 20 | ;    XPDDIQ("XPI1")   FORUM Message #45828644 | 
|---|
| 21 | ; | 
|---|
| 22 | ENV ; LEX*2.0*52 Environment Check | 
|---|
| 23 | ; | 
|---|
| 24 | ;   General | 
|---|
| 25 | ; | 
|---|
| 26 | N LEXPTYPE,LEXLREV,LEXREQP,LEXBLDS,LEXBUILD,LEXIGHF,LEXFY,LEXQTR,LEXG,LEXE,LEXSTR D IMP | 
|---|
| 27 | K XPDDIQ("XPZ1","B"),XPDDIQ("XPI1","B") S XPDDIQ("XPZ1","B")="NO",XPDDIQ("XPI1","B")="NO" | 
|---|
| 28 | S LEXSTR=$G(LEXPTYPE) S:$L($G(LEXFY))&($L($G(LEXQTR))) LEXSTR=LEXSTR_" for "_$G(LEXFY)_" "_$G(LEXQTR)_" Quarter" | 
|---|
| 29 | D BM(LEXSTR),M("") | 
|---|
| 30 | S U="^" | 
|---|
| 31 | ;     No user | 
|---|
| 32 | D:+($$UR)'>0 ET("User not defined (DUZ)") | 
|---|
| 33 | ;     No IO | 
|---|
| 34 | D:+($$SY)'>0 ET("Undefined IO variable(s)") | 
|---|
| 35 | I $D(LEXE) D ABRT Q | 
|---|
| 36 | ; | 
|---|
| 37 | ;   Load Distribution | 
|---|
| 38 | ; | 
|---|
| 39 | ;     XPDENV = 0 Environment Check during Load | 
|---|
| 40 | ; | 
|---|
| 41 | ;       Check Version (2.0) | 
|---|
| 42 | I $$VERSION^XPDUTL("LEX")'="2.0" D  D ABRT Q | 
|---|
| 43 | . D ET("Version 2.0 not found.  Please install Lexicon Utility v 2.0") | 
|---|
| 44 | ; | 
|---|
| 45 | ;       Check Required Patches | 
|---|
| 46 | D:'$L($G(LEXREQP)) IMP I $L(LEXREQP) D | 
|---|
| 47 | . N LEXPAT,LEXI,LEXPN | 
|---|
| 48 | . F LEXI=1:1 Q:'$L($P(LEXREQP,";",LEXI))  S LEXPAT=$P(LEXREQP,";",LEXI) D | 
|---|
| 49 | . . S LEXPN=$$PATCH^XPDUTL(LEXPAT) W !,"   Checking for ",LEXPAT H 1 W:+LEXPN>0 ?31,"  installed" W:+LEXPN'>0 ?31,"  missing" | 
|---|
| 50 | . . I +LEXPN'>0 D ET((LEXPAT_" not found, please install "_LEXPAT_" before continuing")) | 
|---|
| 51 | I $D(LEXE) D ABRT Q | 
|---|
| 52 | QUIT ;     Quit   Passed Environment Check | 
|---|
| 53 | K LEXFULL D OK | 
|---|
| 54 | Q | 
|---|
| 55 | EXIT ;     Exit   Failed Environment Check | 
|---|
| 56 | D:$D(LEXE) ED S XPDQUIT=2 K LEXE,LEXFULL Q | 
|---|
| 57 | ABRT ;     Abort  Failed Environment Check, KILL the distribution | 
|---|
| 58 | D:$D(LEXE) ED S XPDABORT=1,XPDQUIT=1 | 
|---|
| 59 | S (XPDQUIT("LEX*2.0*52"),XPDQUIT("ICPT*6.0*37"))=1 | 
|---|
| 60 | K LEXE,LEXFULL | 
|---|
| 61 | Q | 
|---|
| 62 | ; | 
|---|
| 63 | ; Checks | 
|---|
| 64 | ; | 
|---|
| 65 | SY(X) ;   Check System variables | 
|---|
| 66 | Q:'$D(IO)!('$D(IOF))!('$D(IOM))!('$D(ION))!('$D(IOSL))!('$D(IOST)) 0 | 
|---|
| 67 | Q 1 | 
|---|
| 68 | UR(X) ;   Check User variables | 
|---|
| 69 | Q:'$L($G(DUZ(0))) 0 | 
|---|
| 70 | Q:+($G(DUZ))=0!($$NOTDEF(+$G(DUZ))) 0 | 
|---|
| 71 | Q 1 | 
|---|
| 72 | ; | 
|---|
| 73 | ; Error messages | 
|---|
| 74 | ; | 
|---|
| 75 | ET(X) ;   Error Text | 
|---|
| 76 | N LEXI S LEXI=+($G(LEXE(0))),LEXI=LEXI+1,LEXE(LEXI)="    "_$G(X),LEXE(0)=LEXI | 
|---|
| 77 | Q | 
|---|
| 78 | ED ;   Error Display | 
|---|
| 79 | N LEXI,LEXC S (LEXI,LEXC)=0 F  S LEXI=$O(LEXE(LEXI)) Q:+LEXI=0  S LEXC=LEXC+1 D:LEXC=1 M("  ") D M(LEXE(LEXI)) | 
|---|
| 80 | D M(" ") K LEXE Q | 
|---|
| 81 | ; | 
|---|
| 82 | ; Miscellaneous | 
|---|
| 83 | ; | 
|---|
| 84 | NOTDEF(IEN) ;   Check to see if user is defined | 
|---|
| 85 | N DA,DR,DIQ,LEX,DIC S DA=IEN,DR=.01,DIC=200,DIQ="LEX" D EN^DIQ1 Q '$D(LEX) | 
|---|
| 86 | OK ;   Environment is OK | 
|---|
| 87 | N LEXPTYPE,LEXLREV,LEXREQP,LEXBLDS,LEXBUILD,LEXIGHF,LEXFY,LEXQTR,LEXT | 
|---|
| 88 | D IMP S LEXT="  Environment "_$S($L(LEXBLDS):("for patch/build "_LEXBLDS_" "),1:"")_"is ok" | 
|---|
| 89 | D BM(LEXT),M(" ") | 
|---|
| 90 | Q | 
|---|
| 91 | BM(X) ;   Blank Line with Message | 
|---|
| 92 | D BMES^XPDUTL($G(X)) Q | 
|---|
| 93 | M(X) ;   Message | 
|---|
| 94 | D MES^XPDUTL($G(X)) Q | 
|---|
| 95 | TRIM(X) ;   Trim Spaces | 
|---|
| 96 | S X=$G(X) F  Q:$E(X,1)'=" "  S X=$E(X,2,$L(X)) | 
|---|
| 97 | F  Q:$E(X,$L(X))'=" "  S X=$E(X,1,($L(X)-1)) | 
|---|
| 98 | Q X | 
|---|
| 99 | IMP ;   Import names | 
|---|
| 100 | ;     Patch Type | 
|---|
| 101 | S LEXPTYPE="Lexicon/CPT Remedy Ticket Fixes" | 
|---|
| 102 | ;     Revision | 
|---|
| 103 | S LEXLREV="52" | 
|---|
| 104 | ;     Required Builds | 
|---|
| 105 | S LEXREQP="LEX*2.0*50" | 
|---|
| 106 | ;     This Build Name | 
|---|
| 107 | S LEXBLDS="LEX*2.0*52/ICPT*6.0*37",LEXBUILD=$P(LEXBLDS,"/",1) | 
|---|
| 108 | ;     This Build's Export Global Host Filename | 
|---|
| 109 | S LEXIGHF="" | 
|---|
| 110 | ;     Fiscal Year | 
|---|
| 111 | S LEXFY="" | 
|---|
| 112 | ;     Quarter | 
|---|
| 113 | S LEXQTR="" | 
|---|
| 114 | Q | 
|---|