source: IHS-VA_UTILITIES-XB/trunk/ZIBZUCI.m@ 846

Last change on this file since 846 was 642, checked in by Sam Habiel, 15 years ago

Modified directory structure; moved routines.

File size: 6.3 KB
RevLine 
[641]1%ZUCI ; IHS/ADC/GTH - SWAP UCI BETWEEN VOLUME SETS FOR MSM-UNIX ; [ 10/29/2002 7:42 AM ]
2 ;;4.0;XB;;Jul 20, 2009;Build 2
3 ;
4 ; SAVE THIS ROUTINE AS %ZUCI IN THE MGR UCI
5 ;
6 ; This utility permits switching between UCIs and Volume
7 ; Groups when run in programmer mode. D ^%ZUCI
8 ;
9 ; If switching to a UCI in a Volume Group other than the
10 ; System Volume Group (0), you must enter either the Volume
11 ; Group Number or Volume Group Name along with the UCI Number
12 ; or Name. A 'help' display identifies all UCIs and Volume
13 ; Groups that are currently mounted. Use a '?' for 'help'.
14 ;
15 ; A routine may be tied to the UCI,VOL switch. This routine
16 ; will be called immediately after the UCI,VOL switch occurs.
17 I $$VERSION^%ZOSV(1)["Cache" D ^%CD Q ; IHS/SET/GTH XB*3*9 10/29/2002
18 ;
19EN ; ENTRY - Ask for [UCI,VOL]
20 W !,"SWITCH TO NEW UCI",!
21 S $P(%ZIB("DASHES"),"-",81)=""
22ASK ; Get new UCI name or number.
23 F %ZIB("ASK")=0:0:0 D
24 . S %ZIB("ZT")=0 ; Set DSM error flag for <NOUCI> or <NOSYS>
25 . S %ZIB("VERIFY UCI")=0 ; Verify UCI flag set to NO.
26 . W !,"You are now in ",$ZU(0)
27 . W !!,"Enter new UCI: "
28 . ; If read timesout or a "^" or <RET> is entered then set the
29 . ; loop at ASK+1 to quit
30 . R %ZIB("%"):45 E W *7,"**Timeout**",!!,"You are still in ",$ZU(0) S %ZIB("ASK")=1 Q
31 . I "^"[%ZIB("%") W *7," No action taken!",!!,"You are still in ",$ZU(0) S %ZIB("ASK")=1 Q
32 . S %ZIB("VERIFY UCI")=1 ; Verify UCI flag set to YES.
33ED . ; Edit input from user.
34 . D ; Edit input.
35 .. S %ZIB("ASK")=1 ; Set loop at ASK+1 to QUIT.
36 .. Q:%ZIB("%")?3A
37 .. Q:%ZIB("%")?3A1":"1.17E
38 .. Q:%ZIB("%")?3A1","3A
39 .. Q:%ZIB("%")?3A1","3A1":"1.17E
40 .. Q:%ZIB("%")?2N
41 .. Q:%ZIB("%")?2N1":"1.17E
42 .. Q:%ZIB("%")?2N1","1N
43 .. Q:%ZIB("%")?2N1","1N1":"1.17E
44 .. Q:%ZIB("%")?1N
45 .. Q:%ZIB("%")?1N1":"1.17E
46 .. Q:%ZIB("%")?1N1","1N
47 .. Q:%ZIB("%")?1N1","1N1":"1.17E
48 .. I %ZIB("%")'["?" D
49 ... W " ?? **Incorrect input**",*7
50 ... W !,%ZIB("DASHES")
51 ... W !,"Enter ""?"" to get help or"
52 ... W !,"Enter {UCI} {UCI:ROUTINE} {UCI,VOL} {UCI,VOL:ROUTINE}"
53 ... W !,%ZIB("DASHES")
54 .. S %ZIB("ASK")=0 ; Continue the loop at ASK+1.
55 .. S %ZIB("VERIFY UCI")=0 ; Set verify UCI flag to NO.
56HLP .. ; Display UCI list.
57 .. I %ZIB("%")?1"?" D
58 ... W !,%ZIB("DASHES")
59 ... W !,"UCIs and VOLume groups are identified by either a name or number."
60 ... W !,"Use the name or number identification when selecting a UCI."
61 ... W !!,"Enter ""??"" to get a list of UCIs and VOLume sets."
62 ... W !," ""???"" to get examples."
63 ... W !!,"Enter {UCI} {UCI,VOL} {UCI:ROUTINE} {UCI,VOL:ROUTINE}."
64 ... W !,%ZIB("DASHES")
65 .. I %ZIB("%")?1"??" D
66 ... W !!,"Select from any UCI,VOL from this list:"
67 ... S %ZIB("NO SYS")=0 ; Set no more VOLUME SETs for MSM.
68 ... F %ZIB("VOL NBR")=0:1 D Q:%ZIB("NO SYS")
69 .... S $ZT="ZT^%ZIBZUCI" ; Set DSM error trap for <NOSYS>.
70 .... I $ZU(1,%ZIB("VOL NBR"))="" S %ZIB("NO SYS")=1 Q ; DSM gets a <NOSYS> error if end of VOLUME SETs.
71 .... W !,%ZIB("DASHES")
72 .... W !,"UCIs in Volume Group Number ",%ZIB("VOL NBR")," . . . Volume Group Name is ",$P($ZU(1,%ZIB("VOL NBR")),",",2),!
73 .... S %ZIB("NO UCI")=0 ; Set no more UCI flag for MSM.
74 .... F %ZIB("UCI NBR")=1:1 D Q:%ZIB("NO UCI")
75 ..... S $ZT="ZT^%ZIBZUCI" ; Set DSM error trap for <NOUCI> error.
76 ..... I $ZU(%ZIB("UCI NBR"),(%ZIB("VOL NBR")))="" S %ZIB("NO UCI")=1 Q ; End of UCIs for this VOLUME SET.
77 ..... S %ZIB("UCI,VOL","NAME")=$ZU(%ZIB("UCI NBR"),%ZIB("VOL NBR"))
78 ..... S %ZIB("UCI,VOL","NBR")=%ZIB("UCI NBR")_","_%ZIB("VOL NBR")
79 ..... W:'((%ZIB("UCI NBR")-1)#3) !
80 ..... W "UCI ",%ZIB("UCI,VOL","NBR")," is ",%ZIB("UCI,VOL","NAME")
81 ..... W $J("",25-($L(%ZIB("UCI,VOL","NBR"))+$L(%ZIB("UCI,VOL","NAME"))+8))
82 ... W !,%ZIB("DASHES")
83EXAMP .. ;
84 .. I %ZIB("%")?1"???" D
85 ... W !!,"Examples for switching UCIs",?53,"NAME SYNTAX",?67,"NUMBER SYNTAX"
86 ... W !,%ZIB("DASHES")
87 ... W !," Switch to DEV on default volume group (0)",?55,"DEV",?72,"3"
88 ... W !," Switch to DEV on the volume group AAA (1)",?55,"DEV,AAA",?72,"3,1"
89 ... W !,%ZIB("DASHES")
90 ... W !,"Examples of switching UCIs and running a routine"
91 ... W ?55,"DEV:%SY",?72,"3:%SY"
92 ... W !?55,"DEV,AAA:%SY",?72,"3,1:%SY"
93 ... W !?55,"DEV:P^DI",?72,"3:P^DI"
94 ... W !,%ZIB("DASHES")
95 ... W !,"NOTE: Name,Number combinations for UCI,VOL syntax are mutually exclusive."
96 ... W !,"If you select a UCI in a Volume Group greater than 0 -"
97 ... W !,"Then you must enter the Volume Group Name or Number!"
98 ... W !,%ZIB("DASHES")
99VER .. ; Verify if UCI,VOL exists.
100 . Q:'%ZIB("VERIFY UCI") ; Stop if verify UCI flag set to NO.
101 . S %ZIB("NEW UCI")=$P($P(%ZIB("%"),","),":")
102 . S %ZIB("NEW VOL")=$P($P(%ZIB("%"),",",2),":")
103 . I %ZIB("NEW VOL")="" D
104 .. I %ZIB("NEW UCI")?1N.E F %=0:1:20 I $P($ZU(0),",",2)=$P($ZU(1,%),",",2) S %ZIB("NEW VOL")=% I 1 Q
105 .. E S %ZIB("NEW VOL")=$P($ZU(0),",",2)
106 . S $ZT="ZT^%ZIBZUCI" ; Set DSM error trap for <NOSYS> or <NOUCI>
107 . I $ZU(%ZIB("NEW UCI"),%ZIB("NEW VOL"))="" S %ZIB("ZT")=1 Q
108SW . ; SWITCH TO NEW UCI
109 . I %ZIB("NEW UCI")?3A S %ZIB("UCI,VOL")=$ZU(%ZIB("NEW UCI"),%ZIB("NEW VOL"))
110 . E S %ZIB("UCI,VOL")=%ZIB("NEW UCI")_","_%ZIB("NEW VOL")
111 . I $ZV["DSM" V 148:$J:$V(148,$J)#256+($P(%ZIB("UCI,VOL"),",",2)*32+$P(%ZIB("UCI,VOL"),",")*256)
112 . E V 2:$J:$P(%ZIB("UCI,VOL"),",",2)*32+$P(%ZIB("UCI,VOL"),","):2
113 . W !!,*7,"You have switched to ",$ZU(0)," {",%ZIB("UCI,VOL"),"}"
114 . S %ZIB("ASK")=1 ; Set loop at ASK+1 to QUIT.
115 I %ZIB("ZT") W !!,*7,"Sorry - ",%ZIB("NEW UCI"),",",%ZIB("NEW VOL")," does not exist!",!,"** NO ACTION TAKEN**!",! G ASK
116EX ; EXIT
117 KILL % ; Remove the call routine variable.
118 I ""'[$P(%ZIB("%"),":",2) D
119 . S %=$P(%ZIB("%"),":",2)
120 . I $E(%)="^" S %=$E(%,1,9)
121 . E I %["^"
122 . E S %="^"_$E(%,1,8)
123 KILL %ZIB ; Remove symbol table entries.
124 S $ZT="ZT^%ZIBZUCI" ; Set error trap for <NOPGM> or <LINER>
125 G:$D(%) @% ; GO TO routine if requested.
126 Q ; UCI switch completed
127 ;
128ZT ; Error trap for DSM.
129 I $ZE?1"<NOSY".E!($ZE?1"<NOUC".E) D Q
130 . S %ZIB("ZT")=1 ; Set for UCI,VOL does not exist.
131 . S %ZIB("VERIFY UCI")=0 ; Set verify UCI flag to NO.
132 . I $ZE?1"<NOSY".E S %ZIB("NO SYS")=1 ; Set for VOL loop to QUIT.
133 . E S %ZIB("NO UCI")=1 ; Set for UCI loop to QUIT.
134 I $ZE?1"<NOPGM".E D Q
135 . W *7,!!,"Routine ",$P(%,"^",2)," is not in ",$ZU(0),"'s ",$S(%["%":"Library or MGR UCI ",1:""),"routine directory!!",!
136 . KILL %
137 I $ZE?1"<LINER".E D Q
138 . W *7,!!,"Label ",$P(%,"^")," is missing in routine ",$P(%,"^",2),"!!",!
139 . KILL %
140 ZQ
141 ;
Note: See TracBrowser for help on using the repository browser.