source: IHS-VA_UTILITIES-XB/ZIBZUCI.m@ 641

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

Initial commit of XB, move away from sf.net.
Includes kids file and documentation.

File size: 6.3 KB
Line 
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.