Professional Documents
Culture Documents
An Implementation Guide
Take Note!
Before using this information and the product it supports, be sure to read the general information under
Special Notices on page xxi.
Note to U.S. Government Users Documentation related to restricted rights Use, duplication or disclosure is
subject to restrictions set forth in GSA ADP Schedule Contract with IBM Corp.
Abstract
This document is unique in its detailed coverage of the new facilities available
with Version 4 Release 1 of ISPF. Part 1 is a short introduction. Part 2 is
devoted to the basics of ISPF. Besides a general description of these facilities, it
provides guidance in implementing the various elements of user interfaces in
different user environments and gives scenarios for installing and starting the
Graphical User Interface (GUI) using APPC or TCP/IP with OS2 and CM/2.
Part 3 is entirely devoted to SCLM in Version 4 Release 1 and offers an in-depth
coverage of the implementation details whereas the use of SCLM in relation to
programming activities and disciplines is not considered relevant within the
framework of this document and is, therefore, not discussed.
A diskette with examples and a set of transparencies for an SCLM workshop is
found in the back of the book.
The document is written for the experienced system programmer, but also less
experienced users may get inspiration to use ISPF Version 4 Release 1 in a
productive manner. Some knowledge of ISPF Version 3 Release 5 is, however,
assumed.
(312 pages)
iii
iv
ISPF/SCLM V4 Guide
Contents
Abstract
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Special Notices
Part 1. Introduction
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
xxiii
xxiii
xxv
xxv
xxvi
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
xxi
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Preface
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . .
How This Document is Organized
Related Publications
. . . . . . . . . . . . . . . . . . . . . .
International Technical Support Organization Publications
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . .
iii
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
1
3
5
5
5
5
6
7
7
8
9
9
10
10
13
14
15
15
15
19
20
22
23
24
24
24
25
27
28
28
29
30
30
30
31
32
33
33
vi
ISPF/SCLM V4 Guide
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
33
33
34
35
35
35
36
36
36
37
37
37
39
39
39
41
42
45
48
49
55
58
59
59
60
61
63
65
66
67
69
69
70
71
71
72
72
74
74
74
75
76
77
80
81
83
83
85
85
86
87
87
87
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . .
88
88
88
88
89
89
90
90
92
92
94
95
. . . . . . . . . . . . . . . . .
97
97
. 97
. 97
. 98
. 98
. 98
. 99
103
103
103
107
110
110
112
112
112
113
114
114
114
115
115
115
116
116
116
117
117
117
118
118
118
118
119
119
120
120
120
120
121
121
Contents
vii
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . . . . .
147
147
148
148
148
149
149
. . . . . . . . . . . . . . . . . . . . .
151
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
viii
ISPF/SCLM V4 Guide
121
123
123
124
125
125
126
126
127
128
129
129
129
131
133
134
135
136
136
136
140
142
143
145
. . . .
. . . .
. . . .
. . . .
153
153
153
154
154
154
154
154
155
155
155
155
156
156
157
157
158
159
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
159
160
160
161
161
163
164
165
165
165
166
166
166
167
167
168
168
168
169
169
171
171
. . . . . . . . . . . . . . . . . . . . . . . . .
173
173
174
174
174
174
174
. . . . . . . . . . . . . . . . . . . . . . . . .
179
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
Contents
181
181
181
181
182
183
183
183
184
184
184
185
186
187
187
190
190
190
191
192
192
ix
. . . . . . . . . . . .
. . . . . . . . . . . . .
. .
. .
.
. .
. .
. .
. .
. .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . .
195
195
195
196
197
198
200
200
200
201
203
203
203
204
205
205
205
205
206
206
206
206
206
206
207
207
207
209
211
211
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
213
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. .
. . . . . . . . . . . . . . . . . .
. .
193
193
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . .
. . . . . . . . .
215
215
216
216
219
219
219
219
219
219
221
221
222
223
227
. . .
. . .
. . .
. . .
. . .
. . .
. . .
233
236
. .
239
239
239
239
239
239
239
240
242
242
244
244
245
245
245
245
245
246
247
247
247
247
247
248
248
248
248
248
248
248
248
249
. .
249
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
253
253
253
253
254
254
254
254
254
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
257
228
229
230
231
232
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
.
.
. .
. .
. .
. .
. .
. .
. .
. .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
Contents
xi
21.1.1
21.1.2
21.1.3
21.1.4
21.1.5
21.1.6
21.1.7
Project Definitions . . . .
Language Definitions . .
REXX Programs
. . . . .
Assembler Programs . .
Job Control . . . . . . . .
Architecture Definitions .
FOILS in LIST3820 Format
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
ISPF/SCLM V4 Guide
261
261
261
263
263
263
263
263
264
265
265
266
267
268
268
269
270
. . . . . . . .
273
. . . . . . . . . . . . . .
281
281
282
. . . . . . . . . . . . . .
xii
257
257
258
258
258
259
259
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . . .
285
285
286
286
287
287
288
288
289
289
289
290
290
291
291
292
292
293
293
294
294
295
26.21
26.22
26.23
26.24
26.25
26.26
26.27
26.28
26.29
26.30
26.31
26.32
26.33
26.34
26.35
26.36
26.37
26.38
26.39
26.40
26.41
26.42
26.43
26.44
Index
. . . . . . . . . .
295
296
296
297
297
298
298
299
300
300
301
301
302
302
303
303
304
304
305
305
305
306
306
307
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
309
Contents
xiii
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
xiv
ISPF/SCLM V4 Guide
Figures
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
Copyright IBM Corp. 1994
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
6
8
9
9
10
11
11
12
13
14
14
16
17
17
18
19
20
21
21
22
23
23
24
25
26
26
27
28
30
31
32
41
42
43
43
44
45
47
47
48
49
50
51
51
52
53
54
54
55
57
58
xv
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
xvi
ISPF/SCLM V4 Guide
Figures
130
130
140
142
163
166
166
167
167
168
168
169
185
186
187
187
191
196
196
196
197
198
207
207
208
208
209
209
213
221
227
227
241
242
242
242
243
264
265
266
268
269
270
271
273
274
274
275
275
276
278
xvii
xviii
ISPF/SCLM V4 Guide
Tables
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
46
52
. 70
148
159
160
160
173
176
190
. . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
xix
xx
ISPF/SCLM V4 Guide
Special Notices
This publication is intended to help the ISPF system programmer to customize
and implement ISPF Version 4 Release 1 such that the users may get the
maximum benefit of its new functions with as little change as possible. The
information in this publication is not intended as the specification of any
programming interfaces that are provided by Interactive System Productivity
Facility Version 4 Release 1. See the PUBLICATIONS section of the IBM
Programming Announcement for Interactive System Productivity Facility Version
4 Release 1 for more information about what publications are considered to be
product documentation.
References in this publication to IBM products, programs or services do not
imply that IBM intends to make these available in all countries in which IBM
operates. Any reference to an IBM product, program, or service is not intended
to state or imply that only IBM's product, program, or service may be used. Any
functionally equivalent program that does not infringe any of IBM's intellectual
property rights may be used instead of the IBM product, program or service.
Information in this book was developed in conjunction with use of the equipment
specified, and is limited in application to those specific hardware and software
products and levels.
IBM may have patents or pending patent applications covering subject matter in
this document. The furnishing of this document does not give you any license to
these patents. You can send license inquiries, in writing, to the IBM Director of
Licensing, IBM Corporation, 500 Columbus Avenue, Thornwood, NY 10594, USA.
The information contained in this document has not been submitted to any
formal IBM test and is distributed AS IS. The use of this information or the
implementation of any of these techniques is a customer responsibility and
depends on the customer's ability to evaluate and integrate them into the
customer's operational environment. While each item may have been reviewed
by IBM for accuracy in a specific situation, there is no guarantee that the same
or similar results will be obtained elsewhere. Customers attempting to adapt
these techniques to their own environments do so at their own risk.
Reference to PTF numbers that have not been released through the normal
distribution process does not imply general availability. The purpose of
including these reference numbers is to alert IBM customers to specific
information relative to the implementation of the PTF when it becomes available
to each customer according to the normal IBM PTF distribution process.
The following terms, which are denoted by an asterisk (*) in this publication, are
trademarks of the International Business Machines Corporation in the United
States and/or other countries:
Common User Access
IBM
Personal System/2
PS/2
CUA
OS/2
Presentation Manager
xxi
xxii
ISPF/SCLM V4 Guide
Preface
This document discusses the new user interface made available with or widely
implemented in Interactive System Productivity Facility Version 4 Release 1. The
document contains a detailed description of this user interface and of the new
SCLM functions as they are implemented in ISPF Version 4.
The document is intended for system programmers preparing and customizing
ISPF for their users as well as for those users who perform their customization
individually. It the intention of this document to increase the user acceptance of
ISPF Version 4 Release 1 and to assist the users in exploiting the new facilities
to the maximum possible degree.
xxiii
xxiv
ISPF/SCLM V4 Guide
Related Publications
The publications listed in this section are considered particularly suitable for a
more detailed discussion of the topics covered in this document.
TCP/IP for MVS V3R1 Performance Tuning Guide, SC31-7188-00
IBM TCP/IP for OS2 V2 Installation and Administration, SC31-6075-04
IBM TCP/IP for DOS V2.1.1 Installation and Administration, SC31-7047-01
Systems Application Architecture, Common User Access, SC26-4583
ISPF Master Index, SC34-4448
ISPF Getting Started, SC34-4440
ISPF Planning and Customizing, SC34-4443
ISPF Examples, SC34-4451
ISPF User's Guide, SC34-4484
ISPF Services Guide, SC34-4485
ISPF Dialog Developer's Guide and Reference, SC34-4486
ISPF Dialog Tag Language Guide and Reference, SC34-4441
ISPF Library Management Facility, SC34-4449
ISPF SCLM Developer's Guide, SC34-4469
ISPF SCLM Project Manager's Guide, SC34-4470
ISPF SCLM Reference, SC34-4471
ISPF Edit and Edit Macros, SC34-4446
ISPF Reference Summary, SC34-4445
ISPF Messages and Codes, SC34-4450
MVS/DFP 3.3: Linkage Editor and Loader, SC26-4564
Preface
xxv
Acknowledgments
The advisor for this project was:
Erik P. Olsen
International Technical Support Organization, Poughkeepsie Center
The authors of this document are:
Minsani Mariani
Deirdre Errity
Matt Nuttall
Hartmut Singhofen
IBM
IBM
IBM
IBM
Indonesia
UK
Canada
Germany
xxvi
ISPF/SCLM V4 Guide
Part 1. Introduction
Interactive System Productivity Facility (ISPF) Version 4 Release 1 constitutes a
major enhancement to previous versions of ISPF. Although the packaging, by
and large, is the same as previous versions, ISPF and ISPF/PDF is now one
single product. In this document we will refer to ISPF as the common
denominator for both products and use the term PDF to designate the functions
previously known as ISPF/PDF.
The functional enhancements to ISPF are mainly in the area of useability.
Although keylists were introduced long ago, it was not till ISPF Version 4
Release 1 that they were used all over ISPF. Same can be said about action
bars. Both these elements are required by the Common User Access (CUA)
definitions and since ISPF Version 4 Release 1 were to include a PS/2-based
Graphical User Interface (GUI), CUA was commonly adopted by ISPF.
Part 2 of this document addresses these changes and innovations. Particularly
the users of PDF will experience a change in the way they navigate within PDF
and the way each individual panel is treated. The traditional power users who
have learned to use PDF blindfold, will see their pace reduced for a while until
they learn the new panel structure and find ways to use it to their benefit. Many
a times will they type an ISPF command over the action bar and see a pull down
pop up when they press the Enter key. Hopefully this document will demonstrate
how the workplace can be accommodated to take advantage of several of the
new dialog elements so the user won't feel compelled to try to revert to the
structures of previous ISPF versions.
Chapter 1 will walk you through the innovations and enhancements of the entire
ISPF product.
Chapter 2 will concentrate on the specific enhancements to the user interface,
the human factors, that have been made available with this version. The
functions and features are discussed without regard to useability. The various
ways of working with the functions are explained; command interfaces, dialog
(action bar) interfaces and programming interfaces. Please refer to this section
when reading the following two chapters.
Chapter 3 deals with the particular workplace that the IBM 3270 offers. The
discussion is divided between the nonprogrammable 3270 hardware terminals
and the OS/2 emulated (through CM/2) 3270 terminals. For the
nonprogrammable terminals, only the options available with ISPF may be used.
However, quite a few is available to the user, who also with this workstation will
experience a freedom in choice of ISPF possibilities. The programmable
workstation offers a much larger degree of freedom in that the workstation in
addition to the pure ISPF possibilities also may be programmed to benefit from
the features that ISPF provides. Besides working with CM/2, also the licensed
program CMmouse is discussed, and examples of how to utilize it are given.
Finally Chapter 4 discusses the biggest innovation in ISPF Version 4 Release 1,
namely, GUI. Both the various ways of installing and activating it and the
usability for the user is discussed.
Part 3 deals entirely with the IBM Software Configuration and Library Manager
(SCLM). SCLM is a software complex which aids the development of software
applications, it:
Simplifies and reduces development and maintenance effort
Controls the movement of application components
Maintains complete software configuration
Provides auditability
Can be customized to an organization's culture.
With the appropriate level of ISPF/PDF installed, a customer already has the
capability to use SCLM and its facilities; SCLM is available as an integral part of
ISPF/PDF (from level 3.1).
SCLM has two major functions:
1. Software Configuration
Using SCLM facilities, it is possible to define how the total application can be
built from a number of predefined source libraries. It is possible to:
quantify the impacts of changes to the system
verify the completeness of those changes and
rebuild the system following those changes.
For example, if an include structure is changed currently in a project with no
software configurator facilities, all the source libraries should be scanned to
see where else that structure is used and to remember to rebuild (recompile
or reassemble) all those affected source members. In an SCLM
environment, this could be under SCLM control, so that when the include
structure is changed it will not be possible to handover other source
members using that structure without rebuilding them.
Source modules can be permanently tied to other source modules or
generated outputs and SCLM will ensure that when updates are made to
these components they will always be promoted together.
2. Library Maintenance
In conjunction with controlling how the application is built from the source
created, SCLM will also control how that source is developed. Once the
library structure and development hierarchy have been defined to SCLM, it
will control what happens to the new or updated source code during the
development.
For example, when a module is updated for a particular development, SCLM
will lock that source member so that any other developer will know that it is
being worked upon. This helps to avoid developing conflicting copies of the
same source or losing pieces of simultaneously developed versions.
ISPF/SCLM V4 Guide
ISPF/SCLM V4 Guide
In ISPF V4.1 you can select a pull-down choice from the Action bar that appears
at the top of the ISPF Settings Panel. The choices are:
Function Keys
1.
2.
3.
4.
5.
6.
7.
8.
Colors
1. Global colors
2. CUA attributes
3. Point-and-Shoot
Environ
1. Environ settings
ISPF/SCLM V4 Guide
GUI
1. Start GUI
2. GUI panel settings
Temporary
1. Message identifier
2. Panel identifier
Help
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Settings
Options
Terminal characteristics
Print Graphics parameters
General
Log/List action bar
Function keys action bar
Color action bar
Environ action bar
GUI action bar
Temporary action bar
The following features can all be activated from the ISPF Settings Panel.
Jump from leader dots
Edit PRINTDS Command
Tab to Action Bar Pull-downs
Tab to Point & Shoot Fields
Long Message in Pop-Up
ISPF/SCLM V4 Guide
1. Select a column (such as date changed) by placing the cursor over the
point-and-shoot field and pressing Enter. Then the data sets are sorted in
date changed order with the most recently changed data set at the top of the
list, as you can see in Figure 5.
2. To resort the member list by the Name column, place the cursor over an
entry in the Name column and press Enter.
1.2.3 Reflists
A feature of the View Option allows you to recall data sets and libraries that you
have most recently accessed. In order to add a data set to the list, type the data
set name in the Other Partitioned or Sequential Data Set Name field. To add a
library, enter a library in the Library field. Whenever ISPF references a data set,
such as in a Move/Copy operation, data sets will be added.
1. Select the RefList Action from the Action Bar, as shown in Figure 6 on
page 11.
2. Select 1 from the RefList pull-down.
The Reference Data Set List will display data sets which have been accessed
during this ISPF session. You can see an example of working with this list from
the View function in Figure 7 on page 11. By selecting one of the data sets in
the reference list, you may View it without actually having to type in the data set
name on the View panel.
10
ISPF/SCLM V4 Guide
A library list is a list of libraries that have been accessed during your ISPF
session. Libraries accessed are dynamically appended to the library reference
list for later use.
1. Press PF3 from Reference Data Set List Panel.
2. Move the cursor to the RefList Action Bar options, and press Enter.
3. Select Option 2, Reference Library List, and press Enter.
Chapter 1. Technical Overview
11
You may now view these lists, as shown in Figure 8 on page 12 and make a
selection and either execute or retrieve the data set or library stored.
As well as the Reference List action there is the Reference Mode action. This
indicates whether you would like to either Execute the View of the reference
entry or Retrieve the data sets or library entries onto the View or Edit Entry
Panel. In Execute mode, the data set or library would be viewed or edited. In
Retrieve mode, the data set or library name entries would be placed into the
appropriate fields on the view or edit screen, where they could be edited if
desired. See Figure 9 on page 13.
12
ISPF/SCLM V4 Guide
13
Alternatively, you may wish to save your changes to the same member, so in
order to do this, you would use the replace primary command. The panel shown
in Figure 11 will be presented to you when you try to save your changes.
Note
If you submit a job for background execution in browse mode and this data
set is edited and saved by another user, the job submitted will be the
updated data set which will not be what you had intended. You can
safeguard against this happening by submitting the job from view.
14
ISPF/SCLM V4 Guide
On
Off
Auto
Default
Paren
Logic
Find
Cursor
Disabled
Turns off all HILITE features. The disabled status is not stored in your
edit profile, therefore you must re-enter the operand every time you
go into the editor.
Search
Finds the first unmatched END, ELSE, } or ). To use search you must
have had the logic enabled. The search for mismatches only occurs
for lines above the last displayed line, so you may have to scroll to
the bottom of the file before issuing the hi search command.
Other
15
ASM
BOOK
C
COBOL
DTL
JCL
PANEL
PASCAL
PLI
REXX
1. Select a member from a data set list by placing the cursor over the
point-and-shoot field and pressing Enter.
In living color, you will see several changes that make editing a data set an
easier task.
From within the View session, you may execute compiles and perform Dialog
Test functions. The Edit action allows you to enable language sensitive editing
specific to the file that is being edited.
1. From the panel shown in Figure 12, select the Edit action from the Action
Bar.
2. Select 3 Hilite. See Figure 13 on page 17.
16
ISPF/SCLM V4 Guide
Notice also that language reserved words, comment lines, literals and matching
parenthesis, operators, and special characters are highlighted and color-coded.
Notice that a string or line being edited is highlighted.
Chapter 1. Technical Overview
17
18
ISPF/SCLM V4 Guide
19
What happens when you select a command depends on the mode you specify
from the Mode pull-down on the action bar. The Mode pull-down offers you
three choices:
Retrieve
Allows you to retrieve commands from the saved command area and
places the command in the TSO Command field so that you can edit it
before the command is executed. This is the default.
Execute
Allows you to retrieve commands from the saved command area and
execute the command in one step.
Delete
20
ISPF/SCLM V4 Guide
To process the command, type EXEC on the command line and press Enter.
21
You should get a message in the top righthand corner of your screen saying
Return Code 0. If the command processes with a nonzero return code, you will
be presented with another panel where you can make the necessary changes
and resubmit the command.
Note: You should select the Browse errors only option on the Define Cluster
panel to browse the output from IDCAMS when a nonzero return code is
returned.
ISPF displays a panel that allows you to give the profile data set member a
name, as shown in Figure 21 on page 23.
Type in the member name. When you press Enter, the data set will be created
for you.
Note: The Profile data set must be a variable blocked, LRECL 203, PDS.
22
ISPF/SCLM V4 Guide
When you select a profile and press Enter, the fields on the entry panel will fill
with the values stored in your profile data set member.
23
Here you should type the name of another profile data set, and if it doesn't
already exist, it will be created for you. It then becomes the active profile data
set.
Commands Allowed
24
ISPF/SCLM V4 Guide
VSAM Clusters
Volume indicator for the catalog entry for a VSAM cluster is VSAM.
The data and index portions have volume names, as shown in Figure 26
on page 26. Delete is only valid for the cluster portions.
SYS1.*
All data set names with SYS1 as first qualifier and a least one
more qualifier.
SYS1 or SYS1.**
**.CLIST
*.CLIST
All data set names with any first qualifier and CLIST as the
second and final qualifier.
SYS1.A*%%B
Note
Use of * or * * as the first qualifier causes all catalogs to be searched,
which requires a lot of time. If you use either of these first level qualifiers,
you will be presented with a warning panel, as shown in Figure 24.
In ISPF V4.1 there are some additional data set list primary commands. You can
use the following commands from the command line after the data set list is
displayed:
LC
VA
VS
VT
VV
25
Note
When you issue the VT command, the response time is extremely low even if
your list of data sets is very large.
26
ISPF/SCLM V4 Guide
You can now allocate data sets across multiple volumes - up to 20 volumes
permitted.
Note: Although the volume input fields are numbered consecutively, you can
enter volume names in any field.
27
28
ISPF/SCLM V4 Guide
29
Note
Not all lines in the LOG dataset originate from a message member.
Therefore, not every line in the LOG dataset will have a message ID.
1.2.10.1 Usage
MSGID is a new command in the ISPF command table.
After getting an error message, you can enter MSGID, and a message pop-up
will be displayed giving the message ID of the last message, an example of
which is shown in Figure 29.
You can enter MSGID ON to have ISPF display the message ID of the error
message as part of the long message.
The MSGID ON/OFF setting is not saved across sessions. It is initialized to OFF,
and it does not have effect across split screens (like PANELID).
Messages which have the message number included in the long message
text will continue to display the message number, even when MSGID OFF is in
effect. Also, for these messages, the message number will appear twice
when MSGID ON is in effect.
This facility does not affect:
30
ISPF/SCLM V4 Guide
You will not be able to change the commands in the retrieve pop-up
before retrieving the command.
For long commands the last visible character of the command will be
displayed as > indicating there are more characters which are not shown.
The default is to place the cursor at the end of the retrieved command.
31
Note:
ISPF V4.1 will save duplicate commands into the retrieve stack if the last
command on the retrieve stack is different from the command being processed.
There may not be room in the retrieve stack for 25 commands.
It may seem that RETP is broken if some large commands are saved in the
retrieve stack. Old commands are removed to make room in the stack for
new commands, so even though over 25 commands may have been entered,
it is possible that not all of them will be displayed by RETP.
Note
The size of the retrieve stack is set during installation by changing the
ISPDFLTS table. The default is 512 bytes.
Additional information and examples can be found in the ISPF 4.1 Services
Guide, SC34-4485-00.
32
ISPF/SCLM V4 Guide
1.3.1.3 Usage
Description of Command Procedure and Call Parameters:
All Parameters except STACK exist in prior releases and are not changed by
the stack capability.
Stacking occurs even when there is no active LIBDEF definition for the
specified lib-type.
A null definition is stacked when there is no active LIBDEF definition.
33
Normal completion.
Application library does not exist for this type (when removing the
application library). This return code is not returned when removing a
null definition that stacked the previous LIBDEF definition. A return
code of 0 is returned in this case.
Application library already exists for this type (if COND is specified).
12
16
A libname was not allocated, or the data set list contains an invalid name.
20
A severe error.
Note
1.3.1.4 Examples
Four LIBDEF commands are executed in the following example:
ISPEXEC
ISPEXEC
ISPEXEC
ISPEXEC
LIBDEF
LIBDEF
LIBDEF
LIBDEF
ISPPLIB
ISPPLIB STACK
ISPPLIB DATASET ID ('ISPFPROJ.LWG.PANELS') STACK
ISPPLIB DATASET ID ('ISPFPROJ.LWGMVS33.PANELS') STACK
1. The first LIBDEF resets the ISPPLIB LIBDEF definition. This is considered a
null definition for ISPPLIB.
2. The second LIBDEF stacks the previous null definition for ISPPLIB and
resets the ISPPLIB LIBDEF definition. This is the second null definition for
ISPPLIB.
3. The third LIBDEF stacks the previous null definition for ISPPLIB and
establishes the ISPPLIB definition for dataset ISPFPROJ.LWG.PANELS.
4. The fourth LIBDEF stacks the previous ISPPLIB definition for dataset
ISPFPROJ.LWG.PANELS and establishes the ISPPLIB definition for dataset
ISPFPROJ.LWGMVS33.PANELS.
In the following example, assuming the preceding LIBDEF ISPPLIB services have
been issued, the following four LIBDEF service calls have the following results.
34
ISPF/SCLM V4 Guide
1. The first LIBDEF reset restores the ISPPLIB definition for dataset
ISPFPROJ.LWG.PANELS.
2. The second LIBDEF reset restores the stacked null definition for ISPPLIB.
This is the null definition which issued the keyword, STACK.
3. The third LIBDEF restores the stacked null definition. This is the null
definition which did not issue the keyword, STACK.
4. The fourth LIBDEF receives a return code of 4 because there is nothing in the
stack and there is no active ISPPLIB definition.
35
1.3.2.3 Usage
Description of Command Procedure and Call Parameters
lib-type Specifies the LIBDEF lib-type definition that is being queried.
ISPPLIB
ISPMLIB
ISPSLIB
ISPTLIB
ISPLLIB
ISPTABL
ISPFILE
or a generic name
type-var Optional parameter that specifies the name of a dialog variable which is
to contain the type of LIBDEF definition.
The possible values returned are:
DATASET
EXCLDATA
LIBRARY
EXCLLIBR
id-var
36
ISPF/SCLM V4 Guide
For type DATASET/EXCLDATA, this column contains the data set name. The
associated ISPxUSR data set name is shown when the respective ddname is
allocated.
For type LIBRARY/EXCLLIBR, this column contains the library name
(ddname) followed by the first or only allocated data set name.
1.3.3.1 Usage
A new ISPF command, ISPLIBD, invokes the LIBDEF Display Utility. This
command may be issued from the command line of any panel.
Format
ISPLIBD [ libtype]
libtype
Examples
ISPLIBD ISPPLIB Displays the current LIBDEF definition for ISPPLIB.
ISPLIBD
Locate Command
Note
The LIBDEF Display Utility may not be executed recursively within the same
logical screen.
37
There are new functions in ISPF V4.1 and some already existing functions from
previous releases of ISPF that produce an application that looks more like one
written specifically for the workstation using traditional programming techniques,
such as C programming. The functions and how to apply them to existing
applications are discussed in 4.8, ISPF GUI Applications on page 121.
38
ISPF/SCLM V4 Guide
ABC
PDC
39
Following the AB start tag, the ABC tag is coded for each action bar choice.
The text specified on ABC tag is the text that appears in the action bar as
the action bar choice.
.Within the ABC tags, the associated PDC tag is coded. The text specified on
the PDC tag is the text that appears as the pull-down choice.
Following each PDC tag, the ACTION tag is coded to specify what type of
action occurs when that pull-down choice is selected.
The required AB end tag should be coded to end the action bar definition.
The following example shows the markup for the ISPF Primary Option Menu
action bars shown in Figure 32 on page 41. The detailed markup for the
Menu pull-down is included.
40
ISPF/SCLM V4 Guide
Notes:
1. The MNEMGEN=YES|NO attribute controls the automatic generation of
mnemonic characters for the entire action bar.
2. The PDCVAR=pdc-variable-name variable attribute provides the name of a
variable to contain the value of the pull-down choice. When a variable name
is provided, it replaces the default ZPDC variable name.
3. The UNAVAIL=unavail-variable-name attribute specifies the name of a
variable that is used by ISPF to determine the availability of the pull-down
choice. When the variable value is 1, the pull-down choice is unavailable.
41
ISPDTLC (NOACTBAR
Note: There is no invocation panel option which is equivalent to the
ACTBAR/NOACTBAR invocation options. ACTBAR is the default. If we
specify as the above, the NOACTBAR option will be active when the
interactive panel is displayed. This option is not saved in your user
profile. It must be specified each time the conversion utility is invoked.
Figure 34 on page 43 shows the first screen of the ISPDTLC invocation
panel with the default data set names and with the required options
selected.
Fill in the member name with ISPFALL which will cause all panels to be
converted. Fill in the name of your input and output files where
indicated. The first DTL source file contains the product panel source.
The second DTL source file contains the conversion list of all panels.
42
ISPF/SCLM V4 Guide
Enter ISR as the Keylist Application ID and select the options as shown
in Figure 35 on page 43 and Figure 36 on page 44.
The converted files will be in your.output.panel.dataset, and the message
generated will be in your.log.dataset.
The log file will report the result of the conversion process. Most of the
messages generated by ISPDTLC are related to ISPF extensions to the
Dialog Tag Language and have been suppressed. The expected message
number from compiling the panel source will appear in a comment near the
top of the DTL source file for that panel source.
43
ISP.ISPF410.SISPGENU
ISP.ISPF410.SISPSAMP
your.output.panel.dataset
your.output.message.dataset
your.output.table.dataset
your.log.dataset (optional)
your.llist.dataset (optional)
Note: A few of the product panels (e.g. ISPF Settings panel) REQUIRE action
bars for proper operation. The creation of action bars is made even though the
invocation option is NOACTBAR.
44
ISPF/SCLM V4 Guide
You may want to disable the use of action bars only in the editor to provide
more space on the screen. Yo can remove action bars from the editor by
issuing the HILITE DISABLED command. But the consequence is, that it also turns
off the availability of extended color HILITE (see 2.5.2, Edit Hilite on page 72 for
more information).
To accommodate the HILITE features with no action bars, an unsupported load
module called ABAR can be used to turn on/off action bars in the ISPF editor.
ABAR will turn action bars on if they are off, and off if they are on.
To execute ABAR, type TSO ABAR on any ISPF command line, this will affect all
future edit sessions only, or use ABAR as an edit macro by typing !ABAR on any
edit command line, this will affect both the current and all future edit sessions.
Note: If you have already used the value DFLTCOLR=4 in the ISPF/PDF
configuration table, ABAR will not enable action bars. For more information, see
5.1, Modifying ISPF Configuration Table (ISRCNFIG) on page 147.
ABAR is only available from an internal IBM tools disk. Please contact your
local IBM support group for availability of this load module.
Warning: Should this module be made available, please understand, that since it
is not supported, no guarantee is provided that it may work in future releases, or
after applied maintenance. It may even malfunction.
45
Imbedded
Source File
ISPFIL1
ISPDFIL1
ISPFUNC
ISPDFUNC
ISPHUCM
ISPDHUCM
ISPHYXM
ISPDHYXM
ISPJOBC
ISPDJOBC
ISPLANG
ISPDLANG
ISPMENU
ISPDMENU
ISPMENU1
ISPDMENU
ISPREFE
ISPDREFE
ISPREFL
ISPDREFL
ISPREFM
ISPDREFM
ISPSAVE
ISPDSAVE
ISPTEST
ISPDTEST
ISPUTIL
ISPDUTIL
ISPSCLM
ISPFSCLM
46
ISPF/SCLM V4 Guide
your.appl.gml.dataset.
ISP.ISPF410.SISPGENU
ISP.ISPF410.SISPSAMP
your.output.panel.dataset
your.output.message.dataset
your.output.table.dataset
your.log.dataset (optional)
your.list.dataset (optional)
If you wish to use the interactive conversion utility, see Figure 38, Figure 39,
and Figure 40 on page 48 for a more detailed specification.
47
2.2 Keylists
Key Mapping Lists (keylists) are tables located in the general table libraries of
ISPF. They percolate either into your profile data set or private table libraries.
There are two kinds of keylist tables that both relate to your current
application-ID. If that, for example, is ISP, you may find the following kinds of
keylists on your system:
Keylists as part of a table called ISPKEYS. This name is constructed from
the application-ID with the character string KEYS concatenated to it. Each
line in this table is one keylist, and the keylist name is in a keys variable of
that table.
Keylists as part of the application profile, such as ISPPROF. The structure of
the profile is a normal table. The table, ISPPROF in this case, has neither
keys nor names variables, only extension variables. The first row of the
table consists of the wellknown profile variables. The following rows each
contain a keylist.
Nearly all panels in ISPF 4.1 have associated keylists. There are a total of eight
keylists used across the ISP and ISR panels. The following keylists comprise the
table ISRKEYS, the keylist repository for application-ID ISR, also known as
member ISRKEYS in table library ISPTLIB. Not all these keylists are being used
at the moment.
ISPNAB
ISPTEST
ISPKYLST
ISPSNAB
ISPSAB
ISPHLP2
ISPHLP2
ISPHELP
ISNAB
ISRSPBC
ISRSPEC
ISRHELP
ISRSAB
ISRTEST
ISRSNAB
ISRNSAB
For application-ID ISP the following keylists, this time part of table ISPKEYS in
ISPTLIB, are found similar to ISRKEYS above:
48
ISPF/SCLM V4 Guide
ISPTEST
ISPNAB
ISPHLP2
ISPHELP
ISPSNAB
ISPSAB
There are various ways to modify these keylists, but they are basically saved in
two distinct places:
Using dialog under the SETTINGS command, which saves the modified keylists
in the application profile (for example in ISRPROF).
Using the command KEYLIST that with a few undocumented parameters bring
you directly into the keylist processing panels. As with the SETTINGS
command, the modified keylists are saved in the application profile.
Using DTL, where the modified keylists are saved in application tables (for
example ISRKEYS) in the table library allocated to DDname ISPTABL.
49
If you are already in a keylist enabled panel, you will get the keylist change
panel for the keylist active on that panel after entering the KEYS command. For
example, if you are in the Edit Entry panel (ISREDM01) which use the ISRSAB
keylist, the change panel for Keylist ISRSAB in application ISR is displayed
immediately after having entered the KEYS command, (see Figure 46 on
page 53).
To create, change, browse, or delete a keylist:
1. Enter the name of the keylist in the input area provided on the Keylist Utility
panel, or use any character in the Select column to select a keylist.
2. Select the appropriate choice from the Functions pull-down as shown in
Figure 43 on page 51.
a. To create a keylist, select option 1 (Create) from the Function pull-down.
The screen shown in Figure 44 on page 51 is displayed.
The Defaults pull-down offers the choice of the five default key settings
described in Figure 45 on page 52 and explained in Table 2 on page 52.
Note: If you are creating a keylist on a terminal defined to have 24
keys, the 13-24 keys are the same as the 1-12 keys.
Save the keylist using the Save and Exit choice, or cancel the creation
using the Cancel choice in File pull-down.
50
ISPF/SCLM V4 Guide
Figure 43. Keylist Utility with Function Action Bar Pull-down (ISPKLUP)
51
52
ISPF/SCLM V4 Guide
Condition
Key Setting
No defaults
Nonscrollable, no
action bar
Scrollable,
no action bar
Nonscrollable,
with action bar
F1 HELP
F2 SPLIT
F3 EXIT
F9 SWAP
F12 CANCEL
F1 HELP
F2 SPLIT
F3 EXIT
F7 BACKWARD
F8 FORWARD
F9 SWAP
F12 CANCEL
F1 HELP
F2 SPLIT
F3 EXIT
F9 SWAP
F10 ACTIONS
F12 CANCEL
Key Setting
Scrollable,
with action bar
b. To change the key definitions, display formats, and labels for a keylist,
select option 2 (Change) from the Function pull-down. The screen shown
in Figure 46 is displayed, showing the existing values.
Row x to x of xx indicates that you must scroll the panel to access the
remaining label definitions.
Keylist Help Panel Name to refer to a help panel from this keylist.
Enter the help panel name in this field. To remove a help panel name
from a keylist, simply replace the help panel name with blanks.
Definition must also be specified if a display format or a label is
specified.
Format only valid in LONG (default), SHORT or NO. If you choose format
NO, the key label will never be displayed.
Label will appear in function keys area. Any label is valid.
Save the keylist using Save and Exit choice or cancel the creation
using Cancel choice in File pull-down.
53
Figure 47. Keylist Utility with Delete Keylist Confirmation Pop-Up (ISPKLUP)
Note: You cannot delete a shared (S) keylist. Deleting a private copy
(P) keylist is valid only if the keylist is not in a currently active
application. This is done so that a panel will not receive an error
message because the keylist is not found.
d. To browse a keylist, select option 4 (Browse) from the Function
pull-down. The screen shown in Figure 48 is displayed.
54
ISPF/SCLM V4 Guide
The help panel name, key definitions, display formats, and labels are
displayed but cannot be changed.
3. To work with another set of keys on the Keylist Utility panel, select Change
Keylist on the action bar. The Change Keylist pull-down is shown in
Figure 49.
The Change Keylists pull-down choices function as follows:
Current panel keylist Display the list of keys related to the current panel
Current dialog keylist Display the list of keys related to the dialog currently
running
Specify keylist
Figure 49. Keylist Utility with Change Keylist Action Bar Pull-down (ISPKLUP)
To define a keylist. The required end tag ends the keylist definition.
KEYI
The KEYL tag starts a keylist definition and provides the name value (with the
required NAME attribute) that you specify with the KEYLIST attribute of the
PANEL or PANDEF tag.
Each KEYI definition within a keylist maps a key assignment with a command.
The command can be defined in the application command table or it can be one
of the ISPF-provided commands. The required KEY and CMD attributes of the
KEYI tag match the key with the command.
55
While all of the key assignments you define in a keylist are valid for the
application panels that refer to the list, they only appear in the function key area
(FKA) of the panel under the following conditions:
You specify that the key is to be displayed by including FKA=YES in the
KEYI tag, and
You have not turned off display of the function key area
The default of the FKA value is NO, which means that the key will not appear.
You must specify FKA=YES for the key to be displayed in the function key area.
Following is an example of DTL keylist definition. It is keylist ISRSAB found in
member ISRKYLST of the SISPGENU data set.
fka=yes>Help
fka=long>Split
fka=yes>Exit
fka=long>Backward
fka=long>Forward
fka=long>Swap
fka=yes>Actions
fka=yes>Cancel
fka=yes>Help
fka=long>Split
fka=yes>End
fka=yes>Return
fka=yes>Rfind
fka=yes>Rchange
fka=long>Up
fka=long>Down
fka=long>Swap
fka=yes>Left
fka=yes>Right
fka=yes>Cretriev
56
ISPF/SCLM V4 Guide
After you have finished marking up a source file, use the conversion utility to
convert it. After conversion, the elements you have defined are stored in the
specified ISPF libraries.
The panel display of ISREDM01 is shown in Figure 50.
The keylist that will be used for the panel is be specified in the )PANEL section
in the panel definition. It also identifies where the keylist is to be found.
Following is the converted )PANEL statement for ISREDM01.
..
.
)PANEL KEYLIST(ISRSAB,ISR)
..
.
where:
ISRSAB is the keylist name.
ISR
is the keylist applid. This is the application ID used at run time to find
the keylist.
When a keylist is specified without a keylist applid, ISPF searches for the named
keylist in the following sequence:
1. Keylist for the currently executing application ID
2. Keylist for applid ISP
When a KEYLIST keyword is not found through the )PANEL statement, then the
default keylist, ISPKYLST, is used.
The key mappings for ISPKYLST are:
57
Key
F1
F2
F3
F9
F12
F13
F14
F15
F21
F24
Command
HELP
SPLIT
EXIT
SWAP
CANCEL
HELP
SPLIT
EXIT
SWAP
CANCEL
You can override the ISPF default keylist by specifying a KEYLIST attribute in the
panel definition. All keys that you want to be active, including those for
ISPF-provided commands, must be specified in the keylist referred to by the
KEYLIST attribute in )PANEL definition.
58
ISPF/SCLM V4 Guide
You can define or change a function-key function simply by equating the key to a
command. If you enter a blank for any function key definition, the key is restored
to its ISPF default.
The label fields shown in Figure 51 on page 58 allow you to specify user-defined
labels for the displayed representations of function key definitions. If a label is
not assigned, the definitions displayed for that function key consist of the first
eight characters of the function key definition. No function key information
displays if the label value for that key is NOSHOW.
From the Tailor Function Key Definition Display panel, you can set the following
function key parameters:
Number of keys
The number of function keys you specify controls the particular set of
function key definitions currently in use. For more information about
specification of terminal types, refer to ISPF User's Guide.
Chapter 2. User Interface
59
Upper
Display set
For terminals with 24 function keys, you can choose to display only the
primary keys, the alternate keys, or all 24 keys. Your choice depends
on which range you specify for the Primary range option. For terminals
with 12 function keys, this setting is ignored.
60
ISPF/SCLM V4 Guide
61
In List Retrieve Mode, the data set or library entries will be placed into
appropriate fields, but the Enter key is not simulated. Here, you can set other
options before you press Enter.
To set RefMode, just simply pull down the RefMode, menu as shown in
Figure 54 and set the mode. List Execute displays in blue (default) with an
asterisk at the first digit of the selection number (if you are running in GUI mode,
the choice will be in grey), which indicates that it is currently set to Execute.
62
ISPF/SCLM V4 Guide
63
Select Personal Data Set List Open from the RefList pull-down
menu. The menu shown on Figure 57 on page 65 will now be
displayed.
2. Modify this list by typing over data set names or adding new ones. Do
not select any choices.
3. Save the list by:
Select the Save as... choice from the File pull-down menu and
assign a unique name to the list, if you want to save it under another
name.
Select the Save choice from the File pull-down menu, if you want
to save it under the same name.
Note: Besides using the choices in the File pull-down menu in your Personal
Data Set List or Personal Library panels, you can also work with these options
by selecting the point-and-shoot options or by entering an option number in the
File field and pressing Enter.
64
ISPF/SCLM V4 Guide
65
REFLISTD 1
to retrieve the first data set from the data set reflist and place it in the
Other Partitioned or Sequential Data Set field.
REFLISTL xx
Invoke the Reference Library List dialog, and retrieve the library in
position xx of the list. xx is a number from 1-8 for direct entry selection.
For example:
REFLISTL 2
to retrieve the second data set from the library reflist and place it in the
ISPF Library field.
REFACTD nnnnnnnn xx
Invoke the Personal Data Set List dialog, and retrieve the data set in
list named nnnnnnnn in position xx of that list. xx is a number from 1-8
for direct entry selection. For example:
REFACTD MYLIST 2
to retrieve the second data set from the data set reflist and place it in
the Other Partitioned or Sequential Data Set field.
REFACTL nnnnnnnn xx
Invoke the Personal Library List dialog, and retrieve the library in list
named nnnnnnnn in position xx of that list. xx is a number from 1 -8 for
direct entry selection. For example:
REFACTL MYLIB 2
to retrieve the second data set from the library reflist and place it in the
ISPF Library field.
REFOPEND
Invoke the Personal Data Set List Open dialog.
REFOPENL
Invoke the Reference Library List Open dialog.
REFADDD nnnnnnnn
Update the personal data set list named nnnnnnnn with the most
recently referenced data set. For example, enter
REFADDD HERLIST
to add the most recently referenced data set to the personal data list
named HERLIST.
Note: If personal list HERLIST does not exist, it will be created. The list
name must begin with an alphabetic character, followed by any valid
alphanumeric character for a total length of up to eight characters.
66
ISPF/SCLM V4 Guide
REFADDL nnnnnnnn
Update the library list named nnnnnnnn with the most recently
referenced library. For example, enter
REFADDD HERLIB
to add the most recently referenced library to the library list named
HERLIB
Note: If personal list HERLIB does not exist, it will be created. The list
name must begin with an alphabetic character, followed by any valid
alphanumeric character for a total length of up to eight characters.
Type the command from the command line, and make sure you are already in a
reflist enabled panel. If you select a data set using the reflist from a panel that
is not enabled, ISPF will remember the entry selected, and when you enter a
reflist enabled panel, simply press enter, and the remembered entry will be
retrieved.
67
personal data set list named MYLIST in the Other Partitioned or Sequential
Data Set field. For example, if you type 5 in the Command line and press
F6 the fifth data set on MYLIST would be retrieved.
If you press the function keys from a panel that is not keylist enabled, ISPF will
remember the entry selected. When you enter a reflist enabled panel, simply
press enter, and the remembered entry will be retrieved.
If you want to select an entry from a panel that is not keylist enabled, you can
use command chaining:
(for view)
(for edit)
68
ISPF/SCLM V4 Guide
Figure 60. Defining Function Key to Speed Up Selection Personal List Entry
69
Figure 61. CUA Attribute Change Utility Panel Positioned on the Point-Shoot Panel
Element (ISPOPT1X)
Any of the three attributes can now be changed simply by typing over the
existing values. The changes are reflected on the next panel displayed after you
exit this panel. The valid change values are shown in Table 3.
Table 3. Valid Point-and-Shoot Change Values
70
ISPF/SCLM V4 Guide
Color Choices
Intensity Choices
Highlight Choices
RED
PINK
GREEN
YELLOW
BLUE
TURQ
WHITE
HIGH
LOW
NONE
BLINK
REVERSE
USCORE
Figure 62. Colors Pull-down on the ISPF Settings Panel Action Bar (ISPISMMN)
71
72
ISPF/SCLM V4 Guide
HI AUTO selects a language based on the first nonblank line, and in some cases,
the last qualifier of the data set name. For more information on rules for
automatic language recognition, refer to ISPF Edit and Edit Macros.
ISPF also recognizes the comment types for each language. See ISPF Edit and
Edit Macros for comment types supported.
Parenthesis and Logic Highlighting: Parenthesis matching works by showing
matching parenthesis in the same color. Mismatched right parenthesis are
displayed in reverse video pink (to make them stand out). Parenthesis matching
is enabled and disabled with the HI PAREN command.
Logical block matching works by showing the beginning and ending keywords of
a block in matching colors. It is intended to be used with a range of PL/I type
languages such as CLIST, REXX, and Pascal as well as with C, ISPF Skeletons,
BookMaster, and Assembler, to name a few. Logical block matching is enabled
with the HI LOGIC and HI DOLOGIC commands.
IF/ELSE matching shows the word IF and its matching ELSE in the same color. It
is available for C, and the PL/I style languages. IF/ELSE matching is enabled
with the HI LOGIC and HI IFLOGIC commands.
If logical highlighting is not supported for a language, the HILITE LOGIC
command is ignored. The maximum IF/ELSE indentation supported is 255.
Unmatched ENDs or ELSEs are highlighted in reverse video pink to make them
stand out.
To find the first mismatched END or ELSE in the file, enable logic highlighting,
scroll to the bottom of the file and type HI SEARCH on the command line.
FIND and Cursor Highlighting: When FIND highlighting is enabled, any string
which the FIND or CHANGE command would locate is highlighted.
Only the following string qualifiers are recognized by highlighting:
Character strings (C'...' - case insensitive and the default)
Text strings (T'...' - case sensitive)
Hex strings (X'...' - only displayable characters are highlighted)
WORD, PREFIX, and SUFFIX
Boundaries specified on the FIND command
Notes:
1. Picture strings (P'...') are not highlighted.
2. Line labels are ignored when highlighting FIND strings.
Because FIND highlighting is not quite as robust as the FIND command itself, the
editor may highlight more occurrences of the string than FIND would actually
locate.
CURSOR highlighting works by highlighting the phrase that contains the cursor.
Highlighting is done from the previous blank to the following blank (similar to the
way that BROWSE does cursor highlighting).
73
HI OFF
It will turn off the coloring, but cursor and FIND highlighting will still function.
HI DISABLED
It will turn off all HILITE features and removes all action bars. This benefits
performance at the expense of function. Since disabled status is not
restored in the edit profile, you must re-enter the operand every time you
enter the editor.
Note:
If you want to turn the HILITE features on after entering HI DISABLED, you could
do either of two things; exit from the editor or enter the HI ON command.
Entering HI ON after HI DISABLED may bring a PARAMETER IGNORED message
and the HI ON still remains in the Edit command line. Press ENTER and it will
be back to normal.
74
ISPF/SCLM V4 Guide
Note: Keyword lists and default highlighted symbols for each language are
supplied by IBM. A facility that involves assembly and link editing of an
installation-modified keyword or symbol list does exist to add and remove
keywords. IBM does not supply facilities for adding additional languages.
The keyword and symbol lists and directions for changing them are in
member ISRPXASM in the SAMPLIB library.
The detailed definition of HILITE commands and an example using HILITE dialog
are provided in 1.2.5, Color Usage on page 15.
Session
Function keys
Calendar
User Status
User point-and-shoot
None
To display one of the above options, select it from the Status pull-down as shown
in Figure 63.
Note: The current setting will be shown as an unavailable choice; that is, it will
display in blue (default) with an asterisk as the first digit of the selection number.
If you running in GUI mode, the choice will be in grey.
75
Figure 64. ISPF Primary Option Menu Status Area - Session View
MVS Acct and Release are point-and-shoot fields (shown in Figure 64). Select
these fields to display pop-up windows that contain additional information about
the MVS account number and the ISPF environment.
Figure 65. ISPF Primary Option Menu Status Area - Function Keys View
76
ISPF/SCLM V4 Guide
2.6.2 Calendar
The calendar view (shown in Figure 66) displays the current month in the status
area. You can also activate the note-pad facility for the selected date.
Figure 66. ISPF Primary Option Menu Status Area - Calendar View
All the fields on the calendar are point-and-shoot fields that can be used to
define and manipulate the calendar display:
1. To display the year:
Point to the Year field to get the Calendar Year pop-up that allows you
to specify the year to be displayed.
2. To display the months, do one of the following:
Point to the < , Calendar, or > field to display the previous,
current, and next month, respectively.
Point to the Month, and you get the Calendar Month pop-up that allows
you to specify the month to be displayed.
3. To define the start day:
Point to the Day field to get the Calendar Start Day pop-up that allows
you to specify Saturday, Sunday, or Monday as the start day for the
calendar.
You can also display the Calendar Start Day pop-up by:
Selecting the Status Area... from the Menu pull-down to get the
ISPF status pop-up window.
Then select the Calendar start day... from the the Options action
bar choice (shown in Figure 67 on page 78).
77
Note: Once the data has been saved on the note pad, the date will be
displayed in reverse video to indicate that a note-pad entry exists. You
78
ISPF/SCLM V4 Guide
may change or delete the data by selecting an action from the File
action bar choice, or you may change the color by selecting Change
note color... from the Options action bar choice on the Note Pad panel
(displayed on
To activate the note-pad facility, do the following:
79
80
ISPF/SCLM V4 Guide
The status variables, that you have defined on Figure 71, are displayed in the
status area by selecting the User status choice from the Status pull-down
menu, as shown in Figure 72 on page 81.
Figure 72. ISPF Primary Option Menu Status Area - User Status View
81
The Edit point-and-shoot field that you have defined is displayed in the status
area by selecting the User point-and-shoot choice from the Status pull-down, as
shown in Figure 74.
Figure 74. ISPF Primary Option Menu Status Area - User Point-and-Shoot View
82
ISPF/SCLM V4 Guide
2.6.5 None
If you select None from the Status pull-down, nothing will be displayed in the
status area.
83
We strongly suggest that you use the DTL for your modifications, as it
becomes easier to retrofit them to fixes destributed in DTL rather than to the
panel code itself. IBM fixes are made in DTL, even though they may also be
destributed in traditional panel code.
For further information, see Dialog Tag Language Guide and Reference.
84
ISPF/SCLM V4 Guide
85
Users with the habit of having a command line at the top of the screen now see
the home key sending the cursor to the action bar rather than to the command
line. Since you should be able to select action bar functions using the tab key,
the entire action bar is implemented as an input field. With the habit of typing
and entering a system command after pressing the home key, it is possible to
type a command across the action bar instead of across the command line. If
you then press enter, a pull-down will be activated, depending upon the length of
the command entered (i.e. the location of the cursor dictates which menu is
pulled down). The command entered is ignored. This is not a severe problem,
because no commands are executed, and pressing function key 12 (F12), Cancel,
removes the pull-down.
It is understood that many users will learn their way around this, perhaps by
pressing the soft enter (new line) key immediately after pressing the home key.
86
ISPF/SCLM V4 Guide
But, for some users, the more often this happens the more time is lost, and the
incentive to do something about it grows.
There are a few changes you can make to either decrease or eliminate these
difficulties:
Leave it as it is and learn new habits.
Remove the action bar entirely.
Remove the ability to tab to action bar functions.
Place the command line at the top.
Use F24=CRETRIEVE.
Remove the action bar from Edit and View.
87
With tab to action bar disabled, the home key will place the cursor on the
command line, provided the command line has been placed at the top of the
screen. (See 3.1.1.4, Placing Command Line at the Top on page 88)
It is not possible to program the Home key to place the cursor on the command
line if the Action Bar is tab-able. The home key places the cursor at the upper
left of the screen's input area. You can only tab to an input field.
88
ISPF/SCLM V4 Guide
There are many instances where point and select is clearly advantageous. The
best example comes in Edit or View mode. Once you have used the Tab key or
the Cursor Move keys to select the desired member, pressing the Enter key is all
that is necessary. The traditional S is no longer required.
On any selection menu, for example, the Primary Option Menu, point and select
also works. By placing the cursor on the desired choice and pressing Enter, you
can select any option available.
Point and select is also used on the action bar (of course), and the calendar.
3.1.3 PF Keys
Another difference you might notice in Figure 75 on page 86 are the PF key
assignments. The default settings with ISPF 4.1 are in accordance with CUA 89
guidelines. With new functionality added to keylists, some of these key
assignments will change depending upon what function of ISPF is being used.
For more information on altering function keylists, see 2.2, Keylists on
page 48.
The most noticeable key assignment change is undoubtedly function key 12, F12.
More than a few users are going to be surprised when they press a key to
retrieve a command and are promptly cancelled out of whatever they were
doing. Users of Edit do not have to fear! ISPF 4.1 will prompt you to ensure that
you really do want to cancel without saving changes.
Note
ISPF 4.1 features a greatly enhanced retrieve function. See 1.2.11, Forward
Retrieve and Retrieve Pop-up on page 30 for more information.
89
90
ISPF/SCLM V4 Guide
CM Mouse Pop-Up
To access the CM Mouse pop-up menus, press both mouse buttons at
the same time. (Also called a chord.)
Enter at host cursor
Double click the left mouse button anywhere (simulates an enter at
the host cursor position).
Enter at mouse pointer
Click the left mouse button anywhere to simulate an enter at the
mouse pointer's location.
F3=Exit
Single click the right mouse button anywhere to exit.
F12=Cancel
Double click the right mouse button anywhere to cancel.
Note
CM Mouse V1.4 and OS/2 V2.1 have an incompatibility that prevents the
double click function of the mouse from functioning.
91
provided are self-explanatory, and a dummy example is included for the user to
fill in with a desired function of his or her own.
***************************************************************
* IBM CM Mouse Support/2 (5799-PNJ): GUI "Simulation" Button Definition
* For ISPF v4.1 in 3270 mode using CM Mouse v1.4
* Written by Matt Nuttall, ITSC, July/August, 1994.
* Distributed as is, users are encouraged to modify.
* Important:
* See ISPF and SCLM Implementation Guide, Version 4
* for information on how to use this BDF file.
***************************************************************
map off
* In case of unrecognized panel....
*
button left
"{seek} enter"Point and select
button right
" pf3"Exit
button left+right "{beep}"
button right+left "{beep}"
button dblleft
"{beep}"
button dblright " pf12"Cancel
***************************************************************
* Edit or View Screen Definitions -- split screen line at top
***************************************************************
screen 1 1 exact * " . . "
and-screen 2 3 exact * " File E"
button left+right "{popup ispfe41}"Popup list of ISPF Edit commands
button right+left "{popup ispfe41}"Popup list of ISPF Edit commands
button left
"{seek} enter"Point and Select
button dblleft
"{seekcol 2}i enter"Insert mode
button dblright
"{seekcol 2}ts{seek} enter"Text split
button right
" pf3"Exit ISPF Edit or View
*************************
* Area Definitions
92
ISPF/SCLM V4 Guide
************************
* Edit and View screen definition
* Only tworows of PF keys allowed. Default -1.
area -1 1 0 0 ---------------- PF Keys
button left "{pfkey}"Execute PF Keys
area 1 1 2 0 ------------- Action Bar
button left "{seek} enter"Point and Select
***************************************************************
* Edit or View Screen Definitions -- split screen line at bottom
***************************************************************
screen 1 3 exact * " File E"
and-screen 0 1 exact * " . . "
button left+right "{popup ispfe41}"Popup list of ISPF Edit commands
button right+left "{popup ispfe41}"Popup list of ISPF Edit commands
button left
"{seek} enter"Point and Select
button dblleft
"{seekcol 2}i enter"Insert Mode
button dblright
"{seekcol 2}ts{seek} enter"Text Split
button right
" pf3"Exit ISPF Edit or View
*************************
* Area Definitions
************************
* Edit and View screen definition
* Only tworows of PF keys allowed. Default -2.
area -2 1 -1 0 ---------------- PF Keys
button left "{pfkey}"Execute PF Keys
area 1 1 1 0 ------------- Action Bar
button left "{seek} enter"Point and Select
***************************************************************
* Edit or View Screen Definitions -- no split
***************************************************************
screen 1 3 exact * " File E"
button left+right "{popup ispfe41}"Popup list of ISPF Edit commands
button right+left "{popup ispfe41}"Popup list of ISPF Edit commands
button left
"{seek} enter"Point and Select
button dblleft
"{seekcol 2}i enter"Insert mode
button dblright
"{seekcol 2}ts{seek} enter"Text split
button right
" pf3"Exit ISPF Edit or View
*************************
* Area Definitions
************************
* Edit and View screen definition
* Only tworows of PF keys allowed. Default -1.
area -1 1 0 0 ---------------- PF Keys
button left "{pfkey}"Execute PF Keys
area 1 1 2 0 ------------- Action Bar
button left "{seek} enter"Point and Select
***************************************************************
* ISPF Generic Screen Definitions -- split screen line bottom
***************************************************************
screen 0 1 exact * " . . "
button left+right "{popup ispf41}"Popup list of ISPF commands
button right+left "{popup ispf41}"Popup list of ISPF commands
button left "{seek} enter"Point and select
button dblleft "{unseek} enter"Enter at cursor position
button right " pf3"Exit ISPF
Chapter 3. 3270 Environment
93
***************************************************************
* IBM CM Mouse Support/2 (5799-PNJ): General Mouse Pop-Up Menu
* For ISPF v4.1 in 3270 mode using CM Mouse v1.4.
* Written by Matt Nuttall, ITSC, July/August, 1994
* Distributed as is, users are encouraged to modify.
* Important:
* See ISPF and SCLM Implementation Guide, Version 4
* for information on how to use this MMM file.
**************************************************************
title red "ISPF Options "
line "Settings"{search for /===>/ at 1 1 0 30}+
{rowcol &{srow} &{rexx +
colnum = &{scol}+5;+
exit colnum;}} eraseeofsettings enter
line "View"{search for /===>/ at 1 1 0 30}+
{rowcol &{srow} &{rexx +
colnum = &{scol}+5;+
exit colnum;}} eraseeofview enter
line "Edit"{search for /===>/ at 1 1 0 30}+
{rowcol &{srow} &{rexx +
colnum = &{scol}+5;+
exit colnum;}} eraseeofedit enter
line "Dummy"{search for /===>/ at 1 1 0 30}+
{rowcol &{srow} &{rexx +
94
ISPF/SCLM V4 Guide
colnum = &{scol}+5;+
exit colnum;}} eraseeofyour command goes here enter
line "Retrieve Pop-Up"{search for /===>/ at 1 1 0 30}+
{rowcol &{srow} &{rexx +
colnum = &{scol}+5;+
exit colnum;}} eraseeofretp enter
line "Panel Help"{search for /===>/ at 1 1 0 30}+
{rowcol &{srow} &{rexx +
colnum = &{scol}+5;+
exit colnum;}} eraseeofexhelp enter
line
line "Exit ISPF"{search for /===>/ at 1 1 0 30}+
{rowcol &{srow} &{rexx +
colnum = &{scol}+5;+
exit colnum;}} eraseeof=x enter
line "Here Kitty!"{terminate}
***************************************************************
* IBM CM Mouse Support/2 (5799-PNJ): Edit and View Mouse Pop-Up Menu
* For ISPF v4.1 in 3270 mode using CM Mouse v1.4.
* Written by Matt Nuttall, ITSC, July/August, 1994
* Distributed as is, users are encouraged to modify.
* Important:
* See ISPF and SCLM Implementation Guide, Version 4
* for information on how to use this MMM file.
**************************************************************
title red "ISPF Options "
line "Save"{search for /===>/ at 1 1 0 30}+
{rowcol &{srow} &{rexx +
colnum = &{scol}+5;+
exit colnum;}} eraseeofsave enter
line "Submit"{search for /===>/ at 1 1 0 30}+
{rowcol &{srow} &{rexx +
colnum = &{scol}+5;+
exit colnum;}} eraseeofsubmit enter
line "Undo"{search for /===>/ at 1 1 0 30}+
{rowcol &{srow} &{rexx +
colnum = &{scol}+5;+
exit colnum;}} eraseeofundo enter
line "Dummy Macro"{search for /===>/ at 1 1 0 30}+
{rowcol &{srow} &{rexx +
colnum = &{scol}+5;+
exit colnum;}} eraseeofyour macro goes here enter
line "Retrieve"{search for /===>/ at 1 1 0 30}+
{rowcol &{srow} &{rexx +
colnum = &{scol}+5;+
exit colnum;}} eraseeofretrieve enter
line
line "Exit ISPF"{search for /===>/ at 1 1 0 30}+
{rowcol &{srow} &{rexx +
colnum = &{scol}+5;+
exit colnum;}} eraseeof=x enter
line "Here Kitty!"{terminate}
95
96
ISPF/SCLM V4 Guide
97
All necessary maintenance has been installed. Consult your Install Bucket
for a list of PTFs. If you don't have an Install Bucket, contact the IBM
Support Center and get one.
Be careful when applying any maintenance (PTFs) that has a release number
of 104 (or X04 for future releases). This release number applies to the Client
Server portion of ISPF. When maintenance is applied for this component, it
is likely that new code must be downloaded to the workstation. It is
expected that in the future there will be SMP Hold Data recommending this
action. (OW03965 contains no such warning!)
Consult your Program Directory under the section Installation Requirements
and Considerations for further information regarding software requirements.
In particular, have a look at the section titled Software Requirements, ISPF
Client/Server Implementation.
98
ISPF/SCLM V4 Guide
The VTAM definitions in information APAR II07895 are adequate, but there is
more than one way to define an APPC connection. Definition of each
communication workstation as an SNA type 2.1 node supporting at least one
independent LU, that can be associated with the #INTER logmode table entry, is
necessary. The APPC/MVS ASCH component need not be active if you code the
ACB for the APPC LU as NOSCHED.
The workstation code can be downloaded using any binary download program.
The communications program on your workstation must be configured as an
SAN type 2.1 node supporting LU6.2 communications.
Here are a couple of hints that you might want to keep in mind as you go:
If you lose your place or become lost/confused while updating the TCP/IP
configuration panels, simply double click on the top left corner to close the
panel, and then choose to DISCARD your changes. You can then restart
configuration with the original settings.
The following guidelines only detail the minimum necessary for ISPF 4.1 to
install and run as designed. It is quite possible that your site would like
more features enabled, or a more robust definition, than what is detailed in
the following.
It is assumed that TCP/IP has already been successfully installed (though not
necessarily configured) on your system.
You'll need the following information from your TCP/IP person. (There might
also be further information that your network specialist would like you to
include):
The IP address of your workstation
Subnet mask
A ROUTER IP address (i.e. a path for TCP/IP to use to get to the MVS host
from your machine.)
It is recommended that you have IBM TCP/IP for OS2 V2 Installation and
Administration handy before starting. Keep in mind that the TCP/IP configuration
panels have field sensitive help. This means you can place the cursor on any
field you're unsure about, and then click on help for more detailed information.
1. Open your TCP/IP folder and double click on the TCP/IP Configuration icon.
You should now be looking at something similar to Figure 78 on page 100.
Place your IP Address and your Subnet Mask in the appropriate fields. Make
sure that you have a check mark for Enable Lan Adapter 0. Try using field
sensitive help for the Maximum Transmission Unit field. (For a token ring
connection, you should be using an MTU size of 4400.)
99
2. Click on the tab for Routing. You'll have to configure at least one Router IP
Address entry here in order for you to successfully establish your TCP/IP
connection. This router definition provides your workstation with a route (or
path) outward from your machine (and towards the MVS host computer
running ISPF). In the illustrated case, a default entry for a node one hop
away is used. This node has its own path for getting to the host. Using a
default entry here is the simplest, because you only have to hop to a node
that already knows how to get to the host (ISPF) system. See Figure 79 on
page 101.
3. Now select the tab for the Autostart configuration page. You'll find an
example of this panel in Figure 80 on page 101. The FTP (File Transfer
Protocol) daemon must be running for the download of the workstation code.
There are only two options you have to enable. Place a check mark in the
Enable this machine to start the inetd super server. As well, place a check
mark next to Enable others to access your files by using FTP. Don't forget to
select start FTP using inetd.
Note
The FTP daemon (server) is necessary only for the download of the GUI
code to your workstation. Since it is possible to do this download in
other ways (see 4.3, Downloading GUI to Your Workstation on
page 110), it is not critical that you have FTP activated.
4. Next select the tab for Services. On this panel, we have to set up a
TRUSERS file entry that will be used later by ISPF for the download of the
workstation portion of ISPF GUI. Click the mouse in the section called
TRUSERS (FTP Access Protection). Then select ADD. You should see a
panel like that in Figure 81 on page 102. Fill in a Username and a Password
in the appropriate boxes. You'll have to refer to these later, so don't forget
them. Curiously, to exit this panel, you must click on EDIT.
100
ISPF/SCLM V4 Guide
101
Note
The TRUSERS file (short for TRusted USERS) should be found in your
main TCP/IP directory under the subdirectory \ETC. The name of the file
is simply TRUSERS with no suffix. Saving the panel in Figure 81 on
page 102 will result in a TRUSERS file that looks like:
Under Directory access for write, enter the drive letter and directory name
where you would like to place the ISPF client portion of the code. If you
would like to have FTP create the directory on your hard drive, then you
must also have write access to the directory above the ISPF directory. In the
illustrated case, this would be E:\. In addition, read access is required if you
intend to let FTP create the directory. You'll have to refer to this directory
later too.
Warning
Be certain that there are no checkmarks in either Deny read access to
directories listed or Deny write access to directories listed. A checkmark
in either of these boxes will give other FTP users access to everything on
your machine except for the directory names listed!
5. Double click on the top left corner of the TCP/IP Configuration Window to
save your changes, and you're done.
6. Proceed to the section 4.3, Downloading GUI to Your Workstation on
page 110.
102
ISPF/SCLM V4 Guide
103
Note
It is recommended that you go to an OS/2 session and make copies of
your CM/2 configuration files before proceeding with any modifications.
To find these files, go to the directory listed on your Open Configuration
panel. (Usually this is C:\CMLIB.) List all files in this directory with a
prefix equal to what you see in the Configuration field. You should see
files with suffixes of NDF, CFG and others. Make a copy of all files you
see listed. In the event of a problem while making changes, you can
always go back to using your original configuration. If the files you
copied are kept in \CMLIB, they will be visible as an option the next time
you invoke CM/2 setup.
3. You should now be looking at the panel in Figure 82. For Workstation
Connection Type, select Token-ring or other LAN types and for Feature or
Application, choose APPC APIs. Click on Configure to proceed.
4. The next panel you see is illustrated in Figure 83 on page 105. Select SNA
local node characteristics, and click on Configure.
5. The panel your are now viewing (see Figure 84 on page 105) will already
have the Network ID and Local node (i.e. control point) name filled in with
values. Click on Options, and you will then be viewing the Local Node
Options Panel. You must have a check mark beside Activate Attach
Manager at startup.
6. Click on OK to return to Figure 84 on page 105. If the Local node name
matches the LU name given to you by your network administrator, then you
do not have to do any further updates to this panel. Go to step 9 on
page 106.
104
ISPF/SCLM V4 Guide
7. If your LU name did NOT match the Local Node name in the previous step,
then return to the Communications Manager Profile List, and select SNA
features (Figure 83).
8. You should now be viewing the SNA Features List. Click the mouse on Local
LUs and select Create. You should now see the panel in Figure 85 on
page 106. Fill in your Local LU name and an alias. The LU name itself is
forced into capital letters, so I chose for my alias the same name in lower
case. The Independent LU pushbutton should be selected in the NAU
address box. In this example the independent LU name is the same as the
local node (control point) name.
105
9. Select OK when you are done, and start closing the layers of windows.
CM/2 will automatically check your configuration values as you exit. If you
receive a verification error (hopefully not), proceed to the step 10 on
page 106. If everything checks out OK, you will be asked if you would like to
dynamically update your SNA resources. Select Yes and you are done. Go
to 4.3, Downloading GUI to Your Workstation on page 110.
Note
After selecting to dynamically update your SNA resources, you may get a
dynamic update error. Select Show Log, and if you see
APN0711E: An error occurred while attempting to update the active
definition of the local LU....
then you must stop and restart communications manager before the
update can take affect.
10. If you have a configuration error, you'll be prompted with a pop-up panel
asking if you'd like to show the error log using FFST/2. Select Show Log.
The top most messages in the list will describe your problem. If the
message makes enough sense for you to take action, do so! Since this is
often not the case, you have two other choices: go back to your backup
configuration and try again, or call your local CM/2 guru and ask for
assistance.
Note
As of this writing, FFST/2 had a problem with eating the mouse pointer
when closing its window. To avoid this problem, place your mouse
outside of the FFST/2 window, and use ALT+F4 to close the application.
If you do lose your mouse, you can reopen FFST/2 by using CTL+ESC to
get your task list and follow the steps to open it again. Your mouse will
reappear when FFST/2 restarts.
106
ISPF/SCLM V4 Guide
It is assumed that TCP/IP has already been successfully installed (though not
necessarily configured) on your machine.
Please, get the following information from your TCP/IP person. (There might
also be further information that your network specialist would like you to
include):
The IP address of your workstation
Your subnet mask
A ROUTER IP address (that is, a path for TCP/IP to use to get to the MVS
host system from you machine.)
The type of token ring adapter used by your workstation
Configuring IBM TCP/IP for DOS 2.1.1 is very similar to configuring IBM TCP/IP
for OS/2. The interface is less friendly, but most users should be able to
configure it without too many difficulties. Follow these steps to configure:
1. The command for configuring DOS TCP/IP is custom. Try typing this
command at the C : \ > prompt. If the command doesn't work, there might be
a problem with your PATH statement. Look for a directory called
TCPDOS\BIN, and try executing the command from there.
2. The main customization panel looks like Figure 86. Pull-down the
CONFIGURE menu, and select the top item, NDIS Interfaces.
107
3. Now you should be looking at the panel shown in Figure 87 on page 108.
For ND0, enter you IP Address and Subnet Mask. By clicking on the small
down arrow in the Bound Adapter field, you can get a list of available
adapters. You may have to consult a site expert to determine which adapter
is compatable with yours. Make certain the your have an X in Enable
Interface, and you can click on OK to exit.
4. From the Configure menu, select Routing. You should be looking at the
panel as shown in Figure 88. Use the pull-down arrow to select a DEFAULT
Route Type. Enter the IP Address and the Metric count. Select OK when
you are done.
5. Select Auto-start from the Configure menu. The only item you want to
enable in this panel is TCP/IP. This differs from the OS/2 environment,
where FTP could be auto-started at boot time. Windows will hang when
invoked if FTP is already running. There is a small note about this in
Appendix F. Using TCP/IP for DOS with Microsoft Windows in the IBM
TCP/IP for DOS V2.1.1 Installation and Administration.)
You must manually start the FTP daemon after you have started windows
and before begining the download.
108
ISPF/SCLM V4 Guide
6. Next, select the FTP User List. Choose insert, and you should see something
similar to Figure 90. On this panel, we have to set up a TRUSERS file entry
that will be used later by ISPF for the download of the workstation portion of
ISPF GUI.
Note
The TRUSERS (short for TRusted USERS) file Should be found in your
main TCP/IP directory under the subdirectory \ETC. The name of the file
is simply TRUSERS with no suffix. Saving the panel in Figure 81 on
page 102 will result in a TRUSERS file that looks like:
109
Under Directories for Write Access, enter the drive letter and directory name
where you would like to place the ISPF client portion of the code. If you
would like to have FTP create the directory on your hard drive, then you
must also have write access to the directory above the ISPF directory. In the
illustrated case, this would be E:\. In addition, Read access is required if you
intend to let FTP create the directory. You have to refer to this directory
later too.
Warning
Be certain that there are no x-marks in either Deny read access to
directories listed or Deny write access to directories listed. An x-mark in
either of these boxes will give other FTP users access to everything on
your machine except for the directory names listed!
Select OK when your are done.
7. Finally, on the Configure Menu, select Windows You will be prompted with a
panel asking if you'd like a TCP/IP group added to the Windows program
manager. Select yes.
8. You should be back at the main customization panel. Select Exit - save
changes and you are done configuring TCP/IP.
9. Continue with 4.3, Downloading GUI to Your Workstation.
Note
If a WINSOCK.DLL file can be located in the default directory search order in
a DOS/Windows environment, then the ISPF workstation agent will assume
that a Winsock-compliant version of TCP/IP is to be used. If a different
vendor implemention such as Novell LAN WorkPlace for DOS that uses the
WLIBSOCK.DLL is to be used, the environement must be adjusted so that
WINSOCK.DLL cannot be located in the default directory search order.
110
ISPF/SCLM V4 Guide
2. Select the appropriate option (one with TCP/IP), and then press Enter. You
should now be looking at Figure 92. As of this writing, the Novell TCP/IP
environments did not allow FTP downloads. These options require a manual
download. The User and Password are those that you entered as in
Figure 81 on page 102 when configuring TCP/IP. Be careful of upper/lower
case errors on your password. The error message for an incorrect password
is simply:
530 Login Incorrect.
Note
The FTP daemon (FTPD or FTP server) must be running on the
workstation before starting the download. If you followed the instructions
correctly for configuring TCP/IP for OS/2, then FTPD will already be
running.
If you are using windows, you must start the FTP Server (found in the
TCP/IP Group folder) manually prior to the download.
111
3. Enter the directory name that you placed in the same panel, and select
Create directory to which files are to be copied if you have not already
created a target directory.
4. When all fields look correct, press Enter to begin the transaction.
5. Examine the FTP output to see if the file transfer was successful. Some FTP
errors can be very difficult to diagnose. If you are unable to successfully
download using FTP, go to 4.3.2, Alternative download Methods.
6. If you have successfully downloaded the code, proceed to 4.4, Starting the
Workstation Server.
Note
It is not necessary to have ISPFCS.EXE in the PATH statement, or the *.DLL
file in the LIBPATH statement if you execute from within its own directory.
If you do not see this window start-up, you should see some messages in your
OS/2 window. There is very little to go wrong at this stage. If the server did not
start, there are a few things you might want to check:
112
ISPF/SCLM V4 Guide
4. Fill in the drive letter, directory name and ISPFCS.EXE in the Path and file
name field.
5. You must also set the working directory to the same directory you have the
*.DLL file in. If you don't, ISPFCS.EXE will not be able to locate it.
(Alternatively, you could place the *.DLL in a directory already in the
113
LIBPATH, or you could edit CONFIG.SYS and add your directory to the
existing LIBPATH search argument.)
6. Select the tab for General, and enter the Title you would like to have under
the Icon.
7. Close the settings window. You should see the icon adopt the ISPF logo. It
should appear similar to Figure 77 on page 97. Try double clicking on the
icon to ensure that the server starts.
114
ISPF/SCLM V4 Guide
If you are not able to establish ISPF GUI, try the section 4.5.3, Troubleshooting
on page 115 for some hints.
Note
You cannot exit from this panel if you have selected Start GUI session.
You must either use the cancel command or else deselect the option
first.
3. Select Start GUI, and enter either your IP address or your APPC
NETWORK.LUNAME. The GUI Title will appear in the window title bar once
ISPF GUI is operating in GUI mode.
4. Press Enter and wait a few seconds for the connection to be established. If
you don't establish the connection, try the section 4.5.3, Troubleshooting
for some hints.
4.5.3 Troubleshooting
4.5.3.1 General
When an attempt is made to start ISPF in GUI mode (using either of the two
methods) and it fails, there is only one message issued. If you enter MSGID on
the command line after receiving this message, you should see the message
number, ISPO906. The text is as follows:
Cannot connect to the workstation. Ensure that the communications from MVS to
the workstation are functioning and that the correct level of the ISPF
Client/Server component is running on the workstation. Also, make sure that you
entered the correct machine address.
115
The workstation server code must be at the same maintenance level as the MVS
host C/S portion of the code. Try downloading a new copy of the workstation
software.
4.5.3.2 TCP/IP
If you can PING the MVS host with TCP/IP, then as far as ISPF is concerned you
have adequate connectivity. With TCP/IP in OS/2, you should be able to go to an
OS/2 session and type PING < h o s t IP address>. If that is successful, then you
can probably look elsewhere for your problem.
With IBM TCP/IP, if you want to verify your TCP/IP settings, type netstat -a at an
OS/2 prompt.
Again, with IBM TCP/IP, you can type netstat -s to verify that your server has
acquired a socket and is listening. The ISPF workstation server uses port 15063.
Just in case, try this command before starting the workstation server, and then
again after starting it. You should see 15063 change to connected on a new
socket.
Note
It is possible to enter another user's TCP/IP or APPC address when starting
GUI, and have ISPF GUI appear successfully on this user's screen.
(Provided, of course, that the other user has already started the workstation
server.) Since ISPF 4.1 provides no message saying GUI successful, your
attempt will appear to have failed, and your 3270 session will appear hung in
x-clock.
4.5.3.3 APPC
If your VTAM guru has seen the ATB050I message, and you're reasonably
certain that you've configured CM/2 correctly, then a likely place to look into is
the path from the MVS host to your workstation. Your problem could be one of
the can't get there from here variety. In particular, it be necessary to have
cross-domain resource definitions for the APPC/MVS base LU on intermediate
VTAM domains.
Cross-domain resource definitions may be required in any intermediate domains
in the SNA network, if the MVS host running ISPF and the LUs do not reside in
the same domain.
116
ISPF/SCLM V4 Guide
117
nested: if you use the Menu pull-down from Edit to View another member, when
you press F3 to exit, you are returned to your original Edit dialog.
Utilities are also conveniently accessed from a pull-down.
In Figure 96 on page 117, the Status area has been set to Calendar. By
changing a profile variable (see 2.6, Status Area on page 75), you can click on
any date to see a daily memo.
Line mode output will not disrupt your GUI session beyond this. It is highly
probable that this problem will be corrected in a future release.
118
ISPF/SCLM V4 Guide
Note that you can use the mouse to retrieve previous commands.
If you're testing this service, your best example would be to try to invoke the E
or EPM editors.
119
Unavailable pull-down menu choices are also affected by this. There is little
doubt this limitation will be addressed in a future release.
A second item to watch out for is when making a Global Color change. You will
not be able to view any of your color changes made on this panel unless you
have selected color control option Host colors for non-CUA attributes only.
The Colors pull-down menu can be found in option 0, Settings
120
ISPF/SCLM V4 Guide
ISPF GUI Applications is an near exact adaptation of IBM Document Number TR 29.1881, Writing GUI Applications with ISPF
Client/Server written by Scott McAllister and Bob Leah from PDF Development, North Carolina
Chapter 4. Graphical User Interface (GUI)
121
Figure 98. ISPF Settings Panel in 3270 Mode Displayed on a 327x Emulator
122
ISPF/SCLM V4 Guide
Figure 99. ISPF Settings Panel in GUI Mode Display Using ISPF C/S
or
GUI(LU:address).
123
id. = ''
id.BOB = '9.67.221.100'
id.SCOTT = '9.67.221.101'
id.MATT = '9.67.221.102'
/* List all userids and IP addresses here as shown in the */
/* three lines above
*/
parse arg ip_addr .
if ip_addr = '' then do
user_id = userid()
interpret 'ip_addr = id.'user_id
end
if ip_addr = '' then do
say 'Your user id is not mapped to an IP address.'
say 'You must specify an IP address.'
end
else do
'ISPSTART PANEL(XXX) NEWAPPL(YYY) GUI(IP:'ip_addr')'
end
It is important to note that ISPF in GUI can be initiated from a 3270 emulator or
from an NPT device. In the case of the latter, the display appears on the
workstation specified by the LU or IP address named.
When a session is in GUI mode, the ZGUI variable is set to the LU or IP address.
When a session is in 3270 mode, the ZGUI variable is blank.
124
ISPF/SCLM V4 Guide
value has been specified on the TITLE parameter, then the default title text is
the user ID from which the ISPSTART command was issued.
a window frame that has the system icon and max/min icons and is
resizable.
fixed
a window frame that has the system icon and a min icon and it is not
resizable.
dialog
a window frame that does not have the system icon or the max/min
icons; it is not, therefore, resizable, but can be minimized by the icon
in the upper left-hand corner.
The type of window frame appearing at the workstation can be controlled by the
FRAME parameter on the ISPSTART command. By specifying FRAME(STD),
FRAME(FIX), or FRAME(DLG), the frame can be set to standard, fixed, or dialog
respectively.
The frame may also be set when entering GUI mode from the Initiate GUI
Session panel from the GUI action bar on the Settings panel, as show in
Figure 100 on page 126.
In either case, there is no way to control window frames once the user has made
this selection.
Panels that appear after an ADDPOP always appear in dialog boxes.
125
Figure 100. Initiate GUI Session Panel Showing GUI Window Frame Option
126
ISPF/SCLM V4 Guide
ABSL
Action bar separator line - This attribute must be used to define the
separator line between the action bars and the client area of the
panel. Anything on this line will be ignored on the GUI display.
CEF
CH
CT
DT
EE
ET
FP
Field prompt - This attribute is normally used to mark the text and
ellipses that comprise an input field prompt.
LEF
List entry field - This attribute is normally used for table (TBDISPL)
input fields.
LI
List items - This attribute is normally used for table (TBDISPL) output
fields.
LID
List item description - This attribute type is not used by the DTL.
NEF
Normal entry field - This attribute is normally used for input fields that
are not selection fields or list entry fields. For example, any textual
input fields or a command line would typically be normal entry fields.
NT
Normal text - This attribute is normally used for free text on a panel.
The differences between descriptive text, normal text, and panel
instructions (PIN type) is up to the application developer.
PIN
127
PS
PT
Panel title - This attribute is normally used to mark the title of the
panel. This is not to be confused with the window title that appears in
the title bar.
RP
SAC
SI
SUC
VOI
WASL
WT
Using CUA attributes on panels, rather than simple color and highlighting
characteristics, allows ISPF to know what text on a panel portrays, not just its
physical characteristics.
The application developer should specify PADC(USER) on all entry fields. (Use
the padc=user attribute on the PANEL tag in DTL.) The field will have the CUA
default highlighting of USCORE, but will not have underscores in the input fields
when in GUI mode, as is the case when PADC(_) is specified. For the user on a
nonextended data stream 3270 terminal, the pad character can be changed from
N (null) to _ so that input fields appear underscored.
128
ISPF/SCLM V4 Guide
In order to do this, ISPF must process all )ABCINIT sections for all action bars
prior to the display of the panel. For this reason, the application developer
should not code a .RESP=ENTER in the )ABCINIT section. An application might
use this technique to not show a pull-down menu when an action bar is selected.
4.8.3.9 Mnemonics
Mnemonics are represented in GUI displays by an underscore character under a
character in an action bar or pull-down choice. When the ALT key and the
character with the underscore are pressed simultaneously, the action bar is
automatically selected, and the pull-down menu is displayed.
Mnemonics are supported in ISPF Version 4.1 for GUI mode only. An application
developer can define the mnemonics in DTL or in traditional ISPF panel
language.
In DTL, the mnemonics are automatically generated when compiled with the
Version 4.1 DTL Conversion Utility (ISPDTLC). ISPDTLC ensures that there are
no redundant mnemonics. An application developer can manually assign
mnemonics in DTL by specifying < m > before the character in the action bar or
pull-down choice text that is to be the mnemonic. For example, < a b > E < m > x i t
makes x the mnemonic for Exit. An application developer can specify < a b
m n e m g e n = n o > on the ab tag in order to prevent ISPF from generating
mnemonics. The default is to generate mnemonics ( < a b m n e m g e n = y e s > ) .
In traditional ISPF panel language, the mnemonics must be manually assigned.
This is done by specifying MNEM(n ) after the DESC keyword and value on the
)ABC or PDC statements. The character n indicates that the mnemonic is the nth
character in the description text.
129
Specifies that the short and long messages appear in a pop-up and
that they are modal.
NORESP
Specifies that the short and long messages appear in a pop-up and
that they are modeless.
LRESP
Specifies that only the long message appear in a pop-up and that it
be modal.
LNORESP
Specifies that only the long message appear in a pop-up and that it
be modeless.
130
ISPF/SCLM V4 Guide
Messages can also be defined using DTL. The < m s g > tag is used to define a
message. The msgtype parameter on the < m s g > tag defines the severity of
the message. The following is an example of the definition of two messages in
the ORDA00 message member.
<msgmbr name=orda00>
<msg suffix=0 location=modal>Your order is being processed.
<msg suffix-1 msgtype=warning>Your request for the engraving
option is not valid.
Please check your request, and correct it if necessary.
</msgmbr>
The msgtype parameter can be set to INFO, WARNING, ACTION, or CRITICAL.
These correspond to the .TYPE values of NOTIFY, WARNING, ACTION, and CRITICAL
respectively.
The location parameter specifies whether the message should appear in a
pop-up window or not. Valid values are:
MODAL
Specifies that the short and long messages appear in a pop-up and
that they are modal. This is equivalent to specifying .WINDOW=RESP
in an ISPF message member.
MODELESS Specifies that the short and long messages appear in a pop-up and
they are modeless. This is equivalent to specifying .WINDOW=NORESP
message member.
MODELESS(L) Specifies that only the long message appears in a pop-up and that
it is modeless. This is equivalent to specifying .WINDOW=LNORESP in
Specifies that neither the short nor the long message appears in a
pop-up. This is equivalent to not specifying the .WINDOW= parameter
in an ISPF message member.
A user can force long messages into pop-up windows even if the application did
not specify that they appear in pop-ups. This is done on the ISPF Settings panel
by selecting the Long messages in pop-ups option.
131
field. The application is then able to take a specific action based on that value.
This interaction is analogous to push buttons on a GUI display and, therefore, is
represented as such automatically by ISPF.
In order to define point-and-shoot fields in traditional ISPF panel language, three
steps must be taken:
1. The attribute of the field must be defined as a point-and-shoot field. This can
be done in two ways:
PAS(ON) is specified for input and output fields, or
TYPE(PS) is specified for protected text fields.
The name of the field on the panel that the statement controls. For
point-and-shoot input and output fields, a field name is specified. For
point-and-shoot text fields, ISPF generates a field name starting with the
characters ZPS. The xx characters are 00 if the field is in the )BODY section or
01 to 99 indicating the relative location of a scrollable area to the upper-left
corner of the panel scanning from left to right and top to bottom. The yyy
characters are the relative number of the point-and-shoot field within the panel
body or scrollable area.
VAR( variable )
The name of the variable to be set when the field named in this statement is
selected.
VAL( value )
The name of the variable to be set when the field named in this
statement is selected.
value
text
The < p s > tag is valid as part of the text of the following information tags:
CAUTION, DD, DDHD, DT DTHD, FIG, FIGCAP, H2, H3, H4, LI, LINES, LP, NOTE, NT, P, PD,
132
ISPF/SCLM V4 Guide
PT, WARNING, and XMP; and on the following panel tags: BOTINST, CHOICE, DTAFLD,
DTAFLDD, GRPHDR, LSTCOL, LSTGRP, SELFLD, and TOPINST.
4.8.3.13 Checkboxes
Multi-selection fields (slash entry fields) can be defined by the application
developer to automatically appear as checkboxes when displayed in GUI mode.
The prompt can even be changed dynamically to instruct the user to enter a
slash to select a field if in 3270 mode or select a checkbox if in GUI mode.
Using the traditional ISPF panel language, a single character input field can be
changed to a checkbox by specifying .ATTR(field_name)='CKBOX(ON)' in the )INIT
section of the panel. Alternately, an attribute can be specified with the
CKBOX(ON) value in conjunction with an input type (for example, CEF, NEF, or
INPUT) to make that attribute a checkbox. By testing the ZGUI variable in the
)INIT section, the application developer can define different prompt text for the
multi-selection fields as shown in the following example:
133
&ZSEL = TRANS(&ZQ
0,'PGM(ISPSTRT)
1,'PGM(ISPSTRT)
2,'PGM(ISPSTRT)
3,'PGM(ISPSTRT)
PARM(PGM(ISPISM))'
PARM(PGM(ISPBRO) PARM(ISRBRO01))'
PARM(ROUTE ED1)'
PARM(PANEL(ISRUTIL))'
ISPF/SCLM V4 Guide
SELECT WSCMD(<ws_command>)
where <ws_command> is any workstation command as it is entered at the
workstation, fully qualified or not.
Since the command is modelessly invoked, focus can be returned to the host
application at any time.
An interesting application of this function is on a selection menu. Adding
11,'WSCMD(WP)' to a selection menu makes option 11 seamlessly invoke
WordPerfect** from the host. The user does not need to know that the
application is a workstation application; it is just option 11.
The following is a portion of a panel definition that has a point-and-shoot field on
a selection panel that invokes WordPerfect at the workstation.
)ATTR
# TYPE(SAC)
! TYPE(NT)
$ TYPE(PS)
.
.
.
)BODY
.
.
.
# 0 $Settings
!Terminal and user parameters
# 1 $View
!Display source data or listings
# 2 $Edit
!Create or change source data
# 3 $Utilities
!Perform utility functions
.
.
.
#11 $WordPerfect !Workstation word processor
.
.
.
)PROC
.
.
.
&ZSEL = TRANS ( TRUNC (&ZCMD,'.')
0,'PGM(ISPISM)'
1,'PGM(ISRBRO) PARM(ISRBRO01)'
2,'PGM(ISREDIT) PARM(P,ISREDM01)'
3,'PANEL(ISRUTIL)'
.
.
.
11,'WSCMD(WP)'
Chapter 4. Graphical User Interface (GUI)
135
X,EXIT
' ',' '
*,'?' )
.
.
.
)PNTS
.
.
.
FIELD(ZPS01001)
FIELD(ZPS01002)
FIELD(ZPS01003)
.
.
.
FIELD(ZPS01012)
)END
VAR(ZCMD) VAL(0)
VAR(ZCMD) VAL(1)
VAR(ZCMD) VAL(2)
VAR(ZCMD) VAL(11)
/* REXX */
address 'ISPEXEC'
a=0; b=''; m=0; cp=0; sav_op='+'
'ADDPOP'
'SELECT PGM(ISPOPF) PARM(OFF)'
'SELECT PGM(ISPOPF) PARM(FKA NOPREFIX)
zero_divide = 'CALC001'
overflow
= 'CALC002'
opp = 0
mode = 'Dec'
do while key = 'X'
if (m = 0) then mtxt = 'Memory =' m
else mtxt = ''
136
ISPF/SCLM V4 Guide
/* init vars
*/
/* Place in dialog frame */
NOFUNC SUSPEND'
/* Set message constants */
/* init mode
/* loop until off hit
/* set memory display
*/
*/
*/
137
i = index(a,'.')
if i > 1 then a = substr(a,1,i-1)
if i = 1 then a = 0
b = d2x(a)
end
end
else
do
interpret 'A='||a sav_op 'x2d('||b||')'
sav_op = key
b = d2x(a)
end
opp = 1
end
when(index('.0123456789',key) = 0 & mode = 'Dec') then
do
/* digit & in decimal mode */
if length(b) > 15 then
do
'SETMSG MSG('overflow')'
end
else
do
if opp then b = key
else b = b||key
opp = 0
end
end
when(index('0123456789ABCDEF',key) = 0 & mode = 'Hex') then
do
/* digit & in hex mode
*/
if length(b) > 15 then
do
'SETMSG MSG('overflow')'
end
else
do
if opp then b = key
else b = b||key
opp = 0
end
end
when(key = '=' & mode = 'Dec') then /* = sign in decimal mode */
do
if sav_op = '/' then
do
if b = 0 then
do
b = 'Error'
'SETMSG MSG('zero_divide')'
end
else
do
a = a / b
sav_op = key
b = a
end
end
else
do
interpret 'A='||a sav_op b
138
ISPF/SCLM V4 Guide
sav_op = key
b = a
end
sav_op = '+'
a = 0
opp = 1
end
when(key = '=' & mode = 'Hex') then /* = sign in hex mode
do
if sav_op = '/' then
do
if b = 0 then
do
b = 'Error'
'SETMSG MSG('zero_divide')'
end
else
do
a = a / x2d(b)
sav_op = key
i = index(a,'.')
if i > 1 then a = substr(a,1,i-1)
if i = 1 then a = 0
b = d2x(a)
end
end
else
do
interpret 'A='||a sav_op 'x2d('||b||')'
sav_op = key
b = d2x(a)
end
sav_op = '+'
a = 0
opp = 1
end
when(key = 'MC') then
/* clear memory
do
m = 0
end
when(key = 'MR') then
/* recall memory
do
b = m
opp = 0
end
when(key = 'M-') then
do
/* subtract from memory
if mode = 'Dec' then m = m - b
else
do
n = x2d(m) - x2d(b)
m = d2x(n)
end
end
when(key = 'M+') then
/* add to memory
do
if mode = 'Dec' then m = m + b
else
do
*/
*/
*/
*/
*/
139
n = x2d(m) + x2d(b)
m = d2x(n)
end
end
when(key = 'Z') then
do
if cp = 0 then
b = ''
else
do
a = 0
b = ''
sav_op = '+'
opp = 0
end
end
otherwise nop
end
end
'REMPOP'
'SELECT PGM(ISPOPF) PARM(ON)'
'SELECT PGM(ISPOPF)'
exit 4
/* clear
*/
/* all clear
*/
/* remove pop-up
/* fka short
*/
*/
)PANEL KEYLIST(ISRSAB,ISR)
)ATTR DEFAULT([]?)
@ TYPE(PS)
$ TYPE(FP)
! TYPE(NEF) JUST(RIGHT) PADC(NULLS)
TYPE(VOI)
( TYPE(AB)
) TYPE(ABSL)
)ABC DESC('Modes')
PDC DESC('Decimal') UNAVAIL(ABD)
ACTION RUN(DEC)
PDC DESC('Hexadecimal')
ACTION RUN(HEX)
)ABCINIT
140
ISPF/SCLM V4 Guide
.ZVARS=CALCPDC
)BODY WINDOW(25,14) CMD()
$( Modes $
$
)-----------------------$
$
$
!B
$
$ Mode:MODE
$
$ @ 1 $@ 2 $@ 3 $ @ + $ $
$ @ 4 $@ 5 $@ 6 $ @ - $ $
$ @ 7 $@ 8 $@ 9 $ @ * $ $
$ @ 0 $@ . $@ = $ @ / $ $
$
$
$ @ C/CE $@ Off $ $
$
$
$ @M+ $@M- $@MR $ @MC $ $
$ MTXT
$
)INIT
.CURSOR = &ZPS00017
&ABD = '1'
&CP = 0
&ZWINTTL = 'Calculator Sample'
&ZENTKTXT = ' '
)REINIT
&KEY = ' '
REFRESH(*)
)PROC
IF (&ZCMD='DEC')
&MODE = 'Dec'
&KEY = 'MD'
&ZCMD = ' '
IF (&ZCMD='HEX')
&MODE = 'Hex'
&KEY = 'MH'
&ZCMD = ' '
)PNTS
FIELD(ZPS00001) VAR(KEY) VAL(1)
FIELD(ZPS00002) VAR(KEY) VAL(2)
FIELD(ZPS00003) VAR(KEY) VAL(3)
FIELD(ZPS00004) VAR(KEY) VAL('+')
FIELD(ZPS00005) VAR(KEY) VAL(4)
FIELD(ZPS00006) VAR(KEY) VAL(5)
FIELD(ZPS00007) VAR(KEY) VAL(6)
FIELD(ZPS00008) VAR(KEY) VAL('-')
FIELD(ZPS00009) VAR(KEY) VAL(7)
FIELD(ZPS00010) VAR(KEY) VAL(8)
FIELD(ZPS00011) VAR(KEY) VAL(9)
FIELD(ZPS00012) VAR(KEY) VAL('*')
FIELD(ZPS00013) VAR(KEY) VAL(0)
FIELD(ZPS00014) VAR(KEY) VAL('.')
FIELD(ZPS00015) VAR(KEY) VAL('=')
FIELD(ZPS00016) VAR(KEY) VAL('/')
FIELD(ZPS00017) VAR(KEY) VAL('Z')
FIELD(ZPS00018) VAR(KEY) VAL('X')
FIELD(ZPS00019) VAR(KEY) VAL('M+')
FIELD(ZPS00020) VAR(KEY) VAL('M-')
FIELD(ZPS00021) VAR(KEY) VAL('MR')
FIELD(ZPS00022) VAR(KEY) VAL('MC')
)END
141
)PANEL KEYLIST(ISRSAB,ISR)
)ATTR DEFAULT([]?)
@ TYPE(PS)
$ TYPE(FP)
! TYPE(NEF) JUST(RIGHT) PADC(NULLS)
TYPE(VOI)
( TYPE(AB)
) TYPE(ABSL)
)ABC DESC('Modes')
PDC DESC('Decimal')
ACTION RUN(DEC)
PDC DESC('Hexadecimal') UNAVAIL(ABH)
ACTION RUN(HEX)
)ABCINIT
.ZVARS=CALCPDC
)BODY WINDOW(25,16) CMD()
$( Modes $
$
)-----------------------$
$
$
!B
$
$ Mode:MODE
$
$ @ 1 $@ 2 $@ 3 $ @ + $ $
$ @ 4 $@ 5 $@ 6 $ @ - $ $
$ @ 7 $@ 8 $@ 9 $ @ * $ $
$ @ A $@ B $@ C $ @ / $ $
$ @ D $@ E $@ F $
$
$ @
0 $@ = $
$
$
$
$ @ C/CE $@ Off $ $
$
$
$ @M+ $@M- $@MR $ @MC $ $
$ MTXT
$
)INIT
.CURSOR = &ZPS00022
&ABH = 1
&CP = 0
&ZWINTTL = 'Calculator Sample'
142
ISPF/SCLM V4 Guide
VAL(1)
VAL(2)
VAL(3)
VAL('+')
VAL(4)
VAL(5)
VAL(6)
VAL('-')
VAL(7)
VAL(8)
VAL(9)
VAL('*')
VAL('A')
VAL('B')
VAL('C')
VAL('/')
VAL('D')
VAL('E')
VAL('F')
VAL(0)
VAL('=')
VAL('Z')
VAL('X')
VAL('M+')
VAL('M-')
VAL('MR')
VAL('MC')
143
<abc pdcvar=calcpdc>Modes
<pdc unavail=abd>Decimal
<action run=DEC>
<pdc>Hexadecimal
<action run=HEX>
</abc>
</ab>
<region dir=vert>
<dtafld datavar=b entwidth=22 pmtwidth=0 align=end usage=both padc=' '>
<dtafld datavar=mode entwidth=14 pmtwidth=5 usage=out>Mode:
</region>
<region dir=vert indent=2>
<info>
<p compact>&rbl;<ps var=key value=1>&rbl;1&rbl;</ps>&rbl;
<ps var=key value=2>&rbl;2&rbl;</ps>&rbl;
<ps var=key value=3>&rbl;3&rbl;</ps>&rbl;
<ps var=key value=+>&rbl;+&rbl;</ps>
</info>
<info>
<p compact>&rbl;<ps var=key value=4>&rbl;4&rbl;</ps>&rbl;
<ps var=key value=5>&rbl;5&rbl;</ps>&rbl;
<ps var=key value=6>&rbl;6&rbl;</ps>&rbl;
<ps var=key value=->&rbl;-&rbl;</ps>
</info>
<info>
<p compact>&rbl;<ps var=key value=7>&rbl;7&rbl;</ps>&rbl;
<ps var=key value=8>&rbl;8&rbl;</ps>&rbl;
<ps var=key value=9>&rbl;9&rbl;</ps>&rbl;
<ps var=key value=*>&rbl;*&rbl;</ps>
</info>
<info>
<p compact>&rbl;<ps var=key value=0>&rbl;0&rbl;</ps>&rbl;
<ps var=key value=.>&rbl;.&rbl;</ps>&rbl;
<ps var=key value==>&rbl;=&rbl;</ps>&rbl;
<ps var=key value=/>&rbl;/&rbl;</ps>
</info>
<divider>
<info>
<p compact>&rbl;<ps var=key value=Z>&rbl;&rbl;C/CE&rbl;&rbl;</ps>&rbl;
<ps var=key value=X>&rbl;&rbl;Off&rbl;&rbl;&rbl;</ps>
</info>
<divider>
<info>
<p compact>&rbl;<ps var=key value=M+>&rbl;M+</ps>&rbl;
<ps var=key value=M->&rbl;M-</ps>&rbl;
<ps var=key value=MR>&rbl;MR</ps>&rbl;
<ps var=key value=MC>&rbl;MC</ps>
</info>
<dtafld datavar=mtxt entwidth=14 usage=out>
</region>
<dtacol>
<source type=init>
.CURSOR = &ZPS00017
&ABD = '1'
&CP = 0
&ZWINTTL = 'Calculator Sample'
&ZENTKTXT = ' '
</source>
<source type=reinit>
144
ISPF/SCLM V4 Guide
145
146
ISPF/SCLM V4 Guide
147
Act. Bar
Effect of Setting
NO
NO
NO
YES
YES
NO
YES
YES
LOCALPRT
Contents of this field are appended as parameters on the ISPF PRINT
command.
ISPF uses TSO PRINTDS for the local print command. The contents of
the LOCALPRT field are appended to the PRINTDS command. The
default is NONUM. If LOCALPRT is set to blank, then local print via
PRINTDS is disabled. In ISPF settings, option 0, the Edit PRINTDS
Command option can be selected. Enabling this option allows users
to alter the PRINTDS command before it is submitted. The contents of
LOCALPRT can be overridden at this time.
ISRCNFIG allows an installation to override use of the TSO PRINTDS
command. If PRTCLIST is coded, the local print command will run the
named CLIST instead. Or, if PRTPGM has been coded, the local print
command will run the named program. When both PRTCLIST and
PRTPGM have been coded, the program will take precedence.
148
ISPF/SCLM V4 Guide
149
150
ISPF/SCLM V4 Guide
151
152
ISPF/SCLM V4 Guide
153
6.1.3 Project
A project in SCLM is a collection of partitioned data sets with one or more high
level qualifiers formed to a common project name. This collection of partitioned
data sets is often referred to as the project database. A project is said to be
under SCLM control if there is a project.PROJDEFS.LOAD data set containing a
load module whose name equals the project name. The existence of at least
one VSAM file is essential for SCLM to keep (accounting) information about its
objects.
154
ISPF/SCLM V4 Guide
6.1.8 Build
To Build an object means to apply the member associated language. Thus, to
build a member that has COBOL as its language, SCLM compiles the member
producing an object module. The SCLM build is smart enough to know
whether or not a component needs to be reprocessed during a build, thus
preventing unnecessary processing. (Many organizations build on Architecture
Definitions only.)
6.1.9 Promote
Promote is the SCLM term for moving an object to the next higher level in the
hierarchy. Usually, during a promote the object's occurrence at the lower level
is purged. If a member is promoted, all the associated members are promoted
as well (physical promote).
6.1.11 Versioning
With ISPF/PDF Release 3.3, versioning was introduced for SCLM. Versioning can
be specified for all editable types on all levels in the hierarchy. In addition to a
copy of the last version of a member, the versioning PDS for a
versioning-enabled type holds incremental changes called deltas. A
member's version can be recreated by starting with the last version and
applying the appropriate deltas to that version. (Version 1 is the last version
with last delta applied to it; version 2 is the last version with last delta and
delta 1 applied to it, and so forth). With versioning, when a member is
promoted, all the associated members are promoted as well. An ISPF/PDF
panel interface is available to retrieve the various versions.
155
156
ISPF/SCLM V4 Guide
Special thanks are due for their contributions to Bruno Bickel, Dan Douglas, Dr. Walther Fitz, Frank Gerz, Dietmar Krick, Mike
Petersen, and Mike Ramsey.
157
158
ISPF/SCLM V4 Guide
Data set ispf...SISPSAMP contains the SCLM sample, consisting of FLM01* and
FLM02* parts.
Fill in from ispf...SISPSAMP
Table 5. JCL and Definitions of SCLM Sample Project
Member
What it does?
FLM01ASM
FLM01PLI
FLM01PRJ
FLM01SCR
FLM01370
FLM02ACT
FLM02ALL
FLM02PRJ
FLM02VER
FLM02VSM
159
What it does?
FLM01AP1
FLM01ARH
FLM01CMD
FLM01LD1
FLM01LD2
FLM01LD3
FLM01LD4
FLM01SB1
FLM01SB2
FLM01EQU
FLM01MD1
FLM01MD2
FLM01MD3
FLM01MD4
FLM01MD5
FLM01MD6
160
ISPF/SCLM V4 Guide
This concludes the introductory part, on which we will base discussion and
implemention of the following topics:
Project organization
Role management
Method management
Security
Version control
Configuration management
Change & problem tracking
Delivery
Communication
Verification
Meta project (administer SCLM through SCLM)
Optimization
Workstation connection.
161
162
ISPF/SCLM V4 Guide
PRODUCTION
P
R
O
DELIVERY
B
L
E
PRODUCTION
Hot Fix
M
(shadow)
I
/
C
H
Systemtest
Delta
A
I
N
G
E
Integration Development
M
A
N
Staging
G
E
M
Team
N
T
Development
PC
PC
R O L E S
source history
may be aquired
additionally
for defined
groups
and types
C
O
N
F
I
G
U
R
A
T
O
M R
A
N
A
G
E
R
D
E
V
E
L
O
P
E
R
this documentation will use the term sclm project (sclm = small letters) or
prjid.
163
(ex
(ex
(ex
(ex
SOURCE)
SOURCE)
SOURCE)
SOURCE)
Developer
SCLM Project
Manager
READ
CONTROL
UPDATE READ
CONTROL
Account File
VSAM Account File
UPDATE
CONTROL
UPDATE READ
CONTROL
Audit control
VSAM Audit File
UPDATE
CONTROL
Since ISPF/SCLM 3.4, more than one account data set is allowed. For a secure
project design, it is mandatory to organize account data sets to roles (see
Chapter 9, Role Management on page 173), and protect them accordingly.
164
ISPF/SCLM V4 Guide
Project control is primarily executed through project views. You may have as
many views as needed.
This, indeed, is a lot of data sets, and we may think of a means to combine some
of these in order to reduce their number.
165
prjid1
prod
qa
developer
prjid2
prod Two projects, each with its
own set of data sets
qa
Quality Assurance Function
developer
This makes a lot of sense because now a project is an entity all by itself. For
reasons of simplicity we will not discuss the account data file nor the
hierarchical levels at the moment.
prod prod
qa
qa
developer
developer
166
ISPF/SCLM V4 Guide
prjid1
prjid2
prod
prod
qa
qa
developer
developer
It's easy to see that all prjid1-prod data is shared by prjid2 and vice versa. This
sharing can include editing and/or building. In this example, setup I advise
sharing for building only.
prjid1
prjid2
prjid3 (global code prj)
c o m m o n
prod
prod
qa
qa
qa
developer
developer
developer
167
prjid2
prjid3
c o m m o n
prod
prod
qa
qa
qa
developer
developer
developer
qa
qa
uid1 uid2
uid1 uid2
168
ISPF/SCLM V4 Guide
qa
qa
D01 D02
D01 D03
uid1
uid2
NOTE:
One group per user:
- secure lock mechanism
- private interactive test environment
RACF permits userids to development group
Figure 114. Private Level - User IDs not Defined in Project View
169
: SCLM41
Alternate - FLM
: HASINGH . . . TEAM
. . . INTE
. . . TEST
. SOURCE
.
(Blank or pattern for member selection
SCLM 4.1 library utility may select the whole hierarchy, and allows us to edit and
drawdown parts. Parts may additionally be selected and ranked, and nonaccount
record parts may be suppressed by selecting AM.
Option 10.3.1 with Select Data Set A M and Edit Selection
Account
-------PROD
PROD
PROD
PROD
PROD
PROD
PROD
Chg Date
-------94/07/22
94/07/22
94/07/22
94/07/22
94/07/22
94/07/22
94/07/22
Chg Time
-------13:09:00
13:09:00
13:09:00
13:09:00
13:09:00
13:09:00
13:09:00
Language
-------ASMH
ASMH
PLIO
ASMH
ASMH
ASMH
ASMH
Bld Map
------PROD
PROD
PROD
PROD
PROD
170
ISPF/SCLM V4 Guide
Member
Status
-------- ----------FLM01AP
FLM01AP1
FLM01ARH
FLM01CMD
FLM01LD1
FLM01LD2
FLM01LD3
FLM01LD4
FLM01SB1
FLM01SB2
Account
-------INTE
PROD
PROD
PROD
PROD
PROD
PROD
PROD
PROD
PROD
Chg Date
-------94/07/22
94/07/22
94/07/22
94/07/22
94/07/22
94/07/22
94/07/22
94/07/22
94/07/22
94/07/22
Chg Time
-------13:04:00
12:34:00
12:34:00
12:58:00
12:34:00
12:34:00
12:34:00
12:34:00
12:34:00
12:34:00
Row 1 to 1
Scroll ==
Language
-------ARCHDEF
ARCHDEF
ARCHDEF
ARCHDEF
ARCHDEF
ARCHDEF
ARCHDEF
ARCHDEF
ARCHDEF
ARCHDEF
Auth
---FLM3
FLM3
FLM3
FLM3
FLM3
FLM3
FLM3
FLM3
FLM3
FLM3
? ___
(for example 5 key groups)
Name of levels
8.1.8 Implementation
Later in this discussion (see Chapter 18, Meta Project on page 221), we will
manage our project creating/manipulating parts using SCLM. In preparation, let
us now split up prjid.PROJDEFS.SOURCE into its different types, such as:
prjid.PROJDEFS.PROJECTS
(Project views)
prjid.PROJDEFS.METHODS
(Language definitions)
prjid.PROJDEFS.JCL
(Job control)
prjid.PROJDEFS.REXX
(REXX programs)
etc.
171
*********************************************************************
TITLE '*** SCLM Sample Project - Our Prototype
***'
*
*
* ==> prjid must be same for all views of enterprise project*
*
*
(for example SCLM41)
*
prjid
FLMABEG
*
**************************************************************
*
* DEFINE THE Authorization Groups
*
*
*
+ keep it simple, although delimit subprojects *
*
*************!************************************************
*
v
PRJAC
FLMAGRP AC=(FLM)
-- ONE AC for all prjviews of
*
ONE sclm subproject.
*
**************************************************************
*
* DEFINE THE Groups
*
*
*
+ freeze promote (returns RC=4 = ok)
*
*****************!********************************************
*
v
PROD
FLMGROUP KEY=Y,AC=,
TEST
FLMGROUP KEY=Y,PROMOTE=PROD,AC=,
STG2
FLMGROUP KEY=N,PROMOTE=TEST,AC=(PRJAC)
INTE
FLMGROUP KEY=Y,PROMOTE=STG2,AC=(PRJAC)
STG1
FLMGROUP KEY=N,PROMOTE=INTE,AC=(PRJAC)
TEAM
FLMGROUP KEY=Y,PROMOTE=STG1,AC=(PRJAC)
uid1
FLMGROUP KEY=Y,PROMOTE=TEAM,AC=(PRJAC,T)
uid2
FLMGROUP KEY=Y,PROMOTE=TEAM,AC=(PRJAC,T)
*
*
**************************************************************
*
* DEFINE General Parameters AND PROD level
*
*
**************************************************************
FLMCNTRL
C
ACCT=SCLM41.PROD.ACCTFILE
C
,DSNAME=@@FLMPRJ.@@FLMGRP.@@FLMTYP
C
,MAXVIO=5000
C
,MAXLINE=75
C
,OPTOVER=Y
*
*
**************************************************************
*
* DEFINE Language Definitions
*
*
**************************************************************
COPY FLM@ARCD
ARCHDEF
COPY FLM@BOOK
BOOK
COPY FLM@ASMH
ASMH
COPY FLM@COB2
COB2
COPY FLM@L370
L370
FLMAEND
172
ISPF/SCLM V4 Guide
Interactive
Batch
High
Low
Unnecessary code
None
High
Quality prediction
YES
NO
QA preparation
YES
NO
YES
Low
High
Low
YES
NO
Satisfaction/motivation
High
Low
Maintenance
Low
High
Reusability
High
Low
YES
NO
YES
NO
YES
NO
173
In Figure 107 on page 163 a roleplay is sketched. The more important roles can
be defined as:
9.1.1.2 SW Developer
develop and test (debug) in their private group (development level).
SW developers share their results (which may also be partially ready) with their
team members by promoting to a team group (TEAM level).
9.1.1.4 SW Manager
Examine developer promoted parts and integrate those into components, before
they promote for further examination and system integration. SW managers may
not be allowed to edit, says the SCLM project manager
9.1.1.5 SW Configurators
Examine SW manager promoted parts and integrate those into systems, before
they promote to production. SW configurators may not be allowed to edit, says
the SCLM project manager
To fully implement these roles, a minimum hierarchy of four key and two non-key
groups is needed, whereas the non-key staging groups might be also designed
as key.
Partitioned data sets and their applicable account data sets should be clustered
by role for better:
Security
Backup/restore
Delivery
SCLM Edit - Agreement
Edit only possible on lowest level of prjview
A C = , disallows edit, and freezes promote
A C = , results in Assembler R C = 4 = o k at assembly
174
ISPF/SCLM V4 Guide
Define Roleplay
Now define the roles in *your* enterprise.
Role
Role
Role
More
SW Developer
SW Manager
SW Configurator
Roles?
Impact?
Y/N
Y/N
Y/N
Y/N
?
?
?
?
___
___
___
___ Which? _____________________________
____________________________________
175
View
Edit
Utilities
Build
Promote
Command
Exit
SCLM Project
Project .
Alternate
Group . .
Control Information:
. . . SCLM41
(Project high-level qualifier)
. . . FLM
(Project definition: defaults to project)
. . . HASINGH (Defaults to TSO prefix)
View
Role
Meta Project
#SCLM
sclm Sample
FLM
SW Developer with
TEST-Option Languages (*1)
FLM1
SW Developer with
PROD-Option Languages
FLM8
SW Manager
FLM9
SW Configurator
SW Developer with
TEST-Option Languages
SW Developer with
PROD-Option Languages
SW Manager
SW Configurator
(*1) SCLM 3.4 New Functions Usage Guide contains a discussion for the
implementation. The next release of SCLM (4.2) plans to provide translator
options per group.
Note: At this point in time, the prototypes contained on the enclosed diskette
might be helpful.
176
ISPF/SCLM V4 Guide
.....
<== (*3)
Note:
1. The account data set must change with a rolechange.
A promote cannot be executed due to A C = ,
2. Each role has it's own set of data sets
3. Languages in this view may contain TEST OPTION Parameters
177
FLMGROUP
FLMGROUP
FLMGROUP
FLMGROUP
FLMGROUP
FLMGROUP
FLMGROUP
.....
KEY=N,AC=(PRQAC),ALTC=BACKDB
KEY=N,AC=(PRQAC),PROMOTE=TWOBACK,ALTC=BACKDB
KEY=Y,AC=(PRQAC),PROMOTE=ONEBACK
KEY=Y,AC=(PRQAC),PROMOTE=PROD,ALTC=CFGDB
KEY=N,AC=(PRQAC),PROMOTE=TEST,ALTC=MGRDB
KEY=Y,AC=(PRQAC),PROMOTE=STG2,ALTC=MGRDB
<== (*1)
KEY=Y,AC=,PROMOTE=INTE,ALTC=MGRDB
Note:
1. INTE must be included being the last key group
2. DUMMY must be included for nonedit view ( A C = , )
178
ISPF/SCLM V4 Guide
COB2
COB2
)
)
FLM@ARCD
FLM$BOOK
FLM@ASMH
FLM$COB2
FLM@L370
ARCHDEF
BOOKMASTER with foils style
ASMH
COB2 with TEST Options
L370
then FLM8, FLM9, ... must have these present but the contents
can be different
Project views of one sclm project should only contain the needed
methods. For example, it does not make sense for a PL/1 only project to
know COBOL.
Methods are the heartbeat of configuration management. BUILD works its way
through an invoked package or part of it according to the parts associated
method.
Methods allow for TSO, REXX, CLIST, ISPF, etc. integration and, therefore, are
perfectly able to integrate all kinds of tools, for example a data dictionary tool.
Methods may be structured using COPY, and eventually macros. A sample can
be found in Chapter 24, Translator Building Blocks, #LANG, #MACLIB, ... on
page 273.
Copyright IBM Corp. 1994
179
180
ISPF/SCLM V4 Guide
ADDMEM('prjid.PROJDEFS.LOAD'/volser) UACC(NONE)
ADDMEM('prjid.PROJDEFS.LOAD'/volser) UACC(NONE)
PERMIT FLM
PERMIT FLM1
ADDSD
181
Account
-------INTE
PROD
PROD
PROD
PROD
PROD
PROD
PROD
PROD
PROD
Chg Date
-------94/07/22
94/07/22
94/07/22
94/07/22
94/07/22
94/07/22
94/07/22
94/07/22
94/07/22
94/07/22
Chg Time
-------13:04:00
12:34:00
12:34:00
12:58:00
12:34:00
12:34:00
12:34:00
12:34:00
12:34:00
12:34:00
Row 1 to 10
Scroll ===
Language
-------ARCHDEF
ARCHDEF
ARCHDEF
ARCHDEF
ARCHDEF
ARCHDEF
ARCHDEF
ARCHDEF
ARCHDEF
ARCHDEF
Authc
----FLM3
FLM3
FLM3
FLM3
FLM3
FLM3
FLM3
FLM3
FLM3
FLM3
182
ISPF/SCLM V4 Guide
183
C
C
C
C
C
C
C
C
C
C
184
ISPF/SCLM V4 Guide
FORBACK This is
KEY=N back
THRBACK This is
KEY=N back
TWOBACK This is
KEY=N back
ONEBACK This is
KEY=N back
RELEASE This is
KEY=Y
TEST This is
KEY=Y release
DEV2
DEV1
KEY=Y
KEY=Y
185
RELEASE This is the current production level code
KEY=Y
back
back
back
back
DEV2
DEV1
KEY=Y
KEY=Y
Figure 116. Backup Scenario - Inversed Archive Hierarchy to Restore Last Release
186
ISPF/SCLM V4 Guide
RELEASE
KEY=Y
.
. . . . . . . . .
. . . . . . . . .
.
TEST
KEY=Y
DEV2
DEV1
KEY=Y
KEY=Y
BACKUP
KEY=N
.
. . . .
Figure 117. Backup Scenario - Alternate Project Definition for Backup Group
C
C
C
C
C
187
PROJECT
VIEW
USERID
GROUP
TYPE
PART
SCOPE
MODE
TOGROUP
JUNK
OPTIONS
FNAME
PROJECT
VIEW
USERID
GROUP
TYPE
PART
SCOPE
MODE
TOGROUP
=
=
=
=
=
=
=
=
=
=
=
LINES =
RETCD =
twoprc =
BASELINE=
BASETYPE=
BASELN1B=
BASELN2B=
','
','
','
','
','
','
','
','
','
.
,
,
,
,
,
,
,
,
,
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
PROJECT
Alternate View
user ID
Group
Type
Member Name
Scope
Mode
Promote to Group
Throw away
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
strip(OPTIONS)
strip(FNAME)
strip(PROJECT)
strip(VIEW)
strip(USERID)
strip(GROUP)
strip(TYPE)
strip(PART)
strip(SCOPE)
strip(MODE)
strip(TOGROUP)
0
0
0
'PROD'
'ARCHDEF'
'ONEBACK'
'TWOBACK'
/*
/*
/*
/*
/*
*/
*/
*/
*/
*/
188
ISPF/SCLM V4 Guide
OUT1MSG:
queue 'Message:'
queue 'MET#P11: Type 'TYPE' of 'BASELN1B' did not contain 'PART
queue 'MET#P11: Type 'TYPE' of 'BASELINE' did not contain 'PART
queue 'MET#P11: ===> FLMCMD was probably not available'
queue ' '
return
/******************************************************************/
/* OUT1ERR: write error
*/
/******************************************************************/
OUT1ERR:
queue ' '
queue 'MET#P11: PROMOTE/ARCHIVE to 'TARGET' was'
queue 'not accomplished, PROMOTE has ended with RC=' targetrc
queue ' '
return
/******************************************************************/
/* OUT1TOP: write top lines
*/
/******************************************************************/
OUT1TOP:
queue '**'center('*',75,'*')'**'
queue '**'center(' ',75,'*')'**'
queue '**'center('Software Configuration and Library',
'Manager',75)'**'
queue '**'center(' ',75)'**'
queue '**'center('PROMOTE VERIFICATION EXIT REPORT',75)'**'
queue '**'center(' ',75)'**'
OUTLINE = 'Option:
'OPTIONS
OUTLINE = left(OUTLINE,28)
queue '**'center(OUTLINE,75)'**'
OUTLINE = 'Function:
'FNAME
OUTLINE = left(OUTLINE,28)
queue '**'center(OUTLINE,75)'**'
OUTLINE = 'PROJECT:
'PROJECT
OUTLINE = left(OUTLINE,28)
queue '**'center(OUTLINE,75)'**'
OUTLINE = 'Alternate View 'VIEW
OUTLINE = left(OUTLINE,28)
queue '**'center(OUTLINE,75)'**'
OUTLINE = 'USERID:
'USERID
OUTLINE = left(OUTLINE,28)
queue '**'center(OUTLINE,75)'**'
OUTLINE = 'GROUP:
'GROUP
OUTLINE = left(OUTLINE,28)
queue '**'center(OUTLINE,75)'**'
OUTLINE = 'TYPE:
'TYPE
OUTLINE = left(OUTLINE,28)
queue '**'center(OUTLINE,75)'**'
OUTLINE = 'Object:
'PART
OUTLINE = left(OUTLINE,28)
queue '**'center(OUTLINE,75)'**'
OUTLINE = 'SCOPE:
'SCOPE
OUTLINE = left(OUTLINE,28)
queue '**'center(OUTLINE,75)'**'
OUTLINE = 'MODE:
'MODE
OUTLINE = left(OUTLINE,28)
queue '**'center(OUTLINE,75)'**'
OUTLINE = 'TO-GROUP:
'TOGROUP
OUTLINE = left(OUTLINE,28)
queue '**'center(OUTLINE,75)'**'
queue '**'center(' ',75)'**'
/******************************************************************/
/* OUT1BOT: write bottom lines
*/
/******************************************************************/
OUT1BOT:
queue '**'center('*',75,'*')'**'
queue '**'center(' ',75)'**'
queue '**'center('Software Configuration and Library',
'Manager',75)'**'
queue '**'center(' ',75)'**'
queue '**'center('End: PROMOTE VERIFICATION EXIT REPORT',75)'**'
queue '**'center(' ',75)'**'
/*OUTLINE = date('0')' 'time() */
queue '**'center(OUTLINE,75)'**'
queue '**'center(' ',75)'**'
queue '**'center('*',75,'*')'**'
return
189
View
Under assessment
Valid but unassigned
Under development
Promoted to integration
Promoted to test
Released to be filed
Installed at production (site x)
Closed
There is much information associated with Problem Trouble Reports (PTR) and
Change Requests (CR) which has nothing to do with SCLM, such as who
190
ISPF/SCLM V4 Guide
reported the problem, what supporting data exists, the estimated cost to
implement, what CCB approved the assignment to RELEASE N, and much more.
So what might SCLM users care about?
Well, what PTR/CRs are at stage ready to go to integration. But you have that
with SCLM change codes and the change code report.
Maybe you would like to make sure that all PTR/CRs being promoted have been
approved for this release. This requirement could fall either way; either the
change management system interrogates SCLM and builds a report, or SCLM
interrogates the change management system and fails a condition promote if
validation fails.
Since I preapprove all promotion (pull-up, not push-up), the former is how we did
it. This is still not required by SCLM, except (perhaps) to supply the change
codes (at a level) in tabular format that is suitable for import into a relational
database.
Pulling fixes shouldn't require a change management package since you have
change codes associated with members. What would a change management
package add?
In conclusion, the change management system is far more interested in SCLM's
data than SCLM is interested in the change management system's data. I am
willing to entertain the counter arguments.
Production
Stage Prod
Systemtest
Stage QA2
Integration
Stage QA
Team
Development
191
A non-key group is put additionally into the project to stage the promote process
and allow for a safer roleplay.
The developer stages the parts in a staging group, where the quality assurance
function can pull-up whenever it is convenient, thereby also taking parts away
from the developer.
192
ISPF/SCLM V4 Guide
ERROR
NONE
Description
ISPF/PDF examines if the edited part is member of a SCLM project. If
so, a warning will be given: Edited Member Possibly Part of an SCLM
Project.
Editing and saving of this member, however, will be honored.
ISPF/PDF examines if the edited part is member of a SCLM project. If
so, an error message will be provided: Member of SCLM Data Sets
May Not Be Editted.
Editing with the ISPF/PDF editor is now prohibited.
There is no checking at all. SCLM controlled data sets may be edited
outside SCLM.
Note: ISPF uses the following criteria to decide whether a member is part of an
SCLM project:
The existence of data set ' projid.PROJDEFS.LOAD', whereby projid is the hlq
of the data set where the edited part will reside.
The member was last saved by SCLM.
193
194
ISPF/SCLM V4 Guide
195
12.1.1.1 Fix
Solution 1 - Fix Dominates and will be Integrated to PROD
prjid1
prjid2 (sclm(FIX)-Project)
prod
prod
AC=,
AC=FIX
qa
qa
AC=FIX
AC=x
AC=x
AC=FIX
done without communicating QA.
prjid1
prjid2
(prjid2 = Fix Project)
prod
prod
AC=,
AC=,
qa
qa - PRE-Concatenated
AC=x
AC=FIX
developer
developer
AC=x
AC=FIX
prjid1
prjid2
prod
prod
AC=,
AC=,
apply
AC=FIX
qa
qa
AC=FIX
AC=x
developer
developer
AC=x
AC=FIX
196
ISPF/SCLM V4 Guide
This solution is basically the same as the previous one. It opens, however, the
possibility to pull back a fix in a running system (for example CICS) by deleting
the loadmodule (with Option 10.3.1) in the group APPLY.
Yet another QA view may allow a promote to PROD after a trial period.
Implement Fix View in sclm-FIX-project
TITLE '*** Fixes not to be included to PROD ***'
prjid
FLMABEG
*
PRJAC
FLMAGRP AC=(FIX)
-- sclm-project FIX
-*
....
*
* ==> Developer's view of fix project
*
* -----------------------------------* | dfix ==> QFIX ==> APLY / PROD
* -----------------------------------*
*********************************************************************
PROD
FLMGROUP KEY=Y,AC=,
APLY
FLMGROUP KEY=N,PROMOTE=PROD,ALTC=xxxDB,AC=(PRJAC)
QFIX
FLMGROUP KEY=Y,PROMOTE=APLY,ALTC=xxxDB,AC=(PRJAC)
dev1fix FLMGROUP KEY=Y,PROMOTE=QFIX,ALTC=DEVDB,AC=(PRJAC)
dummy
FLMGROUP KEY=Y,PROMOTE=QFIX,ALTC=DEVDB,AC=(PRJAC)
....
This would also allow for a combination to set up another view to allow promote
to PROD, which could be done by QA after a certain test period through the
concatenation.
D
E
V
E
L
O
P
Concatenate Fixes
prjid1 to n
Baseline Rx.1
PROD
PROD
/ AC=,
AC=GLO
/ AC=,
Rx.2
prjid3(GLO)
prjid2(FIX)
TEST
Maintenance Rx.2
APLY
APLY
NK
NK AC=FIX
AC=prjid qa
Rx.3
/ AC=,
INTE
qa-GLOBAL
qa-fix
AC=prjid
AC=GLO
AC=FIX
-MENT
TEAM
LO-
CALS dev
developer
dev-GLOBAL
dev-fix
AC=GLO
AC=FIX
197
Maintenance Consist of changes executed against the system test release, here
Rx.2, and will be developed / promoted through distinct project views
of an sclm project, for example FLM6.
Development Represents the next release, here Rx.3, of development.
Locals
The whole setup requires role management and separated account files:
A SW developer can promote up to group TEAM (or STG1 respectively).
A SW teamleader may promote to group INTE directly.
A SW manager can promote up to group INTE, but may not edit.
A SW configurator can promote up to group TEST and eventually PROD, but
may not edit.
prjid1
prod
Baseline Rx.1
prod
Rx.2
test
Rx.3
inte
AC=x3
AC=,
team
AC=x
developer
teamleader (develops archdefs for development)
AC=x
AC=x3
1. The sclm project leader (team leader) writes all architecture definitions (or is
responsible for it), provided the members exist, and promotes them through
a different promotion path in a promote container, for example:
***********************************************************************
* FLM01AP
*
* TEAMLEADER
* - CREATES PLANS (ARCHDEFS)
* - PROMOTES INTO DEVELOPER'S HIERARCHY
*
***********************************************************************
*
PROM
FLM01AP1 ARCHDEF N * APPLICATION FLM01AP1
PROM
FLM01SB1 ARCHDEF N *
PROM
FLM01SB2 ARCHDEF N * <== (*1)
198
ISPF/SCLM V4 Guide
PROM
PROM
PROM
PROM
PROM
PROM
FLM01ARH
FLM01CMD
FLM01LD1
FLM01LD2
FLM01LD3
FLM01LD4
ARCHDEF
ARCHDEF
ARCHDEF
ARCHDEF
ARCHDEF
ARCHDEF
Promote input:
Project . . .
From group .
Type . . . .
Member . . .
: SCLM41
. HASINGH
. ARCHDEF
.
Alternate - FLM
Your Solution
No. of releases
Levels
Roles
?
?
?
?
_________________________________________
___
________ ________ ________ ________ ________
________ ________ ________ ________ ________
FIX:
account-file-name d ?
account-file-name q ?
?
(version-file-name) ?
(version-pds-name ) ?
GLOBALs
account-file-name
?
?
(version-file-name) ?
(version-pds-name ) ?
LOCALS:
account-file-name
_____________________
_____________________
_____________________
_____________________
_____________________
(sclm41.dfix.acctfile )
(sclm41.qfix.acctfile )
(sclm41.fix.versfile )
(@@FLMDSN.VERSION
)
_____________________ (sclm41.glob.acctfile )
_____________________
_____________________ (sclm41.glob.versfile )
_____________________ (@@FLMDSN.VERSION
)
? _____________________ (sclm41.team.acctfile)
? _____________________ (sclm41.inte.acctfile)
199
Group
Type
(i.e. PROD, FIX) (i.e. COBOL, REXX, ARCHDEF, SCRIPT)
________
________ ________ ________ ________ ________
________
________ ________ ________ ________ ________
________
________ ________ ________ ________ ________
12.2.1 Implementation
Implement Source Versioning
*********************************************************************
* ===> SW Configurator
*********************************************************************
FLMCNTRL ACCT=sclm41.prod.acctfile,
DSNAME=sclm41.@@FLMGRP.@@FLMTYP,
VERS=sclm41.prod.versfile,
VERPDS=@@FLMDSN.VERSION,
OPTOVER=Y
*
FLMATVER GROUP=PROD,TYPE=ARCHDEF,VERSION=YES
FLMATVER GROUP=PROD,TYPE=REXX,VERSION=YES
FLMATVER GROUP=PROD,TYPE=SOURCE,VERSION=YES
FLMATVER GROUP=PROD,TYPE=SCRIPT,VERSION=YES
200
ISPF/SCLM V4 Guide
C
C
C
C
201
202
ISPF/SCLM V4 Guide
203
to the client and part to the server. These problems present new challenges to
development teams that are being asked to deliver software products at faster
and faster rates. Configuration Management tools help with these problems by
providing an efficient application development environment that helps control
and manage application components, tracks feature and defect changes to those
components, and helps build applications for varied topologies.
Developers who are grappling with these issues of complexity have recognized
that process can help bring order to the chaos. The Software Engineering
Institute (SEI) at Carnegie Mellon University has defined a software process
maturity model. In this model, the ability to produce quality software is
measured on a scale of one to five. It is closely related to process
implementation and improvement. One recognized means of raising maturity
levels is through the successful deployment of good configuration management,
and especially through an enforced process for introducing change into your
system. Once you have defined processes and enforce their implementation, the
quality of your application is enhanced. In fact, only when a system provides a
process, is it possible to achieve standards such as ISO 9000.
CM tools also help provide cost-effective maintenance by providing the ability to
identify exactly what was included in each release of an application, to rebuild
the application at any level, track changes to each level, and ensure fixes are
carried forward to later releases of the application.
These are the issues from a developer's perspective. From a management
perspective, corporations today are recognizing that software is a valuable asset
that must be managed, tracked and controlled. They can no longer afford to let
programmers work in unstructured, chaotic environments.
204
ISPF/SCLM V4 Guide
205
13.9.2 Integrity
Having BUILT a part according to its associated language definition, it becomes
integral. This gives the SCLM project manager control of integrity by making the
language definitions available with the wanted skills for a given project. The
SCLM project manager represents an enterprise view of wants and needs which
may comfort and delimit developers. The SCLM project manager establishes the
integrity ceiling that developers are limited to.
13.9.3 Consistency
A part is consistent when present as an architecture definition and has been
BUILT integrally (successfully).
A PROMOTE can only happen for parts that are integral and consistent.
206
ISPF/SCLM V4 Guide
Subtime Purge
4. Implemented in language definitions at time
FUNCT=BUILD / VERIFY / COPY / PURGE
C
C
C
C
C
C
207
********************************************************************
* BUILD TRANSLATOR - TEST PARMETERS
********************************************************************
FLMTRNSL CALLNAM='BUILD-PARAMETER',
FUNCTN=BUILD,
COMPILE=IRXJCL,
DSNAME=SCLM41.PRODJEFS.REXX,
VERSION=1.0,
GOODRC=4,
PORDER=1,
PDSDATA=Y,
OPTIONS='BUILDX1 PARAMETERTEST:
@@FLMPRJ @@FLMGRP @@FLMTYP @@FLMMBR @@FLMUID
@@FLMFDT @@FLMFTM @@FLMONM @@FLMINF @@FLMINC
@@FLMALT @@FLMDBQ @@FLMCUN @@FLMSRF'
C
C
C
C
C
C
C
C
C
C
C
208
ISPF/SCLM V4 Guide
C
C
C
C
C
C
209
210
ISPF/SCLM V4 Guide
211
212
ISPF/SCLM V4 Guide
PRODUCTION
or archive
Data Set
PROD (shadow)
1.
1.
PROD (shadow)
Delta version
2.
FIX 2.
TEST
copy H prom.ex
prx I copy
APLY
INTE
QA
developer
developer
213
214
ISPF/SCLM V4 Guide
X
X
X
X
X
X
X
X
X
X
X
/***********************REXX****************************************/
/* PROMOTE-PURGE-EXIT
*/
/* Send Notification to QA after completion of promote
*/
/* A QUICK AND DIRTY SAMPLE
*/
/*******************************************************************/
trace 'o'
Parse upper arg OPTIONS '/'
FNAME ',' ,
PROJECT ','
VIEW
','
USERID ','
FRGROUP ','
TYPE
','
PART
','
SCOPE
','
MODE
','
TOGROUP ','
JUNK
.
OPTIONS
FNAME
PROJECT
VIEW
USERID
FRGROUP
TYPE
PART
SCOPE
MODE
TOGROUP
SAY
SAY
SAY
SAY
SAY
=
=
=
=
=
=
=
=
=
=
=
,
,
,
,
,
,
,
,
,
,
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
strip(OPTIONS)
strip(FNAME)
strip(PROJECT)
strip(VIEW)
strip(USERID)
strip(FRGROUP)
strip(TYPE)
strip(PART)
strip(SCOPE)
strip(MODE)
strip(TOGROUP)
' '
'***********************'
'PART(S) 'PART' PROMOTED FROM 'FRGROUP' TO 'TOGROUP
'***********************'
' '
Implement Notification
1. Code above REXX example and insert in prjid.PROJDEFS.REXX.
2. prjid.PROJDEFS.REXX must be SYSPROC concatenated.
3. Test your coding by promoting a part.
215
That way our SCLM batch jobs tell us if they worked or not -- we don't have to
read the job output unless there was a problem.
*/
/***************************************************************
* Initialization
***************************************************************/
Call ISPF '0 CONTROL ERRORS RETURN'
msg. = ''
msg.0 = 0
/***************************************************************
* Examine
***************************************************************/
If togroup = '' Then Do
Say 'false amount of parameters'
Say ' '
Say 'Parameter must be:
'
Say ' Project Prj-Definition Group Type Member Togroup '
Call Exit 0
End
If togroup = group Then Do
Say 'Startgroup and targetgroup are identical '
Call Exit 8
216
ISPF/SCLM V4 Guide
End
/***************************************************************
* DO
***************************************************************/
/* Projectdefinition for ADPS interface in profile pool
ddk0wsap = prjdef
Call ISPF '0 VPUT (DDK0WSAP) PROFILE'
/* get accounting Information from actual group
sclmrc=DDKSCLM('DBACCT',project,group,type,member, ,
'FGR','ACCT','LIST','MSG')
If sclmrc = 0 Then
Call SCLMMSG
*/
*/
/* Predecessor-Date Startgroup*/
*/
If rtc = 4 Then Do
Say member 'was not found in' togroup 'or higher'
Call Exit 8
End
changet = Substr(acctt, 28, 12)
/* Change-Date */
217
*=============================================================*/
TSO:
Arg tsomax tsocmd
msgmode = MSG('OFF')
Address TSO tsocmd
tsorc = rc
msgmode = MSG('ON')
If tsomax = '*' Then
If tsorc<0 | tsorc > tsomax Then Do
Say 'Error at TSO Command' tsocmd 'Rc='tsorc
Call EXIT '11'
End
rc = tsorc
Return rc
/*==============================================================
* EXIT - exit here with retcode and optional error message
* Parm: rc <msgid>
*=============================================================*/
EXIT:
Parse Arg exitrc .
Exit exitrc
218
ISPF/SCLM V4 Guide
219
220
ISPF/SCLM V4 Guide
X
X
X
X
X
X
X
X
X
X
X
X
X
X
221
By now we have created and changed a lot of project parts in this workshop and
you will agree that these parts should be controlled and versioned by SCLM.
This will be our next task.
Implement Meta Project
1. Create a meta project definition (as exemplified before).
2. Compile and link-edit that view. After successful completion, you will be
able to control (migrate / edit / build / promote) all your projects under
this meta project.
Project ..... prjid
Alternate ... #sclm
Group ....... userid
= HIGH-LEVEL PLAN
= ADMINISTRATOR'S WINDOW
= SCLM CONTROL PROJECT
SCLM41
#SCLM
ARCHDEF
ARCHDEF
* COMPILE/LINK METAPROJECT
* COMPILE/LINK SCLMISP
JCL
JCL
JCL
JCL
N
N
N
N
*
*
*
*
REXX
REXX
REXX
REXX
REXX
N
N
N
N
N
*
*
*
*
*
CHANGE-CODE-VERIFICATION-EXIT (REXX)
PROM-VER-EXT ==> ONEBACK / TWOBACK
NOTIFICATION EXAMPLE
SAVE SERVICE INVOCATION
AS IS - MAKES XREF FROM METAPROJECT
222
ISPF/SCLM V4 Guide
6. And when added to the project documentation, the index will contain a cross
reference of parts, for example:
F
FLM##PD.PROJECTS
MET#ALT1.PROJECTS
MET#ALT2.PROJECTS
MET#ALT3.PROJECTS
MET#ALT4.PROJECTS
MET#CNT1.PROJECTS
MET#GRP1.PROJECTS
MET#LDTS.PROJECTS
MET#TYPS.PROJECTS
M
MET#ALT1.PROJECTS
contained in FLM##PD.PROJECTS
contained in FLM1#PD.PROJECTS
contained in FLM2#PD.PROJECTS
contained in FLM3#PD.PROJECTS
contained in FLM8#PD.PROJECTS
223
/*
:index. statements per "Project"
*/
/*
*/
/* Return Codes: 0 - Done
*/
/*
4 */
/*
8 - Error allocprefix file XREF
*/
/*
12 - Input error, bad "type" found
*/
/*
16 */
/*
*/
/*trace ?I
*/
/*******************************************************************/
Signal on Syntax
Signal on Halt
Signal on Novalue
Trace off
input_name = "'HASINGH.XREF.LIST'" /* Unloaded 3.1 List
*/
output_name = "'SCLM41.PROJDEFS.SCRIPT(MET#XDOK)'" /* Output to Meta */
bm.
= ''
/* Reset bookmaster vars.
*/
number.
= 0
/* All counts to zero
*/
cproj
= ''
/* No project yet
*/
cgrp
= ''
/* No group yet
*/
csrc
= ''
/* Reset SOURCE name
*/
ctype
= ''
/* No type yet
*/
cmbr
= ''
/* No member yet
*/
xdate
= ''
/* Date of xref list
*/
xtime
= ''
/* Time of xref list
*/
Call bm_hdr
/* Bookmaster header lines */
Address TSO "ALLOC F(XREF) DA("input_name") SHR REUSE"
If RC > 0 Then
/* Error in allocating
*/
Call ExitRtn 8 'Error allocating XREF.LIST, RC='RC
'EXECIO * DISKR XREF (STEM iline. FINIS)' /* Read XREF file
*/
Say iline.0 'records from XREF'
Do I = 1 to iline.0
/* all lines
*/
iline.i = Substr(iline.i,2)
/* Remove control char
*/
end
/************************Input loop***************************** */
cr = 1
/* Start: first line input */
Do I = 1 by 1 while(cr < iline.0) /* until all lines done
*/
Call Find_new_type
/* Check for "TYPE:"
*/
Select
/* "Type" to be processed
*/
When ctype = 'ARCHDEF' Then
/* ARCHDEF entry
*/
Call process_ARCH
When ctype = 'SOURCE' Then
/* SOURCE entry
*/
Call process_SOURCE
When ctype = 'REXX'
Then
/* REXX
entry
*/
Call process_REXX
When ctype = 'JCL'
Then
/* JCL
entry
*/
Call process_JCL
When ctype = 'LOAD'
Then
/* LOAD
entry
*/
Call process_LOAD
Otherwise nop
/* Call ExitRtn 12 "Unexpected Type found:" ctype */
End
/* Select Type
*/
End
/* Read lines
*/
/*******final processing******************************************/
Call bme_trailer
/* BookMaster trailer lines */
Say number.bkm 'BookMaster lines generated'
Address TSO "ALLOC F(BMOUT) DA("output_name") OLD REUSE"
"EXECIO * DISKW BMOUT (STEM BM. FINIS)" /* write records
*/
Address TSO "FREE F(BMOUT)"
Return 0
/* End of Main program
*/
/*******process ARCHDEF*******************************************/
process_ARCHDEF:
Call member_lines
/* process member list
*/
Do cr = cr to iline.0 until(w1 = 'PROJECT:')
Parse Upper Value iline.cr WITH w1 w2 w3 w4 w5 w6 w7 w8
End
Do cr = cr to iline.0 until(w3 = 'DATE:') /* next dataset
*/
Parse Upper Value iline.cr WITH w1 w2 w3 w4 w5 w6 w7 w8
If w2 = 'LOAD' Then Do
/* architecture line LOAD
*/
Call bme ':ih1.'cproj', Projekt' /* xxxxx, Projekt entry
*/
Call bme ':ih2.'w3'.LOAD'
/* mmmm.LOAD
entry
*/
Call bme ':ih1.'w3'.'w4
/* LOAD.mmmmm
entry
*/
cload = w3'.LOAD'
/* save current LOAD name
*/
End
If w1 = 'PROJECT:' Then Do
/* header line "project"
*/
cload = ''
/* reset LOAD name
*/
carch = w4'.ARCHDEF'
/* set ARCHDEF member name */
cmbr = w4
/* save member name
*/
End
If Substr(w2,1,4) = 'INCL' & Length(cmbr) > 1 ,
Then Do
/* architecture lines INCLx */
Call bme ':ih1.'w3'.'w4
/* mmmmm.ttttt
entry */
Call bme ':ih2.contained in 'carch /* "in" mmmmm.ARCHDEF entry */
224
ISPF/SCLM V4 Guide
225
Call Skip_header_lines
/* Skip header lines
Else
If Length(w1) > 1 Then Do
/* ignore one char names
Call bme ':ih1.'w1'.'ctype
/* member.type
entry
Call bme ':ih1.'ctype', Type' /* type header
Call bme ':ih2.'w1
/* member within type
End
End
End
Return
/* **************** Skip list headers ******************************
Skip_header_lines:
/* Skip any header line
done = 0
/* Loop control
Do cr = cr to iline.0 until(done=1) /* to last line of header
Parse Upper Value iline.cr WITH w1 w2 w3 w4 w5 w6 w7 w8
Say '*** Skip_h_l:' w1 w2 w3 w4 w5 w6 w7 w8 '***'
If w2 = '(HEX)' | w1 = 'COL' | ,
w3 = '(HEX)' Then Do
/* End of header lines
cr = cr +1
/* Skip current record
done = 1
/* end header, stop loop
End
End
Return
/* **************** find new type **********************************
Find_new_type:
/* Find new type
done = 0
/* loop control
Do cr = cr to iline.0 until(done=1) /*
Parse Upper Value iline.cr WITH w1 w2 w3 w4 w5 w6 w7 w8
If w1 = 'PROJECT:' & w3 = 'DATE:' Then Do
xdate = Strip(w4)
/* Save Xref date
If cproj <> '' & cproj <> Strip(w2) Then
Call bme "'.*..Index id=X##.The Structure of the Project '",
cproj "-" xdate xtime
/* Index Call "old" proj
cproj = Strip(w2)
/* Save project name
If w2 <> cproj Then Do
/* new "Project"
Call bme ':ih1.Projects'
/* Projects
entry
Call bme ':ih2.'cproj
/* pppppp
entry
Call bme ':ih1.'cproj', Project' /* pppppp, Project entry
End
End
If w1 = 'GROUP:' & w3 ='TIME:' & w2 <> cgrp Then Do
cgrp = Strip(w2)
/* Save group name
xtime = Strip(w4)
/* Save xref time
Call bme '.* ***********Group 'cgrp cr '****************'
Call bme ':ih1.Group'
/* Group entry
Call bme ':ih2.'cgrp
/* gggggg
entry
Call bme ':ih1.'cgrp', Group' /* gggggg, Group
entry
End
If w1 = 'TYPE:' & w3 = 'PAGE:' Then Do /* "Type" header line
ctype = Strip(w2)
/* Save "type" name
Call bme '.* ************Type 'ctype cr' ***************'
Call bme ':ih1.Types'
/* Types entry
Call bme ':ih2.'ctype
/* tttttt
entry
Call bme ':ih1.'ctype', Type' /* tttttt, Type
entry
cr = cr + 1
/* Skip current record
done = 1
/* type found, stop loop
End
End
Return
/* **************** first output lines *****************************
bm_hdr:
/* Bookmaster header lines
Call bme '.* **************ended:' Date('E') Time('N')
Call bme '.*:h2.Analysis 'input_name ' - per',
xdate xtime
/* date & time footprint
Call bme '.* :p.'
Return
/* **************** final output************************************
bme_trailer:
/* final output lines
Call bme '.* :h2.Contents Callout' /* contents callout
Call bme '.*' number.bkm + 2 'BookMaster Inputlines generated.'
Call bme '.* :toc.'
/* contents callout
Call bme '.*..Index id=Xnn.The Structure of the Project 'cproj
Return
/* End of subroutine
/* **************** create output record ***************************
bme: Procedure expose bm. number.
/* create Bookmaster entry
i = number.bkm
/* number of lines generated
i = i + 1
/* increase by 1
bm.i = arg(1)
/* save argument
number.bkm = i
/* save number of lines
Return i
/* number of records queued
/* **************** error exit routine *****************************
ExitRtn:
/* Exit from a Pgm with a msg
Parse arg rc msg
/* Get return code and message
226
ISPF/SCLM V4 Guide
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
Manager
H PROMOTE
R
O SCLM
Exit
J
ADMIN
test
E
C
T
H PROMOTE
Exit
admin1 admin2 admin3
SCLM
PROD
ie. S9200
System
H
SCLM
HTEST ie. S9200T
System
metaprj
*
PRJAC
*
ARCHDEF
PROJECTS
METHODS
* ...
PRODDEFS
TESTDEFS
PRIVDEFS
*
X
X
X
*
PRIVDB FLMALTC ACCT=HASINGH.PRIVDEFS.ACCTFILE,
X
DSNAME=HASINGH.@@FLMGRP.@@FLMTYP
*
COPY FLM@ARCD
-- ARCHITECTURE DEF. LANGUAGE -COPY @ASMPRJ
-- ASMH PROJECT
COPY @ASMPRJT
-- ASMH TEST PROJECT
COPY @LKEDPRJ
-- 370 LINKAGE EDITOR FOR PROJECT DEF
* ...
etc.
FLMAEND
227
228
ISPF/SCLM V4 Guide
KEYREF=LIST
*---------------------------------------------------------------------*
- COPY PROJECT-DEFINITION TO CREATE TESTPROJECT
*---------------------------------------------------------------------*
FLMTRNSL
CALLNAM='CREATE TESTPROJECT',
C
FUNCTN=BUILD,
C
COMPILE=SCLMISP,
C
DSNAME=SCLM41.PROJDEFS.LOAD,
C
VERSION=1.0,
C
CALLMETH=LINK,
C
GOODRC=4,
C
PORDER=1,
C
OPTIONS='MET#B02 @@FLMMBR,NOTEST'
*......................................................................
*
DDNAME ALLOCATION:
*
(* PROJECT-INPUT *)
FLMALLOC
IOTYPE=S,DDNAME=MPROJ,KEYREF=SINC
*
(* CSECT-SOURCE-OUTPUT *)
FLMALLOC
IOTYPE=P,DDNAME=TPROJ,KEYREF=OUT1,RECNUM=1500,
C
DIRBLKS=5,DFLTTYP=PROJECTS,LANG=ASMPROJT,MEMBER=@@FLMONM
*
***====================================================================
*/
229
END
END
END
'ISPEXEC LMFREE DATAID('FROMID')'
'ISPEXEC LMFREE DATAID('TOID')'
EXIT HRC
230
ISPF/SCLM V4 Guide
231
PARSEMEM=@@FLMMBR,
STATINFO=@@FLMSTP,
LISTINFO=@@FLMLIS,
LISTSIZE=@@FLMSIZ,
LANG=A)
(* SOURCE
*)
FLMALLOC IOTYPE=A,DDNAME=SOURCE
FLMCPYLB @@FLMDSN(@@FLMMBR)
C
C
C
C
*
***********************************************************************
* BUILD TRANSLATOR(S):
***********************************************************************
*
FLMTRNSL
CALLNAM='ASM-MVS',
C
FUNCTN=BUILD,
C
COMPILE=IEV90,
C
VERSION=V1.0,
C
GOODRC=4,
C
PORDER=1,
C
OPTIONS=(NODECK,OBJECT,XREF(FULL))
*......................................................................
*
DDNAME ALLOCATION:
*FLMALLOC
IOTYPE=O,DDNAME=SYSGO,KEYREF=OBJ,RECNUM=10000
FLMALLOC IOTYPE=O,DDNAME=SYSLIN,KEYREF=OBJ,RECNUM=9000,DFLTTYP=OBJ
FLMALLOC
IOTYPE=I,DDNAME=SYSLIB,KEYREF=SINC
FLMCPYLB
EPO.ISPF410.SISPMACS
FLMCPYLB
SYS1.MACLIB
FLMALLOC
IOTYPE=S,DDNAME=SYSIN,KEYREF=SINC,RECNUM=9000
FLMALLOC
IOTYPE=W,DDNAME=SYSUT1,RECNUM=25000
FLMALLOC
IOTYPE=A,DDNAME=SYSTERM
FLMCPYLB
NULLFILE
FLMALLOC
IOTYPE=A,DDNAME=SYSPUNCH
FLMCPYLB
NULLFILE
FLMALLOC
IOTYPE=W,DDNAME=SYSPRINT,RECNUM=50000,
C
RECFM=FBA,LRECL=133,PRINT=Y
*
***********************************************************************
*
PACK COMPILELIST FOR MVS
***********************************************************************
*
FLMTRNSL
CALLNAM='PACK-LIST',
C
FUNCTN=BUILD,
C
COMPILE=SCLMISP,
C
DSNAME=SCLM41.PROJDEFS.LOAD,
C
CALLMETH=LINK,
C
VERSION=V1.0,
C
GOODRC=0,
C
PORDER=1,
C
OPTIONS='%MET#B01 SYSPRINT,,PACKLIST,,PACK'
*......................................................................
*
DDNAME ALLOCATION:
FLMALLOC
IOTYPE=U,DDNAME=SYSPRINT
FLMALLOC
IOTYPE=O,DDNAME=PACKLIST,RECNUM=50000,
C
RECFM=FBA,LRECL=133,
C
KEYREF=LIST
***-----------------------------------------------------------------***
232
ISPF/SCLM V4 Guide
FLMALLOC IOTYPE=A,DDNAME=SYSLIB
FLMCPYLB COBOL.V1R4M0.COB2LIB
FLMCPYLB VSPASCAL.VSPV1R2.SAMPRUN1
FLMCPYLB PLI.V2R3M0.SIBMBASE
FLMCPYLB PLI.V2R3M0.PLIBASE
FLMCPYLB VSPASCAL.VSPV1R2.SAMPMSG1
FLMCPYLB EPO.ISPF410.LOADLIB
*
FLMCPYLB SYS1.SISPLOAD
*
FLMCPYLB SUDB2C.DSN230.DSNLOAD
*
FLMCPYLB IMSESA.RESLIB
*
FLMCPYLB CICS.V3R3M0.SDFHLOAD
FLMCPYLB SYS1.LINKLIB
* 5
(* N/A *)
FLMALLOC IOTYPE=N
* 6
(* SYSPRINT *)
FLMALLOC IOTYPE=O,DDNAME=SYSPRINT,KEYREF=LMAP,RECFM=FBA,
C
LRECL=121,RECNUM=2500,PRINT=Y
* 7
(* N/A *)
FLMALLOC IOTYPE=N
* 8
(* N/A *)
(BINDER NO LONGER NEEDS SYSUT1 )
FLMALLOC IOTYPE=N
* 9
(* N/A *)
FLMALLOC IOTYPE=N
* 10
(* N/A *)
FLMALLOC IOTYPE=N
* 11
(* N/A *)
FLMALLOC IOTYPE=N
* 12
(* SYSTERM *)
FLMALLOC IOTYPE=A,DDNAME=SYSTERM
FLMCPYLB NULLFILE
*
***********************************************************************
*** SCLM USER EXIT
*PROMOTE SCLM PROJEKT-DEF*
***
"COPY LOADMODULE IN (PROJECT).PROJDEFS.LOAD VIA MET#P21"
***
- TO LEVEL TEST AS TESTPROJECT AND
***
- TO LEVEL PROD WHEN PRODUCTION PROJECT
***
- EVENTUALLY GENERATE FROM MEMBERNAME A DEVIATING NAME
***
FOR LOADMOD OF ALTERNATE PROJECT DEFINITION
***********************************************************************
*
FLMTRNSL
CALLNAM='PROMOTE-EXIT',
C
FUNCTN=COPY,
C
COMPILE=SCLMISP,
C
DSNAME=SCLM41.PROJDEFS.LOAD,
C
VERSION=1.0,
C
CALLMETH=LINK,
C
PDSDATA=Y,
C
GOODRC=4,
C
PORDER=1,
C
OPTIONS='%MET#P21 /@@FLMPRJ,@@FLMGRP,@@FLMTYP,@@FLMMBR, C
@@FLMTOG'
'/'
','
','
','
','
','
.
,
,
,
,
,
,
/*
/*
/*
/*
/*
/*
/*
233
OPTIONS = strip(OPTIONS)
PROJECT = strip(PROJECT)
GROUP = strip(GROUP)
TYPE
= strip(TYPE)
PART
= strip(PART)
TOGROUP = strip(TOGROUP)
flmdsn = PROJECT'.'GROUP'.'TYPE
/*********************************************************************/
trexx = 'MET#P21'
/* Set Program
*/
'ISPEXEC VGET (s92sclt1 s92sclt2 s92rexx) PROFILE'
IF rc = 0 THEN DO
/*
*/
IF (POS(trexx,s92rexx) > 0) | (s92rexx = '') THEN DO
IF s92sclt1 = 'TRACE X' THEN DO /*
*/
INTERPRET s92sclt2
/* Set Trace
*/
END
/*
*/
ELSE DO
/*
*/
INTERPRET s92sclt1
/* Set Trace
*/
END
/*
*/
END
/*
*/
END
/*
*/
/*********************************************************************/
ss = "MET#P21 - ***"
lmrc = 0
"ISPEXEC CONTROL ERRORS RETURN"
/* TSOMSG = MSG(OFF) */
/* ...Parse SCLM-DataSetName ....................................... */
/* ...(END, if not Typ = LOAD) ..................................... */
IF (TYPE = 'LOAD') THEN DO
lmrc = 0
SIGNAL END_EXIT
END
/* ---> exit */
....... */
................................ */
234
ISPF/SCLM V4 Guide
SELECT
WHEN (TOGROUP = 'PRODDEFS') THEN DO
IF ((testkz = 'T') | (namkonv = 'NO')) THEN DO
SAY ss'*******************************************************'
SAY ss' Promote TEST-Project to PROD. The loadmodule
***'
SAY ss' will NOT be copied to PROJDEFS.LOAD
***'
SAY ss'*******************************************************'
lmrc = 4
SIGNAL END_EXIT
/* ---> EXIT */
END
END
WHEN (TOGROUP = 'TESTDEFS') THEN DO
IF ((testkz = 'T') & (namkonv = 'YES')) THEN DO
SAY ss'***************************************************'
SAY ss' Promote PROD-Project to TEST. The Loadmodule ***'
SAY ss' will NOT be copied to PROJDEFS.LOAD
***'
SAY ss'***************************************************'
lmrc = 4
SIGNAL END_EXIT
/* ---> EXIT */
END
END
OTHERWISE DO
LMRC = 0
SIGNAL END_EXIT
/* ---> EXIT */
END
END
/* End SELECT check TOGROUP */
/*....Membername
/*....<PROJNAME>
/*...."PROMOTE"
/*...."DELETE"
/*...."MIGRATE"
/*...."FIX"
<LOADMBR> in TargetLib
fetch: ................
for primary Project Definition ....................
for alternate Definition with Suffix "F".........
for alternate Definition with Suffix "L".........
for alternate Definition with Suffix "M".........
for alternate Definition with Suffix "X".........
SELECT
WHEN (alterkz = 'F') THEN
loadmbr = 'PROMOTE'
END
WHEN (alterkz = 'L') THEN
loadmbr = 'DELETE'
END
WHEN (alterkz = 'M') THEN
loadmbr = 'MIGRATE'
END
WHEN (alterkz = 'X') THEN
loadmbr = 'FIX'
END
OTHERWISE DO
loadmbr = projNAME
END
END
*/
*/
*/
*/
*/
*/
DO
DO
DO
DO
235
236
ISPF/SCLM V4 Guide
SINC S9200
PROJDEF
* INPUT SOURCE
OUT1 S9200T PROJDEF
* OUTPUT TESTPROJECT
OBJ S9200
OBJMVS
* OUTPUT OBJECT-MODUL
LIST S9200
COMPMVS
* OUTPUT COMPILELIST
*-------------------------------------------------------- END S9200
*
*
*
*
237
238
ISPF/SCLM V4 Guide
A New_Way of coding.
Do
Select;
When New_Function_1()
then NOP; /* Failure_1 */
When New_Function_2()
then NOP;
When New_Function_3()
then NOP;
Otherwise; /* Success */
End;
End;
239
Note: There is no necessity to do so. MVS will allow 123 data sets to
concatenate. This normally suffices to concatenate all DEVELOPER data
sets. Good results were assembled at SCLM reference account
'Neckarwerke Esslingen, Germany'.
I would rather see a drawback in having many developers work through
one group, thereby opening the delimiting of parts to a shared group.
240
ISPF/SCLM V4 Guide
***********************************************************************
*
370/LINKAGE EDITOR LANGUAGE DEFINITION FOR SCLM
* ADD FLMCPYLB MACROS FOR EACH 'STATIC' INPUT DATA SET FOR LINKEDIT
* PROCESSING, TO THE 'SYSLIB' FLMALLOC MACRO.
* MAKE SURE PORDER=3. THE LINK EDIT USES DD NAME LIST SUBSTITUTION.
* CUSTOMIZE THE 'OPTIONS' AND 'GOODRC' FIELDS TO YOUR STANDARDS.
***********************************************************************
FLMLANGL
LANG=LOADX,CANEDIT=N,VERSION=L370V1.0
*
FLMTRNSL CALLNAM='IEFBR14',
C
FUNCTN=BUILD,
C
COMPILE=IEFBR14,
C
VERSION=1,
C
GOODRC=0,
C
PORDER=1
* 1
(* SYSLMOD *)
FLMALLOC IOTYPE=A,DDNAME=SYSLMOD
FLMCPYLB FTSOMR1.NONSCLM.DATA SET
*
FLMTRNSL CALLNAM='LKED/370 EXTERNAL',
C
FUNCTN=BUILD,
C
COMPILE=IEWL,
C
VERSION=F64,
C
GOODRC=0,
C
PORDER=3,
C
OPTIONS=(DCBS,MAP)
* 1
(* SYSLIN *)
FLMALLOC IOTYPE=S,KEYREF=INCL,RECFM=FB,LRECL=80,
C
RECNUM=20000,DDNAME=SYSLIN
* 2
(* LOAD MODULE NAME *)
FLMALLOC IOTYPE=L,KEYREF=LOAD
* 3
(* SYSLMOD *)
FLMALLOC IOTYPE=U,DDNAME=SYSLMOD
* 4
(* SYSLIB *)
FLMALLOC IOTYPE=A,DDNAME=SYSLIB
* ADD FLMCPYLB MACROS FOR EACH STATIC INPUT DATA SET
*
FLMCPYLB SYS2.PLI.PLIBASE
FLMCPYLB SYS1.LINKLIB
* 5
(* N/A *)
FLMALLOC IOTYPE=N
* 6
(* SYSPRINT *)
*
FLMALLOC IOTYPE=O,KEYREF=LMAP,RECFM=FBA,LRECL=121,
C
FLMALLOC IOTYPE=O,RECFM=FBA,LRECL=121,
C
RECNUM=2500,PRINT=Y,DDNAME=SYSPRINT
* 7
(* N/A *)
FLMALLOC IOTYPE=N
* 8
(* SYSUT1 *)
FLMALLOC IOTYPE=W,RECFM=U,LRECL=0,RECNUM=5000,
C
DDNAME=SYSUT1
* 9
(* N/A *)
FLMALLOC IOTYPE=N
* 10
(* N/A *)
FLMALLOC IOTYPE=N
* 11
(* N/A *)
FLMALLOC IOTYPE=N
* 12
(* SYSTERM *)
FLMALLOC IOTYPE=A,DDNAME=SYSTERM
FLMCPYLB NULLFILE
**********************************************************************
* CHANGE ACTIVITY:
*
* OY34273 - 900810 - CHANGED LRECL=6144 TO LRECL=0 FOR SYSLMOD AND *
*
SYSUT1. GT4045 - AAB
*
**********************************************************************
* 5665-402 (C) COPYRIGHT IBM CORP 1980, 1989
Figure 135. Sample SCLM Language with Output Directed To NON-SCLM Data Set
241
C
C
C
C
C
C
C
C
PROD
TEST
PRIV
Figure 138. Promote Exit MET#P12 for IEBCOPYing PSB and DBD
242
ISPF/SCLM V4 Guide
/*REXX *************************************************************/
/* 27.07.92 CREATED
*/
/* from SCLM data set sclm.userid.LOAD to SYS1.LIB2.xxxLIB bzw. */
/* from SCLM data set sclm.userid.LOAD to SYS1.LIB1.xxxLIB.
*/
/* (xxx = DBD or PSB)
*/
/*******************************************************************/
trace off
arg xxx @@FLMPRJ @@FLMGRP @@FLMTYP @@FLMMBR .
if substr(@@FLMGRP,5,4) = "PROD" then do
say xxx"-Module may not be promoted to PROD"
return 4
end
if @@FLMTYP = "LINK" then do
say "DBD-module should reside in a LOAD-Library"
return 8
end
if @@FLMTYP <> "LOAD" then return 0
say "MET#P12 started"
say "Project:" @@FLMPRJ "Gruppe:" @@FLMGRP "Type: @@FLMTYP,
"Member: " @@FLMMBR
say "Action: " XXX"-Promote"
FROMDSN = @@FLMPRJ"."@@FLMGRP"."@@FLMTYP
if substr(@@FLMGRP,5,4) = "PRIV" then
TODSN = "SYS1.LIB1."XXX"LIBT"
else
if @@FLMGRP = userid() then
TODSN = 'SYS1.LIB2."XXX"LIBT"
else
call ENDE 12
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* COPY member to target PDS
*/
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
say "Copy Member" @@FLMMBR "from" FROMDSN "to" TODSN
AMSG = msg("OFF")
"FREE FILE(FROMID)"
"FREE FILE(TOID)"
AMSG = msg("ON")
"ALLOC FILE(FROMID) DATA SET('"FROMDSN"') SHR"
if RC <> 0 then do
call ENDE 16
end
"ALLOC FILE(TOID) DATA SET('"TODSN"') OLD"
if RC <> 0 then do
"FREE FILE("FROMID")
call ENDE 20
end
"ALLOC FILE(SYSUT1) REUSE NEW UNIT(VIO) TRACKS SPACE(5 5)"
"ALLOC FILE(SYSUT2) REUSE NEW UNIT(VIO) TRACKS SPACE(5 5)"
"ALLOC FILE(SYSPRINT) DATA SET(*) OUTPUT REUSE"
"ALLOC FILE(SYSIN) REUSE NEW UNIT(VIO) TRACKS SPACE(1)",
"BLKSIZE(3120) LRECL(80) RECFM(F B)"
TEXT.0 = 2
TEXT.1 = " COPY INDD=((FROMID,R)),OUTDD=TOID"
TEXT.2 = " SELECT M="@@FLMMBR
"EXECIO * DISKW SYSIN (STEM TEXT. FINIS"
"CALL 'SYS1.LINKLIB(IEBCOPY)'"
"FREE FILE(FROMID)"
"FREE FILE(TOID)"
"FREE FILE(SYSUT1)"
"FREE FILE(SYSUT2)"
"FREE FILE(SYSPRINT)"
"FREE FILE(SYSIN)"
return RC
ENDE:
arg MSGNR .
if MSGNR = 0 then do
say "MET#P12-Exit ended normally"
exit MSGNR
end
say "MET#P12-Exit ended with error" MSGNR
exit MSGNR
243
(* OBJ *)
FLMALLOC
FLMCPYLB
(1)
IOTYPE=I, KEYREF=INCL,DDNAME=OBJ (2)
SERIES1.OBJ
(3)
Note:
1. IOTYPE=I - this means that it will use the data set referenced by
FLMCPYLB as input (this data set will be read from, not written to.).
2. KEYREF=INCL - this is telling SCLM to use the data set as part of the
hierarchy specified by DDNAME. In this case that DDNAME references
the object hierarchy.
3. FLMCPYLB - specifies which data set to copy from. The data set
SERIES.OBJ which I have listed here is a data set I created under
ISPF, and copied all object modules provided to me into this data set.
This solution does not track modules, it just uses bought modules to
complete the build.
The requirements for this parameter are discussed in section Size Parameter
Guidelines of MVS/DFP 3.3: Linkage Editor and Loader
244
ISPF/SCLM V4 Guide
245
translators for the source to move the listings along the levels you wanted the
listings for. Then when you promoted higher, the last PURGE would eliminate
the unwanted listings.
So if you had a hierarchy like:
RELEASE
|
SVT
|
FVT
|
EUT
+-------|-------+
DEV1
DEV2
DEV3
and you didn't want the listings after FVT, then you could have DEV1, DEV2,
DEV3, EUT and FVT LISTING data sets. You change the BUILD translator to use
them instead of KEYREF=OUTx data sets and provide COPY and PURGE
translators that are sensitive to the promotion level.
246
ISPF/SCLM V4 Guide
WEFP023 Section.
EXEC CICS XCTL PROGRAM(A-PROGRAM)
COMMAREA(CO-AREA) LENGTH(KCLKBPB) END-EXEC.
CALL 'DFHEI1' USING DFHEIV0 A-PROGRAM CO-AREA KCLKBPB.
WEFP023-99.
GOBACK.
WEFP023-EX. EXIT.
247
LKEDC
INCLUDE SYSLIB(DFHELII)
ENTRY CEESTART
MQQQQQQQ ARCHDEF
QQQQQQQ LOADCICS
QQQQQQQ LMAPCICS
CPRLK
QQQQQQQ ARCHDEF
P...... ARCHDEF
P...... ARCHDEF
* CC ARCHDEF F. OBJCICS
* LINKED C MODULES:
*
CC ARCHDEF
*
CC ARCHDEF
QQQQQQQ PRLKCICS
* SOURCE MODUL
* OUTPUT OBJECT MODUL
* OUTPUT COMPILER LISTING
*
*
*
248
ISPF/SCLM V4 Guide
FLMCPYLB
FLMCPYLB
* 5
FLMALLOC
* 6
FLMALLOC
EDC.SEDCBASE
IMSA.RESLIB
(* N/A *)
IOTYPE=N
(* SYSPRINT *)
IOTYPE=O,DDNAME=SYSPRINT,KEYREF=LMAP,LANG=LMAPC,
C
RECFM=FBA,LRECL=121,RECNUM=2500,PRINT=Y
* 7
(* N/A *)
FLMALLOC IOTYPE=N
* 8
(* N/A *)
FLMALLOC IOTYPE=N
* 9
(* N/A *)
FLMALLOC IOTYPE=N
* 10
(* N/A *)
FLMALLOC IOTYPE=N
* 11
(* N/A *)
FLMALLOC IOTYPE=N
* 12
(* SYSTERM *)
FLMALLOC IOTYPE=A,DDNAME=SYSTERM
FLMCPYLB NULLFILE
***=================================================================***
249
STATINFO=@@FLMSTP,
C
LISTINFO=@@FLMLIS,
C
LISTSIZE=@@FLMSIZ,
C
CONTIN=0,
C
EOLCOL=72)
*
(* SOURCE
*)
FLMALLOC IOTYPE=A,DDNAME=SOURCE
FLMCPYLB @@FLMPRJ.@@FLMGRP.@@FLMTYP(@@FLMMBR)
**********************************************************************
* BUILD TRANSLATORS:
*---------------------------------------------------------------------* (1)
- C/370 PREPROCESSOR COMPILER PHASE *---------------------------------------------------------------------FLMTRNSL CALLNAM='C370-PREPROC',
C
FUNCTN=BUILD,
C
COMPILE=EDCCOMP,
C
VERSION=1.0,
C
PARMKWD=PARM0,
C
GOODRC=3,
C
PORDER=3,
C
OPTIONS=(NOSEQ,PPONLY)
*......................................................................
*
DDNAME ALLOCATION USING DDNAME-SUBSTITUTION:
* 01
(* SYSIN * SOURCE INPUT *)
FLMALLOC IOTYPE=S,KEYREF=SINC,RECFM=VB,LRECL=136,
C
RECNUM=20000,DDNAME=XYSIN
* 02
(* SYSLIN * OBJECT MODUL *)
FLMALLOC IOTYPE=A,DDNAME=XYSLIN
FLMCPYLB NULLFILE
* 03
(* SYSMSGS * C-COMPILER MESSAGE DATA SET *)
FLMALLOC IOTYPE=A,DDNAME=SYSMSGS
FLMCPYLB EDC.SEDCMSGS(EDCMSGE)
* 04
(* SYSLIB * SYSTEM INCLUDE FILES = #INCLUDE <...> *)
FLMALLOC IOTYPE=A,DDNAME=SYSLIB
FLMCPYLB EDC.SEDCHDRS
FLMCPYLB CICS.SDFHC370
* 05
(* USERLIB * USER INCLUDE FILES = #INCLUDE "..." *)
FLMALLOC IOTYPE=I,DDNAME=USERLIB,KEYREF=SINC
* 06
(* SYSPRINT * COMPILER GENERATED ERROR MESSAGES *)
FLMALLOC IOTYPE=W,DDNAME=XYSPRINT,PRINT=Y
* 07
(* SYSCPRT * COMPILER OUTPUT LISTING *)
FLMALLOC IOTYPE=W,DDNAME=XYSCPRT,PRINT=Y
* 08
(* SYSPUNCH * OBJECT MODUL, NICHT BENOETIGT WEGEN PPONLY *)
FLMALLOC IOTYPE=A,DDNAME=XYSPUNCH
FLMCPYLB NULLFILE
* 09
(* SYSUT1 *)
FLMALLOC IOTYPE=W,RECFM=FB,LRECL=80,RECNUM=2000,DDNAME=XYSUT1
* 10
(* SYSUT4 *)
FLMALLOC IOTYPE=W,RECFM=FB,LRECL=80,RECNUM=2000,DDNAME=XYSUT4
* 11
(* SYSUT5 *)
FLMALLOC IOTYPE=W,RECFM=FB,LRECL=80,RECNUM=2000,DDNAME=XYSUT5
* 12
(* SYSUT6 *)
FLMALLOC IOTYPE=W,RECFM=FB,LRECL=80,RECNUM=2000,DDNAME=XYSUT6
* 13
(* SYSUT7 *)
FLMALLOC IOTYPE=W,RECFM=FB,LRECL=80,RECNUM=2000,DDNAME=XYSUT7
* 14
(* SYSUT8 *)
FLMALLOC IOTYPE=W,RECFM=FB,LRECL=80,RECNUM=2000,DDNAME=XYSUT8
* 15
(* SYSUT9 *)
FLMALLOC IOTYPE=W,RECFM=VB,LRECL=137,RECNUM=2000,DDNAME=XYSUT9
* 16
(* SYSUT10 * PASS C-PREPROCESSOR OUTPUT *)
*
(*
* TO CICS TRANSLATOR
*)
FLMALLOC IOTYPE=W,RECFM=FB,LRECL=80,RECNUM=50000,DDNAME=XYSUT10
*---------------------------------------------------------------------* (2)
- CICS TRANSLATOR *---------------------------------------------------------------------FLMTRNSL
CALLNAM='CICS TRANSLATE C',
C
FUNCTN=BUILD,
C
COMPILE=DFHEDP1$,
C
DSNAME=CICS.P.SDFHLOAD,
C
VERSION=V1.0,
C
PARMKWD=PARM9,
C
GOODRC=0,
C
PORDER=3,
C
OPTIONS=(MAR(1,72,0),NSEQ)
*......................................................................
*
DDNAME ALLOCATION USING DDNAME-SUBSTITUTION:
* 01
(* N/A *)
FLMALLOC IOTYPE=N
* 02
(* N/A *)
FLMALLOC IOTYPE=N
* 03
(* N/A *)
FLMALLOC IOTYPE=N
* 04
(* N/A *)
250
ISPF/SCLM V4 Guide
FLMALLOC IOTYPE=N
* 05
(* SYSIN * CICS TRANSLATOR INPUT PASSED FROM *)
*
(*
* C COMPILER PREPROCESSOR PHASE
*)
FLMALLOC IOTYPE=U,DDNAME=XYSUT10
* 06
(* SYSPRINT * CICS TRANSLATOR LISTING *)
FLMALLOC IOTYPE=W,DDNAME=YYSPRINT,RECFM=FBA,
C
LRECL=121,RECNUM=20000,PRINT=Y
* 07
(* SYSPUNCH * PASS CICS TRANSLATOR OUTPUT TO C-COMPILER *)
FLMALLOC IOTYPE=W,RECFM=FB,LRECL=80,RECNUM=50000,DDNAME=YYSPUNCH
*---------------------------------------------------------------------* (3)
- C/370 COMPILE *---------------------------------------------------------------------FLMTRNSL CALLNAM='C370-COMPILE',
C
FUNCTN=BUILD,
C
COMPILE=EDCCOMP,
C
VERSION=1.0,
C
PARMKWD=PARM1,
C
GOODRC=4,
C
PORDER=3,
C
OPTIONS=(AGG,CHE(ALL),EXP,FL(I),LANG(ANSI),LO,
C
MAR(1,72),MEM,OPT(1),RENT,NOSEQ,SHOW,SO,SS,XR)
*......................................................................
*
DDNAME ALLOCATION USING DDNAME-SUBSTITUTION:
* 01
(* SYSIN * COMPILER INPUT PASSED *)
*
(*
* FROM CICS TRANSLATOR *)
FLMALLOC IOTYPE=U,DDNAME=YYSPUNCH
* 02
(* SYSLIN * OBJECT MODUL, IF COMPILE WITH OPTION "OBJECT" *)
FLMALLOC IOTYPE=O,KEYREF=OBJ,RECFM=FB,LRECL=80,
C
RECNUM=50000,DDNAME=SYSLIN,DFLTTYP=OBJCICS,LANG=OBJCC
* 03
(* SYSMSGS * C-COMPILER MESSAGE DATA SET *)
FLMALLOC IOTYPE=A,DDNAME=SYSMSGS
FLMCPYLB EDC.SEDCMSGS(EDCMSGE)
* 04
(* SYSLIB * SYSTEM INCLUDE FILES = #INCLUDE <...> *)
FLMALLOC IOTYPE=A,DDNAME=SYSLIB
FLMCPYLB EDC.SEDCHDRS
FLMCPYLB CICS.SDFHC370
* 05
(* USERLIB * USER INCLUDE FILES, DONE IN PPONLY PHASE *)
FLMALLOC IOTYPE=A,DDNAME=USERLIB
FLMCPYLB NULLFILE
* 06
(* SYSPRINT * COMPILER GENERATED ERROR MESSAGES *)
FLMALLOC IOTYPE=W,DDNAME=SYSPRINT,PRINT=Y
* 07
(* SYSCPRT * COMPILER OUTPUT LISTING PASSED TO PACK TRL. *)
FLMALLOC IOTYPE=W,DDNAME=SYSCPRT,RECNUM=50000,
C
RECFM=VBA,LRECL=137,PRINT=Y
* 08
(* SYSPUNCH * OBJECT MODUL, IF COMPILE WITH OPTION "DECK" *)
FLMALLOC IOTYPE=A,DDNAME=SYSPUNCH
FLMCPYLB NULLFILE
* 09
(* SYSUT1 *)
FLMALLOC IOTYPE=W,RECFM=FB,LRECL=80,RECNUM=2000,DDNAME=SYSUT1
* 10
(* SYSUT4 *)
FLMALLOC IOTYPE=W,RECFM=FB,LRECL=80,RECNUM=2000,DDNAME=SYSUT4
* 11
(* SYSUT5 *)
FLMALLOC IOTYPE=W,RECFM=FB,LRECL=80,RECNUM=2000,DDNAME=SYSUT5
* 12
(* SYSUT6 *)
FLMALLOC IOTYPE=W,RECFM=FB,LRECL=80,RECNUM=2000,DDNAME=SYSUT6
* 13
(* SYSUT7 *)
FLMALLOC IOTYPE=W,RECFM=FB,LRECL=80,RECNUM=2000,DDNAME=SYSUT7
* 14
(* SYSUT8 *)
FLMALLOC IOTYPE=W,RECFM=FB,LRECL=80,RECNUM=2000,DDNAME=SYSUT8
* 15
(* SYSUT9 *)
FLMALLOC IOTYPE=W,RECFM=VB,LRECL=137,RECNUM=2000,DDNAME=SYSUT9
* 16
(* SYSUT10 *)
FLMALLOC IOTYPE=A,DDNAME=SYSUT10
FLMCPYLB NULLFILE
*---------------------------------------------------------------------*
- PACK COMPILER LISTING *---------------------------------------------------------------------FLMTRNSL
CALLNAM='PACK-LIST C',
C
FUNCTN=BUILD,
C
COMPILE=SCLMISP,
C
CALLMETH=LINK,
C
VERSION=V1.0,
C
GOODRC=0,
C
PORDER=1,
C
OPTIONS='%MET#B01 SYSCPRT,,PACKLIST,,PACK'
*
(REXX MET#B01 COPIES LISTING WITH LM-SERVICES )
*
(TO SCLM LIST DATA SET IN PACKED FORMAT.
)
*......................................................................
*
DDNAME ALLOCATION:
FLMALLOC
IOTYPE=U,DDNAME=SYSCPRT
FLMALLOC
IOTYPE=O,DDNAME=PACKLIST,KEYREF=LIST,RECNUM=50000,
C
RECFM=FBA,LRECL=133,DFLTTYP=COMPCICS,LANG=COMPCC
***====================================================================
251
252
ISPF/SCLM V4 Guide
253
MVS or VM
Libraries
SCLM (host)
Projects
MYPROJ1 or MYPROJ2.
If you are working with the MVS-SRPI connection, you now have the freedom to
choose the server alias names. These names are no longer restricted to
EHORUNS and EHOXFER. This allows you to setup SRPI profiles for all host
sessions you want to use, and switch between those sessions without the need
to bring down OS/2 communications manager.
254
ISPF/SCLM V4 Guide
SCLM can be used as a single point of access for the workstation code.
Application source, executables, and outputs can be protected and
backed-up using the host.
SCLM's configuration management can be used to ensure that the
application is current.
Library management and versioning capabilities can be used to track the
application parts through the hierarchy and retain backup versions.
255
256
ISPF/SCLM V4 Guide
Member
Status
-------- ----------$TYPES
FLM##PD
FLM1#PD
FLM3#PD
FLM8#PD
FLM9#PD
MET##PD
MET#ALT1
MET#ALT2
MET#ALT3
MET#ALT4
MET#ATV
MET#CNT1
MET#CNT2
Account
-------PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
SCLM41.PRIVDEFS.METHODS
Chg Date
-------94/07/22
94/07/22
94/07/22
94/07/22
94/07/22
94/07/22
94/07/28
94/07/22
94/07/22
94/07/22
94/07/22
94/07/22
94/07/22
94/08/02
Chg Time
-------14:31:00
16:36:00
16:41:00
16:41:00
16:42:00
16:50:00
13:35:00
11:51:00
11:52:00
11:50:00
16:52:00
09:23:00
09:27:00
16:22:00
- HIERARCHY VIEW -
Command ===>
Member
Status
-------- ----------@ASMHRC4
@ASMPRJ
@ASMPRJT
@CCP
@CIC1CPY
@COPY1
@LANG
@LKEDC
@LKEDPRJ
@PRLK
FLM$BOOK
FLM$COB2
FLM@ASMH
FLM@BOOK
FLM@L370
Account
-------PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
Chg Date
-------94/07/19
94/08/02
94/08/02
94/07/25
94/07/26
94/07/25
94/07/28
94/07/25
94/08/03
94/07/25
94/08/02
94/07/22
94/08/02
94/08/02
94/08/02
Chg Time
-------09:50:00
13:00:00
15:01:00
15:10:00
09:27:00
14:28:00
16:45:00
15:09:00
14:04:00
15:09:00
16:26:00
10:46:00
16:48:00
16:49:00
16:49:00
Row 1 to 14 of 26
Scroll ===> PAGE
Language
-------ASMH
ASMHRC4
ASMHRC4
ASMHRC4
ASMHRC4
ASMHRC4
ASMHRC4
ASMH
ASMH
ASMH
ASMH
ASMH
ASMH
ASMH
Bld Map
------PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
Row 6 to 20 of 22
Scroll ===> PAGE
Language
-------ASMH
ASMH
ASMH
ASMH
ASMH
ASMH
ASMH
ASMH
ASMH
ASMH
ASMH
ASMH
ASMH
ASMH
ASMH
Authcode
-------SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
257
Account
-------PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
SCLM41.PRIVDEFS.ASM
Chg Date
-------94/07/28
94/07/28
94/07/21
94/07/28
94/08/02
94/07/28
94/07/28
94/07/28
94/07/28
94/08/03
94/07/28
94/07/28
94/08/01
94/07/29
Chg Time
-------14:03:00
14:03:00
15:55:00
14:03:00
15:19:00
14:03:00
14:04:00
14:04:00
14:04:00
15:39:00
14:04:00
14:04:00
11:41:00
13:59:00
- HIERARCHY VIEW -
Command ===>
258
ISPF/SCLM V4 Guide
Language
-------REXX
REXX
REXX
REXX
REXX
REXX
REXX
REXX
REXX
REXX
REXX
REXX
REXX
REXX
Authcode
----SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
Row 1 to 1 of 1
Scroll ===> PAGE
Member
Status
Account Chg Date Chg Time Language Authcode
-------- ----------- -------- -------- -------- -------- ----SCLMISP
PROJDEFS 94/08/03 16:08:00 ASMH
SCLM
Row 1 to 14 of 15
Scroll ===> PAGE
Member
Status
-------- ----------FLM#01PA
FLM#02PV
FLM#03PD
JOBCARD
MET#01PA
MET#02PV
MET#03PD
MET#04CL
M3L#01PA
M3L#02PV
M3L#03PD
M3L#04CL
SCLMJOB
Account
-------PROJDEFS
PROJDEFS
PROJDEFS
PRIVDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
Chg Date
-------94/08/03
94/08/03
94/08/03
94/07/18
94/08/03
94/08/03
94/08/03
94/08/03
94/08/03
94/08/03
94/08/03
94/08/03
94/08/03
Chg Time
-------16:05:00
16:06:00
16:06:00
09:51:00
16:06:00
16:06:00
16:06:00
16:06:00
16:07:00
16:07:00
16:07:00
16:07:00
16:07:00
Row 1 to 13 of 13
Scroll ===> PAGE
Language
-------TEXT
TEXT
TEXT
TEXT
TEXT
TEXT
TEXT
TEXT
TEXT
TEXT
TEXT
TEXT
TEXT
Authcode
----SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
SCLM41.PRIVDEFS.ARCHDEF
- HIERARCHY VIEW -
Command ===>
Member
Status
-------- ----------#ALVIEWS
AQQQQQQQ
ASMPROJ
AS9200
FLM#
FLM##H
FLM##L
FLM1#H
FLM1#L
FLM3#H
FLM3#L
FLM8#H
FLM8#L
FLM9#H
FLM9#L
LQQQQQQQ
Account
-------PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
PROJDEFS
Chg Date
-------94/08/04
94/07/20
94/08/03
94/08/03
94/07/22
94/07/22
94/07/22
94/07/22
94/07/22
94/07/22
94/07/22
94/07/22
94/07/22
94/07/22
94/07/22
94/07/20
Chg Time
-------08:43:00
09:51:00
15:37:00
16:04:00
16:34:00
10:38:00
10:38:00
10:38:00
10:38:00
10:36:00
10:38:00
10:39:00
10:39:00
10:39:00
10:39:00
09:49:00
Row 1 to 16 of 29
Scroll ===> PAGE
Language
-------ARCHDEF
ARCHDEF
ARCHDEF
ARCHDEF
ARCHDEF
ARCHDEF
ARCHDEF
ARCHDEF
ARCHDEF
ARCHDEF
ARCHDEF
ARCHDEF
ARCHDEF
ARCHDEF
ARCHDEF
ARCHDEF
Authcode
----SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
SCLM
259
260
ISPF/SCLM V4 Guide
22.1.2 ISO9000
To facilitate the standardization of the many aspects of quality, the International
Organization for Standardization (ISO) has developed a set of international
standards for quality systems, which are known as the ISO 9000 Series of Quality
Standards. These standards apply to all organizations producing a product or
service and are being accepted wordwide. An indication of their acceptance and
significance in the software engineering industry, in particular, is reflected in
Hubner's words: To obtain an ISO 9000 certification has become a business
necessity in Europe It is only a matter of time before ISO 9000 certification
becomes a business necessity in North America and the Orient.
The key ISO 9000 standards are:
ISO 9001, Quality systems - Model for quality assurance in design /
development production, installation and servicing
ISO 9002, Quality systems - Model for quality assurance in production and
installation
ISO 9003, Quality systems - Model for quality assurance in final inspection
and test
ISO 9001 provides the most comprehensive requirements for a software quality
system where a contractual agreement between two parties must demonstrate
the supplier's capability to design and supply a product or service.
Recognizing the peculiarities of the software industry, ISO 9000-3, a guideline for
the application of ISO 9001 to the development, distribution and maintenance of
software, has been released. Configuration management is a key element within
this ISO 9000-3 guideline for software.
261
262
ISPF/SCLM V4 Guide
263
The order of JCL EXEC statements determines the order in which load modules
will be considered for execution. The same concept holds true for language
definitions in that the order of the FLMTRNSL macros in a language definition
determines the order in which the translators will be considered for execution.
See Figure 140 for a comparison of a JCL EXEC statement and and FLMTRNSL
macro.
JCL:
//STEP1 EXEC PGM=IEFBR14
FLMTRNSL:
FLMTRNSL COMPILE=IEFBR14,FUNCTN=BUILD,PORDER=0
Figure 140. IEFBR14 as a Translator. This example compares JCL with the FLMTRNSL
macro.
COPY - before SCLM PROMOTE function copies the member to the next
library
0 - no parameters
The FLMTRNSL macro OPTIONS keyword serves the same purpose as the JCL
EXEC statement PARM keyword. The ddname substitution list as well as the
parameter order detail will be covered later in this report.
264
ISPF/SCLM V4 Guide
Notice that the condition to continue execution with the next translator in the
language definition is specified on the FLMTRNSL macro for the translator that
may have a nonzero return code. This is in contrast to JCL in which the
condition for successful execution is specified on the next EXEC statement.
If a return code exceeds the value of GOODRC. then all of the translators which
follow in the language definition will be skipped. However, in JCL we can select
which programs to execute by using the COND keyword on any EXEC statement.
This provides a type of IF-THEN-ELSE logic to the control of execution in JCL
which cannot be duplicated with only the use of the GOODRC keyword.
This is the reason why there is not a one-to-one correspondence in the logic
used in JCL and that used in language definitions. Migration from an existing
application development environment which makes extensive use of JCL
conditional execution will require skilled translator work to provide an equivalent
function for SCLM.
23.1.7 CALLMETH
The FLMTRNSL macro CALLMETH keyword may be used to specify three
different ways of passing control to a translator:
ATTACH - default value, used for translator load modules.
LINK - used for translator load modules which require access to ISPF
variables or services.
TSOLNK - used for translator TSO commands, REXX programs, or CLISTs.
SCLM uses IKJEFTSR (TSO Service Routine) with link flags X'00010001' to
invoke the translator.
Not all translators may be successfully invoked by one of these three methods.
In those cases one needs an interface program that gets control from SCLM,
establishes a proper environment for the desired translator, and then passes
265
*
* LNKFLAGS, COMMAND, AND CMDLEN STORAGE AREAS NEED TO BE SET TO THE
* PROPER VALUES FOR THE DESIRED COMMAND BEFORE THE CALL TO IKJEFTSR
*
*
*
LOCATE IKJEFTSR AND EXECUTE THE COMMAND
*
L
1,CVTADDR
* ADDRESS OF THE CVT
L
1,CVTTVT(,1)
* ADDRESS OF THE TVT
L
R15,TSVTASF-TSVT(,1)
* ADDRESS OF IKJEFTSR
*
CALL (15),(LNKFLAGS,COMMAND,CMDLEN,RETCODE,RSNCODE,ABNDCODE), X
VL,MF=(E,CALLPRMS)
* CALL IKJEFTSR
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *
* CONSTANTS
*
CVTADDR EQU 16
* ADDRESS OF THE CVT
CVTTVT EQU X'9C'
* OFFSET OF TVT POINTER IN CVT
*
LNKFLAGS DS
0F
* MODEL FLAGS FOR IKJEFTSR CALL
DC
X'00'
* MUST BE ZEROS
DC
X'01'
* UNAUTHORIZED ENVIRONMENT
DC
X'00'
* NO DUMP ON ABEND
DC
X'01'
* TSO CMD, REXX, CLIST
*
COMMAND DS
CL400
* COMMAND BUFFER
CMDLEN DS
F
* LENGTH OF COMMAND IN BUFFER
*
LNKPRMS DS
0F
* IKJEFTSR CALL RETURN PARAMETERS
RETCODE DS
F
* RETURN CODE FROM IKJEFTSR
RSNCODE DS
F
* REASON CODE FROM IKJEFTSR
ABNDCODE DS
F
* ABEND CODE FROM IKJEFTSR
*
CALLPRMS CALL ,(,,,,,,,,),MF=L
* PARM AREA FOR CALL MACRO
*
* TSO VECTOR TABLE NEEDED FOR TSVTASF AND TSVT
*
IKJTSVT DSECT
IKJTSVT
* TSO VECTOR TABLE
Figure 142. IKJEFTSR Sample Interface. This sample code calls IKJEFTSR to invoke a
command.
23.1.8 FLMALLOC
Most translators need input, ouput, and work data sets. These files are identified
by FLMALLOC macros which immediately follow the FLMTRNSL macro for
invocation of the translator. At run time, a TSO allocation is performed for each
of the files. This is why the macro is called FLMALLOC.
The JCL counterpart of the FLMALLOC macro is the data definition statement. In
general there will be one FLMALLOC macro for each ddname (data definition
name on a data definition statement) when one migrates a JCL application
development job stream to an SCLM language definition. This should not affect
the translator, and no reprogramming should be required.
266
ISPF/SCLM V4 Guide
267
FLMTRNSL COMPILE=ABC,FUNCTN=BUILD,PORDER=0
FLMALLOC IOTYPE=S,DDNAME=INPUT,KEYREF=SINC
FLMALLOC IOTYPE=W,DDNAME=OUTPUT
FLMTRNSL COMPILE=XYZ,FUNCTN=BUILD,PORDER=0
FLMALLOC IOTYPE=U,DDNAME=OUTPUT
FLMALLOC IOTYPE=A,DDNAME=REPORT
Figure 143. Refer Back without DDname Substitution List. Both DDNAME keywords must
have the same value for a refer back.
IOTYPE=U tells SCLM to refer back to the prior translators in the language
definition until an FLMALLOC macro is located with DDNAME=OUTPUT. The
DDNAME keywords must match for the refer back to occur.
268
ISPF/SCLM V4 Guide
FLMTRNSL
FLMALLOC
FLMALLOC
FLMALLOC
COMPILE=ABC,FUNCTN=BUILD,PORDER=2
IOTYPE=W,DDNAME=RECIN
* OUTPUT DDNAME
IOTYPE=N
* NOT APPLICABLE
IOTYPE=S,KEYREF=SINC
* INPUT DDNAME
FLMTRNSL COMPILE=XYZ,FUNCTN=BUILD,PORDER=0
FLMALLOC IOTYPE=U,DDNAME=RECIN
FLMALLOC IOTYPE=A,DDNAME=REPORT
Figure 144. Refer Back with DDname Substitution List. DDNAME keywords are used as
labels.
269
FLMTRNSL COMPILE=ABC,FUNCTN=BUILD,PORDER=0
FLMALLOC IOTYPE=S,DDNAME=INPUT,KEYREF=SINC
FLMALLOC IOTYPE=W,DDNAME=OUTPUT
FLMTRNSL
FLMALLOC
FLMALLOC
FLMALLOC
FLMALLOC
FLMALLOC
FLMCPYLB
FLMALLOC
FLMCPYLB
FLMALLOC
FLMALLOC
FLMALLOC
FLMALLOC
FLMCPYLB
FLMALLOC
FLMCPYLB
COMPILE=IEBGENER,FUNCTN=BUILD,PORDER=3
IOTYPE=N
* NOT APPLICABLE
IOTYPE=N
* NOT APPLICABLE
IOTYPE=N
* NOT APPLICABLE
IOTYPE=N
* NOT APPLICABLE
IOTYPE=A
* SYSIN
NULLFILE
IOTYPE=A
* SYSPRINT
NULLFILE
IOTYPE=N
* NOT APPLICABLE
IOTYPE=U,DDNAME=OUTPUT
* SYSUT1
IOTYPE=W,DDNAME=RECIN
* SYSUT2
IOTYPE=A
* SYSUT3 (NOT USED BY IEBGENER)
NULLFILE
IOTYPE=A
* SYSUT4 (NOT USED BY IEBGENER)
NULLFILE
FLMTRNSL COMPILE=XYZ,FUNCTN=BUILD,PORDER=0
FLMALLOC IOTYPE=U,DDNAME=RECIN
FLMALLOC IOTYPE=A,DDNAME=REPORT
Figure 145. Refer Back with IEBGENER Bridge. IEBGENER is needed because the
ddnames do not match and translator ABC is not programmed to use a ddname
substitution list.
There are 11 values in a ddname substitution list for IBM utilities, such as
IEBGENER. Even though IEBGENER does not use SYSUT3 or SYSUT4, it does not
hurt anything to specify them as dummy data sets as in Figure 145. The
FLMALLOC statements used to construct a ddname substitution list must be
specified in the correct order.
270
ISPF/SCLM V4 Guide
WORD1 is zero.
WORD2 is zero (except the high order bit).
PORDER=1
PORDER=2
PORDER=3
Figure 146. PORDER and the Parameter List. The value of PORDER determines the
placement of an OPTIONS list and a ddname substitution list in the parameter list.
271
272
ISPF/SCLM V4 Guide
X
X
X
X
X
X
273
OPTIONS=(PARSEDSN=''@@FLMPRJ.@@FLMGRP.@@FLMTYP'',
PARSEMEM=@@FLMMBR,
STATINFO=@@FLMSTP,
LISTINFO=@@FLMLIS,
LISTSIZE=@@FLMSIZ,
LANG=&SYNTAX.)
X
X
X
X
X
.MEND ANOP
MEND
MACRO
#MACLIB
LCLA &MAC_CT
GBLC &MACLIST(20)
GBLA &MACNUM
&MAC_CT SETA 1
.LOOP AIF (&MAC_CT GT &MACNUM).LPEND
FLMCPYLB &MACLIST(&MAC_CT)
&MAC_CT SETA &MAC_CT+1
AGO
.LOOP
.LPEND ANOP
MEND
Index
Array of library names
Number of libraries
MACRO
#ASM &IN=,&OBJ=,&PRT=
--ASSEMBLER 'H' INTERFACE-FLMTRNSL CALLNAM='ASM H',
FUNCTN=BUILD,
COMPILE=IEV90,
VERSION=2.1,
GOODRC=4,
PORDER=3,
PARMKWD=1,
OPTIONS=(NOOBJECT,DECK,RENT,XREF(SHORT),
LINECOUNT(55))
*
* 1
* 2
* 3
* 4
* 5
X
X
X
X
X
X
X
X
--SYSLIN-FLMALLOC IOTYPE=A
FLMCPYLB NULLFILE
--N/A-FLMALLOC IOTYPE=N
--N/A-FLMALLOC IOTYPE=N
--SYSLIB-FLMALLOC IOTYPE=I,KEYREF=SINC,DDNAME=SYSLIB
#MACLIB
--SYSIN-AIF ('.&IN' EQ '.').AINA
FLMALLOC IOTYPE=U,DDNAME=&IN
AGO .AINZ
.AINA ANOP
FLMALLOC IOTYPE=S,KEYREF=SINC,RECFM=FB,LRECL=80,
RECNUM=9000
.AINZ ANOP
* 6
--SYSPRINT-AIF ('.&PRT' EQ '.').APRTA
FLMALLOC IOTYPE=W,RECFM=FBM,LRECL=121,RECNUM=50000,
PRINT=Y,DDNAME=&PRT
AGO .APRTZ
.APRTA ANOP
FLMALLOC IOTYPE=O,KEYREF=LIST,RECFM=FBM,LRECL=121,
RECNUM=20000,PRINT=Y,DFLTTYP=LISTING
.APRTZ ANOP
* 7
--SYSPUNCH-AIF ('.&OBJ' EQ '.').AOBJA
FLMALLOC IOTYPE=W,RECFM=FB,LRECL=80,
RECNUM=9000,DDNAME=&OBJ
AGO .AOBJZ
274
ISPF/SCLM V4 Guide
.AOBJA ANOP
FLMALLOC IOTYPE=O,KEYREF=OBJ,RECFM=FB,LRECL=80,
RECNUM=9000,DFLTTYP=OBJ
.AOBJZ ANOP
* 8
--SYSUT1-FLMALLOC IOTYPE=W,RECFM=FB,LRECL=80,RECNUM=15000
* 9
--SYSTERM-FLMALLOC IOTYPE=A
FLMCPYLB NULLFILE
MEND
MACRO
#CICS &COMPILE=,
&DSNAME=,
&VERSION=A.B,
&OPTIONS=''
*========== CICS PRECOMPILER ========================================
MNOTE *,'== &COMPILE &VERSION ======'
MNOTE *,&OPTIONS
*
--- CICS PRECOMPILER
FLMTRNSL CALLNAM='CICS PRECOMP',
FUNCTN=BUILD,
COMPILE=&COMPILE.,
DSNAME=&DSNAME.,
VERSION=&VERSION.,
GOODRC=00,
PORDER=1,
OPTIONS=(&OPTIONS.)
* 1
(* SYSIN *)
FLMALLOC IOTYPE=S,KEYREF=SINC,RECFM=FB,LRECL=80,
DDNAME=SYSIN
* 2
(* SYSPRINT *)
FLMALLOC IOTYPE=W,RECFM=FBA,LRECL=121,
RECNUM=5000,PRINT=Y,DDNAME=SYSPRINT
* 3
(* SYSPUNCH *)
FLMALLOC IOTYPE=O,RECFM=FB,LRECL=80,KEYREF=OUT1,
RECNUM=4000,DDNAME=SYSPUNCH,PRINT=Y
MEND
X
X
X
C
C
C
C
C
C
C
C
C
C
MACRO
#APPEND &IN=,&OUT=LISTING
LCLA &IN_CT
Index
LCLC &IN_LIST
List of DDnames
&IN_CT SETA 1
.LOOP AIF (&IN_CT GT N'&IN).LPEND
&IN_LIST SETC '&IN_LIST &IN(&IN_CT)'
&IN_CT SETA &IN_CT+1
AGO
.LOOP
.LPEND ANOP
***********************************************************************
* APPEND STEP (CONCATENATE LISTINGS TO LISTING FILE)
***********************************************************************
FLMTRNSL CALLNAM='APPEND',
C
FUNCTN=BUILD,
C
COMPILE=IRXJCL,
C
VERSION=V3R2M0,
C
GOODRC=0,
C
PORDER=1,
C
PARMKWD=1,
C
OPTIONS='SCLMAPND OUT &IN_LIST'
* 1
--OUT-FLMALLOC IOTYPE=O,RECFM=FBA,LRECL=133,RECNUM=50000,
X
KEYREF=LIST,DFLTTYP=&OUT,DDNAME=OUT
MEND
275
/* REXX */
/* PROGRAM NAME: SCLMAPND
*/
/*
*/
/* DESCRIPTIVE NAME:
*/
/* Concatenate Build translator listings
*/
/*
*/
/* COPYRIGHT: (C) COPYRIGHT IBM CORP 1991
*/
/*
*/
/* STATUS: N/A
*/
/*
*/
/* FUNCTION:
*/
/* Concatenates DD's to allow, for example, the PLAS and Assembler
*/
/* listings for a module to be combined into a single listing file. */
/*
*/
/* NOTES:
*/
/*
DEPENDENCIES: DSNINFO (from MVSTOOLS)
*/
/*
MVSPIPE (from MVSTOOLS)
*/
/*
INPUT/OUTPUT FILES: None.
*/
/*
RESTRICTIONS: None.
*/
/*
ERROR MESSAGES: See program for details.
*/
/*
USAGE: SCLM Build translator
*/
/*
RESTART/RECOVERY: None
*/
/* ENTRY CONDITIONS:
*/
/*
SYNTAX:
*/
/*
SCLMAPND outdd indd1 ... inddn
*/
/*
*/
/*
PARAMETERS:
*/
/*
outdd
DD name to be concatanated to
*/
/*
indd1
list of DD's to be concatenated to outdd
*/
/*
*/
/*
OPTIONS:
*/
/*
None
*/
/*
*/
/*
EXECUTION EXAMPLES:
*/
/*
SCLMAPND OUT PLASPRT ASMPRT LINKPRT
*/
/*
- Will copy PLASPRT, ASMPRT and LINKPRT to the OUT DD
*/
/*
*/
/* NORMAL EXIT CONDITIONS:
*/
/*
RETURN CODES:
*/
/*
0
Successful completion
*/
/*
*/
/* ERROR EXIT CONDITIONS:
*/
/*
RETURN CODES:
*/
/*
8 - Syntax error - unsuccessful completion
*/
/*
20 - Novalue error - local definitions not performed
*/
/*
*/
/* OPERATION:
*/
/* Parse parameters
*/
/* Trap output of DSNINFO command to determine record length of
*/
/* output file.
*/
/* Set up pipeline command to read all of the input DDs
*/
/* Issue pipe command to:
*/
/* - Read all the input data sets
*/
/* - Truncate/expand records to output file record length
*/
/* - Write to the output data set
*/
/*
*/
/* OWNED/SUPPORTED BY: CICS Products Tools Development.
*/
/*
Contact the LCS Help Desk.
*/
/*
BUXTON @ WINVMJ
*/
/*
*/
/* CHANGE ACTIVITY:
*/
/*
*/
/* Reason for Change
ATW# Init DDMmmYY */
/*--------------------------------------------------------------------*/
/* @00= Initial version
nnnn RFB 29Apr91 */
/*====================================================================*/
/* Standard Prologue for REXX execs
*/
/*====================================================================*/
Parse Upper Arg parms0 '(' opts0; pnum=WORDS(parms0); onum=WORDS(opts0)
Parse Upper Source . itype exec0 . . exec addr_name .
Parse Upper version impl . . langlevel .
Address 'TSO';
RC=0;ret=0; Signal On NOVALUE; Signal On SYNTAX; Signal On HALT
/*====================================================================*/
/* End of the Prolog
*/
/*====================================================================*/
Figure 152 (Part 1 of 2). EXXx SCLMAPND to Concatenate Build Translator Listings
276
ISPF/SCLM V4 Guide
/*--------------------------------------------------------------------*/
/* Parse parameters
*/
/*--------------------------------------------------------------------*/
Parse Var parms0 outdd indd1 inddn
/*--------------------------------------------------------------------*/
/* Trap output of DSNINFO command to determine record length of
*/
/* output file.
*/
/*
*/
/* (LISTDSI is unusable because it doesn't work on VIO data sets)
*/
/*--------------------------------------------------------------------*/
x=outtrap('dsi.',7)
/* Set up for output trapping */
'DSNINFO' outdd 'FILE'
/* Find output DD attributes */
ret=rc
If ret<>0 then
/* Error retrieving attributes */
Do
Say 'Return code' ret 'from DSNINFO'
Signal exit
End
x=outtrap('OFF')
Parse Var dsi.4 . 'LRECL....' lrecl . /* Lrecl in 4th line of output */
/*--------------------------------------------------------------------*/
/* Set up pipeline command to read all of the input DDs
*/
/*--------------------------------------------------------------------*/
pipecmd = 'QSAM' indd1
/* Read first data set
*/
Do i = 1 To WORDS(inddn)
pipecmd= pipecmd '| APPEND QSAM' WORD(inddn,i) /* Read other inputs*/
End i
/*--------------------------------------------------------------------*/
/* Issue pipe command to:
*/
/* - Read all the input data sets
*/
/* - Truncate/expand records to output file record length
*/
/* - Write to the output file
*/
/*--------------------------------------------------------------------*/
'PIPE' pipecmd,
/* Read the input files
*/
'| SPECS 1-* 1-'lrecl,
/* Ensure output record length */
'| QSAM' outdd
/* Write to output file
*/
ret=rc
If ret<>0 then
Say 'Return code' ret 'from MVSPIPE'
EXIT:
/*====================================================================*/
/* Standard Epilogue for REXX execs
*/
/*====================================================================*/
COMEXIT:
If itype = 'FUNCTION' Then
Exit ret;
Else
Do; Parse Var ret ret .; Exit ret; End
NOVALUE:
/* Identify source of problem */
Say 'NoValue error' exec0 'line' sigl;
If langlevel>3.45 Then
/* Condition built-in-func. supported */
Say 'Referenced variable is' condition('D');
If SOURCELINE() <> 0 Then
Say SOURCELINE(sigl)
ret = 20; Signal Comexit
HALT:
Say 'Halt condition' exec0 sigl; ret = 20; Signal Exit
SYNTAX:
syntax_rc = rc;
Say 'Syntax error' syntax_rc exec0 'line' sigl; ret = 20;
If SOURCELINE() <> 0 Then
Say SOURCELINE(sigl)
Say 'Error -' ERRORTEXT(syntax_rc); Signal Comexit
Figure 152 (Part 2 of 2). EXXx SCLMAPND to Concatenate Build Translator Listings
277
*=====================================================================
*
Language definitions
*=====================================================================
*
*=====================================================================
*
Copy member contained within this project definition
*
(Because language unique to this project or special needs)
*=====================================================================
*
COPY @COBC2
-- COBOL with CICS 2 translator
COPY @LINK
-- Linkage editor
*
*=====================================================================
*
Copy member contained in CSM project definition
*
(Because language definition is common across projects)
*=====================================================================
*
COPY @ARCD
-- Architecture definition
COPY @BOOK
-- Bookmaster for 3820
COPY @BOOKTRM
-- Bookmaster for terminal (1403)
COPY @DTL
-- Dialog tag language
*
*=====================================================================
*
Language definitions coded in-line
*
(Because local macros (in CSM project) keep them short)
*=====================================================================
*
-- Assembler/CICS 2
ASMC2
#LANG NAME='Assembler with CICS 2 translator',
SYNTAX=A,
LIB=(SYS1.MACLIB,HCI2212.SRC.MACLIB,SYS1.AMODGEN)
#CICS COMPILE=DFHEAP1$,
DSNAME=HCI2212.LOADLIB,
VERSION=2.1,
OPTIONS=' '
#ASM IN=SYSPUNCH,PRT=ASMPRT
#APPEND IN=(SYSPRINT,ASMPRT)
*
*
-- Assembler/CICS 3
ASMC3
#LANG NAME='Assembler with CICS 3 translator',
SYNTAX=A,
LIB=(SYS1.MACLIB,HCI3321D.SRC.ADFHMAC,SYS1.AMODGEN)
#CICS COMPILE=DFHEAP1$,
DSNAME=HCI3321D.SDFHLOAD,
VERSION=3.2,
OPTIONS=' '
#ASM IN=SYSPUNCH,PRT=ASMPRT
#APPEND IN=(SYSPRINT,ASMPRT)
*
*
-- Assembler H
ASMH
#LANG NAME='Assembler H',
SYNTAX=A,
LIB=(SYS1.MACLIB,HCI2212.SRC.MACLIB,SYS1.AMODGEN)
#ASM
*
*
-- Assembler H - CICS3 Macros - No translator
ASMM3
#LANG NAME='Assembler H w/CICS3 macro',
SYNTAX=A,
LIB=(SYS1.MACLIB,HCI3321D.SRC.ADFHMAC,SYS1.AMODGEN)
#ASM
*
-- CLIST
CLIST
#LANG NAME='TSO CLISTs',
SYNTAX=R
*
-- General purpose (no Build)
GEN
#LANG NAME='General Pupose Translator',
SYNTAX=T
*
-- ISPF CLIST
ISPFCLST #LANG NAME='ISPF CLISTs',
SYNTAX=R
*
-- ISPF Panels
ISPFPANL #LANG NAME='ISPF Panels',
SYNTAX=T
*
-- ISPF Panels
ISPFMSG #LANG NAME='ISPF Messages',
SYNTAX=T
*
-- JCL
JCL
#LANG NAME='JCL',
SYNTAX=T
278
ISPF/SCLM V4 Guide
X
X
C
C
C
X
X
C
C
C
X
X
X
X
X
X
X
X
X
X
*
MACRO
-- Macros
#LANG NAME='Assembler Macros',
SYNTAX=A,
LIB=(SYS1.MACLIB,HCI2212.SRC.MACLIB,SYS1.AMODGEN)
*
-- BMS maps
MAP
#LANG NAME='Assembler H- for BMS maps',
SYNTAX=A,
LIB=(SYS1.MACLIB,HCI2212.SRC.MACLIB,SYS1.AMODGEN)
#ASM
*
-- MISC
MISC
#LANG NAME='Misc stuff',
SYNTAX=T
*
-- Messages
MSG
#LANG NAME='Messages',
SYNTAX=T
*
-- CICS Panels
PANEL
#LANG NAME='CICS Panels',
SYNTAX=T
*
-- PLX
PLX
#LANG NAME='PL/X Language',
SYNTAX=P,
LIB=(SYS1.MACLIB,HCI2212.SRC.MACLIB,SYS1.AMODGEN)
#PLX
#ASM IN=PLXUT2,PRT=ASMPRT
#APPEND IN=(PLXPRT,ASMPRT)
*
-- PLX / CICS 2
PLXC2
#LANG NAME='PL/X w/CICS 2 translator',
SYNTAX=P,
LIB=(SYS1.MACLIB,HCI2212.SRC.MACLIB,SYS1.AMODGEN)
#CICS COMPILE=DFHEPP1$,
DSNAME=HCI2212.LOADLIB,
VERSION=2.1,
OPTIONS='PLS,PLSA0'
#PLX IN=SYSPUNCH
#ASM IN=PLXUT2,PRT=ASMPRT
#APPEND IN=(SYSPRINT,PLXPRT,ASMPRT)
*
-- PLX / CICS 3
PLXC3
#LANG NAME='PL/X w/CICS 3 translator',
SYNTAX=P,
LIB=(SYS1.MACLIB,HCI3321D.SRC.ADFHMAC,SYS1.AMODGEN)
#CICS COMPILE=DFHEPP1$,
DSNAME=HCI3321D.SDFHLOAD,
VERSION=3.2,
OPTIONS='PLS,PLSA0'
#PLX IN=SYSPUNCH
#ASM IN=PLXUT2,PRT=ASMPRT
#APPEND IN=(SYSPRINT,PLXPRT,ASMPRT)
*
-- PLX - CICS3 macros no translate
PLXM3
#LANG NAME='PL/X w/CICS3 macro',
SYNTAX=P,
LIB=(SYS1.MACLIB,HCI3321D.SRC.ADFHMAC,SYS1.AMODGEN)
#PLX
#ASM IN=PLXUT2,PRT=ASMPRT
#APPEND IN=(PLXPRT,ASMPRT)
*
-- Macros
PLXMACRO #LANG NAME='PLX Macros',
SYNTAX=P,
LIB=(SYS1.MACLIB,HCI2212.SRC.MACLIB,SYS1.AMODGEN)
*
-- RDLDATA - Not buildable on MVS
RDLDATA #LANG NAME='Resource definitions',
SYNTAX=T
*
-- REXX
REXX
#LANG NAME='REXX execs',
SYNTAX=R
X
X
X
X
X
X
X
X
X
X
X
C
C
C
X
X
C
C
C
X
X
X
X
X
X
279
280
ISPF/SCLM V4 Guide
281
*/
*/
*/
*/
dgiscact = ''
'ISPEXEC BROWSE DATASET('dsn')' /* Call PDF browse service
end
*/
Say "*************************************"
Say "* Do you want to save Data in SCLM? *"
Say "*************************************"
pull ans
if substr(ans,1,1) <> 'Y' then Exit
/*
* Save the member in SCLM hierarchy if
*/
$prj = 'SAA1'
/* SCLM
$prjdef = 'SAA1'
/* SCLM
$grp = 'STADE1'
/* SCLM
$typ = 'BMSSRC'
/* SCLM
$language = 'BMS'
282
ISPF/SCLM V4 Guide
BMS
project
project definition
developement group
typ for saved map
*/
*/
*/
*/
sclmdsn = $prj||"."||$grp||"."||$typ
sclmmbr = sclmdsn||"("||icvueomn||")"
sclmmbr = "'"||sclmmbr||"'"
Address 'TSO'
/*
* Copy the generated SDF/II output to the SCLM hierarchy
*/
"alloc fi(in) da("||dsn||") reuse shr"
"alloc fi(out) da("||sclmmbr||") reuse shr"
"EXECIO * diskr in (finis stem src."
"EXECIO * diskw out (finis stem src."
"free fi(in)"
"free fi(out)"
/*
* Register with SCLM
*/
savecmd = "SAVE,"||$prj||","||$prjdef||","||$grp||","||$typ || ,
","||icvueomn||","||","||","||","||$language
"flmcmd "||savecmd
if rc = 0 then do
Say "*"
Say "* Member " icvueomn " has been saved successfully"
Say "* in the SCLM hierarchy of project" $prj "."
Say "*"
End
/*
* SCLM-Build
*/
savecmd = "BUILD,"||$prj||","||$prjdef||","||$grp||","||$typ || ,
","||icvueomn||","||","||","||","||$language
"flmcmd "||savecmd
if rc = 0 then do
Say "*"
Say "* Member " icvueomn " has been built successfully"
Say "*"
End
Address 'ISPEXEC'
Exit
283
284
ISPF/SCLM V4 Guide
P
PRODUCTION
R
O
B
DELIVERY
L
E
PRODUCTION
FIXes
M
(shadow)
I
/
C
H
Systemtest
Maintenance
A
I
N
G
E
Integration Development
M
A
N
Staging
G
E
M
Team
N
T
Development
PC
PC
ROLES
C
O
N
F
I
G
U
R
A
T
M O
A R
N
A
G
E
R
D
E
V
E
L
O
P
E
R
285
ProjectDefinition
(Load Module)
Project Views
prjid.account.file
I H
prjid.PROJDEFS.LOAD
prjid.group.type
I H
(Name defined as
(Name defined
by
project
definition (PD))
286
ISPF/SCLM V4 Guide
prjid.DEV2.ARCHDEF
prjid.DEV2.SOURCLST
prjid.DEV2.LMAP
prjid.DEV2.LOAD
prjid.DEV2.OBJ
prjid.DEV2.SOURCE
Account-File: prjid.account.file
Project Definitions: prjid.PROJDEFS.LOAD
.LOAD
.LMAP
RELEASE
.OBJ
AC=P
.SOURCLST
.SOURCE
ie. part FLM01MD1, authorization code P
prjid.TEST.ARCHDEF
.LOAD
.LMAP
TEST
.OBJ
AC=P
.SOURCLST
.SOURCE
ie. part FLM01MD1, authorization code P
prjid.DEV1/2.ARCHDEF
.LOAD
.LMAP
DEV1
DEV2
.OBJ
AC=P
AC=P
.SOURCLST
.SOURCE
ie. part FLM01MD1, authorization code P
287
....
LOAD
OBJ
SOURCE
TEST
....
....
LOAD
LOAD
OBJ
OBJ
SOURCE
SOURCE
DEV1
DEV2
Developer
Project Definition
'prjid.PROJDEFS.LOAD'
READ
CONTROL
UPDATE READ
CONTROL
UPDATE
CONTROL
UPDATE READ
CONTROL
UPDATE
CONTROL
CSP Control
'prjid.PROJDEFS.CONTROL'
READ
CONTROL
288
ISPF/SCLM V4 Guide
RELEASE
NONKEY Group
ie.
BACKUP
TEST
NONKEY Group
ie.
Integration
Developer 1
Developer 2
PRODUCTION
(AC=P)
TEST
FIXTEST
(AC=P)
(AC=F)
FIXDEV
Developer 1
Developer 2
(AC=F)
(AC=P)
(AC=P)
289
PROC
//STEP1
EXEC
PGM=IEFBR14
SCLM Macros:
FLMLANGL LANG=METH1,VERSION=V0R0M0
FLMTRNSL COMPILE=IEFBR14,FUNCTN=BUILD,PORDER=0
290
ISPF/SCLM V4 Guide
C
C
C
C
C
C
EXEC
EXEC
PGM=ABC
PGM=XYZ,COND=(5,GE)
SCLM Macros:
FLMTRNSL COMPILE=ABC,FUNCTN=BUILD,PORDER=0,GOODRC=4
FLMTRNSL COMPILE=XYZ,FUNCTN=BUILD,PORDER=0
EXEC
DD
DD
DD
PGM=GAC
DUMMY
DSN=SCLM41.DEV1.SOURCE(mbr),DISP=SHR
DSN=SCLM41.DEV1.SOURCLST(mbr),DISP=SHR
SCLM Macros:
FLMTRNSL COMPILE=GAC,FUNCTN=BUILD,PORDER=0
FLMALLOC
FLMCPYLB
FLMALLOC
FLMCPYLB
FLMALLOC
FLMCPYLB
IOTYPE=A,DDNAME=SYSIN
NULLFILE
IOTYPE=A,DDNAME=INPUT
SCLM41.DEV1.SOURCE(mbr)
IOTYPE=A,DDNAME=OUTPUT
SCLM41.DEV1.SOURCLST(mbr)
291
PROC
EXEC
DD
DD
DD
DD
//SYSUT2 DD
//SYSUT3 DD
PGM=MBS
DUMMY
DSN=SCLM41.DEV1.SOURCE(mbr),DISP=SHR
DSN=SCLM41.DEV1.SOURCLST(mbr),DISP=SHR
UNIT=SYSDA,DISP=(NEW,DELETE),SPACE=(TRK,(2,5)),
DCB=(LRECL=80,BLKSIZE=3120,RECFM=FB,DSORG=PS)
UNIT=SYSDA,DISP=(NEW,DELETE),SPACE=(TRK,(2,5)),
DCB=(LRECL=80,BLKSIZE=3120,RECFM=FB,DSORG=PS)
UNIT=SYSDA,DISP=(NEW,DELETE),SPACE=(TRK,(2,5)),
DCB=(LRECL=80,BLKSIZE=3120,RECFM=FB,DSORG=PS)
SCLM Macros:
FLMLANGL
FLMTRNSL
LANG=HURRA
COMPILE=MBS,FUNCTN=BUILD,PORDER=0
FLMALLOC
FLMCPYLB
FLMALLOC
FLMCPYLB
FLMALLOC
FLMCPYLB
FLMALLOC
FLMALLOC
FLMALLOC
IOTYPE=A,DDNAME=SYSIN
NULLFILE
IOTYPE=A,DDNAME=INPUT
SCLM41.DEV1.SOURCE(mbr)
IOTYPE=A,DDNAME=OUTPUT
SCLM41.DEV1.SOURCLST(mbr)
IOTYPE=W,DDNAME=SYSUT1,LRECL=80,RECFM=FB,RECNUM=1000
IOTYPE=W,DDNAME=SYSUT2,LRECL=80,RECFM=FB,RECNUM=1000
IOTYPE=W,DDNAME=SYSUT3,LRECL=80,RECFM=FB,RECNUM=1000
COMPILE=PMO,FUNCTN=BUILD,PORDER=0
FLMALLOC
IOTYPE=S,KEYREF=SINC,RECNUM=5000,LRECL=80,RECFM=FB,
DDNAME=INPUT
IOTYPE=O,KEYREF=LIST,RECNUM=5000,LRECL=133,RECFM=VBA,
DDNAME=OUTPUT
FLMALLOC
CC Archdef
SINC
LIST
292
ISPF/SCLM V4 Guide
mbr
mbr
SOURCE
SOURCLST
COMPILE=BHC,FUNCTN=BUILD,PORDER=0
FLMALLOC IOTYPE=I,KEYREF=SINC,DDNAME=SYSLIB
FLMCPYLB SYS1.TEST.MACLIB
FLMCPYLB SYS1.MACLIB
FLMALLOC IOTYPE=S,KEYREF=SINC,RECNUM=5000,LRECL=80,RECFM=FB,
DDNAME=INPUT
FLMALLOC IOTYPE=O,KEYREF=LIST,RECNUM=5000,LRECL=133,RECFM=VBA,
DDNAME=OUTPUT
CC Archdef
SINC
LIST
mbr
mbr
SOURCE
SOURCLST
COMPILE=DEF1,FUNCTN=BUILD,PORDER=0
FLMALLOC
IOTYPE=S,KEYREF=SINC,RECNUM=5000,LRECL=80,RECFM=FB,
DDNAME=INPUT
IOTYPE=O,KEYREF=LIST,RECNUM=5000,LRECL=133,RECFM=VBA,
DDNAME=OUTPUT
FLMALLOC
FLMTRNSL
COMPILE=DEF2,FUNCTN=BUILD,PORDER=0
FLMALLOC
FLMALLOC
IOTYPE=U,DDNAME=INPUT
IOTYPE=O,KEYREF=LIST,RECNUM=5000,LRECL=133,RECFM=VBA,
DDNAME=LISTING
CC Archdef
SINC
LIST
mbr
mbr
SOURCE
SOURCLST
293
COMPILE=DEF1,FUNCTN=BUILD,PORDER=0
FLMALLOC
IOTYPE=S,KEYREF=SINC,RECNUM=5000,LRECL=80,RECFM=FB,
DDNAME=INPUT
IOTYPE=O,KEYREF=OUT8,RECNUM=5000,LRECL=133,RECFM=VBA,
DDNAME=OUTPUT
FLMALLOC
FLMTRNSL
COMPILE=DEF2,FUNCTN=BUILD,PORDER=0
FLMALLOC
FLMALLOC
IOTYPE=U,DDNAME=INPUT
IOTYPE=O,KEYREF=OUT6,RECNUM=5000,LRECL=133,RECFM=VBA,
DDNAME=LISTING
CC Archdef
SINC
OUT6
OUT8
mbr
mbr
MEMBERX
SOURCE
SOURCLST
ERRORLST
COMPILE=DEF1,FUNCTN=BUILD,PORDER=1
FLMALLOC
FLMALLOC
IOTYPE=S,KEYREF=SINC,RECNUM=5000,LRECL=80,RECFM=FB,
DDNAME=INPUT
IOTYPE=O,KEYREF=OUT8,RECNUM=5000,LRECL=133,RECFM=VBA,
DDNAME=OUTPUT
FLMTRNSL
COMPILE=DEF2,FUNCTN=BUILD,PORDER=1
FLMALLOC
FLMALLOC
IOTYPE=U,DDNAME=INPUT
IOTYPE=O,KEYREF=OUT6,RECNUM=5000,LRECL=133,RECFM=VBA,
DDNAME=LISTING
CC Archdef
SINC
OUT6
OUT8
PARM
294
ISPF/SCLM V4 Guide
mbr
SOURCE
mbr
SOURCLST
MEMBERX ERRORLST
XXX,AAAA
COMPILE=DEF1,FUNCTN=BUILD,PORDER=1,PARMKWD=PARM4
FLMALLOC
FLMALLOC
IOTYPE=S,KEYREF=SINC,RECNUM=5000,LRECL=80,RECFM=FB,
DDNAME=INPUT
IOTYPE=O,KEYREF=OUT8,RECNUM=5000,LRECL=133,RECFM=VBA,
DDNAME=OUTPUT
FLMTRNSL
COMPILE=DEF2,FUNCTN=BUILD,PORDER=1,PARMKWD=PARM7
FLMALLOC
FLMALLOC
IOTYPE=U,DDNAME=INPUT
IOTYPE=O,KEYREF=OUT6,RECNUM=5000,LRECL=133,RECFM=VBA,
DDNAME=LISTING
CC Archdef
SINC
OUT6
OUT8
PARM4
PARM7
mbr
SOURCE
mbr
SOURCLST
MEMBERX ERRORLST
XXX,AAAA
XXX,QQQQ
AUTOMATION
SCLM edit
change
H manipulate
Prod
part
Parse
I and
Integr.
Speichern
good
Dn
D2
Integrate M/C/S
I BUILD I
Developm
good
or
I
I TEST
good
see 1)
level of hierarchy
I PROMOTE
295
: SCLM41
Alternate - FLM
: HASINGH . . . TEAM
. . . INTE
. . . TEST
. SOURCE
.
(Blank or pattern for member selection list)
Initial Macro . .
Profile Name . . .
F1=Help
F2=Split
F10=Actions F12=Cancel
F7=Backward F8=Forward
F9=Swap
TUTORIAL
296
ISPF/SCLM V4 Guide
ASMH
PLIO
RELEASE
SOURCLST LOAD
ARCHDEF SOURCE OBJ
TEST
SOURCLST LOAD
ARCHDEF SOURCE OBJ
DEV1
DEV2
FLM01EQU
SOURCLST LOAD
ARCHDEF SOURCE OBJ
ARCHDEF SOURCE OBJ
SOURCLST LOAD
297
LOAD
INCL
COPY
INCLD
CMD
ALIAS
SINC
PROM
FLM01LD2 FLM01MD2
HL
LEC
FLM01AP1
FLM01LD3 FLM01MD3
HL
FLM01MD5
FLM01ARH
FLM01SB2
FLM01MD6
FLM01LD4 FLM01MD4
LEC
298
ISPF/SCLM V4 Guide
Architecture definition
Source part
:
.
.
.
SCLM41
Alternate - FLM
HASINGH
archdef
Enter / to select option
flm01ap1
/ Error Listings only
Mode . . 1 1.
2.
3.
4.
Output control:
Ex
Messages . . 3
Report . . . 3
Listings . . 3
Conditional
Unconditional
Forced
Report
Scope . . . 2 1.
2.
3.
4.
Sub
3
1. Terminal
3
2. Printer
3
3. Dataset
4. None
Process . . 1 1. Execute
2. Submit
F1=Help
F2=Split
F10=Actions F12=Cancel
F3=Exit
Limited
Normal
Subunit
Extended
Printer . . H
Volume . .
F7=Backward F8=Forward
F9=Swap
299
FLM01SB1
FLM01LD1 FLM01CMD FLM01MD1 FLM01MD1
Typ:
ARCHDEF H
H
H
Typ:
Typ:
Typ:
Typ:
ARCHDEF ARCHDEF OBJ
LOAD
LIST
FLM02MD2 FLM01MD1
FLM02LD2
H
H
H
Typ:
Typ:
Typ:
ARCHDEF
OBJ
LOAD
LIST
RELEASE
SOURCLST LOAD
ARCHDEF SOURCE OBJ
TEST
SOURCLST LOAD
ARCHDEF SOURCE OBJ
DEV1
DEV2
EDIT
H TEST H EXAMINE
II
300
ISPF/SCLM V4 Guide
H PROMOTE
Language Definition
..
ARCHDEF
ASMH
PLI
..
Parts have
Projec View:
H prjid.PROJDEFS.LOAD
associated Methods
Member prjid
...
ARCHDEF
ASMH
PLI
...
Project Views
Skills
(Methods)
and Archdefs
Archdef
:
.
.
.
SCLM41
HASINGH
ARCHDEF
FLM01AP1
Alternate - FLM
Mode . . 1 1. Conditional
2. Unconditional
3. Report
Scope . . . 1 1. Normal
2. Subunit
3. Extended
Output control:
Ex Sub
Messages . . 3 3
1. Terminal
Report . . . 3 3
2. Printer
3. Dataset
4. None
F1=Help
F2=Split
F10=Actions F12=Cancel
F3=Exit
Process . . 1 1. Execute
2. Submit
Printer . . H
Volume . .
F7=Backward F8=Forward
F9=Swap
301
RELEASE
TEST
FLM01MD3 FLM01MD3 FLM01MD3 FLM01MD3
SOURCLST LOAD
DEV1
DEV2
SOURCLST LOAD
ARCHDEF SOURCE OBJ
SOURCLST LOAD
ARCHDEF SOURCE OBJ
RELEASE
SOURCLST LOAD
ARCHDEF SOURCE OBJ
TEST
DEV1
DEV2
302
ISPF/SCLM V4 Guide
D
E
V
E
L
O
P
Concatenate Fixes
prjid1 to n
Baseline Rx.1
PROD
PROD
/ AC=,
AC=GLO
/ AC=,
Rx.2
prjid3(GLO)
prjid2(FIX)
TEST
Maintenance Rx.2
APLY
APLY
AC=prjid qa
NK
NK AC=FIX
Rx.3
/ AC=,
INTE
qaGLOBAL
qafix
AC=prjid
AC=GLO
AC=FIX
MENT
TEAM
LO
CALS dev
developer
devGLOBAL
devfix
AC=GLO
AC=FIX
Fixes
change the productive release, that is, Rx.1
Globals
are cross project functions
Maintenance are changes against the systest release, that is, Rx.2
Development represents the next release, that is, Rx.3
Locals
(or project globals) are subproject cross functions
The whole setup requires role management and separated account files.
PROMOTE
303
Invocation in:
304
ISPF/SCLM V4 Guide
BUILD a part
Read Account Record
Create customizable reports of SCLM data base
Delete part
Delete members, and their meta data of a defined group
End SCLM session
Export account records
Free SCLM id
Import account records
Init an SCLM id
Lock part
Migrate part
Parse part
Promote part
Create architecture report
Save part
Start SCLM Service Session
Store account record
Unlock part
RELEASE
Project
KEY=Y
View
TEST
KEY=Y
DEV1
DEV2
KEY=Y
KEY=Y
Alternate
RELEASE
Project
KEY=Y
View
Alternate
RELEASE
Project
KEY=Y
View
TEST
KEY=Y
FLM01MD1/A PROD
FLM01MD2/A
FLM01MD3/A A,B
FLM01MD4/B
FLM01MD5/B
FLM01MD6/B
TEST
A,B
INTEGRATION
FLM01MD1/A A,B
DEV2
DEV3
DEV1
FLM01MD1/A
FLM01MD1/T
FLM01MD1/T
FLM01MD2/B B,T
A,T
FLM01MD2/T A,T
FLM01MD4/A
FLM01MD5/B
FIX
F
DEVFIX
F
305
306
ISPF/SCLM V4 Guide
1a
PROD
PROD'
(AC=)
/
Method=COB2
Method=COB2
VERSION=COB2V1.0
VERSION=COB2TEST
OPTIONS=(NOTEST,..)
OPTIONS=(TEST,..)
2a
2
SYSTEST
SYSTEST'
(AC=)
/
2I3a
3a
3
TEST
TEST'
4
4
4
4a
4a
4a
307
308
ISPF/SCLM V4 Guide
Index
Special Characters
.RESP 129
.TYPE 129
.WINDOW 130
)PNTS 131
< a b > 129
< b o t i n s t > 127
< d t a f l d d > 127
< m s g > 131
< p s > 132
< t o p i n s t > 127
Numerics
3270 Environment
action bar 86
function key defaults 89
hardware terminals 85
input-fields 69
residual session in GUI 118
using CM Mouse 90
A
AB attribute type 127
ab tag 129
ABSL attribute type 127
AC Limits
accounting 153
Action Bars 128
ABAR 45
action bar pull-downs 8
changing 45
disabling in edit only 147
DTL tag definitions 39
Hilite Disabled 45
in 3270 mode 86
non-tabable 41
removing 42
ADDPOP 124, 125, 129
Agreement
AC 165
Audit Record 201
Build Map Record 201
Delta Reverse 200
Methods 179
Versioning 195
Agreements
Development 195
Edit 174
Fix 195
Maintenance 195
APPC
configuring for OS/2 103
APPC (continued)
control point 103
performance of 120
quick configure 98
C
Calendar 77
CEF attribute type 127
CH attribute type 127
Change Control
CCV Example Implementation 211
CCV must be 211
CCV to INFO/Mgmt. possible 211
character attribute override 136
checkboxes 133
CKBOX(ON) 133
CM Mouse
BDF and MMM examples 92
CM Mouse pop-ups 91
CM Mouse with ISPF 4.1 90
Color
CUA Attributes 71
edit hilite 15
Global Colors 71
language sensitive editing 15
point-and-shoot 70
Configuring
APPC for CM/2 103
TCP/IP for OS/2 99
Control
at BUILD 206
at edit 206
at PROMOTE 206
Consistency 206
Delimitation 206
Example 207
Integrity 206
User Exits 206
CT attribute type 127
CUA attribute types 127
D
Data Set List Utility 24
Data Set Management
Developer Data Sets 168
Production Data Sets 166
Delivery
ABARS 213
Export/Import 213
Full Source 213
Netview 213
description of ISPF C/S 121
309
GUI (continued)
special considerations 116
split screen 118, 149
starting from an icon 148
tabbing 117
TSO commands 118
GUI parameter on ISPSTART 123
GUISCRD parameter on ISPSTART 125
GUISCRW parameter on ISPSTART 125
E
EDIT 153
Editor
Edit Primary Command 72
removing highlighting 147
EE attribute type 127
Enter key 126, 131
ET attribute type 127
F
FIELD statement in )PNTS 132
FKA command 126
Forward Retrieve
RETF 30
FP attribute type 127
FRAME parameter on ISPSTART
frames, window 125
function key area 131
Function Keys
accessing reflists 67
default 3270 89
Function Keys status 76
Global Colors 58
Tailoring Display 59
functions key area 126
functions keys 126
125
G
GDDM support 136
Graphical User Interface
See GUI
GUI
changing colors 119
connecting the MVS host 114
downloading to your PC 110
editor 149
entering workstation commands 118
getting around in 117
invoking workstation server 112
PC enter key 117
performance of 120
problems with 115
residual 3270 session 118
310
ISPF/SCLM V4 Guide
J
Jump from leader dots
K
Keylist
change 53
create 50
creating 63
Keylist (continued)
delete 54
DTL tag definition 55
ISPFKEYS 48
ISPKYLST 57
ISPPROF 48
panel definition 57
Keylist Definitions
See ISPF
keylists 126
O
Overview
WSP/2 253
P
pad character 128
PADC 128
PAS 131
Performance Issues 120
PF keys
See Function Keys
PIN attribute type 127
Pinging the host 116
Point-and-Shoot
input-fields 69
noninput fields 69
user point-and-shoot 81
Point-and-Shoot Fields 9, 131
pop-up windows 129
PREFIX parameter on FKA command 126
PRINTDS Command 7
Project Control
CCM Overview 163
Hierarchy 169
Meta Project 164
Protection through AC 165
SCLM Project Manager's Basic Rules 164
Security through RACF 164
Project Management Environment
ISPF Systemdata set concatenation 159
ISPLLIB Data Set Concatenation 159
SYSEXEC Data Set Concatenation 159
SYSPROC Data Set Concatenation 159
TSO Systemdata sets 159
PS attribute type 128, 132
ps tag 132
PT attribute type 128
pull-down menus 128
push buttons 126, 131
L
LEF attribute type 127
LI attribute type 127
LIBDEF
dialog query LIBDEF facility 35
display utility 36
search order for ISPLLIB 37
stack facility 33
library management 153
LID attribute type 127
line-mode output 136
LU 6.2
See APPC
M
Management
Account records 206
Audit records 206
Build map records 206
Mapping File
EPFMAPM.DAT 254
EPFMAPV.DAT 254
Member Selection List 10
message boxes 129
Message ID 29
Meta Project
Simple Implementation 221
Microsoft Windows
configuring TCP/IP 107
hang with FTP 108
MNEM 129
mnemonics 129
modal dialogs 129
modeless dialogs 134
Mouse in 3270
See CM Mouse
multipmt 133
Multivolume Data Set Support 27
N
NEF attribute type 127
NOPREFIX parameter on FKA command
NT attribute type 127
126
RACF Protection
reasons for using ISPF C/S 121
Referral List
definition 61
personal lists 61
reference lists 61
RefMode 61
shared list 65
Referral Lists 10
RefList
See Referral List
Retrieve Pop-Up
RETP 31
Role Management
SCLM Project Manager 174
Index
311
TSO
handling output 118, 148
printds command 148
TSO Commands
ELISTA 159
LISTA ST H 159
U
User Status
T
TCP/IP
configuring for OS/2 99
performance of 120
quick configure 98
title bar text 124
TITLE parameter on ISPSTART
Tool Integration 207
Transmission Control Protocol
See TCP/IP
312
ISPF/SCLM V4 Guide
124
80
View Facility 13
VOI attribute type 128
VSAM
building a profile data set 22
changing a profile data set 24
using a profile data set 23
VSAM file 153
VTAM definitions 103
W
WASL attribute type 128
window frames 125
WINDOW parameter on )BODY statement
Windows (Microsoft)
See Microsoft Windows
WINSOCK.DLL problem 110
workstation command interface 135
WSCMD 135
WT attribute type 128
Z
ZAPPTTL 124
ZGUI 124, 133
ZPF variables 126
ZWINTTL 124
125
Printed in U.S.A.
GG24-4407-00