| 1 | ZIBGCHAR        ; IHS/ADC/GTH - NONINTERACTIVE MODIFICATIONS OF GLOBAL CHARACTERISTICS ; [ 08/26/2004  12:01 PM ] | 
|---|
| 2 | ;;4.0;XB;;Jul 20, 2009;Build 2 | 
|---|
| 3 | ; XB*3*4 IHS/ADC/GTH 05-22-97 Prevent <INDER> err. | 
|---|
| 4 | ; XB*3*5 IHS/ADC/GTH 10-31-97 Prevent errors in return from ^%GCH. | 
|---|
| 5 | ; XB*3*9 IHS/SET/GTH XB*3*9 10/29/2002 Cache' mods. | 
|---|
| 6 | ; XB*3*10 IHS/ITSC/DMJ 8/19/2004 Bad global name. | 
|---|
| 7 | ; | 
|---|
| 8 | ; Not all capabilities of the implementation-specific global | 
|---|
| 9 | ; characteristics routines are reflected in this routine. | 
|---|
| 10 | ; | 
|---|
| 11 | ; The argument for each entry point is the unsubscripted | 
|---|
| 12 | ; name of the global whose characteristics you want to | 
|---|
| 13 | ; change, with NO leading circumflex. | 
|---|
| 14 | ; | 
|---|
| 15 | ; If the call is successful, 0 is returned. | 
|---|
| 16 | ; | 
|---|
| 17 | ; If the call is not successful, a positive integer is | 
|---|
| 18 | ; returned, and the cause can be retrieved at the ERR() | 
|---|
| 19 | ; entry point. | 
|---|
| 20 | ; | 
|---|
| 21 | ; E.g's: | 
|---|
| 22 | ;          S %=$$NOJOURN^ZIBGCHAR("AUTTSITE") | 
|---|
| 23 | ;          I % W !,$$ERR^ZIBGCHAR(%) | 
|---|
| 24 | ; | 
|---|
| 25 | Q | 
|---|
| 26 | ; | 
|---|
| 27 | ;Begin New Code;IHS/SET/GTH XB*3*9 10/29/2002 | 
|---|
| 28 | KILL(ZIBGLOB)   ;PEP - Kill global or global referenced at the top level | 
|---|
| 29 | NEW QF,X | 
|---|
| 30 | I '$L($G(ZIBGLOB)) Q 1 | 
|---|
| 31 | I ZIBGLOB'["," D  Q QF    ; just one global to kill | 
|---|
| 32 | . S QF=$$PROCESS("D","N") | 
|---|
| 33 | . I QF Q | 
|---|
| 34 | . KILL @("^"_ZIBGLOB) | 
|---|
| 35 | . I $$VERSION^%ZOSV(1)["Cache" S X=$ZU(68,28,1) ;disallow kill again | 
|---|
| 36 | .Q | 
|---|
| 37 | ;multiple globals to kill, comma delimited string like "gbl1,gbl2,gbl3" | 
|---|
| 38 | F X=1:1:$L(ZIBGLOB,",") S ZIBGLOB(X)=$P(ZIBGLOB,",",X) | 
|---|
| 39 | F X=1:1:$L(ZIBGLOB,",") D  Q:QF | 
|---|
| 40 | . S QF=$$KILLOK(ZIBGLOB(X)) | 
|---|
| 41 | . I QF Q | 
|---|
| 42 | . KILL @("^"_ZIBGLOB(X)),ZIBGLOB(X) | 
|---|
| 43 | .Q | 
|---|
| 44 | I $$VERSION^%ZOSV(1)["Cache" S X=$ZU(68,28,1) ;disallow kill again | 
|---|
| 45 | Q QF | 
|---|
| 46 | ; | 
|---|
| 47 | ;End New Code;IHS/SET/GTH XB*3*9 10/29/2002 | 
|---|
| 48 | KILLOK(ZIBGLOB) ;PEP - Allow kill of global. | 
|---|
| 49 | Q $$PROCESS("D","N") | 
|---|
| 50 | ; | 
|---|
| 51 | KILLNO(ZIBGLOB) ;PEP - Prevent kill'ing of global. | 
|---|
| 52 | Q $$PROCESS("D","Y") | 
|---|
| 53 | ; | 
|---|
| 54 | JOURN(ZIBGLOB)  ;PEP - Set Journaling to ALWAYS. | 
|---|
| 55 | Q $$PROCESS("J","A") | 
|---|
| 56 | ; | 
|---|
| 57 | NOJOURN(ZIBGLOB)        ;PEP - Set Journaling for global to NEVER. | 
|---|
| 58 | Q $$PROCESS("J","N") | 
|---|
| 59 | ; | 
|---|
| 60 | UCIJOURN(ZIBGLOB)       ;PEP - Journal when UCI is Journaled. | 
|---|
| 61 | Q $$PROCESS("J","U") | 
|---|
| 62 | ; | 
|---|
| 63 | PROCESS(ZIBFLAG,ZIBVAL) ; | 
|---|
| 64 | I '$L($G(ZIBGLOB)) Q 1 | 
|---|
| 65 | ;I '(ZIBGLOB?1.8U) Q 5;IHS/SET/GTH XB*3*9 10/29/2002 | 
|---|
| 66 | ;I '(ZIBGLOB?1.8U!(ZIBGLOB?1"%"1.7U)) Q 5  ;Cache needs to SET % globals;IHS/SET/GTH XB*3*9 10/29/2002 XB*3*10 next line will do the job | 
|---|
| 67 | I '$D(@("^"_ZIBGLOB)) Q 2 | 
|---|
| 68 | ; NEW O ; XB*3*4 IHS/ADC/GTH 05-22-97 Prevent <INDER> err. | 
|---|
| 69 | ; S O=$P(^%ZOSF("OS"),"-",1) ; XB*3*4 IHS/ADC/GTH 05-22-97 Prevent <INDER> err. | 
|---|
| 70 | ; I '$L($T(@O)) Q 3 ; XB*3*4 IHS/ADC/GTH 05-22-97 Prevent <INDER> err. | 
|---|
| 71 | ; G @O ; XB*3*4 IHS/ADC/GTH 05-22-97 Prevent <INDER> err. | 
|---|
| 72 | ; I $P(^%ZOSF("OS"),"^",1)["MSM" G MSM ; XB*3*4 IHS/ADC/GTH 05-22-97 Prevent <INDER> err. | 
|---|
| 73 | I $$VERSION^%ZOSV(1)["Cache" Q $$CACHE(ZIBFLAG,ZIBGLOB,ZIBVAL)  ;IHS/SET/GTH XB*3*9 10/29/2002 | 
|---|
| 74 | I $P(^%ZOSF("OS"),"^",1)'["MSM" Q 3  ; XB*3*5 IHS/ADC/GTH 10-31-97 Prevent errors in return from ^%GCH. | 
|---|
| 75 | D MSM | 
|---|
| 76 | I '$D(ZTQUEUED) D HOME^%ZIS U IO(0) ; XB*3*5 IHS/ADC/GTH 10-31-97 Prevent errors in return from ^%GCH. | 
|---|
| 77 | Q 0  ; XB*3*5 IHS/ADC/GTH 10-31-97 Prevent errors in return from ^%GCH. | 
|---|
| 78 | ; Q 3  ; XB*3*4 IHS/ADC/GTH 05-22-97 Prevent <INDER> err. ; XB*3*5 IHS/ADC/GTH 10-31-97 Prevent errors in return from ^%GCH. | 
|---|
| 79 | ; | 
|---|
| 80 | ;Begin New Code;IHS/SET/GTH XB*3*9 10/29/2002 | 
|---|
| 81 | CACHE(ZIBFLAG,ZIBGLOB,ZIBVAL)   ;PEP - allow/prevent kill or enable/disable journaling on Cache | 
|---|
| 82 | ;TASSC/MFD added subroutine to mimic portions of %GCH that Cache can do | 
|---|
| 83 | ; -Patterned after CALL subroutine of MSM's %GCH but an extrinsic | 
|---|
| 84 | ; -Less options than MSM- journaling is either on or off for a global | 
|---|
| 85 | ;  as there is no Journal entire UCI option | 
|---|
| 86 | ; -Allowing top-level kill is by process not by global specification | 
|---|
| 87 | ; -If the call is successful, 0 is returned. | 
|---|
| 88 | ; | 
|---|
| 89 | ; ZIBGLOB = global reference, no leading ^ | 
|---|
| 90 | ; ZIBFLAG can be "J" or "D"- J is for journaling on or off, D is for | 
|---|
| 91 | ;   allowing top kill or not | 
|---|
| 92 | ; ZIBVAL = for Journaling- E, A or U for enable, D, N or null for disable | 
|---|
| 93 | ;       for Prev kill- Y to prevent kill, N to allow kill | 
|---|
| 94 | ; | 
|---|
| 95 | I '(ZIBGLOB?1.8AN!(ZIBGLOB?1"%"1.7AN)) Q 5  ; XB*3*10 allow lower case | 
|---|
| 96 | I '$D(@("^"_ZIBGLOB)) Q 2 | 
|---|
| 97 | I ZIBFLAG="D",ZIBVAL="N" NEW X S X=$ZU(68,28,0) Q 0  ;don't prevent top-level kill for the process | 
|---|
| 98 | I ZIBFLAG="D",ZIBVAL="Y" NEW X S X=$ZU(68,28,1) Q 0  ;prevent top-level kill for the process | 
|---|
| 99 | I ZIBFLAG="J" NEW ZIBRC D | 
|---|
| 100 | .S ZIBVAL=$S(ZIBVAL="E":4,ZIBVAL="A":4,ZIBVAL="U":4,ZIBVAL="N":0,ZIBVAL="D":0,ZIBVAL="":0,1:1) | 
|---|
| 101 | .I ZIBVAL'=1 S ZIBRC=$$SetJournalType^%DM("",ZIBGLOB,ZIBVAL) | 
|---|
| 102 | .Q | 
|---|
| 103 | I ZIBRC=1 Q 0  ;Cache returns a 1 if successful | 
|---|
| 104 | Q 1  ; any other condition is bad so quit 1 | 
|---|
| 105 | ; | 
|---|
| 106 | ;End New Code;IHS/SET/GTH XB*3*9 10/29/2002 | 
|---|
| 107 | MSM     ; Micronetics Standard MUMPS. | 
|---|
| 108 | I '$L($T(CALL^%GCH)) Q 4 | 
|---|
| 109 | S:$D(ZTQUEUED) CALL="" ; Tell ^%GCH not to talk if errors. | 
|---|
| 110 | KILL O | 
|---|
| 111 | NEW (ZIBFLAG,ZIBGLOB,ZIBVAL) ; XB*3*5 IHS/ADC/GTH 10-31-97 Prevent errors in return from ^%GCH. | 
|---|
| 112 | D CALL^%GCH(ZIBFLAG,ZIBGLOB,ZIBVAL) | 
|---|
| 113 | KILL CALL | 
|---|
| 114 | ; Q 0 ; XB*3*5 IHS/ADC/GTH 10-31-97 Prevent errors in return from ^%GCH. | 
|---|
| 115 | Q  ; XB*3*5 IHS/ADC/GTH 10-31-97 Prevent errors in return from ^%GCH. | 
|---|
| 116 | ; | 
|---|
| 117 | ERR(Z)  ;PEP - Return cause of error. | 
|---|
| 118 | Q $P($T(@Z),";;",2) | 
|---|
| 119 | 1       ;;NO GLOBAL SPECIFIED IN PARAMETER | 
|---|
| 120 | 2       ;;GLOBAL DOES NOT EXIST | 
|---|
| 121 | 3       ;;OPERATING SYSTEM NOT SUPPORTED | 
|---|
| 122 | 4       ;;WRONG VERSION OF MSM'S ^%GCH | 
|---|
| 123 | 5       ;;BAD GLOBAL NAME | 
|---|
| 124 | ; | 
|---|
| 125 | ; | 
|---|
| 126 | TEST    ; | 
|---|
| 127 | NEW AZHB,AZHB1 | 
|---|
| 128 | F AZHBCTR=1:1 S AZHB=$P($T(DATA+AZHBCTR),";",3) Q:AZHB="###"  D T1(AZHB),T2(AZHB) | 
|---|
| 129 | Q | 
|---|
| 130 | ; | 
|---|
| 131 | T1(AZHB)        ; | 
|---|
| 132 | W !,"No Journaling For '",AZHB,"'" | 
|---|
| 133 | S AZHB1=$$NOJOURN(AZHB) | 
|---|
| 134 | W ?28," : ",AZHB1 | 
|---|
| 135 | I AZHB1 W " : ",$$ERR(AZHB1) | 
|---|
| 136 | E  W " : <kool>" | 
|---|
| 137 | Q | 
|---|
| 138 | ; | 
|---|
| 139 | T2(AZHB)        ; | 
|---|
| 140 | W !,"No Killing For '",AZHB,"'" | 
|---|
| 141 | S AZHB1=$$KILLNO(AZHB) | 
|---|
| 142 | W ?28," : ",AZHB1 | 
|---|
| 143 | I AZHB1 W " : ",$$ERR(AZHB1) | 
|---|
| 144 | E  W " : <kool>" | 
|---|
| 145 | Q | 
|---|
| 146 | ; | 
|---|
| 147 | DATA    ; | 
|---|
| 148 | ;; | 
|---|
| 149 | ;;FREDDATA | 
|---|
| 150 | ;;ACHSDATA | 
|---|
| 151 | ;;AUTTSITE | 
|---|
| 152 | ;;^AUTTLOC | 
|---|
| 153 | ;;jen | 
|---|
| 154 | ;;44 | 
|---|
| 155 | ;;DIC(4, | 
|---|
| 156 | ;;### | 
|---|