SC34 2088 2_ISPF_Dialog_Mangement_MVS_Mar85 2 ISPF Dialog Mangement MVS Mar85
SC34-2088-2_ISPF_Dialog_Mangement_MVS_Mar85 SC34-2088-2_ISPF_Dialog_Mangement_MVS_Mar85
User Manual: SC34-2088-2_ISPF_Dialog_Mangement_MVS_Mar85
Open the PDF directly: View PDF
.
Page Count: 362
| Download | |
| Open PDF In Browser | View PDF |
--...----- --- - ---
e ee e
Interactive
System Productivity Facility
(ISPF)
Dialog Management
Services
MVS, VM/SP, and VSElAF
Publication Number
SC34-2088-2
File Number
S370/4300-39
Program Number
·5668-960
Third Edition (March 1985)
This edition applies to the program product Interactive System
Productivity Facility (ISPF) as shown in the table below, and to
all subsequent releases and modifications until otherwise
indicated in new editions or Technical Newsletters.
I
System Release
ISPF
I
I
I
I
I
Changes are made periodically to the information herein.
Therefore, before using this publication, consult the latest IBN
System 370 and 4300 Processors Bibliography (GC20-0001) for the
editions that are applicable and current.
References in this publication to IBM products, programs, or
services do not imply that IBN intends to make these available
in all countries in which IBM operates. Any reference to an IBN
program product in this document is not intended to state or
imply that only IBM's program product may be used. Any
functionally equivalent program may be used instead.
Publications are not stocked at the address given below.
Requests for copies of IBM publications should be made to your
IBN representative or to the branch office serving your
locality.
A form for readers' comments has been provided at the back of
this publication. If this form has been removed, address
comments to: IBM Corporation, Systems Publications, Dept. T46,
P.O. Box 60000, Cary, NC 27511. IBN may use or distribute
whatever information you supply in any way it believes
appropriate without incurring any obligation to you.
Copyright International Business Machines Corporation 1982,
1983, 1984, 1985
©
I
MVS 3.8 1 VN/SP 1.01 VSE/AF 1.3.51 VSE/AF 2.11
5746-XE8 1 5666-301 1
1
1
I
I
1
1
5668-960 1 5668-960 1
5668-9601 5668-960 I
I
PREFACE
The Interactive System Productivity Facility (ISPF) and the ISPF/Program
Development Facility (ISPF/PDF or PDF) are related IBM program products.
Together, they are designed to improve user productivity in the
development of applications, and contain special functions for the
development and use of interactive applications, called dialogs.
Specifically:
•
ISPF is a dialog manager for interactive applications. It provides
control and services to support execution of the dialogs in the MVS,
VM/SP, and VSE environments.
•
PDF is a facility that aids in the development of dialogs and other
types of applications. It makes use of display terminals and an
interactive environment to help with many programming tasks.
This manual provides a detailed description of the dialog management
services and related information required to develop and use an
interactive application that runs under ISPF. It is assumed that the
reader is an application or systems programmer, engaged in the
development of interactive programs, who is familiar with the host
operating system environment; or is the user of an application running
under ISPF. Users who do not develop programs may wish to read only the
following parts of' the manual, which describe application user
functions:
Chapter 1, selected topic:
Processing a Dialog
Chapter 2, selected topics:
Online Tutorial
Split Screen
ISPF Parms Option
Chapter 3, selected topics:
Command Entry
System Commands
Terminal Keys
Light Pen and Cursor Select
Appendix B
The first five chapters of this manual describe how to use ISPF
facilities to support the operation of interactive applications
dialog organization, use of variables, library setup, invocation of
dialogs, etc. Following that are detailed descriptions of each dialog
service, and then detailed formats for panel, message, and file
definitions. Finally, the appendixes contain a description of PARMS
option use, an example of using the DISPLAY and TBDISPL services, a
services summary, character translations for APL, TEXT, and Katakana
keyboards, how to use the command table utility, and the appendix
described below.
Preface
iii
For the MVS and VM/SP operating systems, the dialog management functions
of ISPF and the program development functions of PDF were previously
combined in the predecessor program product, the System Productivity
Facility (SPF). Major changes from SPF are described in an Appendix G.
ISPF Dialog Management Services Examples (SC34-2085) is a supplement to
this manual and provides examples (in CLIST, EXEC 2, COBOL, FORTRAN, and
PL/I) of ISPF application dialogs. Other related publications are:
VSE
~IVS
SC34-2089
SC34-2090
SC34-2079
ISPF/PDF Reference tells how to use the
Program Development Facility.
SC34-2084
SC34-2083
SC34-2080
ISPF and ISPF/PDF Installation and
Customization provides information
needed to install ISPF and PDF and to
custom tailor these products for a
particular installation.
SYNTAX NOTATION
In this manual, the following notation conventions are used:
•
Uppercase commands and their operands should be entered as shown.
Operands shown in lowercase are variable; a value should be
substituted for them.
•
Operands shown in brackets [] are optional, with a choice indicated
by vertical bars I. One or none may be chosen; the defaults are
underscored.
•
Operands shown in braces { } are alternatives; one must be chosen.
•
An ellipsis ( ... ) indicates that the parameter shown may be repeated
to specify additional items of the same category.
TERMINOLOGY
In this manual, the following terms are used to bridge the differences
in terminology between the MVS, VM/SP, and VSE environments:
iv
•
Library - A partitioned data set in the MVS environment, a MACLIB in
the VM/SP environment, a VSE/AF source library in the VSE/AF 1.3.5
environment, or a VSE/AF library in the VSE/AF 2.1 environment.
•
File - A sequential data set in the MVS environment, a sequential
CMS file in the VM/SP environment, or a sequential data set in the
VSE environment.
•
Command Procedure - A CLIST in the MVS environment, or an EXEC in
the VM/SP environment.
ISPF Dialog Management Services
CONTENTS
I
1
Chapter 1. Introduction
Using ISPF Services
Developing a Dialog
An Example of a Dialog
Processing a Dialog
. . . .
MVS and VM/SP: Invoking an ISPF Application
VSE: Invoking an ISPF Application
Invoking an ISPF Application from a Master Application Menu
Data Communications Within ISPF
. . . . . .
Parts of a Dialog
.........
. . . .
2
3
4
5
5
5
6
7
7
9
Chapter 2. Dialog Processing Concepts
Dialog Organization
.... .
Control Facilities
..... .
MVS and VM/SP: Starting a Dialog
VSE: Starting a Dialog
....
The SELECT Service
Online Tutorial
Split Screen
ISPF PARMS Option
Dialog Services Overview
Display Services
Panel Definitions
Message Definitions
Table Services
.....
Table Residency
. . . .
. . . . .
Accessing Data
. . . . .
General Services
. . . . .
MVS, VM/SP, and VSE/AF 1.3.5: Resource Protection
VSE/AF 2.1: Resource Protection
.....
Row Services
... .
Example
..... .
Table Size
..... .
File Tailoring Services
Skeleton Files
Example
..... .
Variable Services
Variable Access - Order of Search from Services
Select Service and Variable Pools
...... .
Relationship of Function Pools to Dialog Functions
MVS and VM/SP: The Function Pool for Command Procedures
The Function Pool for Programs
. . . .
The Shared Pool
.....
. . . .
The Application Profile Pool
Representation of Variables
System Variables
.....
Summary of Variable Services
9
12
12
12
14
16
16
17
17
17
18
20
22
23
23
24
25
25
26
26
28
28
29
31
32
32
33
35
35
36
38
38
39
40
42
Contents
v
Miscellaneous Services
....
EDIT and BROWSE Services
LOG Service
CONTROL Service
VM/SP: Use of the Virtual Machine Communication Facility
I
vi
(V~fCF)
42
42
43
43
44
Chapter 3. Use of Commands, Program Keys, and Light Pen
Command Entry
System Commands
STOPAT Command
END and RETURN Commands
Jump Function
Scrolling
Command Tables
Command Table Format
SELECT Action Commands
Assigning Command Aliases
Overriding System Commands
Passing Commands to a Dialog Function
Dynamically Specified Command Actions
Terminal Keys
..... .
Program Function Keys
Defining PF Keys
.....
Saving PF Key Definitions
.....
MVS and VM/SP: Program Access (PA) Keys
VSE: Program Access (PA) Keys
Light Pen and Cursor Select
45
Chapter 4. Library Requirements
MVS: Library Setup
... .
Required Libraries
..... .
Table and File Tailoring Libraries
CLIST and Program Libraries
...... .
VM/SP: Library Setup
......... .
Required Libraries
...... .
Table and File Tailoring Libraries
EXEC and Program Libraries
Restrictions on Use of MODULE Files
MVS and VM/SP: Use of Libraries
VSE/AF 1.3.5: Library Setup
Required Libraries
. . . . .
Library Definition
........ .
Table and File Tailoring Libraries
... .
VSE/AF 1.3.5: Use of Libraries
VSE/AF 2.1: Library Setup
Required Libraries
Library Definition
Table and File Tailoring Libraries
VSE/AF 2.1: Use of Libraries
65
Chapter 5. I nvocation and Termination
MVS and VM/SP: Invocation of ISPF
VSE: Invocation of ISPF
ISPSTART Syntax
.....
87
ISPF Dialog Management Services
45
47
49
50
51
52
53
54
55
56
56
57
58
59
59
60
62
62
63
63
65
65
66
67
68
68
69
71
72
72
73
73
74
78
78
79
79
80
84
85
87
87
88
Test Modes
Trace Modes
Dialog Initiation and Termination
SELECT Service Invocation
VSE: Dialog Abend Intercept
Batch Execution of ISPF Services
TSO Batch Environment
Sample Batch Job
Error Processing
VM/SP Batch Environment
Sample Batch Job
Error Processing
VSE Batch Environment
Sample Batch Job
Error Processing
91
93
93
93
95
95
95
96
96
98
98
98
100
100
101
Chapter 6. Description of Services
I
\
Invocation of Services
.... .
Command Invocation
..... .
VM/SP: Using the &PRESUME Statement
Call Invocation
....
Parameters
. . . . . . . .
Return Codes from Services
MVS and VM/SP: Return Codes from Services
....
VSE: Return Codes and Other Processing Considerations
FORTRAN
. . . . . . . .
PL/I
. . . .
COBOL
........... .
Services
....
. . . . . . . .
BROWSE - MVS or VM/SP: Display a Data Set or File
BROWSE - VSE: Display a Library or File
CONTROL - Set Processing Modes
....... .
DISPLAY - Display Panels and Messages
... .
EDIT - MVS or VM/SP: EDIT a Data Set or File
EDIT - VSE: EDIT a Library or File
FTCLOSE - End File Tailorlng
....
FTERASE - Erase File Tailoring Output
FTINCL - Include a Skeleton
..... .
FTOPEN - Begin File Tailoring
LOG - Write a Message to the Log File
SELECT - Select a Panel or Function
SETMSG - Set Next Message
.... .
TBADD - Add a Row to a Table
.... .
TBBOTTOM - Set the Row Pointer to Bottom
....
... .
TBCLOSE - Close and Save a Table
......... .
TBCREATE - Create a New Table
. . . . . . . . .
TBDELETE - Delete a Row from a Table
. . . . .
TBDISPL - Display Table Information
. . . . . .
TBEND - Close a Table without Saving
.....
. . . . .
TBERASE - Erase a Table
.....
TBEXIST - Determine if a Row Exists in a Table
TBGET - Retrieve a Row from a Table
TBMOD - Modify a Row in a Table
... .
TBOPEN - Open a Table
......... .
Contents
103
103
103
105
105
108
109
110
111
111
111
112
112
113
116
120
124
126
129
133
135
136
137
139
140
145
147
149
150
153
155
156
162
163
164
165
167
169
vii
TBPUT - Update a Row in a Table
TBQUERY - Obtain Table Information
TBSARG - Define a Search Argument
TBSAVE - Save a Table
. . . . .
TBSCAN - Search A Table
TBSKIP - Move the Row Pointer
....
TBTOP - Set the Row Pointer to the Top
TBVCLEAR - Clear Variables
....
VCOPY - Create a Copy of a Variable
... .
VDEFINE - Define Function Variables
... .
VDELETE - Remove a Definition of Function Variables
VGET - Retrieve Variables from a Pool or Profile
VPUT - Update Variables in a Pool or Profile
VREPLACE - Replace a Variable
....
VRESET - Reset Function Variables
viii
171
173
175
177
180
182
184
185
186
188
191
192
194
196
198
Chapter 7. Panel and Message Definition and Skeleton Formats
Panel Definitions
.....
Formatting Guidelines
Syntax Rules and Restrictions
General Rules
Blanks and Comments
Lists
....
....
. . ..
... .
Variables within Text Fields and Literal Expressions
... .
Attribute Section
.....
Default Attribute Characters
Statement Formats
Panel Body Section
.....
Command and Message Fields
Sample Body Section
Model Section
..... .
Initialization and Processing Sections
Statement Formats
........ .
Control Variables
........ .
Default Cursor Positioning
.... .
"Zit Variables as Field Name Placeholders
Panel Processing Considerations
Special Panel Requirements
.... .
Menus
. . ..
. .. .
Primary Option Menus
..... .
Set Next Menu
. . . . . . . .
Examples of Menus
Help/Tutorial Panels
Table Display Panels
Message Definitions
Message ID
Nessage Library
Syntax Rules
Skeleton Definitions
Data Records
Control Statements
Sample Skeleton File
199
199
200
202
203
203
204
205
206
206
207
210
211
211
213
213
214
223
226
226
227
228
229
232
233
234
239
243
251
251
251
253
254
255
256
258
Appendix A. Using the DISPLAY Service
261
ISPF Dialog Management Services
Reading List
............... .
Steps in Function Processing
..... .
Description of Steps in Function Processing
262
263
264
Appendix B. Using the ISPF PARMS Option
Specify Terminal Characteristics (Option 0.1)
MVS: Specify Log and List Defaults (Option 0.2)
VMjSP: Specify Console, Log, and List Defaults (Option 0.2)
VSE: Specify Log and List Defaults (Option 0.2)
.....
Specify Program Function Keys (Option 0.3)
275
Appendix C. Using the TBDISPL Service
Steps in Function Processing
.....
Description of Steps in Function Processing
289
Appendix D. Command Table Utility
297
Appendix E. Summary of ISPF Syntax
Invoking an ISPF Application
Message Definitions
Skeleton Control Statements
Panel Definitions
Panel Header Statements
Attribute Section
Body Section
Model Section
Initialization Section
Processing Section
. . . .
Statement Specifying the End of a Panel Definition
Panel Statements and Built-in Functions
Attribute Section
Initialization and Processing Sections
....
Panel Control Variables
. . . .
Dialog Services
.....
Command Invocation Syntax
Display Services
Table Services - General
Table Services - Row Operations
. . . .
File Tailoring Services
. . . . . . . . .
Variable Services
........... .
Other Services
... .
Call Invocation Syntax
... .
Display Services
. . . .
Table Services - General
Table Services - Row Operations
File Tailoring Services
Variable Services
Other Services
301
301
301
301
302
Appendix F. VDEFINE Exit Routine
311
Appendix G. Character Translations for APL, TEXT, and
...................... .
Katakana
313
275
279
281
282
284
290
291
302
302
302
302
302
302
303
303
303
303
303
304
304
304
304
305
305
306
306
307
307
307
308
308
309
309
Contents
ix
x
Appendix H. MVS and VM/SP: Summary of Changes From SPF
New and Revised Functions
. . . . . . . . .
Migration of Dialogs from SPF to ISPF
....
....
317
317
320
Appendix I. VM/SP: Use of Shared Minidisks
323
Index
325
ISPF Dialog Management Services
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.
Developing a Dialog Using PDF
Application Dialog Running Under ISPF
Typical Dialog Starting with a Menu
Typical Dialog Starting with a Function
Control and Data Flow
SELECT Service Used To Invoke and Process a Dialog
Sample Panel Definition
Sample Panel - When Displayed
Sample Member in Message Library
Sample Table
Sample Skeleton File
Control and Data Flow in a Dialog
Default Program Key Arrangement
PF Key Definition Panel
Use of Light Pen Attribute
ISPDEF Statement Parameters and Libraries to Which They Apply
Relationship Between Defaults Specified by the '*' Libname
Statement and Unspecified ISPF Libraries.
ISPDEF Statement Parameters and Libraries to Which They Apply
Relationship Between Defaults Specified by the '*' Libname
Statement and Unspecified ISPF Libraries.Sublibraries
~lVS Batch Job
V~l/SP Batch Job
VSE/AF 1.3.5 Batch Job
VSE/AF 2.1 Batch Job
Sample Panel Definition
Sample Panel - When Displayed
Sample Panel with TRANS and TRUNC
Sample Panel with IF Statement
Sample Panel with Verification
Sample Panel with Control Variables
Example of "z" Variable Placeholders
Master Application Menu
ISPF Primary Option Menu
Lower-Level Menu
Sample Tutorial Hierarchy
Sample Tutorial Panel (B)
Sample Tutorial Panel (F2)
Table Display Panel Definition
Current Contents of Table
Table as Displayed
Table Display Panel Definition with Multiple Model Lines
Table as Displayed with Multiple Model Lines
Sample Member in Message Library
Sample Skeleton File
Five Rows in Table Library Member TAB1 (TAB1 is Referenced by
Steps 1b, 3a, 6a, and 8a)
Figures
4
6
10
11
13
15
19
21
22
23
30
34
60
61
64
76
77
82
83
97
99
100
101
212
213
217
219
222
225
227
235
237
238
241
242
243
247
247
248
249
250
252
259
268
xi
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
xii
Panel Library Member, Panel Definition SER (Used in Steps 2a,
4a, and 7 a ) .
Panel Display SER (Displayed by Steps 2a, 4a, and 7a)
Panel Display SER With an ISPF-provided Message Superimposed
on Line 1 (Displayable During Steps 2a and 7a)
Message Library Member EMPX21 (Used by Steps 4a, 5b, and 7a)
Panel Display SER With the Short Form of Message EMPX210
Superimposed on Line 1 (Displayed by Step 4a)
Panel Display SER With the Long Form of Message EMPX210
Superimposed on Line 3 (Displayable During Step 4a)
Panel Library Member, Panel Definition DATA (Used in Step 5b)
Panel Display DATA (Displayed by Step 5b)
Parameter Options Menu
Terminal Characteristics Panel (MVS and VM/SP)
Terminal Characteristics Panel (VSE)
.
Log and List Defaults Panel (MVS)
Console, Log, and List Defaults Panel (VM/SP)
Log and List Defaults Panel (VSE)
PF Key Definition Panel (12 PF Keys)
PF Key Definition Panels (24 PF Keys)
Table TAB1 Contents
Table TAB1 as Displayed
Table Display Panel Definition T1PANEL
Command Table Utility Partel
Command Table Editing Panel
Internal Character Representations for APL Keyboards
Internal Character Representations for Text Keyboards
ISPF Dialog Management Services
268
269
270
270
271
272
273
274
275
276
277
279
281
283
285
284
294
294
295
298
299
314
315
CHAPTER 1. INTRODUCTION
The Interactive System Productivity Facility (ISPF) Program Product
provides dialog management services in three environments:
•
MVS Time Sharing Option (TSO)
•
VM/SP Conversational Monitor System (CMS)
•
VSE/lnteractive Computing and Control Facility (ICCF)
Conceptually, ISPF is an extension to these host systems. ISPF services
are complementary to those of the host system and are expressly designed
to implement interactive processing.
ISPF provides services to interactive applications that run under its
control. Developers of these applications rely on ISPF to:
•
Display predefined screen images and messages
•
Originate and maintain tables of user information
•
Generate output files for job submission or other processing
•
Define and control symbolic variables
•
Interface to edit and browse facilities (ISPF/PDF must be installed
to make these facilities available), and log hardcopy output
•
Control operational modes during processing
An application that runs under ISPF is called a dialog.
coding may be done in:
Application
•
In MVS and VM/SP, a command procedure language (CLIST or EXEC 2).
•
A programming language, such as PL/I, COBOL, or FORTRAN.
following compilers may be used:
The
In MVS and VM/SP:
PL/I Optimizer 5734-PL1
COBOL 5740-CB1
FORTRAN IV G1 5734-F02
Chapter 1. Introduction
1
In VSE:
PL/I (Release 6) 5736-PLl
COBOL (Release 3) 5746-CBl
VS FORTRAN (Release 4) 5748-F03
A developer may use more than one language in·a dialog. For example,
within a single dialog containing three functions, each function could
be written using a different language, such as PL/I, COBOL, and FORTRAN.
In MVS and VM/SP, one (or more) of the functions could be written using
a command procedure language (CLIST or EXEC 2) instead of a programming
language.
A dialog coded in a programming language may be designed for
cross-system use, to be processed by ISPF running under MVS, VM/SP, or
VSE.
USING ISPF SERVICES
When a dialog is running under ISPF, ISPF services are invoked from a
dialog function, at the point where the service is desired, by a command
(in MVS and VMjSP only) or a call statement. (In VSE, dialog functions
cannot be written as ICCF procedures).
•
In MVS and VM/SP, dialog functions coded in a command procedure
language invoke ISPF services by means of the ISPEXEC command; for
example:
i, p e')(
~ 1.)-
~ ISP~EC
DISPLAY PANEL(XYZ)
This example invokes a service that displays information on a 3270
screen (such displays are called panels). A panel definition named
XYZ, prepared by the developer and prestored in the ISPF panel
library, specifies both the content and the format of the display.
•
Dialog functions coded in a programming language invoke ISPF
services by calling a service interface routine named ISPLINK; for
example, in PL/I~: f'Ii,
I'
,.. ."). !l'~
. r t..--N
.../ CALL ISPLINK ('DISPLAY', 'XYZ ');
i'
This example invokes a service that displays information on a 3270
screen (such displays are called panels). ISPLINK is a small
program module distributed with ISPF. (Because FORTRAN allows only
six characters in a called module's name, the module may also be
called by using the 6-character name ISPLNK).
In MVS and VM/SP, ISPLINK may be called from programs coded in any
language that uses standard OS register conventions for call interfaces,
and the standard convention for signaling the end of a variable length
2
ISPF Dialog Management Services
parameter list. Assembler programs must include code to implement the
standard save area convention.
In VSE, programs issuing requests for ISPF services must adhere to the
standard call, save, return linkage described in "Program Linkage" in
the DOS/VSE Macro User's Guide, GC24-5139.
More examples of ISPF services requests may be found with each service
description in Chapter 6, "Description of Services."
DEVELOPING A DIALOG
A developer, using an editor such as the edit option of the ISPF/Program
Development Facility (ISPF/PDF, or simply PDF), develops a dialog by
entering its various components from a terminal and storing them in
libraries.
Any available editor may be used by a developer when creating dialog
components; however, PDF does provide special facilities to aid dialog
development and testing. Figure 1 shows a developer using PDF to create
and test dialog components. 1
Two types of components generally present in dialogs are functions
(command procedures or programs) and panel definitions. A function is
created in the same way as any command procedure or program and stored
in an appropriate host system library or CMS EXEC file.
A panel definition specifies a 3270 display image. The definition
specifies both the content and format of a particular display. It is
created by a dialog developer at a 3270 terminal and, when completed, is
saved as a member of an ISPF panel library.·
The panel definition requires no compilation or preprocessing step and
closely resembles the appearance of the 3270 display screen that it
specifies. Each character position in the panel definition is mapped to
the same relative position on the display screen.
Panel definitions specify where variable data and literal data are to
appear on the 3270 display screen. The developer specifies the place on
a display where he wants a variable to appear by entering the variable's
name at the same place in the panel definition. Literal data is
specified by entering the literal itself on the panel definition at the
place at which it is to appear on the screen.
When the developer completes the functions, panel definitions, and any
other dialog components (such as messages, tables, and file tailoring
1
Using PDF facilities to aid in dialog development and testing is
described in ISPF/PDF Reference. See, particularly, "Using Dialog
Development Models" and "Dialog Test (Option 7)" in that manual.
Chapter 1. Introduction
3
Operating System
ISPF
EJ EJ
EJ EJ
. B
EJ
Message
Library
Panel
Library
A
ISPF/PDF
...
.......
y
)
Table
Library
File Tailoring
Skeleton Library
*Log and
List Files
File Tailoring
Output Files
ISPF Libraries
and Files
....
~
Dialog Developer
...
.... ~
"f
.... t
1
......
. . . ,. Opera ting
Syste m Program
or Co mmand
~
Procedure Library
'1
*In addition to being an output file, the log file can be browsed
and is an input file when PDF option 7.5 is in effect.
Figure 1.
Developing a Dialog Using PDF
skeletons) required by the application being developed, the dialog is
ready to be processed under ISPF.
AN EXAMPLE OF A DIALOG
An example of a dialog (consisting of a function, messages, and two
display panel definitions) appears in Appendix A, "Using the DISPLAY
Service" on page 261. This appendix includes a list of sections of this
publication (a reading list) containing information needed to understand
the example.
4
ISPF Dialog Management Services
PROCESSING A DIALOG
Figure 2 shows a dialog being processed under ISPF. ISPF dialog
services are available only to command procedures or programs running
under ISPF.
Dialog processing begins either with the display of a selection panel
(also called a menu) that provides the user with a choice of actions, or
with a function. The developer determines, when he designs the dialog,
whether it will begin with a menu or a function.
In either case, the user can invoke a dialog from a 3270 terminal
running under control of TSO, eMS, or IeeF.
MVS and VM/SP: I nvoking an ISPF Application
In MVS and V~1/SP, an ISPF application is invoked from a 3270 running
under TSO or eMS by use of the ISPSTART command; for example:
•
ISPSTART PANEL(ABC)
This command invokes ISPF and specifies that dialog processing
is to begin with display of a selection panel named ABC from the
panel library.
•
ISPSTART CMD(DEF)
This command invokes ISPF and specifies that dialog processing
is to begin with a command procedure function (CLIST or EXEC 2)
named DEF.
•
ISPSTART PGM(GHI)
This command invokes ISPF and specifies that dialog processing
is to begin with a program function named GHI.
VSE: I nvoki ng an I SPF Application
In VSE, an ISPF application is invoked from a 3270 running under ICCF by
use of an ICCF procedure. Assuming that the name of this procedure is
ISPSTART, ISPF is invoked by a single command; for example:
•
ISPSTART 'PANEL(ABC),
This command invokes ISPSTART, an ICCF procedure, which, in
turn, invokes ISPF. 'PANEL(ABC), specifies that dialog
processing is to begin with display of a selection panel named
ABC from the panel library.
•
ISPSTART 'PGM(GHI) LANG(COBOL) ,
Chapter 1. Introduction
5
Operating System
ISPF
BB
BB
BB
Panel
Library
Application
Dialog
Table
Library
Log and
List Files
Message
Library
File Tailoring
Skeleton Library
File Tailoringl
Output Files
Application User
Figure 2.
ISPF Libraries
and Files
Operating
System Program
or Command
Procedure Library
Application Dialog Running Under ISPF
This command invokes
turn, invokes ISPF.
dialog processing is
which was written in
ISPSTART, an IeCF procedure, which, in
'PGM(GHI) LANG (COBOL) , specifies that
to begin with a program function named GHI,
the COBOL programming language.
Invoking an ISPF Application from a Master Application Menu
At installations that provide an ISPF master application menu, the user
can invoke a dialog by making appropriate selections on that menu, or on
that menu and one or more subsequently displayed menus. (A master
application menu is one from which any of the installation's
applications may be invoked. It generally is displayed at the outset of
each ISPF session.) In these installations, the master menu is
generally invoked by the ISPSTART command or an ICCF procedure invoked
(with no operands) at a terminal.
In ~lVS and V~1/SP, ISPSTART may be issued automatically as part of a
user's logon procedure. Also, the ISPSTART command may be issued from a
command procedure (CLIST or EXEC 2).
6
ISPF Dialog Management Services
DATA COMMUNICATIONS WITHIN ISPF
Data is communicated within a dialog and to ISPF services by means of
dialog variables. A dialog variable is a character string referred to
by a symbolic name. Dialog variables may be defined and used in panels,
messages, skeleton definitions, and in functions that comprise a dialog.
For example, a dialog variable name can be defined in a panel definition
and be referenced in a function of the same dialog. Or, the variable
can be defined in a function and used in a panel definition to
initialize information on a display panel, and then used to store data
entered by the user on the display panel.
For functions coded in a programming language, the internal program
variables that are to be used as dialog variables may be identified to
ISPF through the use of the ISPF VDEFINE service, or the program may
access and update dialog variables by using the ISPF VCOPY and VREPLACE
services. These services do not apply to commana procedures.
In MVS and VMjSP, for functions coded as a command procedure (CLIST or
EXEC 2), variables used in the procedure are automatically treated as
dialog variables; no special action is required to define them to ISPF.
PARTS OF A DIALOG
In summary, a dialog is any application designed to be run under the
control of the ISPF dialog manager. Each dialog is composed of program
and data elements, which allow an orderly interaction between the
computer and the user of the application. The types of elements that
make up a dialog are:
•
Functions - a function is a command procedure or a program that
performs processing requested by the user. It may invoke ISPF
dialog services to display panels and messages, build and maintain
tables, generate output files, and control operational modes.
•
Panels - a panel is a predefined display image. It may be a menu, a
data entry panel) or an information-only panel. t-lost panels prompt
the user for input. The user response may identify which path is to
be taken through the dialog, or it may be interpreted as data.
•
Messages - a message is a comment that provides special information
to the user. It may confirm that a user-requested action is in
progress or completed, or report an error in the user's input.
Messages may be directed to the user's terminal and superimposed on
the display to which they apply, to a hardcopy log, or both.
•
Tables - a table is a two-dimensional array used to maintain data.
A table may be created as a temporary data repository, or it may be
retained across sessions. A retained table may also be shared among
several applications. The type and amount of data stored in a table
depends upon the nature of the application.
Chapter 1. Introduction
7
•
File Tailoring Skeletons - a file tailoring skeleton (or simply a
skeleton) is a generalized representation of sequential data that
may be customized during dialog execution to produce an output file.
The output file may be used to drive other processes. File
skeletons are frequently used to produce job files for batch
execution.
A dialog need not include all types of elements. In particular, tables
and skeletons may not be needed, depending upon the type of application.
Panel definitions, message definitions, and skeletons are stored in
libraries prior to execution of the dialog. They are created by editing
directly into the panel, message, or skeleton libraries; no compile or
preprocessing step is required.
Tables are generated and updated during dialog execution. The
organization of each table is specified to ISPF by the functions that
use ISPF.
8
ISPF Dialog Management Services
CHAPTER 2. DIALOG PROCESSING CONCEPTS
This chapter describes basic concepts of dialog organization and
control, and the capabilities of the ISPF dialog management services.
DIALOG ORGANIZATION
A dialog may be organized in a variety of ways to suit the requirements
of the application and the needs of the application user.
A typical dialog organization, shown in Figure 3, starts with display of
the highest menu in a hierarchy (called the primary option menu) for the
application. User options selected from this menu may result in the
invocation of a dialog function, or the display of a lower-level menu.
Each lower-level menu may also cause functions to receive control, or
still other menus to be displayed. The menu hierarchy may extend as
many levels deep as desired.
Note: Menus are also called selection panels. In this
publication, the terms are used interchangeably.
Eventually, a dialog function receives control. The function may use
any of the dialog services provided by ISPF. In particular, the
function may continue the interaction with the user by means of the
DISPLAY service. Typically, the function displays data entry panels to
prompt the user for information.
When the function ends, the menu from which it was invoked is
redisplayed.
Figure 4 shows another type of dialog organization in which a dialog
function receives control first, prior to the display of a menu. The
function may perform application-dependent initialization, and display
data entry panels to prompt the user for basic information. It may then
start the selection process by using the SELECT service to display the
primary option menu for the application.
As shown in Figure 4, a function may also invoke another function, using
SELECT, without displaying a menu. (In MVS and VMjSP, this provides a
convenient way to pass control from a program-coded function to a
command-coded function, or vice versa.) The invoked function then starts
a lower-level menu process, again by using the SELECT service.
Chapter 2. Dialog Processing Concepts
9
START
I
1
V
-;':
.,~
-;':
#~
.,,:
Nenu
.,'~
.,~
.,~
.,,:
.,'r
I
1
I
I
I
I
1
I
V
I
I
1
V
V
'it:
Dialog
Nenu
,'\
Function
.,'r
.,'(
'it:
,'(
,,:
.,tr
.,,:
.,'r
,,:
'it:
.,,:
~':
~':
Nenu
.,,:
.,tr
I
I
I
I
I
.,~
.,'r
*
I
1
I
I
1
V
V
I
I
1
V
1
I
I
V
I
I
V
V
I
Dialog
Function
.,,:
I
,,:
I
1-->,;'(
1
-;':
1
I
.,~
.,,:
.,,:
10
Typical Dialog Starting with a Nenu
ISPF Dialog Nanagement Services
.,'c
,tr
'it:
-,,:
Entry
,,:
Figure 3.
,,:
Data
.,"(
.,'~
';~
START
I
1
V
I
1
..
1
1<-->,,:
1
II
'i~
~"
;':
Dialog
Function
-;'(
'it:
I
'i~
~~
Data
Entry
Panels
'i~
-;':
i~
i~
4~
i'~
,,\
i~
1
V
-;'(
i'(
.,,,
.,~
..,,,
i'lenu
'i':
.,'\
,~
.,~
"it:
I
1
1
1
1
V
V
I
i'r
it:
;'r
Nenu
"i':
i~
V
.,'(
.,'(
,;'c
.,'(
'it:
it:
'it:
.,'c
.,,,
~~
I
1
.,'c
Dialog
.,'c
Nenu
Function
.,~
.,,,
"it:
I
J
I
1
1
V
V
V
I
V
1
I
V
1
1
V
Dialog
I
I
1
1
1
1
1
Function
>1
1
1
1
1
~--------------~II~
.,,,
Dialog
.,~
Function
.
Nenu
>,'~
~
";':
";~
'it:
'i'(
______________~
~,j
ho1 e -~/
Figure 4.
4'\
.,'(
I
1
I
I
I
V
V
V
Typical Dialog Starting with a Function
Chapter 2. Dialog Processing Concepts
11
CONTROL FACILITIES
Control and data flow are shown in Figure 5.
A dialog is started by means of the ISPSTART command or, in VSE, by
means of an IeCF procedure. ISPSTART is the recommended name for this
procedure and, in this publication, that is the name used.
MVS AND VM/SP: STARTING A DIALOG
In NVS and V~l/SP, a dialog is started by the ISPSTART command.
ISPSTART command may be entered in various ways:
The
•
By a user at the terminal
•
From a command procedure (CLIST or EXEC 2)
•
During LOGON (from a TSO LOGON procedure or CMS PROFILE EXEC)
ISPSTART command parameters specify the first menu to be displayed or
the first dialog function to receive control (prior to the display of a
menu). In this case, the ISPSTART command is typically entered during
LOGON or from a command procedure.
Example:
A user begins an application from his terminal by entering the ABC
command. ABC allocates the appropriate libraries for the
application, and then issues an ISPSTART command to begin ISPF
processing. Thus, the ABC command serves as a "front end" to start
the application. ABC cannot use ISPF dialog services, because it
does not run under ISPF.
VSE: STARTING A DIALOG
In VSE, a dialog is started by an ICCF procedure, generally named
ISPSTART. This procedure may be invoked directly from a terminal. A
parameter, passed in the command that invokes the ISPSTART procedure,
specifies the first menu to be displayed or the first dialog function to
receive control (prior to display of any menu).
Example:
A user invokes an application from his terminal by invoking an ICeF
procedure named ISPSTART. This procedure defines libraries for the
application and invokes ISPF. The procedure cannot use ISPF dialog
services, because it does not run under ISPF.
12
ISPF Dialog Management Services
- In MVS and VM/SP, ISPSTART is a command
- In VSE, ISPSTART is an ICCF procedure
ISPSTART
I
1
1
1
V
I
I
ISPF
I
1INITIALIZATION 1
I
1
I
I
I
I
1
V
I
I
I
I
1
1
I
I
I
I
I
1
1
1
1
1
1
1
1
I
I
V
I
1
1
1
1
A
N
>1
1 A
I G
E
1
R
1
1
1
I
Control flow
Figure 5.
flow
1
1
I
I
1<···········1I
TABLE
SERVICES
1
1
1
I
1
1<··········>1I
1
1
I
I
1
1
1
1
1
1
1
1
1
II
1
I
DATA
TABLES
I
1
1
MESSAGE
LIBRARY
1
1
1
PANEL
LIBRARY
1
G
1
I
I
I
1<···········1I
1
1
I
I
1
I M 'I
DIALOG
FUNCTION
I
0
1
I
I PROFILE
I
IVARIABLE POOLI
I
1<··········>1 LIBRARY 1
1
1
..... > Data
VARIABLE
SERVICES
D
I I I
I A I DISPLAY
L 1 SERVICES
>1
SELECT
SERVICE
-->
I
FILE
TAILORING
SERVICES
1<···········1
1
SKELETON
LIBRARY
I
1
1
1
I
I
I
1
1···········>1
OUTPUT
FILES
Control and Data Flow
Chapter 2. Dialog Processing Concepts
13
THE SELECT SERVICE
SELECT is both a control facility and a dialog service. SELECT is used
by ISPF during its initialization to invoke a function or selection
panel that begins a dialog.
During dialog processing, SELECT may be used in the dialog to display
menus and invoke program or command procedure functions.
Parameters passed to SELECT specify the next action as follows (CMD
applies only in MVS and VM/SP; in VSE, dialog functions may not be
written as ICCF procedures):
PANEL(panel-name)
CMD(command)
PGM(program-name)
The PANEL parameter specifies the name
displayed. The CMD and PGM parameters
as a command or program, respectively)
parameters may be passed to the dialog
specification or, for programs, by the
of the next panel to be
specify a dialog function (coded
to receive control. Input
function as part of the command
use of the PARM parameter.
Figure 6 emphasizes that the SELECT service is used when invoking and
when processing a dialog. After SELECT is used to start a dialog, it is
used by the dialog, as a dialog service, to invoke a function or to
display a menu. In turn, that function or menu may use SELECT to invoke
another function or to display another menu. This function or menu may,
in turn, using SELECT, invoke still another function or menu. This
process may continue for many levels and establishes a hierarchy of
invoked functions and menus. There is no restriction as to the number
of levels allowed in this hierarchy.
When a lower-level function or menu in the hierarchy completes its
processing, control is returned to the higher-level function or menu
from which it was invoked. The higher-level function resumes its
processing or the higher-level menu is redisplayed for the user to make
another selection. Thus, SELECT is used in a dialog to establish a
hierarchy of functions and menus and this hierarchy determines the
sequence in which dialog functions and menus are processed, including
the sequence in which they are terminated.
In MVS and VM/SP, dialog functions written as command procedures may
directly invoke other functions written as command procedures without
using the SELECT service.
Program-coded functions can invoke another function only through using
the SELECT service. Thus when a progr~m~coded function calls another
program directly, without using the SELECT service, the called program
is treated as part of the function that called it. It is not treated as
a new dialog function by ISPF.
The scope of a dialog function is defined as the period of time from the
invocation of a function to its termination.
14
ISPF Dialog Management Services
1
- In MVS and VM/SP, ISPSTART is a command
1
1
ISPSTART
- In VSE, ISPSTART is an ICCF procedure
1
1
1
1
1
V
r
Begin
ISPF
1
1
1
1
1
1
V
1
1
1
1
.------->
SELECT
Service
1
1
1
1
Display
1<---->
1
Menu
1
1
1
1
Select Lower 1
Level Menu 1
<_ _ _ _ _----'1
1
1
1
Invoke
Function
DISPLAY
Service
1
1
1
1
1
1
V
1 Select
L <
1
Lower 1
1
1
Display 1
Dialog 1<
> I
Level Menu
FunctionlData Entry I
or Function I
IPanel
I
I
I
~I
Figure 6.
_ _ _~I
~I
_ _ _ _ _ _~
SELECT Service Used To Invoke and Process a Dialog
Chapter 2. Dialog Processing Concepts
15
ONLINE TUTORIAL
A tutorial is a set of panels that provides online information for a
user of an application. A dialog developer may include tutorial panels
with his dialog to be displayed at the option of the user. Generally,
the developer incorporates information that is helpful to a first-time
user or is instructive about the actions the user may select when some
particular condition occurs during application processing.
The program that displays tutorial panels is part of ISPF.
entered in either of two ways:
It may be
•
As an option from a menu
•
Indirectly from any non-tutorial panel when the user enters the HELP
command
Transfer in and out of the tutorial using the HELP command is
transparent to the dialog functions.
Tutorial panels are arranged in a hierarchy. When the tutorial is
entered from a menu, the first panel to be displayed is normally the top
of the hierarchy. When the tutorial is entered by invoking the HELP
command, the first panel to be displayed is a panel within the
hierarchy, appropriate to what the user was doing when the HELP command
was invoked.
When viewing a tutorial, the user may select topics by number (or other
appropriate code), or simply press the ENTER key to view the next topic.
On any tutorial panel, the user may also enter the following commands:
BACK
or B - to return to the previously viewed tutorial panel
SKIP
or S - to skip to the next topic
UP
or U - to display a higher-level list of topics
TOP
or T - to display the table of contents
INDEX or I - to display the tutorial index
When the user ends the tutorial, by means of the END or RETURN command,
the panel from which the tutorial was entered is redisplayed.
SPLIT SCREEN
At any time during a dialog, the user may partition the display screen
into two "logical" screens. The two logical screens are treated as
though they were independent terminals. ISPF provides control for
mapping the two logical screens onto the physical screen. (Panels that
are displayed by the DISPLAY service always pertain to a logical
screen. )
16
ISPF Dialog Management Services
In split screen mode, only one of the logical screens is considered
active at a time. The location of the cursor identifies the active
screen.
Use of split screen mode and the size of each logical screen is under
control of the user and is transparent to the dialog function.
In VSE, user dialog functions are restricted to one logical screen.
While a user dialog function may be executed on either logical screen,
it may not be executed on both logical screens concurrently. This
restriction does not apply to ISPF and ISPF/PDF functions.
Split screen mode is entered by invoking the SPLIT command. This
command is also used to reposition the split line that separates the two
logical screens. Thus, the size of a logical screen may be changed by
use of the SPLIT command. Split screen mode is terminated by ending the
application on either logical screen. The remaining logical screen is
then expanded to its full size.
ISPF PARMS OPTION
ISPF includes a facility, generally referred to as "ISPF PARHS," that
allows a user to specify terminal characteristics, default options for
processing the ISPF list and log files, and program function (PF) key
assignments. This facility operates as a dialog and may be invoked from
other dialogs. Typically, it should be included as an option on an
application's primary option menu. See "Primary Option Menu" on
page 235 for an example of how to specify the invocation of the ISPF
PARHS option. See Appendix B, "Using the ISPF PARHS Option" for a
description of how to use the PARMS option.
DIALOG SERVICES OVERVIEW
The display services, table services, file tailoring services, variable
services, and miscellaneous services available to dialogs are described
in the following sections.
Display Services
The display services allow a dialog to display information and interpret
responses from the user. There are three display services:
•
DISPLAY - Display a panel
•
TBDISPL - Display a table
•
SETMSG
- Display a message on the next panel
The DISPLAY service reads panel definitions from the panel library,
initializes variable information in the panel from the corresponding
dialog variables in the function, shared, or profile pools, and displays
Chapter 2. Dialog Processing Concepts
17
the panel on the screen.
the panel display.
Optionally, a message may be superimposed on
After the user has entered information, it is stored in the
corresponding dialog variables in the function, shared, or profile
pools, and the DISPLAY service returns to the calling function.
Use of the DISPLAY service is illustrated in Appendix A, "Using the
DISPLAY Service."
The TBDISPL service combines information from panel definitions with
information stored in ISPF tables. It display3 selected columns from a
table, and allows the user to identify rows for processing. The user
may scroll the table information up and down (see "Scrolling" in Chapter
3, "Use of Commands, Program Keys, and Light Pen").
Panel definitions used by the table display service contain
non-scrollable text, including column headings, followed by one or more
"model lines" that specify how each row from the table is to be
formatted in the scrollable area of the display.
Use of the TBDISPL service is illustrated in Appendix C, "Using the
TBDISPL Service."
The SET~ISG service constructs a specified message in a system save area.
The message will be superimposed on the next panel displayed by any ISPF
service.
Panel Definitions
A panel definition consists of up to five sections:
18
•
Attribute section (optional) - defines the special characters that
will be used in the body of the panel definition to represent
attribute (start of field) bytes. Default attribute characters,
which may be overridden, are provided.
•
Body section (required) - defines the format of the panel as seen by
the user, and defines the name of each variable field on the panel.
•
Model section (required for table display; not allowed for other
types of panels) - specifies the format for displaying each row of
the table.
•
Initialization section (optional) - specifies the initial processing
that is to occur prior to displaying the panel. This section is
typically used to define how variables are to be initialized.
•
Processing section (optional) - specifies processing that is to
occur after the panel has been displayed. This section typically is
used to define how variables are to be verified and/or translated.
ISPF Dialog Management Services
The panel definition syntax is fully described in Chapter 7, "Panel and
Message Definition and Skeleton Formats."
Panel definitions are created by editing directly into the panel
library; no compile or preprocessing step is required. Each panel
definition is a member in the library, and is identified by member
na~e.
A sample panel definition is shown in Figure 7. It consists of a panel
body followed by an ")END" control statement. It has no attribute,
initialization, or processing sections. It uses the default attribute
characters, namely:
% (percent sign) - text (protected) field, high intensity
- text (protected) field, low intensity
(underscore)
- input (unprotected) field, high intensity
+ (plus sign)
)BODY
%---------------------------- ENPLOYEE RECORDS
~~COM~lAND
------------------------------
+
==> ZCND
%
%EMPLOYEE SERIAL: &ENPSER
+
+
+
+
+
+
+
+
+
+
+
+
TYPE OF CHANGE%===> TYPECHG +
EMPLOYEE NAME:
LAST
%===> LNA~1E
FIRST %===> FNANE
INITIAL%===> 1+
+
+
+
+
+
+
HOME ADDRESS:
LINE 1 %===>
LINE 2 %===>
LINE 3 %===>
LINE 4 %===>
(NEW, UPDATE, OR DELETE)
+
+
+
+
+
+
ADDR1
ADDR2
ADDR3
ADDR4
HOME PHONE:
AREA CODE
%===> PHA+
LOCAL NUMBER%===> PHNUM
+
)END
Figure 7.
Sample Panel Definition
For text fields, the information following the attribute character ("%"
or "+") is the text to be displayed. Text fields may contain
substitutable variables consisting of an ampersand (&) followed by a
dialog variable name. The ampersand and name are replaced with the
value of the variable prior to displaying the panel.
Chapter 2. Dialog Processing Concepts
19
For input fields, a dialog variable name immediately follows the
attribute character ("_") with no intervening ampersand. The name is
replaced with the value of the variable prior to displaying the panel,
and any information entered by the user is stored in the variable after
the panel has been displayed.
The panel in Figure 7 has eleven input fields (ZCMD, TYPECHG, LNAME,
etc.), indicated with underscores. It also has a substitutable variable
(EMPSER) within a text field (on line 5). The first three lines of the
panel and the arrows preceding the input fields are all highlighted, as
indicated by percent signs. The other text fields are low intensity, as
indicated by plus signs.
Before the panel is displayed, all variables in the panel body are
automatically initialized from the corresponding dialog variables (ZCMD,
TYPECHG, LNAME, etc.) and EMPSER. After the panel has been displayed
and the user has finished entering requested input and depresses the
ENTER key, the input fields are automatically stored into the
corresponding dialog variables.
Figure 8 shows the panel as it appears when displayed, assuming that the
current value of EMPSER is "123456", and that the other variables are
initially null or blank. Panel variables that are blank are initialized
to null.
Message Definitions
Message definitions are created by dialog developers, using an editor,
and are saved in a member of the message library; no compile or
preprocessing step is required. Each member of the library may contain
several messages. Messages are referenced by message id.
Each message in the message library consists of two lines.
line contains the message id, and optionally:
The first
•
The short message text, enclosed in apostrophes (')
•
The name of the corresponding help panel (if the user requests help
when the message is displayed)
•
The audible alarm indicator (yes or no)
The second line contains the long message text, enclosed in apostrophes.
Short messages are displayed in the upper right-hand corner of the
screen. If the user enters the HELP command (or presses the Help PF
key), the long message is then displayed on line 3 of the screen. If
the user requests help again, tutorial mode is entered.
Note:
The default screen positions for short and long messages
(upper right-hand corner and line 3, respectively) may be changed
by a dialog developer specifying some other position in the panel
definition.
20
ISPF Dialog Management Services
If a short message is not specified, the long message is displayed
first. If the user then requests help, tutorial mode is entered.
Variable names, preceded by an ampersand (&), may appear anywhere within
the short and long message text, and are replaced in the display with
their current value.
---------------------------COMNAND ==>
ENPLOYEE RECORDS
------------------------------
EMPLOYEE SERIAL: 123456
TYPE OF CHANGE
===>
(NEW, UPDATE, OR DELETE)
ENPLOYEE NA~1E:
LAST
===>
FIRST
===>
INITIAL ===>
HOHE ADDRESS:
LINE 1 ===>
LINE 2 ===>
LINE 3 ===>
LINE 4 ===>
HOME PHONE:
AREA CODE
LOCAL NUHBER
Figure 8.
==>
===>
Sample Panel - When Displayed
Figure 9 shows an example of a member in the message library. This
member contains all messages that begin with a message id of "EMPX21".
The message definition syntax is fully described in "Message
Definitions" in Chapter 7, "Panel and Message Definition and Skeleton
Formats."
Chapter 2. Dialog Processing Concepts
21
EMPX210 'INVALID TYPE OF CHANGE'
.HELP=PERS033
'TYPE OF CHANGE MUST BE NEW, UPDATE, OR DELETE. '
. ALAR~1=YES
EMPX213 'ENTER FIRST NA~1E'
. HELP=PERS034
. ALARM=YES
'EMPLOYEE NAME MUST BE ENTERED FOR TYPE OF CHANGE = NEW OR UPDATE. '
EMPX214 'ENTER LAST NAME'
.HELP=PERS034
.ALARM=YES
'EMPLOYEE NAME NUST BE ENTERED FOR TYPE OF CHANGE = NEW OR UPDATE. '
ENPX215 'ENTER HOME ADDRESS'
.HELP=PERS035
. ALAR~I=YES
'HOME ADDRESS MUST BE ENTERED FOR TYPE OF CHANGE = NEW OR UPDATE. '
EMPX216 'AREA CODE INVALID'
'AREA CODE &PHA IS NOT DEFINED.
.ALARM=YES
PLEASE CHECK THE PHONE BOOK. '
EMPX217 '&EMPSER ADDED'
'ENPLOYEE &LNAME, &FNAME &1 ADDED TO FILE.'
EMPX218 '&EMPSER UPDATED'
'RECORDS FOR &LNAME, &FNAME &1 UPDATED. '
EMPX219 '&E~IPSER DELETED'
'RECORDS FOR &LNAME, &FNAME &1 DELETED.'
Figure 9.
Sample Member in Message Library
Table Services
Table services allow sets of dialog variables to be maintained and
accessed. A table is a 2-dimensional array of information in which each
column corresponds to a dialog variable, and each row contains a set of
values for those variables.
A table is shown in Figure 10.
define the columns are:
EMPSER
LNAME
FNAME
I
PHA
PHNUM
-
In this example, the variables that
Employee Serial Number
Last Name
First Name
Middle Initial
Home Phone: Area Code
Home Phone: Local Number
<',
22
ISPF Dialog Management Services
EMPSER
LNAME
FNAME
I
PHA
PHNUM
598304
172397
813058
395733
502774
Robertson
Smith
Russell
Adams
Caruso
Richard
Susan
Charles
John
Vincent
P
A
L
Q
J
301
301
202
202
914
840-1224
547-8465
338-9557
477-1776
294-1168
Figure 10.
Sample Table
Table Residency
A table may be either temporary or permanent. A temporary table exists
only in virtual storage, it cannot be written to disk storage. A
permanent table, while created in virtual storage, may be saved on
direct access storage. It may be opened for update or for read-only
access, at which time the entire table is read into virtual storage.
When a table is being updated (in virtual storage), the copy of the
table on direct access storage cannot be accessed until the update has
been completed.
Permanent tables are maintained in one or more table libraries, in which
each member contains an entire table.
For both temporary and permanent tables, rows are accessed and updated
from the in-storage copy. A permanent table that has been accessed
read-only may be modified in virtual storage, but may not be written
back to disk storage.
When a permanent table is opened for processing, it is read from a table
input library. When the table is saved, it is written to a table output
library that may be different from the input library. The input and
output libraries should be the same if the updated version of the table
is to be reopened for further processing by the same dialog. See
Chapter 4, "Library Requirements," for a discussion of libraries.
Accessing Data
The variable names that define the columns of a table are specified when
the table is created. Each variable is specified as either a KEY field
or a NAME (non-key) field. One or more columns (variable names) may be
specified as keys for accessing the table. For the table shown in
Figure 10, EMPSER might be defined as the key variable. Or EMPSER and
LNAME might both be defined as keys, in which case a row would be found
only if EMPSER and LNAME both match the current values of those
variables. A table may also be accessed by one or more "argument"
Chapter 2. Dialog Processing Concepts
23
variables, that need not be key variables. The variables that
constitute the search argument may be defined dynamically by means of
the TBSARG and TBSCAN services.
In addition, a table may be accessed by use of the "current row pointer"
(CRP). The table may be scanned by moving the CRP forward or back. A
row is retrieved each time the CRP is moved. When a table is opened,
the CRP is automatically positioned to TOP -- ahead of the first row.
When a row is retrieved from a table, the contents of the row are stored
into the corresponding dialog variables. When a row is stored (updated
or added), the contents of the dialog variables are saved in that row.
When a row is stored, a list of "extension" variables may be specified
by name. These extension variables, and their values, are added to the
row. This permits variables to be stored in the row that were not
specified when the table was created. A list of extension variable
names for a row may be obtained when the row is read. If the list of
extension variables is not respecified when the row is rewritten, the
extensions are deleted.
General Services
The following services operate on an entire table:
TBCREATE Creates a new table and opens it for processing
TBOPEN
Opens an existing (permanent) table for processing
TBQUERY Obtains information about a table
TBSAVE
Saves a permanent copy of a table without closing
TBCLOSE Closes a table, and saves a permanent copy if the table was
opened in WRITE mode
TBEND
Closes a table without saving
TBERASE Deletes a permanent table from the table output library
Temporary tables are created by TBCREATE (NOWRITE mode) and deleted by
either TBEND or TBCLOSE. A new permanent table is created by TBCREATE
(WRITE mode). This simply creates the table in virtual storage. The
table does not become permanent until it is stored on direct access
storage by either TBSAVE or TBCLOSE.
An existing permanent table is opened and read into virtual storage by
TBOPEN. If the table is to be updated (WRITE mode), the new copy is
saved by either TBSAVE or TBCLOSE. If ~t is not to be updated (NOWRITE
mode), the virtual storage copy is deleted by either TBEND or TBCLOSE.
24
ISPF Dialog Management Services
MVS, VM/SP, and VSE/AF 1.3.5:
Resource Protection
Table services provides a resource protection mechanism designed to
prevent concurrent updating of the same table by multiple users. This
protection mechanism is built on the assumption that all users who may
want to update a given table will have the same first library definition
for ISPTLIB.
When a table is opened or created in write mode, an exclusive enqueue
(MVS and CMS) or lock (VSE) is requested for a resource name consisting
of the first library name in the ISPTLIB definition concatenated with
the table name. The TBOPEN orTBCREATE service fails with a return code
of 12 if this enqueue or lock is unsuccessful. A successful enqueue or
lock stays in effect until the completion of a TBEND or TBCLOSE service
for the table. If the NAME parameter is specified on the TBSAVE or
TBCLOSE service, an additional exclusive enqueue or lock is issued. The
resource name consists of the first library name in the ISPTLIB
definition concatenated with the name specified in the NAME parameter.
If this enqueue or lock fails, the service terminates with a return code
of 12 and the table is not written.
The table output library represented by the ISPTABL definition is
protected from concurrent output operations from any ISPF function
through a separate mechanism not specific to table services. Volume
protection prevents physically writing to the same volume by more than
one user at a time.
VSE/AF 2.1:
Resource Protection
Table services provides a resource protection mechanism designed to
prevent concurrent updating of the same table by multiple users .. This
protection mechanism is built on the assumption that all users who may
want to update a given table will have the same first library definition
for ISPTLIB.
When a table is opened or created in write mode, an exclusive lock is
requested for a resource name consisting of the first library.sublibrary
name in the ISPTLIB definition concatenated with the table name. The
TBOPEN or TBCREATE service fails with a return code of 12 if this lock
is unsuccessful. A successful lock stays in effect until the completion
of a TBEND or TBCLOSE service for the table. If the NAME parameter is
specified on the TBSAVE or TBCLOSE service, an additional exclusive lock
is issued. The resource name consists of the first library.sublibrary
name in the ISPTLIB definition concatenated with the name specified in
the NAME parameter. If this lock fails, the service terminates with a
return code of 12 and the table is not written.
The table output library represented by the ISPTABL definition is
protected from concurrent output operations from any ISPF function
through a separate mechanism not specific to table services. Volume
protection prevents physically writing to the same volume by more than
one user at a time.
Chapter 2. Dialog Processing Concepts
25
Row Services
The following services operate on a row of the table:
TBADD
Adds a new row to the table
TBDELETE Deletes a row from the table
TBGET
Retrieves a row from the table
TBPUT
Updates an existing row in the table
TBMOD
Updates a row in the table if it exists (if the keys match);
otherwise, adds a new row to the table
TBEXI ST Tests for the existence of a row (by key)
TBSCAN
Searches a table for a row that matches a list of "argument"
variables, and retrieves the row
TBSARG
Establishes a search argument for use with TBSCAN
TBTOP
Sets CRP to TOP (ahead of the first row)
TBBOTTOM Sets CRP to the last row and retrieves the row
TBSK I P
Moves the CRP forward or back by a specified number of rows,
and then retrieves the row at whi~h the CRP is positioned
TB VCLEAR Sets dialog variables (that correspond 'to variables in the
table) to null
Example
The following series of commands demonstrate the use of table services
(also see Appendix C, "Using the TBDISPL Service"):
1.
Create a permanent table, named DALPHA, to consist of dialog
variables AA, BB, andCC. AA is the key field; BB and CC are name
fields.
ISPEXEC TBCREATE DALPHA KEYS(AA) NAMES(BB Ce) WRITE
DALPHA
AA
26
ISPF Dialog Management Services
BB
CC
2.
Display a panel named XYZ. (This panel requests a user to enter
values for dialog variables AA, BB, and CC, which are used in
following steps of this example.)
ISPEXEC DISPLAY PANEL (XYZ)
3.
Assume the user enters the following values on panel XYZ:
AA = Pauly John
BB = W590
CC = Jones Beach
ISPF automatically updates dialog variables AA, BB, and CC -- in the
function variable pool -- with the user-entered values.
Record these values in the table DALPHA.
ISPEXEC TBADD DALPHA
DALPHA
I
I
I
I
BB
AA
IPauly John
W590
cc
IJones Beachl
I
II
I
II
4.
I
I
I
II
Assume the following values for dialog variables AA, BB, and CC are
entered by a user, as in step 2, through a panel display operation:
AA
BB
CC
= Clark
= Y200
= Bar
Joan
Harbor
Record these values in table DALPHA.
ISPEXEC TBADD DALPHA
DALPHA
I
AA
BB
I
I
Pauly John I W590
Clark Joanl Y200
I
I
I
CC
I
I
I
IJones Beachl
IBar Harbor I
I
I
I
I
Table services adds a row to table DALPHA immediately following the
row added by the previous TBADD. Following the TBADD, the current
row pointer (CRP) is positioned at the newly added row. (Before a
row is added by the the TBADD service, table service scans the table
to determine if the KEY field of the new row to be added duplicates
Chapter 2. Dialog Processing Concepts
27
the KEY field of an existing row.
performed.)
5.
If it does, the TBADD is not
Save table DALPHA (by writing it to the table output library) for
later use.
ISPEXEC TBCLOSE DALPHA
The table DALPHA is written from virtual storage to member DALPHA in
the table library.
Table Size
The length of any row in a table cannot exceed 65,536 bytes.
can be computed as follows:
The length
Row size = 22 + 4a + b + 9c
where:
a = total number of variables in the row including extensions
b = total length of variable data in the row
c = total number of extension variables in the row
The total table size is the sum of the row lengths, plus the length of
the data table control block (DTCB). The length of the DTCB can be
computed as follows:
DTCB length
= 152
+ 16d
where:
d = total number of columns (not including extension
variables) in the table
The number of tables that may be processed at one time is limited only
by the amount of available virtual storage.
File Tailoring Services
File tailoring services read skeleton files from a library and write
tailored output that may be used to drive other functions. Frequently,
file tailoring is used to generate job files for batch execution.
The file tailoring output may be directed to a library or sequential
file that has been specified by the dialog function, or it may be
directed to a temporary sequential file provided by ISPF. The name of
the temporary file is available in system variable ZTEMPF. In MVS,
ZTEMPF contains a data set name; in VM/SP and VSE, ZTEMPF contains a
filename.
28
ISPF Dialog Management Services
Skeleton Files
Each skeleton file is read record-by-record. Each record is scanned to
find any dialog variable names (preceded by an ampersand). When a
variable name is found, its current value is substituted from a variable
pool (see "Variable Access - Order of Search from Services").
Skeleton file records may also contain statements that control
processing. These statements provide the ability to:
•
Set dialog variables
•
Imbed other skeleton files
•
Conditionally include records
•
Iteratively process records in which variables from each row of a
table are substituted
When iteratively processing records, file tailoring services read each
row from a specified table. If the table was already open (prior to
processing the skeleton), it remains open with the CRP positioned at
TOP. If the table was not already open, file tailoring opens it
automatically and closes it upon completion of processing.
A sample skeleton file is shown in Figure 11. It contains MVS job
control language (JCL) for an assembly and optional load-go. In an MVS
environment, the ta~Jore~output could be submitted to the background
for execution. In ~/S~),.,environment, it could be punched to an MVS
machine for batch
executfon~_ _ _ _.__ ............" .._. "
,," ....
_<~..;:A
Chapter 2. Dialog Processing Concepts
29
EXEC PG~l=IFOXOO, REGION=128K,
IIASM
PARM=(&ASMPARMS)
II
IISYSIN
DD DSN=&ASHIN(&~IEHBER) ,DISP=SHR
IISYSLIB
DD DSN=SYS1.MACLIB,DISP=SHR
) SEL &ASM~lAC 1 .,= &Z
II
DD DSN=&ASMMAC1,DISP=SHR
)SEL &ASHHAC2 .,= &Z
1/
DD DSN=&ASMHAC2,DISP=SHR
)ENDSEL
)ENDSEL
IISYSUT1
DD UNIT=SYSDA,SPACE=(CYL,(5,2))
IISYSUT2
DD UNIT=SYSDA,SPACE=(CYL,(2,1))
IISYSUT3
DD UNIT=SYSDA,SPACE=(CYL,(2,1))
IISYSPRINT DD BYSOUT=(&ASNPRT)
)CM
IF USER SPECIFIED "GO", WRITE OUTPUT IN TEMP DATA SET
)CM
THEN IHBED "LINK AND GO" SKELETON
)SEL &GOSTEP = YES
I/SYSGO
DD DSN=&&&&OBJSET,UNIT=SYSDA,SPACE=(CYL,(2,1)),
II
DISP=(HOD,PASS)
)IM
LINKGO
)ENDSEL
)CM
ELSE (NOGO), WRITE OUTPUT TO USER DATA SET
)SEL &GOSTEP = NO
I/SYSGO
DD DSN=&ASMOUT(&MEMBER),DISP=OLD
)ENDSEL
I / ..~
Figure 11.
Sample Skeleton File
The sample skeleton references several dialog variables (ASMPARMS,
ASMIN, MEMBER, etc.). It also illustrates use of select statements
")SEL" and ")ENDSEL" to conditionally include records. The first part
of the example has nested selects to include concatenated macro
libraries if the library names have been specified by the user (i.e., if
variables ASMMAC1 and ASMMAC2 are not equal to the null variable Z).
In the second part of the example, select statements are used to
conditionally execute a load-go step. An imbed statement, ")IM", is
used to bring in a separate skeleton for the load-go step.
The file tailoring services are:
30
FTOPEN
Prepares the file tailoring process, and specifies whether the
temporary file is to be used for output.
FTINCL
Specifies the skeleton to be used, and starts the tailoring
process.
ISPF Dialog Management Services
FTCLOSE Ends the file tailoring process.
FTERASE Erases (deletes) an output file created by file tailoring.
Example
The following example illustrates file tailoring services.
example assume that:
•
For this
LABLSKEL is a member in the file tailoring skeleton library,
containing:
LABLSKEL
)DOT DALPHA
NAME: &AA
APARTMENT: &BB
CITY: &CC
YEAR: &ZYEAR
)ENDDOT
ZYEAR is the name of an ISPF system variable that contains the
current year.
•
DALPHA is a member in the table library, containing:
DALPHA
I
AA
I
I
Pauly John I
Clark Joan I
II
1.
I
BB
W590
Y200
I
I
CC
I
IJones Beachl
IBar Harbor I
II
II
Issue ISPF commands to process skeleton LABLSKEL. Obtain values for
dialog variables AA, BB, and CC from table DALPHA. The resulting
file tailoring output consists of one address label for each row of
information in table DALPHA.
ISPEXEC
ISPEXEC
FTOPEN
FTINCL LABLSKEL
FTOPEN prepares for access (opens) both the file tailoring skeleton
and file tailoring output libraries. These libraries must have been
allocated before starting the ISPF session.
FTINCL performs the file tailoring process using the file tailoring
skeleton named LABLSKEL. LABLSKEL contains the file tailoring
controls, )DOT and )ENDDOT, which specify the use of table DALPHA.
Chapter 2. Dialog Processing Concepts
31
2.
Write the resulting file tailoring output to a member named LABLOUT
in the file tailoring output library
ISPEXEC
3.
FTCLOSE NAME (LABLOUT)
At the conclusion of processing the above commands, file tailoring
output library member LAB LOUT contains:
LAB LOUT
NANE:
AP ART~1ENT :
CITY:
YEAR:
NANE:
AP ART~lENT :
CITY:
YEAR:
Pauly John
W590
Jones Beach
82
Clark Joan
Y200
Bar Harbor
82
Variable Services
Variable services allow the definition and use of dialog variables.
Dialog variables are the main communication vehicle between dialog
functions (program modules or command procedures) and ISPF services.
Program modules, command procedures, panels, messages, tables, and
skeletons can all reference the same data through the use of dialog
variables.
A dialog variable's value is a character string that may vary in length
from zero to 32K bytes. Some services restrict the length of dialog
variable data. For example, dialog variables used as input or output
fields in panels are limited to a length of 255 bytes.
Dialog variables are referenced symbolically, by name. The name is
composed of one to eight characters (six, for FORTRAN). Alphameric
characters (A-Z, 0-9, #, $, or @) are used in the name, but the first
character may not be numeric.
Variable Access - Order of Search from Services
Dialog variables are organized into groups (or pools) according to the
dialog function and application with which they are associated. (See
the SELECT service for a description of how the dialog developer can
control creation of these pools.)
A pool may be thought of as a list of variable names that enables ISPF
to access the associated values. When an ISPF service encounters a
dialog variable name (in a panel, message, table, or skeleton) it
searches these pools to access the dialog variable's value. The pools
and the types of dialog variables that reside in them are shown below in
the standard search sequence used by ISPF services.
32
ISPF Dialog Management Services
Function pool - A variable that resides in the function pool of the
in control is called a function variable. It is
acc'e'ssible only by that function. (tlJo51tt elite.".. ;"-I('il CL/),T/EXEC)
~c.t~~~.!!:)currently
2.
Shared pool - A variable that resides in the shared pool of the
current application is called a shared variable. It is accessible
only by functions belonging to the same application.
Application profile pool - A variable that resides in the
application profile pool is called an application profile variable
and is automatically retained for the user from one session to
another. Profile variables are automatically available wheniin
application begins and are automatically saved when it ends.
Select Service and Variable Pools
Figure 12 shows how the SELECT service may be used to pass control
within a dialog and illustrates the resulting variable pool structures.
The flow is shown from the initial command entry through menus and
through dialog functions. ISPF access to dialog variables is shown at
each point.
(0 y""vc1
1
i>1,J
I:~I
Initially, menus A and B are processed. Since menus a~ not part of any
function, all variables are accessed from the shared and profile pools.
Function X is invoked and uses the VPUT service to copy one of the
var1ables from its function pool into the shared pool. Next, function Y
is invoked. Function Y is shown using the VGET service to copy the
dialog variable from tlie shared pool to its function pool and then using
the SELECT service for further menu processing.
Chapter 2. Dialog Processing Concepts
33
J
.
I
I
I
I
r====================l
ISPSTART PANEL(A)
v
..~
..~
Menu
A
..~
.~
H
------
..~
*
S
..~
Variable Data Flow
Menu"~
* <=========================>
B
I
.~
-II
I SELECT PGM(X)
I
A
R
E
D
A
P
P
L
I
C
A
P
V
r============
Variable
II
I
I <=============>1 I Function
T
I
a
a
a
L
N
I
Function
X
I
IL ______ __ I - - __ JI
Data Flow
I
I
I
I SELECT PGM(Y)
I
V
r - - - - - - - - - - - - -1
I I Pool for
II
X
L==============
I
VPUT +===>
+======
VGET I
V
r==============
II
<=============> II Function
Data Flow
I I Pool for
II
Y
I
I Function
I
Y
IL-I ___--'
I
I SELECT
I
Variable
P
R
a
F
I
L
E
P
a
a
L
L=============
PANEL(C)
V
~'r
.,tr
*
Menu
C
-;t.r
*
*
*
Menu
D
*
Variable Data Flow
* <=========================>
*
L==================
Figure 12.
34
Control and Data Flow in a Dialog
ISPF Dialog Management Services
J
Figure 12 also shows how the SELECT service controls access to dialog
variable pools from both functions and menus.
When a variable is defined as an input variable on a menu, the following
actions apply during processing of the menu:
•
If the variable does not exist in either the shared pool or the
profile, it is created in the shared pool.
•
If the variable exists in the shared pool, it is accessed from, and
is updated in, the shared pool.
•
If the variable exists in the profile and not in the shared pool, it
is accessed from, and is updated in, the profile pool.
Relationship of Function Pools to Dialog Functions
Each dialog function has associated with it a unique function pool of
dialog variables. The pool is maintained by ISPF for the associated
function. The function uses the dialog variables to communicate with
the various ISPF services.
When a dialog variable is
function pool and may not
variables associated with
variables associated with
variables.)
created, it is entered into the current
be referenced by other functions. (Dialog
one function may have the same names as dialog
another function, but they are not the same
When a new function is started, a function pool is created for it.
Variables may then be created in the function pool and accessed from it.
When the function ends, its function pool -- along with any variables in
it -- is deleted.
MVS and VMjSP: The Function Pool for Command Procedures
In MVS and VMjSP, when the function in control is a command procedure
(CLIST or EXEC 2), the list of variable names kept by the command
language processor and the list of function variables kept by ISPF are
the same list. Thus, a variable created by the command procedure during
its execution is automatically a dialog variable, and a dialog variable
entered in the function pool by ISPF is automatically accessible to the
command procedure. However, in ISPF, variable names may not exceed
eight characters.
Notes:
1.
EXEC 2 variables &DATE and &TIME and CLIST variables &SYSDATE and
&SYSTIME may not be used in ISPF. Use instead, ISPF system
variables ZDATE and ZTIME, which contain similar information.
2.
In MVS, TSO global variables in effect at when ISPF is started, are
not available to CLISTs running under ISPF. These global variables
Chapter 2. Dialog Processing Concepts
35
are restored when ISPF terminates. Any global variables put into
effect from within ISPF are lost when ISPF terminates.
The following command procedure example (CLIST language) illustrates
that command procedure variables are automatically treated as ISPF
dialog variables.
Example:
SET &AAA = 1
ISPEXEC DISPLAY PANEL(XYZ)
SET &CCC = &AAA + &BBB
In the example,above, variable AAA is created by the command procedure
simply by setting it to a value (a "I", in this case). The DISPLAY
service is then invoked to display panel XYZ.
Assume that the panel definition for XYZ contains two dialog variables,
named AAA and BBB, and that they are defined as input (unprotected)
fields. In the panel definition, they might appear as follows:
+ INITIAL VALUE
+ INCRENENT
%===> AAA
~{,===>
BBB
+
+
where the underscore indicates the start of an input field, followed by
the name of the variable.
When the panel is displayed, the content of AAA (a "I") is displayed.
ISPF creates the variable BBB in the function pool and displays it as a
blank.
Now assume the user, in response to the panel display, types 100 in the
first field (AAA) and types 20 in the second field (BBB). When the user
presses the ENTER key, the value 100 is automatically stored in AAA and
the value of 20 is automatically stored into BBB. The DISPLAY service
then returns control to the command procedure. Then the next statement
is executed. This statement creates variable eec, setting it to the sum
of AAA and BBB, namely 120.
The Function Pool for Programs
When the dialog function in control is a program, the program' does not
share a common list of variables with ISPF because a program is
compiled, not interpreted as command procedures are. ISPF maintains a
list of variables that belong to the function so that ISPF s~vices can
use dialog variables for communication of data. ISPF makes two types of
entries in the function pool for a program: ~efined and !mp . 't.
_ - - -....--~'";~.J;IJ.!M~~~~~
C~X,4BJ.ABLES.v~".:g"@fined variables are entered explicitly through the
use of the VDEFINE service. The VDEFINE service creates a dialog
variable name in the function pool and associates it with the program's
own variable. This association enables ISPF to directly access and
modify that program variable. Otherwise, the program's variables are
36
ISPF Dialog Management Services
not available to ISPF. The VDELETE service ends this association and
removes ISPF's ability to access that program variable.
Example: The following program code (PL/I) specifies that field PA of
the program can be accessed by ISPF using dialog variable name FA.
DECLARE PA CHAR(8);
DECLARE LENGTHPA FIXED BIN(31) INIT(LENGTH(PA));
PA = 'OLD DATA';
CALL ISPLINK ('VDEFINE', 'FA', PA, 'CHAR', LENGTHPA);
CALL ISPLINK ('DISPLAY', 'XYZ I);
PA is declared as a program variable (character string, length 8). The
program calls the VDEFINE service to make PA accessible to ISPF by use
of dialog variable FA. Then, the DISPLAY service is called to display
panel XYZ. Assuming dialog variable FA is specified as an input field
on the panel definition, then when data is entered for field'FA, ISPF
stores the data into the program variable PA.
(". ··--:~~ni~-VARiA-B~mplicit variables are placed in the function pool
"'---whe.n...,.e..i,t-laS>F""'6T.. "ttre ,,,.,€0 11 ow ing c i r c urns t anc e s a r is e :
1.
When an ISPF service refers to a dialog variable name that is not
found in the standard search reference.
2.
When an ISPF service must store into a dialog variable that does not
already exist in the function pool.
Implicit variables can not be accessed directly from a program function.
Programs access implicit variables only through the use of VCOPY and
VREPLACE. However, any ISPF service invoked by a program function may
access an implicit variable directly by referencing the variable name.
To illustrate how an implicit variable is created, assume that panel
XYZ, in the above example, allows the user to enter another value and
the panel definition specifies ~hat this value is to be stored in dialog
variable IA. This is the first reference to IA and therefore it does
not exist in the function pool. Because IA does not exist, ISPF creates
it in the function pool and stores into IA the value entered on the
panel by the user. IA is an implicit dialog variable.
IDENTICAL DIALOG VARIABLE NAMES: A defined variable and an implicit
variable can have the same name. This occurs when (using the VDEFINE
service) a defined variable is created using the same name as an
existing implicit variable. When the same name exists in both the
defined and ,the implicit areas of a function pool, the defined entry can
be accessed and the implicit entry can not be accessed. The implicit
entry is made accessible by removing (through VDELETE) any entries for
that variable name made through the VDEFINE service.
A given dialog variable name can be defined (by VDEFINE) many times
within a given function. Each definition may associate a different
program variable with the dialog variable name. This is referred to as
"stacking." When each successive VDEFINE request is processed for a
Chapter 2. Dialog Processing Concepts
37
given dialog variable name, the previous definition is not accessible.
Only the most recent definition of that dialog variable is accessible.
A previous definition of that variable may be made accessible by
deleting (using VDELETE) the more recent definitions of that name.
For example, the mainline of a program can define a dialog variable to
be associated with one program variable. A subroutine is called and can
define the same dialog variable name to be associated with a different
program variable. Any ISPF services invoked after the second VDEFINE
would have access to only the subroutine's program variable. The
subroutine would delete (using VDELETE) that dialog variable before
returning, thereby uncovering the earlier definition set up in the
mainline program.
Note: To avoid a possible program error, for each VDEFINE
processed within a function for a given dialog variable name, a
VDELETE should be processed using the same name.
The Shared Pool
The shared variable pool allows functions and selection panels to share
access to dialog variables.
Shared pools are created by the SELECT service when it processes the
ISPSTART or ISPF command and when the NEWAPPL or NEWPOOL keywords are
specified with the SELECT service. When SELECT returns, the shared pool
is deleted and the previous shared pool (if any) is reinstated.
A function may copy dialog variables from its function pool to the
shared pool by means of the VPUT service. Since a panel displayed by
the SELECT service does not belong to any function, any dialog variables
used in the panel are read from and stored into the shared or profile
pools.
Variables in the shared pool are accessible to all ISPF services that
use the standard search sequence. In addition, another function may
directly copy these variables to its function pool by means of the VGET
service.
The Application Profile Pool
Like the shared variable pool, the application profile pool contains
variables that are accessible to functions within an application, but
the profile variables are saved across sessions. (An application
consists of one or more dialogs, each of which have been started using
the same application id).
When a new application is started, it has access to an application
profile variable pool. If an application is restarted (for example, by
split screen) then both invocations of the application access exactly
the same application profile. The profile data is maintained as an ISPF
table whose name is xxxxPROF, where xxx x is the application-id. If the
38
ISPF Dialog Management Services
application is already active, then the current profile is used.
Otherwise, ISPF must search for the table.
When accessing an application profile that is not currently active, ISPF
first searches the user's profile library for a member with the name
xxxxPROF. The member is found if the user had previously run the
application and so had a local copy of the profile table.
If the member is not found, the table input library is searched. The
application developer may provide a profile in this library. This
profile is to contain variable names and values initialized for the
application.
If the member cannot be found in either the user's profile or table
input library, the application profile is initialized with the contents
of the default application profile pool, ISPPROF, which is read from the
table input library. ISPPROF is distributed with ISPF and contains a
set of default PF key values. An installation may modify this table to
change these settings or to include other variables which will be copied
to initialize brand new application profiles. Refer to Chapter
4, "Library Requirements," for information on profile and table
libraries.
Upon completion of the application, the contents of the application
profile pool are saved in the user's profile library under the name
xxxxPROF. The profile is deleted from storage when the last invocation
of the application is terminated.
Functions can directly access the profile pool using the VGET variable
services. The VPUT service must be used to enter variables in the
profile pool. However, menus (selection panels) automatically update
existing profile variables.
Note: A second level of profile variable pool, the system
profile pool (ISPSPROF), is always active. These dialog variables
are owned by the dialog manager and may not be modified by an
application. Their values may be read, however, because the
system profile is included in the standard search sequence after
the application profile. All system variable names begin with "z"
(such as "ZTERH") and supply information such as terminal type and
list/log defaults.
Representation of Variables
Information entered by a user on a panel is in character string format.
All dialog variables remain in character string format when stored as
implicit function variables, or when stored in the shared pool, in a
profile, or in ISPF tables.
Defined variables, however, may be translated to fixed binary or to a
bit string, hex string, or a user-defined format when stored internally
in a program module. The internal format is specified when the variable
is defined (through the use of the VDEFINE service). The translation
Chapter 2. Dialog Processing Concepts
39
occurs automatically when the variable is stored by an ISPF service. A
translation back to character string format occurs automatically when
the variable is fetched.
When a defined variable is stored, either of two errors may occur:
•
Truncation - if the current length of the variable is greater than
the defined length within the module, the remaining data will be
lost.
•
Translation - if the variable is defined as other than a character
string, and the external representation has invalid characters, the
contents of the defined variable is lost.
In either case, the ISPF service issues a return code of 16.
System Variables
Certain variable names are reserved for use by the system. They all
begin with the letter "Z". Therefore, dialog developers should avoid
names which begin with "z" when choosing dialog variable names. System
variables are used to communicate special information between the dialog
and the dialog manager. The variables are discussed with the ISPF
service to which they apply.
Some system variables cannot be modified. They provide the dialog with
information about the environment, such as user id, current date, and
time. These variables ~Q.e··~±rrttre·~'~~d vgxJable pool. They may be
obtained for a comman~function through th~~ervice, and for a
p~~~ ~~~:_~.:m through th@ry service.
~
40
ISPF Dialog Management Services
I
Commonly used system variables that a dialog may access are listed
below:
Note:
~':
= may not be modified by a dialog
General
*
*
*
~':
~':
~':
~':
~':
-.'r
~':
~':
.,'~
ZUSER
- User id
ZPREFIX - TSO user prefix in MVS; in VMjSP and VSE, ZPREFIX
contains the same value as ZUSER
ZLOGON - Stepname of TSO LOGON procedure in MVS; in VMjSP and
VSE, ZLOGON contains a null value
ZTIME
Time of day (format hh:mm)
ZDATE
Current date (format yyjmmjdd)
ZJDATE
Day-of-year date (format yy.ddd)
ZDAY
- Day of month (2 characters)
ZHONTH - Month of year (2 characters)
ZYEAR
Year (2 characters)
ZTE~IPF
Name of temporary file for file tailoring output
ZAPPLID
Application identifier
Z
Null Variable
- Terminal type
- Number of PF keys
- Setting for PF Keys:
ZPF13-ZPF24 contain settings for the primary keys
ZPF01-ZPF12 contain settings (on 24-key terminals only)
for the alternate keys
ZERRMSG - Error message id
ZERRSM - Short error message text
ZERRLM - Long error message text
ZERRHM - Name of help panel associated with error message
- Command verb after a command table (SETVERB) action
ZVERB
ZTDTOP - Current top row upon return from table display
- Scroll amount for the BROWSE service
ZSCBR
- Scroll amount for the EDIT service
ZSCED
- Scroll amount for member lists
ZSCML
ZTERM
ZKEYS
ZPFxx
Tutorial Panels
ZUP
ZCONT
ZIND
ZHTOP
ZHINDEX
-
Name of parent panel
Name of next continuation panel
YES specifies an index page
Name of top panel
Name of first index panel
(,Selection~anels
ZCMD
ZSEL
ZPARENT
ZPRIM
-
Command input field
Command input field truncated at first period
Parent menu name (when in explicit chain mode)
YES specifies panel is a primary option menu
Chapter 2. Dialog Processing Concepts
41
Summary of Variable Services
The variable services are:
VGET
Retrieve variables from shared pool or profile
VPUT
Update variables in shared pool or profile
VDEFINE
Define function variables
VDELETE
Remove definition of function variables
VRESET
Reset function variables
VCOpy
Copy data from a dialog variable to the program
VREPLACE
Copy data from the program to a dialog variable
The first two services, VGET and VPUT, may be invoked from any function.
The other variable services are for use from program modules only (they
are not applicable to functions coded in a command language).
Miscellaneous Services
ISPF provides EDIT, BROWSE, LOG, and CONTROL services. These services
are discussed below. EDIT and BROWSE are available only if ISPF/PDF is
installed.
EDIT and BROWSE Services
The EDIT and BROWSE services allow a dialog function to invoke the
ISPF/PDF edit or browse programs. These services require specification
of a data set name (MVS) , fileid (VM/SP), or filename (VSE) and a member
name, if applicable. The entry panel, which is displayed if edit or
browse is selected from the primary option menu, is bypassed. See
ISPF/PDF Reference.
In MVS, EDIT and BROWSE services use subpools 2 and 3 and will issue
FREEPOOL macros for the subpools that they use. Therefore, a dialog
that invokes EDIT and BROWSE services should not use subpools 2 and 3.
EDIT and BROWSE services must not be invoked from PL/I programs that
also use subtasking.
42
ISPF Dialog Management Services
LOG Service
The LOG service allows a dialog function to write a message to the ISPF
log file. The user may specify whether the log is to be printed, kept,
or deleted when ISPF is terminated.
CONTROL Service
/.
StlP
The(CONTRO~vice
Pi
\
2 ()
allows a dialog function to condition ISPF to expect
cert~k:inds of display output, or to control the disposition of errors
encountered by ISPF services.
For example, some display conditions are:
LINE
Expect line output, to be generated by the dialog or by
execution of a TSO or CMS command. In MVS, optionally, the
starting line may be specified. In VM/SP and VSE, the
starting line is ignored.
LOCK
Allow the next display without unlocking the 3270 keyboard.
LOCK is generally used with the DISPLAY service to overlay a
currently displayed panel with an "in process" message; for
example:
CONTROL DISPLAY LOCK
DISPLAY MSG (message-id)
SPLIT
Enable or disable split screen operation by a user as required
by the application.
REFRESH Refresh the entire screen on the next display. Typically used
before or after invoking some other full screen application
that is not using ISPF display services.
NONDISPL Do not display the next panel (process the panel without
actually displaying it, and simulate the ENTER key or END
command) .
The disposition of errors may be controlled as follows:
CANCEL
Terminate the dialog function on an error (return code 12 or
higher from any service). A message is displayed and logged
prior to termination.
RETURN
Return control to the dialog function on all errors (with
appropriate return code). A message id is stored in system
variable ZERRMSG, which may be used by the dialog function to
display or log a message.
The default disposition is CANCEL. If a dialog function sets the
disposition to RETURN, the change affects only the current function.
does not affect lower-level functions invoked through the SELECT
service, nor a higher-level function when the current function
completes.
Chapter 2. Dialog Processing Concepts
It
43
VM/SP: USE OF THE VIRTUAL MACHINE COMMUNICATION FACILITY (VMCF)
For VM/SP systems, the Virtual Machine Communication Facility (VMCF) is
used by ISPF and may be used by dialogs. (VMCF provides services to
allow virtual machines to communicate messages and data. ISPF uses V~fCF
in its implementation of ENQ/DEQ services to control file sharing by
dialogs.)
To use VMCF facilities,2 a dialog must issue the following, in the
sequence shown, for each transaction:
1.
VMCF diagnose - to authorize the virtual machine for general
communications (see note)
2.
C~1S HNDEXT SET macro and STCTL/LCTL instructions ,- to enable
virtual machine for external interrupts
th~
Note:
Because ISPF services may change the settings for VMCF
authorization and interrupt handling, these settings must be
reestablished following each use of ISPF services.
3.
VMCF diagnose - for data transfer protocol
4.
CMS HNDEXT CLR macro and STCTL/LCTL instructions - to disable the
virtual machine for external interrupts; issued at the end of
transaction processing-and before returning.
In addition, the dialog:
44
•
Must accept the IDENTIFY protocol as well as any desired data
transfer protocols.
•
Must not use the VMCF AUTHORIZE SPECIFIC or VMCF UNAUTHORIZE
services. Their use could result in an ABEND due to an ISPF ENQ/DEQ
failure.
2
Refer to VM/SP CMS Command and Macro Reference Manual, SCI9-6209,
and VM/SP System Programmer's Guide, SC19-6203 for more information.
ISPF Dialog Management Services
CHAPTER 3. USE OF COMMANDS, PROGRAM KEYS, AND LIGHT PEN
This chapter describes the three levels of ISPF commands and their use
and processing, and the operation of the program access (PA) and program
function (PF) keys of the 3270 terminal.
Commands may be used to request processing functions.
levels of commands:
There are three
•
System commands - provided by the dialog manager and always
available to an end user (unless explicitly overridden by an
application).
•
Application commands - available to an end user throughout operation
of an application.
•
Function commands - meaningful only while operating a particular
function within an application.
The first two levels (system and application commands) are defined
through the use of command tables. Processing of these commands is
handled by the dialog manager. Use of system and application commands
is generally transparent to the dialog functions. For example, HELP is
a system command.
The third level (function commands) includes all commands that are
processed by a dialog function. For example, the edit NUMBER command is
a function command.
Note: Virtual machine settings (such as device spool and tag
settings and minidisk concatenation)" could be changed during
display of a panel by execution of CP or CMS commands or SELECT.
For example, the terminal user may change the spooling of the
printer to class C by entering on the command line of a displayed
panel:
CP SPOOL PRT CLASS C
Therefore, upon return from ISPF services, the dialog should
establish any settings required for its processing.
COMMAND ENTRY
The user may enter a command by:
•
Pressing a PF key .
Chapter 3. Use of Commands, Program Keys, and Light Pen
45
•
Selecting an ATTENTION FIELD by using the light pen or the cursor
select key. (The cursor select key is a hardware feature on 3278
and 3279 terminals.)
•
Typing the information in the command field and pressing ENTER.
(This includes the command field in browse, edit, member lists, and
table displays, as well as the command field on a panel.)
ISPF intercepts all commands entered by the user, regardless of whether
the command was typed in the command field or entered with a PF key or
attention field. If the command matches an entry in the application or
system command table, it is executed by the dialog manager. Otherwise,
it is assumed to be a function command and is passed through to the
dialog function. See "-Command Tables" for more information on how ISPF
intercepts and processes commands.
Commands may be passed to the operating system by entering the
appropriate ISPF-provided command verb (CP, TSO, CMS, or ICCF) followed
by the actual TSO, VM/SP, or ICCF command; for example:
===>
===>
===>
TSO LISTC LEVEL(Z77PHJ)
CMS L -J, ";.~ A
ICCF ILIST XYZ
Commands may be stacked for execution by entering a special delimiter
between the commands; for example:
===>
SORT BLDG DEPT NAME; HENU ABC
Note:
Commands cannot be stacked following the HELP command
(HELP processing deletes any commands in the stack).
The default delimiter is a semicolon (;), which the user may change with
the ISPF parms option (see Appendix B, "Using the ISPF PARHS Option").
In the above example, the SORT command is executed first.
completes, the MENU command is executed.
When it
Note: In VSE, do not attempt to execute ICCF commands from both
screens at once, because ICCF can process just one command at a
time.
PRESSING A PF KEY: In ISPF, the PF keys have not been assigned to
special functions. Each PF key is equated to a character string and
simply simulates command entry. When the PF key is pressed, the
processing is the same as though the character string had been typed in
the command field and the ENTER key pressed. A dialog function cannot
sense the difference between a command entered by a PF key and a command
entered by typing in the command field.
When a PFkey is pressed, there may be user-entered information already
in the command field. If so, the PF key definition, followed by a
blank, is concatenated ahead of the contents of the command field. For
example, suppose PF7 is equated to the character string "UP". If the
46
ISPF Dialog Management Services
user types "4" in the command field and then presses PF7, the results
are exactly the same as if the user had typed "UP 4" in the command
field and then pressed ENTER.
A command entered in the command field is passed to the function in
control if it is logically not related to the function of the PF key
depressed. However, any valid commands chained behind an unrelated
command are concatenated with the PF key definition.
SELECTING AN ATTENTION FIELD: Attention fields may also be used to
simulate command entry. When an attention field is detected by the
light pen or cursor select key, the processing is exactly the same as
though the contents of the attention field had been typed into the
command field and the ENTER key pressed. Again, the dialog function
cannot sense the difference.
Note:
Attention fields are intended as an alternative means of
selecting options from a menu. They should not be used on data
entry panels, since any information that is typed by the user into
an input field (including command fields) will be lost when the
attention occurs. Unlike PF keys, information in the command
field is not concatenated with the contents of the attention
field.
SYSTEM COMMANDS
The system commands, distributed with ISPF, include the following (PF
key defaults are shown in parentheses):
HELP (PF1/13)
Displays additional information about an error
message or provides tutorial information about
commands and options.
SPLIT (PF2/14)
Causes split screen mode to be entered, or changes
the location of the split line.
END (PF3/1S)
Terminates the current operation and returns to
the previous menu. If the primary option menu is
displayed, this command terminates ISPF.
RETURN (PF4/16)
Causes an immediate return to the primary option
menu or to the display from which the user entered
a nested dialog.
(See "END and RETURN Commands.")
RFIND (PFS/17)
Repeats the action of the previous FIND command or
the FIND part of the most recent CHANGE command
(applies to browse and edit only).
RCHANGE (PF6/18)
Repeats the action of the previous CHANGE command
(applies to edit only).
UP (PF7/19)
Causes a scroll toward the top of the data.
Chapter 3. Use of Commands, Program Keys, and Light Pen
47
DOWN (PF8/20)
Causes a scroll toward the bottom of the data.
SWAP (PF9/21)
Moves the cursor to wherever it was previously
positioned on the other logical screen of a split
screen pair.
When operating in split screen mode and the SWAP
key (PF9) is depressed, any entry on the command
line is ignored and is not processed.
LEFT (PF10/22)
Causes a scroll left.
RIGHT (PFl1/23)
Causes a scroll right.
CURSOR (PF12/24)
Moves the cursor to the first input field on the
panel being displayed (which generally is the
option selection or command field) or to the
alternate command field if one has been designated
on the )BODY statement. If invoked a second time
on a panel with scrollable data (a BROWSE, EDIT,
or table display panel), this command causes the
cursor to be moved to the second input field.
The system commands described below have no default PF key assignments:
48
CP or CMS
In VM/SP, allows the user to enter a VM/SP command
or an EXEC. Because ISPF uses the same mechanism
to execute both CP and CMS commands, the two
commands (CP and CMS) are treated synonymously;
ISPF does not attempt to distinguish between them.
TSO
In MVS, allows the user to enter a TSO command or
CLIST.
ICCF
In VSE, allows the user to enter an ICCF command.
STOPAT
In VM/SP, causes display of a message and entry to
CMS SUBSET mode whenever a specified program is
loaded by the select service.
KEYS
causes an immediate display of a panel that allows
the user to view and change the current PF key
definitions (equivalent to option 0.3 in the ISPF
PARMS option).
PANELID ONIOFF
The command PANELID or PANELID ON causes all
subsequent panels to be displayed with the name of
the panel shown at the beginning of line 1. The
command PANELID OFF turns off this mode of
operation. During initial entry to ISPF, this
mode is initialized OFF.
ISPF Dialog Management Services
Note: The panel id is displayed only if
the panel contains a protected-field
attribute byte in row 1 column 1, and no
other attribute bytes in the next eight
character positions.
PRINT
Causes a "snapshot" of the screen image to be recorded in the
ISPF list file for subsequent printing.
PRINT-HI Same as PRINT except that high-intensity characters on the
screen are printed with overstrikes to simulate the dual
intensity display.
If desired, an installation may add new system-wide command definitions
by modifying the system command table.
STOPAT Command
For VM/SP systems, the STOPAT command is used to cause entry to CMS
SUBSET mode when a specified program is loaded by the SELECT service.
The STOPAT command is entered on the command line of a panel displayed
on a logical screen:
COMMAND => STOPAT pgmname
where pgmname is the name of a program. Whenever the specified program
is loaded by the SELECT service for the logical screen on which STOPAT
was entered, a message is displayed and CMS SUBSET mode is entered. The
message gives the name of the program and the storage address at which
the program was loaded. For example, suppose the following STOPAT
command, specifying a program named MYPROGA, is entered on the command
line of a panel:
COMMAND ==> STOPAT
~IYPROGA
After MYPROGA is loaded by the SELECT service (assuming the storage
address at which it is loaded is OOOD17AO) the message displayed is:
PROGRAM MYPROGA
LOADED AT OOOD17AO
CMS SUBSET
While in CMS SUBSET mode, the user may enter CP or CMS commands for
debugging. To end CMS SUBSET mode and begin execution of the program
(MYPROGA in this example), the user enters RETURN.
STOPAT is effective for one program per logical screen and remains in
effect for the specified program until another STOPAT command specifying
another program name is entered or a STOPAT command without a program
name is entered; for example:
COMMAND ==> STOPAT
Chapter 3. Use of Commands, Program Keys, and Light Pen
49
This STOPAT command, without a program name specified, cancels the
STOPAT command previously in effect.
END and RETURN Commands
The END command is used to request termination of a function or dialog.
When entered on a selection panel displayed by the SELECT service, it
causes a redisplay of the next higher menu in the hierarchy. When
entered on a panel displayed by the tutorial program, it terminates the
tutorial and causes a redisplay of the menu from which the tutorial was
invoked or the panel from which HELP was requested.
When the END command is entered on a panel that was displayed by a
dialog function (through the DISPLAY or TBDISPL service), the dialog
function must take whatever action is appropriate to terminate and
return control. Entry of the END command is signalled by a return code
of 8 from the DISPLAY or TBDISPL service.
The RETURN command simulates repeated END commands, up to some
appropriate stopp{ng point, without displaying intervening panels. When
a RETURN command is entered, the dialog manager takes the following
action:
1.
The END command is simulated on the panel that is currently
displayed (i.e., the DISPLAY or TBDISPL service returns a code of
8).
2.
For subsequent requests (made through the DISPLAY or TBDISPL
service) for display of a different panel, the panel is not
displayed and a return code of 8 is issued by the service.
3.
However, when two consecutive display requests name the same panel,
normal operation of the DISPLAY and TBDISPL services is restored and
processing may proceed as though RETURN had not been entered.
Whether to proceed is decided by the dialog developer. (Generally,
because RETURN signals the application user's desire to end the
current processing, a developer will limit processing, after the
RETURN is received, to clean up and final processing before
returning control to the dialog element from which the function was
invoked.)
4.
If two consecutive requests do not specify the same panel,
processing continues in the mode described in item 2 above, until
control is returned to a primary option menu or a nested dialog
completes. Then, normal operation of the DISPLAY and TBDISPL
services is restored.
Note: If it is necessary to suspend processing of a panel
temporarily so that other panels may be displayed, issue a CONTROL
DISPLAY SAVE request to save the contents and control information
of the panel whose processing is to be suspended. Before resuming
the processing of this panel, issue CONTROL DISPLAY RESTORE to
reinstate the contents and control information for the panel. If
50
ISPF Dialog Management Services
non-ISPF screens have been displayed, issue CONTROL DISPLAY
REFRESH to clear the screen.
This mode of operation continues until a primary option menu is
encountered or a nested dialog completes, whichever occurs first. If a
primary option menu is encountered, it is displayed. If a nested dialog
completes, the panel from which it was invoked is redisplayed exactly as
the user last saw it (except that the command field is blank). In
either case, this completes the action of the RETURN command.
Note: A nested dialog is one that is invoked from any panel by a
SELECT action command (see "Command Tables"). The HELP and KEYS
commands invoke nested dialogs. In addition, the TSO, CMS, and CP
system commands invoke nested dialogs when they are used to
execute a CLIST or EXEC that displays panels through ISPF
services.
If a dialog function needs to distinguish between END and RETURN, it can
do so in one of the following ways:
•
Upon return from the DISPLAY or TBDISPL service (with a return code
of 8), the function may examine variable ZVERB in the shared
variable pool. It will contain either "END" or "RETURN".
•
Upon return from the SELECT service when the PANEL keyword was
specified, the dialog function may examine the return code from
SELECT. Return code 0 indicates that the END command was entered on
the selected menu panel. Return code 4 indicates that the RETURN
command was entered on the selected menu panel or on some
lower-level menu.
Jump Function
The jump function (also referred to as extended return) allows a user to
go directly to any option that is valid from the primary option menu
currently in effect.
The function is entered in the command field of any panel, preceded by
an equal sign; for example:
COMMAND ===> =3.1
The action is as follows:
•
If not entered on a primary option menu, the jump function causes
repeated END commands to be simulated until a primary option menu is
encountered. What follows the equal sign is then entered on the
primary option menu and the ENTER key is simulated. (The primary
option menu is not displayed.)
•
If entered on a primary option menu, a jump function is treated the
same as if the equal sign were not present; i.e., the specified
option is selected.
Chapter 3. Use of Commands, Program Keys, and Light Pen
51
Unlike the RETURN command, the jump function is unaffected by nested
dialogs. For example: from the ISPF/PDF edit option, the user enters a
HELP command to enter the tutorial. Then from the tutorial, the user
enters "=1". This causes tutorial to end, edit to end, and primary
option 1 to be invoked.
For user convenience, the jump function may be entered in any field that
is preceded by an arrow. The arrow must consist of at least two equal
signs followed by a greater-than sign ("==>") and must immediately
precede the input attribute byte.
For compatibility with the SPF Program Product, the jump function may be
entered in conjunction with the RETURN command (or RETURN PF key). For
example: the user types "=2" and then presses the RETURN PF key rather
than pressing ENTER. The action is just the same as if the user had
typed "=2" and pressed ENTER.
When operating in split screen mode, if a user enters a jump function
(for example, =3) and chains other commands to it (=3;other), the
chained commands are ignored.
Scrolling
The scroll commands are used if the dialog function invokes the table
display service (TBDISPL) or the interfaces to edit and browse. During
execution of the tutorial, the commands are interpreted as follows:
UP
DOWN
LEFT
RIGHT
-
same
same
same
same
as
as
as
as
the
the
the
the
UP command
SKIP command
BACK command
ENTER key (display the next page).
When scrollable data is displayed, scrolling allows the screen "window"
to be moved up, down, left, or right across the information. (Only up
and down scrolling is allowed for table displays.)
Whenever scrolling is allowed, a scroll amount is displayed at the top
of the screen (line 2). This amount determines the number of lines (or
columns) scrolled with each use of a scroll command. To change the
scroll amount, move the cursor to the scroll field and overtype the
displayed amount. Valid scroll amounts are:
52
•
A number from 1 to 9999 - specifies the number of lines (up or down)
or columns (left or right) to be scrolled.
•
PAGE - specifies scrolling by one page.
•
HALF - specifies scrolling by a half page.
•
MAX - specifies scrolling to the top, bottom, left margin, or right
margin, depending upon which scrolling command is used.
ISPF Dialog Management Services
•
CUR - specifies scrolling based on the current position of the
cursor. The line or column indicated by the cursor is moved to the
top, bottom, left margin, or right margin of the screen, depending
upon which scrolling command is used. If the cursor is not in the
body of the data, or if it is already positioned at the top, bottom,
left margin, or right margin, a full page scroll occurs.
For scrolling purposes, a "page" is defined as the amount of information
currently visible on the logical screen. In split screen mode, for
example, a browse display might have 12 lines by 80 columns of
scrollable data. In this case, a scroll amount of HALF would move the
text up or down by 6 lines, or right or left by 40 columns.
The current scroll amount is saved in the application profile. Three
values are saved -- one for browse (ZSCBR), one for edit (ZSCED), and
one for member lists (ZSCHL). When you overtype the scroll amount, the
new value remains in effect until you change it again. The value MAX is
an exception; following a HAX scroll, the scroll amount reverts to its
previous value.
Users can also enter any valid scroll amount as part of the scroll
command. For example, enter:
COHMAND ===> up 3
and press the ENTER key, or enter
COHMAND ===> 3
and press the UP PF key. Either form results in a temporary, one-time
override of the scroll amount.
COMMAND TABLES
System and application commands are implemented through the use of
command tables.
A system command table (ISPCMDS) is distributed with ISPF in the table
(~''''"-'~input library. An application may provide an application command table
"
~tv\Jb,l by including a table named xxxxCMDS in its table input library, where
'1-Sf
/" xxxx is a 1- to 4-character application id.
,.r.,~
Whenever a command is entered, the dialog manager searches the
application command table (if any) and then the system command table.
If the command is found, action is taken immediately. If the command is
not found in the application or system tables, the command is passed
through to the dialog, unaltered, in the command field. The dialog may
then take appropriate action.
Chapter 3. Use of Commands, Program Keys, and Light Pen
53
10'.
Command Table Format
A command table is an ISPF table in which each row contains the
specification for one command. (Refer to Appendix D, "Command Table
Utility," for a discussion of the utility that is used to generate or
modify command tables.) The variables that define the table columns
are:
•
ZCTVERB - specifies the name of the command. A command name must be
from two to eight characters in length, and must begin with an
alphabetic character. Note that the terms 'command name' and
'command verb' are synonymous and are used interchangeable.
•
ZCTTRUNC - specifies the minimum number of characters that the user
must enter to find a match with the command name. If this number is
zero or equal to the length of the name, the user must enter the
entire name. This number may not be one, nor greater than the
len.g.t-
,..,~
/
/
~
/
.
ZCTACT - specifies the acti;:>to be performed when the command is
entered. See below.
ZCTDESC - contains a brief description of the purpose of the
command. This variable is optional. It is not used by the dialog
manager in processing the command, but it is displayed by the
command table utility. The description is limited to 57 characters.
The variable names listed above (ZCTVERB, ZCTTRUNC, ZCTACT, and ZCTDESC)
are treated as defined function variables by the dialog manager; they
are not accessible to dialogs. ZCTACT defines the action that the
command specified in ZCTVERB will perform.
",-~--.......
~~) that can be specified in the ZCTACT variable are:
54
•
SELECT (followed by selection keywords) - causes the selected dialog
(command, program, or menu) to be given control immediately.
•
ALIAS (followed by the name of another command) - allows
specification of command aliases.
•
PASSTHRU - causes the command to be passed to the dialog, as though
it had not been found in the table.
•
SETVERB - causes the command to be passed to the dialog with the
command verb stored separately from the parameters.
•
NOP - causes the command to be functionless.
message is displayed in this case.
•
Blank (no action) - causes the table entry to be ignored, and
scanning to continue (to search for additional entries with the same
name) .
ISPF Dialog Management Services
An "inactive command"
•
A variable name (beginning with an ampersand) whose content may be
one of the above valid actions - allows dynamic specification of
command action.
These actions are described in the sections that follow.
Additional action keywords are used to indicate system commands for
which special processing is required. These are: SPLIT, SWAP, CURSOR,
P~, and PRINT-HI.
Although these are valid actions, they are
intended for use only in the system command table distributed with ISPF.
They are not intended for use in application command tables.
----
-
-
SELECT Action Commands
A SELECT action command is one type of command that may be specified in
a command table. The action is coded exactly the same as for the SELECT
service. All SELECT keywords are valid, including NEWAPPL.
The selected dialog (function or menu panel) is invoked immediately when
a SELECT action command is entered on the command line of any panel.
This temporarily suspends the current dialog. When the selected dialog
completes, the screen is refreshed and the suspended dialog resumes
execution.
Examples of SELECT action commands:
ZCTVERB
ZCTTRUNC
SORT
PREPARE
MENU
0
4
4
Note:
ZCTACT
SELECT PGM(PQRSORT) PARM(&ZPARM)
SELECT CMD(XPREP &ZPARM) NEWPOOL
SELECT PANEL(&ZPARM)
In VSE, CMD is not used.
In the example, the TRUNC variable indicates that the SORT and MENU
command names may not be truncated. PREPARE, however, may be truncated
to any of the following: PRE PAR , PREPA, PREP. The functions and
keywords in the ZCTACT field indicate the actions that the commands will
perform.
The ZPARM variable that appears in the SELECT keywords indicates that
command parameters are to be substituted at that point. For example, if
the following commands were entered:
===> SORT BLDG DEPT NA~1E
===> PREPA LOG LISTING
===> MENU PQRMENUl
the following SELECT actions would result:
SELECT
SELECT
SELECT
PGM(PQRSORT) PARM(BLDG DEPT NAME)
LOG LI STING) NEWPOOL
PANEL (PQRMENUl)
ct-m (XPREP
Chapter 3. Use of Commands, Program Keys, and Light Pen
55
The ZPARM variable is used only to substitute user-entered parameters
into SELECT action commands. It is a dummy variable; it is not stored
in a variable pool and is not accessible to dialogs.
Use of SELECT action commands may cause recursive entry
into dialog functions, which the dialog manager allows. The
dialog developer should either design functions for recursive use,
or display a message if a user attempts to reenter a non-recursive
function.
Note:
The ISPF EDIT and BROWSE services are non-recursive. There is an ISPF
restriction that commands entered from edit and browse may not re-invoke
edit and browse.
The ISPF DISPLAY and TBDISPL services may be used recursively. The
current display environment is automatically saved whenever a SELECT
action command is entered, and restored upon completion of the command.
Assigning Command Aliases
A command table may establish aliases by designating, as an action in
the ZCTACT field, the keyword ALIAS followed by the name (verb) of
another command. The alias entry must precede the command that it
references. Normally, alias entries are used in an application command
table to reference system commands; for example:
ZCTVERB
ZCTTRUNC
QUIT
EXPLAIN
FORWARD
BACK
0
4
3
0
ZCTACT
ALIAS
ALIAS
ALIAS
ALIAS
END
HELP
DOWN
UP
This defines QUIT as an alias of END, EXPLAIN as an alias of HELP, etc.
For example, when the user enter;s QUIT, the system responds as though
END had been entered.
,
Overriding System Commands
An application can override any system command simply by including the
same command name in the application command table; for example:
ZCTVERB
~
t:,
.\~
\\ CJ'fI'-?
\"\
~~
I"~
~~'
56
~
HELP
TSO
ZCTTRUNC
0
0
ZCTACT
PASSTHRU
NOP
In this example, the dialog has overridden both the HELP and TSO
commands. During ISPF processing, if the user enters HELP, it is passed
to the dialog function then in control and its function is determined by
the function. The action specified for the TSO command is NOP. This
disables the TSO command and if TSO is entered by a user, Nap causes the
ISPF Dialog Management Services
command to be functionless. An "inactive command" message is
automatically displayed when a NOP action command has been processed.
Passing Commands to a Dialog Function
As previously noted, any command that is not found in the application or
system command table is passed to the dialog, unaltered, in the command
field. This occurs regardless of whether the command was typed in the
command field or entered by use of a PF key or the attention field.
The user may force a command to be passed to the dialog, even if the
command exists in the command table, by typing a greater-than sign (»
in front of the command verb.
In the command table, any command that has an action of PASSTHRU is
processed as though the command were not found in the table - it is
passed to the dialog in the command field.
Commands may also be passed to the dialog via the SETVERB action. This
action causes the dialog manager to separate the verb from the command
parameters (if any). The command verb is stored in variable ZVERB,
which is in the shared variable pool. The command parameters are passed
to the dialog, left-justified, in the command field; for example:
ZCTVERB
QUERY
ZCTTRUNC
ZCTACT
0
SETVERB
The verb "QUERY" is stored in variable ZVERB and the character string
(for example "DEPT 877") is passed in the command field.
The following user actions produce the same results:
•
The user types "QUERY DEPT 877" in the command field and presses
ENTER.
•
The user types "DEPT 877" in the command field and then presses a PF
key that has been equated to the character string "QUERY".
•
The user presses a PF key that has been equated to the character
string "QUERY DEPT 877".
•
The user employs the light pen or cursor select key to select an
attention field that contains the character string "QUERY DEPT 877".
The following system commands, distributed with the dialog manager, are
defined as SETVERB action commands:
END
RETURN
RFIND
RCHANGE
UP
DOWN
LEFT
RIGHT
Chapter 3. Use of Commands, Program Keys, and Light Pen
57
Note: The ZVERB variable can be interrogated to distinguish
between END and RETURN. (The effect of END and RETURN on the
DISPLAY service is the same because RETURN is used to simulate
repeated END commands, until the primary option menu is reached.)
Dynamically Specified Command Actions
A command action may be specified dynamically by means of a dialog
variable. A variable action may be used to "share" commands with the
dialog manager, such as UP, DOWN, LEFT, and RIGHT, and to enable or
disable command~_4HE~ng certain points in the dialog. Suppose, for
exam~le, an~i~~~=}ommand table includes the following two
entrl.es:
ZCTVERB
UP
DOWN
ZCTTRUNC
o
o
ZCTACT
&SCRVERT
&SCRVERT
The variable SCRVERT may be used to dynamically control the action of
the vertical scroll commands (UP and DOWN), as follows:
•
If SCRVERT is set to Nap, the commands are disabled.
•
If SCRVERT is set to PASSTHRU, the commands are passed to the
dialog.
•
If SCRVERT is set to blank, command scanning continues, in which
case the system definitions for UP and DOWN (in th~ syste~lcommand
table) take effect.
•
-
\,",-,~.~.~~~.r_~~,_c:,.;'
If SCRVERT is set to an invalid action, the commands are disabled,
as in Nap.
For this particular example, settlng SCRVERT to SETVERB would have the
same effect as setting it to blank, because UP and DOWN are defined in
the system command table as SETVERB action commands.
Note: If the dialog overrides or shares the use of the scroll
commands, it becomes that dialog's responsibility to ensure that
the commands have been redefined with an action of blank (or
SETVERB) before invoking any ISPF function that requires them;
namely, browse, edit, and table display. The same rule applies to
the RFIND command (used by browse and edit) and the RCHANGE
command (used by edit).
58
ISPF Dialog Management Services
TERMINAL KEYS
On the terminal, the two program access (PA) keys and the program
function (PF) keys (if any) are used to request commonly used
operations. No PF keys are required for ISPF operations, but ISPF is
shipped with a default set of PF key definitions that users can change.
Refer to Appendix B, "Using the ISPF PARHS Option," for information on
specifying PF key operation.
Program Function Keys
ISPF does not require PF keys for its operation. Commands are entered
in the command field of any display (including edit, browse, member
lists, and table display). PF keys are strongly recommended, however,
for ease of use.
The default PF key assignments, distributed with ISPF, for the 3x4- key
pad (right-hand side of the keyboard) are shown in Figure 13. These are
PF keys 1-12 on a 12-key terminal, or keys 13-24 on a 24-key terminal.
For 24-keyterminals, PF keys 1-12 have the same defaults as keys 13-24.
It is recommended that users of 24-key terminals continue to use the key
pad (13-24) for ISPF operations, and redefine PF keys 1-12 as needed by
dialog applications.
Chapter 3. Use of Commands, Program Keys, and Light Pen
59
PFI / 13
HELP
PF4 / 16
RETURN
Figure 13.
PF2 / 14
SPLIT
PF5 / 17
PF3 / 15
END
PF6 / 18
RFIND
RCHANGE
PF7 / 19
PF8 / 20
PF9 / 21
SCROLL
UP
SCROLL
DOWN
SWAP
PFI0 / 22
PFl1 / 23
PF12 / 24
SCROLL
LEFT
SCROLL
RIGHT
CURSOR
Default Program Key Arrangement
Defining PF Keys
When the KEYS command is entered or option 3 is selected from the ISPF
PARMS option menu, the panel shown in Figure 14 is displayed.
The panel shown in the figure is displayed for terminals with 12 PF
keys. For terminals with 24 PF keys, the first panel displayed by the
KEYS command shows the "primary" keys (PFI3-PF24). When the ENTER key
is pressed, a panel is displayed showing the "alternate" keys
(PFI-PFI2). The user may flip-flop between the two panels by continuing
to press ENTER.
The user may define or change a PF key function simply by equating the
key to a command. Example:
PF9 ===> CHANGE ALL ABC XYZ
PF12 ===> PRINT
60
ISPF Dialog Management Services
------------------------CO~IMAND
NUNBER OF PF KEYS
PF1
PF2
PF3
PF4
PFS
PF6
PF7
PF8
PF9
PF10
PF11
PF12
PF KEY DEFINITION
==>
===>
=>
===>
=>
==>
===>
===>
===>
===>
==>
===>
===>
==>
12
TER~lINAL
----------------------------TYPE
===>
3277
HELP
SPLIT
END
RETURN
RFIND
RCHANGE
UP
DOWN
SWAP
LEFT
RIGHT
CURSOR
INSTRUCTIONS:
Verify number of PF keys and terminal type before proceeding.
Press ENTER key to process changes.
Enter END command to process changes and exit.
Figure 14.
PF Key Definition Panel
In this example, PF9 has been equated to an edit command, and PF12 has
been equated to the system-defined PRINT command.
A PF key definition
case. The colon is
equated is inserted
cursor is currently
beginning with a colon (:) is treated as a special
stripped off and the command to which the key is
in the first input field on whichever line the
positioned.
A PF key definition beginning with a greater-than sign (» is another
special case. It causes the command to be passed to the dialog
regardless of whether the command appears in the command tables. This
feature provides compatibility with SPF, in which edit and browse
commands were defined with a greater-than sign.
Note:
When an ISPF function is executing, do not press RESET and
then attempt to enter information or use a PF key; results are
unpredictable.
Chapter 3. Use of Commands, Program Keys, and Light Pen
61
Saving PF Key Definitions
PF key definitions are kept- in a set of system variables named ZPF01,
ZPF02, ... ,ZPF24. Variables ZPF13-ZPF24 always contain the "primary"
PF key definitions. For 24-key terminals, these correspond to physical
keys 13-24. For 12-key terminals, these correspond to physical keys
1-12. Variables ZPF1-ZPF12 contain the "alternate".key definitions, and
are meaningful only for terminals with 24 PF keys.
The current values for all 24 keys (variables ZPF01-ZPF24) are kept in
the application profile. Hence, different PF key definitions can be
associated with different applications.
An application can provide default PF key settings for a new user by
providing a default profile. An application can prevent the user from
changing the default PF key settings by overriding the KEYS command (by
assigning it to NOP in the application command table).
MVS and VM/SP: Program Access (PA) Keys
The two PA keys are defined as follows.
changed.
These definitions may not be
ATTENTION! (PAl) Normally, this key should not be used while you are
in ISPF full screen mode. See the discussion below
for exceptions.
RESHOW
(PA2) Redisplays the contents of the screen. PA2 may be
useful if a user has pressed the ERASE INPUT or CLEAR
key accidentally, or has typed unwanted information
but has not yet pressed ENTER or a PF key.
Generally, PAl is used to terminate TSO commands or CLISTs running under
ISPF. However, some TSO commands and CLISTs process PAl in their own
way. CLISTs with attention exists should not be run under ISPF because
results are unpredictable when PAl is pressed.
If PAl is pressed while ISPF is in full screen mode after the keyboard
has been unlocked, it is treated as a RESHOW request. If PAl is again
pressed, the current function is terminated and the primary option menu
or a top-level selection panel supplied by the dialog developer, is
displayed.
When an ISPF function is executing, if the RESET key is pressed to
unlock the keyboard and PAl is pressed, ISPF will attempt to terminate
the current function and redisplay the primary option menu. The attempt
may not always be successful (if, for example, there is an error in MVS
allocation) .
62
ISPF Dialog Management Services
VSE: Program Access (PA) Keys
The two PA keys are defined below. Because these definitions may be
changed by an installation, consult the installation's system
administrator or system programmer to obtain the current definitions.
RESHOW
(PAl) Redisplays the contents of the screen. PAl may be
useful if the user has pressed the ERASE INPUT or has
unwanted information but has not yet pressed ENTER or
a PF key.
CANCEL
(PA2) Normally, this key should not be used while you are
in ISPF full screen mode. See the discussion below
for exceptions.
The PA2 key, pressed after the keyboard has been manually unlocked (by
pressing the RESET key), terminates processing and redisplays the
primary option menu.
If PA2 is pressed after the keyboard has been unlocked by ISPF, it
functions the same as the PAl key. However if PA2 is pressed a second
time without any intervening interaction, it terminates processing of
the current function or panel and the primary option menu is
redisplayed.
When an ISPF function is executing, if the RESET key is pressed to
unlock the keyboard and PA2 is pressed, ISPF will attempt to terminate
the current function and redisplay the primary option menu.
LIGHT PEN AND CURSOR SELECT
ISPF permits fields on a panel to be detected with a light pen or the
cursor select key. (The cursor select key is a hardware feature on 3278
and 3279 terminals.) Only the "attention" mode of light pen selection
is used.
Panel fields that are to be detectable by light pen or cursor selection
must be defined as attention fields. This is done with an attribute
character that has been defined with the ATTN(ON) keyword. The panel
designer must provide the number of blank characters before and after
the attention attribute character that are required by the 3270
hardware.
Processing of light pen/cursor selected fields is handled in much the
same way as PF keys. The entire contents of the selected field are
treated as a command and processed as though they had been typed into
the command field. If the command is found in the tables, it is
executed immediately. If the command is not found in the tables, it is
inserted into the command field and the entire command field is passed
to the dialog.
Attention fields may be used on a menu to simulate option selecti.on.
The panel designer must truncate any unwanted characters resulting from
Chapter 3. Use of Commands, Program Keys, and Light Pen
63
an attention entry into the command field.
Figure 15.
An example is shown in
In this example, a light pen or cursor selection of the first option
would cause the character string "1 - BROWSE" to be placed in the ZCMD
field and the ENTER key to be simulated. In the )PROC section, the
contents of the ZCMD field are truncated at the first blank before the
ZSEL variable is set based on a translation of the ZCMD field.
)ATTR
$ TYPE(TEXT) ATTN(ON)
)BODY
%------------------------------%SELECT OPTION ===> ZCMD
SOME MENU ------------------------------+
%
$
$
1 - BROWSE
2 - QUERY
+DISPLAY SOURCE DATA OR LISTINGS
+FIND OUT INFORMATION ABOUT SOMETHING
)PROC
&ZCND = TRUNC (&ZCMD, ' ')
&ZSEL = TRANS (TRUNC (&ZCMD, '. ')
1, 'PGM(ISPBRO),
2 , ' PANE L (XYZ) ,
Figure 15.
64
Use of Light Pen Attribute
ISPF Dialog Management Services
CHAPTER 4. LIBRARY REQUIREMENTS
This chapter describes the libraries that are used by ISPF. Some are
always required and others are required only if certain operations are
to be performed. Libraries that are to be required during a given
invocation of ISPF must be allocated before that invocation.
MVS: LIBRARY SETUP
Required and optional libraries for the operation of ISPF in the MVS
environment are described in this section.
Required Libraries
The following libraries (partitioned data sets) are required for
operation of ISPF in the MVS/TSO environment:
DDNAME
DESCRIPTION
ISPPLIB
ISPHLIB
ISPSLIB
ISPTLIB
ISPPROF
Panel Library
Message Library
Skeleton Library
Table Input Library
User Profile Library
RECFM
LRECL
FB
FB
FB
FB
FB
80
80
80
80
80
BLKSIZE
3120
3120
3120
3120
(see note)
Note: The block size may be established by the application.
must be a mUltiple of 80.
It
A filemode number other than 1 on a minidisk other than the A-disk may
not result in proper updating.
The panel, message, skeleton, and table input libraries are distributed
with ISPF. There is a separate profile library for each end-user. Its
contents are dynamically generated and updated during execution of ISPF.
The recommended data set names for these libraries are shown below.
Check with your system programmer to determine if these are the actual
data set names used at your installation.
DDNAME
ISPPLIB
ISPMLIB
ISPSLIB
ISPTLIB
ISPPROF
DSNAME
ISP.V1R1MO.ISPPLIB
ISP.V1R1MO.ISPMLIB
ISP.V1R1MO.ISPSLIB
ISP.VlR1MO.ISPTLIB
user selected
Chapter 4. Library Requirements
65
Application libraries for panels, messages, skeletons, and tables should
be concatenated ahead of the corresponding ISPF libraries using the
ddnames shown above. They must all have a record format of FB, a
logical record length of 80, and a block size of 3120 or greater. (The
block size must be a multiple of 80.)
Example. Suppose application XYZ uses the following partitioned data
sets for panels, messages, skeletons, and tables:
XYZ.PANELS
XYZ.HSGS
XYZ.SKELS
The following allocations are required:
IIISPPLIB
II
IIISPHLIB
II
DD DSN=XYZ.PANELS,DISP=SHR
DD DSN=ISP.VIRIMO.ISPPLIB,DISP=SHR
DD DSN=XYZ.MSGS,DISP=SHR
DD DSN=ISP.VIRIMO.ISPMLIB,DISP=SHR
II
DD DSN=XYZ.SKELS,DISP=SHR
DD DSN=ISP.VIRIMO.ISPSLIB,DISP=SHR
IIISPTLIB
'DD DSN=ISP.VIRIMO.ISPTLIB,DISP=SHR
IIISPPROF
DD DSN=USERAA.ISPF.PROFILE,DISP=OLD
IIISPSLIB
These allocations must be performed prior to invoking ISPF.
They may
be done in the user's TSO LOGON procedure using DD statements, as shown
above, or in a CLIST using the corresponding TSO ALLOCATE commands.
Table and File Tailoring Libraries
The following data sets are optional, and have to be allocated only if
an application uses table or file tailoring services.
DDNAME
DESCRIPTION
ISPTABL
ISPFILE
Table Output Library
File Tailoring Output
RECFM
LRECL
FB
FB
80
80
BLKSIZE
(See note)
(See note)
Note: The block size may be established by the application.
must be a multiple of 80.
It
The table output library must be a partitioned data set. The ISPTABL
ddname that defines it may specify the same data set as the table input
library (ddname ISPTLIB) or a different data set. The data sets must be
the same if the updated version of a table is to be reprocessed by the
same dialog that updated it.
66
ISPF Dialog Management Services
The table output library must be allocated to ddname ISPTABL prior to
use of table services. ISPF includes ENQ logic to prevent simultaneous
updates. ISPTABL must not specify a concatenated sequence of data sets.
In HVS and VH/SP, ISPTABL may be allocated dynamically by the dialog,
and freed upon completion of use. In MVS, ISPTABL should be allocated
with DISP=SHR even though it specifies an output data set.
Note: In MVS, the TSO Programming Control Facility II (PCF) may
not be used to protect the table output library from unauthorized
updating if the library is allocated DISP=SHR. The library may
either be protected by RACF, or allocated with DISP=OLD and
protected by PCF.
File tailoring output may be written to a temporary sequential data set
provided by ISPF. The temporary data set is allocated automatically, so
there is no need for the dialog to allocate a data set. The fully
qualified name of the temporary data set is available in system variable
ZTEMPF.
If the temporary data set is not used, file tailoring output may be
written either to a partitioned or a sequential data set. The data set
must be allocated to ddname ISPFILE prior to invoking file tailoring
services. ISPFILE may be allocated dynamically by the dialog, and freed
upon completion. For a sequential data set, ISPFILE must be allocated
with DISP=OLD. For a partitioned data set, it may be allocated with
DISP=SHR, but may not be protected by the Program Control Facility II
(PCF) unless it is allocated with DISP=OLD. ISPFILE must not specify a
concatenated sequence of data sets.
CLIST and Program Libraries
Dialog functions that are coded as CLISTs must be in a procedure library
that has been allocated to ddname SYSPROC prior to invoking ISPF.
Dialog functions that have been coded as programs must be link edited.
The load module may reside in a step library, a system link library
(such as SYS1.LINKLIB), or the link pack area. Alternatively, it may be
in the following partitioned data set (RECFH=U):
DDNAME
DESCRIPTION
ISPLLIB
ISPF Link Library
This library may be used for testing new dialogs that contain
program-coded functions. If used, it must be allocated to ddname
ISPLLIB (DISP=SHR) prior to invoking ISPF. ISPLLIB may specify a
concatenated sequence of partitioned data sets.
ISPLLIB is used as a task library when fetching load modules. It is
searched prior to the system link libraries and the link pack area. If
both a step library and task library (ISPLLIB) are used, then the step
library should be included in the ISPLLIB concatenation sequence.
Chapter 4. Library Requirements
67
Note: If a program is to be used in split screen mode from both
screens, it should be linked as reentrant or nonreusable.
VM/SP: LIBRARY SETUP
Required and optional libraries for the operation of ISPF in the VM/SP
environment are described in this section.
Note: Before ISPF is invoked, the user's virtual device 191 must
be accessed as the A-disk. ISPF assumes that this minidisk is
available at all times in read/write mode, and that no other user
has write access to it.
Note:
I,
Shared minidisk support is described in Appendix
Use of Shared Minidisks."
"V~1/SP:
Required Libraries
The following libraries (MACLIBs) are required for operation of ISPF in
the VM/CMS environment:
DDNAME
DESCRIPTION
ISPPLIB
ISPMLIB
ISPSLIB
ISPTLIB
ISPPROF
Panel Library
Message Library
Skeleton Library
Table Input Library
User Profile Library
FILENAME
(note
(note
(note
(note
(note
1) ISPPLIB
1) ISPMLIB
1) ISPSLIB
1) ISPTLIB
2) user
MACLIB
MACLIB
MACLIB
MACLIB
Notes:
1.
These libraries are distributed with ISPF.
2.
This library is not distributed with ISPF and is empty the first
time a user logs on. There is a separate profile library for each
user. Its contents are dynamically generated and updated during
execution of ISPF.
Application libraries for panels, messages, and skeletons should be
concatenated ahead of the corresponding ISPF libraries using FILEDEF
statements with the ddnames shown above.
.
Example. Suppose application XYZ uses the following libraries for
panels, messages, and skeletons, respectively:
XYZPANLS
XYZMSGS!
XYZSKELS
68
MACLIB
MACLIB
MACLIB
ISPF Dialog Management Services
The following FILEDEFs are required, assuming that the minidisks
containing the XYZ libraries and the distributed ISPF libraries have
already been linked and accessed.
FILEDEF ISPPLIB DISK XYZPANLS MACLIB
FILEDEF ISPPLIB DISK ISPPLIB MACLIB
('
\
FILEDEF ISPMLIB DISK XYZMSGS
FILEDEF ISP~ILIB DISK ISP~ILIB
CFILEDEF
FILEDEF
4':
i'(
~IACLIB 4',
~IACLIB
*;',
ISPSLIB DISK XYZSKELS MACLIB
ISPSLIB DISK ISPSLIB MACLIB
~':
#':
(PERM CONCAT)
(PERM CONCAT)
(PERM CONCAT)
(PERM CONCAT)
(PERM CONCAT)
(PERM CONCAT)
Note: A GLOBAL MACLIB command is not required; ISPF handles the
concatenation automatically based on the FILEDEF information.
These FILEDEFs must be issued prior to invoking ISPF.
They may be
issued in the user's PROFILE EXEC or in an EXEC that initiates the XYZ
application. Any EXEC that invokes ISPF must be coded in EXEC 2
language.
Note:
Duplicate file names are not permitted in CMS.
Table and File Tailoring Libraries
The following files are optional, and need to be defined only if an
application uses table or file tailoring services:
DDNAME
Description
Filename
ISPTABL
ISPFILE
Table Output Library
File Tailoring Output
user selected
user selected
HACLIB
MACLIB
The table input and output libraries must both be MACLIBs. The ddnames
that define them may specify the same MACLIB or different MACLIBs. The
MACLIBs must be the same if the updated version of a table is to be
reprocessed by the same dialog that updated it.
If tables are used, the table input library must be allocated (in a
FILEDEF statement) to ddname ISPTLIB prior to invoking ISPF. It may
consist of a concatenated sequence of libraries, in which case the
FILEDEFs must include the CONCAT parameter (see the above example).
Again, a GLOBAL MACLIB command is not required.
The table output library must be allocated (using a FILEDEF statement)
to ddname ISPTABL prior to use of table services. The ISPTABL ddname
may be allocated dynamically by the dialog, and freed (FILEDEF CLEAR)
upon completion of use. ISPTABL must not specify a concatenated
sequence of libraries.
File tailoring output may be written to a temporary sequential file
provided by ISPF. In this case, there is no need for the dialog to
allocate an output file. The temporary file is written on the user's
Chapter 4. Library Requirements
69
A-disk. The file name of the temporary file is available in system
variable ZTENPF. The file type is always ISPTEHP.
If the temporary file is not used, file tailoring output may be written
to either a NACLIB or a sequential file. The HACLIB or sequential file
must be allocated (in a FILEDEF statement) to ddname ISPFILE prior to
use of file tailoring services. If the HACLIB or file does not already
exist, the FILEDEF statement must include a "RECFH F" parameter. The
ISPFILE ddname may be allocated dynamically by the dialog, and freed
(FILEDEF CLEAR) upon completion. ISPFILE must not specify a
concatenated sequence of libraries.
Note: Table output libraries and, in some cases, file tailoring
output may need to be on shared minidisks. (Shared minidisk
support is further described in Appendix I, "VH/SP: Use of Shared
Minidisks") , ISPF ensures the integrity of these minidisks
provided all updating is done by ISPF services. However, ISPF
cannot prevent destructive conflicts if other means (e.g"
ordinary CNS commands) are used to update shared minidisks. To
guard against destructive conflicts, the following procedures are
suggested:
•
Isolate shared ISPF tables and file tailoring output files on
minidisks that do not have other types of files.
•
Caution users not to update these minidisks except through the
use of ISPF services.
•
Always access these minidisks as read-only extensions of
themselves. This prevents inadvertent updating. For example:
CP LINK XYZ 294 294 MW
ACCESS 294 D/D
FILEDEF ISPTABL DISK XYZTABL MACLIB D (PERM)
In this example, the table output library for the application
is assumed to be on the XYZ 294 minidisk. The disk is linked
in multiwrite (~M) mode to allow concurrent updating by
mUltiple users. However, when the disk is accessed as the
D-disk, "D/D" is specified making it a read-only extension of
itself. This prevents inadvertent updating. A FILEDEF
statement for the table output library (ddname ISPTABL) is
then issued to specify the particular table library (XYZTABL
MACLIB) on the D-disk.
ISPF automatically reaccesses the disk, when needed, to write
an updated copy of the table. ISPF then restores the original
(D/D) access mode.
The same technique should be used when a table library is
allocated for both input and output. For example:
70
ISPF Dialog Management Services
CP LINK XYZ 294 294 MW
ACCESS 294 DID
FILEDEF ISPTLIB DISK XYZTABL MACLIB D (PERM)
FILEDEF ISPTABL DISK XYZTABL MACLIB D (PERM)
EXEC and Program Libraries
Dialog functions coded in EXEC 2 must be in EXEC files on minidisks that
have been linked and accessed prior to invoking the EXEC.
Dialog functions that are coded as programs may be invoked in text
(object) module format, or they...J.!!5i
ink edited and invoked mload
module format. They may be in "TEXT files on minidisks that have been
ljLnked and accessed prior to invo lng
e function,~they may be
members of either of the following two libraries:
DDNAME
DESCRIPTION
ISPXLIB
ISPLLIB
Text Module Library (TXTLIB)
Load Module Library (LOADLIB)
If a TXTLIB is used, it must be allocated (using a FILEDEF statement) to
ddname ISPXLIB. A concatenated sequence of TXTLIBs may be specified, in
which case the FILEDEF statements must include the CONCAT parameter. A
GLOBAL TXTLIB command is not required.
When a text module is invoked (either as a TEXT file or as a member of a
TXTLIB), any additional text modules that it calls are loaded
automatically by "automatic call" reference. The called modules must
also be TEXT files on an ISPF-accessible minidisk or members of the
TXTLIB allocated to ddname ISPXLIB.
If a LOADLIB is used, it must be allocated (using a FILEDEF statement)
to ddname ISPLLIB. A concatenated sequence of LOADLIBs may be
specified, in which case the FILEDEFs must include the CONCAT parameter.
A GLOBAL LOADLIB command is not required.
No automatic call referencing is available with load modules; all load
module references must be resolved prior to invocation by ISPF.
Note: Load~dules may be used only for programs that are
reenterable. Nested use of the same load module or concurrent use
in split screen mode causes the same copy of the load module to be
invoked, even if it is marked reenterable.
Chapter 4. Library Requirements
71
Restrictions on Use of MODULE Files
Use of NODULE files, which are non-relocatable, should be avoided
whenever possible. Dialog functions that are invoked as programs by
means of the SELECT parameter:
SELECT PGN(program-name)
---
---
must be relocatable (text or load module format).
......
In VN/SP, whenever SU~h
a
~ is loaded into the user area, ISPF
automatically turns o· CMS sub';';t~'modeJo prevent NODULE files from
overlaying the relocata e progra~--fSPF turns off subset mode whenever
all relocatable programs in the user area have completed operation.
Note: In the split screen environment, subset mode is not turned 6ff
until all relocatable programs associated with both logical screens have
completed execution. A dialog may control the use of split screen
through use of the CONTROL service.
Dialog functions that are invoked as commands use the following SELECT
parameter:
r t
CND(command)
This parameter may be used to invoke NODULE files if CMS is not
currently operating in subset mode. However, these files may not use
dialog services. If subset mode is on, any attempt to invoke or load a
NODULE file will result in a CMS return code of +1.
MVS AND VM/SP: USE OF LIBRARIES
The following steps describe the order in which MVS and VM/SP libraries
are set up for use in development and test of a dialog:
72
1.
Set up the panel, message, skeleton, table, and program libraries
for the application. For the MVS environment, allocate new
partitioned data sets. For the VM/SP environment, selectminidisks
on which the libraries are to reside, and ensure that the dialog has
access to the minidisks.
2.
Create a command procedure (CLIST or EXEC 2) that contains the
necessary ALLOCATE or FILEDEF statements to allocate the libraries.
Concatenate the application libraries ahead of the libraries
required by ISPF, as described previously.
3.
Create the panels, messages, and skeletons by editing directly into
the application libraries. In the VM/SP environment, these
libraries can be updated only in test or trace mode.
4.
Create the dialog functions and assure that the text or load modules
are in libraries (or on minidisks) accessible to'ISPF.
ISPF Dialog Management Services
Note:
edited.
Functions coded as program modules must be link
Under V~1/SP, they may be link edited.
In either environment, when a function is link edited, the
ISPLINK subroutine must be included (explicitly or by
automatic call) in the load module. For MVS, ISPLINK is
distributed in load'module format and may be placed in a
system library for automatic call during link edit. For
VM/SP, ISPLINK is distributed as a TEXT file.
5.
Invoke the application. To do this, add an ISPSTART command to the
command procedure created in step 2. The ISPSTART commend should
invoke the application, using the appropriate PANEL, CMD, or PGM
parameter. This command procedure may be made available to the end
users as the means of invoking the application. Alternatives are to
invoke the application from the master menu or other menu.
VSE/AF 1.3.5: LIBRARY SETUP
In VSE, source statement libraries are used to store panels, messages,
tables and skeletons. The following sublibraries are used:
TYPE
MESSAGES
PANELS
SKELETONS
TABLES
SUBLIBRARY
M
N
S
(Includes file tailoring output)
T
Source statement libraries to be used in an ISPF session are defined
through ISPDEF control statements. These ISPDEF control statements are
-specified in the ICCF procedure used to invoke ISPF.
Required Libraries
The following ISPDEF library definitions are required for operation of
ISPF in the VSE/ICCF environment.
LIBNAME
DESCRIPTION
ISPPLIB
ISPMLIB
ISPSLIB
ISPTLIB
ISPPROF
Panel Library
Library
Skeleton Library
Table Library
User Profile Library
~lessage
Panel, message, skeleton, and table input libraries are provided in a
source statement library distributed with ISPF. A profile library must
be created for each user. Its contents are dynamically generated and
updated during execution of ISPF.
Chapter 4. Library Requirements
73
Application libraries for panels, messages, skeletons, and tables should
be concatenated ahead of the corresponding ISPF libraries using the
libnames shown above.
Example
Assume that application XYZ uses VSE library XYZLIB for its panels,
messages, skeletons, and tables.
The following ISPDEF statements are required:
ISPDEF
ISPDEF
ISPDEF
ISPDEF
ISPDEF
ISPPLIB,SEARCH=(XYZLIB,ISPFDMS)
ISPMLIB,SEARCH=(XYZLIB,ISPFDMS)
ISPSLIB,SEARCH=(XYZLIB,ISPFDMS)
ISPTLIB,SEARCH=(XYZLIB,ISPFDMS)
ISPPROF,SEARCH=USERA,TO=USERA
Or, alternatively:
ISPDEF *,SEARCH=(XYZLIB,ISPFDMS)
ISPDEF ISPPROF,SEARCH=USERA,TO=USERA
Library Definition
The ISPDEF control statement defines libraries to be used by ISPF.
The following syntax rules apply to the ISPDEF statement:
74
•
A statement may start in any column.
•
Parameters must be separated by a comma or one or more blanks.
•
A statement may be continued at any point a comma is valid and the
comma must be specified.
•
A continued statement may start in any column.
•
Parentheses in a SEARCH parameter are optional if a single library
is specified.
ISPF Dialog Management Services
ISPDEF
libname
,SEARCH=(af-name-input, ... )
,TO=af-name-output
,SEARCH=(af-name-input, ... ),TO=af-name-output
,ICCFLIB=iccf-number-ft-output I PRIM
,FILENAME=vse-name-ft-output
libname
Specifies the ISPF library this definition represents. The ISPF
library names that may be specified are ISPPLIB, ISPMLIB, ISPSLIB,
ISPTLIB, ISPPROF, ISPPHOD, ISPTABL and ISPFILE. User-defined names
may be specified to support the LIBRARY parameter of table services
and file tailoring.
*
Specifies that this library definition applies to all ISPF
libraries that have not been explicitly defi~ed by other library
definition statements.
af- name- input
Specifies the name of an Advanced Function (AF) library used for
input. Multiple libraries may be specified, in which case they are
concatenated beginning with the initially specified library name.
This parameter applies to libraries ISPPLIB, ISPMLIB, ISPSLIB,
A maximum of
ISPTLIB, ISPPROF or ISPPMOD, and to the libname '*'
15 libraries may be specified.
af- name-output
Specifies the name of an AF library used for output. This
parameter applies to libraries ISPPROF, ISPPHOD, ISPTABL, ISPFILE,
user defined libraries, and to the libname 'i'.'
iccf- n umber-ft-output
Specifies the number of an ICCF library number to be used for file
tailoring output. This parameter applies to library ISPFILE and to
user defined libraries.
vse- name-ft-output
Specifies the filename of a VSE sequential file to be used for file
tailoring output. This parameter applies to library ISPFILE only.
Figure 16 shows the ISPDEF statement parameters and the ISPF libraries
that may be specified in each. Figure 17 shows relationships between
defaults specified by the '*' libname statement and unspecified ISPF
libraries.
Chapter 4. Library Requirements
75
I
libname
SEARCH
ISPPLIB
M
R
ISPMLIB
M
R
ISPSLIB
M
R
ISPTLIB
M
R
ISPPROF
M
R1
ISPPMOD
0
R1
ISPTABL
0
NA
ISPFILE
0
NA
0
NA
0
R3
user
defined
~~
Figure 16.
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
II
TO
ICCFLIB
FILENAME
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
R1
NA
NA
R1
NA
NA
R
NA
NA
R2
R2
R2
R2
R2
NA
R3
NA
NA
ISPDEF Statement Parameters and Libraries to Which They Apply
Meanings for the codes used in Figure 16 are:
76
M -
Mandatory ISPF library
NA -
Not applicable
o
Optional ISPF library
R
Required parameter
Rl -
The library specified for ISPPROF and ISPPMOD is used for
input and output operations. A single library must be
specified using either the SEARCH or TO parameters. The same
library must be indicated if both the SEARCH and TO parameters
are specified.
R2 -
A single AF library or ICCF library or VSE sequential data set
filename must be specified. For a user defined library used
by table services, only the TO parameter is valid.
ISPF Dialog Management Services
The libname '*' specifies the default input library chain
and/or default output library. The SEARCH parameter specifies
one or more libraries as the default ISPF input library chain.
The TO parameter specifies one library as the default ISPF
output library. Refer to Figure 17 for the relationship
between the '*' libname statement and unspecified ISPF
libraries.
R3 -
libname
SOURCE OF DEFAULT LIBRARY SPECIFICATION
ISPPLIB
libraries specified by the SEARCH parameter
ISPMLIB
libraries specified by the SEARCH parameter
ISPSLIB
libraries specified by the SEARCH parameter
ISPTLIB
libraries specified by the SEARCH parameter
ISPPROF
ISPPMOD
first library specified by the SEARCH parameter
or library specified by the TO parameter. The
same default library must result if both the
SEARCH and TO defaults have been established.
ISPTABL
library specified by the TO parameter
ISPFILE
library specified by the TO parameter
Figure 17.
Relationship Between Defaults Specified by the '*' Libname Statement and
Unspecified ISPF Libraries.
Three examples of ISPDEF statements are given below. In example 1, all
ISPF input libraries are defined by USER1 followed by the ISPF product
source library, and all ISPF output libraries are defined to USER1.
Example 2 defines the same ISPF libraries as example 1, but uses the '*'
libname.
Example 3 explicitly specifies an ISPPROF definition. In this case, if
ISPPROF were not explicitly specified, the default definition from the
'*' ISPDEF statement would be in effect and would be invalid. The
default is invalid because the first library in the SEARCH parameter is
not the same as the library in the TO parameter. In this example, the
optional ISPF library ISPPMOD will not be defined from the defaults
established because th~ result also would be invalid.
Note:
The name ISPFDMS, used in these examples, is the
recommended name.
Chapter 4. Library Requirements
77
1.
ISPDEF
ISPDEF
ISPDEF
ISPDEF
ISPDEF
ISPDEF
ISPDEF
ISPDEF
ISPDEF
ISPPLIB,SEARCH=(USER1,ISPFDMS)
ISPMLIB,SEARCH=(USER1,ISPFDMS)
ISPSLIB,SEARCH=(USER1,ISPFDMS)
ISPTLIB,SEARCH=(USER1,ISPFDMS)
ISPPROF,SEARCH=USER1,TO=USER1
ISPPMOD,SEARCH=USER1,TO=USER1
ISPTABL,TO=USER1
ISPFILE,TO=USERI
USERDEF,ICCFLIB=4
2. ISPDEF
ISPDEF
*,SEARCH=(USER1,ISPFDMS),TO=USERI
USERDEF,ICCFLIB=4
3. ISPDEF
ISPDEF
ISPDEF
*,SEARCH=(USER2,USERl,ISPFDMS),TO=USER1
ISPPROF SEARCH=USERl,TO=USER1
USERDEF,ICCFLIB=4
Table and File Tailoring Libraries
The following libraries are optional, and need be specified only when an
application is to use table or file tailoring services.
LIBNAME
DESCRIPTION
ISPTABL
ISPFILE
Table Output Library
File Tailoring Output
The table output library must be a VSE library. The ISPTABL definition
may specify the same library as the table input library or a different
library. The libraries must be the same if the updated version of a
table is to be reprocessed by the same dialog that updated it.
File tailoring output maybe written to a temporary sequential data set
defined under the filename "ISPCTLn". The filename of the temporary
data set is available in system v~riable ZTEMPF. (When accessing this
data set use RECFM of fixed, BLKSIZE of 800, and LRECL of 80.)
If the temporary data set is not used, file tailoring output may be
written to a VSE library, an ICCF library, or a sequential data set as
specified by the ISPDEF statement for ISPFILE. (When accessing this
data set use fixed RECFM, BLKSIZE of 800, and LRECL of 80.)
VSE/AF 1.3.5: USE OF LIBRARIES
The following steps describe the order in which VSE libraries are set up
for use in development and test of a dialog:
78
1.
Allocate an AF private source statement library to contain the
panels, message, skeletons, and tables associated with the dialog.
2.
Create an ICCF procedure that contains the necessary ISPDEF
statements to define the libraries to be used during ISPF execution.
ISPF Dialog Management Services
The sample ISPSTART ICCF procedure located in the ICCF common
library should be used as a guide. (This procedure is placed in the
ICCF common library during ISPF installation.)
3.
Create the panels, messages, and skeletons by editing directly into
the application library (allocated in step 1).
4.
Create the dialog functions and make them available in core image
libraries accessible to ISPF. Each dialog function must be link
edited and the subroutine ISPLINK must be included (explicitly or by
autolink) in the phase.
5.
Invoke the application. To do this, modify the ISPSTART command in
the ICCF procedure created in step 2. The ISPSTART command should
invoke the application using the appropriate panel or pgm parameter.
This ICCF procedure may be made available to application users as a
means of invoking the application. Alternatives are to invoke the
application from the master menu or other menu.
VSE/AF 2.1: LIBRARY SETUP
In VSE, libraries.sublibraries are used to store panels, messages,
tables and skeletons. The following member types are used:
CATEGORY
HESSAGES
PANELS
SKELETONS
TABLES
TYPE
H
N
S
T
(Includ~s
file tailoring output)
Libraries.sublibraries to be used in an ISPF session are defined through
ISPDEF control statements. These ISPDEF control statements are
specified in the ICCF procedure used to invoke ISPF.
Required Libraries
The following ISPDEF library definitions are required for operation of
ISPF in the VSE/ICCF environment.
LIBNAHE
DESCRIPTION
ISPPLIB
ISPHLIB
ISPSLIB
ISPTLIB
ISPPROF
Panel Library
Hessage Library
Skeleton Library
Table Library
User Profile Library
Panel, message,skeleton, and table input libraries are provided in a
VSE/AF library.sublibrary distributed with ISPF. A profile
library.sublibrary must be created for each user. Its contents are
dynamically generated and updated during execution of ISPF.
Chapter 4. Library Requirements
79
Application libraries.sublibraries for panels, messages, skeletons, and
tables should be concatenated ahead of the corresponding ISPF libraries
using the libnames shown above.
Example
Assume that application XYZ uses VSE library.sublibrary XYZLIB.XYZSUB
for its panels, messages, skeletons, and tables.
The following ISPDEF statements are required:
ISPDEF
ISPDEF
ISPDEF
ISPDEF
ISPDEF
ISPPLIB,SEARCH=(XYZLIB.XYZSUB,ISPF.DM)
ISPMLIB,SEARCH=(XYZLIB.XYZSUB,ISPF.DM)
ISPSLIB,SEARCH=(XYZLIB.XYZSUB,ISPF.DM)
ISPTLIB,SEARCH=(XYZLIB.XYZSUB,ISPF.DM)
ISPPROF,SEARCH=USERLIB.USERA,TO=USERLIB.USERA
Or, alternatively:
ISPDEF *,SEARCH=(XYZLIB.XYZSUB,ISPF.DM)
ISPDEF ISPPROF,SEARCH=USERLIB.USERA,TO=USERLIB.USERA
Library Definition
The ISPDEF control statement defines VSE libraries.sublibraries, ICCF
libraries, or VSE sequential files to be used by ISPF.
The following syntax rules apply to the ISPDEF statement:
80
•
A statement may start in any column.
•
Parameters must be separated by a comma or one or more blanks.
•
A statement may be continued at any point a comma is valid and the
comma must be specified.
•
A continued statement may start in any column.
•
Parentheses in a SEARCH parameter are optional if a single
library.sublibrary is specified.
ISPF Dialog Management Services
,SEARCH=(af-name-input, ... )
,TO=af-name-output
,SEARCH=(af-name-input, ... ),TO=af-name-output
,ICCFLIB=iccf-number-ft-output I PRIM
,FILENAME=vse-name-ft-output
ISPDEF
libname
Specifies the ISPF library this definition represents. The ISPF
library names that may be specified are ISPPLIB, ISPMLIB, ISPSLIB,
ISPTLIB, ISPPROF, ISPPMOD, ISPTABL and ISPFILE. User-defined names
may be specified to support the LIBRARY parameter of table services
and file tailoring.
*
Specifies that this library definition applies to all ISPF
libraries that have not been explicitly defined by other library
definition statements.
af-name-input
Specifies the name of a VSE/Advanced Function (AF)
library.sublibrary used for input. Multiple libraries.sublibraries
may be specified, in which case they are concatenated beginning
with the initially specified library.sublibrary name. This
parameter applies to libraries ISPPLIB, ISPMLIB, ISPSLIB, ISPTLIB,
ISPPROF or ISPP~1OD, and to the libname '''-:'. A maximum of 15
libraries.sub1ibraries may be specified.
af- name-outp ut
Specifies the name of a VSE/AF library.sublibrary used for output.
This parameter applies to libraries ISPPROF, ISPPMOD, ISPTABL,
ISPFILE, user defined libraries, and to the libname '*'
iccf- n umber-ft-outp ut
Specifies the number of an ICCF library number to be used for file
tailoring output. This parameter applies to library ISPFILE and to
user defined libraries.
vse- name-ft-outp ut
Specifies the filename of a VSE sequential file to be used for file
tailoring output. This parameter applies to library ISPFILE only.
Figure 18 shows the ISPDEF statement parameters and the ISPF libraries
that may be specified in each. Figure 19 shows relationships between
Chapter 4. Library Requirements
81
defaults specified by the '*' libname statement and unspecified ISPF
libraries.
libname
SEARCH
TO
ICCFLIB
FILENA~lE
ISPPLIB
~1
R
NA
NA
NA
ISPMLIB
M
R
NA
NA
NA
ISPSLIB
M
R
NA
NA
NA
ISPTLIB
M
R
NA
NA
NA
ISPPROF
M
R1
R1
NA
NA
ISPPMOD
0
R1
R1
NA
NA
ISPTABL
0
NA
R
NA
NA
ISPFILE
0
NA
R2
R2
R2
0
NA
R2
R2
NA
0
R3
R3
NA
NA
user
defined
.,~
Figure 18.
ISPDEF Statement Parameters and Libraries to Which They Apply
Meanings for the codes used in Figure 18 are:
82
M -
Mandatory ISPF library
NA -
Not applicable
o
Optional ISPF library
R
Required parameter
Rl -
The 1ibrary.sub1ibrary specified for ISPPROF and ISPPMOD is
used for input and output operations. A single
library.sublibrary must be specified using either the SEARCH
or TO parameters. The same library.sublibrary must be
indicated if both the SEARCH and TO parameters are specified.
ISPF Dialog Management Services
R2 -
A single VSE/AF library.sublibrary or ICCF library or VSE
sequential data set filename must be specified. For a user
defined library used by table services, only the TO parameter
is valid.
R3 -
The libname '*' specifies the default input library chain
and/or default output library. The SEARCH parameter specifies
one or more libraries.sublibraries as the default ISPF input
library chain. The TO parameter specifies one
library.sublibrary as the default ISPF output library. Refer
to Figure 19 for the relationship between the '*' libname
statement and unspecified ISPF libraries.
libname
SOURCE OF DEFAULT LIBRARY.SUBLIBRARY SPECIFICATION
ISPPLIB
libraries.sublibraries specified by the SEARCH parameter
ISPMLIB
libraries.sublibraries specified by the SEARCH parameter
ISPSLIB
libraries.sublibraries specified by the SEARCH parameter
ISPTLIB
libraries.sublibraries specified by the SEARCH parameter
ISPPROF
ISPPMOD
first library.sublibrary specified by the SEARCH parameter
or library.sublibrary specified by the TO parameter. The
same default library.sublibrary must result if both the
SEARCH and TO defaults have been established.
ISPTABL
library.sublibrary specified by the TO parameter
ISPFILE
library.sublibrary specified by the TO parameter
Figure 19.
Relationship Between Defaults Specified by the '*' Libname Statement and
Unspecified ISPF Libraries.Sublibraries
Three examples of ISPDEF statements are given below. In example 1, all
ISPF input libraries are defined by USERLIB.USER1 followed by the ISPF
product library, and all ISPF output libraries are defined to
USERLIB.USER1. Example 2 defines the same ISPF libraries as example 1,
but uses the '*' libname.
Example 3 explicitly specifies an ISPPROF definition. In this case, if
ISPPROF were not explicitly specified, the default definition from the
'*' ISPDEF statement would be in effect and would be invalid. The
default is invalid because the first library in the SEARCH parameter is
not the same as the library in the TO parameter. In this example, the
Chapter 4. Library Requirements
83
optional ISPF library ISPPMOD will not be defined from the defaults
established because the result also would be invalid.
The name ISPF.DM, used in these examples, is the
recommended name.
Note:
1. ISPDEF
ISPDEF
ISPDEF
ISPDEF
ISPDEF
ISPDEF
ISPDEF
ISPDEF
ISPDEF
ISPPLIB,
SEARCH=(USERLIB.USERl,
ISPF . Dt-I)
ISPMLIB,SEARCH=(USERLIB.USERl,ISPF.DM)
ISPSLIB,SEARCH=(USERLIB.USERl,ISPF.DM)
ISPTLIB,SEARCH=(USERLIB.USERl,ISPF.DM)
ISPPROF,SEARCH=USERLIB.USERl,TO=USERLIB.USERl
ISPPMOD,SEARCH=USERLIB.USERl,TO=USERLIB.USERl
ISPTABL,TO=USERLIB.USERI
ISPFILE,TO=USERLIB.USERI
USERDEF, ICCFLIB=4
2. ISPDEF
ISPDEF
*,SEARCH=(USERLIB.USERl,ISPF.DM),TO=USERLIB.USERl
USERDEF,ICCFLIB=4
3. ISPDEF
-l:
ISPDEF
ISPDEF
,
SEARCH=(USERLIB.USER2,USERLIB.USERl,ISPF.DM),
TO=USERLIB.USERI
ISPPROF SEARCH=USERLIB.USERl,TO=USERLIB.USERl
USERDEF,ICCFLIB=4
Table and File Tailoring Libraries
The following libraries are optional, and need be specified only when an
application is to use table or file tailoring services.
LIBNAME
DESCRIPTION
ISPTABL
ISPFILE
Table Output Library
File Tailoring Output
The table output library must be a VSE library.sublibrary. The ISPTABL
definition may specify the same library.sublibrary as the table input
library or a different library.sublibrary. The library.sublibraries
must be the same if the updated version of a table is to be reprocessed
by the same dialog that updated it.
File tailoring output may be written to a temporary sequential data set
defined under the filename "ISPCTLn". The filename of the temporary
data set is available in system variable ZTEMPF. (When accessing this
data set use RECFM of fixed, BLKSIZE of 800, and LRECL of 80.)
If the temporary data set is not used, file tailoring output may be
written to a VSE library.sublibrary, an ICeF library, or a sequential
data set as specified by the ISPDEF statement for ISPFILE. (When
accessing this data set use fixed RECFM, BLKSIZE of 800, and LRECL of
80.)
84
ISPF Dialog Management Services
VSE/AF 2.1: USE OF LIBRARIES
The following steps describe the order in which VSE/AF
libraries.sublibraries are set up for use in development and test of a
dialog:
1.
Define an AF library.sublibrary to contain the panels, message,
skeletons, and tables associated with the dialog.
2.
Create an ICCF procedure that contains the necessary ISPDEF
statements to define the libraries to be used during ISPF execution.
The sample ISPSTART ICCF procedure located in the ICCF common
library should be used as a guide. (This procedure is placed in the
ICCF common library during ISPF installation.)
3.
Create the panels, messages, and skeletons by editing directly into
the application library.sublibrary (defined in step 1).
4.
Create the dialog functions and make them available in
libraries.sublibraries accessible to ISPF. Each dialog function
must be link edited and the subroutine ISPLINK must be included
(explicitly or by autolink) in the phase.
5.
Invoke the application. To do this, modify the ISPSTART command in
the ICCF procedure created in step 2. The ISPSTART command should
invoke the application using the appropriate panel or pgm parameter.
This ICCF procedure may be made available to application users as a
means of invoking the application. Alternatives are to invoke the
application from the master menu or other menu.
Chapter 4. Library Requirements
85
86
ISPF Dialog Management Services
CHAPTER 5. INVOCATION AND TERMINATION
This chapter describes how to invoke ISPF in both interactive and batch
environments, and how to terminate ISPF processing.
MVS AND VM/SP: INVOCATION OF ISPF
In MVS and VM/SP, ISPF is invoked using the ISPSTART command.
ISPSTART command may be issued:
The
•
By the user at a terminal
•
From a command procedure (CLIST or EXEC 2)
•
During LOGON (from a TSO LOGON procedure or CMS PROFILE EXEC)
When PDF is installed, the ISPF command may be used to invoke either
ISPF/PDF or other dialogs if a PANEL, CMD, or PGM keyword is specified.
The ISPF command provides compatibility with the SPF Program Product.
VSE:
INVOCATION OF ISPF
In VSE, ISPF is invoked by an ICCF procedure. The procedure may have
any name acceptable to ICCF, however, in this publication, ISPSTART is
the name assumed. The procedure to invoke ISPF consists of the
following kinds of statements:
&&OPTIONS 0010001
/INPUT
&/LOAD ISPSTART
&/OPTION GETVIS P-22 TIME=32767,65535
&/FILE ISPLOG,DISP=DELETE,SPACE=2
&/FILE ISPLIST,DISP=DELETE,SPACE=2
&/FILE ISPCTL1,DISP=DELETE,SPACE=2
&/FILE ISPCTL2,DISP=DELETE,SPACE=2
ISPSTART &&PARA~l1 &&PARAM2 &&PARAM3 &&PARAM4
I SPDEF ..,~, SEARCH= ( ... , I SPFDMS) , TO= .. .
(for VSE/AF 1.3.5)
ISPDEF ..~, SEARCH=( ... , ISPF . DM) , TO= .. .
(for VSE/AF 2.1)
/END
/PEND
/RUN
The /LOAD job entry statement invokes ISPF.
The /OPTION job entry statement specifies a maximum GETVIS area size.
The /FILE job entry statements define the log, list, and temporary data
sets to be used during ISPF processing.
Chapter 5. Invocation and Termination
87
ISPDEF command processing is described in Chapter 4, "Library
Requirements. " \ \
II
~7NT;X '/~
-~-,,'~-'"~
£:-x (;C
I
~ ~/1A\/~,
<'1-1
This section describes syntax for the command that invokes ISPF. In HVS
and VH/SP, this command is the ISPSTART command. In VSE, the command
invokes an ICeF procedure that, in turn, invokes ISPF. Generally, this
IceF procedure is named ISPSTART. Other names may be used; however, the
name ISPSTART is used in this publication.
Notation conventions are described in the Preface.
In ~lVS and
below.
V~l/SP,
the command and its parameters are coded as shown
In VSE, command parameters are coded as shown below, but with the
parameter string enclosed in apostrophes when any parameter in the
string includes parenthesis, as in the following example~
ISPSTART 'PANEL(USER) NEWAPPL(ZZZZ),
The resulting ISPSTART command statement, after ICCF substitution,
is:
ISPSTART PANEL(USER) NEWAPPL(ZZZZ)
I5pvc5
88
ISPF Dialog Hanagement Services
The format for ISPSTART is:
ISPSTART
PANEL(panel-name)
[OPT(option)]
CMD(command)
PGM(program-name)
[PARN(parameters)]
[LANG(PLIIPLl [,storage-area])]
[LANG(COBOL) ]
[NEWAPPL[(application-id)]]
[TESTITESTXITRACEITRACEX]
panel-name
Specifies the name of the first menu (i.e., the primary option
m"enu) to be displayed.
option
Specifies an initial option, which must be a valid option on the
first menu. This causes direct entry to that option without
displaying the menu. (The menu is processed in nondisplay mode, as
though the end user had entered the option.)
command
In MVS and VMjSP, specifies a command procedure (CLIST or EXEC 2)
that is to be invoked as the first dialog function. Command
parameters may be included within the parentheses. These
parameters are passed to the command procedure. A percent sign (%)
may precede the CLIST or EXEC 2 name to improve performance.
In VSE, this parameter is not used because ICCF procedures may not
be used for writing dialog functions.
program-name
Specifies the name of a program that is to be invoked as the first
dialog function. If the program is coded in PLjI, it must be a
MAIN procedure.
Note: Dialog developers should avoid using the ISP and ISR
prefixes (the ISPF and PDF component codes) in naming dialog
functions. Special linkage conventions, intended only for
internal ISPF use, are used to invoke programs named
"ISPxxxxx" and "ISRxxxxx".
In MVS, this parameter must specify the name of a load module that
is accessible by use of the LINK macro.
Chapter 5. Invocation and Termination
89
In VHjSP, this parameter may specify the name of a TEXT file, a
member
of a TXTLIB,~a member of a LOADLIB. See -rr-Library Setup VHjSP Environment" for more information.
(~u.
parameters
p CaB)
Specifies input parameters to be passed to the program.
program should not attempt to modify these parameters.
The
The parameters within the parentheses are passed as a single
character s-tring, preceded by a halfword containing the length of
the character string, in binary. (The length value does not
include itself.) This convention is the same as that for passing
parameters by use of the PARM= keyword on a JCL EXEC statement.
Parameters on the ISPSTART command to be passed to a PLjI program
are coded in the standard way:
XXX:
PROC (PAR~1) OPTIONS (MAIN) ;
DCL PARM CHAR (nnn) VAR;
If the value of the PARM field is to be used as an ISPF dialog
variable, it must be assigned to a fixed character string because
the VDEFINE service cannot handle varying length PLjI strings.
In MVS and VHjSP, the first character of the PARM field must be a
slash ('j') since PLjI assumes that any value prior to the slash is
a run-time option.
LANG(PLI) or LANG(PL 1)
In VSE, specifies that the function being invoked is written in the
PLjI language.
In MVS and VMjSP, this keyword is not used.
storage-area
In VSE, for programs written in PLjI, specifies the number of bytes
of dynamic storage to be made available to the function being
invoked.
The default storage size is 2816 bytes. Generally, the amount of
storage required for a PL/I program can be determined by using the
storage option to compile the program and then adding 2192 to the
DSA sizes specified on the compile listing. However, the storage
requirement will vary considerably depending on the compiler
options specified, i.e. "FLOW" will use slightly more storage but
"COUNT" will substantially increase the storage requirement.
In MVS and VMjSP, this parameter is not used.
LANG(COBOL)
In VSE, specifies that the function being invoked is written in the
COBOL language.
In MVS and VMjSP, this keyword is not used.
90
ISPF Dialog Management Services
NEWAPPL(application-id)
Specifies a 1- to 4-character code that identifies the application
that is being invoked. The code is to be prefixed to the user and
edit profile names or the command table associated with the
application, as follows:
User Profile
Edit Profile
Command Table
xxxxPROF
xxxxEDIT
xxxxCHDS
where xxxx is the application-id. If the application-id is
omitted, or if the NEWAPPL keyword is omitted, the application-id
defaults to ISP.
TEST
Specifies that ISPF is to be operated in TEST mode, described
below.
TESTX
Specifies that ISPF is to be operated in extended TEST mode,
described below.
TRACE
Specifies that ISPF is to be operated in TRACE mode, described
below.
TRACEX
Specifies that ISPF is to be operated in extended TRACE mode,
~~
't
. T~~~eturn .__code from ISPST~~T is -always
~,.,)
---..---~.- ~--"-.- ~-...
•....
Test Modes
The testing modes of ISPF provide special processing actions to help in
the debugging of a dialog. If PDF is installed, consider using the
dialog test option of that facility (see ISPFjPDF Reference), instead of
the testing modes described here.
Anyone of four mutually exclusive keyword parameters may be specified
on the ISPSTART command to control the operational mode when testing a
dialog:
•
TEST
- Test mode
•
TESTX
- Extended test mode
•
TRACE
- Trace mode
•
TRACEX - Extended trace mode
Chapter 5. Invocation and Termination
91
In TEST mode, ISPF operates differently from normal mode in the
following ways:
1.
Panel and message definitions are refetched from the panel and
message libraries whenever a panel name or message id is specified
in an ISPF service. (In normal mode, the most recently accessed
panel definitions are retained in virtual storage and, under MVS, a
table of TTRs returned from BLDL macros is kept in virtual storage
for frequently used message, panel, skeleton, and table members. If
you have modified the panel or message library, use of TEST mode
will ensure that the latest v2rsion of each panel or message is
accessed during a test run.
Under MVS, a new extent on a DASD may be caused when using an editor
to modify a panel, message, or skeleton or by link editing a module.
When a new extent is allocated, the modification can be accessed
only by first terminating and then reinvoking ISPF.
2.
Tutorial panels are displayed with current panel name, previous
panel name, and previous message id on the bottom line of the
display screen. This will assist you in identifying the position of
the panel in the tutorial hierarchy.
3.
Screen printouts (obtained through use of the PRINT or PRINT-HI
commands) include line numbers, current panel name, and message ida
4.
If a dialog function is operating in the CANCEL error mode (the
default), the panel that is displayed on an error allows you to
force the dialog to continue, in spite of the error. Results from
that point on, however, are unpredictable and may result in an
ABEND.
S.
Other than the situation described in item 4, any ISPF-detected
error, ABEND, or program interrupt forces an ABEND of ISPF. The
user may also force an ABEND by entering ABEND or CRASH in the
command line of any panel.
6.
For MVS/TSO:
The PAl key causes an immediate exit from ISPF.
If an ISPF subtask ABENDs, a dump may be taken by pressing ENTER
after the ABEND message appears, provided that a SYSUDUMP, SYSMDUMP,
or SYSABEND data set has been allocated.
7.
For VM/CMS:
An ADSTOP set within ISPF code is not lost, even if ISPF invokes a
eMS command that executes in the user area. If ISPF is operating in
DCSS, the page containing the ADSTOP is marked non-shareable, and is
copied automatically to the user area.
92
ISPF Dialog Management Services
In TESTX (extended test) mode, ISPF operates the same as in TEST mode
except that all messages written to the ISPF log file are also displayed
at the terminal.
Trace Modes
In TRACE mode, ISPF operates the same as it does in TEST mode, with the
following exception.
In MVS, VM/SP, and ISPF/PDF option 7.6, a message is written to the ISPF
log file whenever any ISPF service is invoked (even if CONTROL ERRORS
RETURN has been issued) and whenever any error is detected by an ISPF
service. Note that only CLIST and EXEC 2 service requests, and service
requests issued under PDF option 7.6 are recorded; program module
requests for service are not recorded in the log file.
In TRACEX (extended trace) mode, ISPF operates the same as it does in
TRACE mode except that all messages written to the ISPF log file
(including the trace messages) are also displayed at the terminal.
DIALOG INITIATION AND TERMINATION
Execution of a dialog is initiated by the SELECT service. Selection
keywords, passed to the SELECT service, specify whether the dialog
begins with the display of a menu (PANEL keyword) or the execution of a
dialog function (CMD or PGM keyword). The dialog terminates when the
selected menu or function terminates. The action at termination depends
upon how the SELECT service was originally invoked.
SELECT Service Invocation
The SELECT service may be invoked in the following ways:
•
During initialization, the SELECT service is automatically invoked
by the dialog manager to initiate the first dialog. The selection
keywords originally specified on the ISPSTART command are passed to
the SELECT service.
For dialogs invoked by ISPSTART, ISPF error processing is not put
into effect until ISPF initialization is completed.
•
If the user enters split screen mode, the dialog manager again
invokes the SELECT service and again passes the selection keywords
from the ISPSTART command. This causes the first dialog (specified
in the ISPSTART command) to be initiated on the second logical
screen.
In VSE, user dialog functions are restricted to one logical screen.
That is, a user dialog function may be executed in either logical
screen, but may not be executed in both logical screens
Chapter 5. Invocation and Termination
93
concurrently.
functions.
This restriction does not apply to ISPF or ISPF/PDF
•
The SELECT
selects an
this case,
definition
service recursively invokes itself whenever the user
option from a menu displayed by the SELECT service. In
the selection keywords are specified in the panel
for the menu.
•
The SELECT service may be invoked from a dialog function. In this
case, the selection keywords are passed as calling sequence
parameters.
The action taken at dialog termination is as follows:
•
If the SELECT service was invoked from a dialog function, control is
returned to that function and the function continues execution.
•
If the SELECT service was invoked from a menu, that menu is
redisplayed (including execution of the INIT section in the panel
definition) .
•
If the user is terminating split screen mode, the original dialog is
ended on that logical screen and the other logical screen expands to
the full size of the physical display screen.
•
If the user is terminating ISPF (which can only be done in single
screen mode), either the ISPF termination panel is displayed or the
user's defaults for list/log processing are employed (as specified
using the ISPF PARMS option).
The termination panel is displayed if:
----~--.--""j~..,..~'"
•
The dialog started with the display of a menu and the user entered
the END command on that menu.
•
The dialog started with the execution of a function and the function
ended with a return code of o.
The
list/~og
•
The dialog started with the display of a menu and the user entered
the RETURN command or selected the "exit" option (see "Special Panel
Requirements" in Chapter 7 for discussion of the EXIT keyword).
•
The dialog started with the execution of a function and the function
ended with a return code of 4 or higher. (A return code higher than
4 will cause an error message to be displayed.)
defaults are used if:
If the user has not specified valid list/log defaults, the ISPF
termination panel is displayed in all cases.
,~~~"")l~~~M.iC~-&V:.JMIil{.'j;"..r.,,;r,.:;.;w;,(,.I..~';'
94
\I$j
ISPF Dialog Management Services
VSE: Dialog Abend Intercept
In VSE, the STXIT AB facilities of VSE are available to dialogs. Each
function of a dialog - invoked using SELECT PGM(program-name) - may
issue the STXIT AB macro to establish its own STXIT AB exit.
ISPF manages dialog STXIT AB exit information so that each function of
the dialog operates independently. If an abnormal condition is
detected, each dialog STXIT AB exit routine that is active is given
control prior to ISPF terminating the currently running logical screen.
This permits data needed for debugging to be saved before the dialog is
terminated.
Because ISPF and user dialogs operate in the same partition, an error
that causes a dialog to abend may also destroy ISPF's ability to process
dialog service requests. Therefore, requests for dialog services
included within an STXIT AB exit may themselves cause an abend and
should be avoided or, at least, not specified until all other dialog
recovery processing has been specified.
Note: When a dialog is cancelled by the system operator or
because execution time expires, dialog STXITs do not receive
control.
BATCH EXECUTION OF ISPF SERVICES
When initiated in a batch environment, ISPF services execute as a
command in the background. Only services that are non-interactive
execute successfully. Any services that cause a full screen write
result in an error message. Background invocations are generally used
to invoke ISPF table and file tailoring services; however, access to
other non-interactive dialog services are also available.
TSO Batch Environment
TSO provides facilities for executing command processors in the batch
environment. The JCL stream provides for data sets to be pre-allocated
prior to the invocation of any command. The Terminal Monitor Program
(TMP) is invoked by use of the EXEC statement, and establishes the
necessary control blocks for the TSO environment. The command input
stream is accessed from the SYSTSIN DD statement and all terminal line
I/O outputs issued by the TSO I/O service routines are directed to the
SYSTSPRT DD statement definition. The ISPF libraries are allocated
using DD statements. The panels, messages, skeleton, table, and profile
data sets must be preallocated. While not required, it is recommended
that the log data set also be preallocated. If a log data set is
dynamically allocated, it is always kept at ISPF termination.
The ISPF command is placed in the input stream with the CMD or PGM
keywords that name the dialog to be invoked. All dialog services are
permitted except for BROWSE, DISPLAY, EDI~, SELECT PANEL, SETMSG, and
TBDISPL.
Chapter 5. Invocation and Termination
95
A userid is selected for the background job, as follows:
1.
If available, the userid supplied during RACF authorization checking
is used.
2.
If a userid is not available from RACF, the prefix supplied with the
TSO PROFILE command is used.
3.
If neither of the above occurs, the default is "BATCH."
Sample Batch Job
Figure 20 shows a sample batch job. This job invokes the MVS/TSO
Terminal Monitor Program (TMP) which, in MVS, establishes the
environment necessary to attach command processors. The ISPSTART
command is specified in the TSO background input stream (SYSTSIN) with
the name of a CLIST (TBUPDATE) that contains the ISPF services to be
executed.
Error Processing
ISPF terminates with an error message if a required library is not
available. The ISPSTART command must also be invoked naming either a
CLIST or PGM function. If no dialog is specified, a message is issued.
These messages are directed to the file defined by the SYSTSPRT DD
statement.
96
ISPF Dialog Management Services
IIUSERAA JOB (AA04,BIN1,OOOOOO), 'I. M. USERAA',
II CLASS=L,MSGCLASS=A,NOTIFY=USERAA,MSGLEVEL=(l,l)
11*-------------------------------------------------------*1
I I~':
~': I
EXECUTE I SPF COMMAND IN THE BACKGROUND
11*-------------------------------------------------------*1
IIISPFBACK EXEC PGM=IKJEFT01,DYNAMNBR=25,REGION=1024K
I I~':
I I~':- - - ALLOCATE PROFILE, PANELS, MSGS, PROCS, AND LOG
IIISPPROF DD DSN=USERAA.ISPF.PROFILE,DISP=OLD
IIISPPLIB
IIISPMLIB
IIISPSLIB
IIISPLOG
DD
DD
DD
DD
DSN=ISP.V1R1MO.ISPPLIB,DISP=SHR
DSN=ISP.V1R1MO.ISPMLIB,DISP=SHR
DSN=ISP.V1R1MO.ISPSLIB,DISP=SHR
DSN=USERAA.ISPF.LOG,DISP=SHR
I I~':
11*- - - ALLOCATE TABLE DATA SETS - - - - - - - - - - - - *1
IIISPTLIB
IIISPTABL
DD DSN=ISP.V1R1MO.ISPTLIB,DISP=SHR
DD DSN=USERAA.ISPF.TABLES,DISP=SHR
I I~':
11*- - - ALLOCATE DIALOG PROGRAM AND CLIST LIBRARIES- - - ~': I
IIISPLLIB
IISYSPROC
DD DSN=USERAA.ISPF.LOAD,DISP=SHR
DD DSN=USERAA.ISPF.CLIST,DISP=SHR
I I~':
11*- - - ALLOCATE TSO BACKGROUND OUTPUT AND INPUT DS- - - *1
IISYSTSPRT DD DSNAME=USERAA.ISPF.ISPFPRNT,DISP=SHR
I I SYSTS IN DD ,,:
PROFILE PREFIX(USERAA)
1* ESTABLISH PREFIX
ISPSTART CMD(%TBUPDATE)
1* INVOKE CLIST DIALOG
I'':
Figure 20.
MVS Batch Job
Errors encountered during background dialog execution are handled in the
same manner as errors encountered during foreground execution. Messages
normally written to the ISPF log data set for severe errors are also
written to the SYSTSPRT file. This is useful when executing a CLIST
dialog because any error messages are listed immediately after the
ISPEXEC service in which the error occurred.
If a function encounters an abend, the entire ISPF batch job stream
terminates. A message is issued to the SYSTSPRT file indicating the
type of abend.
Chapter 5. Invocation and Termination
97
VM/SP Batch Environment
A disconnected virtual machine or a CMS batch machine can be used to
execute non-interactive dialogs. The command inputs may be specified
via the CMS Console stack or by using the CMS PUNCH command to provide
input to the batch machine reader. In either case, the ISPF libraries
must be specified using FILEDEF commands for the panels, messages,
skeleton, tables, and profile maclibs.
All dialog services may be invoked except BROWSE, DISPLAY, EDIT, SELECT
PANEL, SETMSG, and TBDISPL.
Sample Batch Job
Figure 21 shows a sample batch job.
This job provides the links and accesses needed by the batch machine to
invoke ISPF with the correct libraries. This EXEC also sends any list
and log files back to the originator. The profile tables could also be
sent.
Error Processing
ISPF terminates with an error message if a required library is not
available. The ISPSTART command must also be invoked naming either an
EXEC or a PGM function. If no dialog is specified, a message is issued.
These messages are directed to the console log.
Errors encountered during background execution are handled in the same
manner as errors encountered during normal execution. Messages normally
written to the ISPF log file for severe errors are also written to the
eMS Console Log.
98
ISPF Dialog Management Services
*",( *BUILD
* * *THE* *BATCH
* * *JOB* *CARDS
** ************* ** **
***** *************** ***********
CP SPOOL PUNCH CLASS A NOHOLD CONT TO BATCH
&PUNCH 1"''(
&PUNCH IJOB USERAA AA04 BUPDATE
,,'~ KEEP TRACK OF BATCH EXECUTION OF THIS JOB FOR USER
,,'~ MAKE SURE SYSTEM LIBRARY DISK IS AVAILABLE FOR BATCH
*
THE SYSTEM DISK HAS ~STRIBUTED ISPF LIBRARIES
&PUNCH CP LINK MAINT 19E 19E RR ~~~
&PUNCH ACC 19E Y
~
. .'~ HAVE BATCH LINK TO USER DISKS AS REQUIRED
&PUNCH CP LINK USERAA 191 291 RR USERAAR
&PUNCH ACC 291 B
* SET UP FILEDEFS TO ACCESS LIBRARIES
&PUNCH FILEDEF ISPPLIB DISK ISPPLIB MACLIB * (PERM
&PUNCH FILEDEF ISPMLIB DISK ISP~lLIB MACLIB . .'~ (PERM
&PUNCH FILEDEF ISPSLIB DISK SKELS
MACLIB * (PERM CONCAT
&PUNCH FILEDEF ISPSLIB DISK ISPSLIB MACLIB * (PERM CONCAT
&PUNCH FILEDEF ISPTLIB DISK TABLES MACLIB * (PERM CONCAT
&PUNCH FILEDEF ISPTLIB DISK PROFLIB MACLIB . .'( (PERM CONCAT
&PUNCH FILEDEF ISPTLIB DISK ISPTLIB MACLIB * (PERM CONCAT
&PUNCH FILEDEF ISPPROF DISK PROFILE ~lACLIB A (PERM
,,'~ INVOKE THE DIALOG ~lANAGER PASSING THE NAME OF THE COMMAND
&PUNCH EXEC ISPSTART CMD( BUPDATE )
. .'( CLEANUP
&PUNCH CP SP PUN TO USERAA
&PUNCH CP SP CONS CLOSE STOP TO USERAA
. .': SEND BACK LIST AND LOG FILES
&PUNCH DISK DUMP SPFLOG LISTING A
&PUNCH DISK DUMP SPFLIST LISTING A
&PUNCH CP CLOSE E
&PUNCH CP SPOOL CONSOLE STOP CLOSE
&PUNCH 1"'(
CP SPOOL PUNCH NOCONT CLOSE
Figure 21.
VI-liSP Batch Job
Chapter 5. Invocation and Termination
99
VSE Batch Environment
User program dialogs may be executed in a VSE batch environment. The
sequential data sets required by ISPF are defined with DLBL/EXTENT/ASSGN
JCL. The panel, message, skeleton, and table libraries are defined by
ISPDEF control statements. The ISPSTART command specifies the dialog to
be executed.
The log data set, although not required for batch execution, should be
specified. If the log data file is used, it is kept. It is available
to be viewed by use of the ISPF/PDF BROWSE service, if ISPF/PDF is
installed.
Sample Batch Job
Figure 22 shows a sample VSE/AF 1.3.5 batch job. Figure 23 on page 101
shows a sample VSE/AF 2.1 batch job. The ISPSTART command is specified
in the VSE background input stream (SYSIN) with the parameter
PGM(DIALOG). This program contains the ISPF service requests to be
performed.
~':
$$ JOB JNM=BATCH,CLASS=O,DISP=D
II JOB BATCH
~'r
DEFINE THE LOG AND TEMPORARY CONTROL DATA SETS
II DLBL ISPLOG, 'BATCH.LOG'
// EXTENT SYS001,SERNUM,1,1,3000,10
II DLBL ISPCTL1, 'BATCH.TEMP.CONTROL'
// EXTENT SYS001,SERNUM,1,1,4000,10
II ASSGN SYS001,160
/1 LIBDEF CL,SEARCH=ISPFDMC
/1 EXEC ISPSTART, SIZE=20K
* SPECIFY DIALOG TO BE EXECUTED
ISPSTART PGM(DIALOG)
* DEFINE VSE LIBRARIES
ISPDEF *,SEARCH=(XYZLIB,ISPFDMS)
I~'r
1&
~'r
$$ EOJ
Figure 22.
100
VSE/AF 1.3.5 Batch Job
ISPF Dialog Management Services
,.. $$ JOB JNH=BATCH,CLASS=O,DISP=D
II JOB BATCH
.... DEFINE THE LOG AND TEMPORARY CONTROL DATA SETS
II DLBL ISPLOG, 'BATCH.LOG'
II EXTENT SYSOOl,SERNUM,I,I,3000,10
II DLBL ISPCTLl,'BATCH.TEMP.CONTROL'
II EXTENT SYSOOl,SERNUM,I,I,4000,10
II ASSGN SYSOOl,160
II LIBDEF PHASE,SEARCH=ISPF.DM
II EXEC ISPSTART, SIZE=20K
,.. SPECIFY DIALOG TO BE EXECUTED
ISPSTART PGM(DIALOG)
* SET UP ISPDEF TO ACCESS VSE LIBRARIES/SUBLIBRARIES
ISPDEF *,SEARCH=(XYZLIB.XYZSUB,ISPF.DM)
I'"
1&
,': $$ EOJ
Figure 23.
VSE/AF 2.1 Batch Job
Error Processing
ISPF terminates with an error message if a required library is not
available. In batch mode, the ISPSTART command must specify invocation
of a program function - PGM(program-name) - and if one is not specified,
ISPF is not invoked and a message, issued on SYSLOG, states that display
services are not available in a batch environment.
Any errors, including severe errors, that occur during batch mode
execution are handled in the same way as errors encountered during IeeF
execution. In both instances, severe error messages are written to
SYSLOG.
If a function abends, an IDUMP is taken and the ISPF batch job is
terminated.
Chapter 5. Invocation and Termination
101
102
ISPF Dialog Management Services
CHAPTER 6. DESCRIPTION OF SERVICES
This chapter contains a description of syntax conventions and return
codes for the dialog services, followed by a detailed description of
each service. The service descriptions are arranged in alphabetic order
for ease of reference. Appendix E, "Summary of ISPF Syntax," contains a
quick reference summary of dialog services. (See ISPF Dialog Management
Services Examples for examples of invoking ISPF services in application
dialogs.) Notation conventions are described in the Preface.
INVOCATION OF SERVICES
Each service description shows the format for command invocation and for
call invocation from a program module. The command invocation format is
used from a CLIST, EXEC or, option 7.6 of PDF (the dialog test
facility). In VSE, the command invocation format may be used only while
in option 7.6 of PDF.
Call invocation formats are shmvn in PL/I syntax. For example, ";" ends
statements in the formats described. This is a PL/I convention, but
syntax should be appropriate to the language being used.
Included in each service description is an example of its use in the
command procedure forma~the PL/I call format. Additional examples,
including COBOL and FORT~call formats, may be found in ISPF Dialog
Management Services Examples.
If ISPF/PDF is installed, consider using its model facilities (under
edit) when coding requests for ISPF services (see ISPF/PDF Reference for
a description of these facilities).
Command Invocation
ISPF services are invoked using the ISPEXEC command in a command
procedure (CLIST or EXEC) or while operating under option 7.6 of
ISPF/PDF.
The
gen~ral
ISPEXEC
The
format for command invocation is:
service-name
parameterl
parameter2
serVlce-name It is alphabetic, up to eight characters long.
" .
Chapter 6. Description of Services
103
For some services, "parameterl" is a positional parameter and is
required. Other parameters are keyword parameters. They may take
either of two forms:
keyword
keyword (value)
Some keyword parameters are required and others are optional, as
indicated for each service. Keyword parameters may be coded in any
order. If conflicting keywords are coded, the last keyword is used.
In MVS and VM/SP, CLIST or EXEC variables consisting of a name preceded
by an ampersand (&), may be used anywhere within the statement as the
service name or as a parameter. Each variable is replaced with its
current value prior to execution of the ISPEXEC command.
Notes:
1.
In MVS, TSO CLIST attention exits are not recognized by ISPF and, if
used, may cause unpredictable results.
2.
In VM/SP, EXEC variables appearing within parentheses must be
followed by a blank, preceding the closing parenthesis. For
example:
ISPEXEC
DISPLAY
PANEL(&PNAME)
Some ISPF services allow the names of dialog variables to be passed as
parameters. (Variable names are eight characters or less). These names
should not be preceded with an ampersand unless substitution is desired;
for example:
ISPEXEC
ISPEXEC
VGET
XYZ
VGET ~V~ w~\l Jl-\,6siitde
In the first example, XYZ is the name of the dialog variable to be
passed. In the second example, variable VNAME contains the name of the
dialog variable to be passed.
Some services accept a list of variable names, passed as a single
parameter. For example, the syntax for the VGET service is:
ISPEXEC
VGET
name-list
[ASISISHAREDIPROFILE]
In this case, "name-list" is a positional parameter. It may consist of
a list of one or more (up to 254) dialog variable names, each name
separated by commas or blanks. If the name-list consists of more than
one name, it must be enclosed in parentheses. Parentheses may be
omitted if a single name constitutes the list; for example:
ISPEXEC
ISPEXEC
ISPEXEC
ISPEXEC
104
VGET
VGET
VGET
VGET
(AAA,BBB,CCC)
(LNAME FNAME I)
(XYZ)
XYZ
ISPF Dialog Management Services
The last two lines of the example (with and without the parentheses) are
equivalent.
In other cases, a list of variable names may be passed as a keyword
parameter. For example, the syntax for the TBPUT service is:
ISPEXEC
TBPUT
table-name
[SAVE(name-list)]
where the parentheses are required by the "keyword(value)" syntax.
Again, the names may be separated by commas or blanks. Examples:
ISPEXEC
ISPEXEC
TBPUT
TBPUT
TBLA SAVE(LNAHE FNAME I)
XTABLE SAVE (XYZ)
VM/SP: Using the &PRESUME Statement
In VH/SP, the following statement may be included in an EXEC 2 procedure
prior to issuing the first ISPEXEC command:
&PRESUHE
&SUBCOHHAND
ISPEXEC
This statement allows the omission of
requests for ISPF services.
"&SUBCOM~1AND"
and "ISPEXEC" in
A subsequent &PRESUME statement with no operands may be used to cancel
the subcommand environment for the purpose of issuing other VH/SP
commands.
If &PRESUME &SUBCOMHAND ISPEXEC statement is not included, every request
for ISPF services must be preceded by &SUBCOMMAND ISPEXEC, as follows:
&TRACE OFF
&SUBCOMMAND ISPEXEC DISPLAY PANEL(ABC)
&TRACE specifies the use of the EXEC 2 language.
This last mentioned form is used in this publication, but the
'&SUBCOMHAND' is not shown with the service.
Call Invocation
ISPF services are invoked from programs, except FORTRAN programs, by
calling a subroutine named ISPLINK. FORTRAN programs must invoke this
subroutine using another name, ISPLNK, because, in FORTRAN, the maximum
length of a module name is six characters.
Note: Only a single task level is permitted. In MVS, a dialog
function may attach a lower-level subtask, but the subtask may not
invoke ISPF services. User dialogs may not use storage subpools
33 through 48, because these pools are reserved for use by ISPF.
Chapter 6. Description of Services
105
Examp'les of service requests in programs (COBOL, FORTRAN, and PL/I) may
be found in ISPF Dialog Management Services Examples.
The general format for invoking ISPF services from functions, other than
FORTRAN, is:
CALL
ISPLINK (service-name, parameter1, parameter2 ... )
The parameters in call statements are all positional; they must be coded
in the order described for each service. Optional parameters may be
omitted in a right-to-Ieft dropout sequence. To obtain the default
value for an optional parameter, code the parameter as one or more
blanks. This has the same effect as omitting the parameter and is used
when parameters are to be dropped in other than a right-to-Ieft
sequence.
The general format for invoking ISPF services from FORTRAN functions is:
ISPLNK (service-name, parameter1, parameter2 ... )
a FORTRAN integer variable in which the return code from the
ISPF service is available. ,\ 1 astrc 1S any va I'1d FORTRAN name.
I) •
For functions written in FORTRAN,' arguments may be passed as FORTRAN
variables or literals.
Standard register conventions are used.
across the call.
Registers 2-14 are preserved
Note:
The last parameter in the calling sequence must be
indicated with a high-order "1" bit in the last entry of the
address list. This high-order bit is automatically generated by
PL/I, COBOL, and FORTRAN call statements. It requires use of the
VL keyword in Assembler call statements.
Call statements are shown in PL/I syntax. Service names and keyword
values are shown as literals, enclosed in apostrophes C'); for example:
CALL
ISPLINK ('TBOPEN', table-name, 'NOWRITE');
where "table-name" must be supplied either as a literal or as a variable
containing the table name.
106
ISPF Dialog Management Services
In PL/I programs, the following declare statements should be included:
DECLARE ISPLINK
ENTRY
EXTERNAL
OPTIONS (
ASM,
INTER,
/,;"NA~1E
OF ENTRY POINT'" /
/*EXTERNAL ROUTINE*/
/*NEEDED OPTIONS*/
/*DO NOT USE PL/I DOPE VECTORS*/
/';', INTERRUPTS,;', /
RETCODE); /*EXPECT A RETURN CODE*/
Note:
In VSE, RETCODE should not be specified.
Some languages, such as COBOL, do not allow literals within a call
statement. Use of literals is never required; all parameters may be
specified as variables, as in the following examples:
PL/I example:
DECLARE "SERVICE CHAR(8) INIT('TBOPEN '),
r,cr£B~E?
CHAR(8) INITC'XTABLE '),
('-. ~DN':)~,(8) INIT( 'NOWRITE ');
'-'"-.:::~~;:;:~::'''':,,-
CALL
.-~-"-.--..."'~'""" ..''',
"
ISPLINK ,(SERVICE, TABLE, OPTION);
COBOL example:
WORKING-STORAGE SECTION.
77 SERVIS
PICTURE A(8) VALUE 'TBOPEN
77 TABL
PICTURE A(8) VALUE 'XTABLE
77 OPTSHUN
PICTURE A(8) VALUE 'NOWRITE '
PROCEDURE DIVISION.
CALL 'ISPLINK' USING
SERVIS TABL OPTSHUN.
FORTRAN example:
INTEGER
DATA
DATA
DATA
SERVICE(2),TABLE(2),OPTION(2)
SERVICE/'TBOP', 'EN '/
TABLE/'XTAB', 'LE '/
OPTION/'NOWR', 'ITE '/
LASTCC=ISPLNK(SERVICE ,TABLE ,OPTION)
Chapter 6. Description of Services
107
For service calls in PL/I and COBOL parameter variables may be
initialized using literals in assignment statements, as in the following
examples:
PL/I example:
SERVICE='TBOPEN';
COBOL example:
NOVE "TBOPEN" TO SERVICE.
FORTRAN example: For FORTRAN service requests, previously defined
constants must be used in assignment statements; for example:
INTEGER
DATA
TBOPEN(2),SERVICE(2)
TBOPEN/'TBOP', 'EN 'I
SERVICE=TBOPEN
Parameters
The following types of parameters may appear in a calling sequence to
ISPLINK or ISPLNK:
•
Service name or keyword: A left-justified character string that
must be coded as shown in the description of the particular service.
The string may be up to eight characters long. It need not be
delimited by a trailing blank.
•
Single name: A left-justified character string. If the string is
less than the maximum length for the particular parameter, it must
have a trailing blank to delimit the end of the string. The maximum
length for most names is eight characters. The exceptions are data
set name, volume serial, and fileid (see the description of the EDIT
and BROWSE services).
•
Numeric value:
•
Name list - string format:. A list of dialog variable names coded
as a character string. Each name is one to eight characters. The
string must start with a left parenthesis and end with a right
parenthesis. Within the parentheses, the names may be separated
with commas or blanks; for example:
A fullword signed binary number.
'(AAA BBB CCC)'
When the list consists of a single name, the parentheses are not
required, but a trailing blank is required if the name is less than
eight characters in length.
108
ISPF Dialog Management Services
•
Name list - structure format:. A list of dialog variable names
passed in a structure. Each name is one to eight characters. The
structure must contain the following information in the following
order:
1.
Count - Full word binary integer containing the number of names
in the list.
2.
Reserved - Full word binary integer that must contain a value of
either zero or eight.
3.
List of names - Each element in the list must be an 8-byte
character string. Within each element, the name of the variable
must be left-justified with trailing blanks.
RETURN CODES FROM SERVICES
Return codes from services are grouped into three general categories:
•
Normal completion (code 0).
•
Exception condition (codes 4 and 8). Indicates a condition that is
not necessarily an error, but that the dialog should be aware of.
•
Error condition (codes 12, 16, and 20). Indicates that the service
did not complete, or only partially completed operation, due to
errors.
The action taken in the case of errors (return code 12 or higher)
depends upon the error mode setting. There are two error modes:
•
CANCEL - displays and logs a message, then terminates the dialog and
redisp1ays the primary option menu.
•
RETURN - formats an error message (but does not display or log it),
then returns to the function that invoked the service, pas~n;.:a~ 12 b
the designated return code.
..P
~,.~~~_ .
,
The dialog may set the error mode by means of the/CONTROL servic:] The
default mode is CANCEL. In CANCEL mode, genera11y~ontror is not
returned to the function that invoked the service. Hence, the function
generally will not see a return code of 12 or higher, and may not
include logic to process these kinds of errors. However, this is not so
for a return code of 20 from ISPLINK, when it is caused by an invalid
ISPF environment. In this case, because ISPF is not capable of
displaying an error panel (or any panel), control is returned to the
dialog, even though the return code is 20.
In RETURN mode, control is returned to the function that invoked the
service. That function must then have logic to handle return codes of
12 or higher.
Chapter 6. Description of Services
109
The RETURN mode applies only to the function that set it with the
CONTROL service. If a lower-level function is invoked, it starts out in
CANCEL mode. When a function returns to the higher-level function that
invoked it, the mode in which the higher-level function was operating is
resumed.
In RETURN mode, an error message is formatted prior to returning to the
function. The message id is contained in system variable ZERRMSG. The
short and long message text (in which substitutable variables have been
resolved) is contained in system variables ZERRSM and ZERRLl"1,
respectively. ZERRMSG, ZERRSM, and ZERRLM are changed only when the
return code from an ISPF service is greater than 8. If a corresponding
help panel was specified in the message definition, the name of the help
panel is contained in system variable ZERRHM. All of these system
variables are in the shared variable pool.
The function may display and/or log the message, if desired, simply by
invoking the appropriate service with the message id contained in
ZERRMSG. Examples:
ISPEXEC
ISPEXEC
DISPLAY MSG(&ZERRMSG)
LOG MSG(&ZERRMSG)
The short and long message text and the name of the corresponding help
panel are provided in the event that other action is desired.
MVS and VM/SP: Return Codes from Services
Each service returns a numeric code
operation. For command invocation,
variable LASTCC, or EXEC 2 variable
code is returned in register 15 or,
and O.
indicating the results of the
the code is returned in the CLIST
RETCODE. For call invocation, the
in FORTRAN programs, in registers 15
Programs coded in FORTRAN may examine the return code by using an
integer variable, such as lastrc in the following example:
lastrc
= ISPLNK
(service name, parameter1, parameter2 ... )
Programs coded in PL/I may examine the return code by using the PLIRETV
built=in function.
The following declare statements are required:
DECLARE ISPLINK EXTERNAL ENTRY OPTIONS(ASM INTER RETCODE);
DECLARE PLIRETV BUILTIN;
Programs coded in COBOL may examine the return code by using the
RETURN-CODE built-in variable.
110
ISPF Dialog Management Services
VSE: Return Codes and Other Processing Considerations
This section describes the use of return codes and other processing
considerations when preparing a dialog, written in a high-level
language, to run in VSE.
FORTRAN
Programs coded in FORTRAN may examine the return code by using an
integer variable, such as lastrc in the following example:
lastrc
=
ISPLNK (service name, parameter1, parameter2 ... )
Programs written at language level 77, must specify the compiler option
SC for ISPLNK. This creates a parameter list acceptable to ISPF.
ISPF does not permit the use of FORTRAN programs that use phase overlay
structures.
When invoking a PL/I program by use of the ISPSTART command or the
SELECT service, the LANG keyword must be specified with either the PLI
or PL1 parameter, e.g., LANG(PLI). A second parameter, storage-area,
may also be specified to indicate the number of storage bytes to be made
available to the PL/I program being invoked. (The default storage size
is 2816 bytes. Generally, the amount of storage required for a PL/I
program can be determined by compiling the program using the storage
option and adding 2192 to the DSA sizes indicated on the compile
listing. However, the storage requirement will vary considerably
depending on the compiler options specified; for example: while "FLOW"
requires a small amount of additional storage, "COUNT" adds
substantially to required storage).
PL/I programs may examine the return code from ISPF services by using
the PLIRETV built-in function.
The following declare statements are required for PL/I programs:
DECLARE ISPLINK EXTERNAL ENTRY OPTIONS(ASM INTER);
DECLARE PLIRETV BUILTIN;
PL/I programs must be link edited with modules ISPPLI and IBMBPJRA.
ISPPLI must be the first physical module in the phase and IBMBPJRA must
be the second physical module. In addition, linkage editor control
statements must include a statement defining the entry point of the
program; for example:
Chapter 6. Description of Services
111
PHASE EHPLFN, ~~
INCLUDE ISPPLI
INCLUDE IBHBPJRA
INCLUDE ENPLFN
INCLUDE ISPLINK
ENTRY EHPLFN
ISPF does not permit the use of PL/I programs that use phase overlay
structures.
COBOL
When invoking a COBOL program by use of either the ISPSTART command or
the SELECT service, the LANG keyword must be specified with the COBOL
parameter, e.g., LANG(COBOL).
To examine the return code from ISPF services, COBOL programs must have
a LINKAGE section with the return code field coded as the first item in
the section; for example:
LINKAGE SECTION
77 RETURN-CODE
PIC 9(8) COHP-4.
Although the name of the return code field can be any name valid in
COBOL, it is recommended that RETURN-CODE be used to make the dialog
compatible with MVS and VM/SP. Regardless of what name is used, the
data description must appear exactly as shown.
ISPF does not permit the use of COBOL programs that use phase overlay
structures.
SERVICES
This section describes
alphabetic order. For
shown, followed by the
used when invoking the
112
the ISPF services. The services are presented in
each service, the command procedure format is
PL/I call format. Following this, the parameters
service are described.
ISPF Dialog Management Services
BROWSE - MVS or VM/SP: Display a Data Set or File
The BROWSE service provides an interface to the ISPF/PDF browse program,
bypassing display of the browse entry panel. (Use of BROWSE requires
installation of ISPF/PDF.) The BROWSE service may not be issued by a
PL/I main program that also uses subtasking. See ISPF/PDF Reference for
a description of BROWSE.
Syntax for use in an MVS environment:
ISPEXEC
BROWSE
DATASET (dsname)
[VOLUi'IE (serial)]
[PASSWORD(pswd-value)]
CALL
ISPLINK ('BROWSE', dsname [,serial]
[,pswd-va1ue] );
Syntax for use in a VM/SP environment:
ISPEXEC
CALL
BROWSE
FILE(fi1eid)
[MENBER(member-name)]
ISPLINK ('BROWSE', fileid [,member-name] );
dsname
Specifies the name of the data set, in TSO syntax, to be browsed.
A fully qualified data set name may be specified, enclosed in
apostrophes. If the apostrophes are omitted, the TSO user prefix
is automatically left-appended to the data set name.
For partitioned data sets, a member name may be specified, enclosed
in parentheses. If a member name is not specified, a member
selection list is displayed.
The maximum length of the dsname parameter is 56 characters.
Chapter 6. Description of Services
113
serial
Specifies the serial number of the volume on which the data set
resides. If this parameter is omitted or coded as blank, the
system catalog is searched for the data set name.
The maximum length of this parameter is 6 characters.
pswd-value
Specifies the password if the data set has OS password protection.
(The password is not specified for RACF or PCF protected data
sets.)
fileid
Specifies the fileid, in CMS syntax, to be browsed. The fileid
consists of a filename, filetype, and (optionally) filemode,
separated by one or more blanks. For call invocation of the browse
service, the fileid must be enclosed in parentheses. That is,
fileid is one calling sequence parameter consisting of a character
string that starts with a left parenthesis and ends with a right
parenthesis.
The maximum length of the fileid parameter (including the
parentheses for call invocation) is 22 characters.
member- name
Specifies the member to be browsed for a MACLIB or TXTLIB (ignored
for other file types). If member name is not specified, a member
selection list for the MACLIB or TXTLIB is displayed.
Nested dialogs may not use the BROWSE service if any of the functions
listed below are active under the same logical screen. Violation of
this restriction results in a severe error.
•
ISPF/PDF option 1 (BROWSE)
•
ISPF/PDF option 3 (UTILITIES)-
•
ISPF/PDF option 4 (FOREGROUND)
•
User functions that invoke the BROWSE service
The following return codes are possible:
o-
Normal completion
20 - Severe error
114
ISPF Dialog Management Services
Example:
1.
NVS
Invoke the BROWSE service to allow browsing of TELOUT, a member of
the ISPFPROJ.FTOUTPUT data set.
ISPEXEC BROWSE DATASET('ISPFPROJ.FTOUTPUT(TELOUT)')
CALL ISPLINK('BROWSE', 'ISPFPROJ.FTOUTPUT(TELOUT) I);
2.
VH/SP
Invoke the BROWSE service to allow browsing of TELOUT, a member of
the FTOUTPUT HACLIB maclib.
ISPEXEC BROWSE FILE (FTOUTPUT HACLIB ~,.. ) i'IEHBER(TELOUT)
CALL ISPLINK('BROWSE', '(FTOUTPUT MACLIB *)', 'TELOUT ');
Chapter 6. Description of Services
115
BROWSE - VSE: Display a Library or File
The BROWSE service provides an interface to the ISPFjPDF browse program,
bypassing display of the browse entry panel. (Use of BROWSE requires
installation of ISPFjPDF.) The BROWSE service may not be issued by a
PLjI main program that also uses subtasking. See ISPFjPDF Reference for
a description of BROWSE.
BROWSE
DATASET(dsname)
[RECFORM(recfm)]
[RECSIZE(lrecl)]
[BLKSIZE(blksize)]
[DEVADDR(sysno) ]
[VOLUME(serial)]
CALL ISPLINK ('BROWSE', dsname
[,recfm]
[,lrecl]
[ , blksize]
[ ,sysno]
[,serial] );
dsname
(for VSE/AF 1.3.5)
Specifies one of the following:
116
•
lllllll.s.mmmmmmmm.tt
•
lllllll .. mmmmmmmm.tt
•
lllllll.s .. tt
•
1111111 ... tt
•
nnnn
•
nnnn.iiiiiiii
•
nnnn.iiiiiiii.pppp
•
fffffff
ISPF Dialog Management Services
where:
l's represent an AF library name; maximum length is 7
characters
s represents the AF sublibrary (source libraries only);
length is 1 character
mrs represent the AF member name; maximum length is 8
characters
tt represents the AF library type (SL, RL, PL),
nls represent a VSE/ICCF library number; maximum length is
4 digits
ils represent the VSE/ICCF library member name; maximum
length is 8 characters
pIS represent the VSE/ICCF library member password; maximum
length is 4 characters
fls represent a VSE sequential fileid; maximum length is 7
characters
Note:
If a member name is not specified, a selection
list is provided.
dsname
(for VSE/AF 2.1)
Specifies one of the following:
•
lllllll.ssssssss.mmmmmmmm.tttttttt
•
lllllll.ssssssss.mmmmmmmm
•
lllllll.ssssssss .. tttttttt
•
nnnn
•
nnnn.iiiiiiii
•
nnnn.iiiiiiii.pppp
•
fffffff
where:
l's represent a VSE/AF library name; maximum length is 7
characters
,
s s represents a VSE/AF sublibrary; maximum length is 8
characters
Chapter 6. Description of Services
117
mrs represent the VSE/AF member name; maximum length is 8
characters
tIs represent the VSE/AF member type; maximum length is 8
characters
n's represent a VSE/ICCF library number; maximum length is
4 digits
its represent the VSE/ICCF library member name; maximum
length is 8 characters
pIS represent the VSE/ICCF library member password; maximum
length is 4 characters
f's represent a VSE sequential fileid; maximum length is 7
characters
Note: If a member name is not specified, a selection
list is provided.
reefm
Specifies
follows:
the record format of the VSE sequential data set, as
F - specifies fixed format
v-
specifies variable format
U - specifies undefined format
Ireel
Specifies, in five digits or less, the record size of the
sequential data set. If called from a program, lrecl should be
declared as a fullword variable and set to the correct value.
blksize
Specifies, in five digits or less, the block size of the sequential
data set. If called from a program, blksize should be declared as
a fullword variable and set to the correct value.
sysno
Specifies the three numerical digits of the programmer logical unit
on which the sequential data set is mounted.
serial
Specifies, in six characters or less, the serial number of the
volume on which the data set resides.
Nested dialogs may not use the BROWSE service if any of the functions
listed below are active under the same logical screen. Violation of
this restriction results in a severe error.
•
118
ISPF/PDF option 1 (BROWSE)
ISPF Dialog Management Services
•
ISPFjPDF option 3 (UTILITIES)
•
User functions that invoke the BROWSE service
The following return codes are possible:
o-
Normal completion
20 - Severe error
Example:
1.
Under VSEjAF 1.3.5, invoke the BROWSE service to allow browsing of
TELOUT, a member of source statement library USERSRC.
CALL
2.
Under VSEjAF 2.1, invoke the BROWSE service to allow browsing of
TELOUT, a skeleton member of library.sublibrary USERLIB.USER1.
CALL
3.
ISPLINK ('BROWSE', 'USERSRC.S.TELOUT.SL I);
ISPLINK ('BROWSE', 'USERLIB.USER1.TELOUT.S');
Invoke the BROWSE service to allow browsing of a sequential data set
named SEQFILE, consisting of fixed length 80-byte records, blocked
10, mounted on SYS001, volume number 111111. Program variables
RSIZE and BSIZE are full words and contain the binary equivalent of
80 and 800, respectively.
CALL
ISPLINK ('BROWSE', 'SEQFILE "
'F', RSIZE, BSIZE,
'001', '111111');
Chapter 6. Description of Services
119
CONTROL - Set Processing Modes
The CONTROL service defines certain processing options for the dialog
environment. The processing options control the display screen and
error processing.
ISPEXEC
CONTROL
DISPLAY
LOCK
LINE [START(line-number)]
SM
[START(line-number)]
REFRESH
SAVE I RESTORE
NONDISPL [ENTER lEND]
ERRORS
SPLIT
CALL
[CANCEL IRETURN]
ENABLE }
{ DISABLE
ISPLINK ('CONTROL', type [,mode]
[,line-number] );
For call invocation:
~
may be 'DISPLAY', 'NONDISPL', 'ERRORS', or 'SPLIT'
mode may be, ~ LocK', , LINE', 'SK', 'REFRESH',
'SAVE', or 'RESTORE'
ENTER' or
~'for
type 'DISPLAY';
type 'NONDISPL';
i"'CANCEL' or 'RETURN' for type 'ERRORS';
'ENABLE' or 'DISABLE' ,for type 'SPLIT'.
DISPLAY
Specifies that a display mode is to be set. The valid modes are
LOCK, LINE, SM, REFRESH, SAVE and RESTORE. LINE and SM are in
effect until the next display of an ISPF panel. REFRESH occurs on
the next display of an ISPF panel.
LOCK
Specifies that the next (and only the next) display output (e.g.,
by the DISPLAY or TBDISPL service) is to leave the terminal user's
120
ISPF Dialog Management
serVices~ ~ tk
5 r; Lice 1-f7?tle{
St'1'
v; ( e..
keyboard locked. ISPF processes the next display output as though
the user had depressed the ENTER key.
This facility may be used to display an "in process" message during
a long running operation. It is the dialog developer's
responsibility to ensure that the keyboard is unlocked (by the
subsequent display of a message or panel).
LINE
Specifies that terminal line-mode output is expected (e.g., from a
TSO or CMS command or VSE system or program dialog). The screen is
completely rewritten on the next ISPF full screen write operation,
after the line(s) have been written.
Note: CONTROL DISPLAY LINE is automatically invoked by the
SELECT service whenever a SELECT CMD request is encountered,
unless the command begins with a percent (%) sign; for
example:
SELECT CMD(ABC) - causes automatic entry into line mode.
SELECT CMD('7~ABC) - no automatic entry into line mode.
line-number
In MVS, this parameter specifies the line number on the screen
where the line-mode output is to begin. (The first line on the
screen is line number 1.) The screen is erased from this line
position to the bottom. If this parameter is omitted or coded as
zero, the value defaults to the end of the body of the currently
displayed panel.
The line-number parameter must have an integer value. For call
invocation, it must be a full word binary integer. The parameter
should specify a line value that is not within 3 lines of the
bottom of the logical screen. If the value is within 3 lines of
the bottom of the logical screen, a.default line value is used.
This value is equivalent to the number of the bottom line of the
screen, minus 3.
This parameter ~s meaningful only when entering line mode. It may
be specified with the SM keyword, since SM reverts to LINE if the
Session Manager is not installed. Once line mode has been set,
subsequent attempts to set line mode (without intervening full
screen output) are ignored. Accordingly, the line-number, once
set, cannot be changed.
In VM/SP, this parameter is ignored. Line mode output is always
displayed starting at the top of a blank screen.
In VSE, this parameter is ignored. Line mode output is always
displayed immediately following the ICCF column indicator line.
Chapter 6. Description of Services
121
SM
Specifies that the TSO Session ~1anager should take control of the
screen when the next line-mode output is issued. If the Session
Manager is not installed, the SM keyword is treated the same as
LINE.
REFRESH
Specifies that the entire screen image should be rewritten when the
next ISPF-generated full screen write is issued to the terminal.
This facility should be used before or after invoking any program
that uses non-ISPF services for generating full screen output
( e . g., XE DIT) .
SAVE
Used in conjunction with DISPLAY, TBDISPL, BROWSE, or EDIT
processing, specifies that information about the current logical
screen (including control information) is to be saved.
Use of the CONTROL service SAVE and RESTORE allows DISPLAY,
TBDISPL, BROWSE, or EDIT processing to be nested. The CONTROL
service is used to save and restore the environment at each level.
Nesting of successive requests for the same service is not allowed.
Note: Whenever the dialog manager encounters a SELECT
command entered by the user in the command field of a
displayed panel as described in "Command Table Format" on
page 54, the current display environment is automatically
saved prior to invoking the designated dialog. That
environment is subsequently restored when the dialog ends.
Certain positioning information, including the ZTDTOP variable and
the current row pointer, is not saved. The variable ZVERB is not
saved.
RESTORE
Specifies the restoration of information previously saved by
CONTROL DISPLAY SAVE. The logical screen image is restored exactly
as it appeared when the SAVE was performed. Processing of the
previous panel or table display can then be resumed.
NONDISPL
Specifies that no display output is to be issued to the terminal
when processing the next panel definition. This option is in
effect only for the next panel; after that, normal display mode is
resumed.
ENTER
Specifies that the ENTER key is to be simulated as the user
response to the NONDISPL processing for the next panel.
END
Specifies that the END command is to be simulated as the user
response to the NONDISPL processing for the next panel.
122
ISPF Dialog Management Services
ERRORS
Specifies that an error mode is to be set. The valid modes are
CANCEL and RETURN. If the RETURN mode is set, it applies only to
the function that set it using this, the CONTROL, service.
CANCEL
Specifies that
return code of
written to the
the particular
the dialog should be terminated on an error (a
12 or higher from any service). A message is
ISPF log file and a panel is displayed to describe
error situation.
RETURN
Specifies that control should be returned to the dialog on an
error. The system variable ZERRMSG contains the message id for a
message that describes the error. The message is not written to
the ISPF log file (unless TRACE mode is in effect), nor is an error
panel displayed.
-~ fCJi.
fdi
Note: If a dialog developer wan~s, on an error, to ABEND
with STAE, he must specify CONTROL RETURN because
specification of CONTROL CANCEL can nullify the developer's
requested STAE.
SPLIT
Defines the user's ability to enter split screen mode.
ENABLE
Specifies that the user is be allowed to enter split screen mode.
Split screen mode is normally enabled. It is disabled only if
explicitly requested by use of the CONTROL service. It remains
disabled until explicitly re-enabled by the CONTROL service.
DISABLE
Specifies that the user's ability to enter split screen mode should
be disabled, until explicitly enabled via the CONTROL service. If
the user is already in split screen mode, a return code of 8 is
issued and split screen remains enabled.
The following return codes are possible:
o -
Normal completion.
8 - Split screen mode already in effect (applies only to a
SPLIT DISABLE request); split screen remains enabled.
20 - Severe error.
Example: Set the error processing mode to allow the dialog function to
process return codes of 12 or higher.
ISPEXEC CONTROL ERRORS RETURN
CALL ISPLINK('CONTROL', 'ERRORS I
'RETURN I);
Chapter 6. Description of Services
123
D I SPLAY - Display Panels and Messages
The DISPLAY service reads a panel definition from the panel library,
initializes variable panel fields from the c6rresponding dialog
variables, and displays the panel on the screen. A message may
optionally be displayed with the panel.
The user may enter information in fields specified to be input fields on
the panel definition. After the user presses ENTER, content of the
input fields is stored in dialog variables specified on the panel
definition. Then, any processing specified on the panel definition is
performed and the DISPLAY service returns to the calling function.
ISPEXEC
DISPLAY
[PANEL(panel-name)]
[MSG(message-id)]
[CURSOR(field-name)]
CALL
ISPLINK ('DISPLAY' [,panel-name]
[ ,message-id]
[,field-name] );
panel-name
Specifies the name of the panel to be displayed.
message-id
Specifies the identification of a message to be displayed on the
panel.
field-name
Specifies the name of the field where the cursor is to be
positioned.
Regardless of the format, all of· the parameters are optional. The
processing of the panel-name and message-id parameters is as follows:
124
•
If panel-name is specified and message-id is not specified, the
panel is read from the panel library, initialized, and displayed
without a message.
•
If panel-name and message-id are both specified, the panel is read
from the panel library, initialized, and displayed with the
specified message.
ISPF Dialog Management Services
•
If panel-name is not specified and message-id is specified, the
current panel is overlaid with a message, without any initialization
being performed on the panel.
•
If neither panel-name nor message-id is specified, the current panel
is redisplayed, without a message and without any initialization.
The field-name parameter may be used to control the initial position of
the cursor when the panel is displayed. However, the field-name
parameter may be overridden by initialization statements in the panel
definition. For more information on use of the field-name parameter,
see "Default Cursor Positioning" and "Panel Processing Considerations"
in Chapter 7.
The following return codes are possible:
o-
Normal completion.
8 - User requested termination via the END or RETURN command.
12 - The specified panel, message, or cursor field could
not be found.
16 - Truncation or translation error in storing defined
variables.
20 - Severe error.
Example: (See Appendix A, "Using the DISPLAY Service" on page 261 for
another example of DISPLAY processing).
Panel definition XYZ specifies display of variables AAA and KLM (an
input field). Using this definition, invoke ISPF services to display
these variables at the terminal and superimpose, on line 1, the short
form text of message number ABCX013. Position the cursor, on the
display, at the beginning of input field KLM ready for entry of data by
the person at the terminal.
ISPEXEC DISPLAY PANEL(XYZ) MSG(ABCX013) CURSOR(KLM)
CALL ISPLINK('DISPLAY', 'XYZ'
'ABCX013', 'KLM f);
Chapter 6. Description of Services
125
EDIT - MVS or VM/SP: EDIT a Data Set or File
The EDIT service provides an interface to the ISPF/PDF editor, bypassing
display of the edit entry panel. (Use of EDIT requires installation of
ISPF/PDF.) The EDIT service may not be issued by a PL/I main program
that also uses subtasking. See ISPF/PDF Reference for a description of
the editor.
Syntax for use in an MVS environment:
ISPEXEC
EDIT
DATASET(dsname)
[VOLUr-IE (serial)]
[PASSWORD(pswd-value)]
CALL
ISPLINK ('EDIT', dsname [,serial]
[,pswd-value] );
Syntax for use in a VM/SP environment:
ISPEXEC
CALL
EDIT
FILE(fileid)
[MEMBER(member-name)]
ISPLINK ('EDIT', fileid [,member-name] );
dsname
Specifies the name of the data set, in TSO syntax, to be edited. A
fully qualified data set name may be specified, enclosed in
apostrophes. If the apostrophes are omitted, the TSO user prefix
is automatically left-appended to the data set name.
For partitioned data sets, a member name may be specified, enclosed
in parentheses. If a member name is not specified, a member
selection list is displayed.
The maximum length of the dsname parameter is 56 characters.
126
ISPF Dialog Management Services
serial
Specifies the volume serial on which the data set resides. If this
parameter is omitted or coded as blank, the system catalog is
searched for the data set name.
The maximum length of this parameter is 6 characters.
pswd-value
Specifies the password if the data set has OS password protection.
(The password is not specified for RACF or PCF protected data
sets.)
fileid
Specifies the fileid, in CHS syntax, to be edited. The fileid
consists of a filename, filetype, and (optionally) filemode,
separated by one or more blanks. For call invocation of the edit
service, the fileid must be enclosed in parentheses. That is,
fileid is one call~ng sequence parameter consisting of a character
string that starts with a left parenthesis and ends with a right
parenthesis.
The maximum length of the fileid parameter (including the
parentheses for call invocation) is 22 characters.
Note:
The EDIT service is intended for use with existing
files. In the VM/SP environment, if fileid specifies a
non-existent file, the user is able to create a new file.
However, the file characteristics (record format and logical
record length) may be unpredictable. They are whatever was
saved in the last-used edit profile for the specified file
type. If the user has no edit profile for this file type,
the characteristics of the new file are fixed 80.
member- name
Specifies the member to be edited for a HACLIB or TXTLIB (ignored
for other file types). If member name is not specified, a member
selection list for the MACLIB or TXTLIB is displayed.
Nested dialogs may not use the EDIT service if any of the functions
listed below are active under the same logical screen. Violation of
this restriction results in a severe error.
F~.
ISPF/PDF option 2 (EDIT)
•
ISPF/PDF option 3 (UTILITIES)
•
ISPF/PDF option 4 (FOREGROUND)
•
User functions that invoke the EDIT service
Chapter 6. Description of Services
127
The following return codes are possible:
o-
Normal completion, data was saved.
4 - Normal completion, data was not saved.
Note: For a D37 space ABEND, a partial save is done, up to the
point where space was depleted.
20 - Severe error.
Example:
1.
MVS
Invoke the EDIT service to allow editing of TELOUT, a member of the
ISPFPROJ.FTOUTPUT data set.
ISPEXEC EDIT DATASET(ISPFPROJ.FTOUTPUT(TELOUT))
CALL ISPLINK('EDIT', 'ISPFPROJ.FTOUTPUT(TELOUT) I);
2.
VM/SP
Invoke the EDIT service to allow editing of TELOUT, a member of the
FTOUTPUT MACLIB maclib.
ISPEXEC EDIT FILE(FTOUTPUT MACLIB *) MEMBER(TELOUT)
CALL ISPLINK('EDIT', '(FTOUTPUT MACLIB *)', 'TELOUT I);
128
ISPF Dialog Management Services
EDIT - VSE: EDIT a Library or File
The EDIT service provides an interface to the ISPFjPDF editor, bypassing
display of the edit entry panel. (Use of EDIT requires installation of
ISPFjPDF.) The EDIT service may not be issued by a PLjI main program
that also uses subtasking. See ISPFjPDF Reference for a description of
the editor.
EDIT
DATASET (dsname)
[PROFILE(profile)]
[RECFORtl(recfm) ]
[RECSIZE(lrecl)]
[BLKSIZE(blksize)]
[DEVADDR(sysno)]
[VOLUHE (serial)]
CALL ISPLINK ('EDIT', dsname
[,profile]
[ , recfm]
[,lrecl]
[ ,blksize]
[ ,sysno]
[ , serial] );
dsname
(for VSE/AF 1.3.5)
Specifies one of the following:
•
1111111.s.mmmmmmmm.tt
•
1111111 .. mmmmmmmm.tt
•
1111111.s .. tt
•
1111111 ... tt
•
nnnn
•
nnnn.iiiiiiii
Chapter 6. Description of Services
129
•
nnnn.iiiiiiii.pppp
•
fffffff
where:
lIs represent an AF library name; maximum length is 7
characters
s represents the AF sublibrary (source libraries only);
length is 1 character
mls represent the AF member name; maximum length is 8
characters
tt represents the AF library type (SL, RL, PL),
nls represent a VSE/ICCF library number; maximum length is
4 digits
ils represent the VSE/ICCF library member name; maximum
length is 8 characters
pIS represent the VSE/ICCF library member password; maximum
length is 4 characters
fls represent a VSE sequential fileid; maximum length is 7
characters
Note:
If a member name is not specified, a selection
list is provided.
(for VSE/AF 2.1)
Specifies one of the following:
dsname
•
lllllll.ssssssss.mmmmmmmm.tttttttt
•
lllllll.ssssssss.mmmmmmmm
•
lllllll.ssssssss .. tttttttt
•
nnnn
•
nnnn.iiiiiiii
•
nnnn.iiiiiiii.pppp
•
fffffff
where:
lIs represent a VSE/AF library name; maximum length is 7
characters
130
ISPF Dialog Management Services
sts represents a VSEjAF sublibrary; maximum length is 8
characters
mts represent the VSEjAF member name; maximum length is 8
characters
tts represent the VSEjAF member type; maximum length is 8
characters
nts represent a VSEjICCF library number; maximum length is
4 digits
its represent the VSEjICCF library member name; maximum
length is 8 characters
pts represent the VSEjICCF library member password; maximum
length is 4 characters
fts represent a VSE sequential fi1eid; maximum length is 7
characters
Note: If a member name is not specified, a selection
list is provided.
profile
Specifies the name of the edit profile.
is ISPEDIT.
When omitted, the default
reefm
Specifies the record format of the VSE sequential data set, as
follows:
F - specifies fixed format
v-
specifies variable format
Ireel
Specifies, in five digits or less, the record size of the
sequential data set. If called from a program, 1recl should be
declared as a fu11word variable and set to the correct value.
blksize
Specifies, in five digits or less, the block size of the sequential
data set. If called from a program, b1ksize should be declared as
a ful1word variable and set to the correct value.
sysno
Specifies the three numerical digits of the programmer logical unit
on which the sequential data set is mounted.
serial
Specifies the volume serial, six or less characters, on which the
sequential data set resides.
Chapter 6. Description of Services
131
Nested dialogs may not use the EDIT service if any of the functions
listed below are active under the same logical screen. Violation of
this restriction results in a severe error.
•
ISPF/PDF option 2 (EDIT)
•
ISPF/PDF option 3 (UTILITIES)
•
User functions that invoke the EDIT service
The following return codes are possible:
o -
Normal completion.
20 - Severe error.
Example:
1.
Under VSE/AF 1.3.5, invoke the EDIT service to allow browsing of
TELOUT, a member of source statement library USERSRC.
CALL
2.
Under VSE/AF 2.1, invoke the EDIT service to allow browsing of
TELOUT, a skeleton member of library.sublibrary USERLIB.USER1.
CALL
3.
ISPLINK ('EDIT', 'USERLIB.USER1.TELOUT.S')
Invoke the EDIT service to allow editing of a sequential data set
named SEQFILE, consisting of fixed length BO-byte records, blocked
10, mounted on SYS001, volume number 111111. Program variables
RSIZE and BSIZE are full words and contain the binary equivalent of
BO and BOO, respectively. Use the default profile.
CALL
132
ISPLINK ('EDIT', 'USERSRC.S.TELOUT.SL')
ISPLINK ('EDIT', 'SEQFILE '
ISPF Dialog Management Services
, ,
'F', RSIZE, BSIZE,
'001', '111111');
.••"r"" ....,.....-'~·"·-".,_.
'"
FTCLOSE - End (File
Tailoring
\.
The FTCLOSE service is used to terminate the file tailoring process and
to indicate the final disposition of the file tailoring output.
A member-name parameter should be specified if the output file is a
library. The file tailoring output is given the specified member name.
No error condition results if the member-name parameter is not
specified, and the output is not stored in the library.
If the member-name parameter is specified and the output file is
sequential, a severe error results.
The library parameter should be specified if a library other than that
represented by the ISPFILE definition is to be used. The library
parameter is ignored if the "TEHP" option is specified on the FTOPEN
service or if the ISPFILE definition specifies a sequential data set. A
severe error occurs if file tailoring attempts to use the data set and
it is not a library.
The NOREPL parameter specifies that an existing member in the file
tailoring output library is not to be overlaid (replaced) by the current
FTCLOSE service. If a member of the same name already exists, the
FTCLOSE service request is terminated with a return code of 4 and the
original member remains unaltered.
ISPEXEC
FTCLOSE
[NA~1E(member-name)
[LIBRARY(library-name)]
[NOREPL]
CALL
ISPLINK ('FTCLOSE' [,member-name] [,library-name]
[ , 'NOREPL ' ] ) ;
member- name
Specifies the name of the member in the output library that is to
contain the file tailoring output.
library-name
Specifies the name of aDD, FILEDEF, or ISPDEF statement that
defines the output library in which the member-name exists.
ISPFILE is the default if this parameter is omitted.
NOREPL
Specifies that FTCLOSE is not to overlay an existing member in the
output library.
Chapter 6. Description of Services
133
The following return codes are possible:
o-
Normal completion.
4
Member already exists in the output library and NOREPL was
specified. The original member is unchanged.
8 - File not open (FTOPEN was not used prior to FTCLOSE).
12 - Output file in use; ENQ failed.
16 - Skeleton library or output file not allocated.
20 - Severe error.
Example: End the file tailoring process and store the result of the
processing in the file tailoring output library in member TELOUT.
ISPEXEC FTCLOSE NAME(TELOUT)
CALL ISPLINK('FTCLOSE', 'TELOUT ');
134
ISPF Dialog Management Services
..
FTERASE - Erase File
/'
Tailoring~
Output
The FTERASE service erases (deletes) a member of a file tailoring output
library.
A severe error occurs if a specified library or the default (ISPFILE) is
a sequential file.
ISPEXEC
CALL
FTERASE
member-name
[LIBRARY(library-name)]
ISPLINK ('FTERASE', member-name
[,library-name]);
member- name
Specifies the name of the member that is to be deleted from the
output library.
library-name
Specifies the name of aDD, FILEDEF, or ISPDEF statement that
defines the output library in which the member-name to be deleted
exists. ISPFILE is the default if this parameter is omitted.
The following return codes are possible:
o-
Normal completion.
8 - Hember does not exist.
12
Output library in use; ENQ failed.
16 - Output library not allocated.
20 - Severe error.
Example: Erase member TELOUT in the file tailoring output library.
ISPEXEC FTERASE TELOUT
CALL ISPLINK('FTERASE', 'TELOUT ');
Chapter 6. Description of Services
135
."
{ ' '.:' '~
...
.....
FTINCL - Include r'Skeleton,)
"" __~._~."".~.".,.,.,,,,.,Jf'
The FTINCL service specifies the name of the skeleton (member of the
skeleton library) that is to be used to produce the file tailoring
output.
See "Skeleton Definitions" in Chapter 7.
ISPEXEC
CALL
FTINCL
skel-name
[NOFT]
ISPLINK ('FTINCL', skel-name [, 'NOFT'] );
skel-name
Specifies the name of the skeleton.
NOFT
Specifies that no file tailoring is to be performed on the
skeleton: the entire skeleton is to be copied to the output file
exactly as is with no variable substitution or interpretation of
control records.
The following return codes are possible:
o-
Normal completion.
8 - Skeleton does not exist.
12
Skeleton or table in use; ENQ failed.
16 - Data truncation occurred; or skeleton library or
output file not allocated.
20 - Severe error.
Example: Perform file tailoring using the file tailoring skeleton named
TELSKEL, a member in the file tailoring skeleton library, to control
processing.
ISPEXEC FTINCL TELSKEL
CALL ISPLINK('FTINCL', 'TELSKEL I);
136
~ISPF
Dialog Management Services
The FTOPEN service begins the file tailoring process. It allows
skeleton files to be accessed from the skeleton library, specified by
ddname ISPSLIB.
The skeleton library must be preallocated prior to invoking ISPF.
ISPSLIB may specify a concatenation of libraries. See Chapter
4, "Library Requirements," for library setup requirements.
If output from file tailoring is not to be placed in a temporary file,
the desired output file must be allocated to ddname ISPFILE prior to
invoking this service. ISPFILE may designate either a library or a
sequential file.
ISPEXEC
CALL
FTOPEN
[TEHP]
ISPLINK ('FTOPEN' [, 'TEMP'] );
TEMP
Specifies that the output of the file tailoring process should be
placed in a temporary sequential file. The file is automatically
allocated by ISPF. Its name is available in system variable
ZTEMPF.
If this parameter is omitted, the output will be placed in the
library or sequential file as designated by ddname ISPFILE.
In MVS, ZTEHPF contains a fully qualified data set name. Generated
JCL in this file may be submitted for background execution using
the following TSO command:
SUBMIT
'&ZTEMPF'
Note: If ISPCTL1 and ISPCTL2 are preallocated to VIO, this
temporary data set may not be accessed using BROWSE or EDIT.
Chapter 6. Description of Services
137
In V~l/SP, the temporary file is written to the user's A-disk. The
ISPF-generated file name is contained in ZTEMPF. The file type is
always ISPTEMP. Data in this file may be sent to another virtual
machine using the following CMS command:
PUNCH
&ZTEMPF ISPTEMP
In VSE, ZTEMPF contains the filename of the temporary sequential
data set.
The following return codes are possible:
o-
Normal completion.
8
File tailoring already in progress.
12 - Output file in use; ENQ failed.
16 - Skeleton library or output file not allocated.
20 - Severe error.
Example: Prepare for access (open) both the file tailoring skeleton and
file tailoring output libraries.
ISPEXEC FTOPEN
CALL ISPLINK('FTOPEN');
138
ISPF Dialog
~lanagement
Services
LOG - Write a Message to the Log File
The LOG service causes a message to be written to the ISPF log file.
ISPEXEC
CALL
LOG
NSG(message-id)
ISPLINK ('LOG', message-id);
message-id
Specifies the identification of the message that is to be retrieved
from the message library and written to the log.
The following return codes are possible:
o12
~
Normal completion.
The message-id contains invalid syntax or was not found.
20 - Severe error.
Example:
•
In a CLIST or EXEC, dialog variable TERNSG contains a message-ide
Write this message in the ISPF log file.
ISPEXEC LOG NSG(&TERHSG )
•
In a PL/I program, program variable TERHSG contains a message-ide
Write this message in the ISPF log file.
CALL ISPLINK('LOG', TERHSG);
•
Write message ABCX013 in the ISPF log file.
ISPEXEC LOG MSG(ABCX013)
CALL ISPLINK('LOG', 'ABCX013 f);
Chapter 6. Description of Services
139
L
'0
'
i
I
SELECT - Select a Panel or Function
The SELECT service may be used to display a hierarchy of selection
panels (menus), or invoke a function.
Within a dialog function a program may invoke another program using
standard CALL or link conventions. These are nested programs and are
transparent to the dialog manager. On the other hand, when the invoked
program is a new dialog function, SELECT must be used.
Note: Programs or command processors that use VNCF to
communicate with their own disconnected virtual machine, may not
be invoked under ISPF.
ISPEXEC
SELECT
PANEL(panel-name)
[OPT(option)]
C}1D ( command)
PGM(program-name)
[PARM(parameters)]
[NEWAPPL [(application-id)]INEWPOOL]
CALL
ISPLINK ('SELECT', buf-length, buffer);
Note: parameters which may appear in buffer are:
PANEL(panel-name)
[OPT(option)]
CND(command)
PGM(program-name) [PARN(parameters)]
[LANG(PLI-IPL1 [,storage-area])]
[LANG(COBOL)]
[NEWAPPL [(application-id)] INEWPOOL]
..... ,
panel-name
Specifies the name of a selection panel to be displayed.
option
~
~-)\Q~ 1i.
i~~ S~\a
~
140
.,.A
specifies an initial option, which must be a valid option on the
menu specified by panel-name. Specifying an option causes direct
entry to that option without displaying the menu.
(The menu is
processed in nondisplay mode, as though the user had entered the
option.)
ISPF Dialog Management Services
command
In MVS and VM/SP, specifies a command procedure (CLIST or EXEC 2),
or any TSO or CMS command that is to be invoked as a dialog
func t ion. -C8mmart(r'pa'rame"t'e'r's"'maf"13°e"'''Inc1~uOea-wrtnl11't
Y""'P'1"feili'fl'e!es .
command
)
11fLIST or EXEC 2) to improve performance, and to avoid
~ automatic entry into line display mode (see description of CONTROL
~;2. ') service) .
pr6ce~ure
-~'A"'p'e~rcen:t""'(%)'-'sI'gn""'may~~'pr'ece(f;t~lne"''''ii.'am'eo~
Note: In MVS, ordinary commands (command processors) are
invoked by the ATTACH macro and may not issue requests for
ISPF dialog services.
In VM/SP, references made by CMS commands while running ISPF,
generally, give unpredictable results.
In VSE, this parameter is not used because ICCF procedures may not
be used for writing dialog functions.
~.-
-_.. "
~.:,.:::.::.,-.-.....,~.~,:,,~-~~
(p;~gram-~a~v
__,___.....S.p,e.c.:l:-:t-Ies the name of a program that is to be invoked as a dialog
) function. If the program is coded in PL/I, it must be a MAIN
,/ procedure.
/
-1',.1
/
/
,/
;'
I
I
\
\
\
~'"
Note: Dialog developers should avoid the ISP and ISR
prefixes (the ISPF and PDF component codes) in naming dialog
functions. Special linkage conventions, intended only for
internal ISPF use, are used to invoke programs named
"ISPxxxxx" and "ISRxxxxx".
In MVS, this parameter must specify the name of a load module that
by use of the LINK macro.
~sible
-----""'""...
-' •.
');;"'....,,.~"~-......'.--""~"~-..
'
'.
In VM/SP, this parameter may specify the name of a TEXT file, a
member of a TXTLIB, or a member of a LOADLIB. For more
information, see "Library Setup - VM/SP Environment" in Chapter 4.
In VSE/AF 1.3.5, this parameter must specify the name of a phase
contained in a core image library. This library must be defined by
a LIBDEF CL statement.
In VSE/AF 2.1, this parameter must specify the name of a phase
contained in a library.sublibrary, which must be defined by a
LIBDEF PHASE statement.
parameters
Specifies input parameters to be passed to the program.
program should not attempt to modify these parameters.
The
The parameters within the parentheses are passed as a single
character string, preceded by a halfword containing the length of
the character string, in binary. (The length value does not
include itself.) This convention is exactly the same as if the
Chapter 6. Description of Services
141
parameters had been passed in a PARH= keyword on a JCL EXEC
statement.
Parameters passed from the SELECT service to a PLjI program may be
declared on the procedure statement in the standard way:
XXX:
PROC (PARM) OPTIONS(HAIN);
DeL PARM CHAR (nnn) VAR;
If the value of the PARM field is to be used as an ISPF dialog
variable, it must be assigned to a fixed character string, because
the VDEFINE service cannot handle varying length PLjI strings.
In MVS and VMjSP, the first character of the PARM field must be a
slash ('j'), because PLjI assumes that any value prior to the slash
is a run-time option.
LA N G ( P L I)
0
r LA N G ( P L 1 )
In VSE, specifies that the function being invoked is written in the
PLjI language.
In MVS and VMjSP, this keyword is not used.
storage-area
In VSE, for programs written in PLjI, specifies the number of bytes
of dynamic storage to be made available to the function being
invoked.
The default storage size is 2816 bytes. Generally, the amount of
storage required for a PLjI program can be determined by using the
storage option to compile the program and then adding 2192 to the
DSA sizes specified on the compile listing. However, the storage
requirement will vary considerably depending on the compiler
options specified, i.e. "FLOW" will use slightly more storage but
"COUNT" will substantially increase the storage requirement.
In MVS and VMjSP, this parameter is not used.
LANG(COBOL)
In VSE, specifies that the function being invoked is written in the
COBOL language.
In MVS and VMjSP, this keyword is not used.
NEWAPPL
Specifies that a new application is being invoked.
application - id
Specifies a 1- to 4-character code for the new application named in
t0l:>: p~e~i~~d t? t~e
<:~~.~~, . pro fi I!:) t~"~di t . P ro f.~J~, or th~~'~c:mffif~lfa~~''t ao 1 e' .as socia·t~a,
with t lie-- apt>1: i cat ion ;-_. lIs"foT I ows (where xxx)Cis··"t heapplication-id):
_!J.1jJ?__~g.1~<2,!".service._:S~JlJ,l~s_t~ . _.~.!he code. is
142
ISPF Dialog Management Services
Application Profile
Edit Profile
Command Table
xxxxPROF
xxxxEDIT
xxxxCMDS
These are table (member) names in the profile or table input
library.
If the NEWAPPL keyword is specified but the application-id is not
specified, the default application-id is ISP, as follows:
User Profile
Edit Profile
Command Table
ISPPROF
ISPEDIT
ISPCMDS
NEWPOOL
Specifies that a new shared variable pool is to be created without
specifying a new application. Upon return from the SELECT service,
the current shared variable pool is reinstated.
buf-Iength
Specifies the length of a buffer containing the selection keywords.
This parameter must be a fullword binary integer.
buffer
Specifies the name of a buffer containing the selection keywords.
This is a character string parameter. The selection keywords in
the buffer are specified exactly as they would be coded for the
ISPEXEC command; for example:
BUFNAME = 'PANEL(ABC) OPT(9) NEWPOOL';
In the above example, it is assumed that BUFNAME is the name of the
buffer. The apostrophes are part of the syntax of the PL/I
assignment statement. They are not stored in the buffer itself.
If a command or program is invoked using SELECT, the return code from
the command or program is passed to the function that invoked SELECT.
Note: If a selected command, not using ISPF display services,
could cause a full screen input or output operation, the developer
should refresh the entire screen on the next display. To do this,
use the CONTROL DISPLAY REFRESH service. See "Control Service" in
Chapter 2.
~
rr
rvJ.,
Chapter 6. Description of Services
143
The following return codes are possible if a menu is specified:
o-
Normal Completion.
menu.
The END command was entered from the selected
4 - Normal Completion. The RETURN command was entered or the EXIT
option as specified from the selected menu or from some
lower-level menu.
12 - The specified panel could not be found.
16
Truncation error in storing the ZCMD or ZSEL variable.
20 - Severe error.
Example:
•
In MVS or V~l/SP (in a CLIST or EXEC), start a hierarchy of selection
panels (menus) from a dialog function. The first menu in the
hierarchy is named QOPTION.
ISPEXEC SELECT PANEL(QOPTION)
•
In a PL/I program, program variable QOPT contains 'PANEL(QOPTION),
and program variable QOPTL is a full word containing the bi<~~f'y~,w.~" .
equivalent of 14. Start a hierarchy of selecti~D""",pane"rs,-uCmenus)
""\,;
beginning with panel QOPTION.
;.~e·,·<-v:'~;""·h
r 5Pt'Yt,C 5t LtC-,
'
,,,>","
CALL ISPLINK('SELECT'
•
QOPTL
QOPT).
:i'/"
1,·e.".t~(1{ c"~Jq,~I,Y\,,
,dr, '
"";;;;;:.:~,
I S }"
Le,
)
"""".,"
...,--<.~
. ". . '"-, ; ~ (,. \ S_T'" 01(' f",)('
' /
a, . .~~:tST or"':~', invoke a'E!~~E~~:E;:~e:~::~~,.,. ~li,a.1.og'
,
,
In MVS or VM/SP (in
function named PROG1, aii'd"'pass'it'a parameter string consisting of
ABCDEF.
ISPEXEC SELECT PGM(PROG1) PARM(ABCDEF)
•
In NVS or VN/SP, in a PL/I program, program variable PROG contains
'PGN(PROG1) PAR~l(ABCDEF)' and program variable PROGL is a full word
containing the binary equivalent of 23. Invoke a program-coded
dialog function, named PROGl, and pass it a parameter string
consisting of ABCDEF.
CALL ISPLINK('SELECT', PROGL, PROG);
•
In VSE, in a PL/I program, program variable PROG contains
'PGM(PROGl) PARN(ABCDEF) LANG(PLI), and program variable PROGL is a
full word containing the binary equivalent of 33. Invoke a
program-coded dialog function (written in PL/I), named PROG1, and
pass it a parameter string consisting of ABCDEF.
CALL ISPLINK('SELECT', PROGL, PROG);
144
ISPF Dialog Management Services
SETMSG - Set Next Message
The set next message service allows a dialog function to display a
message on the next panel that is written by ISPF to the terminal. The
next panei does not have to be displayed as a result of action taken by
the function routine. The function routine may have, in fact,
terminated before the next panel is displayed.
The specified message is retrieved from the message library at the time
the set message request is issued. Values for all variables defined in
the message are substituted at this time and the message is saved in a
message area for the application. When the next panel is displayed, the
message is retrieved from the save area and displayed on the panel.
If multiple set-message requests have been issued before a panel is
displayed, only the last message is displayed. A message specified on
the panel display request is overridden by any outstanding set next
message request.
A message that has been set with SETNSG is displayed the next time any
full screen output is sent to the display, regardless of whether that
output is a panel, table display, browse data, or edit data.
The message is preserved across CONTROL NONDISPL. That is, the message
is displayed on the next actual output to the terminal. If the next
panel is processed in non-display mode, the message remains pending, to
be displayed with any following panel that is processed in display mode.
If the message refers to a help panel, the help panel should not include
substitutable variables. Variables in related help panel(s) contain the
values current at the time the HELP command is issued, not at the time
the SETNSG service is invoked.
Syntax for the set message function is:
ISPEXEC SETMSG MSG(message-id)
CALL
ISPLINK C'SETMSG', message-id};
message-id
Specifies the identification of the message to be displayed on the
next panel.
Chapter 6. Description of Services
145
The following return codes are possible:
o -
Normal completion.
12 - The specified message could not be found.
20 - Severe error.
Example: Put, on the next panel that is displayed, a message whose id,
ABCX015 , is in a dialog variable named TERMSG.
ISPEXEC SETMSG MSG(&TERMSG )
CALL ISPLINK('SETMSG', 'ABCX015 I);
146
ISPF Dialog Management Services
TBADD - Add a Row to a Table
The TBADD service adds a new row of variables to a table. The new row
is added immediately following the current row, pointed to by the
current row pointer (CRP). The CRP is then set to point to the newly
inserted row.
The current contents of all dialog variables that correspond to columns
in the table (that were specified by the KEYS and NAHES parameters in a
TBCREATE) are saved in the row.
Additional variables (those not specified when the table was created)
may also be saved in the row. These "extension" variables apply only to
this row; not the entire table. The next time the row is updated, the
extension variables must be respecified if they are to be rewritten.
For tables with keys, the table is searched to ensure that the new row
has a unique key. The current contents of the key variables (dialog
variables that correspond to keys in the table) are used as the search
argument.
For tables without keys, no duplicate checking is performed.
ISPEXEC
CALL
TBADD
table-name
[SAVE(name-list)]
ISPLINK ('TBADD', table-name [,name-list] );
table-name
Specifies the name of the table to be updated.
name-list
Specifies a list of extension variables, by name, that are to be
saved in the row, in addition to the variables specified when the
table was created.
The following return codes are possible:
0
- Normal completion.
8 - Tables with keys:
A row with the same key already
exists; CRP set to TOP (zero).
12 - Table is not open.
20 - Severe error.
Chapter 6. Description of Services
147
Example: Add a row to the table TELBOOK, copying to the row values from
function pool variables whose names match those of table variables.
ISPEXEC TBADD TELBOOK
CALL ISPLINK('TBADD', 'TELBOOK I);
148
ISPF Dialog Management Services
TB BOTTOM - Set the Row Poi nter to Bottom
The TBBOTTOM service sets the current row pointer (CRP) to the last row
of a table, and retrieves the row.
All variables in the row, including keys, name, and extension variables
(if any), are stored into the corresponding dialog variables. A list of
extension variable names may also be retrieved.
IS:2EXEC
CALL
TBBOTTOM
ISPLINK
table-name
('TBBOTTO~II,
[SAVENAME(var-name)]
table-name [,var-name] );
table-name
Specifies the name of the table to be used.
var-name
Specifies the name of a variable into which a list of extension
variable names contained in the row will be stored. The list must
be enclosed in parentheses, and the names within the list must be
separated by a blank.
The following return codes are possible:
o-
Normal completion.
8
Table is empty; CRP set to TOP (zero).
12
Table is not open.
16 - Variable value has been truncated or insufficient space
provided to return all extension variable names.
20 - Severe error.
Example: Move the current row pointer (CRP) of the table TELBOOK to the
last row of the table. Store values from variables in that row, in
function pool variables having names that match the names of the
variables in the row.
ISPEXEC TBBOTTOM TELBOOK
CALL ISPLINK('TBBOTTOM', 'TELBOOK f);
Chapter 6. Description of Services
149
TBCLOSE - Close and Save a Table
The TBCLOSE service terminates processing of the specified table and
deletes the virtual storage copy, which is then no longer available for
further processing.
If the table was opened in WRITE mode, TBCLOSE copies the table from
virtual storage to the table output library. In this case, the table
output library must be allocated to a ddname of ISPTABL before invoking
this service. Optionally, the table can be stored under a different
name in the output iibrary.
If the table was opened in NOWRITE mode, TBCLOSE simply deletes the
virtual storage copy.
Table output can be directed to a table output library other than the
library specified on the table output ISPTABL DD, FILEDEF, or ISPDEF
statement. (The library to be used must be allocated before table
services receives control.) Thus, an application can update a specific
table library. This is particularly useful for applications that need
to maintain a common set of tables containing their data.
The output table library - specified by the ISPTABL DD, FILEDEF, or
ISPDEF statement - is the default output library. Therefore, dialogs
previously written for SPF that use table services continue to function
in the same manner in ISPF as they did when running under SPF.
ISPEXEC
TBCLOSE
table-name
[NEWCOPYI REPLCOPY]
[NANE(alt-name)]
[PAD(percentage)]
[LIBRARY(library-name)]
CALL
ISPLINK ('TBCLOSE', table-name [, 'NEWCOPY' I 'REPLCOPY']
[ ,alt-name]
[ ,percentage]
[,library-name]);
table-name
Specifies the name of the table to be closed.
150
ISPF Dialog Nanagement Services
NEWCOPY
Specifies that the table is to be written at the end of the output
library, regardless of whether an update in place would have been
successful. This ensures that the original copy of the table is
not destroyed before a replacement copy has been written
successfully.
REPLCOPY
Specifies that the table is to be rewritten in place in the output
library. If the existing member is smaller than the table that
replaces it, or if a member of the same name does not exist in the
library, the complete table is written at the end of the output
library.
Note: If both the NEWCOPY and REPLCOPY keywords are
omitted, a comparison is made between the virtual storage
size of the table and the external size in the table output
library. If there is insufficient storage to write the table
in-place, it is written at the end of the table output
library.
alt-name
Specifies an alternate name for the table. The table is stored in
the output library with the alternate name. If another table
already exists in the output library with that name, it is
replaced. If the table being saved exists in the output library
with the original name, that copy remains unchanged.
percentage
Specifies the percentage of padding
of the table. The padding is added
only when the table is written as a
not increase the table size when an
space, based on the total size
to the total size of the table
new copy. This parameter does
update in place is performed.
This parameter must have an unsigned integer value. For call
invocation, it must be a fullword fixed binary integer.
The default value for this parameter is zero.
Padding permits future updating in place, even when the table has
expanded in size. Should the table expand beyond the padding
space, the table is written at the end of the table output library
instead of being updated in place.
library-name
Specifies the name of aDD, FILEDEF, or ISPDEF statement that
defines the output library in which table-name is to be closed.
this parameter is omitted, the default is ISPTABL.
Chapter 6. Description of Services
If
151
The following return codes are possible:
0 - Normal completion.
12 - Table is not open.
16 - Table output library not allocated.
20 - Severe error.
Example: Close the table TELBOOK.
ISPEXEC TBCLOSE TELBOOK
CALL ISPLINK('TBCLOSE', 'TELBOOK f);
152
ISPF Dialog Management Services
TBCREATE - Create a New Table
The TBCREATE service creates a new table in virtual storage, and opens
it for processing.
TBCREATE allows specification of the variable names that correspond to
columns in the table. These variables will be stored in each row of the
table. Additional "extension" variables may be specified for a
particular row when the row is written.
One or more variables may be defined as keys for accessing the table.
If no keys are defined, only the current row pointer can be used for
update operations.
ISPEXEC
TBCREATE
table-name
[KEYS(key-name-1ist)]
[NAMES(name-1ist)]
[WRITE INOWRITE]
[REPLACE]
CALL
ISPLINK ('TBCREATE', table-name [,key-name-1ist]
[ ,name -1 is t ]
[, 'WRITE'
I' NOWRITE' ]
[ , 'RE PLACE'] );
table-name
Specifies the name of the table to be created. The name may be
from one to eight alphameric characters in length, and must begin
with an alphabetic character.
key- name-list
Specifies the variables, by name, that are to be used as keys for
accessing the table. See the section entitled "Invocation of
Services" for specification of name lists. If this parameter is
omitted, the table will not be accessible by keys.
name-list
Specifies the non-key variables, by name, to be stored in each row
of the table.
Chapter 6. Description of Services
153
If key-name-list and name-list are omitted, the table can contain
only extension variables that must be specified when the row is
written.
WRITE
Specifies that the table is permanent, to be written to disk by the
TBSAVE or TBCLOSE service. The disk copy is not actually created
until the TBSAVE or TBCLOSE service is invoked.
NOWRITE
Specifies that the table is for temporary use only. When
processing is complete, a temporary table should be deleted by the
TBEND or TBCLOSE service.
REPLACE
Specifies that an existing table is to be replaced. If a table of
the same name is currently open, it is deleted from virtual storage
before the new table is created, and return code 4 is issued. If
the WRITE parameter is also specified and a duplicate table name
exists in the table input library, the table is created and return
code 4 is issued. The duplicate table is not deleted from the
input library.
The following return codes are possible:
o-
Normal completion.
4 - Normal completion
was specified.
a duplicate table exists but REPLACE
8 - Table already exists; REPLACE was not specified.
12
Table in use; ENQ failed.
16 - WRITE mode specified and table input library is not allocated.
(TBCREATE checks the input library to determine if a duplicate
table exists; see return code 8.)
20 - Severe error.
Example:
•
In MVS or VM/SP, in a CLIST or EXEC, create a permanent table,
TELBOOK, to contain the variable TABKEY and other variables, the
names of which are specified in dialog variable TABVARS. The key
field is TABKEY.
ISPEXEC TBCREATE TELBOOK KEYS(TABKEY) NAMES(&TABVARS )
•
In a PL/I program, create a permanent table, TELBOOK, to contain the
variable TABKEY and other variables, the names of which are
specified in program variable TABVARS. The key field is TABKEY.
CALL ISPLINK('TBCREATE', 'TELBOOK'
154
ISPF Dialog Management Services
'TABKEY', TABVARS);
TBDELETE - Delete a Row from a Table
The TBDELETE service deletes a row from a table.
For tables with keys, the table is searched for the row to be deleted.
The current contents of the key variables (dialog variables that
correspond to keys in the table) are used as the search argument.
For tables without keys, the row pointed to by the current row pointer
(CRP) is deleted.
The CRP is always updated to point to the row prior to the one that was
deleted.
ISPEXEC
CALL
TBDELETE
table-name
ISPLINK ('TBDELETE', table-name);
table-name
Specifies the
deleted. The
(if the table
variables (if
name of the table from which the row is to be
row is determined by the current position of the CRP
has no keys) or the current contents of the key
the table has keys).
The following return codes are possible:
o-
Normal completion.
8 - Keyed tables: The row specified by the value in key
variables does not exist; CRP set to TOP (zero).
Non-keyed tables:
CRP was at TOP (zero) and remains at TOP.
12 - Table is not open.
20 - Severe error.
Example: Delete a row of the table TELBOOK.
ISPEXEC TBDELETE TELBOOK
CALL ISPLINK('TBDELETE', 'TELBOOK f);
Chapter 6. Description of Services
155
TBD I SPL - Display Table Information
The TBDISPL service combines information from a panel definition with
information stored in an ISPF table. It displays all or selected rows
from the table, allowing the application user to scroll the information
up and down (only). An illustration appears in Appendix C, "Using the
TBDISPL Service" on page 289.
When only selected rows from a table are to be displayed, the TBSARG
service is used before issuing TBDISPL to define the selection criteria.
In this case, ROWS(SCAN) must be specified on the )MODEL statement in
the panel definition.
The format of the display is specified by a panel definition, which
TBDISPL reads from the panel library. The panel definition contains two
input fields (the command and scroll fields) and the non-scrollable
text, which includes column headings. It also contains one or more
"model" lines that specify the format of the scrollable data and which
columns (i.e., which variables) from the table are to be displayed. For
a description of panel formats for table display, see "Special Panel
Requirements, Table Display Panels" in Chapter 7.
Each line of scrollable data may have one or more input (unprotected)
fields, as well as output (protected) fields. The user may modify the
input fields and may also enter commands in the command field.
Before TBDISPL is invoked, the table to be displayed must be open, and
the current row pointer (CRP) positioned to the row in the table at
which the display is to begin. (CRP at TOP is a value of 0 and is
valid; it is treated as though the CRP were pointing to the first row.)
Note:
Do not attempt to use TBDISPL to display a command table
currently in use. The result would not be predictable.
TBDISPL does not modify information in the table. The dialog function
may use the information entered by the user to determine what processing
is to be performed, and may modify the table accordingly.
156
ISPF Dialog Management Services
ISPEXEC
TBDISPL
table-name
[PANEL(panel-name)]
[MSG(message-id)]
[CURSOR(field-name)]
[CSRROW(table-row-number)]
CALL
ISPLINK ('TBDISPL', table-name
[,panel-naQe]
[ ,message-id]
[,field-name]
[,table-row-number] );
table-name
Specifies the name of the table to be displayed.
panel-name
Specifies the name of the panel to be displayed.
message-id
Specifies the identification of a message to be displayed on the
panel.
field-name
specifies the column (variable name) where the cursor is to be
positioned on the display. Any .CURSOR setting (done in the IN IT
section of the panel definition) takes precedence over this
parameter.
table-row-number
specifies the table row number (CRP) corresponding to the line on
the display where the cursor is to be positioned. If the specified
row is not displayed on the screen, the cursor is placed at the
command field. For call invocation, this parameter must be a full
word fixed binary number.
The panel-name and message-id parameters are optional.
is as follows:
•
Their processing
If panel-name is specified and message-id is not specified, the
panel is read from the panel library, rows from the table are read
to fill the screen, and the screen is displayed without a message.
Chapter 6. Description of Services
157
•
If panel-name and message-id are both specified, the panel is read
from the panel library, rows from the table are read to fill the
screen, and the screen is displayed with the specified message.
•
If panel-name is not specified and message-id is specified, the
current table display is overlaid with a message, without
reinitializing the screen nor rereading the table.
•
If neither panel-name or message-id is specified, the CRP is set to
point to the table row corresponding to the next modified line on
the display. If no modified lines remain to be processed, the
following occurs:
If the application user's last act was to:
Press the ENTER key, then rows from the table are again read to
fill the screen and the screen is redisplayed.
Enter a scroll command, then the scroll function is now honored
by reading and displaying the appropriate rows from the table.
Enter an END or RETURN command, then the CRP is set to TOP
(zero) and return is made to the function (issuing the TBDISPL)
with a return code of 8. If this occurs more than once in
immediate sequence, a return code of 20 is issued, since the
application may be in a loop.
The field-name and table-row-number parameters are optional.
processing is as follows:
158
Their
•
If the field-name parameter is not specified but the
table-row-number parameter is specified, the cursor is placed on the
first field in the specified row.
•
If the field-name parameter is specified but the table-row-number
parameter is not specified, the current value of the CRP determines
the row location and the cursor is placed in this row, on the field
specified by the field-name parameter.
•
Whenever the table-row-number parameter is specified, the contents
of the row are always returned by TBDISPL, even if the user did not
modify the row. This allows the dialog developer to force the user
to correct an error on that row, before going on to process other
rows.
•
The .CURSOR control variable may be set within the )INIT section of
a table display panel to specify a field name where within a row the
cursor is to be initially positioned. If .CURSOR is not explicitly
set, it assumes the value passed from the c~lling sequence in the
field-name parameter, (if any). If cursor placement is not
specified (in .CURSOR or a passed value), the cursor is positioned
at the command input line.
ISPF Dialog Management Services
TBDISPL allows the user to scroll the data up and down, and enter
primary commands or information on one or more lines of scrollable
data. After display of a panel using TBDISPL and after the user has
made any modifications to the scrollable data on the display and has
pressed the ENTER key or issued the SCROLL, END, or RETURN command, the
TBDISPL service performs the following functions:
1.
The contents of the command field are stored in the dialog variable
specified in the panel definition.
2.
If there was no modified line to process, the CRP is set to TOP
(zero).
3.
If the user entered information into one or more lines of scrollable
data, the CRP is positioned to the row in the table that corresponds
to the first modified line, and the row is retrieved (all variables
from that row are stored into the corresponding dialog variables).
The information entered by the user on that line is then stored in
the corresponding dialog variables. This includes all input fields
in the line, which mayor may not correspond to variables in the
table.
4.
The row number that corresponds to the first line currently
displayed on the screen is stored in the system variable ZTDTOP.
If, in a dialog, a dialog developer wants to reposition the
scrollable data as the user last saw it, he must reposition the CRP
to the row number stored in ZTDTOP prior to reinvoking the TBDISPL
service.
(ZTDTOP is a variable in the function pool. A command procedure CLIST or EXEC - may access it directly. A program may access it
through use of the VCOPY service.)
5.
TBDISPL then returns to the dialog function.
If the application user modified more than one line in a single
interaction, a call to TBDISPL is required to position the CRP to the
row corresponding to each modified line. After the CRP is positioned to
each modified line, the function may process the line, for example, by
issuing a TBPUT request to update the table. For these calls, neither
the panel-name nor the message-id should be specified. The processing
sequence for each of these calls is as described above, except that the
next modified line is processed. The combination of the return code and
CRP values indicate whether there are more modified lines to be
processed.
Whenever modified table entries remain to be processed, the dialog can
choose to ignore them by calling TBDISPL with a specified (non-blank)
panel name. This clears out any remaining information about previous
calls. If the dialog wants to display another table before processing
all remaining entries from the first display, and then resume processing
of multiple entries from the first display, it must invoke the CONTROL
service to save and restore the display environment.
Chapter 6. Description of Services
159
The following return codes are possible from TBDISPL:
o-
The ENTER key was pressed or a scroll command was entered.
One or both of the following occurred:
one line was modified in the scrollable part of the display.
The CRP is set to point to the table row corresponding to
that line. The row is retrieved (i.e., stored in the
function pool) and then the line is stored in the function
pool.
a function command was entered by the user.
4 - The ENTER key was pressed or a scroll command was entered.
The first or both of the following occurred:
two or more lines in the scrollable part of the display were
modified by the user. The CRP is set to the table row
corresponding to the first line changed. That row is
retrieved (i.e., stored in the function pool) and then the
line is stored in the function pool.
a function command was entered by the user.
For subsequent TBDISPL requests (with no panel name and no
message-id), return code 4 is issued for each request until one
modified line remains to be accessed. For this last line, a
return code of zero is issued by the TBDISPL request (still
specified with no panel name and no message-id).
8
The END or RETURN command was entered. The CRP is set to
the table row corresponding to the first of any lines modified
in the scrollable part of the display. That row is retrieved
(stored in the function pool) and then the line is stored in
the function pool.
If the CRP is at the top (zero), no lines were changed.
To capture data entered when END or RETURN was entered,
continue to issue TBDISPL requests with no panel name or
message-id specified, until the CRP is at zero. For each
request, a return code of 8 is issued.
In addition to the action described above, a function
command mayor may not have been originated by the user.
12 - The specified panel or message could not be found or the table
was not open.
20 - Severe error.
160
ISPF Dialog Management Services
Example: (See Appendix C, "Using the TBDISPL Service" on page 289 for
another exampl~ of TBDISPL use.)
Display the table TELBOOK using panel definition TPANEL2 to format the
display.
ISPEXEC TBDISPL TELBOOK PANEL(TPANEL2)
CALL ISPLINK('TBDISPL', 'TELBOOK "
'TPANEL2 I);
Chapter 6. Description of Services
161
TBEND - Close a Table without Saving
The TBEND service deletes the virtual storage copy of the specified
table, making it unavailable for further processing. The permanent copy
(if any) is not changed.
ISPEXEC
CALL
TBEND
table-name
ISPLINK ('TBEND', table-name);
table-name
Specifies the name of the table to be ended.
The following return codes are possible:
o-
Normal completion.
12 - Table is not open.
20 - Severe error.
Example: Delete the virtual storage copy table TELBOOK; do not change
any permanent copy (in the table library).
ISPEXEC TBEND TELBOOK
CALL ISPLINK('TBEND', 'TELBOOK I);
162
ISPF Dialog Management Services
TBERASE - Erase a Table
The TBERASE service deletes a table from the table output library. The
table output library must be allocated before invoking this service.
The table must not be open in WRITE mode when this service is invoked.
ISPEXEC
CALL
TBERASE
table-name [LIBRARY(library-name)]
ISPLINK ('TBERASE', table-name [,library-name]);
table-name
Specifies the name of the table to be erased.
library-name
Specifies the name of aDD, FILEDEF, or ISPDEF statement that
defines the library in which table-name exists. If this parameter
is omitted, the default is ISPTABL.
The following return codes are possible:
o-
Normal completion.
8
Table does not exist in the output library.
12 - Table in use; ENQ failed.
16 - Table output library not allocated.
20 - Severe error.
Example: Delete (erase) the table TELBOOK from the table library.
ISPEXEC TBERASE TELBOOK
CALL ISPLINK('TBERASE', 'TELBOOK ');
Chapter 6. Description of Services
163
TBEXIST - Determine if a Row Exists in a Table
The TBEXIST service tests for the existence of a specific row in a table
with keys.
The current contents of the key variables (dialog variables that
correspond to keys in the table) are used to search the table for the
row.
This service is not valid for non-keyed tables and causes the current
row pointer (CRP) to be set to the top.
ISPEXEC
CALL
TBEXIST
table-name
ISPLINK ('TBEXIST', table-name);
table-name
Specifies the name of the table to be searched.
The following return codes are possible:
o-
Normal completion; the CRP is positioned to the specified row.
8 - Keyed tables: the specified row does not exist; the CRP is
set to TOP (zero).
Non-keyed tables: service not possible; the CRP is set to TOP.
12 - Table is not open.
20 - Severe error.
Example: In the keyed table TELBOOK, test for the existence of a row
having a specific key value.
ISPEXEC TBEXIST TELBOOK
... if return code = 0 ... then the row exists ...
CALL ISPLINK('TBEXIST', 'TELBOOK ');
... if return code = 0 ... then the row exists ...
164
ISPF Dialog Management Services
TBGET - Retrieve a Row from a Table
The TBGET service fetches a row from the table.
For tables with keys, the table is searched for the row to be fetched.
The current contents of the key variables (dialog variables that
correspond to keys in the table) are used as the search argument.
For tables without keys, the row pointed to by the current row pointer
(CRP) is fetched.
The CRP is always set to point to the row that was fetched.
All variables in the row, including keys and extension variables (if
any), are stored into the corresponding dialog variables. A list of
extension variable names may also be retrieved.
ISPEXEC
CALL
TBGET
table-name
[SAVENAHE(var-name)]
ISPLINK ('TBGET', table-name [,var-name] );
table-name
Specifies the name of the table to be read.
var-name
Specifies the name of a variable into which a list of extension
variable names contained in the row will be stored. The list is
enclosed in parentheses, and the names within the list are
separated by a blank.
The following return codes are possible:
o-
Normal completion.
8 - Keyed tables: The row specified by the value in the key
variables does not exist; the CRP is set to TOP (zero).
Non-keyed tables:
the CRP was at TOP and remains at TOP.
12 - Table is not open.
16 - Variable value has been truncated or insufficient space was
provided to return all extension variable names.
20 - Severe error.
Chapter 6. Description of Services
165
Example: In the keyed table TELBOOK, for a row having a specific key
value, copy values from variables in that row to variables in the
function pool having names that match names of the variables in the row.
ISPEXEC TBGET TELBOOK
CALL ISPLINK('TBGET', 'TELBOOK I);
166
ISPF Dialog Management Services
TBMOD - Modify a Row in a Table
The TBMOD service unconditionally updates a row in a table.
For tables with keys, the table is searched for the row to be updated.
The current contents of the key variables (dialog variables that
correspond to keys in the table) are used as the search argument. If a
match is found, the row is updated. If a match is not found, a TBADD is
performed, adding the row to the end of the table.
For tables without keys, TBMOD is equivalent to TBADD.
The current row pointer (CRP) is always set to point to the row that was
updated or added.
The current contents of all dialog variables that correspond to columns
in the table (keys and names) are saved in the row.
Additional variables, not specified when the table was created, may also
be saved in the row. These "extension" variables apply only to this
row; not the entire table. Whenever the row is updated, the extension
variables must be respecified if they are to be rewritten.
ISPEXEC
CALL
TBMOD
table-name
[SAVE(name-list)]
ISPLINK ('TBMOD', table-name [,name-list] );
table-name
Specifies the name of the table to be updated.
name-list
Specifies a list of extension variables, by name, that are to be
saved in the row, in addition to the variables specified when the
table was created. See the section entitled "Invocation of
Services" for specification of name-lists.
The following return codes are possible:
o-
Normal completion. Keyed tables: Existing row
updated. Non-keyed tables: New row added to table.
8 - Keyed tables:
Keys did not match; new row added to the table.
12 - Table is not open.
20 - Severe error.
Chapter 6. Description of Services
167
Example: Update or add a row of variables in the table TELBOOK using
values from variables in the function variable pool.
ISPEXEC TBMOD TELBOOK
CALL ISPLINK('TBMOD', 'TELBOOK ');
168
ISPF Dialog Management Services
TBOPEN - Open a Table
The TBOPEN reads a permanent table from the table input library into
virtual storage, and opens it for processing. TBOPEN should not be
issued for temporary tables.
The table input library, specified by ddname ISPTLIB, must be
preallocated prior to invoking ISPF. ISPTLIB may specify a
concatenation of libraries. Refer to "Library Setup" in Chapter 4 for
additional information.
An ENQ is issued to ensure that no other user is currently accessing the
table. The ENQ applies only to the specified table (member) in the
table input library - not to the entire library. For the WRITE option,
it is an exclusive ENQ that remains in effect until the table is closed.
For the NOWRITE option, it is a shared ENQ that remains in effect only
during the time that the table is read into storage.
ISPEXEC
CALL
TBOPEN
table-name
[WRITE I NOWRITE]
ISPLINK ('TBOPEN', table-name [, 'WRITE' I 'NOWRITE'] );
table-name
Specifies the name of the table to be opened.
WRITE
Specifies that the table is being accessed for update. The updated
table may subsequently be saved on disk by use of the TBSAVE or
TBCLOSE service. This option is the default.
NOWRITE
Specifies read-only access. Upon completion of processing, the
virtual storage copy should be deleted by invoking the TBEND or
TBCLOSE service.
The following return codes are possible:
o -
Normal completion.
8 - Table does not exist.
12 - ENQ failed; table in use by another user or the current user.
16 - Table input library not allocated.
20 - Severe error.
Chapter 6. Description of Services
169
Example: Access (open) the table TELBOOK for updating.
ISPEXEC TBOPEN TELBOOK WRITE
CALL ISPLINK('TBOPEN', 'TELBOOK'
170
ISPF Dialog Management Services
'WRITE');
TBPUT - Update a Row in a Table
The TBPUT service conditionally updates the current row of a table.
For tables with keys, the current contents of the key variables (dialog
variables that correspond to keys in the table) must match the key of
the current row, pointed to by the current row pointer (CRP).
Otherwise, the update is not performed.
For tables without keys, the row pointed to by the CRP is always
updated.
If the update was successful, the CRP remains unchanged. It continues
to point to the row that was updated. The current contents of all
dialog variables that correspond to columns in the table, including key
variables, are saved in the row.
Additional variables not specified when the table was created, may also
be saved in the row. These "extension" variables apply only to the row;
not the entire table. Whenever the row is updated, the extension
variables must be respecified if they are to be rewritten.
ISPEXEC
CALL
TBPUT
table-name
[SAVE(name-list)]
ISPLINK ('TBPUT', table-name [,name-list] );
table-name
Specifies the name of the table to be updated.
name-list
Specifies a list of extension variables, by name, that are to be
saved in the row, in addition to the variables specified when the
table was created. See the section entitled "Invocation of
Services" for specification of name lists.
The following return codes are possible:
o-
Normal completion.
8 - Keyed tables: The key does not match that of the
current row; CRP set to TOP (zero).
Non-keyed tables:
CRP was at TOP and remains at TOP.
12 - Table is not open.
20 - Severe error.
Chapter 6. Description of Services
171
Example: Update a row, in the table TELBOOK, using values from variables
in the function variable pool.
ISPEXEC TBPUT TELBOOK
CALL ISPLINK ('TBPUT', 'TELBOOK I);
172
ISPF Dialog Management Services
TBQUERY - Obtain Table Information
The TBQUERY service returns information about a specified table, which
must be open prior to invoking this service. The number of key fields
and their names, as well as the number of all other columns and their
names may be obtained. The number of rows and the current row position
may also be obtained.
All of the parameters except for table-name are optional. If they are
all omitted, TBQUERY simply validates the existence of an open table.
ISPEXEC
TBQUERY
table-name
[KEYS(key-name)]
[NAMES(var-name)]
[ROWNUM(rownum-name)]
[KEYNUM(keynum-name)]
[NAMENUH(namenum-name)]
[POSITION(crp-name)]
CALL
ISPLINK ('TBQUERY', table-name [,key-name]
[ , var-name]
[ , rownum -name]
[ ,keynum -name]
[ ,namenum-name]
[,crp-name] );
table-name
Specifies the name of the table for which information is desired.
key-name
Specifies the name of a variable into which a list of key variable
names contained in the table will be stored. The list will be
enclosed in parentheses, and the names within the list will be
separated by a blank.
var-name
Specifies the name of a variable into which a list of variable
names in the table, specified with the NAMES keyword when the table
Chapter 6. Description of Services
173
was created, will be stored. The list will be enclosed in
parentheses, and the names within the list will be separated by a
blank.
rownum-name
Specifies the name of a variable into which the number of rows
contained in the table will be stored.
keyn um- name
Specifies the name of a variable into which the number of key
variables contained in the table will be stored.
namen um- name
Specifies the name of a variable into which the number of variables
in the table specified with the NANES keyword when the table was
created, will be stored.
crp-name
Specifies the name of a variable into which the current row pointer
(CRP) number for the table will be stored. If the CRP is
positioned to TOP, the relative row number returned is zero.
The parameters rownum-name, keynum-name, namenum-name, and
crp-name all specify the names of variables into which numeric
values will be stored. If these are defined variables (in a
program module), they may be either full word fixed variables or
character string variables.
Note:
The following return codes are possible:
o-
Normal completion.
12 - Table is not open.
16 - Not all keys or names returned because insufficient
space was provided.
20 - Severe error.
Example: For the keyed table TELBOOK:
•
In dialog variable QKEYS, store the names of key variables
•
In dialog variable QNANES, store the names of non-key variables
•
In dialog variable QROWS, store the number of rows
ISPEXEC TBQUERY TELBOOK KEYS(QKEYS) NAHES(QNANES) ROWNUN(QROWS)
CALL ISPLINK('TBQUERY', 'TELBOOK'
174
ISPF Dialog Management Services
'QKEYS'
'QNAMES'
'QROWS I);
TBSARG - Define a Search Argument
The TBSARG service establishes a search argument for scanning a table
using the TBSCAN service.
The search argument is specified in dialog variables that correspond to
columns in the table, including key variables. A value of null for one
of the dialog variables means that the corresponding table variable is
not to be examined during the search.
Generally, TBSARG is used prior to TBSCAN or TBDISPL operations to
establish search arguments for these operations. To set up a search
argument, set table variables in the function pool to nulls by using
TBVCLEAR. Next, set a value in each variable that is to be part of the
search argument. Then, issue TBSARG to establish this variable(s) as
the search argument to be used in subsequently requested TBSCAN or
TBDISPL operations.
Extension variables, only, may be included in the search argument by
specifying their names in the name-list parameter. The values of these
variables become part of the search argument. A null value in an
extension variable is a valid search argument and requires a
corresponding null variable in the matching row.
A search argument of the form AAA* means that only the characters up to
the ",';," are compared. This is called a generic search argument. A
generic search argument is specified by placing an asterisk in the last
non-blank position of the argument. Asterisks imbedded in the argument
are treated as data.
For example, to perform a generic search for a
row value of DATA*12, the generic search argument is:
DATA";'12,';,
The first asterisk is part of the search argument. The second asterisk
designates the argument to be a generic search argument.
Note: In a CLIST, the following technique may be used to set a
variable to a literal value that ends with an asterisk:
SET &X = AAA&STR C"'")
The position of the current row pointer (CRP) is not affected by the
TBSARG service.
TBSARG replaces all previously set search arguments for the specified
table.
Chapter 6. Description of Services
175
ISPEXEC
CALL
TBSARG
table-name
[ARGLIST(name-list)]
ISPLINK ('TBSARG', table-name [,name-list] );
table-name
Specifies the name of the table for which an argument is to be
established.
name-list
Specifies a list of extension variables, by name, whose values are
to be used as part of the search argument. See the section
entitled "Invocation of Services" for specification of name lists.
The following return codes are possible:
o -
Normal completion.
8 - All column variables are null and the name-list parameter
was not specified; no argument established.
12 - Table is not open.
20 - Severe error.
Example: Establish a search argument to be used by a TBSCAN operation of
the table TELBOOK. Assume that the argument values are contained in
function pool variables whose names are the same as table variables in
TELBOOK.
ISPEXEC TBSARG TELBOOK
CALL ISPLINK('TBSARG', 'TELBOOK I);
176
ISPF Dialog Management Services
TBSA VE - Save a Table
The TBSAVE service writes the specified table from virtual storage to
the table output library. The table output library must be allocated to
a ddname of ISPTABL before invoking this service. The table must be
open in WRITE mode.
Optionally, the table can be stored under a different name in the output
library.
TBSAVE does not delete the virtual storage copy of the table; the table
is still open and available for further processing.
Table output can be directed to a table output library other than the
library specified on the table output ISPTABL DD, FILEDEF, or ISPDEF
statement. (The library to be used must be allocated before table
services receives control.) Thus, an application can update a specific
table library. This is particularly useful for applications that need
to maintain a common set of tables containing their data.
ISPEXEC
TBSAVE
table-name
[NEWCOPYIREPLCOPY]
[NAHE(alt-name)]
[PAD(percentage)]
[LIBRARY(library-name)]
CALL
ISPLINK ('TBSAVE', table-name, [, 'NEWCOPY' I 'REPLCOPY']
[ ,al t-name]
[ ,percentage]
[,library-name]);
table-name
Specifies the name of the table to be saved.
NEWCOPY
Specifies that the table is to be written at the end of the output
library, regardless of whether an update in place would have been
successful. This insures that the original copy of the table is
not destroyed before a replacement copy has been written
successfully.
Chapter 6. Description of Services
177
REPLCOPY
Specifies that the table is to be rewritten in place in the output
library. If the existing member is too small to complete the
update in place successfully, or if a member of the same name does
not exist in the library, the complete table will be written at the
end of the output library.
If both the NEWCOPY and REPLCOPY keywords are omitted, a comparison
is made between the virtual storage size of the table and the
external size in the table output library. If there is
insufficient storage to write the table in-place, it is written at
the end of the table output library.
alt-name
Specifies an alternate name for the table. The table will be
stored in the output library with the alternate name. If another
table already exists in the output library with that name, it will
be replaced. If the table being saved exists in the output library
with the original name, that copy will remain unchanged.
percentage
Specifies the percentage of padding
of the table. The padding is added
only when the table is written as a
not increase the table size when an
space, based on the total size
to the total size of the table
new copy. This parameter does
update in place is performed.
Padding permits future updating in place, even when the table has
expanded in size. Should the table expand beyond the padding
space, the table is written at the end of the table output library
instead of updated in place.
This parameter must have an unsigned integer value. For call
invocation, it must be a fullword fixed binary integer.
The default value for this parameter is zero.
lib r a ry - n arne
Specifies the name of aDD, FILEDEF, or ISPDEF statement that
defines the output library in which table-name is to be saved.
this parameter is omitted, the default is ISPTABL.
The following return codes are possible:
0 - Normal completion.
12 - Table is not open.
16 - Table output library not allocated.
20
178
-
Severe error.
ISPF Dialog Management Services
If
Example: Write a table TELBOOK, previously opened and currently in
virtual storage, to the table library. Retain the copy in virtual
storage for further processing (do not close the table).
ISPEXEC TBSAVE TELBOOK
CALL ISPLINK('TBSAVE', 'TELBOOK I);
Chapter 6. Description of Services
179
TBSCAN - Search A Table
The TBSCAN service searches a table for a row with values that match an
argument list. The argument list may be established by use of the
TBSARG service, or specified in the name-list for TBSCAN.
The search is always in a forward direction, starting with the row after
the current row, and continuing to the end of the table. If a match is
. found, the row is retrieved and the current row pointer (CRP) is set to
that row. All variables in the row, including keys and extension
variables (if any), are stored into the corresponding dialog variables.
A list of extension variable names may also be retrieved.
Use of the name-list parameter is optional. If specified, it overrides
the search argument set by the TBSARG service for this search only. The
values of all variables specified in the name-list parameter become part
of the search argument. A value of the form AAA* means that only the
characters up to the ",;,," are compared. This is called a generic search
argument. A generic search argument is specified by placing an asterisk
in the last non-blank position of the argument. Asterisks imbedded in
the argument are treated as data. For example, to perform a generic
search for a row value of DATA*12, the generic search argument is:
The first asterisk is part of the search argument. The second asterisk
designates the argument to be a generic search argument.
Note: In a CLIST, the following technique may be used to set a
variable to a literal value that ends with an asterisk:
SET &X = AAA&STR(';',)
A null value requires a corresponding null value in the matching row.
If the name-list parameter is omitted, a search argument must have been
established by a previous TBSARG command. Otherwise, a severe error
occurs.
ISPEXEC
TBSCAN
table-name
[ARGLIST(name-list)]
[SAVENAHE(var-name)]
CALL
ISPLINK ('TBSCAN', table-name [,name-list]
[ , var-name] );
180
ISPF Dialog Management Services
table-name
Specifies the name of the table to be searched.
name-list
Specifies a list of variables, by name, whose values are to be used
as the search argument. See the section entitled "Invocation of
Services" for specification of name lists.
var-name
Specifies the name of a variable into which a list of extension
variable names contained in the row will be stored. The list will
be enclosed in parentheses, and the names within the list will be
separated by a blank.
The following return codes are possible:
° - Normal completion.
8 - Row does not exist, no match found; CRP set to TOP (zero).
12 - Table is not open.
16 - Variable value has been truncated or insufficient space
provided to return all extension variable names.
20 - Severe error.
Example: For the table TELBOOK:
•
Establish a search argument to be used by a TBSCAN operation of
table TELBOOK.
ISPEXEC TBSARG TELBOOK
CALL ISPLINKC'TBSARG', 'TELBOOK I);
•
Hove table TELBOOK's CRP to the row that fulfills the search
argument as specified in the TBSARG operation, above. Copy values
from variables in that row to function pool variables whose names
match those of the table variables.
ISPEXEC TBSCAN TELBOOK
CALL ISPLINKC'TBSCAN', 'TELBOOK I);
If the return code is 0, the row was found and values were copied
from the row variables to function pool variables.
Chapter 6. Description of Services
181
TBSKIP - Move the Row Pointer
The TBSKIP service moves the current row pointer (CRP) of a table
forward or backward by a specified number of rows, and then retrieves
the row to which it is pointing.
All variables in the row, including keys and extension variables (if
any), are stored into the corresponding dialog variables. A list of
extension variable names may also be retrieved.
ISPEXEC
TBSKIP
table-name
[NUMBER(number)]
[SAVENAME(var-name)]
CALL
ISPLINK ('TBSKIP', table-name [,number]
[ , var-name] );
table-name
Specifies the name of the table to be used.
number
Specifies the direction and number of rows to move the CRP. This
parameter must be a positive or negative integer. A positive
integer moves the CRP toward the bottom of the table; a negative
integer moves it toward the top. Zero is an allowable value that
results in retrieving the current row.
For call invocation, this parameter must be a fullword fixed binary
number.
If this parameter is omitted, the default value is 1.
var-name
Specifies the name of a variable into which a list of extension
variable names contained in the row is stored. The list is
enclosed in parentheses, and the names within the list are
separated by a blank.
182
ISPF Dialog Management Services
The following return codes are possible:
o -
Normal completion.
8 - CRP would have gone beyond the number of rows in the table
(this includes a table empty condition); CRP set to TOP (zero).
12
Table is not open.
16 - Variable value has been truncated or insufficient space
provided to return all extension variable names.
20 - Severe error.
Example: In the table TELBOOK, move the current row pointer (CRP) to the
next row. After the move, copy values from variables in that row to
variables in the function variable pool having names that are the same
as the names of the variables in the row.
ISPEXEC TBSKIP TELBOOK
CALL ISPLINK('TBSKIP', 'TELBOOK I);
Chapter 6. Description of Services
183
TBTOP - Set the Row Pointer to the Top
The TBTOP service sets the current row pointer (CRP) to the top of a
table, ahead of the first row.
ISPEXEC
CALL
TBTOP
table-name
ISPLINK (tTBTOpt, table-name);
table-name
Specifies the name of the table to be used.
The following return codes are possible:
o - Normal completion.
12 - Table is not open.
20 - Severe error.
Example: For the table TELBOOK, move the current row pointer (CRP) to
the row immediately before its first row.
ISPEXEC TBTOP TELBOOK
CALL ISPLINKCtTBTOP', 'TELBOOK t);
184
ISPF Dialog Management Services
TBVCLEAR - Clear Variables
The TBVCLEAR service sets dialog variables to nulls.
All dialog variables that correspond to columns in the table (specified
when the table was created) are cleared.
The contents of the table and the position of the current row pointer
(CRP) are not changed by this service.
ISPEXEC
CALL
TBVCLEAR
table-name
ISPLINK ('TBVCLEAR', table-name);
table-name
Specifies the name of the table to be used.
The following return codes are possible:
o-
Normal completion.
12 - Table is not open.
20 - Severe error.
Example: Clear dialog variables associated with the table TELBOOK to
nulls.
ISPEXEC TBVCLEAR TELBOOK
CALL ISPLINK('TBVCLEAR', 'TELBOOK I);
Chapter 6. Description of Services
185
VCOpy - Create a Copy of a Variable
This service is used only with call invocations.
The VCOpy service allows a program module to obtain a copy of dialog
variables. The copied data is in character string format, and may be
accessed in either "locate" or "move" mode.
The variable names may be specified as a single 8-character value, a
list enclosed in parentheses, or a name-list strueture. IIi LOCATE mode
-an array of pointers must be supplieo to receive the data address. An
array of ltngths must be supplied to receive the data lengths.
The VCOPY service automatically allocates storage for the data, and
returns the address and length of each variable to the caller. In MOVE
mode, an array of lengths must be supplied on input; its values map the
structured area which must be supplied to receive the data. The caller
first allocates storage for the data, and then invokes VCOPY, passing
the address and length of the storage area into which the data is to be
copied. The length array is then set with the data lengths.
As with other ISPF services, the search for each variable starts with
the defined area of the function pool, followed by the function's
implicit area, followed by the shared variable pool, and then the
profile pool. If a variable of the specified name is not found, VCOPY
issues a return code of 8.
ISPEXEC *This service does not apply to command procedures*
CALL
ISPLINK ('VCOPY', name-list, length-array, value-array
[,'LOCATE'I'MOVE'] );
name-list
Specifies an area containing the names of dialog variables to be
copied. The standard name-list format is used.
length-array
Specifies an array of fullword fields containing the lengths of the
data areas for the dialog variable values. (The array may consist
of a single item.) In move mode, each element of the array is set
by the caller to the output area size. In move mode or locate
mode, each element of the array is set by the service to the number
of bytes of data for the corresponding variable.
186
ISPF Dialog Management Services
value-array
In locate mode, specifies the name of an array that contains
pointers to fields into which the copied variables are placed.
(The array may consist of a single item.)
In move mode, specifies the name of a structure that is mapped by
the length array.
LOCATE
Specifies locate mode. The address of the copied value is returned
to the user invoking the service.
MOVE
Specifies move mode. The copied value is returned to the user
invoking the service.
The following return codes are possible:
o-
Normal completion.
8 - One or more variables do not exist.
16 - Truncation has occurred during data movement
(move mode only).
20 - Severe error.
Example: Copy the value in dialog variable QROWS to a field named
QROWSDATA in this PL/I program module. Perform the copy in move mode
(as opposed to locate mode). Variable L8 contains a value of 8.
CALL ISPLINK('VCOPY', 'QROWS ',L8, QROWSDATA, 'MOVE');
~.
'i
La
.
~
11
__ ,.. _.. _.,,, .. ..•. /J'
P
Chapter 6. Description of Services
187
VDEFINE - Define Function Variables
The VDEFINE service is used only with call invocations.
The VDEFINE service is invoked by a program to give ISPF the ability to
use dialog variable names to directly access variables within the
particular program module. In the call to VDEFINE, the program
specifies the format (character string, fixed binary, bit string, hex or
user-defined) and length of the variables.
(As described in "The
Function Pool for Programs" in Chapter 2, stacking of definitions for a
particular dialog variable may be achieved by successive calls to
VDEFINE for that dialog variable.)
When the VDEFINE service is called, ISPF enters the dialog variable
names into the function pool for the dialog function currently in
control. Dialog variables entered in the function pool by use of the
VDEFINE service are called defined variables to distinguish them from
implicit variables in the function pool.
(Refer to "The Function Pool
for Programs" in Chapter 2, for a further discussion of defined and
implicit variables.)
A list of dialog variables can be defined with a single call to the
VDEFINE service. The program variables that correspond to the dialog
variables defined to ISPF by VDEFINE must have the same format and
length and be in contiguous locations or defined as an array or
structure within the program. The program variable name passed to ISPF
must be the name of the first variable as defined in the program, the
name of the array, or the name of the structure. The format and length
specified in the call to VDEFINE are the format and length of each
individual variable.
EXIT ROUTINE: The dialog writer may specify an exit routine to define
dialog variables when program variables are in non-standard formats
(formats other than CHAR, FIXED, BIT, or HEX). When a variable is then
accessed by any ISPF service, the exit routine is invoked to perform any
conversion necessary between the program variable's format and the
character string format required for a dialog variable. Appendix
F, "VDEFINE Exit Routine," describes invocation, parameters used, and
return codes required for the exit routine.
ISPEXEC *This service does not apply to command procedures*
CALL
ISPLINK ('VDEFINE', name-list, variable, format, length
[,options-list] [,user-data]);
name-list
Specifies the symbolic name or name-list to be used by ISPF when
~referencing the specified variables.
188
ISPF Dialog Management Services
An asterisk specifies (in conjunction with the USER format keyword
described below) that the exit routine (whose address is specified
in the user-data parameter) is to be called for variables not found
in the function pool.
variable
Specifies the variable whose storage is to be used. If a name list
is passed, this storage contains an array of variables. The number
of names in the list determines the dimension of the array.
format
Specifies the data conversIon format.
The format parameters are:
CHAR
Character string. Within the variable, the data is
left-justified and padded on the right with blanks.
the default.
This is
No data conversion is performed when fetching and storing a
CHAR variable, nor is there any checking for valid characters.
Note: In PL/I, a character string to be used as a
dialog variable must be declared as fixed length,
because VDEFINE cannot distinguish varying length PL/I
strings.
FIXED
Fixed binary integer, represented by the characters 0-9.
Fixed variables that have a length of 4 bytes (fullword) are
treated as signed, represented by the absence or presence of a
leading minus sign (-). They may also have a null value,
which is stored as the maximum negative number (X'80000000').
Fixed variables that have a length of less than 4 bytes are
treated as unsigned. For these variables, a null value is
stored as binary zeros, and cannot be distinguished from a
zero value.
BIT
Bit string, represented by the characters 0 or 1. Within the
variable, the data is left-justified and padded on the right
with binary zeros.
HEX
Bit string, represented by the characters 0-9 and A-F. Within
the variable, the data is left-justified and padded on the
right with binary zeros.
USER
Specifies that the format is to be determined by the user.
Any conversion format is allowed. A conversion routine must
Chapter 6. Description of Services
189
be specified and is specified by naming it in the user-data
parameter, described below.
length
Specifies the length of the variable storage, in bytes. This
parameter must be a full word binary integer. The maximum length
for a FIXED variable is 4 bytes. The maximum length for other
types of variables is 32,767 bytes.
options-list
Specifies initialization of the defined storage and/or retention of
trailing blanks in variable data.
The options-list parameters are COpy and NOBSCAN (both may be
specified and are specified in the name-list format):
COpy
Specifies that any dialog variable with the same name may be
used to initialize the defined storage. The variable pools
are searched in the standard (function pool, shared pool,
profile pool) sequence.
NOBSCAN
Specifies that any trailing blanks in the variables are to
remain in the variables.
user-data
Specifies the storage location that contains the entry point
address of the conversion subroutine followed by any other data
that should be passed to the routine. This parameter is specified
whenever the USER parameter is specified.
The following return codes are possible:
o -
Normal completion.
B - Variable not found.
16 - Data truncation occurred.
20 - Severe error.
Example: Establish ISPF accessibility, using the name ZMSGNAME, to a
field named ZERRMSG in this PL/I module. The field is a character
string and is B bytes long. Program variable LB contains a value of B.
CALL ISPLINK(' VDEFINE', 'ZMSGNAME', ZERRMSG, 'CHAR', LB);
190
ISPF Dialog Management Services
VDELETE - Remove a Definition of Function Variables
The VDELETE service is used only with the call invocations.
The VDELETE service removes variable names, previously defined by the
program module, from the function pool. This service is the opposite of
VDEFINE.
ISPEXEC *This service does not apply to command procedures*
CALL
ISPLINK ('VDELETE', name-list);
name-list
Specifies the dialog variable names that are to be removed from the
function pool, or contains an asterisk.
An asterisk (*) specifies removal, from the function pool, of all
dialog variable names previously defined by the program module,
including exit routine definitions.
The following return codes are possible:
o -
Normal completion.
8 - At least one variable not found.
16 - Data truncation occurred.
20 - Severe error.
Example: Remove ISPF accessibility to PL/I program variable ZERRMSG that
was previously established by VDEFINE to be accessible using dialog
variable name ZMSGNAME.
CALL ISPLINK ('VDELETE', 'ZMSGNAME');
Chapter 6. Description of Services
191
VGET - Retrieve Variables from a Pool or Profile
The VGET
variable
with the
updated;
service copies values from dialog variable(s) in the shared
pool or the application profile to the function pool variables
same names. If a named function variable already exists, it is
if not, it is created and then updated.
ISPEXEC
VGET
CALL
name-list
[ASISISHAREDIPROFILE]
ISPLINK ('VGET', name-list [, 'ASIS' I 'SHARED' I 'PROFILE'] );
name-list
Specifies the names of one or more dialog variables whose values
are to be copied from the shared or profile pool to the function
~GvPOOI. The names are passed in the standard name-list format. See
\'J
"Invocation of Services" for specification of name lists.
--
\'
ASIS
--
--
Specifies that the variables are to be copied from the shared
variable pool, or, if not found there, from the profile pool.
SHARED
Specifies that the variables are to be copied from the shared
variable pool.
PROFILE
Specifies that the variables are to be copied from the application
profile. A shared pool variable with the same name is deleted,
even if it is not found in the profile pool.
The following return codes are possible:
o-
Normal completion.
8 - Variable not found.
16 - Translation error or truncation occurred during data movement.
20 - Severe error.
Example: In MVS or VMjSP, in a CLIST or EXEC, copy from the shared pool
to the function pool, values for variables whose names are listed in
variable VARLIST.
ISPEXEC VGET (&VARLIST ) SHARED
192
ISPF Dialog Management Services
In a PL/I program, VARLIST contains a list of variable names. Copy
values for these variables, from the shared pool to the function pool.
ISPLINK('VGET' VARLIST 'SHARED I);
Chapter 6. Description of Services
193
VPUT - Update Variables in a Pool or Profile
The VPUT service copies values from dialog variables in the function
pool to the shared pool or to the application profile. If a variable of
the same name already exists in the shared pool or the profile, it is
updated. If it does not exist, it is created and then it is updated.
ISPEXEC
CALL
VPUT
name-list [ASIS I SHARED I PROFILE]
ISPLINK ('VPUT', name-list [, 'ASIS' I 'SHARED' I 'PROFILE'] );
name-list
Specifies the names of one or more dialog variables whose values
are to be copied from the function pool to the shared or profile
pool. See "Invocation of Services" for specification of name
lists.
ASIS
Specifies that the variables are to be copied to the pool that they
already exist in or that they are to be copied to the shared pool,
if they are new. If the variables exist in both the shared and
profile pools, they are copied to the shared pool only.
SHARED
Specifies that the variables are to be copied to the shared
variable pool.
PROFILE
Specifies that the variables are to be copied to the application
profile. Any shared pool variable(s) of the same name(s) are
deleted.
The following return codes are possible:
o-
Normal completion.
8 - Variable not found.
16
Truncation has occurred while copying variables to
the application profile.
20 - Severe error.
194
ISPF Dialog Management Services
Example: In HVS orVH/SP, in a CLIST or EXEC, write variables, the names
of which are listed in the variable VPUTLIST, from the function variable
pool to the shared variable . . . p~~_:.._.
'. e1 blvv)'\<'
ISPEXEC VPUT
(&VPUTLIST~
SHARED------
rot>,A!'(
In a PL/I program, write variables, the names of which are listed in
program variable VPUTLIST, from the function variable pool to the shared
variable pool.
ISPLINK ('VPUT' VPUTLIST 'SHARED I);
Chapter 6. Description of Services
195
VREPLACE - Replace a Variable
The VREPLACE service is used only with call invocations.
The VREPLACE service allows a program module to update the contents of a
variable in the function pool.
The variable names may be specified as single 8-character values, a list
enclosed in parentheses, or a name-list structure. An array of lengths
must be supplied on input to map the area that contains the data for
each of the variables.
The variable to be updated can be the function's own defined variable
(if it exists) or an implicit variable associated with the function. If
the named variable does not exist, it is created as an implicit function
variable.
ISPEXEC *This service does not apply to command procedures*
CALL
ISPLINK ('VREPLACE', name-list, lengths, values);
name-list
Specifies the names of the dialog variables whose values are to to
be updated. The standard name-list format is used.
lengths
Specifies an array of values glvlng, for each corresponding
variable in the name-list, the number of bytes of the data to be
used in the updating. Each field in the array must be a fullword
binary integer.
values
Specifies (in the buffer mapped by the length array) the update
data to be used in the updating.
The following return codes are possible:
o -
Normal completion.
16 - Truncation has occurred during data movement.
20 - Severe error.
196
ISPF Dialog Management Services
Example: Copy the value of a field named QROWSDATAZ from this PL/I
program module to the function variable named QROWS. Before the copy
operation, if no variable with this name is found in the function pool,
create one giving it the name QROWS. Program variable L8 contains a
value of 8.
CALL ISPLINK('VREPLACE', 'QROWS "
L8, QROWSDATAZ);
\(1
t1,.,)
d~(
~
)
Chapter 6. Description of Services
197
VRESET - Reset Function Variables
The VRESET service is used only with call invocations.
The VRESET service allows a program module to reset its function pool
variables.
Any defined variables are removed from the function pool (as though
VDELETEs had been done); any implicit variables are also deleted.
ISPEXEC *This service does not apply to command procedures*
CALL
ISPLINK ('VRESET');
The following return codes are possible:
o-
Normal completion.
20 - Severe error.
Example: Remove ISPF accessibility to all PL/I program variables.
CALL ISPLINK('VRESET');
198
ISPF Dialog Management Services
CHAPTER 7. PANEL AND MESSAGE DEFINITION AND SKELETON FORMATS
This chapter describes the syntax for defining panels, messages, and
file tailoring skeletons. If ISPF/PDF is installed, consider using its
modeling facilities to assist in entering panel definitions (see
ISPF/PDF Reference).
PANEL DEFINITIONS
ISPF panel definitions are stored in a panel library and are displayed
by means of the SELECT, DISPLAY, or TBDISPL service. Each panel
definition is referenced by its name, which is the same as the member
name in the library.
Panel definitions are created or changed by editing directly into the
panel library; no compile or preprocessing step is required.
Each panel definition consists of up to five sections:
1.
Attribute section (optional) - defines the special characters that
are used in the body of the panel definition to represent attribute
(start of field) bytes. Default attribute characters are provided,
but may be overridden.
2.
Body (required) - defines the format of the panel as seen by the
user, and defines the name of each variable field on the panel.
3.
Model section (table display panels only) - defines the format of
each line of scrollable data. This section is required for table
display panels, and is invalid for other types of panels.
4.
Initialization section (optional) - specifies the initial processing
that is to occur prior to displaying the panel. This section is
typically used to define how variables are to be initialized.
5.
Processing section (optional) - specifies processing that is to
occur after the panel has been displayed. This section is typically
used to define how variables are to be verified and translated.
The panel definition is always ended with an )END statement, regardless
of the sections included in the definition.
Chapter 7. Panel and Message Definition and Skeleton Formats
199
The sections must appear in the order listed above.
delineated by the following statements:
)ATTR
)BODY
)MODEL
)INIT
)PROC
)END
-
Th~
sections are
start of attribute section
start of body section
start of model section (applies to table display panels only)
start of initialization section
start of processing section
end of panel definition
The discussion of panels is arranged as follows:
•
The formatting guidelines, which indicate the placement of panel
elements.
•
A discussion of each section of the panel, in the order in which
they appear on the panel. (The model section is described with
table display panels, since it is unique to that type of panel.)
•
A discussion of how panel processing is done.
•
The rules and restrictions regarding the syntax of statements,
variable names, and keywords.
•
A discussion of special panel types: menus, help/tutorials, and
table displays.
Formatting Guidelines
This section presents general guidelines for panel design.
Generally, in any panel definition, the first three displayable lines
include system-defined (default) areas for the display of messages, a
command/option field, and a scroll field. Location of the message areas
and command field may be overridden, see "Panel Body Section."
Following are suggestions for formatting the first three lines of a
panel body:
line 1
Title
line 2
Command/Option
Short Message
I
IScroll
I
line 3
Long Message
Line 1 should contain a title indicating the function being performed
or, where appropriate, should display information critical to that
function. The right-hand 24 characters of line 1 should not contain
200
ISPF Dialog Management Services
critical information if short messages are to be used in the default
short message area.
If short messages are used, they should provide a brief indication of:
•
Successful completion of a processing function, or
•
Error conditions (accompanied by audible alarm).
Short messages temporarily overlay whatever information is currently
displayed in the right-hand end of the first line, and are removed from
display on the next interaction. (The original information is
redisplayed when the message is removed.)
Short messages should be used either consistently throughout the
application, or not at all.
For table display, the short message area contains an indication of
current row/column positions, except when overlaid by a
function-requested message. The row/column indication is automatically
generated by the TBDISPL service, and replaces whatever was in the panel
definition in that area.
Line 2 generally contains the command field. This same field should be
used for option entry on menus. The command field, when the first input
field on the panel or when identified by using keyword CMD in the panel
body section, may be named using any valid variable name. However, the
name ZCMD is generally used.
(Cursor placement while viewing a panel differs between use of the name
ZCMD and other names. When ZCMD is used and cursor placement is not
explicitly specified, ISPF will skip over the command field - when blank
- to place the cursor on a following input field. When a name other
than ZCMD is used, a blank command field is not skipped over when
placing the cursor during display.)
For table display, edit, and browse panels, the scroll field should be
at the right-hand end of line 2, following the command/option area. The
scroll field must be the second input field in the panel definition, and
must be four characters in length. A scroll field is not meaningful for
other types of panels, and should be omitted from them.
Line 3 should generally be left blank, so that long messages do not
overlay any significant information. An exception to this rule might be
made in the case of table display panels, to allow as much scrollable
data as possible to fit on the screen. Refer to "Panel Body Section"
for a discussion of how to specify the information in the first three
lines of the panel.
Note: The command input field should not be located on line 3,
the line on which long messages display, because when display of a
long messag~ is superimposed on the command line, results are
unpredictable.
Chapter 7. Panel and Message Definition and Skeleton Formats
201
Following are additional suggestions for designing panels:
•
Avoid overly cluttered panels. Split up "busy" panels into two or
more simple panels that have less information and are easier to
read.
•
Do not use the last available line in a panel body. For example, if
the dialog may be used on 24-line terminals, limit the body to 23
lines or less. The reason for this is that in split screen mode the
maximum length of a logical screen is one less than the length of
the physical screen.
•
Place important input fields near the top of the panel and less
important fields (especially optional input fields) further down,
for two reasons: It is easier to move the cursor down than up, and
in split screen mode the bottom of the panel may not be visible
unless the user repositions the split line.
Note: Place the command line near the top of the panel. If
the command line is near the bottom, and the end user enters
split screen mode, the command line may not be visible on the
screen and, therefore, the user may not be able to continue
processing the dialog.
•
Where practical, align fields vertically on a panel, especially
input fields. Group related input fields under a common heading.
Minimize use of multiple input fields on the same line, so that the
NEW LINE key may be used to skip from one input field to the next.
•
Use visual signals to indicate particular types of fields, such as
arrows to indicate input fields, and colons to indicate variable
information that is protected. As examples:
FILE NAME ===> (arrow signals an input field)
EMPLOYEE SERIAL:
123456 (colon signals a protected field)
In any case, be consistent. Arrows, colons, and other visual
signals are very confusing if used inconsistently.
•
Use highlighting sparingly. Too many intensified fields result in
visual confusion. Again, be consistent. Highlight the same type of
information on all panels.
Syntax Rules and Restrictions
This section describes the syntax to be used in panel definition
statements.
202
ISPF Dialog Management Services
General Rules
The following general syntax rules apply:
•
All statements, variable names,and keywords must be coded in
uppercase. Values that are interpreted by the DISPLAY service, such
as INTENS(LOW) , must also be in uppercase. Values assigned to
dialog variables and text in the panel body need not be in
uppercase.
•
Input and output fields defined in the body section may not exceed
255 bytes in length.
•
All header statements, such as ) ATTR , )BODY, etc., must be coded
exactly as shown, starting in column 1. Statements following the
header need not begin in column 1.
•
If a section is omitted, the corresponding header statement is also
omitted. The )BODY header may be omitted if the entire attribute
section is omitted and there is no need to override the default
attribute bytes by using a keyword on the )BODY statement.
•
An )END statement is required as the last line of each panel
definition.
Blanks and Comments
The following rules apply to the use of blanks and comment statements:
•
In the attribute section, the attribute character and all keywords
that follow must be separated by one or more blanks. At least one
keyword must follow the attribute character on the same line.
Keywords may be continued on succeeding lines.
•
In the initialization and processing sections, mUltiple statements
may occur on the same line, separated by one or more blanks.
Statements may not be split between lines, except that listed items
within parentheses may be continued on succeeding lines (see below).
•
One or more blanks may optionally occur on either side of an equal
sign (=) or a not-equal operator (,=). Embedded blanks may not
occur in the not-equal operator: ", =" is invalid.
•
One or more blanks may optionally occur on either side of
parentheses (except that a blank may not follow the right
parenthesis that begins a header statement). The following are all
equivalent:
INTENS(LOW)
INTENS (LOW)
INTENS ( LOW )
Chapter 7. Panel and Message Definition and Skeleton Formats
203
One or more blanks must follow the closing parenthesis to separate
it from the next statement or keyword.
•
Comments may be coded in the attribute, initialization, and
processing sections. Comments must be enclosed with the comment
delimiters, /* and */. The comment must be the last item on the
line (i.e., additional keywords or statements may not follow the
comment on the same line). A comment may not be continued on the
next line. For multi-line comments, the comment delimiters must be
used on each line.
•
In NVS and VH/SP, blank lines may occur anywhere within the
attribute, initialization, and processing sections.
•
In NVS, VN/SP, and VSE/AF 2.1, you can use blank lines in a panel
definition. In VSE/AF 1.3.5, however, blank lines cannot be used
in a panel definition. For VSE/AF 1.3.5, you can cause a blank line
to appear in a panel display by providing, in the panel definition,
a line that is blank except for a field delimiter character, such as
"+", in the first position.
Lists
The following rules apply to items in lists:
•
Listed items within parentheses may be separated by commas or one or
more blanks. This includes paired values within a TRANS statement.
For example, the following are equivalent:
TRANS (&XYZ 1,A 2,B 3,C NSG=xxxx)
TRANS (&XYZ 1 A 2 B 3 C t ZCND
%
%ENPLOYEE SERIAL: &EMPSER
+
+
~YPE OF CHANGE%===> TYPECHG +
(NEW, UPDATE, OR DELETE)
+
+
ENPLOYEE NAME:
+
LAST
~~===> LNAME
+
+
FIRST ~~===> FNAME
+
+
INITIAL%===> 1+
+
+ HOME ADDRESS:
+
LINE 1 ~~===> ADDRI
+
LINE 2 %===> ADDR2
+
+
+
LINE 3 %===> ADDR3
+
+
LINE 4 %===> ADDR4
+
+
+
HOME PHONE:
+
AREA CODE
%===>_PHA+
+
LOCAL NUMBER%===>_PHNUM
+
+
)END
Figure 24.
212
Sample Panel Definition
ISPF Dialog Management Services
+
---------------------------CO~mAND
===>
ENPLOYEE RECORDS
------------------------------
EMPLOYEE SERIAL: 123456
TYPE OF CHANGE
===>
(NEW, UPDATE, OR DELETE)
EMPLOYEE NAME:
LAST
===>
FIRST
=::.:=>
INITIAL ===>
ADDRE SS :
LINE 1 ===>
LINE 2 ===>
LINE 3 ===>
LINE 4 ===>
HO~IE
HOME PHONE:
AREA CODE
LOCAL NUMBER
Figure 25.
===>
===>
Sample Panel - When Displayed
Model Section
The model section is used only with table display panels and defines how
each table row is to be formatted. Because the model section is unique
to table display panels, it is discussed in "Table Display Panels."
I nitialization and Processing Sections
The initialization and processing sections are discussed together
because the same statements may be used in both, although typically
certain statements are used only in the initialization section while
others appear only in the processing section.
The initialization section specifies the initial processing that is to
occur prior to displaying the panel. It begins with the )INIT header
statement and ends with either the )PROC or )END header statement.
Chapter 7. Panel and Message Definition and Skeleton Formats
213
The variables that are displayed in the panel body reflect the contents
of the corresponding dialog variables after the )INIT section has been
processed, just prior to display of the panel. The input fields are
automatically stored into the corresponding dialog variables immediately
following display and prior to processing the )PROC section.
The processing section specifies additional processing that is to occur
after the panel has been displayed. It begins with the )PROC header
statement and ends with the )END statement.
Statement Formats
The same statements may be used in the initialization and processing
sections, although certain statements are typically used only in the
initialization section and others only in the processing section.
There are four types of statements that may be used in these sections:
assignment, IF, VER (verify), and VPUT. Two built-in functions may also
be used: TRUNC (truncate) and TRANS (translate). These functions may
appear on the right-hand side of an assignment statement.
The following types of data references may appear within these
statements:
•
Dialog variable - a name preceded by an ampersand (&).
•
Control variable - a name preceded by a period (.) -- see the
section entitled "Control Variables."
•
Literal value - a character string
or period. A literal value may be
must be enclosed in apostrophes if
or a period, or if it contains any
characters:
Blank < ( +
I ) ;
~
-
> :
not beginning with an ampersand
enclosed in apostrophes ('). It
it begins with a single ampersand
of the following special
=
A literal may contain substitutable variables, consisting of a
dialog variable name preceded by an ampersand (&). The name and
ampersand are replaced with the value of the variable prior to
processing the statement. A double ampersand may be used to specify
a literal character string starting with (or containing) an
ampersand. See "Syntax Rules and Restrictions."
In the description of statements and built-in functions that f~llows, a
"variable" may be either a dialog variable or a control variable. A
"value" may be either type of variable or a literal value.
variable
= value
This is an assignment statement. Assignment statements may be used in
the )INIT section to set the contents of dialog variables prior to the
automatic initialization of variables in the panel body. Assignment
214
ISPF Dialog Management Services
statements may also be used in the )PROC section, typically to set the
contents of dialog variables that do not correspond to fields in the
panel body. For example:
&A
= ' ,
&COUNT = 5
= "'SYS1.MACLIB'"
&DSN
&BB
= &C
The first example sets variable A to blanks. The second example sets
variable COUNT to a literal character string (the number 5). The third
eXdmple sets variable "DSN to a character string that begins and ends
with an apostrophe (see "Syntax Rules and Restrictions"). The fourth
example sets variable BB to the contents of anothe variable, C. The
literal ' , represents a single blank. To define a null, you must use
the &Z literal.
TRUNC (variable, value)
1
4:)~
r
;'
2 0 ';)
This built-in function may occur on the right side of an assignment
statement to cause truncation. The first parameter inside the
parentheses specifies the variable to be truncated. The value may be a
numeric quantity indicating the length of the truncated result, or any
special character indicating truncation at the first occurrence of that
character. For example:
&A = TRUNC (&XYZ,3)
&INTEG = TRUNC (&NUMB,'. ')
In the first example, the contents of variable XYZ are truncated to a
length of three characters and stored in variable A. (Variable XYZ
remains unchanged.) In the second example, the contents of variable
NUMB are truncated at the first occurrence of a period and stored in
variable INTEG. (Variable NUMB remains unchanged.) If NUMB contains
"3.2.4", INTEG contains "3".
The control variable .TRAIL contains the "remainder" following a TRUNC
operation. When the contents of a variable are truncated to a specified
length, all remaining characters are stored in .TRAIL. If the contents
of a variable are truncated at the first occurrence of a special
character, the remaining characters following the special character are
stored in .TRAIL. The special character, itself, is not stored nor is
it retained in ZCMD, the command field. For example:
)PROC
&AAA = TRUNC (&ZCMD, '. ')
&BBB = .TRAIL
If variable ZCMD contains "9.4.6", variable AAA contains "9" and the
.TRAIL control variable and the variable BBB contains "4.6".
TRANS (variable
value, value ... [MSG=value] )
Chapter 7. Panel and Message Definition and Skeleton Formats
215
.."......-'-1-.1
..::-' l<"~
""..Y., .... ""'~>\~M"'«"""''''''''"
~"'h"
"""
~
...'''.
."~.,
""~"'."
....,.,
""
,
. ",.,,""'P
'''-",
/
/./1//"
f
'I
/
I
i'
(
This built-in function may occur on"he right side of an assignment
statement to cause trans lation. The(r-rrst pararne~~ ins ide the
parentheses specifies th:"X,~~£lJ~~,,_.t.Q:!I!:::!!l1'i'rS"t·a:t·ea. This is followed
by paired values. The("first value in each pa'"1:) indicates a possible
;~! U:x~!p ~:~ variab Ie, 7t,secc;na(~nifrcates the trans Iated result.
&REPL = TRANS (&NOD Y, YES N, NO)
~r,~'--~--~'"
)\
~~ ~~)
value of variable rnTIr is translated, and the result is
stored in variable REPL. (Variable NOD remains unchanged.) The
translation is as follows: If the current value of NOD is "Y", it is
translated to "YES". If the current value is "N", it is translated to
"NO". If the current value is anything else (neither "y" nor "N"), it
is translated to blank.
----~~~ffrrent
The anything-else condition may be specified by using an asterisk in the
last set of paired values. For example:
&REPL = TRANS (&NOD
&REPL = TRANS (&NOD
~'. , , ? ' )
In the first example, if the current value of MOD does not match any of
the listed values, a question mark is stored in variable REPL. In the
second example, if the current value of MOD does not match any of the
listed values, the value of MOD is stored untranslated into REPL.
Another option for the anything-else condition is to cause a message to
be displayed to the user, by specifying MSG=value, where "value" is a
message-id. Typically, this technique is used in the processing section
of the panel description. For example:
&DISP = TRANS (&D 1,SHR 2,NEW 3,MOD MSG=ISPG001)
The contents of variable D are translated as follows: "1" is translated
to "SHR", "2" is translated to "NEW", and "3" is translated to "MOD".
If none of the listed values is encountered, message ISPG001 is
displayed. Message ISPG001 may be an error message indicating that the
user has entered an invalid option.
For both the TRANS and TRUNC built-in functions, the source and
destination variables may be the same. Figure 26 shows an example in
which it is assumed that variable TYPECHG was originally set (in the
dialog function) to a single character "N", "U", or "D". In the )INIT
section, TYPECHG is translated to "NEW", "UPDATE", or "DELETE" and
stored into itself prior to display of the panel. In the )PROC section,
TYPCHG is truncated back to a single character.
Use of this technique allows the end user to change the valid options
for TYPECHG by simply overtyping the first character.
216
ISPF Dialog Management Services
Finally, the TRANS and TRUNC built-in functions may be nested.
example:
For
&XYZ = TRUNC( TRANS(&A ---),1 )
&ZSEL = TRANS( TRUNC(&ZCHD,'. ') --- )
In the first example, the current value of variable A is translated.
The translated value is then truncated to a length of one, and the
result is stored in variable XYZ. In the second example, the contents
of variable ZCHD are truncated at the first period, the truncated value
is then translated, and the result is stored in variable ZSEL.
)BODY
%---------------------------~~Co~mAND===>
ZCMD
EMPLOYEE RECORDS
------------------------------
+
+
%EHPLOYEE SERIAL: &EHPSER
+
+ TYPE OF CHANGE~~===> TYPECHG + (NEW, UPDATE, OR DELETE)
+
+ EHPLOYEE NAME:
+
LAST
%===> LNAME
+
+
FIRST %===> FNAME
+
+
INITIAL%===> I+
+
+ HOHE ADDRESS:
+
LINE 1 %===> ADDR1
+
+
LINE 2 %===> ADDR2
+
+
LINE 3 %===> ADDR3
+
+
LINE 4 %===> ADDR4
+
+
+
HOHE PHONE:
+
AREA CODE
~~===> PHA+
+
LOCAL NU~1BER PHNUt-l
+
+
)INIT
&TYPECHG = TRANS (&TYPECHG N,NEW U,UPDATE D,DELETE)
)PROC
&TYPECHG = TRUNC (&TYPECHG,1)
)END
Figure 26.
Sample Panel with TRANS and TRUNC
Chapter 7. Panel and Message Definition and Skeleton Formats
217
IF (variable
operator
value [,value ... ] )
The IF statement may be used to test the current value of a variable.
The parentheses contain a conditional expression, in which the operator
may be either equal (=) or not equal (~=). One or more values may be
specified. For example:
IF
IF
IF
IF
(&DSN = ' ')
(&OPT = 1,2,5)
(&A ~= &B)
(&A ~= AAA,BBB)
The first example is true if variable DSN is null or contains blanks.
The second is true if variable OPT contains any of the literal values 1,
2, or 5. The third is true if the value of variable A is not equal to
the value of variable B. The fourth is true if variable A is not equal
to either of the literal values AAA or BBB, which is the same as saying
that variable A is not equal to AAA and not equal to BBB.
The IF statement is indentation sensitive. If the conditional
expression is true, then processing continues with the next statement.
Otherwise all following statements are skipped up to the next statement
that begins in the same column as the IF or in a column to the left of
the IF. Example:
IF (&XYZ = ' ')
&A = &B
&B = &PQR
IF (&B = YES)
&C = NO
&D = &ZZZ
In this example, processing skips to statement &D = &ZZZ from either IF
statement if the stated condition is false.
Figure 27 shows a sample panel with an IF statement. The current value
of variable PHA is tested for blank. If it is blank, PHA is initialized
to the literal value 301.
218
ISPF Dialog Management Services
)BODY
%---------------------------- ENPLOYEE RECORDS
------------------------------
%COHHAND===> ZCND
+
+
%EMPLOYEE SERIAL: &ENPSER
+
+
TYPE OF CHANGE%===> TYPECHG +
(NEW, UPDATE, OR DELETE)
+
+
+
+
+
EHPLOYEE NANE:
LAST
~~===> LNA~lE
FIRST %===> FNANE
INITIAL~o===> 1+
+
+
+
+
+
+
+
+
HOME ADDRESS:
LINE 1 %===>
LINE 2 ~~===>
LINE 3 ~~===>
LINE 4 ~~===>
ADDR1
ADDR2
ADDR3
ADDR4
+
+
+
+
+
+
+
+
+
HONE PHONE:
AREA CODE
%===> PHA+
LOCAL NUMBER%===> PHNUM
)INIT
IF (&PHA = ' ')
&PHA = 301
&TYPECHG = TRANS (&TYPECHG
)PROC
&TYPECHG
= TRUNC
+
N,NEW
U,UPDATE
D,DELETE)
(&TYPECHG,l)
)END
Figure 27.
Sample Panel with IF Statement
VER (variable [, NON BLANK], keyword [, value ... ] [MSG=value] )
The verify statement, VER, may be used to check that the current value
of a variable meets some criteria. Typically, it is used in the
processing section to verify the contents of input fields entered by the
user.
The first parameter inside the parentheses specifies the variable to be
checked. The second parameter is NONBLANK, a keyword specifying that
the variable is to contain a value and not a blank. The number and
meaning of the values that follow the keyword are dependent upon the
type of verification.
Chapter 7. Panel and Message Definition and Skeleton Formats
219
If the variable does not meet the verification criteria, a message is
displayed. The message may be specified in the NSG=value parameter,
where "value" is a message-id. If no message is specified, an
ISPF-supplied message is displayed, based on the type of verification.
Even if a VER fails, processing of the panel INIT and PROG sections is
performed.
ISPF provides several types of verification, as described below.
In
these descriptions, "xxx" is used to represent the variable name. The
values that must follow the verification keyword, if any, are also
indicated.
•
VER (xxx,NONBLANK) - The variable is required and must not be blank.
NONBLANK (or the abbreviated form, NB) may be specified with another
type verification (ALPHA, NUH, HEX, etc.) by specifying the NONBLANK
keyword first (after the variable name but before the other
keyword). Example:
VER (&A,NB,PIGT,NNN-NNNN)
is equivalent to:
VER (&A,NONBLANK)
VER (&A,PIGT,NNN-NNNN)
•
VER (xxx,ALPHA) - The variable must contain all alphabetic
characters (A-Z, #, $, or @).
•
VER (xxx,NUM) - The variable must contain all numeric characters
(0-9).
•
VER (xxx,HEX) - The variable must contain all hexadecimal characters
(0-9, A-F).
•
VER (xxx,BIT) - The variable must contain all 'O's and 'l's.
•
VER (xxx,FILEID) - The variable must contain a valid fileid (in CMS
syntax), which is any value that is valid with a LISTFILE command.
The file name and file type (if given) must be one to eight
alphameric characters (A-Z, 0-9, #, $, @, the filemode must be a
single letter (A-Z), optionally followed by a single digit (0-9).
In addition, one or more fields of the file identifier may be an
asterisk (*) or may be a string of characters followed by an
asterisk (e.g., tr*).
•
VER (xxx,PIGT,string) - The variable must contain characters that
match the corresponding type of character in the picture string.
The "string" parameter may be composed of the following characters:
C
A
N
9
220
-
any
any
any
any
character
alphabetic character (A-Z, #, $, or @)
numeric character (0-9)
numeric character (same as "N")
ISPF Dialog Management Services
x -
any hexadecimal character (0-9, A-F)
In addition, the string may contain any special character (except #
Example:
$, or @), which represents itself.
VER (xxx,PICT, 'A/NNN')
The value must start with an alphabetic character, followed by a
slash, followed by three numeric characters.
Note: The length of the variable value and the picture
string must be the same. Trailing blanks are not included.
•
VER (xxx,NAHE) - The variable must contain a valid name, following
the rules of member names (up to eight alphameric characters of
which the first must be alphabetic).
•
VER (xxx,DSNAME) - The
name. A data set name
character, @, #, $, or
either alphameric or a
variable must contain a valid TSO data set
qualifier must begin with an alphabetic
a period. The remaining characters must be
hyphen (-).
Note:
ISPF Dialog Hanager does not take the length of the
actual TSO prefix into account when the panel user specifies a
data set name without quotes. It checks that the length of
the variable is no greater than 42 characters.
•
VER (xxx,RANGE,lower,upper) - The variable must be numeric, and its
value must fall (inclusively) within the specified lower and upper
limits.
Note: The length of the specified variable is limited to 16
digits. Further, the lower and upper parameters may consist
of no more than 16 digits each.
•
VER (xxx,LIST,value1,value2, ... ) - The variable must contain one
of the listed values.
For all tests except NONBLANK, a blank value is acceptable.
the user enters a value (or leaves a non-blank initial value
it must conform to the specified condition. But if the user
input field blank, the field will pass any verification test
NONBLANK.
That is, if
unchanged) ,
leaves an
except
Figure 28 shows a sample panel with VER statements to verify that
information entered by the user meets the following criteria:
•
The truncated value of TYPECHG is "N", "U", or "D".
•
The three name variables (LNAME, FNAME, and I) contain all
alphabetic characters.
•
The PHA (area code) field contains all numeric characters.
Chapter 7. Panel and Message Definition and Skeleton Formats
221
•
The PHNUM (local number) field contains three numeric characters,
followed by a hyphen, followed by four numeric characters.
For the TYPECHG test, a message-id has been specified in the event that
the test fails. In all the other cases, an ISPF-provided message will
be displayed if the variable fails the verification test.
)BODY
%---------------------------- EMPLOYEE RECORDS
-----------------------------%COHHAND===> ZCMD
+
+
%EMPLOYEE SERIAL: &EMPSER
+
+ TYPE OF CHANGE%===>_TYPECHG + (NEW, UPDATE, OR DELETE)
+
+ EMPLOYEE NAME:
+
LAST
%===> LNAME
+
+
FIRST %===> FNAME
+
+
INITIAL%===> I+
+
+ HOME ADDRESS:
+
LINE 1 %===> ADDR1
+
+
LINE 2 %===> ADDR2
+
+
LINE 3 %===> ADDR3
+
+
LINE 4 %===> ADDR4
+
+
+ HOME PHONE:
+
AREA CODE
%===> PHA+
+
LOCAL NUl'1BER~~===> _ PHNUM
+
+
)INIT
IF (&PHA = ' ')
&PHA = 301
&TYPECHG = TRANS (&TYPECHG N,NEW U,UPDATE D,DELETE)
)PROC
&TYPECHG = TRUNC (&TYPECHG,l)
VER (&TYPECHG,LIST,N,U,D,MSG=EMPX210)
VER (&LNAME,ALPHA)
VER (&FNAME,ALPHA)
VER (&I,ALPHA)
VER (&PHA,NUM)
VER (&PHNUM,PICT, 'NNN-NNNN')
)END
Figure 28.
222
Sample Panel with Verification
ISPF Dialog Management Services
VPUT
name-list
[AS I S I SHARED I PROF I LE]
While variables entered from a panel are automatically stored in the
function variable pool, variables can be stored in the shared and
profile variable pools by VPUT statements used in the )INIT or )PROC
sections of the panel definition. For example~
)PROC
VPUT (XYZ ABC) PROFILE
This coding causes current values for variables XYZ and ABC to be stored
in the profile pool by a VPUT operation.
The syntax for the VPUT statement is the same as that for the VPUT
service when it is invoked from a CLIST or EXEC 2 except that the
ISPEXEC command verb is omitted. (Refer \0 Chapter 6, "Description of
Services" for a description of the VPUT parameters).
Control Variables
Control variables are used to control and test certain conditions
pertaining to the display of a panel. The control variables are
described below:
.CURSOR Nay be set in the initialization section to control the
/
7., 1,.,(p
initial placement of the cursor. Its value must be a
character string that matches a field name in the panel body.
For example:
.CURSOR = DSN
causes the cursor to be placed at the beginning of field DSN.
This variable is automatically set to the field last
referenced whenever .NSG is set explicitly or indirectly by
TRANS or VER statements .
. HELP
May be set in the initialization section to establish a
tutorial (help) panel to be displayed if the user enters the
HELP command. For example:
.HELP = ISPTE
causes tutorial page ISPTE to be displayed when the user
enters the HELP command .
. MSG
May be set to a message-id, typically in the processing
section, to cause a message to be displayed. For example:
.NSG = ISPE016
This variable is automatically set by use of the MSG=value
keyword on a TRANS (if there is no match with the listed
values) or a VER statement (if the verification fails).
Chapter 7. Panel and Message Definition and Skeleton Formats
223
.RESP
Indicates "normal" or "exception" response on the part of the
user. It is always set to "ENTER" (normal response) unless
the user enters an END or RETURN command, in which case it is
set to "END". It may be tested in the processing section to
determine the user's response. For example:
IF (.RESP = END)
This variable may be set in the initialization section to
simulate a user response. In this case, the panel is not
displayed but is processed as though the user had pressed
ENTER or entered an END command without entering any data.
This variable may be set in a panel processing section to
force an END or ENTER response. This may be particularly
useful if a verification has failed (or .MSG set) and it is
desired that the panel be redisplayed with the message even if
the user entered END or RETURN.
.TRAIL
Contains the "remainder" following a truncate (TRUNC)
operation. If the contents of a variable are truncated to a
specified length, all remaining characters are stored in
.TRAIL. If the contents of a variable are truncated at the
first occurrence of a special character, the remaining
characters following the special character are stored in
.TRAIL .
. ZVARS
May be set in the initialization section to a list of variable
names that correspond to "z" placeholders in the body and/or
model lines. See "z Variables as Field Name Placeholders."
The control variables are automatically reset (set to blank) when the
panel display service first receives control. If .MSG and .CURSOR are
still blank after processing of the initialization section, they are set
to the values passed by the calling sequence (if any) for an initial
message or cursor position. Under certain conditions, processing of the
initialization section is bypassed. See "Processing Considerations."
Once . CURSOR, .MSG, and .RESP have been set non-blank, they retain their
initial values until the panel is displayed (or redisplayed), at which
time they are again reset.
Figure 29 shows an example in which both .HELP and .CURSOR have been set
in the )INIT section of the panel definition .
• A~ AR0 ~
r
f ~~}
f
:At-'r/~
224
ISPF Dialog Management Services
)BODY
%---------------------------- EMPLOYEE RECORDS -----------------------------%CO~I~lAND===>
ZC~1D
+
+
%EMPLOYEE SERIAL: &EMPSER
+
+ TYPE OF CHANGE~~===> TYPECHG + (NEW, UPDATE, OR DELETE)
+
+ EMPLOYEE NAME:
+
LAST
~~===> LNAME
+
+
FIRST %==> FNA~IE
+
+
INITIAL~~==> 1+
+
+ HO~lE ADDRESS:
+
LINE 1 %===> ADDR1
+
+
LINE 2 ~~===> ADDR2
+
+
LINE 3 %===> ADDR3
+
+
LINE 4 %==> ADDR4
+
+
+ HOME PHONE:
+
AREA CODE
%===> PHA+
+
LOCAL NUMBER%===>_PHNUM
+
+
)INIT
.HELP = PERS032
.CURSOR = TYPECHG
IF (&PHA = ' ')
&PHA = 301
&TYPECHG = TRANS (&TYPECHG N,NEW U,UPDATE D,DELETE)
)PROC
&TYPECHG = TRUNC (&TYPECHG,l)
VER (&TYPECHG,LIST,N,U,D,MSG=EMPX210)
VER (&LNAME,ALPHA)
VER (&FNAME,ALPHA)
VER (&I,ALPHA)
VER (&PHA,NUM)
VER (&PHNUM,PICT, 'NNN-NNNN')
)END
Figure 29.
Sample Panel with Control Variables
Chapter 7. Panel and Message Definition and Skeleton Formats
225
Default Cursor Positioning
If the control variable .CURSOR is not explicitly initialized (or if it
is set to blank), the initial position of the cursor is determined as
follows:
•
The panel body is scanned from top to bottom, and the cursor is
placed at the beginning of the first input field that meets the
following criteria:
It must be the first or only input field on a line.
It must not have an initial value (i.e., the corresponding
dialog variable must be null or blank).
It must not have a field name of ZCMD.
•
If no fields meet the above criteria, the cursor is placed on the
first input field in the panel body (normally the command field).
•
If the panel has no input fields, the cursor is placed at row 1,
column 1.
Whenever a message is displayed because of a verification failure, a
MSG=value condition in a TRANS, or an explicit setting of .MSG, the
cursor is automatically positioned at the beginning of the field that
was last referenced in any panel definition statement. For example:
&XYZ = TRANS (&A ... MSG=xxxxx)
&A = TRANS (&XYZ ... MSG=xxxxx)
VER (&XYZ,NONBLANK) VER (&B,ALPHA)
Assume that field XYZ exists in the panel body, but there are no fields
corresponding to variables A or B. In all the above examples, the
cursor would be placed on field XYZ if a message is displayed.
"z"
Variables as Field Name Placeholders
In the body section of a panel definition and in the model lines for a
table display panel, the name of an input or output field may be
represented by the single character "Z". This serves as a placeholder;
the actual name of the field is defined in the initialization section of
the panel definition.
Use of placeholders allows the definition of short fields for which the
lengths of the variable names exceed the lengths of the fields.
The actual names of these fields are assigned in the initialization
section of the panel definition using a name list (enclosed in
parentheses if more than one name is specified) assigned to the control
variable .ZVARS. The first name in the list corresponds to the first
"z" placeholder that appears in the body or model lines. The second
226
ISPF Dialog Management Services
name in the list corresponds to the second "Z", etc.
shown in Figure 30.
)BODY
---------------------------%CONHAND===> ZCMD
+
+
+
TYPE %===> Z+
LENGTH%===> Z +
OFFSET~~===> Z +
TITLE LINE
An example is
------------------------------------
+
(A for alpha, N for numeric)
(0 to 99)
(0 to 99)
)INIT
.ZVARS = '(TYPFLD LNGFLD OFFSET)'
Figure 30.
Example of
"z"
Variable Placeholders
In this example, the input field labeled "type" is one character long
and the next two input fields are each two characters long. The names
of these three fields are TYPFLD, LNGFLD, and OFFSET, respectively.
The name list assigned to .ZVARS must be enclosed in apostrophes.because
the list contains special characters (parentheses) and blanks. As with
other name lists, either commas or blanks may be used to separate the
names in the list. The length of the entire list, including the
parentheses, is limited to 255 characters.
Panel Processing Considerations
When the DISPLAY service is invoked from a dialog function, the panel
name, message-id, and cursor field parameters may be specified.
If the panel name or message-id is specified, the following processing
occurs:
1.
If a panel name has been specified, and a message-id has not been
specified, the panel is displayed without a message.
2.
If both a panel name and a message-id have been specified, the panel
is displayed with an initial message (typically, a prompt or
confirmation message).
Chapter 7. Panel and Nessage Definition and Skeleton Formats' 227
3.
If a message-id has been specified, but a panel name has not been
specified, the previously displayed panel is redisplayed with the
message (typically, an error message).
4.
If neither a panel name nor a message-id has been specified, the
previously displayed panel is redisplayed.
In the first two situations, processing of the panel definition proceeds
normally, through the )INIT section, prior to display of the panel. If
.tlSG or .CURSOR is set in the )INIT section, that setting overrides an
initial message or cursor position passed by the calling sequence
parameters.
In the third and fourth situations, processing of the )INIT section is
bypassed, and there is no automatic initialization of variables in the
panel body (nor in the attribute section). As a result, all variables
in the panel body appear as last displayed, and input fields contain
whatever the user last entered. If an initial message or cursor
position is passed in the calling sequence parameters, that setting is
used since the )INIT section is bypassed.
After the panel has been displayed, the user may enter information and
press the ENTER key. All input fields are automatically stored into
dialog variables of the same name, and the )PROC section of the panel
definition is then processed. If any condition occurs that causes a
message to be displayed (verification failure, MSG=value condition in a
TRANS, or explicit setting of .MSG), processing continues to the )END
statement. The panel is then redisplayed with the first (or only)
message that was encountered.
When the user again presses ENTER, all input fields are stored and the
)PROC section is again processed. This sequence continues until the
entire )PROC section has been processed without any message conditions
encountered. The panel display service then returns to the dialog
function that invoked it with a return code of O.
Whenever a panel is displayed or redisplayed, the user may enter an _End
or RETURN command. In this case, all input fields are stored and the
)PROC section is processed but no message is displayed (even if a MSG
condition is encountered). The panel display service then returns to
the dialog function with a return code of 8.
Special Panel Requirements
Special requirements exist for defining the following types of panel:
228
•
Menus
•
Help tutorials
•
Table displays
ISPF Dialog Management Services
Menus
A menu (also called a selection panel) is a special type of panel. It
is processed by the SELECT service. A menu must have an input field to
be used or entry of selection options by the user of the application.
Generally, this field (called the command field) is the first input
field on line 2 of the panel. Name this field ZCMD to be consistent
with the name used in this publication. (OPT is the name of this field
used in SPF, the ISPF predecessor product). It must also have a
processing section in which variable ZCMD is truncated at the first
period and then translated to a character string. The results must be
stored in a variablt named ZSEL or SEL. (SEL is provided only for
compatibility with SPF; use of ZSEL is recommended.)
Besides ZCMD, a menu may have input fields to set up dialog variables
needed by the particular application. Any variables other than ZCMD and
ZSEL (or OPT and SEL) that are set from a menu are automatically stored
in the shared variable pool.
Variables from .the shared pool (including system variables) may also be
displayed on a menu to provide information to the end user.
The general format of the processing section of a menu is:
)PROC
&ZSEL
= TRANS(
TRUNC(&ZCMD,'. ')
value, 'string'
value, 'str ing'
I\'
Ther"Z'clin variable is truncated prior to translation to allow the end
._,._.... ,.~."'."'·'""··. ·,.··user to bypass one or more intermediate menus. For example, "1.2" means
primary option 1, suboption 2. (This is generally called a "nested
option.") When the SELECT service discovers that variable ZCMD (which
was automatically stored, untranslated, as the user entered it) contains
a period, it causes the next lower-level menu to be selected with an
initial option of everything following the first period. As long as the
initial option is non-blank, the lower-level menu is processed in the
normal fashion but not displayed to the end user.
Each "value" is one of the options that may be entered on the menu.
Each "string" contains selection keywords indicating the action to
occur. The selection keywords are:
Chapter 7. Panel and Message Definition and Skeleton Formats
229
'PANEL(panel-name)
[NEWAPPL(application-id)INEWPOOL],
, C~1D ( command)
[NEWAPPL(application-id)INEWPOOL]
'PGM(program-name)
[PARM(parameters)]
[LANG(PLIIPLI [,storage-area])]
[LANG(COBOL) ]
[NEWAPPL(application-id)INEWPOOL]
[NOCHECK] ,
[NOCHECK] ,
EXIT
Except for EXIT, each string of keywords must be enclosed in
apostrophes, since it contains parentheses (and sometimes blanks).
The following selection keywords are the same as those that may be
specified for the SELECT service (for a description of these keywords
see "SELECT" in Chapter 6):
PANEL(panel-name)
CMD(command)
PGM(program-name)
PARM(parameters)
[LANG(PLIIPLI [,storage-area])]
[LANG(COBOL)]
NEWAPPL(application-id)INEWPOOL
The PANEL keyword, for example, is used to specify the name of a
lower-level menu to be displayed. The CMD and PGM keywords are used to
invoke a dialog function coded in a.command procedure or programming
language, respectively. Note that OPT(option), which is valid for the
SELECT service, is not valid on the definition of a menu. NOCHECK and
EXIT are described below.
Normally, nested options are allowed only when each component of the
option (up to, but not including the last component) specifies a
lower-level menu. For example, given the following ZSEL keywords on a
selection panel definition
&ZSEL = TRANS (TRUNC(&ZCMD,'. ')
I, 'PANEL(DEF)'
8, 'PGM(ABC)'
9, 'PGM(XYZ)'
A user may enter "l.x" as his selection. This selection would be
accepted by ISPF. However, if the developer wants to allow a user to
enter a nested option that selects a dialog function (in this case "8.x"
or "9.x ff ) , the developer specifies the NOCHECK keyword as in the
following example:
230
ISPF Dialog Management Services
&ZSEL
= TRANS
(TRUNC(&ZCMD,'. ')
1, 'PANEL(DEF)'
8, 'PGM(ABC) NOCHECK'
9, 'PGM(XYZ) NOCHECK'
The NOCHECK keyword specifies that normal checking for validity is
suspended. It is the responsibility of the dialog function to
interpret the meaning of the lower-level options. To allow this, the
remaining options (those to the right of the first period) are normally
passed to the dialog function through any appropriate variable that has
been set equal to the .TRAIL panel control variable in the menu
definition. Example:
&ZSEL = TRANS (TRUNC (&ZCMD, I . ' )
1, 'PANEL(DEF)'
8, 'PGM(ABC) NOCHECK'
9, 'PGM(XYZ) NOCHECK'
&NEXTOPT = .TRAIL
In this example, variable NEXTOPT contains the remainder of the TRUNC
operation. If the user enters "8.5.2", program ABC is invoked and
NEXTOPT is set to "5.2". If the user enters "9.7", program XYZ is
invoked and NEXTOPT is set to "7". Since variable NEXTOPT is unknown to
the SELECT service, it is automatically stored in the shared variable
pool, where it can be accessed by the dialog function.
When the NOCHECK keyword is specified, a return code of 20 from the
dialog function indicates that the remaining options are invalid. If
return code 20 is passed back from the function, an "invalid option"
message is displayed by the dialog manager.
The EXIT keyword, if used, applies only to a primary option menu.
terminates ISPF using defaults for list/log file processing.
It
If no option is entered (ZCMD variable is blank), a blank is returned as
the translated string. This causes the SELECT service to redisplay the
menu. For primary option menus, the menu is redisplayed without a
message. For lower-level menus, an "enter option" message is displayed
if the option field was left blank.
If an invalid option is entered (indicated by an asterisk, meaning none
of the above), a question mark (?) is returned as the translated string.
This causes the SELECT service to redisplay the menu with an "invalid
option" message.
Chapter 7. Panel and Message Definition and Skeleton Formats
231
Primary Option Menus
A primary option menu is a selection panel that has special significance
in terms of the way the RETURN command operates, and in terms of the way
a "jump function" (an option number preceded by an equal sign) works.
One type of primary option menu is the master application menu. It is
described in "Examples of Menus" below.
The first menu displayed when the dialog manager is invoked is normally
treated as a primary option menu. That is, if the dialog manager is
invoked with:
ISPSTART PANEL(XYZTOP)
then panel XYZTOP is treated as a primary option menu.
Similarly, if the dialog manager is invoked with:
ISPSTART CMD(XYZ) or
ISPSTART PGM(XYZ)
and dialog XYZ subsequently issues:
SELECT PANEL(XYZTOP)
then panel XYZTOP is treated as a primary option menu because it is the
first invoked menu.
It is possible to write a dialog with no primary option menu by setting
the variable ZPRIM to "NO" on the first selection panel (panel XYZTOP in
this example):
)INIT
&ZPRIM = NO
In general, this is not recommended since the RETURN command then causes
an immediate exit from the dialog, which may be confusing to the end
user.
A dialog may have lower-level (nested) primary option menus. This is
achieved by setting variable ZPRIM to "YES" on a lower-level selection
panel:
)INIT
&ZPRIM = YES
Nested primary option menus should be used sparingly, since they can
confuse the end user. It is recommended that there be only one primary
option menu per major application.
232
ISPF Dialog Management Services
Set Next Menu
ISPF allows the display of menus that are arranged in a hierarchy. The
path through the hierarchy is automatically preserved as the user
selects options from the various menus. As the user moves back up
through the hierarchy, the menus are redisplayed in reverse sequence
from which they were selected. While this is the standard mode of
operation, it may be overridden. A developer may specify an alternative
mode of menu processing called explicit chain mode. In this mode, the
"parent" menu is specified explicitly in a system variable named
ZPARENT. This variable may be set in a panel definition or in a dialog
function. It has the following effect:
•
From a menu, ZPARENT specifies the name of the next menu to be
displayed when the user enters the END command. A menu that
specifies itself as the parent is interpreted as a primary option
menu; the RETURN command "stops" at that menu.
•
From a function, ZPARENT specifies the name of the next menu to be
displayed when the function completes execution. If a function is
invoked from another function (by the SELECT service), the
lower-level function may set ZPARENT. Upon completion of the
lower-level function, the higher-level function resumes execution.
The setting of ZPARENT does not take effect until the higher-level
function (i.e., the one originally invoked from a menu) completes
execution.
Notes:
1.
A value may be stored in ZPARENT in a function or in the )INIT,
)PROC, or )BODY section of a panel.
2.
The value in ZPARENT takes effect only after display of a selection
panel when the user enters the END command.
3.
When the ZPARENT variable is set from a dialog function, it must be
explicitly copied to the shared pool (using VPUT) to ensure that
ISPF still has access to it after the function completes.
4.
Once the ZPARENT variable is set:
The hierarchy of menus traversed by the user is not
preserved by ISPF.
The NEWAPPL and NEWPOOL selection keywords are inoperable
(ignored) while the dialog is in explicit chain mode.
S.
The ZPARENT variable is automatically reset to blank by the dialog
manager each time it is used. If the dialog does not continue to
set ZPARENT, the dialog manager resumes normal mode. The hierarchy
of menus (if any) up to the point at which explicit chain mode was
started is then restored.
Chapter 7. Panel and Message Definition and Skeleton Formats
233
6.
Generally, a dialog should use either explicit chain mode or
hierarchical chaining (the standard mode); chaining should not be
mixed. If they are mixed, a function that sets ZPARENT should do so
only after completion of any hierarchical dialog that it invokes
(i.e., the setting of ZPARENT should be the last thing the function
does before returning control). Otherwise, results are
unpredictable.
7.
The ZPRIM variable is not applicable to (and is ignored) when
operating in explicit chain mode.
Examples of Menus
Typical menus are described below.
MASTER APPLICATION MENU: A master application menu, shown in Figure 31,
and named ISP@MSTR, is distributed with ISPF as part of the panel
library. This menu may be used, if desired, to allow selection of the
various applications available at an installation.
234
ISPF Dialog Management Services
%-----------------------%OPTION
ISPF MASTER APPLICATION MENU
===> ZCMD
----------------------+
%
%
%
%
1 +SAMPLE1
2 +.
3 +.
4 +.
5 +.
X +EXIT
- Sample application 1
(Description for option 2)
(Description for option 3)
- (Description for option 4)
(Description for option 5)
- Terminate ISPF using list/log defaults
-
%
%
%
%
%
+Enter%END+command to terminate ISPF.
+USERID
+TIME
+TERMINAL
+PF KEYS
-
&ZUSER
&ZTIME
&ZTERM
&ZKEYS
%
)INIT
. HELP
= ISP00005
/* Help for this master menu
&ZPRIM = YES
/ . .,: This is a primary option menu
)PROC
&ZSEL = TRANS( TRUNC (&ZCMD,'. ')
1, 'PANEL(ISP@PRIM)' /* Sample primary option menu
/* Following shows how to code an invocation of the
/ . .,: ISPF Program Development Facility, where "n" is
/* the desired selection number:
/*
/*
/*
/
n, 'PANEL(ISR@PRIM) NEWAPPL(ISR),
*/
. .,: /
*/
*/
. .,: /
*/
*/
*/
*/
4~.,;"#~?':4'C"';'r";'c#'r";,,#':#':#':#':#':#~#'ri~#':";':#':i'r·l~.,':i':;':i':#'ri'r#':i':#,(·l:#':;':i':;~-;':i':#"(i':,";':f':";'r#':,";':#':#':i':#': -;':-;':-;':,,;,(-;'r-;': /
, ,, , ,
X, 'EXIT'
. .,: , ' ?' )
)END
Figure 31.
Master Application Menu
If used, the master menu should be the first menu displayed when the
user logs on. It may be displayed automatically by including the
following command in the user's TSO LOGON procedure or CMS PROFILE EXEC:
ISPSTART [PANEL(ISP@MSTR)]
When no keywords are specified on the ISPSTART command, PANEL (ISP@MSTR)
is assumed. To add a new application to the master menu, a line should
be added to the panel body, indicating the selection code and the nature
of the application. A corresponding addition must then be made the the
)PROC section, to specify the selection keywords for the option.
Chapter 7. Panel and Message Definition and Skeleton Formats
235
PRIHARY OPTION ~1ENU: Figure 32 shows a primary option menu definition.
This is the sample primary option menu definition (ISP@PRIH) distributed
with ISPF. The required input field, ZCND, appears in the second line
of the panel body. It is followed by a description of the various
options available to the user.
This menu also has four variables within text fields at the upper
right-hand of the screen. These reference system variables (from the
shared variable pool) to display user id, timi, terminal type, and
number of PF keys.
The Initialization section sets the control variable .HELP to the name
of a tutorial page to be displayed if the user enters the HELP command
from this menu. It also initializes two system variables that specify
the tutorial table of contents and first index page. See the discussion
under "Help/Tutorial Panels."
Note:
&ZPRIM=YES specifies that this panel is a primary option
menu.
The processing
entered by the
level menu) is
displayed; and
section specifies the action to be taken for each option
user. If option 0 is selected, panel ISPOPTA (a lower
displayed. If option 1 is selected, panel ISPUCHA is
so on.
Note that for the tutorial, program ISPTUTOR is invoked and passed a
parameter (ISPOOOOO), which ISPTUTOR interprets as the name of the first
panel to be displayed. Panel ISPOOOOO is the first panel in the
tutorial for ISPF. Other applications should pass the name of the first
tutorial page for that application.
236
ISPF Dialog Hanagement Services
SA~lPLE PRI~lARY OPTION HENU
------------------------%OPTION ===> ZCHD
+
%
+USERID
- &ZUSER
%
+ISPF
PARHS
0
Specify terminal and user parameters
+TINE
%
- &ZTIME
- Create/change command table
% 1 +COtltlANDS
+TERMINAL - &ZTERM
(Description for option 2)
+PF KEYS - &ZKEYS
% 2 +.
+.
3
(Description
for option 3)
%
4 +.
- (Description for option 4)
5 +.
(Description for option 5)
/0
T +TUTORIAL
- Display information about this application
- Terminate ISPF using list/log defaults
% X +EXIT
%------------------------
-
01
10
01
01
10
%
+Enter%END+command to terminate application.
%
)INIT
.HELP = ISP00003
~"~P.R.Lt! = YE S
//&ZHTOP"~:::'" ISP00003
l'.__~ZHINDE2<;)= ISP9l000
II
I) PR·OC·-.. ·····_·-"
I
'if
'Il.
*/
j"k This is a pr imary opt ion menu
"'~ /
Tutorial table of contents for this appl"""/
/* Tutorial index - 1st page for this appl */
I""~:
&ZSEL = TRANS( TRUNC (&2.CMD,'. ')
0, 'PANEL(ISPOPTA) ,
1, 'PANEL(ISPUCMA) ,
!
J.i
/* Help for this panel
/*******************************************************/
i
It
I""~:
/* Add other applications here.
I""~:
/*******************************************************/
, T,
, , ,'PGM(ISPTUTOR)
,
PARM(ISPOOOOO)'
X, 'EXIT'
";~
, , ?' )
)END
Figure 32.
ISPF Primary Option Henu
LOWER-LEVEL MENUS: Lower-level menus follow the same rules as a master
or primary option menu. An example of a lower-level menu is shown in
Figure 33. This menu is used in the HVS version of ISPF/PDF. The panel
is ISRUTIL, which is displayed if option 3 is selected from the ISPF/PDF
primary option menu. For option 1, it specifies that program ISRUDA is
to receive control, and that ISRUDA is to be passed a parameter (UDAl)
which ISRUDA interprets as the name of a panel to be displayed.
An exit option is not included on this menu, since it is never displayed
as a primary option menu.
Chapter 7. Panel and Message Definition and Skeleton Formats
237
Note: In this menu, variable ZCMD need not have been truncated
prior to translation, since there is no lower-level selection
panel that can be displayed from this menu.
%------------------------- UTILITY SELECTION MENU
~~OPTION
%
%
===> ZCMD
1 +LIBRARY
---------------------------+
- Library utility:
Print index listing or entire data set
+
Print, rename, delete, or browse members
+
Compress
data set
+
2 +DATASET
- Data set utility:
%
Display data set information
+
Allocate, rename, or delete entire data set
+
Catalog or uncatalog data set
+
3 +MOVE/COPY - Move or copy members or datasets
4 +CATALOG
- Catalog management:
%
Display or print catalog entries
+
Initialize or delete user catalog alias
+
- Reset statistics for members of ISPF library
% 5 +RESET
% 6 +HARDCOPY - Initiate hardcopy output
- Display or print VTOC entries for a DASD volume
% 7 +VTOC
- Display, delete, or print held job output
% 8 +OUTLIST
% 9 +COMMANDS - Create/change an application command table
% 10 +CONVERT
- Convert old format menus/messages to new format
)INIT
.HELP = ISR30000
)PROC
&ZSEL = TRANS( TRUNC (&ZCMD,'. ')
1, 'PGM (ISRUDA) PARM (UDAl) ,
2,'PGM(ISRUDA) PARM(UDA2),
3, 'PGM(ISRUMC) ,
4, 'PGt-l (ISRUCA) ,
5 , I PGM ( I SRURS ) ,
6 , 'PGM ( I SRUHC) ,
7 , 'PGM (ISRUVT) ,
8, 'PGM (ISRUOL) ,
9, 'PANEL(ISPUCHA) ,
lO,'PGM(ISRQCM)
PARM(ISRQCMP),
, , , ,
0'
10
,
..,: , , ?' )
)END
Figure 33.
238
Lower-Level Menu
ISPF Dialog Management Services
Help/Tutorial Panels
A help or tutorial panel is a special type of panel that is processed by
the ISPF tutorial program, which invokes the panel display service to
display the panel. The tutorial program may be invoked either from a
menu, or through the HELP command.
Tutorial panels are arranged in a hierarchy. Generally, this hierarchy
is a table of contents, each succeeding level of which contains a
succeedingly more detailed list of topics. When the tutorial is entered
from a menu, the first panel to be displayed is normally the top of the
hierarchy. The name of the first panel is passed as a parameter to the
ISPTUTOR program.
When the tutorial is entered by use of the HELP command, the first panel
to be displayed is a panel within the hierarchy, appropriate to what the
user was doing when help was requested. In this situation, the name of
the panel is specified by the .HELP control variable in a panel or
message definition.
When viewing the tutorial, the user may select topics by entering a
selection code, or simply pressing the ENTER key to view the next topic.
On any panel, the user may also enter the following commands:
BACK or B
- to return to the previously viewed panel
SKIP or S
- to advance to the next topic
UP or U
- to display a higher-level list of topics
TOP or T
- to display the table of contents
INDEX or I - to display the tutorial index
The name of the top panel must be specified by dialog variable ZHTOP,
and the name of the first index panel must be specified by ZHINDEX. It
is recommended that these two dialog variables be initialized at the
beginning of the application to ensure that the end user can always
display the tutorial top or index, regardless of how the tutorial was
entered. One way to initialize these variables is to set them from the
primary option menu, as shown in Figure 32.
The index is optional and is a collection of panels in which topics are
arranged in alphabetic order. A user may jump to the index from any
point by the use of the INDEX command. The index need not be connected
to the main tutorial hierarchy; it may be a selectable topic from the
main table of contents or other panels.
Chapter 7. Panel and Message Definition and Skeleton Formats
239
Each tutorial panel must have a "next selection" input field.
Generally, you should use the name ZCMD for this field. A tutorial
panel should also have a processing section in which the following
variables are set:
ZSEL or SEL
Specifies the name of the next panel to be displayed
based on the t~£ic selected by the user (by translating
ZCMD to...--a p'aller--n~ The pane 1 name may, be preceded by
an ast"erisk ~.. to indicate a topic that can be
explicitly selected by the user, but which is bypassed if
the user presses the ENTER key to view the next topic.
If a panel does not have any selectable topics, ZSEL
should be omitted.
ZUP or UP
Specifies the name of the parent panel, from which this
panel was selected. Generally, ZUP may be omitted since
the tutorial program remembers the sequence of selections
that lead to the display of this panel. ZUP is used only
if this panel is the first to be displayed (by a user
entering the HELP command) or is selected from the
tutorial index, and the user then enters the UP command.
ZCONT or CONT Specifies the name of the next continuation panel. If
there is no continuation panel, ZCONT should be omitted.
ZIND
When set to a value of YES, specifies that a page in the
tutorial is an index page. For example:
)PROC
&ZIND = YES
The ZIND variable is used only on index pages; it should
not be set on other tutorial panels.
Note: Variables SEL, UP, and CONT are provided for compatibility
with the previous SPF product. Use of variable names ZSEL, ZUP,
and ZCONT is recommended. Refer to Appendix H, "HVS and VH/SP:
Summary of Changes From SPF."
A panel cannot have both a continuation panel and selectable topics.
However, the last panel in a sequence of continuation panels may have
selectable topics.
Help/Tutorial panels may contain variables so that dialog information
(including information entered by the user) may be displayed on the help
panel. Function variables, as well as shared and profile variables, may
be displayed.
240
ISPF Dialog Hanagement Services
Figure 34 shows a sample hierarchy of tutorial panels. Panels A and B
each have three selectable topics. Panels C and D2 each have two
selectable topics. The other panels have no selectable topics. Panel
Dl has a continuation page (D2), and panel Fl has two continuation pages
(F2 and F3).
In Figure 34, assuming that panel A is the highest-level table of
contents, the viewer can get to A from any point by issuing TOP. A
viewer currently on panel F1, F2, or F3 may return to panel B by issuing
BACK. Then, from B, the SKIP command would take the viewer to panel C.
A
I
B
D1 f---,
I D21
C
1
L---,..--.J
I
I
I
E
F1 f---,
II F2 f---,
I F31
I
Figure 34.
G
H
I
J
K
II
Sample Tutorial Hierarchy
Two sample tutorial panels are shown in Figure 35 and Figure 36. These
are assumed to be panels Band F2, respectively, in the hierarchy in
Figure 34.
Panel B has three selectable topics. In the processing section, ZCMD is
translated to a panel name (E, F1, or G) corresponding to the selected
option, and the result is stored in ZSEL. If none of the valid options
is selected, a question mark (?) is returned as the translated string,
which causes the tutorial program to display an "invalid option"
message.
Note that option 3 is translated to "~"'G". This indicates that panel G
is displayed if the user selects option 3, but is bypassed if the user
repeatedly presses the ENTER key to view each topic. (The order in
Chapter 7. Panel and Message Definition and Skeleton Formats
241
which topics are presented when the ENTER key is pressed is the same as
the order in which they appear in the TRANS function.)
In panel B, the name of the parent panel (A) is stored in variable ZUP.
Panel F2 (Figure 36) has no selectable topics, but does have a
continuation page. The name of the continuation panel (F3) is stored in
variable ZCONT. The name of the parent panel (B) could have been stored
in ZUP, but this was omitted assuming that F2 cannot be directly entered
by use of the HELP command or from the tutorial index.
%TUTORIAL ------------------ 3270 DISPLAY TERHINAL --------------------TUTORIAL
%NEXT SELECTION ===> ZCMD
+
%
General Information
3270 Key Usage
+
The IBM 3270 display terminal has several keys which will assist you
in entering information. These are hardware defined keys; they do not
cause a program interruption.
The following topics are presented in sequence,
or may be selected by number:
%1+ Insert and Delete Keys
%2+ Erase EOF (to End-of-Field) Key
The following topic will be presented only if
explicitly selected by number:
%3+ New Line and TAB Keys
)PROC
&ZSEL = TRANS(&ZCMD 1,E 2,F1 3,*G *, I?')
&ZUP = A
)END
Figure 35.
242
Sample Tutorial Panel (B)
ISPF Dialog Management Services
%TUTORIAL -------------------- ERASE EOF KEY ------------------- TUTORIAL
%NEXT SELECTION ===> ZCMD
+
+
When the erase EOF (erase to end-of-field) key is used, it will appear
to blank out the field. Actually, null characters are used in erasing
to the next attribute byte, thus making it easy to use the insert mode
(which requires null characters).
+
If the erase EOF key is pressed when the cursor is not within an input
field, the keyboard will lock. Press the RESET key to unlock the
keyboard.
+
You can tryout the erase EOF key by entering data on line 2, then
moving the cursor back over part or all of the data and pressing the
key.
+
(Continued on next page)
+
)PROC
&ZCONT = F3
)END
Figure 36.
Sample Tutorial Panel (F2)
Table Display Panels
A table display panel is a special panel that is processed by the
TBDISPL service. The panel definition contains non-scrollable text,
including column headings, followed by one or more model lines. These
lines describe how each table row is to be formatted within the
scrollable data area. Attribute characters in the model lines indicate
whether each field is protected or user-modifiable.
If a single model line is specified in the panel definition, each row
from the table is mapped to the format of that line. This results in
scrollable data that is in tabular format. For many applications, it
may be useful to define the left-most column in each line as an input
field where the application user may enter a code to be used by the
dialog function to determine the particular processing for that row.
If mUltiple model lines are specified in the panel definition, each row
from the table is mapped to mUltiple lines on the screen. (If desired,
a separator line - consisting of blanks or dashes, for example - may be
specified as the first or last model line.) This format may be useful
for address lists or other repetitive data in which each unit will not
fit on a single line.
Chapter 7. Panel and Message Definition and Skeleton Formats
243
PANEL DEFINITION REQUIREMENTS: Specific requirements for each section
of the panel definition are described in the following paragraphs.
Attribute Section (typically reguired) Attribute characters may be
defined for use in the panel body and the model lines. For the model
lines, only the attributes TYPE, INTENS, and PAD are meaningful; all
fields in the model line assume CAPS(OFF) and JUST(ASIS).: An attribute
section is required if the model line contains output fields. There is
no default attribute character for output fields.
Body (required) The panel body contains the non-scrollable text.
must also contain two, and only two, input fields:
1.
It
Command field - must be the first input field, and must be at least
eight characters long. The command field may have any desired name.
The command field is used (the same as on other types of panels) to
enter ISPF commands and application-defined commands (if any). Any
commands entered in this field that are not recognized by ISPF are
automatically stored into the corresponding dialog variable. Upon
return from TBDISPL, the dialog function may interpret this field
and take appropriate action.
2.
Scroll amount field - must be the second input field, and must be
four characters long. The field may have any desired name. Its
initial value may be set in the )INIT section of the panel
definition to any valid scroll amount.
If additional input fields are specified in the panel body, they are
ignored (may not be used to enter data).
Model Section (reguired): The panel body must be followed by a model
section. This section begins with a )MODEL header statement and is
immediately followed by one or more model lines.
The )MODEL header statement must begin in column 1.
optional keywords may be specified on this header:
•
CLEAR(var-name,var-name ... )
•
ROWS (ALL I SCAN)
The following
The CLEAR keyword identifies the dialog variable names, from the model
lines, that are to be cleared (initialized to blank) before each row in
the table is read. Thus, if the variable is an "extension" variable in
the table, which may not exist in all rows, previous values are erased
and are thereby not repeated in other lines for which they do not apply.
The ROWS keyword indicates whether all rows from the table are to be
displayed, or whether the table is to be scanned for selected rows to be
displayed. The default is ROWS(ALL) which causes all rows to be
displayed. If ROWS(SCAN) is specified, the dialog must invoke the
TBSARG service prior to invoking TBDISPL. The search' argument set up by
244
ISPF Dialog Management Services
the TBSARG service is used to scan the table; only rows that match the
search argument are displayed.
One or more model lines must appear following the )MODEL header
statement. A model line may contain input and output fields. Each
field consists of an attribute character followed by a variable name.
This name may be the name of a variable in the table row, or may be the
null system variable, "Z", which serves as a placeholder. "z" variable
name replacement is resolved within the )INIT section, as described
below.
Typically, the first field within the model lines specifies the dialog
variable into which a selection code (entered by the user) will be
stored, and all remaining names correspond to columns in the table.
However, this arrangement is not required; any name mayor may not
correspond to a column in the table and a selection code field need not
be specified.
Text fields may be specified in the model line. A text attribute
character may appear by itself to terminate the preceding input or
output field. Any characters that appear within a text field in the
model line are repeated in each line of the scrollable data. (This
includes the letter Z; it is not treated as a variable name if it occurs
in a text field.)
Variables within text fields (e.g., "&XYZ") are not allowed in the model
lines; the results are unpredictable.
A maximum of eight model lines is allowed.
Initialization Section (may be required): If "z" variables occur as
name placeholders within the model lines, an )INIT section is needed.
The real names of these fields are defined by assigning a name list
(enclosed in parentheses, if more than one name is given) to the control
variable, .ZVARS. (See "Control Variables" for a description of the use
of .ZVARS.) For example:
)INIT
.ZVARS
=
I
(NAME1,NAME2,NAME3)
I
where NAME1, NAME 2 , and NAME3 are the actual variable names
corresponding to the first, second, and third "z" variables in the model
lines.
Chapter 7. Panel and Message Definition and Skeleton Formats
245
Note:
For compatibility with SPF, liZ" variables in the model
lines of a table display panel may be assigned to the VARS
variable, rather than to the control variable, .ZVARS. For
example:
)INIT
&VARS
=
'(NAMEl,NAME2,NAME3)'
It is recommended, however, that existing table display panels be
converted to use the new .ZVARS control variable. They must be
converted if the new CLEAR keyword is added to the )MODEL header
statement or explicit cursor positioning is used for table
display.
The initialization section may contain any statement that is valid in an
)INIT section of a panel definition. However, only the .CURSOR, .HELP,
and .ZVARS control variables may be set.
Processing Section (omit):: A table display panel should not contain a
processing section; if it does, the results are unpredictable.
TBDISPL PROCESSING: When a panel is displayed by the TBDISPL service,
the model lines in the )MODEL section are duplicated to the end of the
logical screen. When the scrollable portion of the screen is being
formatted, only full units or duplications of these model lines are
displayed. Each input or output field that has a corresponding column
in the table is initialized with data from succeeding rows from the
table. The first row displayed is the row pointed to by the CRP when
TBDISPL was issued.
Input or output fields in a model line that do not correspond to columns
in the table are initialized with the current contents of the
corresponding dialog variables (in all rows). If·these fields are to be
blank, the corresponding variables must be set to blanks or null prior
to each invocation of TBDISPL, or the CLEAR keyword may be used to
specify that they are to be blanked.
The user may scroll the data up and down. Scroll commands (e.g., "DOWN
5") apply to the number of table entries to scroll up or down. Example:
If three model lines are specified, "DOWN 5" would scroll by 5 table
entries, which corresponds to 15 lines on the display.
The user may enter information in the command field and in any of the
input fields within the rows. Processing of input is described in the
TBDISPL service description in Chapter 6, "Description of Services."
Figure 37 shows a sample panel definition for table display. Assuming
that the current contents of the table are as shown in Figure 38, the
resulting display is shown in Figure 39.
246
ISPF Dialog Management Services
)A'ITR
@ TYPE(OUTPUT) INTENS(LOW)
)BODY
%---------------------------%CO~mAND
INPUT ===>
EHPLOYEE LIST
ZC~1D
+
+SELECT
------ EHPLOYEE NAHE ------+ CODE
LAST
FIRST
HI
)HODEL
Z+
@LNAHE
@FNAME
@I
)INIT
.ZVARS = '(SELECT)'
&AHT = PAGE
.HELP = PERS123
)END
Figure 37.
EMPSER
--------------------------------%SCROLL ===> AHT +
-- PHONE
AREA NUHBER
@PHA @PHNUH
EHPLOYEE
SERIAL
@EMPSER
Table Display Panel Definition
LNAME
FNAHE
I
PHA
PHNUH
---------------------------------------------------598304
172397
813058
395733
502774
Figure 38.
Roberston
Smith
Russell
Adams
Caruso
Richard
Susan
Charles
John
Vincent
P
A
L
Q
J
301
301
202
202
914
840-1224
547-8465
338-9557
477-1776
294-1168
Current Contents of Table
Chapter 7. Panel and Message Definition and Skeleton Formats
247
---------------------------COt-1MAND INPUT ==>
SELECT
CODE
------
EMPLOYEE LIST
NAME ------LAST
FIRST
MI
Roberston
Richard
P
Smith
Susan
A
Russell
Charles
L
Adams
John
Q
Caruso
Vincent
J
******************************* END OF DATA
Figure 39.
E~1PLOYEE
--------- LINE 000001 COL 001 080
SCROLL ===> PAGE
-- - PHONE
AREA
301
301
202
202
914
NUt-1BER
840-1224
547-8465
338-9557
477-1776
294-1168
EMPLOYEE
SERIAL
598304
172397
813058
395733
502774
-;'\i";':#'\;':;'\";':;'\i'\;':"l\i'\·l:i':i'\;':i':i'\i':i~i~·l~i':;'(i':i':;':;':·l:·l\i':i"i':i':
Table as Displayed
In this example, the select field (left-most column) does not correspond
to a column in the table; it is used to return a selection code, entered
by the user in a variable named SELECT. The other variables in the
model line correspond to variables in the table. The example also
illustrates the initialization of the scroll amount field to PAGE, and
the specification of a corresponding help panel.
The same table might be displayed using mUltiple model lines with the
panel definition shown in Figure 40. The resulting display is shown in
Figure 41. An entry separator, consisting of a dashed line, is also
included as the last model line. In this example, the SELECT field has
been increased to 4 characters, with underscores used as pad characters.
248
ISPF Dialog Management Services
)ATTR
@ TYPE(OUTPUT) INTENS(LOW)
if TYPE(INPUT) PADe' _')
)BODY
%---------------------------- EHPLOYEE LIST
%COHMAND INPUT ===> ZCMD
+
+ENTER CHANGES ON THE LINES BELOW.
+
)HODEL
#Z
+ SERIAL: @EMPSER +
PHONE: @PHA@PHNUM
+
--------------------------------%SCROLL ===> AMT +
LAST NAME: @LNAME
FIRST NAHE: @FNAME
INITIAL:
@I+
+
+
)INIT
.ZVARS = '(SELECT)'
&AMT = PAGE
.HELP = PERS123
)END
Figure 40.
Table Display Panel Definition with Multiple Model Lines
Chapter 7. Panel and Message Definition and Skeleton Formats
249
---------------------------COMNAND INPUT ===>
ENPLOYEE LIST
--------- LINE 000001 COL 001 080
SCROLL ===> PAGE
ENTER CHANGES ON THE LINES BELOW.
SERIAL:
PHONE:
598304
301 840-1224
LAST NAME:
FIRST NAME:
INITIAL:
Robertson
Richard
P
SERIAL:
PHONE:
172397
301 547-8465
LAST NAME:
FIRST NAttE:
INITIAL:
Smith
Susan
A
SERIAL:
PHONE:
813058
202 338-9557
LAST NAHE:
FIRST NAME:
INITIAL:
Russell
Charles
L
SERIAL:
PHONE:
395733
202 477-1776
LAST NAME:
FIRST NAttE:
INITIAL:
Adams
John
LAST NAttE:
FIRST NAME:
INITIAL:
Caruso
Vincent
SERIAL:
PHONE:
502774
914 294-1168
Q
J
******************************* END OF DATA **********************************
Figure 41.
250
Table as Displayed with Multiple Model Lines
ISPF Dialog Management Services
MESSAGE DEFINITIONS
ISPF message definitions are stored in a message library and displayed
by means of the DISPLAY, TBDISPL, or SETMSG service, or written to the
ISPF log file by the LOG service. Messages are created or changed by
editing directly into the message library. The messages are interpreted
during ISPF processing; no compile or preprocessing step is required.
Message ID
Each message is referenced by message-id. A message id may be four to
eight characters long, and is defined as follows:
•
Prefix:
one to five alphabetic characters (A-Z, #, $, or @)
•
Number:
three numeric characters (0-9)
•
Suffix (optional):
one alphabetic character
If the prefix is five characters long, the suffix must be omitted so
that the total length does not exceed eight characters.
Message Library
Several messages may be contained within each member of the message
library. When using ISPF/PDF EDIT to create a message file, NUMBER OFF
should be specified.
The member name is determined by truncating the message-id after the
second digit of the number. For example:
Message id
G015
ISPE241
XYZ123A
ABCDE965
Hember name
G01
ISPE24
XYZ12
ABCDE96
All messages that have ids beginning with the characters "G01", for
example, must be in member G01. Figure 42 shows an example of a member
in the message library. This member contains all message-ids that begin
with "EMPX21".
Within the member, messages generally should appear in collating
sequence by message-id. The optional message id suffix should be used
if more than 10 messages are to be included in one member.
Each message in the library consists of two lines, as follows:
msgid [' short message'] [.HELP = panell2] [.ALARM = YES I NO]
'long message'
Chapter 7. Panel and Hessage Definition and Skeleton Formats
251
EHPX210 'INVALID TYPE OF CHANGE'
.HELP=PERS033
'TYPE OF CHANGE }1UST BE NEW, UPDATE, OR DELETE. '
.ALARM=YES
EHPX213, ENTER FIRST NA}IE'
. HELP=PERS034
. ALARM=YES
'E}IPLOYEE NAHE MUST BE ENTERED FOR TYPE OF CHANGE = NEW OR UPDATE. '
EHPX214 'ENTER LAST NAHE'
.HELP=PERS034
.ALARM=YES
'ENPLOYEE NAHE }1UST BE ENTERED FOR TYPE OF CHANGE = NEW OR UPDATE.'
EHPX215 'ENTER HOHE ADDRESS'
.HELP=PERS035
.ALARM=YES
'HOHE ADDRESS NUST BE ENTERED FOR TYPE OF CHANGE = NEW OR UPDATE. '
EHPX216 'AREA CODE INVALID'
'AREA CODE &PHA IS NOT DEFINED.
. ALAR}I=YES
PLEASE CHECK THE PHONE BOOK.'
EMPX217 '&EMPSER ADDED'
'ENPLOYEE &LNAHE, &FNANE &1 ADDED TO FILE. '
EHPX218 '&ENPSER UPDATED'
'RECORDS FOR &LNANE, &FNAME &1 UPDATED.'
ENPX219 '&E}IPSER DELETED'
'RECORDS FOR &LNAHE, &FNAME &1 DELETED.'
Figure 42.
Sample Member in Nessage Library
The short message is optional. If a short message is specified on an
ISPF panel, it is displayed first. Short messages are right-justified
and displayed at the right end of the first line on the screen. If the
user enters the HELP command, the long message is displayed on the third
line of the screen. If the user enters the HELP command again, tutorial
mode is entered.
The long message is required. If a short message is not specified, the
long message is displayed first, on the third line of the screen. If
the user then enters the HELP command, tutorial mode is entered.
The location of the short and long messages in a user-designed panel is
specified by the SNSG and L}ISG keywords. These keywords are defined in
"Panel Body Section."
If tutorial mode is entered by the user, the panel name specified by
.HELP is the first tutorial page displayed. If .HELP=·\, is specified,
the first tutorial page is whatever was specified in the panel
definition (i.e., the panel on which this message is being displayed).
The default is ".1."
252
ISPF Dialog Management Services
If .ALARH=YES is specified, the audible alarm is sounded whenever the
message is displayed. If .ALARM=NO is specified, the alarm is not
sounded. The default is NO.
When messages are written to the ISPF log file, both the short message
(if any) and the long message are written in the same output line. The
short message comes first, followed by the long message.
Substitutable parameters, consisting of a dialog variable name preceded
by an ampersand (&), may appear anywhere within the short and long
message text. For example:
'VOLUME &VOL NOT NOUNTED'
Substitutable parameters may also be used to specify the value of .HELP
or . ALARM, as follows:
'VOLUHE &VOL NOT HOUNTED'
. HELP = &H
. ALARtvl = &A
where variable H must contain a panel name or single asterisk, and
variable A must contain YES or NO.
Substitutable parameters in messages are replaced with values
immediately before display or, if the message is specified for display
using the SETMSG service, substitutable parameters are replaced during
SETMSG processing. After substitution of the variables, the short
message is truncated to 24 characters and the long message is truncated
to 78 characters.
Syntax Rules
The following rules apply to the syntax of messages as they appear in
the message library.
1.
The message-id must begin in column 1 of the first line, and the
long message must begin in column 1 of the second line. For
readability, one or more blank lines may separate the two-line
message specifications within the member.
2.
In the first line, the message-id, short message, .HELP, and .ALARM
fields must be separated by at least one blank. One or more blanks
may optionally occur on either side of an equal sign (=).
3.
The short message (if specified) and the long message must each be
enclosed in apostrophes (').
4.
Within the short or long message text, any non-alphameric character
may terminate a variable name; for example:
'ENTER &X, &Y, OR &Z'
where a comma terminates the variable names X and Y. The name Z is
delimited by the apostrophe that marks the end of the message.
Chapter 7. Panel and Message Definition and Skeleton Formats
253
5.
A period C.) at the end of a variable' name has a special meaning.
It causes concatenation with the character string following the
variable. For example, if the value of variable V is ABC then:
'&V.DEF' yields 'ABCDEF'
6.
A single ampersand followed by a blank is interpreted as a literal
ampersand character (not the beginning of a substitutable variable).
An ampersand followed by a non-blank is interpreted as the beginning
of a substitutable variable.
7.
A double ampersand may be used to produce a character string
starting with an ampersand. The double character rule also applies
to apostrophes (within the delimiting apostrophes required for the
short and long message text), and to a period if it immediately
follows a variable name; for example:
&&
,,
yields
yields
yields
&
within delimiting apostrophes
immediately following a variable name.
SKELETON DEFINITIONS
ISPF skeleton definitions are stored in a skeleton library and accessed
by means of the ISPF file tailoring services. Skeletons are created or
changed by editing directly into the skeleton library. The skeletons
are interpreted during ISPF execution; no compile or preprocessing step
is required.
Note:
The ISPF-distributed skeleton library also contains old
format Structured Programming Facility "proc" members. (The
Structured Programming Facility is a predecessor program product
to SPF, which, in turn, is the predecessor of ISPF.)
The following description of skeleton formats applies only to new format
skeletons used with ISPF file tailoring services.
There are two types of records that may appear in the skeleton file:
1.
Data Records - a continuous stream of intermixed text, variables,
and control characters that are processed to create an output
record.
2.
Control Statements - to control the file tailoring process. Control
statements start with a right parenthesis ")" in column 1. Records
containing a ")" in column 1, and a blank in column 2, are
interpreted as data records. Records containing a ")" in column 1
and a non-blank character in column 2, are interpreted as control
statements.
Note: A )DEFAULT control statement can be used for assigning
different special characters for syntactical purposes.
254
ISPF Dialog Management Services
Data Records
Columns 1-71 of each data record are scanned and processed as described
below. If the result of variable substitution is an output record
larger than 80 characters, file tailoring is terminated and a message is
displayed.
If more than one input record maps to a single output record,
continuation is specified by a question mark (7) in column 72 of each
input record that is to be continued. If any character other than a
question mark appears in column 72 of an input record, it is copied to
column 72 of the output record. In this situation, column 72 of the
output record must not contain generated data (i.e., it must be blank)
for the continuation character to be copied. Otherwise, a severe error
results.
Any blank data records are deleted from file tailoring output.
The following control characters have special meanings:
•
An exclamation point (!) is used as a tab character. It tabs the
output record to the next tab stop and fills with blanks.
The next
character following exclamation point in the input record is put at
the tab stop location in the output record. Tab stops are specified
by use of the )TB control statement.
•
A less-than «), vertical bar (I), and greater-than (» symbol,
respectively, specify the beginning, middle, and end of a
conditional substitution string:
where "string1" must contain at least one variable name.
can be null.
"string2"
If the first variable in "string1" is not null, "stringl" is
substituted in the output record. If the first variable in
"string1" is null, "string2" is substituted in the output record.
Chapter 7. Panel and Message Definition and Skeleton Formats
255
Control Statements
The general format of a control statement, which must begin in column 1,
is:
)control-word
tokenl token2
token31
where each token represents a name, value, operator, or keyword.
The tokens must be separated by one or more blanks, and may not contain
embedded blanks. A token may be coded as:
•
A character string
•
A dialog variable name, preceded by an ampersand
•
A concatenation of variable names and character strings
The
the
the
are
current value of each variable is substituted prior to evaluation of
control statement. The rules for delimiting a variable name and for
use of ampersands, periods, double ampersands, and double periods
the same as for data records; see "Data Records," above.
Specific control statements are described below.
)DEFAULT
abcdefg
The seven characters, represented by "abcdefg" override the use of the
")", "&", "?", "!", "<", "I", and u>" characters, respectively. Exactly
seven characters must be specified, and they must be special
(non-alphameric) characters.
The )DEFAULT statement takes effect immediately, when it is encountered.
It remains in effect until the end of FTINCL processing, or until
another )DEFAULT statement is encountered.
)TB
value1
value8
Up to eight tab stops can be specified. A tab stop specifies a tab
position in the output record, and must be in the range 1-80. The
default is one tab stop at location 80.
)IM
skel-name
~
[OPT]
The specified skeleton is imbedded at the point where the )IM statement
is encountered. Up to three levels of imbedding are permitted. The
optional NT parameter indicates that no tailoring is to be performed on
the imbedded skeleton.
The optional OPT parameter indicates that the skeleton may not be
present. If OPT is coded and the skeleton is not present, no error
256
ISPF Dialog Management Services
indication is given, and the ~ecord is ignored. If OPT is not coded,
and the skeleton is not present, a severe error occurs.
)SEL
relational-expression
)ENDSEL
The relational expression is evaluated for a true or false condition.
If the condition is true, the skeleton input records between the )SEL
and the corresponding )ENDSEL are processed. If the condition is false,
these records are skipped. Up to eight levels of nesting are
permitted.: The relational expression consists of a simple comparison
of the form:
valuel operator value2
or a combination of up to eight simple comparisons joined by connectors.
The system variable Z may be used to represent a null or blank value.
The allowable operators are:
EQ
NE
GT
LT
or
or
or
or
LE
GE
NG
NL
=
~=
>
<
The allowable connectors are
or
or
or
or
<=
>=
~>
~<
I (OR) and && (AND).
Examples:
&COND = YES
&TESTl ~= &Z
&TESTI ~= &Z
)SEL
)SEL
)SEL
)DOT
I &ABC
&&
&ABC
= 5
=5
table-name
)ENDDOT
The skeleton input records between the )DOT and the corresponding
)ENDDOT are iteratively processed, once for each row in the named table,
beginning with the first row. At the start of each iteration, the
contents of the current table row are retrieved (stored into the
corresponding dialog variables). Those values can then be used as
parameters in control statements or substituted into data records. Up
to four levels of nesting are permitted. The same table cannot be
processed recursively.
If the table was already open, it remains open after file tailoring with
the CRP positioned at TOP. If it was not open, it is opened
automatically and then closed upon completion of file tailoring.
Chapter 7. Panel and Message Definition and Skeleton Formats
257
For an example showing use of )DOT and )ENDDOT, see "File Tailoring" in
Chapter 2.
)SET
variable
=
expression
)SET allows a value to be assigned to a dialog variable. The variable
name should not be preceded by an ampersand, unless the variable name is
itself stored as a variable. The expression can be specified as either:
valuel
or:
valuel
operator
value2
operator
value15
where "operator" can be a plus sign (+) or a minus sign (-).
2.,glL comment
The statement is treated as a comment. No tailoring is performed, and
the record is not placed in the output file.
Note: The)N comment statement of PDF edit models is not a valid
control statement for file tailoring. It causes file tailoring
termination.
Sample Skeleton File
A sample skeleton file is shown in Figure 43.
The sample skeleton references several dialog variables (ASMPARMS,
ASMIN, MEMBER, etc.). It also illustrates use of select statements
")SEL" and ")ENDSEL If to conditionally include records. The first part
of the example has nested selects to include concatenated macro
libraries if the library names have been specified by the user (i.e., if
variables ASMMACl and ASMMAC2 are not equal to the null variable Z).
In the second part of the example, select statements are used to
conditionally execute a load-go step. An imbed statement, If)IM", is
used to bring in a separate skeleton for the load-go step.
258
ISPF Dialog Management Services
EXEC PGM=IFOXOO,REGION=128K,
IIASM
PARM=(&ASMPARMS)
II
IISYSIN
DD DSN=&ASMIN(&MEMBER),DISP=SHR
IISYSLIB
DD DSN=SYS1.MACLIB,DISP=SHR
)SEL &ASMMAC1 -.= &Z
II
DD DSN=&ASMMAC1,DISP=SHR
)SEL &ASMMAC2 -.= &Z
II
DD DSN=&ASMMAC2,DISP=SHR
)ENDSEL
)ENDSEL
IISYSUT1
DD UNIT=SYSDA,SPACE=(CYL,(5,2))
IISYSUT2
DD UNIT=SYSDA,SPACE=(CYL,(2,1))
IISYSUT3
DD UNIT=SYSDA,SPACE=(CYL,(2,1))
IISYSPRINT DD SYSOUT=(&ASMPRT)
)C~1
IF USER SPECIFIED "GO", WRITE OUTPUT IN TE~lP DATA SET
) CH
THEN HfBED "LINK AND GO" SKELETON
)SEL &GOSTEP = YES
IISYSGO
DD DSN=&&&&OBJSET,UNIT=SYSDA,SPACE=(CYL,(2,1)),
II
DISP=(HOD,PASS)
)IM
LINKGO
)ENDSEL
)CM
ELSE (NOGO), WRITE OUTPUT TO USER DATA SET
)SEL &GOSTEP = NO
IISYSGO
DD DSN=&ASMOUT(&MEMBER),DISP=OLD
)ENDSEL
I I"'~
Figure 43.
Sample Skeleton File
Chapter 7. Panel and Message Definition and Skeleton Formats
259
260
ISPF Dialog Management Services
APPENDIX A. USING THE DISPLAY SERVICE
This appendix describes the use of the DISPLAY, TBGET, and TBADD
services in a dialog function that allows a user to add data to a table.
Sections of this publication, containing information needed to
understand this appendix, are listed in the Reading List on the next
page.
During function processing, the DISPLAY service is used to control
displays requesting the user to enter data for new employees. The data
consists of employee serial number (which is entered on panel SER) and
name and phone number (which are entered on panel DATA). After the data
is entered by the application user, it is added to the table, as a row,
through use of the TBADD service.
If the application user enters an employee serial number for which an
employee record already exists in the table, the message DUPLICATE
NUt-iBER is displayed on line one of the panel, SER. If the user enters
the HELP command or presses the HELP PF key 1, the message EMPLOYEE
RECORD ALREADY EXISTS FOR THIS NUt-iBER. ENTER ANOTHER is displayed on
line three of the panel.
When the user successfully enters data for an employee, the message NEW
RECORD INSERTED is displayed on line one of panel SER. Then the user
may enter the serial number of the next employee for which data is to be
added to the table.
The user ends function processing by entering the END or RETURN command
(or by pressing the END or RETURN PF key), on any panel that the
function displays.
Logic that updates or deletes existing rows in the table is not
included. Also, logic is not included to process any function commands
originated by the user.
(Logic that updates table rows and processes
function commands is illustrated in Appendix C, "Using the TBDISPL
Service" on page 289).
(The function may be initiated by a user from a terminal by means of the
ISPSTART command. If the user has already started ISPF, the function
may be initiated, at the terminal, from a menu (on which the function is
to be invoked by one of the provided selections) or from any display
containing a command line, by means of SELECT action in a command table.
Or, the function may be initiated from another function by use of the
SELECT service.)
Steps in dialog function processing are listed on a following page.
Each step has a step identifier (la, 1b, 2a, etc.). This identifier
refers to a descriptioh, on a following page, of the processing
performed by the step.
Appendix A. Using the DISPLAY Service
261
READING LIST
Selected topics in this publication are listed below. They contain
descriptions of the ISPF facilities illustrated by this appendix. The
purpose is to allow a reader to gain, with a minimum of study,
information to understand the example given on the following page.
Sections to be Read
Chapter 1, in its entirety (7 pages)
Chapter 2, selected topics (15 pages):
Dialog Organization
Dialog Services Overview
Display Services
Panel Definitions
Message Definitions
Table Services
Table Residency
Accessing Data
Example
Variable Services
Variable Access - Order of Search
Relationship of Function Pools to Dialog Functions
The Function Pool for Command Procedures
The Function Pool for Programs (first paragraph only)
Chapter 3, selected topic (1 page):
END and RETURN Commands (first two paragraphs only)
Chapter 6, selected topics (12 pages):
Invocation of Services
Command Invocation
Return Codes from Services
DISPLAY - Display Panels and Messages
TBADD - Add a Row to a Table
TBCLOSE - Close and Save a Table
TBGET - Retrieve a Row from a Table
TBOPEN - Open a Table
Chapter 7, selected topics (10 pages)
Panel Definitions
Panel Body Section
Sample Body Section
Initialization and Processing Sections
Statement Formats
IF Statement
VER Statement
Message Definitions
Message ID
Message Library
262
ISPF Dialog Management Services
STEPS IN FUNCTION PROCESSING
This section lists the steps in the function. Dialog service requests (CONTROL,
TBOPEN, DISPLAY, etc.) issued in the steps, are in the command procedure format.
Note: Program format dialog service requests are illustrated with each
service description in Chapter 6. Additional examples of services requests in
both the command procedure (CLIST, EXEC) and program (COBOL, FORTRAN, PL/I)
format may be found in ISPF Dialog Management Services Examples.
Additional comments about function processing follow in "Description of Steps in
Function Processing."
Step
Id
Function Processing
Comment
la.
lb.
CONTROL ERRORS CANCEL
TBOPEN TAB1 WRITE
Terminate if 12 or higher return code.
Open table TAB1.
2a.
DISPLAY PANEL(SER)
Display panel SER requesting serial number.
- User enters employee serial number.
Go retrieve any existing employee record.
END or RETURN entered.
2b.
2c.
if return code = 0, go to 3a
if return code = 8, go to 8a
3a.
3b.
3c.
TBGET TAB1
if return code = 0, go to 4a
if return code = 8, go to Sa
Attempt retrieval of employee record.
= record exists.
8 = no record exists.
4a.
DISPLAY PANEL(SER) MSG(EMPX210)
Display DUPLICATE NUMBER message.
- User enters another number.
Go retrieve any existing employee record.
END or RETURN entered.
4b.
4c.
if return code = 0, go to 3a
if return code = 8, go to 8a
Sa.
Sb.
Set dialog variables to blanks
DISPLAY PANEL(DATA)
Sc.
Sd.
if return code = 0, go to 6a
if return code = 8, go to 8a
6a.
6b.
TBADD TAB1
if return code = 0, go to 7a
7a.
DISPLAY PANEL(SER)
7b.
7c.
8a.
8b.
~lSG(EMPX211)
if return code = 0, go to 3a
if return code = 8, go to 8a
TBCLOSE TABl
End the function
°
Blank variables LNA~1E, FNAME, I, PA, PHNUM.
bisplay panel DATA requests employee data.
- User enters employee name and phone no.
Go write data to the table.
END or RETURN entered.
Write new record to the table.
Display NEW RECORD INSERTED message.
- User enters next number to be added.
Go retrieve any existing employee record.
END or RETURN entered.
Write the table to permanent storage.
End the function.
Appendix A. Using the DISPLAY Service
263
DESCRIPTION OF STEPS IN FUNCTION PROCESSING
The description below is related, by step id, to "Steps in Function
Processing" above. Referenced figures are collected at the end of the
description.
Step
Id
Description
la
This ISPF service request specifies that the function is to be
terminated for a return code of 12 or higher from an ISPF
service request.
lb
Open the table: read table TAB1 (contents of which are shown
in Figure 44) into virtual storage.
2a
This DISPLAY operation uses panel definition SER (shown in
Figure 45) to control the format and content of the display
(shown in Figure 46). The display requests the user to enter
a serial number for an employee. After the user enters the
serial number (in the field labled EMPLOYEE SERIAL NUMBER),
the DISPLAY service verifies it after storing it in function
pool variable EMPSER. The verification is specified in aVER
statement in the )PROC section of the panel definition, as
shown in Figure 45:
VER (&EMPSER,NONBLANK,PICT,NNNNNN)
This statement specifies ~hat EMPSER must be nonblank and must
consist of six digits, each in the range of 0 - 9.
When the input passes the verification, the DISPLAY service
returns control to the function.
If the input fails the verification, the panel is
automatically displayed again, but with an appropriate
ISPF-supplied message displayed, right justified, on line 1.
For example, if the user fails to enter the required employee
serial number, an ISPF-provided message, ENTER REQUIRED FIELD,
is displayed (shown in Figure 47).
After reentry by the user, the information is stored again in
function pool variable EMPSER and, again, it is verified. The
process is repeated until the verification tests are passed.
(Another example of verification processing is given in the
step 5b description).
2b
264
If the return code is 0, the display operation is successfully
completed. Go to step 3a to verify that no record exists for
this employee number.
ISPF Dialog Management Services
2c
If the return code is 8, the END or RETURN command was entered
on the display by the user. Go to step 8a to end processing.
3a
This TBGET uses the employee serial number, stored in EMPSER
in step 2a or 7a, to attempt retrieval of an employee record
from the TABl table. The table is a keyed table and was
created by the TBCREATE service, in another dialog, by the
following request:
TBCREATE TABl KEYS(EMPSER) NAMES(LNAME FNAME I PHA PHNUM)
3b
If the return cude is 0, the record is found, which means that
a record already exists for the employee serial number entered
by the user. Go to step 4a to display the DUPLICATE NUMBER
message.
3c
If the return code is 8, no record is found.
request the user to enter employee data.
4a
This DISPLAY operation uses panel definition SER (shown in
Figure 45) and message EMPX2l0 (shown in Figure 48) to control
the format and content of the display.
Go to step 5a to
Note: The following DISPLAY request, omitting the
PANEL(SER) parameter, could have been used in this step:
DISPLAY MSG(EMPX210)
When the PANEL parameter is omitted, the specified
message is superimposed on the panel currently being
displayed, which, in this case, is the panel SER.
The short form of the message EMPX210, DUPLICATE NUMBER, is
superimposed - right justified, on line 1 of the panel display
(shown in Figure 49). While viewing this message, the user
may enter the HELP command by pressing PF key 1. This causes
the long form of the message to appear, superimposed - left
justified, on line 3 of the display, as follows: EMPLOYEE
RECORD ALREADY EXISTS FOR THIS NUMBER. ENTER ANOTHER. (See
Figure 50).
After the user enters the requested serial number, the DISPLAY
service stores it in function pool variable EMPSER and
verifies it as described for step 2a. After the input passes
verification, the DISPLAY service returns control to the
function.
4b
If the return code is 0, the display operation is successfully
completed. Go to step 3a to verify that no record already
exists for this employee number.
4c
If the return code is 8, the END or RETURN command was entered
on the display by the user. Go to step 8a to end processing.
Appendix A. Using the DISPLAY Service
265
5a
These function pool variables are blanked to prepare to
receive data for a new employee record.
5b
The DISPLAY operation uses panel definition DATA (shown in
Figure 51) to control the format and content of the display
(shown in Figure 52).
The variables blanked in step 5a are displayed along with the
new employee serial number, which was entered in step 2a or
7a. The user is asked to enter, in the blanked fields
displayed on the screen, the name and phone number for the
employee.
After the user enters these fields, the DISPLAY service stores
the input in function pool variables LNAME, FNAME, I, PHA, and
PHNUM. Then, verification of the input is performed as
specified in VER statements in the )PROC section of the panel
definition (shown in Figure 51).
The input fields may pass the verification tests. If they do,
the DISPLAY service returns control to the function.
The input fields may fail the verification tests. If they do,
a short form message is displayed superimposed on line 1 of
the display.
The message may be provided by ISPF (as described for step 2a)
or the number of the message displayed may have been specified
in the VER statement that defined the verification test (see
VER statements containing message-ids EMPX212, EMPX213, and
E~1PX214 in Figure 51).
Where a message-id is specifi.ed, this
message is displayed instead of an ISPF-provided message. In
either case, if the user enters the HELP command, the long
form of the message is displayed, left justified, on line 3.
The text of the messages request reentry of information. When
reentered, this information is stored again in function pool
variables and, again, it is verified. The process is repeated
until the verification tests are passed.
266
5c
If the return code is 0, the display operation is successfully
completed. Go to step 6a to add the record to the table.
5d
If the return code is 8, the END or RETURN command was entered
on the display by the user. Go to step 8a to end processing.
Sa
This TBADD adds a row to table TAB1 by copying values from
function pool variables to the table row. The values copied
are employee serial number (stored in the function pool
variable EMPSER by step 2a or 7a) and employee name and phone
number (stored in function pool variables LNAME, FNAME, I,
PHA, and PHNUM by step 5b).
ISPF Dialog Management Services
Note:
Function pool variables must have the same names
as the table variables to which they are to be copied by
the TBADD operation.
Therefore, the names used in the TBCREATE that
establishes the table (see the names EMPSER, LNAME,
FNAME, I, PHA, and PHNUM in the TBCREATE illustrated in
the step 3a description) are the same as the names used
in the panel definitions (shown in Figure 45 and
Figure 51) that establish function pool variables in
which user-entered information is stored by the DISPLAY
service.
6b
If the return code is 0, the TBADD operation is successfully
completed. Go to step 7a to display the NEW RECORD INSERTED
message.
7a
This DISPLAY operation uses panel definition SER (shown in
Figure 45) and message EMPX211 (shown in Figure 48) to control
the format and content of the display. The short form of
message EMPX211, NEW RECORD INSERTED, is superimposed - right
justified, on line 1 of the display. If the user enters the
HELP command while this message is being displayed, the long
form of the message (also shown in Figure 48), ENTER SERIAL
NUMBER FOR NEXT EMPLOYEE RECORD TO BE INSERTED, is
superimposed - left justified, on line 3 of the display.
The user enters another serial number. The DISPLAY service
verifies it as described for step 2a. When the serial number
passes the verification tests, the DISPLAY service returns
control to the function.
7b
If the return code is 0, the display operation is successfully
completed. Go to step 3a to verify that no record already
exists for this employee number.
7c
If the return code is 8, the END or RETURN command was entered
on the display by the user. Go to step 8a to end processing.
8a
Close the table TAB1: write it from virtual storage to
permanent storage.
8b
End the function.
Appendix A. Using the DISPLAY Service
267
EMPSER
LNAME
FNAME
------ ------------ ---------
598304
172397
813058
395733
502774
Figure 44.
ROBERS TON
Sr-lITH
RUSSELL
ADAMS
CARUSO
RICHARD
SUSAN
CHARLES
JOHN
VINCENT
I
PHA
PHNUM
P
A
L
301
301
202
202
914
840-1224
547-8465
338-9557
477-1776
294-1168
--------
Q
J
Five Rows in Table Library Member TAB1 (TAB 1 is Referenced by Steps 1b,
3a, 6a, and 8a)
)BODY
%-------------------------- EMPLOYEE SERIAL -----------------------------------%COMMAND ===> ZCMD
+
%ENTER ENPLOYEE SERIAL BELOW:
+
+
+
EMPLOYEE SERIAL~~===> EMPSER+
+
(MUST BE 6 NUMERIC DIGITS)
+
+
+PRESS%ENTER+TO DISPLAY NEXT SCREEN FOR ENTRY OF EMPLOYEE DATA.
+
+PRESS%END KEY+(PF 3) TO END THIS SESSION.
)PROC
VER (&EMPSER,NONBLANK,PICT,NNNNNN)
)END
Figure 45.
268
Panel Library Member, Panel Definition SER (Used in Steps 2a, 4a, and
7a)
ISPF Dialog Management Services
-------------------------- EMPLOYEE SERIAL -----------------------------------COMMAND ===>
ENTER EMPLOYEE SERIAL BELOW:
EMPLOYEE SERIAL ===>
(MUST BE 6 NUMERIC DIGITS)
PRESS ENTER TO DISPLAY NEXT SCREEN FOR ENTRY OF
E~lPLOYEE
DATA.
PRESS END KEY (PF 3) TO END THIS SESSION.
Figure 46.
Panel Display SER (Displayed by Steps 2a, 4a, and 7a)
Appendix A. Using the DISPLAY Service
269
-------------------------- EMPLOYEE SERIAL --------------- ENTER REQUIRED FIELD
COMMAND ===>
ENTER EMPLOYEE SERIAL BELOW:
EMPLOYEE SERIAL ===>
(MUST BE 6 NUMERIC DIGITS)
PRESS ENTER TO DISPLAY NEXT SCREEN FOR ENTRY OF EMPLOYEE DATA.
PRESS END KEY (PF 3) TO END THIS SESSION.
Figure 47.
Panel Display SER With an ISPF-provided Message Superimposed on Line 1
(Displayable During Steps 2a and 7a)
EMPX210 'DUPLICATE NUMBER'
. ALARM=YES
'EMPLOYEE RECORD ALREADY EXI STS FOR THI S NU~1BER.
ENTER ANOTHER. '
EMPX211 'NEW RECORD INSERTED'
'ENTER SERIAL NUMBER FOR NEXT EMPLOYEE RECORD TO BE INSERTED.'
EMPX212 'ENTER PHONE NUMBER'
'IF THE E~lPLOYEE HAS NO PHONE, ENTER 000-0000.'
EMPX213 'ENTER FIRST NAME'
'A FIRST NAME OR FIRST INITIAL IS REQUIRED.'
EMPX214 'ENTER LAST NAME'
'A LAST NAME IS REQUIRED.'
Figure 48.
270
Message Library Member EMPX21 (Used by Steps 4a, 5b, and 7a)
ISPF Dialog Management Services
- - - - - - - - - - - - --- - - - - - --- - -- EHPLOYEE SERIAL - - - -- - - - - - - - - - - - - DUPLICATE NUMBER
COMMAND ===>
ENTER EMPLOYEE SERIAL BELOW:
EMPLOYEE SERIAL ===> 598304
(MUST BE 6 NUMERIC DIGITS)
PRESS ENTER TO DISPLAY NEXT SCREEN FOR ENTRY OF EMPLOYEE DATA.
PRESS END KEY (PF 3) TO END THIS SESSION.
Figure 49.
Panel Display SER With the Short Form of Message EMPX210 Superimposed on
Line 1 (Displayed by Step 4a)
Appendix A. Using the DISPLAY Service
271
-- - - - - - -- -- - - - - -- - - -- - - -- - ENPLOYEE SERIAL -- - - - -- - - - - - - - - - - - - DUPLICATE NUMBER
CONNAND ===>
EMPLOYEE RECORD ALREADY EXISTS FOR THIS NUMBER.
ENTER ANOTHER.
ENTER EHPLOYEE SERIAL BELOW:
ENPLOYEE SERIAL ===> 598304
(HUST BE 6 NUMERIC DIGITS)
PRESS ENTER TO DISPLAY NEXT SCREEN FOR ENTRY OF
E~lPLOYEE
DATA.
PRESS END KEY (PF 3) TO END THIS SESSION.
Figure 50.
272
Panel Display SER With the Long Form of Hessage EHPX210 Superimposed on
Line 3 (Displayable During Step 4a)
ISPF Dialog Management Services
)BODY
%------------------------------------ EMPLOYEE RECORDS
%COMHAND ===> ZCHD
+
% E~lPLOYEE SERIAL: &EMPSER
+
+ E~lPLOYEE NAME:
LAST
~~===> LNAME
+
+
FIRST ~~===> - FNAME
+
INITIAL~6===> 1+
+
+ HOHE PHONE:
+
AREA CODE
~~===> PHA+
+
LOCAL NUMBER%===>- PHNUH
+
-----------------------
+
+
+
+
+PRESS~~ENTER+TO STORE EMPLOYEE DATA AS ENTERED ABOVE.
+
+PRESS%END KEY+(PF 3) TO END THIS SESSION.
)INIT
.CURSOR = LNAME
IF (&PHA = ' ')
&PHA = 914
)PROC
VER
VER
VER
VER
VER
VER
VER
VER
ALPHA)
(&FNAME,ALPHA)
(&I,ALPHA)
(&PHA,NONBLANK,PICT,NNN)
(&PHNUM,PICT,'NNN-NNNN')
(&LNAME, NONBLANK, ~ISG=EMPX214)
(&FNAME,NONBLANK,MSG=EMPX213)
(&PHNUM,NONBLANK,MSG=EMPX212)
(&LNA~lE,
)END
Figure 51.
Panel Library Member, Panel Definition DATA (Used in Step 5b)
Appendix A. Using the DISPLAY Service
273
-----------------------------------COMl'fAND =---=>
EMPLOYEE RECORDS
EMPLOYEE SERIAL: 106085
EMPLOYEE NAME:
LAST
===>
FIRST
===>
INITIAL ===>
HOl'tE PHONE:
AREA CODE
LOCAL NUMBER
===>
===>
PRESS ENTER TO STORE EMPLOYEE DATA AS ENTERED ABOVE.
PRESS END KEY (PF 3) TO END THIS SESSION.
Figure 52.
274
Panel Display DATA (Displayed by Step 5b)
ISPF Dialog Management Services
-----------------------
APPENDIX B. USING THE ISPF PARMS OPTION
The Parms option allows a user to display and change a variety of ISPF
parameters at any time during the ISPF session. Changes remain in
effect until the user changes the parameter again, and are saved from
session to session. The parameter options menu is shown in Figure 53.
------------------------OPTION ===>
1
2
3
TERNINAL
LOG/LIST
PF KEYS
Figure 53.
ISPF PARAHETER OPTIONS
----------------------------
- Specify terminal characteristics
- Specify ISPF log and list defaults
- Specify PF keys for 3277 terminal with 12 PF keys
Parameter Options Menu
SPECIFY TERMINAL CHARACTERISTICS (OPTION 0.1)
When a user selects this option, a panel is displayed that allows him to
specify the terminal type, number of program function (PF) keys, the
default pad character for panel input fields, the mode of operation for
a 3278 Hodel 5, and the command stacking delimiter.
For MVS and VH/SP, the initial defaults are shown in Figure 54.
Appendix B. Using the ISPF PARMS Option
275
For VSE, the initial defaults are shown in Figure 55.
The allowable alternatives for these defaults are indicated on the
display.
After review and any changes are made to these parameters, enter the END
command to return to the previous menu.
----------------------COHHAND ===>
TERNINAL CHARACTERISTICS
TERHINAL TYPE
===>
3277
(3277
(3277A
(3278
(3278A
(3278T
NUHBER OF PF KEYS
===>
12
(12 or 24)
INPUT FIELD PAD
===>
N
(N - Nulls)
(B - Blanks)
SCREEN FORHAT
===> DATA
(3278 Model 5 only)
COHHAND DELIHITER
Figure 54.
276
===>
-
----------------------------
3275/3277 terminal)
3275/3277 with APL keyboard)
3276/3278/3279 terminal)
3276/3278/3279 with APL keyboard)
3276/3278/3279 with TEXT keyboard)
(DATA - Format based on data width)
(STD - Always format 24 lines by 80 chars)
(MAX - Always format 27 lines by 132 chars)
(Special character for command stacking)
Terminal Characteristics Panel (MVS and VM/SP)
ISPF Dialog Management Services
----------------------COMHAND ==>
TERHINAL CHARACTERISTICS
----------------------------
TERHINAL TYPE
=> 3277
(3277
(3277A
(3278
(3278A
(3278T
NUMBER OF PF KEYS
===>
12
(12 or 24)
INPUT FIELD PAD
===>
N
(N - Nulls)
(B - Blanks)
OPTIMIZE DISPLAY
==>
N
(Y - Optimize display data)
(N - No optimization of display data)
cm-mAND DELIMITER
==>
Figure 55.
-
3275/3277 terminal)
3275/3277 with APL keyboard)
3276/3278/3279 terminal)
3276/3278/3279 with APL keyboard)
3276/3278/3279 with TEXT keyboard)
(Special character for command stacking)
Terminal Characteristics Panel (VSE)
Specification of terminal type allows ISPF to recognize valid
(displayable) characters. A 3278 terminal can display six more
characters than a 3277. If you have a 3279 terminal, specify 3278 as
the terminal type, since a 3279 terminal has the same character set as a
3278.
Note:
One or more of following installation-dependent options
for terminal type may also be included on this panel:
3277KN - for 3277 Katakana terminals
3278CF - for 3278 Canadian French terminals
3278KN - for 3278 Katakana terminals
Specification of the number of PF keys controls the particular set of PF
key definitions currently in use, and also affects the panel displayed
by option 0.3.
Appendix B. Using the ISPF PARMS Option
277
In the following cases, ISPF automatically senses the terminal type and
number of PF keys:
•
If the screen size is greater than 24 lines (determined when the
user logs on), ISPF sets the terminal type to 3278.
•
If the user presses a PF key higher than 12, ISPF sets the terminal
type to 3278 and the number of PF keys to 24.
ISPF cannot sense the terminal type or number of PF keys in the
following cases:
•
If the user switched between a 3277 and 3278 Model 2 (both 24-line
terminals).
•
If the user switched from a terminal with 24 PF keys to a terminal
with 12 PF keys.
In these cases, the user must inform ISPF of the terminal type and
number of PF keys using option 0.1 or 0.3. Otherwise, incorrect
character set and PF key definitions will be used (see option 0.3).
ISPF automatically determines the terminal type during ISPF
initialization, and sets it to the appropriate value.
ISPF automatically sets (or changes) the number of PF keys in the
following cases:
•
If the terminal type is 3277, ISPF initializes the number of keys to
12.
•
If the terminal type is 3278, ISPF initializes the number of keys to
whatever was "remembered" from the user's last ISPF session (for a
new user, the number of keys is initialized to 12).
•
If the user presses a PF key higher than 12, ISPF sets the number of
keys to 24.
ISPF cannot sense the number of PF keys if a user has switched from a
3278 with 24 PF keys to a 3278 with 12 PF keys. In this case, the user
must inform ISPF of the number of PF keys through option 0.1 (Terminal
Characteristics). Otherwise, the incorrect set of "remembered" key
definitions will be used (see option 0.3).
Specification of a pad character controls the initial padding of panel
input fields (including selection panels) but not the data portion of an
edit display. Within edit, null or blank padding is controlled with
edit commands.
Specification of display optimization controls the amount of data
written to the terminal during each display operation. Specify N to
have the complete screen image written to the terminal for each display
request. This option is appropriate for terminals that are locally
attached to the processor. Specify Y to have only changes to the screen
278
ISPF Dialog Management Services
image written to the terminal. This option is appropriate for terminals
remotely attached to the processor.
Users can stack commands on the command line by separating them with a
delimiter. The default delimiter, the semicolon, may be changed using
this option. Stacking allows the user to enter, for example:
===> FIND DEPT;HEX ON
which finds the characters DEPT and then displays the file at that point
in hex mode.
MVS: SPECIFY LOG AND LIST DEFAULTS (OPTION 0.2)
When an MVS user selects this option, a panel (Figure 56) is displayed
that allows him to specify default processing for log and list files,
lines per page, and allocation parameters, to be used when he terminates
ISPF using primary option X.
------------------------COMMAND ===>
LOG AND LIST DEFAULTS
LOG DATA SET DEFAULT OPTIONS
-----------------------------
Process option
SYSOUT class
Local printer ID
Lines per page
Primary pages
Secondary pages
==>
===>
===>
===>
===>
===>
J
A
60
10
10
-----------------------------
LIST DATA SET DEFAULT OPTIONS
----------------------------Process option
SYSOUT class
Local printer ID
Lines per page
Primary pages
Secondary pages
VALID PROCESS OPTIONS:
J - Submit job to print (and delete)
L - Route to local printer (and delete)
===>
==>
===>
===>
===>
==>
J
A
60
100
100
K - Keep data set (do not print)
D - Delete data set (do not print)
JOB STATEMENT INFORMATION: (If option "J" selected)
===> //HOSTETLA JOB (U602,B043), 'HOSTETLER RS' ,NOTIFY=HOSTETL
===>
===>
===>
Figure 56.
Log and List Defaults Panel (MVS)
Appendix B. Using the ISPF PARMS Option
279
The initial defaults are:
Log File
SYSOUT Class
Lines per Page
Primary Pages
Secondary Pages
===>
===>
===>
===>
A
60
10
10
List File
===>
===>
===>
===>
A
60
100
200
No defaults are supplied for the other parameters on this panel.
Normal values for lines per page are:
60
80
-
-
for printing 6 lines per inch
for printing 8 lines per inch
Primary/secondary allocation parameters are specified in terms of
anticipated number of pages of printout. These values are automatically
converted by ISPF to the appropriate number of blocks prior to
allocating space for the log and list files.
If the user modifies the primary/secondary allocation parameters after
the files have been allocated, the new values take effect the next time
you enter ISPF. (The list file is allocated the first time the user
requests a print function. The log file is allocated the first time a
user performs some action that results in a log message, such as saving
edited data or submitting a batch job.)
For the log file, the user may specify a primary allocation of 0 (zero)
to prevent allocation and generation of the log. Users can avoid
allocating the list file by simply not requesting any print functions.
If a user requests default processing options for the log and list
files, the following rules apply:
•
If printing as a batch job is specified, SYSOUT class and job
statement information must also be specified. (If option J for both
log and list is specified, different SYSOUT classes may be specified
but only one job is submitted for printing both files.)
•
If routing to a local printer is specified, a printer id must also
be specified.
If these rules are not observed, or if no default processing options are
specified, primary option X or the RETURN command causes the termination
menu to be displayed.
After reviewing or changing the parameters on this panel, enter the END
command to return to the previous menu.
280
ISPF Dialog Management Services
VM/SP: SPECIFY CONSOLE, LOG, AND LIST DEFAULTS (OPTION 0.2)
When a VN/SP user selects this option, a panel (Figure 57) is displayed
that allows him to specify default processing for the virtual console
and for the log and list files, to be used when he terminates ISPF using
primary option X. If the user has not specified default processing
options, primary option X will cause the ISPF termination menu to be
displayed.
------------------COHHAND ===>
CONSOLE, LOG, AND LIST
CONSOLE PROCESS OPTION
LOG PROCESS OPTION
LIST PROCESS OPTION
VALID
P K D N -
===>
===>
===>
~EFAULTS
(K or D)
(P, K, D,
or N)
(P, K or D)
LINES PER PAGE:
LOG ===> 80
LIST ===> 80
PROCESS OPTIONS:
Print file (and delete)
Keep file - do not print
Delete (purge) file - do not print
Do not generate log file
LOG/LIST SPOOL OPTIONS:
NUHBER OF COPIES ===> 1
BIN NUHBER
===>
3800 KEYWORDS
===>
SPOOL CLASS ===> A
'FOR' USER ===>
FOR SPOOLING LOG/LIST TO ANOTHER PERSON OR
USER/HACHINE ID ===>
NODE/LINK ID
===>
TAG TEXT
===>
Figure 57.
~1ACHINE:
Console, Log, and List Defaults Panel (VH/SP)
Users may also specify the number of lines per page and spool parameters
for printing the log and list files. The initial defaults are:
Lines per page
Number of copies
Spool class
===>
===>
===>
80
(for both log and list)
1
A
No ISPF-supplied defaults are provided for the other parameters on this
panel.
Appendix B. Using the ISPF PARHS Option
281
Normal values for lines per page are:
60 - for printing 6 lines per inch
80 - for printing 8 lines per inch
The virtual console is automatically started the first time ISPF invokes
a CHS command (typically, a LINK or ACCESS executed automatically) Upon
termination of ISPF, the console may be kept (in "start" status) or
deleted (purged and set to "stop" status). An appropriate processing
option for the console would be:
K - for users who normally run with a virtual console.
D - for users who normally run without a virtual console.
The ISPF log file is created the first time the user performs some
action which results in a log message, such as saving edited data or
submitting a job to the batch machine. The ISPF list file is created
the first time a user requests a print function.
For the log file, users may specify a process option of N to prevent
generation of the log. Users may avoid generation of the list file by
simply not requesting any print functions.
See Chapter 5, "Invocation and Termination" for a discussion of spool
parameters that may be specified for the log and list files.
After reviewing or changing the parameters on this panel, enter the END
command to return to the previous menu.
VSE: SPECIFY LOG AND LIST DEFAULTS (OPTION 0.2)
When a VSE user selects this option, a panel (Figure 58) is displayed
that allows him to specify default processing for the log and list
files, lines per page, and POWER JECL statements to be used when he
terminates ISPF using primary option X.
The initial defaults are:
Lines per Page
Log File
List File
===> 60
===> 60
Normal values for lines per page are:
60 - for printing 6 lines per inch
80 - for printing 8 lines per inch
If a user requests default processing option J (print via a batch job),
the POWER JECL statement information must be specified.
282
ISPF Dialog Management Services
-------------------------COMMAND ===>
LOG AND LIST DEFAULTS
LOG DATA SET DEFAULT OPTIONS
Process option
Lines per page
===>
===> 60
VALID PROCESS OPTIONS FOR
J - Submit job to print
P - Write to ICCF print
display on terminal
----------------------------
LIST DATA SET DEFAULT OPTIONS
Process option
Lines per page
===>
===> 60
LOG AND LIST DATA SETS:
(and delete)
K - Keep data set (do not print)
area and
D - Delete data set (do not print)
(and delete)
POWER JECL STATEHENTS: (If option "J" selected)
===> ..~ $ $ JOB JNH=ZLWGA
===> ..'~
===> ..'~
===> ..~
Figure 58.
Log and List Defaults Panel (VSE)
Note:
reused.
Option D means that the data in the data set is not
The physical data set is not deleted.
If option K is requested, ISPF attempts to extend the log or list data
set in the next session, unless the data set was defined with a/FILE
statement specifying DISP=D.
Note:
Extending the data set is accomplished by saving the next
available record location for the log and list data sets in the
system profile table ISPSPROF. This information is used, in the
next session, to position to the next available record in the log
or list data set.
Thus, there is a relationship between the system profile table
ISPSPROF and the physical location of the log and list data sets.
Should the log or list data set starting location not match the
information in the profile table or should the next available
record address not be within the current log or list data set,
that data set will be written from the beginning, just as though
DISP=K had not been specified in the previous session.
Appendix B. Using the ISPF PARHS Option
283
Sharing the same log or list data set between different users is
not permitted because this could lead to conflicting or erroneous
information being placed in the system profile table.
If option P is selected, ISPF prints the data set using system logical
unit SYSLST. This causes ICCF to display the data on the terminal and
to write the data to the ICCF $$PRINT area.
If default processing options are not specified, primary option X or the
RETURN command causes the termination menu to be displayed.
After reviewing or changing the parameters on this panel, enter the END
command to return to the previous menu.
SPECIFY PROGRAM FUNCTION KEYS (OPTION 0.3)
The PF key definition panel allows users to assign PF keys to ISPF
commands. A user may assign PF keys to system commands (such as HELP or
END), to commands that are meaningful within a particular function or
environment (such as the edit FIND and CHANGE commands), and to line
commands (such as edit or dialog test I or D commands).
When entering the KEYS command or select option 3 from the ISPF Parms
option menu, the panel shown in Figure 59 is displayed.
The PF key definitions shown in the figure are the default definitions
distributed with ISPF.
Before changing PF key assignments, verify the terminal type and the
number of PF keys (12 or 24). The terminal type must be one of the
following:
3277, 3277A, 3277KN, 3278, 3278A, 3278CF, 3278KN, 3278T
The panel shown in Figure 59 is the panel that is displayed for
terminals with 12 PF keys. For terminals with 24 PF keys, the first
panel displayed by the KEYS command or by option 0.3 shows the "primary"
keys (PF13-PF24). When the ENTER key is pressed, a panel is displayed
showing the "alternate" keys (PF1-PF12). Flip-flop between the two
panels by continuing to press ENTER. See Figure 60.
Users can define or change a PF key function simply by equating the key
to a command. Example:
PF9 ===> CHANGE ALL ABC XYZ
PF12 ===> PRINT
In the example, PF9 has been equated to an edit command, and PF12 has
been equated to the system-defined PRINT command.
284
ISPF Dialog Management Services
---------------------------COHHAND ===>
NUHBER OF PF KEYS
PF1
PF2
PF3
PF4
PF5
PF6
PF7
PF8
PF9
PF10
PF11
PF12
===>
==>
===>
===>
===>
===>
===>
===>
===>
===>
===>
===>
===>
12
PF KEY DEFINITION
TER~I I NAL
--------------------------TYPE
===>
3278
HELP
SPLIT
END
RETURN
RFIND
RCHANGE
UP
DOWN
SWAP
LEFT
RIGHT
CURSOR
INSTRUCTIONS:
Verify number of PF keys and terminal type before proceeding.
Press ENTER key to process changes.
Enter END command to process changes and exit.
Figure 59.
PF Key Definition Panel (12 PF Keys)
If a blank is entered for any PF key definition, the key is restored to
its ISPF default. The defaults are discussed under "Program Function
Keys."
When a PF key definition begins with a colon, it indicates a line
command. The colon is stripped off and the command to which the key is
equated is inserted in the first input field in the line at which the
cursor is currently positioned.
When a PF key definition begins with a greater-than sign, the command is
passed through to the dialog via the command field. The command table
is not searched. This is provided for compatibility with the previous
SPF product.
Appendix B. Using the ISPF PARMS Option
285
-------------------- PF KEY DEFINITION - PRIMARY KEYS ------------------------COMHAND ===>
NUHBER OF PF KEYS
PF13
PF14
PF15
PF16
PF17
PF18
PF19
PF20
PF21
PF22
PF23
PF24
===>
===>
===>
===>
===>
===>
===>
==>
===>
===>
===>
===>
===>
24
TER~lINAL
TYPE
===>
3278
HELP
SPLIT
END
RETURN
RFIND
RCHANGE
UP
DOWN
SWAP
LEFT
RIGHT
PRINT
INSTRUCTIONS:
Verify number of PF keys and terminal type before proceeding.
Press ENTER key to process changes and display alternate keys.
Enter END command to process changes and exit.
Figure 60 (Part 1 of 2).
286
PF Key Definition Panels (24 PF Keys)
ISPF Dialog Hanagement Services
------------------ PF KEY DEFINITION - ALTERNATE KEYS ------------------------COHHAND ===>
NOTE: The definitions below apply only to terminals with 24 PF keys.
PFl
PF2
PF3
PF4
PF5
PF6
PF7
PF8
PF9
PF10
PFll
PF12
===>
===>
===>
===>
===>
===>
===>
===>
==>
===>
===>
===>
HELP
SPLIT
END
RETURN
RFIND
RCHANGE
UP
DOWN
SWAP
LEFT
RIGHT
CURSOR
INSTRUCTIONS:
Press ENTER key to process changes and display primary keys.
Enter END command to process changes and exit.
Figure 60 (Part 2 of 2).
PF Key Definition Panels (24 PF Keys)
Appendix B. Using the ISPF PARt-1S Option
287
288
ISPF Dialog Management Services
APPENDIX C. USING THE TBDISPL SERVICE
This appendix describes the use of the TBDISPL and TBPUT services in a
dialog function that displays rows of a table for possible modification
by a user.
During function processing, the TBDISPL service is used to control
displays of a table, TAB1. Changes the user desires to make in TAB1,
are entered on the display directly in fields of displayed lines. Each
field corresponds to a table variable. Each line corresponds to a row
of the table.
After the user enters changes to a line or lines of the display, the
function, by using TBDISPL, locates each line changed by the user and
positions the table current row pointer (CRP) at the row in the table
that corresponds to the line. TBDISPL operation then stores the
contents of this row and values from the changed line of the display in
function pool variables. Finally, the function uses the TBPUT service
to write the updated function pool variables to the table row.
A user may originate a function command while viewing the displayed
panel. Logic is included that checks for this eventuality.
The user ends function processing by entering the END or RETURN command
(or by pressing the END or RETURN PF key) on the panel displayed by the
function.
Logic that deletes or inserts rows in the table is not included .in the
function. Also, not illustrated is the capability to perform
verification of user-enter information, in conjunction with panel
display, through specifications on the panel definition. That is
illustrated in Appendix A, "Using the DISPLAY Service"; see processing
description step Sb.
(The function may be initiated by a user at a terminal by means of the
ISPSTART command. If the user has already started ISPF, the function
may be initiated, at the terminal, from a menu (on which the function is
invoked by one of the provided selections) or from a display, containing
a command line, by means of SELECT action in a command table. Or, the
function may be initiated by another function using the SELECT service.)
Steps in dialog function processing are listed on the next page. Each
step has a step identifier (la, 2a, 2b, etc.). This identifier refers
to a description, on the page following, of the processing performed by
the step.
Appendix C. Using the TBDISPL Service
289
STEPS IN FUNCTION PROCESSING
This section lists the steps in the function.
Additional comments about function processing follow in "Description of Steps in
Function Processing."
Note: Dialog service requests in the steps (TBOPEN, TBDISPL, etc.), are in
the command procedure format. Program format dialog service requests are
illustrated with each service description in Chapter 6. Additional examples
of services requests in both the command procedure (CLIST, EXEC) and program
(COBOL, FORTRAN, PL/I) format may be found in ISPF Dialog Management Services
Examples.
Step
Id
Function Processing
Comment
1a.
TBOPEN TAB1 WRITE
Open table TAB1.
2a.
2b.
2c.
TBDISPL TAB1 PANEL(T1PANEL)
if return code = 0, go to 3a
if return code = 4, go to 4a
2d.
if return code = 8, go to Sa
Display table TAB1.
= one line modified and/or command entered.
4 = two or more lines modified. A command
may have been entered, as well.
8 = END or RETURN entered.
°
3a.
3b.
3c.
3d.
3e.
TBQUERY TAB1 POSITION(CHECKCRP)
if CHECKCRP = 0, go to 7a
TBPUT TAB1
if ZCMD is not null, go to 7a
if ZCMD is null, go to 2a
If CRP=O, scrollable line was not changed,
but command field (ZCMD) was changed.
Process final line on this screen.
If not null, a value is in the command field.
If null, redisplay the table.
4a.
4b.
4c.
4d.
TBPUT TAB1
TBDISPL TAB1
if return code = 0, go to 3a
if return code = 4, go to 4a
Process one of two or more lines remaining.
Sa.
5b.
5c.
5d.
5e.
TBQUERY TAB1 POSITION(CHECKCRP)
if CHECKCRP = 0, go to 6a
TBPUT TAB1
TBDISPL TAB1
go to Sa
User entered END or RETURN command on the
screen just displayed. Process any lines
changed on this screen and then end the
function.
6a.
6b.
TBCLOSE TAB1
End the function
End the function.
7a.
7b.
process function command
CONTROL DISPLAY SAVE
7c.
CONTROL DISPLAY RESTORE
Function command processing
- Save screen contents and status.
- Process the function command, including
any displays.
- Restore screen contents and status
that were stored in step 7b.
Redisplay the table.
7d.
290
go to 2a
ISPF Dialog Management Services
°4 == one
line and/or a
two or more lines
command remain.
remain to be processed.
DESCRIPTION OF STEPS IN FUNCTION PROCESSING
The description below is related, by step id, to "Steps in Function
Processing" above. Referenced figures are collected at the end of the
description.
Step
Id
Description
la
Open the table: read table TABl (contents of which are shown
in Figure 61) into virtual storage for update.
2a
Display table TABl (beginning with the row at which the CRP is
positioned). The display, as it appears at the terminal, is
shown in Figure 62. Format of the display is controlled by a
panel definition named TlPANEL (shown in Figure 63). TBDISPL,
in addition to displaying the table, allows the user to scroll
up and down the scrollable data in the display.
The user may continue, indefinitely, to scroll through the
displayed table. Control will be returned to the function
when the user does one of the following:
•
enters the END or RETURN command without entering data on
the panel.
•
enters a change in one or more lines of scrollable data
and/or enters data in the command field (which is variable
ZCMD, shown in Figure 63) and presses the ENTER key,
enters a SCROLL command, or enters the END or RETURN
command.
When a line in the scollable part of the display has been
changed, TBDISPL retrieves - from the table - the row
corresponding to that line (i.e., the row values are stored in
the function pool). The table CRP is positioned at this row
when the row is retrieved. Next, values from the changed line
are stored in the function pool. If no lines are changed, the
CRP is set to zero. Any value entered in the command field is
stored in variable ZCMD.
2b
If the return code is 0, a single line was changed by the
user; or an entry made in the command field (ZCMD) by the
user, was passed through to this function; then the user
pressed the ENTER key or entered a SCROLL command. Go to step
3a to process the line and/or the value in the command field.
2c
If the return code is 4, more than one line was changed and
the ENTER key was pressed or a SCROLL command was entered by
the user. Go to step 4a to update the table.
Appendix C. Using the TBDISPL Service
291
2d
If the return code is 8, the END or RETURN command was entered
by the user, go to step 5a to determine if any lines were
changed.
3a
Use TBQUERY to obtain the position of the CRP in a variable
named CHECKCRP.
3b
If the CRP is 0, no scrollable lines were changed by the user,
but the command field (ZCMD) contains data that was originated
by the user while viewing the display.
3c
This TBPUT writes values stored in the function pool to the
table row.
A single line was changed by the user or several lines were
changed and the line currently being processed is the final
one to be processed.
3d
When ZCMD is not null, it contains data that was originated by
the user while viewing ths display.
3e
Go to step 2a to redisplay the table, positioning the most
recently changed line at the top of the display.
4a
This TBPUT writes values stored in the function pool to the
table row.
More than one line was changed by the user.
4b
A TBDISPL request issued with no panel name and message-id
specified, positions the CRP to the row corresponding to the
next line of the screen in which the application user made a
change. That row is retrieved (i.e., stored in the function
pool). Next, values from the line are stored in the function
pool.
4c
Go to step 3a if a single line remains to be processed.
4d
Go to step 4a if more than one line remains to be processed.
5a
The END or RETURN command was entered by the application user.
Save the position of the CRP in a variable named CHECKCRP.
5b
If the CRP is 0, no changed lines remain to be processed for
the just displayed screen, or the END or RETURN command was
issued by the user without having changed any lines.
(The processing logic ignores any function command originated
by the application user in conjunction with the END or RETURN
command. The function developer, however, may choose to
accept for processing function commands entered with END or
RETURN. Function command processing is described by steps 3d
and 7a through 7c.)
292
ISPF Dialog Management Services
5c
If the CRP is nonzero, update the row of the table at which
the CRP is positioned.
5d
A TBDISPL request issued with no panel name and message-id
specified, positions the CRP to the row corresponding to the
next line of the screen in which the application user made a
change. That row is retrieved (i.e., stored in the function
pool). Next, values from the line are stored in the function
pool.
(Because the END or RETURN command has been entered by the
user, a return code of 8 is returned each time for this
TBDISPL request.)
5e
Go to Sa to test the CRP for O. If 0, no more lines
containing changes remain to be processed.
6a
Close the table: write table TAB1, as revised, from virtual
storage to permanent storage.
6b
End the function.
7a
Process the data, in ZCMD - the command field, originated by
the user. (This data is either a bona fide function command i.e., data anticipated by function processing - or invalid
data entered by the user).
7b
If function command processing is to include any BROWSE, EDIT,
DISPLAY, or TBDISPL operations, use CONTROL DISPLAY SAVE to
save the contents and status of the currently displayed
screen.
7c
CONTROL DISPLAY RESTORE restores the screen previously saved
by CONTROL DISPLAY SAVE so that processing can be resumed.
If non-ISPF displays are processed, instead of using CONTROL
DISPLAY SAVE and RESTORE, use CONTROL DISPLAY REFRESH either
before or after the non-ISPF display is done.
7d
Go to 2a to resume processing by redisplaying the table.
Appendix C. Using the TBDISPL Service
293
ENPSER
LNAME
I
FNAME
PHA
------ ------------ --------598304
172397
813058
395733
502774
Figure 61.
Roberston
Smith
Russell
Adams
Caruso
Richard
Susan
Charles
John
Vincent
PHNUH
-------P
A
L
Q
J
301
301
202
202
914
840-1224
547-8465
338-9557
477-1776
294-1168
Table TAB 1 Contents
---------------------------COMMAND INPUT ===>
EMPLOYEE LIST
--------- LINE 000001 COL 001 080
SCROLL ===> PAGE
ENTER NECESSARY REVISIONS (OTHER THAN CHANGES TO EMPLOYEE SERIAL):
------
E~1PLOYEE NA~1E
-------
LAST
FIRST
MI
Roberston
Smith
Russell
Adams
Caruso
Richard
Susan
Charles
John
Vincent
P
A
L
Figure 62.
294
Q
J
Table TAB1 as Displayed
ISPF Dialog Management Services
--- PHONE --AREA NUMBER
301
301
202
202
914
840-1224
547-8465
338-9557
477-1776
294-1168
EMPLOYEE
SERIAL
598304
172397
813058
395733
502774
)ATTR
_ TYPE(INPUT) INTENS(LOW)
@ TYPE(OUTPUT) INTENS(LOW)
)BODY
%---------------------------- EMPLOYEE LIST
%COMMAND INPUT ===> ZCMD
--------------------------------~~SCROLL ===> AMT +
%
+ENTER NECESSARY REVISIONS (OTHER THAN CHANGES TO EMPLOYEE SERIAL):
+
+------ E~IPLOYEE NAME --------- PHONE --EMPLOYEE
+LAST
FIRST
AREA NUHBER
SERIAL
MI
+
)~IODEL
LNAME
)INIT
&A~1T
FNA~1E
=
I
PHA
PHNUM
EMPSER+
PAGE
)END
Figure 63.
Table Display Panel Definition TIPANEL
Appendix C. Using the TBDISPL Service
295
296
ISPF Dialog Management Services
APPENDIX D. COMMAND TABLE UTILITY
The command table utility is a component of ISPF. It may be invoked as
option 1 from the sample primary option menu (ISP@PRIM) distributed with
ISPF. It may also be invoked as a utility from the PDF primary option
menu (option 3.9) if PDF is installed. Use of this utility allows
command tables to be generated or modified.
The first panel displayed by this utility prompts the user for an
application ide See Figure 64. The name of the command table is
derived by appending "C~1DS" to the application ide If the table exists
in the table input library, it is displayed and may be modified. If the
table does not exist in the table input library, a new table is
generated.
Note:
This utility cannot be used to modify a command table that
is currently in use. Command table ISPCMDS (the system command
table) is always in use by ISPF. To modify this table, the user
must make a copy of the table, rename the copy, modify the copy,
and replace the original with the copy outside the ISPF
environment.
Appendix D. Command Table Utility
297
--------------------COMNAND ===>
COMMAND TABLE UTILITY
---------------------------
ENTER/VERIFY APPLICATION ID BELOW:
APPLICATION ID ===>
The name of the command table to be processed is formed by prefixing
the application id to the string 'C~1DS'. For example:
APPLICATION ID ===> TST
results in a command table name of 'TSTCNDS'.
Figure 64.
Command Table Utility Panel
The second panel displayed by the command table utility is shown in
Figure 65. For each row of the table, it shows the command verb, the
truncation amount (T), the action, and the description. The description
is displayed on a separate line, offset under the action.
For a new table, this panel initially contains a full screen of dummy
entries in which all fields are displayed with underscores. The
underscores are pad characters, and need not be blanked out.
The entries in
entries may be
following line
overtyping the
298
this display may be scrolled up and down, and one or more
modified simply by overtyping. In addition, the
commands may be entered at the left of any entry by
four quote marks:
•
I or In - insert one or "n" lines. The inserted line(s) will
contain underscores (pad characters) in all field positions.
•
R or Rn - repeat one or "n" lines. The repeated line(s) will
contain underscores (pad characters) in the verb and truncation
fields, but the action and description fields will be replicated
from the line on which the "R" or "Rn" was entered.
ISPF Dialog Management Services
•
D or Dn
- delete one or "n" lines.
In addition to the two scroll commands (UP and DOWN), the following
primary commands are supported:
•
END - causes the table to be saved in the table output library, and
terminates the utility.
•
CANCEL
"CAN".
- terminates without saving the table.
Nay be abbreviated
Notes:
1.
Nultiple line commands or modifications may be entered in a single
interaction. The lines are processed in the order in which they
appear on the screen.
2.
Any line commands or modifications that are entered concurrently
with the END command are processed before the table is saved.
3.
Any null entries (in which at least the verb contains all
underscores) are automatically deleted when the table is saved.
CONNAND TABLE - TSTCNDS ------------------------------- LINE 000001 COL 001 080
CONNAND ===>
SCROLL ===> PAGE
INSERT, DELETE, AND CHANGE CONNAND ENTRIES. UNDERSCORES NEED NOT BE BLANKED.
ENTER END CONNAND TO SAVE CHANGES OR CANCEL TO END WITHOUT SAVING.
VERB
T ACTION
DESCRIPTION
" "
SORT
0
" "
PREPARE
4
" "
QUIT
2
EXPLAIN
4
UP
0
DOWN
0
t, , ,
,,,,
" "
Figure 65.
SELECT PGN(PQRSORT) PARN(&ZPARM)
SORT ENTRIES BY ASCENDING ORDER
SELECT CMD(XPREP &ZPARM) NEWPOOL
PREPARE FILE FOR FORMATTING
ALIAS END
QUIT COMMAND - SAME FUNCTION AS END
ALIAS HELP
EXPLAIN CONNAND - SANE FUNCTION AS HELP
&SCRVERT
SCROLL UP CONNAND
&SCRVERT
SCROLL DOWN COMNAND
Command Table Editing Panel
Appendix D. Command Table Utility
299
300
ISPF Dialog Management Services
APPENDIX E. SUMMARY OF ISPF SYNTAX
This appendix contains a quick reference of syntax for invoking an ISPF
application, message definitions, skeleton control statements, panel
definitions, and dialog service requests.
INVOKING AN ISPF APPLICATION
(See page 88)
ISPSTART
PANEL(panel-name) [OPT(option)]
C~1D ( command)
PG~1(program-name) [PARN(parameters)]
[LANG(PLI\PL1) [,storage-area]]
[LANG(COBOL) ]
[NEWAPPL[(application-id)]]
[TEST\TESTX\TRACE\TRACEX]
[NOABEXIT]
MESSAGE DEFINITIONS
(See page 251)
msgid
[ 'short message'] [. HELP
'long message'
= panel-name \~]
[. ALARM
= YES \ NO]
SKELETON CONTROL STATEMENTS
(See page 256)
)DEFAULT abcdefg
)TB value1 ... value8
)IM skel-name [NT] [OPT]
)SEL relational-expression
)ENDSEL
)DOT table-name
)ENDDOT
Appendix E. Summary of ISPF Syntax
301
)SET variable
= expression
)CM comment
PANEL DEFINITIONS
Panel' Header Statements
All parameters on header statements are optional.
panel header statement, use only one line.
When preparing a
Attribute Section
(Optional section, see page 206)
)ATTR
[DEFAULT (abc
I %+_)]
Body Section
(Required section, see page 210)
)BODY
Model Section
[CMD(field-name)]
[SMSG(field-name)]
[LMSG(field-name)]
[DEFAULT(abc
[KANA]
I %+_)]
--G-'IV- 1)\
(Optional section, see page 244)
)MODEL [CLEAR(var-name,var-name ... )]
Initialization Section
(Optional section, see
pag~
213)
)INIT
Processing Section
(Optional section, see page 213)
)PROC
302
ISPF Dialog Management Services
[ROWS (ALL I SCAN)]
Statement Specifying the End of a Panel Definition
(Required statement, see page 199)
)END
Panel Statements and Built-in Functions
Attribute Section
One or more parameters are required with each attribute character
specified. These parameters are (see page 207):
CAPS(ONIOFF)
PAD (NULLS I char)
ATTN (ON IOFF)
TYPE(TEXTIINPUTIOUTPUT)
INTENS(HIGHILOWINON)
JUST(LEFTIRIGHTIASIS)
SKIP(ONIOFF)
Initialization and Processing Sections
(See page 214)
variable = value
TRUNC (variable, value)
TRANS (variable value,value ... [MSG=message-id})
IF (variable operator value[,value ... ])
VPUT name-list [ASIS I SHAREDI PROFILE]
VER (variable[ ,NONBLANK] ,keyword [ ,value ... ] [,HSG=message-id]
Panel Control Variables
(See page 223)
. CURSOR = field-name
.RESP
= ENTER I END
. HELP
= panel-name
.TRAIL
= variable
,\\('i
Appendix E. Summary of ISPF Syntax
303
.MSG
= message-id
.ZVARS
= '(name-list)'
DIALOG SERVICES
The command invocation syntax (for CLIST and EXEC 2) for all services is
shown first, followed by the call invocation syntax for PL/I. For other
language syntax, refer to "Call Invocation" in Chapter 6. The services
are described in Chapter 6 in alphabetic sequence.
Command I nvocation Syntax
Refer to Chapter 6 for complete description of the services, where they
appear in alphabetic sequence.
Display Services
ISPEXEC
DISPLAY
[PANEL(panel-name))
[MSG(message-id)]
[CURSOR(field-name)]
ISPEXEC
TBDISPL
table-name
ISPEXEC
SETMSG
~1SG(message-id)
[PANEL(panel-name))
[MSG(message-id)]
[CURSOR(field-name)]
[CSRROW(table-row-number))
Table Services - General
304
ISPEXEC
TBCREATE
table-name
[KEYS(key-name-list))
[NAMES(name-list)]
[WRITE INOWRITE]
[REPLACE]
ISPEXEC
TBOPEN
table-name
[WRITE INOWRITE]
ISPEXEC
TBQUERY
table-name
[KEYS(key-name)]
[NAMES(var-name)]
[ROWNUM(rownum-name)]
[KEYNUM(keynum-name))
[NAMENUM(namenum-name)]
[POSITION(crp-name)]
ISPEXEC
TBSAVE
table-name
[LIBRARY(library-name)]
[NEWCOPYIREPLCOPY]
[NAME(alt-name)]
[PAD(percentage)]
ISPF Dialog Management Services
ISPEXEC
TBCLOSE
table-name
[LIBRARY(library-name)]
[NEWCOPYIREPLCOPY]
[NAHE(alt-name)]
[PAD(percentage)]
ISPEXEC
TBEND
table-name
ISPEXEC
TBERASE
table-name
[LIBRARY(library-name)]
[SAVE(name-list)]
Table Services - Row Operations
ISPEXEC
TBADD
table-name
ISPEXEC
TBDELETE
table-name
ISPEXEC
TBGET
table-name
[SAVENAHE(var-name)]
ISPEXEC
TBPUT
table-name
[SAVE(name-list)]
ISPEXEC
TBMOD
table-name
[SAVE(name-list)]
ISPEXEC
TBEXIST
table-name
ISPEXEC
TBSCAN
table-name
[ARGLIST(name-list)]
[SAVENAME(var-name)]
ISPEXEC
TBSARG
table-name
[ARGLIST(name-list)]
ISPEXEC
TBTOP
table-name
ISPEXEC
TBBOTTOM
table-name
[SAVENAME(var-name)]
ISPEXEC
TBSKIP
table-name
[NUMBER(number)]
[SAVENAME(var-name)]
ISPEXEC
TBVCLEAR
table-name
File Tailoring Services
ISPEXEC
FTOPEN
[TEMP]
ISPEXEC
FTINCL
skel-name
ISPEXEC
FTCLOSE
[NAME(member-name)] [LIBRARY(library-name)]
[NOREPL]
ISPEXEC
FTERASE
member-name
[NOFT]
[LIBRARY(library-name)]
Appendix E. Summary of ISPF Syntax
305
Variable Services
ISPEXEC
VGET
name-list
[ASISISHAREDIPROFILE]
ISPEXEC
VPUT
name-list
[ASIS ISHARED IPROFILE]
Other Services
306
ISPEXEC
SELECT {PANEL(panel-name) [OPT(option)]
l)
CHD(command)
PGM(program-name) [PARM(parameters)]
[NEWAPPL[(application-id)] INEWPOOL]
ISPEXEC
CONTROL
ISPEXEC
BROWSE
DATASET (dsname)
[VOLUME(serial)]
[PASSWORD(pswd-value)]
ISPEXEC
BROWSE
FILE(fileid)
[MEMBER(member-name)]
ISPEXEC
EDIT
DATASET(dsname)
[VOLU~1E (s er ial) ]
[PASSWORD(pswd-value)]
ISPEXEC
EDIT
FILE(fileid)
[MEMBER(member-name)]
ISPEXEC
LOG
~ISG(message-
DISPLAY { LOCK
LINE [START(line-number)]
SM
[START(line-number)]
REFRESH
SAVE IRESTORE
NONDISPL [ENTERIEND]
ERRORS
[CANCEL IRETURN]
SPLIT {ENABLE }
DISABLE
ISPF Dialog Management Services
id)
J
Call I nvocation Syntax
Refer to Chapter 6 for complete description of the services, where they
appear in alphabetic sequence.
DisElay Services
CALL
ISPLINK ('DISPLAY'
[ , panel-name]
[ ,message-id]
[,field-name] ) ;
CALL
ISPLINK ('TBDISPL',
table-name
CALL
ISPLINK ('SETMSG',
message-id);
Table Services
[ , pane I-name]
[ ,message-id]
[,field-name]
[,table-raw-number] ) ;
- General
CALL
ISPLINK ( 'TBCREATE ' , table-name
[,key-name-list]
[ , name -1 is t ]
[, 'WRITE' I 'NOWRITE' ]
[ , 'REPLACE' ] ) ;
CALL
ISPLINK ('TBOPEN' ,
table-name
[, 'WRITE' I 'NOWRITE'] ) ;
CALL
ISPLINK ( 'TBQUERY' ,
table-name
[ , key -name]
[, var-name]
[,rownum-name]
[ , keynum-name]
[ , namenum -name]
[ , crp -name] ) ;
CALL
ISPLINK ('TBSAVE',
table-name
[, 'NEWCOPY' I 'REPLCOPY']
[ , al t -name]
[ , percentage]
[,library-name]);
CALL
ISPLINK ('TBCLOSE',
CALL
ISPLINK ('TBEND' ,
table-name);
CALL
ISPLINK ( , TBERASE ' ,
table-name
table-name [, 'NEWCOPY' I 'REPLCOPY']
[, al t-name]
[ , percentage]
[,library-name]);
[,library-name] ) ;
Appendix E. Summary of ISPF Syntax
307
Table Services
- Row
0Eerations
table-name [ ,name-list]
CALL
ISPLINK ('TBADD' ,
CALL
ISPLINK (' TBDELETE' , table-name) ;
CALL
ISPLINK (' TBGET' ,
table-name [ ,var-name]
CALL
ISPLINK ('TBPUT' ,
table-name [ ,name -1 is t ]
);
CALL
ISPLINK ('TBNOD' ,
table-name [ ,name-l ist]
);
CALL
ISPLINK (' TBEXIST' ,
table-name) ;
CALL
ISPLINK ('TBSCAN' ,
table-name [ ,name-list]
[ ,var-name] ) ;
CALL
ISPLINK ('TBSARG' ,
table-name [ ,n am e - 1 is t ]
CALL
ISPLINK ('TBTOP' ,
table-name);
CALL
ISPLINK ( , TBBOTTOM' , table-name [ , var-name]
CALL
ISPLINK (' TBSKIP' ,
CALL
table-name [ ,number]
[ , var-name]
);
) ;
);
);
);
ISPLINK ('TBVCLEAR', table-name);
File Tailoring Services
308
CALL
ISPLINK ( 'FTOPEN'
[ , 'TEMP' ]
CALL
ISPLINK (' FTINCL' ,
skel-name [ , 'NOFT' J
CALL
ISPLINK ('FTCLOSE'
[ ,member-name] [,library-name]
[ , 'NOREPL' ] ) ;
CALL
ISPLINK ('FTERASE',
member-name
ISPF Dialog Management Services
);
) ;
,[library-name]);
Variable Services
CALL
ISPLINK ('VGET' ,
name-list [, 'ASIS' I 'SHARED' I 'PROFILE']
) ;
CALL
ISPLINK ('VPUT' ,
name-list [,'ASIS' I 'SHARED' I 'PROFILE']
) ;
CALL
ISPLINK ( 'VDEFINE ' ,
name-list, variable, format, length
[ , options -list] [, user-data] ) ;
CALL
ISPLINK ( 'VDELETE' ,
name-list);
CALL
ISPLINK (' VCOpy' ,
name-list, array-l, array-2
[ , 'LOCATE' I 'NOVE' ] ) ;
CALL
ISPLINK (' VREPLACE' , name-list, lengths, values);
CALL
ISPLINK ('VRESET') ;
Other Services
CALL
ISPLINK ('SELECT',
buf-length, buffer);
Note: parameters which may appear in buffer are:
PANEL(panel-name)
[OPT(option)]
CND(command)
PGM(program-name) [PARM(parameters)]
[LANG(PLIIPLl [,storage-area])]
[LANG(COBOL)]
[NEWAPPL [(application-id)] INEWPOOL]
CALL
ISPLINK ('CONTROL', type [,mode]
[,line-number] );
CALL
ISPLINK ('BROWSE',
dsname [ ,serial]
[ ,pswd-value]
CALL
ISPLINK ('BROWSE',
fileid [ , member -name]
CALL
ISPLINK ('BROWSE',
dsname [, recfm]
[,lrecl]
[ ,blks ize]
[,sysno
[,volser] ) ;
CALL
ISPLINK ('EDIT',
dsname [,serial]
[ ,pswd-value]
CALL
ISPLINK ('EDIT',
fileid [ , member -name]
);
) ;
);
);
Appendix E. Summary of ISPF Syntax
309
310
CALL
ISPLINK ('EDIT',
dsname ['profile]
[ , recfm]
[,lrecl]
[ ,blksize]
[ , sysno
[,volser] ) ;
CALL
ISPLINK (' LOG' ,
message-id);
ISPF Dialog Management Services
APPENDIX F. VDEFINE EXIT ROUTINE
The dialog writer may specify an exit routine to define dialog variables
when program variables are nonstandard (other than CHAR, FIXED, BIT, or
HEX). Then, when a variable is accessed by any ISPF service, the exit
routine is invoked to perform any conversion necessary between the
program variable's format and the character string format required for a
dialog variable.
This type of exit is specified with the format of USER. A data area
must be supplied that contains the address of the exit subroutine along
with any other user data. If the defined variable name is '*', all
unresolved dialog variable accesses result in invocation of the exit
routine. (Unresolved dialog variables are those which were not
implicitly entered or defined in the function pool.)
The exit routine is invoked by a call (BALR 14,15) and standard as
linkage conventions must be followed. When a variable read is being
performed a return code of 8 by the user exit indicates that the
variable was not found. All other nonzero return codes for either read
or write requests are considered severe errors.
The parameters are a request flag, data length, data address, defined
storage length, defined storage address, and the user data area. The
exit is invoked with:
CALL XRTN( UDATA,
SRVCODE,
NAMESTR,
DEFLEN,
DEFAREA,
SPFDLEN,
SPFDATAP) ;
/"': invoke exit and pass user area ,,': /
/* request code
*/
/* name length and name chars
*/
/* defined area length
*/
/* defined area
*/
/* ISPF data length
*/
/* ISPF data address
*/
/*
to ISPF data on read request */
UDATA
An area that follows the exit routine address parameter, specified
on the VDEFINE statement. This area may contain any additional
information the user desires. Its format is CHAR(*).
SRVCODE
Service request-type code, as a fullword fixed value. The
allowable values are 0 for a read and 1 for a write. Other values
should be accepted without error, in order to allow further
extensions. (Codes of 2 and 3 are used by the dialog test facility
variable query function. Code 2 is a request for the number of
variables to be returned in the SPFDLEN field. Code 3 is a request
for the names of the variables to be returned in the buffer pointed
to by SPFDATAP. The names are entered as contiguous 8-byte
tokens.)
Appendix F. VDEFINE Exit Routine
311
NAMESTR
Name of the dialog variable being requested, preceded by the
one-byte name length.
DEFLEN
The length of the area specified to the VDEFINE service.
format is a fullword fixed value.
Its
DEFAREA
The area specified to the VDEFINE service.
Its format is CHAR(*);
SPFDLEN
For a write request, the length of the SPFDATA area is supplied.
For a read request, the length of the data is returned to ISPF. It,
must be supplied by the exit routine. Its format is a fullword
fixed value.
SPFDATAP
For a write request, the address of the data to be stored is
supplied. For a read request, the address of the data is returned
to ISPF. Its format is a fullword pointer.
The following return codes are possible and should be set in the exit
routine:
o - Successful operation
8 - Variable not found on read request
Others - Severe error
312
ISPF Dialog Management Services
APPENDIX G. CHARACTER TRANSLATIONS FOR APL, TEXT, AND KATAKANA
ISPF permits use of APL keyboards for all models
text keyboards for 3278 and 3279 terminals. The
codes for APL and text characters are translated
codes for internal storage as shown in Figure 66
of 3270 terminals, and
2-byte transmission
by ISPF into I-byte
and Figure 67.
ISPF also permits use of 3277 and 3278 Japanese Katakana terminals. The
character codes are documented in IBM 3270 hardware manuals. Many of
the Katakana codes overlay the lowercase EBCDIC codes. In a panel
definition, it is assumed that lowercase EBCDIC characters are to be
displayed for these codes, unless the )BODY header statement includes
the keyword KANA. Example:
)BODY KANA
The keyword, KANA, is used on a )BODY header statement when Katakana
characters are included within the panel. When KANA is specified, rules
for display of text fields are as follows (input and output fields and
model line fields are not affected by use of the KANA keyword):
•
If the terminal type is Katakana, and
the KANA keyword is present, text characters are left as is.
the KANA keyword is not present, any lowercase text characters
are translated to uppercase and uppercase text characters are
left as is.
•
If the terminal type is not Katakana, and
the KANA keyword is present, any lowercase text characters are
treated as being non-displayable and are translated to a period.
Any uppercase text characters are left as is.
the KANA keyword is not present, lowercase and uppercase text
characters are left as is.
Appendix G. Character Translations for APL, TEXT, and Katakana
313
0
3
4
5
6
7
A
9
8
C
B
D
E
F
00
OF
10
1F
20
2F
30
3F
sp
40
&
50
-
60
g
8
§
.4
.IS.
1.
/
~
I
..
1\
70
5
E
§
M
N
Q
11
Y
Y:1.
Q
t!
!
E
Q
B.
~
Y.
V
<
¢ ...
I
,.. I....
~
I ...
\
...
:
$ ...
*
,
%
#
(
)
,
I
4F
..01
5F
-,
..01
-
,
@
..01
+
..01
r
>
?
=
"
L
-+
8F
-+-
9F
6F
7F
..01
80
"v
a
b
c
d
e
f
g
h
i
t
+
90
0
j
k
I
m
n
0
p
q
r
:J
C
s
t
u
v
w
x
y
z
n
u
.1
[
~
0
AF
x
\
V
!:.
T
]
1=
I
BF
~
CF
[!]
A
DF
e
m
qi
EF
•
c.P
-
AO
'V
...
BO
ex
s
I
P
w
CO
{ ...
}
A
B
C
D
E
F
G
H
I
A
J
K
L
M
N
0
P
Q
R
I
S
T
U
V
W
X
Y
Z
~
2
3
4
5
6
7
8
9
,..
DO
,.. ...
EO
\
FO
0
...
D
D
Figure 66.
314
2
1
1
$;
0
f'"'o,J
4>
v
!
~
'"
'iJ
"•
-6
FF
3278 only; invalid character on 3277.
National use character. Graphics shown are for U.S. keyboards; graphics differ in other countries.
Internal Character Representations for APL Keyboards
ISPF Dialog Management Services
0
2
1
3
4
5
6
7
8
9
A
B
C
D
E
F
00
OF
10
1F
20
2F
30
3F
40
sp
50
&
1
60
-
/
70
n
2
+
$ ...
*
)
,
,
%
:
# ....
@
t
{
5
}
tI
•
L
I
I
I
,
....
80
0
-
AO
(
!
-}
3
0
90
<
¢
...
....
....
>
?
6F
=
7F
+
"
+
8F
±
•
9F
[
~
•
AF
I
]
;t
-
BF
--
-\-
CF
~
--*
DF
;\
EF
-
,
....
(
a
b
c
d
e
f
g
h
i
j
k
I
m
n
0
p
q
r
S
t
u
v
w
x
y
z
1
2
3
4
5
6
7
8
9
Ij
-.l
A
B
C
D
E
F
G
H
I
6
.1
T
V
'V
..01IIII
)
BO
0
CO
{
DO
} ...
J
K
L
M
N
0
P
Q
R
m
6
§
~
EO
\
\
S
T
U
V
W
X
Y
Z
'V
I-
~
.
'+'
FO
0
1
2
3
4
5
6
7
8
9
I
L
1/SP 98
VSE 100
batch execution 95
TSO error processing 96
TSO sample job 96
VM/SP error processing 98
VM/SP sample job 98
VSE error processing 101
VSE sample job 100
beginning ISPF 87
BIT parameter
on VDEFINE 189
on VER statement 220
blksize parameter
on BROWSE
VSE 116
326
ISPF Dialog Management Services
on EDIT
VSE 129
body section of panel definition 199,
210
BROWSE and EDIT service 42
BROWSE service
description
MVS and VM/SP 113
VSE 116
example
MVS and VM/SP 115
VSE 119
browse services panel definition
scroll field, location of 201
bypassing display
See jump function
r--l
I
C
I
L-.J
calculation of DTCB size 28
calculation of table size 28
call invocation 105
general format 106
positional parameters 106
CANCEL mode
effect on error processing 109
CANCEL parameter
on CONTROL 120
CAPS keyword
in panel )ATTR section 207, 208
change row in table
TBMOD 167
TBPUT 171
changes, differences between ISPF and
SPF 317
changing number of lines to be scrolled
See scrolling amount
CHAR parameter
on VDEFINE 189
with PAD keyword 209
character translations for APL, TEXT and
Katakana keyboards 313
check variable content 219
checking the content of panel input
fields (use of the VER statement) 219
clear table variables to nulls
(TBVCLEAR) 185
CLIST libraries
MVS 67
CLIST variables used in commands 104
close and save table (TBCLOSE) 150
close table without saving (TBEND) 162
CM file tailoring control statement
See )CM
CMD parameter
on panel body section 211
CMD(command) parameter
in )PROC section 230
on ISPSTART 89
on SELECT 140
CMS system command 49
COBOL
return codes from services
MVS and VM/SP 110
VSE 111
COBOL, compiler used with ISPF 1
column display position
table display operations 201
column of a table, defining 22
command entry
concatenated with PF key
restriction 47
command field
key-in of command entries 45
naming via the CMD parameter 211
panel body section 211
position in panel definition 201
command field, naming of 201
command invocation 103
general format 103
positional parameters 104
command parameter
in panel )PROC section 230
command procedure function pool 35
command processing restriction
split screen mode 48
with HELP command 46
command stacking
restriction with HELP command 46
command table utility 297
command tables 53
action commands 54
dynamically specified command
actions 58
format of 53
modification of 297
used for assigning command
aliases 56
used for overriding system
commands 56
used for passing commands to a dialog
function 57
commands
entry of 45
interception by ISPF 45
levels of 45
processing of
by ISPF 46
stacking for execution 46
system
See system commands
comment statements 204
communication between functions and
panels via shared pool 38
compare variable content 219
compilers used with ISPF 1
concatenation of PF key entered value
with command entry
restriction 47
console default for VM/SP
See also specifying options using
parms
setting using parms 281
CaNT system variable
on tutorial panels 240
control facilities 12
control of scrolling
See CSR
CONTROL service
description 43, 120
error disposition
when CANCEL specified 109
when RETURN specified 109
example 123, 263, 290
control statements
skeleton definition 254
control variables 223
example
see figure on page 225
initialization 224
list of 223
when reset 224
copy a variable (VCOPY) 186
COpy parameter
on VDEFINE 190
copy variables to shared pool or profile
(VPUT) 194
CP system command 49
create a new table (TBCREATE) 153
creating a table
example 26
creating dialog components 3
creation of application profile
pools 38
creation of shared pools 38
CRP (current row pointer) 24
crp-name parameter
on TBQUERY 173
CRP, movement of
Index
327
See TBBOTTOM
See TBSCAN
See TBSKIP
See TBTOP
CSRROW(table-row-number) parameter
on TBDISPL 157
CUR
scrolling amount 52
current-row-pointer
See CRP
CURSOR (.CURSOR) control variable
See .CURSOR
cursor control of scrolling
See CUR
cursor positioning
default 226
example 226
cursor select 63
processing of selected fields 63
cursor select key
selection of attention field 47
CURSOR system command 48
CURSOR(field-name) parameter
on DISPLAY 124
r-t
I
D
I
L---.J
data communications within ISPF 7
data records
in skeleton definition 254
data table control block (DTCB)
calculation of size 28
DATASET(dsname) parameter
on BROWSE
MVS and VM/SP 113
VSE 116
on EDIT
MVS and VM/SP 126
VSE 129
defaultPF Key assignments 59
DEFAULT skeleton control statement
See )DEFAULT
define a table search argument
(TBSARG) 175
define function variable
VDEFINE 188
defined variables 36
defining display images 3
defining primary option menus 232
delete (set to nulls) table values
(TBVCLEAR) 185
328
ISPF Dialog Management Services
delete a table (TBERASE) 163
delete row from table (TBDELETE) 155
determine if row exists in table
(TBEXIST) 164
determining table size 28
DEVADDR(sysno) parameter
on EDIT
VSE 129
dialog
beginning with menu or function 5, 9
control concepts 9
cross-system use 1
definition of 1
development of 3
MVS and VM/SP 72
VSE/AF 1.3.5 78
VSE/AF 2.1 85
example 261, 289
initiation of 12, 93
invocation of
using application master menu 6
organization concepts 9
processing concepts 9
recursive entry into 56
running of 5
services overview 17
termination of 93
typical organization 9
dialog abend intercept
VSE 95
dialog components
creation of· 3, 8
test of 3
MVS and VM/SP 72
VSE/AF 1.3.5 78
VSE/AF 2.1 85
dialog development libraries
MVS and VM/sp 72
VSE/AF 1.3.5 78
VSE/AF 2.1 85
dialog function
languages used for coding 1
dialog variable
See variables
differences between ISPF and SPF 317
DISABLE parameter
on CONTROL 120
display bypassing
See jump function
display data set
MVS and VM/SP (BROWSE) 113
VSE (BROWSE) 116
display file
MVS and VM/SP(BROWSE) 113
VSE(BROWSE) 116
display menu (SELECT) 140
DISPLAY parameter
on CONTROL 120
DISPLAY service
description 17, 124
example 27, 125, 261, 263
display services 17
syntax summary - calls 307
syntax summary - commands 304
display table data (TBDISPL) 156
display, set the next message to
(SETNSG) 145
display, specification of 3
DOT file tailoring control statement
See )DOT
DOWN scroll command 52
DOWN system command 47
dsname parameter
on BROWSE
NVS and Vi'1jSP 113
VSE 116
on 'EDIT
MVS and Vi'1jSP 126
VSE 129
on VER statement 221
DTCB
calculation of size 28
dynamically specified command
actions 58
r--l
I
E
I
L--.l
EDIT and BROWSE service 42
EDIT service
description
i'1VS and VMjSP 126
VSE 129
example
MVS and Vi'1jSP 128
VSE 132
edit services panel definition
scroll field, location of 201
editing the content of panel input
fields (use of the VER statement)
ENABLE parameter
on CONTROL 120
end file tailoring (FTCLOSE) 133
END parameter
219
on CONTROL 120
END statement 199
END system command 47
See also RETURN system command
distinguishing from RETURN 51
processing 50
ENDDOT file tailoring control statement
See )ENDDOT
ending display
See END system command
ending function or dialog
See END system command
See RETURN system command
ending ISPF 93
ENDSEL file tailoring control statement
See )ENDSEL
ENQ issued by TBOPEN 169
enqueuing for table write operations 25
ENTER parameter
on CONTROL 120
entry of commands
See commands
ENTRY statement required when link
editing VSE programs 112
environment 1
erase (set to nulls) table variables
(TBVCLEAR) 185
erase a table (TBERASE) 163
erase member of file tailoring output
library (FTERASE) 135
error modes
CANCEL and RETURN 109
error processing
TSO batch execution 96
VMjSP batch execution 98
when put into effect 93
ERRORS parameter
on CONTROL 120
examples of menus 234
EXEC variables used in commands 104
EXEC 2 libraries, VM
SP 71
EXIT parameter
in )PROC section 230, 231
exit routine
VDEFINE service 311
explicit chain mode 233
extended return
See jump function
extension variables
table 24
Index
329
r--l
I
F
I
L-----1
field select~on via cursor position 63
field selection via light pen 63
field type specification
in panel )ATTR section 208
field-name parameter
on DISPLAY 124
on TBDISPL 157
file tailoring end (FTCLOSE) 133
file tailoring libraries
NVS 66
VH/SP 69
VSE 78, 84
file tailoring services
description 28
example 31
output 28
processing 28
in conjunction with table
processing 29
skeleton
example 29
syntax summary - calls 308
syntax summary - commands 305
FILE(fileid) parameter
on BROWSE
MVS and VM/SP 113
VSE 116
on EDIT: HVS and EDIT 126
fileid parameter
on BROWSE
MVS and VH/SP 113
on EDIT
MVS and VH/SP 126
on VER statement 220
find table variable
TBSARG 175
TBSCAN 180
FIXED parameter
on VDEFINE 189
format
command invocation 103
format of skeleton control
statements 256
format of skeleton definition 254
format parameter
on VDEFINE 188
formula for table size calculation 28
330
ISPF Dialog Management Services
FORTRAN
return codes from services
MVS and VM/SP 110
VSE 111
FORTRAN, compiler used with ISPF 1
FTCLOSE service
description 133
example 31, 134
FTERASE service
description 135
example 135
FTINCL service
description 136
example 31, 136
FTOPEN service
description 137
example 31, 138
function
dialog
example 261, 289
function pool
creation of 35
definition of 33
description of 35
for command procedures 35
for programs 36
life of 35
relationship to dialog functions 35
function variables, define in function
pool (VDEFINE) 188
function, dialog
creation of 3
description of 7
languages used for coding 1
r--l
I
G
I
L--J
general table services 26
generic search argument
specification of
TBSCAN 180
generic search argument, specification
of
TBSARG 175
get a copy of variable (VCOPY) 186
get row from table (TBGET) 165
get variable from shared pool or profile
(VGET) 192
r--l
I
H
I
L-J
HALF
scrolling amount 52
HELP (.HELP) control variable
See .HELP
HELP command
entry to tutorial 16
stacking restriction 46
HELP system command 47, 239
help tutorial
special definition requirements
HEX parameter
on VDEFINE 189
HIGH parameter
with INTENS keyword 208
228
invoking services 103
ISPF differences with SPF 317
ISPFILE ddname 66, 69
ISPLINK 106
ISPLINK routine, invoking services from
programs 2
ISPLLIB ddname 67
ISPLNK 106
ISPLNK routine, invoking services from
FORTRAN programs 2
ISPMLIB ddname 65, 68
ISPPLIB ddname 65, 68
ISPPROF ddname 65, 68
ISPSLIB ddname 65, 68
ISPSTART
description 87
example 5
ISPSTART syntax 88
ISPTABL ddname 66, 69
ISPTLIB ddname 65, 66, 68, 69
r--l
I
I
I
L-J
r--l
I
ICCF system command 48
identical variable names 37
IF statement
in panel )INIT section 218
in panel )PROC section 218
1M file tailoring control statement
See )IM
implicit variables 36
include file tailoring skeleton
(FTINCL) 136
INCLUDE statements required when link
editing VSE programs 112
INDEX tutorial command 16, 239
initialization of control variables 224
initialization section of panel
definition 199, 213
initiating a dialog 93
input
protecting table 25
INPUT parameter
with TYPE keyword 208
INTENS keyword
in panel )ATTR section 207, 208
interception of commands by ISPF 45
introduction 1
invocation of ISPF 87
invoking a dialog (SELECT) 140
invoking an ISPF application 5
from master application menu 6
invoking SELECT service 93
J
I
L-J
JCL
allocating libraries for MVS 66
job for batch execution
TSO 96
VM/SP 98
VSE 100
jump function 51
JUST keyword
in panel )ATTR section 207, 208
r--l
I
K
I
L-..J
Katakana keyboards
character translations 313
key-name parameter
on TBQUERY 173
Key-name-list parameter
on TBCREATE 153
KEYNUM(keynum-name) parameter
on TBQUERY 173
KEYS system command 48
used for defining PF key
functions 60
KEYS(key-name) parameter
on TBQUERY 173
Index
331
KEYS(key-name-list) parameter
on TBCREATE 153
keyword parameter
coding in requests for services
108
r---l
I
L
I
L-..J
LANG(COBOL) parameter
in panel )PROC section Z30
on ISPSTART 89
on SELECT 140
LANG(PLI) parameter
in panel )PROC section 230
on ISPSTART 89
on SELECT 140
languages used for coding functions 1
LEFT parameter
with JUST keyword 208
LEFT scroll command 52
LEFT system command 48
length parameter
on VDEFINE 190
length-array parameter
on VCOPY 186
lengths parameter
on VREPLACE 196
levels of ISPF commands 45
library setup
HVS 65
VM/SP 68
VSE/AF 1.3.5 73
VSE/AF 2.1 79
LIBRARY(library-name) parameter
on FTCLOSE 133
on FTERASE 135
on TBCLOSE 150
on TBERASE 163
on TBSAVE 177
light pen 63
processing of selected fields 63
sample panel 64
selection of attention field 47
line mode
automatic and non-automatic entry
into line mode 121, 141
LINE parameter
on CONTROL 120
lines
number to be scrolled
See scrolling amount
link editing VSE programs
332
ISPF Dialog Management Services
ENTRY statement required 112
INCLUDE statements required 112
linking requirement for split screen
mode 68
list file defaults
specifying
using parms option 275
LIST parameter
on VER statement 221
LMSG parameter
on panel body section 211
LOCATE parameter
on VCOPY 186
LOCK parameter
on CONTROL 120
locks for table write operations 25
log file defaults
specifying, using parms option 279,
281, 282
LOG service
description 43, 139
example 139
logging a message
See LOG service
logical screens
See split screen mode
long message 20
LOW parameter
with INTENS keyword 208
lower-level menu
example of 237
lrecl parameter
on BROWSE
VSE 116
on EDIT
VSE 129
r--l
I
M
I
L-J
master application menu 6, 234
example of 234
MAX
scrolling amount 52
MEMBER(member-name) parameter
on BROWSE
MVS and VM/SP 113
VSE 116
on EDIT
MVS and VM/SP 126
member-name parameter
on FTCLOSE 133
on FTERASE 135
menu
definition of primary option 232
entry to tutorial 16
example of primary option 236
lower-level
example of 237
master application
example 234
special definition requirements 228,
229
use of ZPARENT to set next
display 233
message
description of 7
set the display of next (SETMSG) 145
message definition 199
creation of 20
in message library 21
long
example 22, 252
message-id 251
parts of 20
processing 251
short
example 22, 252
syntax 251
message fields
panel body section 211
message library 251
example 22, 252
message logging
See LOG service
message-id parameter
on DISPLAY 124
on LOG 139
on SETMSG 145
on TBDISPL 157
minidisk, shared support 323
model section of panel definition 199
modes of operation
set by use of CONTROL service
CANCEL 109
RETURN 109
test 91
trace 93
modify command tables 297
modify row in table
TBMOD 167
TBPUT 171
modifying displayed tables using
TBDISPL 289
modifying tables
example 261
MOVE parameter
on VCOPY 186
move row pointer (CRP)
See TBBOTTOM
See TBSCAN
See TBSKIP
See TBTOP
MS commands referencing ISPF files can
cause unpredictable results 141
MSG (.MSG) control variable
See .MSG
MSG(message-id) parameter
on DISPLAY 124
on LOG 139
on SETMSG 145
on TBDISPL 157
MSG=value parameter
on assignment statement 215
MVS
allocating libraries 66
batch environment 95
invocation of ISPF 87
invoking an ISPF application 5
library setup 65
PA keys
definition of 62
specifying options using parms 279
starting a dialog 12
TSO PCF 67
use of libraries 72
r-I
I
N
I
L---1
name of variable too long for panel
definition 226
NAME parameter
on VER statement 221
NAME(a1t-name) parameter
on TBCLOSE 150
on TBSAVE 177
NAME(member-name) parameter
on FTCLOSE 133
name-list parameter
how to code on requests for
services 108
on TBADD 147
on TBCREATE 153
on TBMOD 167
on TBPUT 171
on TBSARG 176
on TBSCAN 180
Index
333
on VCOPY 186
on VDEFINE 188
on VGET 192
on VPUT 194
on VREPLACE 196
NAMENUM(namenum-name) parameter
on TBQUERY 173
NAMES(name-list) parameter
on TBCREATE 153
NAMES(var-name) parameter
on TBQUERY 173
naming the command field via CMD
parameter 211
NB parameter
on VER statement 220
nested dialogs 51
NEWAPPL(application-id) parameter
in )PROC section 230
on ISPSTART 89
on SELECT 140
NEWCOPY parameter
on TBCLOSE 150
on TBSAVE 177
NEWPOOL parameter
in )PROC section 230
on SELECT 140
next message, set the display of
(SETMSG) 145
NOBSCAN parameter
on VDEFINE 190
NOCHECK parameter
in )PROC section 230
example 231
NOFT parameter
on FTINCL 136
NON parameter
with INTENS keyword 208
non-ISPF displays, using REFRESH
after 50
NONBLANK parameter
on VER statement 220
NONDISPL parameter
on CONTROL 120
nonreusable program used when split
screen mode use anticipated 68
NOP action
specified via ZCTACT 54
NOREPL parameter
on FTCLOSE 133
NOWRITE parameter
on TBCREATE 153
on TBOPEN 169
NULLS parameter
with PAD keyword 209
334
ISPF Dialog Management Services
NUM parameter
on VER statement 220
number of lines to scroll
See scrolling amount
number parameter
on TBSKIP 182
NUMBER(number) parameter
on TBSKIP 182
numeric value parameter
how to code on requests for
services 108
r---l
I
0
I
L-..J
obtain a copy of variable (VCOPY) 186
obtain copy of variable
from shared pool or profile
(VGET) 192
obtain table information (TBQUERY) 173
OFF parameter
with ATTN keyword 210
with CAPS keyword 208
with SKIP keyword 210
ON parameter
with ATTN keyword 210
with CAPS keyword 208
with SKIP keyword 210
online tutorial 16
open a table (TBOPEN) 169
open skeleton files (FTOPEN) 137
open table, create and (TBCREATE) 153
operating system
passing commands to 46
operation in test mode 91
operation in trace mode 93
OPT system variable 229
on tutorial panels 240
OPT(option) parameter
on ISPSTART 89
on SELECT 140
optional libraries
MVS 66
VM/SP 69
options-list parameter
on VDEFINE 190
order of panel definition sections 200
order of search
variable pools 33
output
protecting table '25
OUTPUT parameter
with TYPE keyword 208
overriding system commands by use of
command tables 56
r--l
I
P
I
L---.I
PA keys
definition, VSE 63
PA keys/definition
HVS and VH/SP 62
PAD keyword
in panel )ATTR section 207, 209
PAD (percentage) parameter
on TBCLOSE 150
on TBSAVE 177
PAGE
scrolling amount 52
panel body section 210
panel definition 199
attribute section 199
default characters 206
statement format 207
body section 199, 210
sample 211
statement format 210
command field 211
specification 211
creation of 3, 19
description of 3, 18
design suggestions 202
example of 19
for help and tutorial panels 239
format 200
formatting guidelines 200
initialization section 199, 213
statement formats 214
line 1
content 201
line 2 content 201
line 3 content 201
location of
command field 200
message field 200
panel title 200
scroll amount 200
message field
specification 211
model section 199
order of sections 200
position of command field 201
position of long message 201
processing 20, 227
processing section
statement formats 214
sections of 199
short message for TBDISPL
operations 201
special requirements 228
specifying field type 208
syntax rules 202
tutorial and help panels 239
used by TBDISPL 18
panel display
description of 7
specification of 3
panel processing considerations 227
PANEL(panel-name) parameter
in )PROC section 230
on DISPLAY 124
on ISPSTART 89
on SELECT 140
on TBDISPL 157
PANELID system command 48
parameters for service requests
coding rules for iv, 108
parameters specified as variables 107
PARM(parameters) parameter
in )PROC section 230
on ISPSTART 89
on SELECT 140
parms option
See also specifying options using
parms
description of 17
instructions for use of 275
terminal characteristics panel 276,
277
used for specifying ISPF parameter
options 275
parms option use
MVS 279
VH/SP 281
VSE 282
partitioning display screen
See split screen mode
parts of a dialog
dialog components 7
passing commands
See command tables
passing commands to a dialog
function 57
passing control
from program-coded to command-coded
function 9
using the SELECT service 33
Index
335
PASSTHRU action
specified via ZCTACT 54
PASSWORD(pswd-value) parameter
on BROWSE
HVS and VHjSP 113
VSE 116
on EDIT
HVS and VHjSP 126
PAl key
HVS and VHjSP 62
PAl key, VSE 63
PA2 key
HVS and VH/SP 62
PA2 key, VSE 63
PCF
TSO Programming Control Facility 67
percent (%) sign
beginning a command with 121, 141
percentage parameter
on TBCLOSE 150
on TBSAVE 177
permanent table 23
PF key-entered value
concatenated with PF key
restriction 47
PF keys 59
definition of functions for 60
definition panel 60
providing default settings 62
saving function definitions for 62
specifying
using parms option 275, 284
used for command entry 45, 46
PGH(program-name) parameter
in )PROC section 230
on ISPSTART 89
on SELECT 140
PICT parameter
on VER statement 220
PL/I
return codes from services
MVS and VMjSP 110
VSE 111
PL/I, compiler used with ISPF 1
PLIRETV/PLI built-in function
HVS and VHjSP 110
pointer, move current row
See TBBOTTOH
See TBSCAN
See TBSKIP
See TBTOP
POSITION(crp-name) parameter
336
ISPF Dialog Management Services
on TBQUERY 173
positional parameters
call invocation 106
command invocation 104
PRESUHE statement 103, 105
primary option menus 232
PRINT system command 49
PRINT-HI system command 49
processing
file tailoring services 28
light pen and cursor selected
fields 63
table services 23
processing a dialog 5
processing file tailoring skeletons
example 31
processing prior to panel display 213
processing tables
example use of table services 26
processing, panel 227
profile
See also application profile pool
definition of 33
PROFILE parameter
on VGET 192
on VPUT 194
on VPUT statement in panel )INIT and
)PROC sections 223
program access (PA) keys
HVS and VH/SP 62
VSE 63
program function keys 59
program function pool 36
program libraries
HVS 67
VH/SP 71
program linkage
VSE 3
program linking requirement for split
screen mode 68
program-name parameter
in panel )PROC section 230
on ISPSTART 87
on SELECT 140
program, copy a variable to (VCOPY) 186
pswd-value parameter
on BROWSE
HVS and VH/SP 113
on EDIT
MVS and VM/SP 126
put variables in shared pool or profile
(VPUT) 194
r--l
I
R
I
L-J
RANGE parameter
on VER statement 221
RCHANGE system command 47
read a table into virtual storage
(TBOPEN) 169
read row from table
TBBOTTOH 149
TBGET 165
TBSCAN 180
TBSKIP 182
read variable from shared pool or
profile (VGET) 192
recfm parameter
on BRO\{SE
VSE 116
on EDIT
VSE 129
recursive entry into dialog
functions 56
redisplaying contents of a screen using
PA Key
HVS and VH/SP 62
VSE 63
reentrant program used when split screen
mode use anticipated 68
reference of dialog variables by a
program function (VDEFINE) 188
referencing data in dialogs
See variable services description
REFRESH parameter
on CONTROL 120
relationship of function pools to dialog
functions 35
remove definition of variables from
function pool
VDELETE 191
VRESET 198
REPLACE parameter
on TBCREATE 153
replace variable in function pool
(VREPLACE) 196
REPLCOPY parameter
on TBCLOSE 150
on TBSAVE 177
representation of dialog variables 39
required libraries
HVS 65
VH/SP 68
VSE 73
VSE/AF 2.1 79
requirements
special for panel definition 228
reset of control variables 224
reset table variables to nulls
(TBVCLEAR) 185
reset variables (VRESET) 198
reshow key (PA2)
HVS and VM/SP 62
VSE 63
residency of tables 23
resource protection
table services 25
RESP (.RESP) control variable
See .RESP
RESTORE parameter
on CONTROL 120
restriction
on use of ISPF services 6
retrieve row from table
TBBOTTON 149
TBGET 165
TBSCAN 180
TBSKIP 182
retrieve variables from shared pool or
profile (VGET) 192
return codes from services 109
MVS and VN/SP 110
VSE 111
RETURN mode
effect on error processing 109
RETURN parameter
on CONTROl?(c"i20
RETURN system command 47
distinguishing from END 51
processing 50
RETURN-CODE
COBOL built-in variable
HVS and VH/SP 110
RFIND system command 47
RIGHT parameter
with JUST keyword 208
RIGHT scroll command 52
RIGHT system command 48
row deletion (TBDELETE) 155
row display position
table display operations 201
row pointer, move
See TBBOTTOH
See TBSCAN
See TBSKIP
See TBTOP
row table services 26
row, determine existence (TBEXIST) 164
rownum-name parameter
Index
337
on TBQUERY 173
rows of a table
content of 22
defining 23
rules
coding parameters for service
requests iv, 108
running a dialog 5
r-J
I
S
I
L...:....J
save and close table (TBCLOSE) 150
SAVE parameter
on CONTROL 120
save table (TBSAVE) 177
SAVE(name-list) parameter
on TBADD 147
on TBNOD 167
on TBPUT 171
SAVENAME(var-name) parameter
on TBBOTTOM 149
on TBGET 165
on TBSCAN 180
on TBSKIP 182
saving PF key definitions, system
variables for 62
scrolling
commands to control 52
scroll amount 52
tutorial panels 52
search
order of
for variable pools 33
search a table (TBSCAN) 180
search argument, specification of
TBSARG 175
TBSCAN 180
SEL file tailoring control statement
See )SEL
SEL system variable 229
See also ZSEL system variable
on tutorial panels 240
SELECT action
specified via ZCTACT 54
SELECT action command 55
SELECT Service 14
creation of shared pools 38
description 14, 140
example 144
invocation 93
panel processing 229
338
ISPF Dialog Nanagement Services
used to pass control within a
dialog 33
selecting an attention field 47
selection panel
See menu
serial parameter
on BROWSE
VSE 116
on EDIT
HVS and VN/SP 126
VSE 129
serial/parameter
on BROWSE
HVS and VN/SP 113
service interface routine, ISPLINK and
ISPLNK 2
service name parameter
coding in requests for services 108
services
invocation 2
overview 17
to dialogs 1
to interactive applications 1
services description
BROWSE 42
CONTROL 43
display .17
EDIT 42
file tailoring 28
LOG 43
SELECT 14
syntax for command and call
statements iv, 103, 105, 112
table 22
variable 32
SET file tailoring control statement
See )SET
set next menu (ZPARENT) 233
set processing modes (CONTROL) 120
set row pointer
See TBBOTTOM
See TBSCAN
See TBSKIP
See TBTOP
SETMSG service
description 18, 145
example 146
SETVERB action
specified via ZCTACT 54
shared minidisks, using, in VM 323
SHARED parameter
on VGET 192
on VPUT 194
on VPUT statement in panel )INIT and
)PROC sections 223
shared pool
creation of 38
definition of 33
description of 38
life of 38
used for communication between
functions and panels 38
shared pool variables
as affected by menu processing 35
short mesEage 20
single name parameter
how to code on requests for
services 108
skel-name parameter
on FTINCL 136
skeleton
description of 8
skeleton definition
assigning a value to a variable 258
comment statement 258
description of 254
example 30, 259
format of 254
imbedding of 256
specifying table processing 257
types of records in 254
skeleton formats 199
SKIP keyword
in )ATTR section 210
in panel )ATTR section 207
SKIP tutorial command 16, 239
skipping display
See jump function
SM parameter
on CONTROL 120
SMSG parameter
on panel body section 211
specify a table search argument
TBSARG 175
TBSCAN 180
specify PF keys
alternate 287
primary 286
specifying a table 23
specifying ISPF parameter options
using parms option 275
specifying log and list file defaults
using parms option 275
specifying options using parms
MVS log and list defaults 279
PF keys 284
terminal characteristics (option
0.1) 275
VMjSP console, log, and list
defaults 281
VSE log and list defaults 282
specifying terminal characteristics
using parms option 275
SPF
changes from 317
SPLIT command 17
SPLIT ENABLE,DISABLE parameters
on CONTROL 120
split screen mode 16
command processing restriction 48
entering 17
program linking requir~ment 68
terminating 17
VSE restriction 93
SPLIT system command 47
stacking commands
for execution 46
HELP restriction 46
START(line-number) parameter
on CONTROL 120
starting a dialog 12
starting ISPF 87
steps in dialog development
HVS and VHjSP 72
VSEj AF 1. 3.5 78
VSEjAF 2.1 85
STOPAT system command 48
storage-area parameter
in panel )PROC section 230
on ISPSTART 89
on SELECT 140
storing variables from a panel in shared
and profile pools (VPUT) 223
subpools used by EDIT and BROWSE 42
summary of changes from SPF 317
summary of services syntax 301
SWAP system command 47
syntax rules
message definition 251, 253
panel definition 202
services requests (parameters) 108
services requests (service names and
operands) iv
services summary 304
skeleton definitions 254
sysno parameter
on BROWSE
VSE 116
on EDIT
VSE 129
Index
33'9
system commands 47
description 45
list of 47
overriding by use of command
tables 56
PF key defaults 47
system profile pool
See also application profile pool
accessible by 39
description of 39
order of search 39
system variables 40
for saving PF key definitions 62
in shared pool 40
list of 41
used for communication between
dialogs and ISPF 41
system-defined default areas, panel 200
r---l
I
T
I
L--J
table
avoiding concurrent update of 25
columns 22, 23
definition 22
description 7
example 23
input and output protection 25
input library
when same as output l~brary 23
library access 23
permanent 23
processing 23
in conjunction with file tailoring
processing 29
number of table limit 28
residency 23
rows 22, 23
size calculation 28
temporary 23
types 23
updates 23
when created or updated 8
table display (TBDISPL) 156
table display output
example 248, 250
table display panel definition 243
attribute section 244
body section 244
example 247
example of mUltiple model lines 249
340
ISPF Dialog Management Services
initialization section 245
message, location of 201
model line 243
model section 244
scroll field, location of 201
special requirements 228
table display panel defintion
short message area content 201
table input and output protection 25
table libraries
MVS 66
VMjSP 69
VSE 78, 84
table save (TBSAVE) 177
table search (TBSCAN) 180
table services
description 21, 22
example 26
general services 24
resource protection 25
row services 26
syntax summary - calls 307
syntax summary - commands 304
used to modify displayed tables 289
table update
avoiding concurrent 25
table-name parameter
on TBADD 147
on TBBOTTOH 149
on TBCLOSE 150
on TBCREATE 153
on TBDELETE 155
on TBDISPL 157
on TBEND 162
on TBERASE 163
on TBEXIST 164
on TBGET 165
on TBMOD 167
on TBOPEN 169
on TBPUT 171
on TBQUERY 173
on TBSARG 176
on TBSAVE 177
on TBSCAN 180
on TBSKIP 182
on TBTOP 184
on TBVCLEAR 185
table-row-number parameter
on TBDISPL 157
TB
file tailoring control statement
See )TB
TBADD service
description 147
example 27, 148, 263
TBADD services
used to modify displayed tables
TBBOTTOH service
description 149
example 149
TBCLOSE service
description 150
example 28, 152, 263, 290
TBCREATE seTvice
description 153
example 26, 154, 265
TBDELETE service
description 155
example 155
TBDISPL service
description 18, 156, 246
example 161, 289
TBDISPL services
used to modify displayed tables
TBEND service
description 162
example 162
TBERASE service
description 163
example 163
TBEXIST service
description 164
example 164
TBGET service
description 165
example 166, 263
TBNOD service
description 167
example 168
TBOPEN service
description 169
example 170, 263, 290
TBPUT service
description 171
example 290
examples 172
TBQUERY service
description 173
example 174, 290
TBSARG service
description 175
example 176
TBSAVE service
description 177
example 179
TBSCAN service
description 180
example 181
261
289
TBSKIP service
description 182
example 183
TBTOP service
description 184
example 184
TBVCLEAR service
description 185
example 185
TENP parameter
on FTOPEN 137
temporary table 23
terminal characteristics
specifying
using parms option 275
terminal display, specification of 3
terminal keys 59
terminating a dialog 93
terminating display
See END system command
terminating function or dialog
See END system command
See RETURN system command
terminating ISPF 87, 93
terminating TSO commands of CLIST using
PA Key 62
TEST and TEXTX parameters
on ISPSTART 89
test mode operation 91
test value of variable during panel
processing 218
testing dialog components 3
TEXT keyboards
character translations 313
TEXT parameter
with TYPE keyword 208
TOP tutorial command 16, 239
TRACE and TRACEX parameters
on ISPSTART 89
trace mode operation 93
TRAIL (.TRAIL) control variable
See .TRAIL
TRANS parameter
on assignment statement 215
example 216, 217, 226, 230
example, nested 217
translation of defined variable 40
TRUNe parameter
on assignment statement 215
example 215, 217, 230
truncation of defined variable 40
TSO
batch environment 95
TSO batch execution job 96
Index
341
TSO Programming Control Facility 67
TSO system command 48
tutorial
commands 16, 239
ending of 16
entry to 16
invocation of 239
sample hierarchy of panels 241
sample panel 242
use of 16, 239
TYPE keyword
in panel )ATTR section 207, 208
r--l
I
U
I
L-.--1
UP scroll command 52
UP system command 47
UP system variable
on tutorial panels 240
UP tutorial command 16, 239
update of tables
avoiding concurrent 25
update row in table
TB}lOD 167
TBPUT 171
update variables in shared pool or
profile (VPUT) 194
updating tables 23
example use of table services 26
use of commands, program keys, and light
pen 45
use of libraries
NVS and VNjSP 72
VSEjAF 1.3.5 78
VSEjAF 2.1 85
use of subpools by EDIT and BROWSE 42
USER parameter
on VDEFINE 189
user-data parameter
on VDEFINE 190
using ISPF services 2
restricted to ISPF environment 6
using shared minidisks 323
using the DISPLAY service 261
using the parms option 275
See also specifying options using
parms
using the TBDISPL service 289
342
ISPF Dialog Management Services
r---l
I
V
I
L--.l
validity checking user entered data on
panel displays (use of the VER
statement) 219
value test of variable value during
panel processing 218
value-array parameter
on VCOPY 186
values parameter
on VREPLACE 196
var-name parameter
on TBGET 165
on TBQUERY 173
on TBSCAN 180
on TBSKIP 182
variable
parameter in panel definition
)INIT section 214
)PROC section 214
variable parameter
on assignment statement 215, 216
on VDEFINE 188
variable pools
order of search 33
variable services
description 32
summary 42
syntax summary - calls 309
syntax summary - commands 306
variables
access by functions written in a
command procedure 35
access by functions written in a
programming language 36
copy (VCOPY) 186
creation of 35
define in function pool
(VDEFINE) 188
defined type 36, 40
definition of 32
format of 39
identical names 37
implicit type 37
in message definition 253
maximum length of 32
names of
passed as parameter to
services 104
names too long for panel
definition '226
naming of 32
on panels, restricted size 203
order of accessing pools of 32
pools of
order of search 33
processing on menus 35
remove definition of
from function pool (VDELETE) 191
from function pool (VRESET) 198
replace in function pool
(VREPLACE) 196
reset 198
retrieve from shared pool or profile
(VGET) 192
services description
, See variable services description
storing from a panel in shared and
profile pools (VPUT) 223
table extension 24
update in shared pool or profile
(VPUT) 194
value test during panel
processing 218
variables, table
clearing to nulls using TBVCLEAR 185
KEY type 23
non-key type 23
VCOpy service
description 186
example 187
used to access
system variables 40
VDEFINE service
description 188
example 190
exit routine 188, 311
use of 36
VDELETE service
description 191
example 191
VER statement
in panel )INIT section 219
example 220, 221, 226
in panel )PROC section 219
VER statement example 264
verify variable content 219
verlay phase structures n
t permitted in VSE 112
VGET service
description 192
example 192
used to access
application profile pool 39
shared pool 33
system variables 40
virtual machine communciation facility
(VMCF), use of 44
VL keyword
assembler language 106
VM
shared minidisk support 323
VM/SP
&PRESUME statement 105
allocating libraries 69
batch environment 98
batch execution job 98
invocation of ISPF 87
invoking and ISPF application 5
library setup 68
PA keys
definition of 62
PRESUME statement 103
restrictions on use of module
files 72
specifying options using parms 281
starting a dialog 12
use of libraries 72
use of the virtual machine
communication facility (VMCF) 44
VMCF, virtual machine communciation
facility, use of 44
VOLUME (serial) parameter
on EDIT
VSE 129
VOLUME(serial) parameter
on BROWSE
HVS and VM/SP 113
VSE 116
on EDIT
MVS and VM/SP 126
VPUT service
description 194
example 195
used to access
application profile pool 39
shared pool 33
VPUT statement
example 223
in panel )INIT section 223
in panel )PROC section 223
VREPLACE service
description 196
example 197
VRESET service
description 198
example 198
VSE
AF 1.3.5 library setup 73
batch environment 100
Index
343
batch execution job 100
dialog abend intercept 95
ENTRY statement required when link
editing programs 112
INCLUDE statements required when link
editing programs 112
invocation of ISPF 87
invoking an ISPF application 5
PA keys
definition of 63
program linkage 3
specify log and list defaults (Option
0.2) 282
specifying options using parms 282
split screen mode restriction 93
starting a dialog 12
VSEjAF 1.3.5
use of libraries 78
VSEjAF 2.1 79
use of libraries 85
r--I
I wI
~
write message to log file (LOG)
WRITE parameter
on TBCREATE 153
on TBOPEN 169
writing dialogs, steps in
MVS and VMjSP 72
VSEjAF 1.3.5 78
VSEjAF 2.1 85
139
r--I
I
Z
I
~
Z system variable 41
Z variables used for field name
placeholders 226
ZAPPLID system variable 41
ZCMD system variable 41
example 230
on tutorial panels 240
processing 229
blank 231
invalid option 231
ZCMD, use of, versus other names for
command field 201
ZCONT system variable 41
on tutorial panels 240
344
ISPF Dialog Management Services
ZCTACT system variable 53
actions specified with 54
ZCTDESC system variable 53
ZCTTRUNC system variable 53
ZCTVERB system variable 53
ZDATE system variable 41
ZDAY system variable 41
ZERRHM system variable 41
ZERRLM system variable 41
ZERRMSG system variable 41
ZERRSM system variable 41
ZHINDEX system variable 41, 239
example
see figure on page 237
ZHTOP system variable 41
example
see figure on page 237
ZHTOP variable 239
ZIND system variable 41
on tutorial panels 240
ZJDATE system variable 41
ZKEYS system variable 41
ZLOGON system variable 41
ZMONTH system variable 41
ZPARENT system variable 41, 233
processing 233
ZPFOl-24 system variables 41
ZPF01, ZPF02, ... , ZPF24 system
variables 62
ZPREFIX system variable 41
ZPRIM system variable 41, 232
example
see figure on page 237
ZSCBR system variable 41, 53
ZSCED system variable 41, 53
ZSCML system variable 41, 53
ZSEL system variable 41
contains result of truncating
ZCMD 229
example 230
on menus 229
on tutorial panels 240
parameters and keywords used
with 230
ZTDTOP system variable 41, 159
ZTEMPF system variable 41, 137
ZTERM system variable 41
ZTIME system variable 41
ZUP system variable 41
on tutorial panels 240
ZUSER system variable 41
ZVARS (.ZVARS) control variable
See .ZVARS
ZVERB system variable 41
ZYEAR system variable
41
Index
345
346
ISPF Dialog Management Services
Interactive
System Productivity Facility
Dialog Management Services
READER'S
COMMENT
FORM
SC34-2088-2
This manual is part of a library that serves as a reference source for systems analysts, programmers, and
operators of IBM systems. This form may be used to communicate your views about this publication. It will
be sent to the author's department for whatever review and action, if any, is deemed appropriate. Comments
may be written in your own language; use of English is not required.
,
mM may use or distribute any of the information you supply in any way it believes appropriate without
incurring any obligation whatever. You may, of course, continue to use the information you supply.
Note: Copies of IBM publications are not stocked at the location to which this form is addressed. Please
direct any requests for copies of publications, or for assistance in using your IBM system, to your IBM
representative or to the IBM branch office serving your locality.
Possible topics for comments are:
Clarity
Accuracy
Completeness
Organization
Coding
Retrieval
Legibility
If you wish a reply, give your name and mailing address:
What is your occupation? _______________________________
Number of latest Technical Newsletter (if any) concerning this publication: _____________
Thank you for your cooperation. No postage stamp necessary if mailed in the U.S.A. (Elsewhere, an mM
office or representative will be happy to forward your comments.)
SC34-2088-2
Reader's Comment Form
Please Do Not Staple
Fold and tape
Fold and tape
"I
BUSINESS
FIRST CLASS
REPLY
PERMIT NO. 40
NO POSTAGE
NECESSARY
IF MAILED
INTHE
UNITED STATES
MAIL
ARMONK, NY
POSTAGE WILL BE PAID BY ADDRESSEE
International Business Machines Corporation
Department T 46
P.O. Box 60000
Cary, North Carolina 27511
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
Fold and tape
--
---.--...
- -- -- ------
==..~.=®
-~-,-
Please Do Not Staple
••
','
••••••••
Fold and tape
II
.......
.
------------
--- --- --_.-®
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.3 Linearized : No XMP Toolkit : Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:56:37 Create Date : 2012:06:06 20:30:45-08:00 Modify Date : 2012:06:07 08:22:08-07:00 Metadata Date : 2012:06:07 08:22:08-07:00 Producer : Adobe Acrobat 9.51 Paper Capture Plug-in Format : application/pdf Document ID : uuid:a2cec97f-f391-42a0-80b1-941c57d046e7 Instance ID : uuid:cebac589-0352-4788-bad0-876811856a93 Page Layout : SinglePage Page Mode : UseNone Page Count : 362EXIF Metadata provided by EXIF.tools