If you are writing your first z/OS application, here are some things you need to know.
ISPF, or the Interactive System Productivity Facility, provides both a suite of services to manage your application (or dialog, as interactive applications are frequently called) and a development environment that provides the utilities to create and maintain the parts of your application.
When you log on to z/OS, you usually start out in TSO/E (Time Sharing Option/Extensions), or just TSO as it is more commonly called. You know you are in TSO, when you see a black screen with red letters, and the word READY (which is commonly called the "ready prompt"). To start an ISPF session, type ISPF at the ready prompt.
When you start ISPF, you frequently see a screen that looks similar to this:
This is called the ISPF Primary Option Menu. As you can see, there are several options that are useful for writing and testing applications, such as the editor, compilers, and utility functions.
An Option Menu is a particular type of screen image, where you can select from a menu of options. In ISPF, a screen image is called a panel, which is one of the elements you can use in your ISPF application.
What are the parts of an ISPF application?
These are the elements you can use in your ISPF application:
- Functions
- Command tables
- Variables
- Tables
- Panels
- Messages
- File-tailoring skeletons
Functions
Functions control the application processing. They can be written as either a
- Program, in a traditional programming language such as COBOL, PL/1, or C.
- Command procedure, in an interpretative language, such as REXX.
Functions invoke ISPF services to manage the interaction between human and computer. A function might display a series of panels where users input information and display error messages when incorrect input is detected. The function might then process the input to create a report, send notifications, or start another application.
Command Tables
Command tables let you create commands for your application. Command tables consist of a list of command names and the action that is to be taken when the command in entered. There are four types of command tables:
- System command table, for commands that you can enter anywhere in ISPF
- Application command table, for commands that are specific to your application
- User command tables, for commands for a particular user.
- Site command tables, for everyone at a site.
Variables
Variables communicate information among the various elements of an application. Variables can be shared among:
- Panels
- Messages
- Skeletons
- Functions
Tables
Tables are 2-dimensional arrays of variables that you can use to store and organize application data. The Command Table is one specific example of a table.
Panels
Panels are what we call screen images. An application presents a panel, and the user enters information that the application can use. There are several types of panels:
- Selection panels display a list of processing options you can choose from. The Primary Option Menu, shown previously, is an example of a selection panel
- Data entry panels allow you to enter information for your application to process
- Table display panels show you some or all of the information in a table
- Information only, or tutorial panels, allow the application to present information to the user.
Panels are defined using either a simple set of panel definition keywords, or using a set of HTML-like tags.
Messages
Messages relay information about application processing to your users. Messages are displayed in a message area of the panel. Messages are defined using a special set of keywords.
File Tailoring Skeletons
File tailoring skeletons are templates you can use to format data. You can use skeletons to format table data into a report, for example.