SlideShare a Scribd company logo
1 of 106
Download to read offline
TSO

TIME SHARING
   OPTION




               1
Module 1

The ISPF Primary
 Options Menu




                   2
Notes:


The Interactive System Productivity Facility (ISPF) is a robust development tool set for the z/OS
operating system. It has been used since 1975 to increase the productivity of the development of host-
based applications, because it provides an extensive set of programmer oriented facilities.
A thorough foundation in the ISPF utilities is provided. This includes the library utilities, data set utilities,
move/copy utility, data set list utility, and compare/search utilities.
The final topic covers the processing of background jobs. It explains the phases of a background job. You
will learn to submit a job for background processing, monitor the status of a job while it is waiting,
executing, or waiting for its output to print, and how to retrieve the output for a job that is completed.
Upon completion of this course, you should be able to:
   •     Describe the purpose of ISPF and its relationship to TSO
   •     Effectively navigate throughout ISPF and describe its menu structure in detail
   •     Describe the nature of sequential and partitioned data sets, how they are named, created and
         allocated
   •     View and browse data sets
   •     Utilize the ISPF edit facility, import primary commands and line commands
   •     Insert, delete, copy, move, repeat, exclude, redisplay, and shift lines
   •     Change and maintain edit profiles
   •     Search for and change data


                                                                                                               3
•   Utilize the main functions of the library utility, data set utility, move/copy utility, data set list
       utility, and compare/search utility
   •   Mark data set members with various options using member selection lists
   •   Allocate new data sets using an appropriate block size for the DASD device
   •   Display data sets across the entire system or across an individual volume
   •   Describe the phases involved in the life of a background job
   •   Use the ISPF Batch Selection Panel to create multiple jobs steps for language processing
   •   Use the OUTLIST Utility and SDSF to display job status and display/print job output


The Time Sharing Option (TSO) is IBM's mainframe time-sharing operating system, which also has a
long and rich heritage.
ISPF can be seen as an extension to TSO. It is housed "under" TSO, and sometimes the acronym
TSO/ISPF is used to describe the facility provided by these closely associated subsystems. The services
provided by ISPF complement those of the host TSO system to provide interactive processing.




                                                                                                          4
Notes:


ISPF facilitates the work of programmers, and end-users by providing labeled fill-in-the-blank screens,
called panels. The screens are arranged in a simple menu structure.
Applications produced through ISPF are called dialogs. ISPF provides services to the dialogs during their
execution.
A programmer can produce custom dialogs and applications using ISPF. Such dialogs run on a traditional
IBM user terminal, like the 3270, or a terminal emulator running in a window on a PC. A dialog receives
requests and data from a user, then responds by using ISPF services to obtain information from, or enter
information into, the z/OS system.




                                                                                                       5
Notes:
The Program Development Facility provides the application developer with services necessary to create
and test applications. For example, you can generate tables and manage data sets, create test messages,
trace and debug applications.
The center of the PDF is the ISPF Primary Option Menu. The menu contains a list of options which may
be customized, so the main menu on one z/OS system might not match the one on another system.
The standard options for the PDF Main Menu are listed here.
   •     Settings:       Used to display and change ISPF parameters.You can change key definitions and
         display styles.
   •     View:          Allows you to view data sets.
   •     Edit:          Allows you to create or update data sets.
   •      Utilities:    Utility system and data set management functions, such as printing, renaming, or
         deleting data sets.
   •     Foreground: Used to interactively run language processing programs such as COBOL.
   •     Batch:         Generates and submits batch jobs through job control statements.
Command:          Enter TSO commands while ISPF remains active.
 Dialog Test: Allows for testing of elements such as panels and messages. You can test elements before
assembling them into an application.
LM Utilities:           Library management functions.
IBM Products:           Interface to other IBM products.
SCLM:                   Access to the Software Component and Library Manager.

                                                                                                           6
Notes:


You can navigate through ISPF in four different ways. The four different techniques are:
   •     Action Bars
   •     Point-and-Shoot
   •     Selection by Option Code
   •     Function Keys




                                                                                           7
Notes:


The action bar appears at the very top of the panel, and the choices presented vary from panel to panel.
Each word on the action bar represents a category of options. If you place the cursor on one of the action
bar words, and press the Enter key, you will see a list of the options for the category.
Then in the list move the cursor over an option and press Enter to select it.




                                                                                                           8
Notes:


Point-and-shoot means that you can move the cursor to one of the menu selections in the area illustrated
here, then press the Enter key in order to make your selection.
This feature is not available on every z/OS system.




                                                                                                      9
Notes:


You can get to the command area quickly by pressing the Home key. No matter where the cursor may be,
the home key will immediately place the cursor in the command area.
A selection can be made in the traditional way by entering the selection code in the command area. Then
press the Enter key to complete the selection.




                                                                                                    10
Notes:


The function keys represent the final technique. The keys themselves are usually located across the top of
the keyboard. The purpose or action represented by each key is shown at the bottom of the panel. To
activate an option, just press the corresponding function key.
Using PFSHOW command, you can display either the long or short form of the keys, or remove with
PFSHOW OFF.
ISPF responds to PF and PA keys on the 3270 keyboard. The table here shows the meaning of the keys to
ISPF.
Two of the most important keys are PF3 (duplicated by PF15) and PF4 (duplicated by PF16). PF3 is the
End key and it terminates an ISPF function. For example, after building several job steps in the Batch Job
section, you press PF3. The job is submitted and you are returned to the previous menu.
The PF4 performs almost the exact same function. The only difference is that it returns you to the ISPF
Primary Option Menu.




                                                                                                       11
 PA1 Attention:      Interrupt the current position.
 PA2 Reshow:         Redisplay the current screen.
 PF1/13 Help:               Enter the tutorial, or view help.
 PF2/14 Split:       Enter split screen mode.
 PF3/15 End:         Terminate the current operation.
 PA4/16 Return:      Return to the primary option menu.
 PA7/19 Up:          Move the screen window up.
 PF8/20 Down:        Move the screen window down.
 PF9/21 Swap:        Activate the other logical screen in split screen mode.
 PF10/22 Left:       Move the screen window left.
 PF11/23 Right:      Move the screen window right.
 PF12/24 Retrieve:   Redisplay the last issued ISPF command.




                                                                                12
Notes:
Use the KEYS command to change your function key definitions and labels. The KEYS command will
display either the "PF Key Definitions and Labels" panel or the "Keylist Change" panel for the keylist of
the panel from which the KEYS command was invoked. You can use the KEYS command from any
display without ending the function that you currently are running (and without having to enter split
screen mode). When you enter an END command from the KEYS panel, ISPF returns to the function that
you were running when you entered the KEYS command.




                                                                                                      13
Notes:


Many of the functions on the ISPF Primary Option Menu lead to additional menus. If you select option 3,
for example, the next ISPF screen you receive is another menu, showing many more options. You can
bypass the second menu by specifying both options at the primary menu. Just separate the options with a
period.
Option ===> 3.2
You can also jump from one option to another without having to "fall back" to the ISPF Primary Option
Menu. For example, if you are editing a file (in option 2), you can jump directly to the utilities option.
Type an equal sign, followed by the desired option number. Example:
Command ===> = 3




                                                                                                       14
Notes:


You are in the ISPF Primary Option Menu. Navigate from here to the (3) Utility Selection Panel. Type 3,
then press Enter.
You are in the Utility Selection Panel. Navigate to the Move/Copy Utility. Enter 3, then Press Enter.
To navigate DIRECTLY to the (3.3) Move/Copy Utility. Enter 3.3, then press Enter




                                                                                                        15
Notes:


In split-screen mode, the screen is split horizontally into two separate screens, and you may view two
different ISPF panels at the same time.
To enter split-screen mode, you place the cursor on the line where you want the split to occur. Then press
PF2. Immediately the screen splits into two logical screens, and each logical screen is an independent
session. To switch between screens press PF9.
To end split screen mode, simply end one of the sessions by typing ‘exit’ on the command line or
pressing F3 from the Primary Options Menu.




                                                                                                       16
Notes:


You can use the START command to start a dialog in a new logical screen. This function is similar to the
function nesting made available with action bars except that the nesting occurs in a new screen.




                                                                                                     17
Notes:


Format: SWAP PREV|NEXT|screen_name|n


Although you can alternately use any logical screen, only one of the logical screens is considered active at
a time. The location of the cursor identifies the active screen. You make a screen active by using the
SWAP command and its parameters to choose the desired screen.
The parameters on the SWAP command-LIST, PREV, NEXT, screen_name, and n-control which screens
you see displayed.
SWAP command without parameters in 3270 mode:
If only one screen exists, this command has no effect. If more than one screen exists, this command
moves the cursor between the two logical screens that are displayed.
If only two screens are present, the cursor moves to the one that it is not currently on. If more than two
screens exist, this command defaults to the SWAP LIST command and causes the ISPF task list to display
in a pop-up window.
Entering SWAP PREV changes the focus to the next lower screen number from the one where the
command is entered. Repeatedly issuing the same command causes each lower-numbered screen to
display until screen number 1 is reached, then the counter wraps back to screen number 32 (or your
installation's maximum number).




                                                                                                         18
Entering SWAP NEXT changes the focus to the next higher screen number from the one where the
command is entered. Repeatedly issuing the same command causes each higher-numbered screen to
display until screen number 32 (or your maximum) is reached, then the counter wraps back to screen
number 1.
Entering SWAP screen_name changes the focus to the screen named screen_name if it is active.
Entering SWAP n changes the focus to the screen numbered n (ZSCREEN variable) if it is active.
SWAP LIST command in 3270 mode:
This command displays the ISPF Task List, from which you can select which screen to display. The
screen you select replaces the screen on which you entered the command.




                                                                                                 19
Module 2

z/OS Files




             20
Notes:


For compatibility reasons, because records in an MVS system in the 1960s existed as 80-column punched
cards, even today's JCL and program source code on a modern z/OS system is maintained as a file of 80-
byte records. Every statement is a full 80 bytes long even if it is completely blank.
In the z/OS environment, files are known as data sets. z/OS lets you maintain two types of data sets under
TSO: sequential and partitioned. In a sequential data set, the records of a file can be retrieved only in the
same order they were written. To process a record somewhere within the file, you have to read all of the
preceding records.
Since there is no provision for subdirectories, file naming and the use of partitioned data sets support all
the processing that occurs on a mainframe under z/OS.
A partitioned data set (PDS) consists of a directory and one or more members. A PDS is also called a
library.
Each member is functionally the same as a sequential data set, and you can process an individual member
of a partitioned data set as if it were a sequential data set. On the other hand, you can process the entire
library, the entire PDS, as a single file.
The minimum allocation for a data set is one track of disk space, and this can usually amount to a
significant amount of space. For a small file that contains only a small amount of information, much
space can be wasted if it is stored in a data set all by itself. Instead it can be stored as one of many
members in a partitioned data set. This is how most source code and JCL is stored under z/OS.
Each partitioned data set contains a directory and data area. The directory maintains housekeeping
information about the members stored in the data area. It stores an index of member names and their
locations.


                                                                                                          21
Notes:


Standard TSO data set naming calls for three qualifiers within the name of the data set.
The naming is illustrated on the slide.
Qualifiers can be up to eight characters long and when you specify a data set name, you separate the
qualifiers by periods.
The data set name consists of three qualifiers listed below.
   •     High-level Qualifier
   •     User Determined Qualifier
   •     Type of Data




                                                                                                 22
Notes:


Partitioned data sets appear to the z/OS operating system to be no different than any other type of data set,
and just by seeing the name it is not possible to tell absolutely if the data set is partitioned or not. The
operating system has the information internally about its organization, but this is not necessarily reflected
in the name.
In order to deal with a specific member of a partitioned data set, the member name is placed at the end of
the data set name inside parentheses.
The data set name shown at the right is a partitioned data set. The member name, which is the name in
parentheses, can be up to eight characters long, and must start with a letter.




                                                                                                          23
The View Entry Panel appears when you select View (option 1) from the ISPF Primary Option Menu. An
image of the View Entry Panel is shown on the right. This panel facilitates viewing and browsing of a
data set, but does not provide the ability to edit or change data.
Two areas of particular interest here are the fields in the panel and the action bar at the top of the panel.
Action Bar
The action bar of the View Action Panel displays some important choices.
The Menu selection provides a drop down list with a subset of the items on the ISPF Primary Option
Menu.
The RefList selection facilitates the use of Personal Data Set Lists and Library Lists, a feature that you
can use to speed up access to frequently used data sets. The RefMode drop-down menu controls the
action taken when you select a data set from a personal list.
The Utilities selection provides quick access to all the functionality available in the Utilities (option 3)
section of the ISPF Primary Action Panel.
The ISPF Library section permits you to enter a data set name. The project ID identifies the project
associated with the data set. It usually defaults to the user ID from your LOGON command. The three
components of the data set name, Project, Group, and Type, are strung together to form the z/OS data set
name.
The Workstation selection enables you to more fully utilize your desktop workstation's potential by
giving you the ability to edit host data on the workstation, and workstation data on the host. ISPF calls
this function distributed editing.
After selecting the data set desired, either the one specified in the ISPF Library Section or the Other
Partitioned... section, the view command is executed by pressing Enter.



                                                                                                                24
Notes:


If the data set is partitioned, you can specify the name of the member in the Member field. You may also
enter a pattern for the member name. A pattern consists of a partial member name plus the symbols * or
% or both.
For example, the member name PAY* will select all members that begin with the three letters P-A-Y.
The next panel you receive will present you with that list for further selection.
In the example on the right, browse searches MFM3984.PAYROLL.COBOL first to locate the member
PAY2A. If not found, it searches MFM3984.TESTPAY.COBOL to find PAY2A.
If the data set you specify is partitioned, and you specify a pattern of the member name, or if you do not
specify a member name at all, you will receive a member list.




                                                                                                       25
Notes:


Use PF7 and PF8 to scroll.




                             26
Notes:


After you have selected the member you want to display, the browse panel displays the first 22 lines of
the data. An example is shown here on the right. This is a listing of a COBOL program.
The heading line displays the data set name, current line position, and current columns displayed. In this
screen, only browsing is allowed. You are not permitted to edit the member.




                                                                                                       27
Notes:


Scrolling functions let you specify both the direction and amount you move as you peruse the data. PF7
and PF8 move the window up and down respectively. PF10 and PF11 move it left and right.
You may specify the amount of the scroll by entering a value in the SCROLL field at the lower right hand
side. The default value is HALF. This means that when you press any of the function keys mentioned
above, the window moves a half page in the direction desired. Possible values are shown below.




                                                                                                     28
Notes:




         29
Notes:


Using LOCATE command, you can locate the member in the directory




                                                                   30
Notes:


You can position the display to a certain line number by using the LOCATE command, followed by the
line number. Remember that this line number refers to the line number as it appears on the left-hand side
of the window.
You can also assign a label to a line number in the member by positioning the cursor on a specific line,
then typing a period, followed by the label in the line command area.
Then in the future you can use the label to go there immediately, using the LOCATE command. Example:
Command ===> LOCATE .TOPDIV




                                                                                                      31
Notes:


You can use the FIND command to search for a specific string of characters. You type FIND at the
command line followed by the string. If the search string contains blanks or characters, enclose it in either
single or double quotes.
An example is FIND "PROCEDURE DIVISION"
This command will find the next line that contains the target string.
You can also add one of the following qualifiers after the search string.
   •     NEXT
   •     PREV
   •     FIRST
   •     LAST
   •     ALL




                                                                                                          32
33
34
Module 3

Editing Data Sets




                    35
Notes:


In this unit you will learn about the ISPF editor facility. This includes all the functions available under
selection 2 on the ISPF Primary Option Menu. The ISPF editor facilitates the editing and making of
changes to a data set or member of a data set. You may edit a sequential data set or enter only the name
of a partitioned data set and receive a member selection list.
Important commands include I to insert lines, D to delete lines, R to repeat lines, C to copy lines, and M
to move lines. You will learn to customize your editor environment by creating different edit profiles.
There are also editing modes that will help you fine tune the way you want the editor to work.
For advanced editing, you will learn how to change text throughout the source data. You may use a search
range and affect the condition under which the search finds a match. You may exclude text and redisplay
it.




                                                                                                        36
Notes:


The Edit Entry Panel appears when you select View (option 2) from the ISPF Primary Option Menu. An
image of the Edit Entry Panel is shown on the right. This panel facilitates the editing and making of
changes to a data set or member of a data set.
This panel looks almost identical to the View Entry Panel and operates in virtually the exact same way.
The ISPF Library section permits you to enter a default data set name. This data set name will always be
displayed upon entry into this panel. Under Other Partitioned or Sequential Data Set, you may specify a
data set name that is different than the default.




                                                                                                          37
Notes:


For a partitioned data set, the member list appears, as it does with the View Panel, except the upper left
corner says EDIT followed by the name of the data set.
Each member of the data set is listed along with its statistics such as the created and changed dates. You
can select a certain member by positioning the cursor on the dot next to the member name, or by typing S
in the left column of the line that has the name of the member. If the list exceeds the room available on a
single screen, it may be scrolled using F7 and F8.




                                                                                                        38
Notes:


The ISPF Edit Panel is shown on the right. It shows a sample data set member, and a COBOL program,
called PGM1G1
The first six columns of the lines containing COBOL source code represent the line command area. If
specified in the profile setting, the editor displays the line number in this area. The remaining portion of
the lines represents the screen window. You can use the same scrolling functions used in the View Panel.
PF11 moves the window right and PF10 moves it to the left. PF7 moves the window up, and PF8 moves
it down. Scrolling amount is subject to the scroll function that appears at the lower right part of the panel.
In the ISPF editor, there are
   •     primary commands
   •     line commands
The Primary commands are entered in the Command Input Area. They apply to the entire source member.
Line commands are entered over the numbers in the line command area and they affect individual lines
Primary commands are typed at the command prompt.




                                                                                                           39
Notes:
Lines can be inserted by the I command, which is typed in the line command area at the spot where the
lines are to be inserted. The I command creates blank lines which can subsequently be entered. It shifts
existing lines which follows further down in the file. The inserted lines contain apostrophes in the line
number area until you type the source data. When you press the Enter key, the editor deletes any inserted
lines that do not contain data.
There are two forms of this command
I        Inserts a single line following this line
In       Inserts n lines following this line




                                                                                                      40
Notes:


The command In inserts n lines following this line




                                                     41
Notes:


Lines can be deleted using the D command, typed into the line command area at the line when deletion is
to begin. There are three forms of this command
   •     D Deletes this line
   •     Dn Deletes n lines starting with this line
   •     DD Delete the block of lines beginning with the first DD
   •     command and ending with the second DD command.




                                                                                                    42
Notes:


Dn Deletes n lines starting with this line




                                             43
Notes:




         44
Notes:


The R command lets you repeat a single line or a group of lines one or more times.
The repeated line falls in immediately after the original line.
The R command has several forms
   •     R     Repeat this line
   •     Rn    Repeat this line n times
   •     RR Repeat a block of lines
When you use the RR command, the first RR marks the start of the block. The second RR command
indicates the end of the block, and, if you so choose, the number of times to repeat the block.




                                                                                            45
Notes:




         46
Notes:




         47
Notes:


Copying lines is similar to repeating them, except that you are able to specify a destination.
The C command has several forms
   •     C     Copies one line
   •     Cn    Copies n lines
   •     CC    Marks a block of lines for copying
Then you move elsewhere in the member and type either an A or a B. If you type an A, the source lines
are copied after the destination line. If you type a B, they are placed before the destination line.




                                                                                                  48
Notes:




         49
Notes:


CC       Marks a block of lines for copying
Then you move elsewhere in the member and type either an A or a B. If you type an A, the source lines
are copied after the destination line. If you type a B, they are placed before the destination line.




                                                                                                  50
Notes:


Moving lines is similar to copying them except that the source lines are deleted from their original
location after they are moved.
The M command has several forms
   •     M           Moves a single line
   •     Mn          Moves n lines
   •     MM          Marks a block of lines to move
Then you move elsewhere in the member and type either an A or B. If you type an A, the source lines are
copied after the destination line. If you type a B, they are placed before the destination line.




                                                                                                    51
Notes:




         52
Notes:


MM       Marks a block of lines to move
Then you move elsewhere in the member and type either an A or B. If you type an A, the source lines are
copied after the destination line. If you type a B, they are placed before the destination line.




                                                                                                    53
Notes:


The library, that is the Project, Group, and Type you specify, must already exist.
ISPF creates an empty workspace in virtual storage for the new member.
Once in the ISPF Edit Panel, you can use the INSERT number of lines as you see necessary and enter
your source data. ISPF writes the new member onto disk when you exit the edit session.




                                                                                               54
Notes:


The COPY command is used to copy one or more lines of data from a sequential data set, member of a
partitioned data set (PDS), into the member, data set currently being edited or viewed.
Use the A (after) or B (before) line commands or the AFTER or BEFORE keyword along with a label, to
specify where the data is to be copied.
If a member name is specified as part of the command, and "after" or "before" is properly specified, the
entire member or a range of lines in the member will be copied in immediately.
      Command ===> copy memnam                     copy in the member "memnam".
 or Command ===> copy (memnam) 2 10                copy in lines 2-10 of "memnam".
A partially qualified or fully qualified data set name may be specified as part of the command. This can
be a sequential data set or another partitioned data set.
      Command ===> copy seqds                     Copies a sequential data set.
or Command ===> copy 'userid.seqds'               Copies a sequential data set.
      Command ===> copy pds(a)                    copies member a.
or      Command ===> copy pds        6 10         member list is displayed and lines 6-10 are copied
                                                   from the selected member.
 or Command ===> copy 'userid.seqds'              Copies a sequential data set.
      Command ===> copy pds(a)                    copies member a.
 or      Command ===> copy pds       6 10         member list is displayed and lines 6-10 are copied
                                                  from the selected member.

                                                                                                     55
To use "extended copy", enter the COPY command without a member name, data set name, or file
pathname. Having specified the destination line, a panel will be displayed allowing you to enter the name
of a sequential data set, PDS (and member).
   Command ===> copy after .here           requests extended-copy panel.
You have the option of copying an entire data set, member, or file, or of selecting one or more lines to be
copied.




                                                                                                        56
Notes:
CREATE Command

The CREATE command (may be abbreviated CRE ) is used to create a new member of a partitioned data
set (PDS), a new sequential data set, using one or more lines of the data being edited or viewed.
   In a PDS, the new member will be created in the lowest level library of the current concatenation only if
it does not exist in that library. If it exists in a higher level library, a warning message is displayed and
the member is created. (Use the REPLACE command to replace an existing member.)
 To specify the lines to be put into the new member, use:
   . line commands C or CC or else a range operand to copy line(s).
   . line commands M or MM to move line(s). (copy, then delete)
  If you specify the member name as part of the command, and the move or copy line commands (or
range operand) are entered, the new member will be created immediately from the data that you are
editing or viewing. The member name may be entered with or without parentheses.
     Command ===> create memnam                     creates the new member "memnam".
     Command ===> create (memnam)                   creates the new member "memnam".
 A partially qualified or fully qualified data set name may be specified as part of the command.
     Command ===> create pds(a)                     creates member a.
     Command ===> create 'userid.pds(a)             creates member a
     Command ===> create 'userid.seq                creates sequential data set

                                                                                                          57
To use "extended create", enter the CREATE command without a member name or data set name. If the
range operand is specified, or the move or copy line commands are entered, a panel will be displayed
allowing you to enter either the name of a PDS and member, the name of a sequential data set.
   Command ===> cre .strt .end              requests extended-create panel.
or Command ===> cre .zfirst .zlast           requests extended-create panel.




REPLACE Command

The REPLACE command (may be abbreviated REPL ) is used to replace amember of a partitioned data
set (PDS), an entire sequential data set using one or more lines of the data being edited or viewed.
In a PDS, a new member will be created or an existing member will be replaced in the lowest level library
of the concatenation.
To specify the lines to be put into the member being replaced, use:
 . line commands C or CC or else a range operand to copy line(s).
 . line commands M or MM to move line(s). (copy, then delete)
If the member name is specified as part of the command, and the move or copy lines commands (or range
operand) are entered, the named member of the PDS will be replaced immediately. Member name may
be entered with or without parentheses. To ensure that a member is replaced instead of a sequential data
set by the same name, use parentheses.
   Command ===> replace memnam                     replaces the member "memnam".
   Command ===> replace (memnam)                   replaces the member "memnam".
A partially qualified or fully qualified data set name may be specified s part of the command. This can be
a sequential data set or another partitioned data set.
   Command ===> replace seqds                      replaces a sequential data set.
or Command ===> replace 'userid.seqds'             replaces a sequential data set.
   Command ===> replace seqds                      replaces a sequential data set.
or Command ===> replace 'userid.seqds'             replaces a sequential data set.
   Command ===> replace pds(a)                     replaces member a.
   Command ===> replace 'userid.pds(a)'            replaces member a.
To use extended replace , enter the REPLACE command without a member name, data set name, or file
pathname. If a range operand is specified, or once the move or copy line commands have been entered, a
panel will be displayed. You can enter the name of any sequential data set or PDS (and member).
   Command ===> repl .strt .end                    requests extended-replace panel.
 or Command ===> repl .zfirst .zlast               requests extended-replace panel.




                                                                                                       58
Notes:
Confirm Cancel/Move/Replace
Specifies that you want ISPF to display a confirmation panel whenever you issue a Cancel, Move, or
Replace command.




                                                                                               59
Notes:


When you have completed all editing in the ISPF Edit Panel, press the End key, PF3. When you do this
ISPF saves your changed member to the primary library. You are returned to the Edit Entry Panel. If you
press PF3 again, ISPF returns to the ISPF Primary Option Panel.
In the Edit Entry Panel, you can skip some steps and return directly to the ISPF Primary Option Panel by
pressing PF4. ISPF saves the changed member in the process.
Still another alternative is to enter SAVE at the Command line to cause the member to be saved. Entering
CANCEL causes the changes to be discarded, and you are returned to the Edit Entry Panel.




                                                                                                     60
Notes:


The edit profile controls many of the operations involved in editing such as column boundaries, tab
settings, the generation of line numbers, editing using all capitals, and other items.
For each user, ISPF maintains a number of separate profiles. There are default profiles for each data set
type. For example, there is a default for COBOL files. You can also make up additionalprofiles for any
data set type.
The profile in effect for an edit session can be entered in the Profile Name field in the Edit Entry Panel.




                                                                                                              61
Notes:


Inside the Editor Panel, you can display the edit profile that is in effect by typing PROFILE at the
command line. The top several lines of the display becomes shaded and the text like =PROF>, =TABS>
or =COLS> appears in the line number command area for the lines displaying the profile.
The several lines at the top will show the setting of various edit modes. For example, the profile name is
COBOL. The settings for RECOVERY, NUMBER, HEX, NULLS, TABS, AUTONUM, AUTOLIST,
and PACK are all set to OFF.
CAPS, AUTOSAVE, STATS, and NOTE are set to ON. Other settings like PROFILE and IMACRO
have different values. The next panel shows an example of the result of entering the profile command.
Editing exists profile
If an edit profile exists which you would like to activate, you can do that by placing its name in the
PROFILE command.
Example: PROFILE COB2. The profile named COB2 is retrieved.
If this profile does not exist, a new one is created using the current profile settings. This represents the
manner in which you can create new profiles. You can change the profiles settings as you wish, then issue
a PROFILE command specifying the new profile name. Changes you make to the PROFILE are saved
when you exit the edit session.
To avoid changes to the profile being saved at the end of the session you may use the PROFILE LOCK
command.




                                                                                                         62
Notes:


The column boundaries
Column boundaries control the width of the area in which source data can be placed, and the range of
columns for editing data. The area within the boundaries represent the columns to which editing
commands apply. The COBOL default is 7 for the left boundary and 72 for the right boundary. For other
types, such as an assembler source file (ASM), the standard left margin is 1 and the right margin is 71.
The =BNDS> line illustrates the current settings.




                                                                                                     63
Notes:


You can change the BOUNDS setting in the profile using the BOUNDS primary command. At the
command prompt, you can type a command like BOUNDS 7 80.
This will cause a new, left boundary and a new right boundary to be set to 7 and 80, respectively. This
form of the command is the BOUNDS primary command.
To set only the left boundary, issue the same command, but use an asterisk for the right boundary. To set
only the right boundary, use the asterisk in place of the left boundary. A BOUNDS command without
specifying anything resets the defaults.




                                                                                                      64
Notes:


Another alternative is to use the BOUNDS command as a line command. Enter BOUNDS in the line
command area. The editor responds by displaying a =BNDS> line at the place where you entered the
command.
You may move the terminal cursor to the spot on the line where you want to set up new boundaries. Type
a less-than sign to mark the new left boundary, and type a greater-than sign to mark a new right boundary.




                                                                                                       65
Notes:


Tab stops are especially important for editing members containing source files like COBOL or
Assembler, because certain constructs must begin in specific columns.
There are two types of tab stops supported by the ISPF editor, hardware and logical. You move among
hardware tab stops by pressing the Tab key on the 3270 terminal or terminal-emulator.
With logical tab stops you enter a special tab character like a @ or #. The editor will take the subsequent
text and align it to the closest tab stop inserting spaces as necessary to position it.
You may very effectively mix tab stops. For example, in the DATA DIVISION of a COBOL program,
you will want to control very specifically the columns where level numbers, PIC, and VALUE clauses
fall. Hardware tabbing works well.
In the PROCEDURE DIVISION, where indentation is more important than specific column positions,
logical tabbing is more suitable and useful.




                                                                                                        66
Notes:


Hardware tab stops are activated by typing the TABS command in the line command area.
Upon pressing Enter, the editor gives you a =TABS> line. On this line you enter an asterisk (*)
immediately to the left of the desired position for the tab stop.
The asterisk defines the position for an attribute byte. This is a special character recognizable by the 3270
hardware as a tab position. The attribute byte actually takes up a position and displays as blank. However,
you will not be able to type any source data into this position. Source data will fall in starting at the
position immediately to the right of the asterisk. You could enter a TABS OFF command to deactivate all
tabs, or you can do one of the following:
 - Position the cursor on the attribute byte and press ENTER.
 - Blank out the sequence number for the line and press ENTER.
Either of the above will temporarily eliminate tabs on a single line.
TABS ON, typed at the command line, will activate hardware tab stops and TABS OFF turns them off.




                                                                                                          67
Notes:


To activate logical tabbing, type the TAB command at the command line, followed by the character to be
used to mark the tab position. From then on, that character can be typed in any source line to generate the
logical tabbing effect. TAB with no character turns off logical tabbing.




                                                                                                        68
Notes:


Using an edit mask, you can predefine a lines initial contents to be used each time you insert a line using
the I command. Start by entering the MASK command in the line command area. A line beginning with
=MASK> is inserted, and you enter your edit mask.
Subsequently, until you change the mask line, each line created using the I command will start with the
contents of the mask line. To remove the current mask line, use the D line command to delete it. The
default mask line is blank.
Alternatively, you can achieve the effect of a mask line by inserting one blank line, enter your data, and
then repeat it using an R command.




                                                                                                        69
Notes:


CAPS mode forces all characters typed to automatically appear in uppercase.
With this mode turned off, no automatic conversion is applied. When turned on, this is quite useful for
COBOL programs and other types of program source code, which is generally all entered in uppercase
characters.
There are also two associated commands typed in the line command mode. LC typed at a line converts all
characters on the line to lowercase, and UC converts all characters on the line to uppercase. You can
convert a number of contiguous lines by following the LC or UC command by the number of lines you
want to convert.




                                                                                                    70
Notes:


With STATS mode turned on, statistics are maintained for each member in a library. These are the
statistics displayed in the member selection lists.
The items it shows are listed below.
   •     VV.MM - The version and modification level number
   •     CREATED -The date the member was initially created
   •     CHANGED - The date and time that the member was last edited
   •     SIZE - The current number of lines in the member
   •     INIT - The number of lines initially in this version of the member
   •     MOD - The number of lines that have been modified since this version of the member was created
   •     ID - The user-id of the person who most recently edited the member




                                                                                                     71
Notes:


The ISPF editor is capable of maintaining a record of all changes you make during an edit session if you
turn on RECOVERY Mode. The changes are maintained in the special file called the recovery data set.
If during an edit session, the system crashes, the recovery data set is left opened. When you edit the
member again, the editor will sense this and give you an opportunity to apply the changes again.
RECOVERY mode also provides an undo capability. Since, changes are being logged, you may enter the
UNDO command at anytime to back out the last change made. You may enter successive UNDO
commands until all changes made during the current edit session have been backed out.




                                                                                                     72
Notes:


With HEX Mode on, all characters are displayed in hexadecimal format.
Each actual character is replaced by its two-byte hexadecimal equivalent.
You can change any character by changing its two-byte code.
The two-byte code is equivalent to PACKED-DECIMAL in COBOL.
Therefore this mode can be used to create or modify such data.




                                                                            73
Notes:


The ISPF editor also offers a CHANGE command. However, the change commands takes two strings.
The first string is a target string, and the second is a replacement string.
For example, you can type at the command prompt
         CHANGE FORMAT PRINT
If the target or replacement string contains spaces or special characters they need to be placed in quotes.
The first occurrence of the target string FORMAT is changed to PRINT. If you wish to replace all
occurrences throughout the source member, add the keyword ALL the end of the command. Lines
changed are marked with ==CHG> in the line command area.
On every CHANGE command, you must specify a "from" string and a "to“ string. In most cases you
simply enter CHANGE or its abbreviations CHG or C, followed by the two character strings.
         Example - ===> change demo test
If you want to use the same string that was used in the previous CHANGE command, use an * (asterisk).
         Example - ===> chg * * 40 60      (change demo to test in cols 40 to 60)
In some cases, you want to change a string of characters that cannot be entered in the simple format
shown above. For these cases, special strings can be entered. For example, to change the expression "a =
b" to "c = d" you must use delimited strings as the expressions contain blanks.
  Example - ===> c 'a = b' 'c = d'




                                                                                                        74
Notes:


You may limit the range affected by a CHANGE command by specifying a search range. The search
range is communicated by following the replacement string with two labels that have been assigned to the
first line and last line of the range respectively.
Labels are assigned by positioning the cursor at a line, and typing the label, preceded by a period (.) .
In the CHANGE command, you need to include the period as part of the label. The following CHANGE
command changes all occurrences of the string FORMAT to PRINT, within the lines labeled .TOPLN
and .BOTLN.




                                                                                                            75
Notes:


NEXT
NEXT can be entered as an optional parameter with the CHANGE command.
(It is never required, however, since next is the default).
   Command ===> change xx yy next               changes the next "xx" to "yy".
A search for the next occurrence of the string "xx" will be made, starting at the beginning of the first line
being displayed (if the cursor is still on line 2), or at the cursor location (if the cursor is within the data
part of the display).
If the string is changed, the cursor will be placed at the end of the "yy" string. If the RCHANGE PF key
is then pressed, scanning will continue, changing the next occurrence, and then the next, etc., until the
bottom of data is reached.
If the string is not found by the bottom of the data, a BOTTOM OF DATA message will be displayed.
To continue scanning, wrapping around from the bottom of the data to the top, use RCHANGE or
RFIND.




                                                                                                            76
PREV
PREV can be entered as an optional parameter with the CHANGE command.
   Command ===> c xx yy prev              changes the previous "xx" to "yy".
A search for the previous occurrence of the string "xx" will be made, starting at the end of the line
preceding the first line being displayed (if the cursor is still on line 2), or at the cursor location (if the
cursor is within the data portion of the display).
If the string is changed, the cursor will be placed at the end of the string. If the RCHANGE PF key is
then pressed, scanning backwards will continue until the string is changed again, or the top of the data is
reached. If the string is not found by the top of the data, a TOP OF DATA message will be displayed. To
continue backwards scanning, wrapping around from the top of the data to the bottom, use RCHANGE or
RFIND.


FIRST
FIRST can be entered as an optional parameter with the CHANGE command.
   Command ===> chg xx yy first              changes the first "xx" to "yy".
A search for the first occurrence of the string "xx" will be made, starting at the beginning of the first line
of the data and continuing until the string is found, or the bottom of data is reached.
If the string is changed, the cursor will be placed at the end of the changing the second occurrence, then
the third occurrence, etc., until the bottom of data is reached.
If the string is not found by the bottom of the data, a message will be displayed, indicating that the
characters cannot be found.


LAST
LAST can be entered as an optional parameter with the CHANGE command.
   Command ===> chg xx yy last               changes the last "xx" to "yy".
A search for the last occurrence of the string "xx" will be made, starting at the end of the last line of the
data and continuing backward until the string is found, or the top of data is reached.
If the string is changed, the cursor will be placed at the end of the string. If the RCHANGE PF key is
then pressed, backwards scanning will continue, changing the next to the last occurrence, the third from
the last occurrence, etc., until the top of data is reached. If the string is not found by the top of the data, a
message will be displayed, indicating that the characters cannot be found.


ALL
ALL can be entered as an optional parameter with the CHANGE command.
   Command ===> c xx yy all                 changes all "xx" to yy".
A search for all the occurrences of the string "xx" will be made, starting at the beginning of the first line
of the data and continuing to the bottom of data.
If the string is found one or more times, all occurrences will be changed, and the cursor will be placed at
the end of the first changed characters. A message will be displayed indicating the number of times that
the string was changed. Each line will be flagged with =CHG=>.
 If it is impossible to change one or more occurrences of the "from" string, a message will be displayed
indicating the number of times that the error occurred. Each line will also be flagged with =ERR=>.
 If the string is not found by the bottom of the data, a message will be displayed, indicating that the
characters cannot be found.
                                                                                                     77
Notes:


CHARS
CHARS can be entered as an optional parameter with the CHANGE command.
 (It is never required, however, since CHARS is the default).
    Command ===> chg xx yy chars             changes the chars "xx" to "yy"
Any occurrence of the character string "xx" that is within the specified (or default) bounds will be
considered a match.
In the list below, all occurrences of the character string "do" would be changed.
   CHARS DO - DO DONT ADO ADOPT 'DO' ¢ADO (DONT) ADO-


PREFIX
PREFIX (or the abbreviation PRE ) can be entered as an optional parameter with the CHANGE
command.
   Command ===> chg xx yy prefix            changes the prefix "xx" to "yy".
Only those occurrences of the character string "xx" that are a prefix to a word or label and that are within
the specified (or default) bounds will be considered a match.
A prefix is defined as being preceded by a non-alphameric character and followed by an alphameric
character.


                                                                                                         78
The prefix parameter could be used for example to change all labels or words beginning with "er",
without changing words ending in "er".
In the list below, only DONT and (DONT) strings would be changed:
PREFIX DO - DO DONT ADO ADOPT 'DO' ¢ADO (DONT) ADO-


SUFFIX
 SUFFIX (or the abbreviation SUF ) can be entered as an optional parameter with the CHANGE
command.
    Command ===> chg xx yy suffix           changes the suffix "xx" to "yy".
Only those occurrences of the character string "xx" that are a suffix to a word or label and that are within
the specified (or default) bounds will be considered a match.
A suffix is defined as being preceded by an alphameric character and followed by a non-alphameric
character.
The suffix parameter could be used for example to change all labels or words ending with "g" without
changing all occurrences of the character "g".
In the list below, only ADO, ¢ADO and ADO- strings would be changed:
SUFFIX DO - DO DONT ADO ADOPT 'DO' ¢ADO (DONT) ADO-


WORD
WORD can be entered as an optional parameter with the CHANGE command.
     Command ===> chg xx yy word              changes the word "xx" to "yy".
Only those occurrences of the character string "xx" that are a word (or a label) and that are within the
specified (or default) bounds will be considered a match.
A word is defined as being preceded and followed by a non-alphameric character.
The "word" parameter could be used for example to change all words "do", without changing all
occurrences of the character string "do".
In the list below, only DO and 'DO' strings would be changed:
     WORD DO        - DO DONT ADO ADOPT 'DO' ¢ADO (DONT) ADO-




                                                                                                         79
Notes:


You may exclude lines before executing your change command using the EXCLUDE command. You can
type the following command
         EXCLUDE FILLER ALL
This command has the effect of excluding all lines within the source that contains the string FILLER.
Such lines will not be displayed.
In the subsequent FIND or CHANGE command you should add either the X or NX option. If you add X,
only the excluded lines are searched. If you add NX, only the lines which are not excluded are searched.
A block of excluded lines is replaced by a single line indicating that the block of lines is hidden.




                                                                                                     80
Notes:


You may also exclude lines by using the XX command in the line command area.
There are three forms of the exclude command:
         X    Excludes this line
         Xn   Excludes n lines starting with this line
         XX   Excludes the block of lines beginning with the first XX command




                                                                                81
Notes:




         82
Notes:




         83
Notes:


A single F typed in the spot where lines were excluded shows or redisplays the first line. A command
like F8 redisplays the first 8 lines. Likewise a single L displays the last line excluded, and L7 redisplays
the last 7 lines.
An S command redisplays lines based on indentation level. If you type S9, lines within the first 9
excluded lines are redisplayed as long are they are not among the ones most indented. This can be useful
for lining up IF and ELSE clauses in large blocks of indented code.
The RESET displays all excluded lines. This is typed at the command prompt, not in the line command
area.




                                                                                                         84
Notes:


Examples:
 Command ===> delete all x        deletes all excluded lines from the data
 Command ===> delete all nx .a .b deletes all non-excluded lines from the inclusive range defined by
                                  the labels, ".a" and ".b".
 Command ===> delete all .a .b     deletes all lines from the inclusive range defined by the labels, ".a"
                                   and ".b".
 Command ===> delete x .a .b        deletes all excluded lines from the inclusive range defined by the
                                   labels, ".a" and ".b".
The parameters may be entered in any order. The "range" is optional and ALL is optional when X or NX
is specified.




                                                                                                      85
Notes:


The ISPF editor provides some line level commands to help shift or change the indentation of groups of
lines. All these are typed in the line command area.
A single ( shifts the line left 1 position. A (7 shifts the line left 7 positions. A ) shifts the line right 1
position, and a )8 shifts it right 8 positions.
You can shift a whole block of text left by marking the first line with (( and the last line with ((. Mark the
first line with ((7 and the last line with ((, and the whole block will be shifted left 7 positions. You may
shift right using )) and )), or ))8 and )) to shift a whole block right 8 positions.
These commands are equivalent to using the Insert and Delete keys on the 3270 terminal.
Depending on the quantity and type of lines requiring shifting, it may be easier to use the keys on the
keyboard.




                                                                                                           86
Module 4

Utilities




            87
Notes:


This unit covers the some of the functions in selection 3 of the ISPF Primary Action Menu. This
represents the ISPF utilities. With the ISPF utilities, you can display and print library and data set
member lists.
You can also reset statistics for ISPF library members, and define commands to be used with specific
dialogs.




                                                                                                   88
Notes:


The ISPF Utilities are accessed through option 3 of the ISPF Primary Options Menu. When you select
option 3, you see the Utility Selection Panel, shown on the slide. There are typically 15 different utility
options; all 15 are listed shown on the slide.
Some of the things you can do with the utilities:
   •     Display and print library and data set member lists
   •     Reset statistics for ISPF library members
   •     Define commands to be used with specific dialogs
   •     Compare data sets and search for strings of data
   •     Move, copy, lock, promote, and print library and data set members




                                                                                                        89
Notes:


If you select option 1 on the Utility Selection Panel, you see the Library Utility Panel shown here. This
set of utilities targets a specific data set and then allows you to operate on its members. This is in contrast
to the DSLIST Utility, option 4 on the (3) Utility Selection Panel. The DSLIST allows you to perform
many similar functions, but targets lists of data sets, and allows you to operate on individual data sets
within the lists.
Among the most important functions are browse member, print member, rename member, and delete
member.
Options
You start by entering the name of a partitioned data set in the ISPF Library section. You can specify the
name of a member, in which case you can immediately select B, D, E, P, R, and V at the command
prompt.
If you do not supply a member name and leave the command prompt blank, you see a member selection
list panel when you press Enter.
Furthermore, you can enter the name of an existing member and a new name for the new member. Then,
if you select the R option, the member will be renamed with the new name you have chosen.




                                                                                                            90
The options that you can use in the Library Utility applied to a member of a partitioned data set are:
       C       Compress data set
       V       View member
       X       Print index listing
       B       Browse member
       L       Print entire data set
       D       Delete member
       I       Data set information
       R       Rename member
       S       Short data set information
       P       Print member
These options operate either on an entire library, or on a specific member.


Options that operate on an entire library:
       C       Compress data set
       X       Print index listing
       L       Print entire data set
       I       Data set information
       S       Short data set information


Options that operate on a specific Member:
       V       View member
       B       Browse member
       D       Delete member
       R       Rename member
       P       Print member




                                                                                                         91
Notes:


After the selections are made, press enterIf a member name is left blank, the member selection list panel
appears just like other member lists you have seen, and is very powerful in this context. You may move
through the member list, and enter one of the utility codes to the left of one member or multiple members.
For example, you can place a B next to PAY2A to browse it, a D next to PAY34 to delete it, and a P next
to PAY31 to print it.
Feel free to place the appropriate codes next to desired members, even scroll forward and backward
through the member list if it is large. When you have made your selections, press Enter.




                                                                                                       92
Notes:


Option 2 of the (3) Utility Selection Panel is named the data set utility because options on it deal with
data set libraries rather than on PDS members. These options include the allocation of a new data set,
renaming an entire data set, deleting an entire data set, cataloging and uncataloging of data sets, and
display of space usage information.
Again, many of the functions in this section can be performed by the Dslist utility. This will be explained
in more detail in the next topic.


CATALOG/UNCATALOG
z/OS maintains a structure of catalogs to store the names and information of files. A file need not be part
of the catalog, but commonly used files should be cataloged. Cataloging a data set means that OS/390
keeps track of what disk media it occupies.
To access a file that is not cataloged, you must supply the data set name and the volume/serial for the
volume in which it resides. Most files you will use and manipulate under ISPF will be cataloged.
Under ISPF, data sets are cataloged automatically when they are allocated.
However, occasionally jobs fail and there are loose ends which must be patched up. A failed job may
leave a data set uncataloged. Occasionally, there will be non-ISPF data sets that must be accessed.
For these reasons the Data Set Utility provides a catalog data set function (C) and an uncatalog data set
(U) function.
When you catalog a data set, the volume/serial of the volume must be specified. The system examines
the volume table of contents (VTOC) and obtains the characteristics of the data set.


                                                                                                        93
Notes:


After entering the name of the data set, you can leave the Option Prompt blank, and press Enter.
This will cause the Data Set Information panel to appear. It contains detailed information about the
allocation, format, and utilization of the data set.




                                                                                                   94
Notes:


Before you can use a data set, it must be allocated. Option A on the Data Set Utility Panel is for allocating
data sets.
You enter the name of the data set and select option A. If the data set does not exist, ISPF displays the
allocate panel.
If you want to place the new data set on a specific volume, you must enter the volume's serial number in
that field.
If you leave it blank, OS/390 will select a default volume, unless you specify a generic unit.
In the generic unit field, you can specify the type of DASD you want to use, such as 3380.
Under normal circumstances, you do not specify the volume serial numberor generic unit.


Space for a new data
The space requirement for a new data set is specified through three parameters – space units, primary
quantity, and secondary quantity.
The space units field determines the unit of measurement for allocation. You may allocate in terms of
blocks (BLKS), tracks (TRKS), or cylinders (CYLS).
The primary quantity field should contain the amount of space the data set will require.




                                                                                                          95
In the secondary quantity field, you should place a secondary allocation, which is necessary to expand the
data set. If required, it will be added to the primary quantity. Up to 15 allocations will be made. After that
the only way to expand the data set is copy or move it to a new data set with a larger allocation.


Expiration Date
Specify a date when the file can be considered expired and can be deleted
In the file expiration data parameter you can specify a date when the file can be considered expired and
can be deleted. The expiration date is not normally filled in for disk data sets, since it interferes with their
reorganization. They cannot be deleted until the expiration data is reached.


Directory blocks
The directory blocks field determines whether you are creating a sequential data set or a partitioned data
set. If set to zero, the new data set becomes a sequential data set.
To create a partitioned data set, enter a value in the directory blocks field. This parameter represents the
number of 255-byte directory blocks that should be allocated for the library. Normally, each block can
accommodate six member entries for standard ISPF source members.
Non-standard ISPF source members do not have ISPF statistics, and there is less information which must
be stored in the directory blocks. In these data sets, each directory block can hold up to 21 members.




                                                                                                             96
Notes:


If you select the rename option, you are presented with the Rename Data Set panel. The data set name at
the top of the screen is carried over from the initial Data Set Utility panel. You enter the new name for the
data set under the ISPF Library fields.




                                                                                                          97
Notes:


The D option on the Data Set Utility panel provides you the ability to delete a data set.
Enter the name of the data set you want to delete. Press Enter. ISPF provides a pop-up window that will
request confirmation from you that you truly wish to delete the data set.
The deletion of the data set frees space for immediate use by z/OS for other data sets. Once it is deleted, it
is gone. To get it back, it must be restored from backup.




                                                                                                           98
Notes:


Selection 3 on the Utility Selection Panel, represents the move/copy Utility. With this utility, you can
move or copy sequential or partitioned data sets. Copying a data set means reproducing it to another
location. Afterwards you have two versions, the original and the copy. When you move a data set, it is
copied from one location to another, but the original is scratched, and only one version remains.
With the move/copy utility, you may also move or copy a member from one partitioned data set to
another. Likewise, copying a member implies reproducing it. Moving a member means that the original is
scratched. Moving or copying does not allocate a new data set. Both from and to data sets must already
exist.
The C and M options are used to copy or move either a data set or member of a data set. CP and MP are
also provided to print the data set or member as it is copied. Actually, the data copied is placed in the list
data set that is submitted to for batch print when the ISPF session is ended.
To copy a sequential data set, you must enter the data set name information of the from data set in the
section From ISPF Library. Leave the member name blank. You can enter up to four library names. ISPF
concatenates these searches for each of the libraries until it finds the data set.
Select your copy or move option, then press Enter.
In the entry panel that follows you have the opportunity to specify the to data set. For a sequential data
set, you need to enter a project, group, and type.
There are a number of data sets options to consider at the bottom of the screen.
If you select Mod, and the to data set already exists, the copied or moved data is added to the end of the
existing data set. If you select OLD, the previous contents of the to data set are erased.



                                                                                                           99
You can also choose to store the output data set in packed (compressed) format.
The third set of options has to do with the Source Configuration Library Manager (SCLM) module.
In the second panel, specify the name of the to data set, and also the name of the to member.
When copying members of a PDS, you must consider the Replace option. If you enter a slash (/), you will
replace like-named members.
This means that duplicate members will be deleted from the to data set before they are copied or moved.
If you do not select this option, duplicate members WILL NOT be copied or moved.




                                                                                                   100
Notes:


You can copy all members from one PDS to another very easily.
When entering the From ISPF Library, place an asterisk in the Member field. This will tell the utility to
copy all members it finds in the from data set. In such an operation, you should consider carefully the
Replace Like-Named Members option on the Specify-To entry panel.
The member selection list shows the names of the members that appear in the from data set. You can
select the members you wish to move or copy, by placing an S in the left-most column of the selection
list.
An important part of this member selection list display is the Rename column. Here you may add a new
member name next to any member you select. The member will be copied or moved and the to version
will possess the member name from the Rename column.




                                                                                                     101
Notes:


The fourth selection on the ISPF Primary Option Menu provides access to the DSLIST utility. This might
be one of the most useful areas of the feature provided by ISPF.
The main panel for the DSLIST Utility is shown here. At the top are four options. The most useful of
these is Display Data Set List, since it is really the starting point for almost all the operations you will do
with the DSLIST utility.
If you leave the option prompt blank and press Enter, the utility provides a list of data sets.
First, you must enter parameters that indicate the scope of the data set list you want to start with. These
two important parameters are DSNAME Level and Volume Serial.
In the fields Confirm Data Set Delete and Confirm Member Delete, it is a good idea to set these options
by typing the slash (/). This will ensure later that you are prompted for assurance before the utility permits
a data set or member to be deleted.
On the Data Set Utility Panel, there are four possible views to select from. You make your selection by
entering a number 1 through 4 at Initial View field.
The four views are listed below.
Volume – The VOLUME option displays the volume where each of the data sets in the list reside.
Space – The SPACE option displays information on track allocation and usage.
Attrib – The ATTRIB option displays the characteristics of the data sets.
Total – The TOTAL option displays all of the previous information, along with the creation and
expiration dates and the date each data set was last referenced.



                                                                                                           102
If you enter a high-level data set name qualifier, perhaps only a project id in the DSNAME level field,
you would then press Enter. The utility searches all cataloged data sets across the entire system with front
portions of their names matching the value you specified. An example of such a list is shown here.
You may also specify a Volume Serial parameter and leave the DSNAME level field blank. The list will
show all data sets on the specified disk volume, cataloged or uncataloged.
Finally, you can specify both a DSNAME level parameter and a Volume Serial parameter. In this case the
list will show only data sets matching the name qualifier on the specified disk volume.
There are three options in addition to leaving the option prompt blank.
   •   The P option will cause the list of data sets to be entered into the list data set for printing when the
       ISPF session ends.
   •   The V option provides information taken from the volume table of contents VTOC of the
       specified disk. It shows the number of tracks, their overall usage, and amount of space left on the
       disk.
   •   The PV option places the same information, as displayed by the V option, in the list data set for
       printing when the session ends.
The VTOC information is of greater use to system programmers than that of application programmers.


Specifying Dsname Level

* A single asterisk by itself indicates that at least one qualifier is needed to occupy that position. A single
asterisk within a qualifier indicates that zero or more characters can occupy that position.
** A double asterisk indicates that zero or more qualifiers can occupy that position. A double asterisk
within a qualifier is invalid.
% A single percent sign indicates that any one single alphameric or national character can occupy that
position.
%%... One to eight percent signs can be specified in each qualifier.


The following examples are valid for Dsname Level:


Dsname Level            Data Set List
SYS1.PARMLIB            One data set name.
SYS1.*                  All data set names with SYS1 as the first qualifier and at least one more
                        qualifier.
SYS1 or SYS1.**         All data set names with SYS1 as the first qualifier
**.CLIST                All data set names with a qualifier of CLIST .
AAA%*.B*%%%B            All data sets that start with AAA, have at least one more character in the
                        high level qualifier and have a second qualifier that begins and ends in B
                        with at least three letters between the Bs.




                                                                                                           103
Notes:


The functions available for use within the data set list are shown here:
         B     Browse data set
         C     Catalog data set
         D     Delete entire data set
         E     Edit data set
         I     Data set information
         M     Member list only
         P     Print entire data set
         R     Rename entire data set
         S     Sort data set information
         U     Uncatalog data set
         X     Print data set index listing
         Z     Compress data set
All of these functions are present in one or more forms within ISPF. The DSLIST utility provides a
manner of using these within the context of a data set list.
The data set list represents the branching off point for any of several desired actions. For example, you
can move the cursor down to a particular data set name, enter B for browse, and press Enter.

                                                                                                     104
If the data set is a PDS, you will receive a member list showing all members in the data set.
From that list you can select a member by typing an S next to it, and pressing Enter. Immediately you are
taken to a browse panel in order to browse the source data contained in that member.
If the data set is a sequential data set, and you select it with a B for browse, you will be taken immediately
to the browse panel to see its source data.
The PF3 key takes you back to the data set list.




                                                                                                          105
Notes:


Option 14 on the Utility Selection Panel brings up the Search-For Utility. This utility allows you to search
for one or more characters in a data set. The search string is entered on the first line. Spaces or special
characters must be placed in quotes. In this basic Search Utility, search strings are not case-sensitive, and
may be entered in uppercase or lowercase.
You can specify that data set here. If you leave the Member Field blank, Search-For displays a member
list. In the member list, you can select the members you want searched by placing an S next to each.
In the panel shown here, if you place an asterisk in the Member Field, all members in the library would be
searched. You may also choose to process in foreground or batch mode.
On the Search-For Utility Panel you can enter a slash to select the option that will specify additional
search strings. A pop-up window appears titled Search-For Strings. Here you may enter single or multiple
search strings.
You may include the keywords PREFIX, SUFFIX, or WORD after any search string to consider a match.
At the beginning of a word, end of a word, or acomplete word, respectively. You cannot include multiple
keywords on one line. If you want to search for the same string at the beginning or end of a line, place the
same search string on two different lines, one with PREFIX and one with SUFFIX.
When you specify multiple search strings, you may also supply the keyword C. C stands for continuation,
and it indicates that the search string from the previous line is being continued.
For example: ==> COMPUTE WORD
               ==> AMOUNT WORD C
The selection scenario shown indicates to locate all lines that contain COMPUTE and AMOUNT.

                                                                                                         106

More Related Content

What's hot

ALL ABOUT DB2 DSNZPARM
ALL ABOUT DB2 DSNZPARMALL ABOUT DB2 DSNZPARM
ALL ABOUT DB2 DSNZPARMIBM
 
Z OS IBM Utilities
Z OS IBM UtilitiesZ OS IBM Utilities
Z OS IBM Utilitieskapa rohit
 
Introduction of ISPF
Introduction of ISPFIntroduction of ISPF
Introduction of ISPFAnil Bharti
 
Db2 for z os trends
Db2 for z os trendsDb2 for z os trends
Db2 for z os trendsCuneyt Goksu
 
Mainframe IPL Process.pdf
Mainframe IPL Process.pdfMainframe IPL Process.pdf
Mainframe IPL Process.pdfssuseraa0df4
 
I Didn't Know You Could Do That with zOS.pdf
I Didn't Know You Could Do That with zOS.pdfI Didn't Know You Could Do That with zOS.pdf
I Didn't Know You Could Do That with zOS.pdfMarna Walle
 
100 COOL MAINFRAME TIPS
100 COOL MAINFRAME TIPS100 COOL MAINFRAME TIPS
100 COOL MAINFRAME TIPSNirmal Pati
 
DB2 for z/OS Architecture in Nutshell
DB2 for z/OS Architecture in NutshellDB2 for z/OS Architecture in Nutshell
DB2 for z/OS Architecture in NutshellCuneyt Goksu
 
Z4R: Intro to Storage and DFSMS for z/OS
Z4R: Intro to Storage and DFSMS for z/OSZ4R: Intro to Storage and DFSMS for z/OS
Z4R: Intro to Storage and DFSMS for z/OSTony Pearson
 
Basic concept of jcl
Basic concept of jclBasic concept of jcl
Basic concept of jclAnil Bharti
 
zOSMF SDSF_ShareLab_V2R5.pdf
zOSMF SDSF_ShareLab_V2R5.pdfzOSMF SDSF_ShareLab_V2R5.pdf
zOSMF SDSF_ShareLab_V2R5.pdfMarna Walle
 
Jcl tutor
Jcl tutorJcl tutor
Jcl tutorshivas
 
IMS DC Self Study Complete Tutorial
IMS DC Self Study Complete TutorialIMS DC Self Study Complete Tutorial
IMS DC Self Study Complete TutorialSrinimf-Slides
 
DB2 Systems Programming Tools of the Trade NA07B03
DB2 Systems Programming Tools of the Trade NA07B03DB2 Systems Programming Tools of the Trade NA07B03
DB2 Systems Programming Tools of the Trade NA07B03Linda Hagedorn
 
Xdc command-to-print-job-output-and-syslog-from-sdsf
Xdc command-to-print-job-output-and-syslog-from-sdsfXdc command-to-print-job-output-and-syslog-from-sdsf
Xdc command-to-print-job-output-and-syslog-from-sdsfMaintec Technologies Inc.
 

What's hot (20)

ALL ABOUT DB2 DSNZPARM
ALL ABOUT DB2 DSNZPARMALL ABOUT DB2 DSNZPARM
ALL ABOUT DB2 DSNZPARM
 
Z OS IBM Utilities
Z OS IBM UtilitiesZ OS IBM Utilities
Z OS IBM Utilities
 
Skillwise JCL
Skillwise JCLSkillwise JCL
Skillwise JCL
 
Ipl process
Ipl processIpl process
Ipl process
 
Introduction of ISPF
Introduction of ISPFIntroduction of ISPF
Introduction of ISPF
 
Db2 for z os trends
Db2 for z os trendsDb2 for z os trends
Db2 for z os trends
 
Mainframe IPL Process.pdf
Mainframe IPL Process.pdfMainframe IPL Process.pdf
Mainframe IPL Process.pdf
 
I Didn't Know You Could Do That with zOS.pdf
I Didn't Know You Could Do That with zOS.pdfI Didn't Know You Could Do That with zOS.pdf
I Didn't Know You Could Do That with zOS.pdf
 
DB2 on Mainframe
DB2 on MainframeDB2 on Mainframe
DB2 on Mainframe
 
100 COOL MAINFRAME TIPS
100 COOL MAINFRAME TIPS100 COOL MAINFRAME TIPS
100 COOL MAINFRAME TIPS
 
Mainframe interview
Mainframe interviewMainframe interview
Mainframe interview
 
DB2 for z/OS Architecture in Nutshell
DB2 for z/OS Architecture in NutshellDB2 for z/OS Architecture in Nutshell
DB2 for z/OS Architecture in Nutshell
 
Z4R: Intro to Storage and DFSMS for z/OS
Z4R: Intro to Storage and DFSMS for z/OSZ4R: Intro to Storage and DFSMS for z/OS
Z4R: Intro to Storage and DFSMS for z/OS
 
Basic concept of jcl
Basic concept of jclBasic concept of jcl
Basic concept of jcl
 
zOSMF SDSF_ShareLab_V2R5.pdf
zOSMF SDSF_ShareLab_V2R5.pdfzOSMF SDSF_ShareLab_V2R5.pdf
zOSMF SDSF_ShareLab_V2R5.pdf
 
Db2
Db2Db2
Db2
 
Jcl tutor
Jcl tutorJcl tutor
Jcl tutor
 
IMS DC Self Study Complete Tutorial
IMS DC Self Study Complete TutorialIMS DC Self Study Complete Tutorial
IMS DC Self Study Complete Tutorial
 
DB2 Systems Programming Tools of the Trade NA07B03
DB2 Systems Programming Tools of the Trade NA07B03DB2 Systems Programming Tools of the Trade NA07B03
DB2 Systems Programming Tools of the Trade NA07B03
 
Xdc command-to-print-job-output-and-syslog-from-sdsf
Xdc command-to-print-job-output-and-syslog-from-sdsfXdc command-to-print-job-output-and-syslog-from-sdsf
Xdc command-to-print-job-output-and-syslog-from-sdsf
 

Viewers also liked

Philip young current state of mainframe hacking - vanguard - 101016
Philip young   current state of mainframe hacking - vanguard - 101016Philip young   current state of mainframe hacking - vanguard - 101016
Philip young current state of mainframe hacking - vanguard - 101016Philip Young
 
Advanced mainframe hacking
Advanced mainframe hackingAdvanced mainframe hacking
Advanced mainframe hackingPhilip Young
 
CA World - mft1755 - gaps in your defense hacking the mainframe - philip young
CA World - mft1755 - gaps in your defense hacking the mainframe - philip youngCA World - mft1755 - gaps in your defense hacking the mainframe - philip young
CA World - mft1755 - gaps in your defense hacking the mainframe - philip youngPhilip Young
 
ISPF Recent and Coming Enhancements
ISPF Recent and Coming EnhancementsISPF Recent and Coming Enhancements
ISPF Recent and Coming EnhancementszOSCommserver
 
Share winter 2016 encryption
Share winter 2016 encryptionShare winter 2016 encryption
Share winter 2016 encryptionbigendiansmalls
 
Security necromancy - Further adventures in mainframe hacking - DEF CON 23
Security necromancy - Further adventures in mainframe hacking - DEF CON 23Security necromancy - Further adventures in mainframe hacking - DEF CON 23
Security necromancy - Further adventures in mainframe hacking - DEF CON 23bigendiansmalls
 
Web-enabling mainframe applications
Web-enabling mainframe applicationsWeb-enabling mainframe applications
Web-enabling mainframe applicationsJeff Krukin
 
How To Master PACBASE For Mainframe In Only Seven Days
How To Master PACBASE For Mainframe In Only Seven DaysHow To Master PACBASE For Mainframe In Only Seven Days
How To Master PACBASE For Mainframe In Only Seven DaysSrinimf-Slides
 
2016 share the three headed beast v4
2016 share the three headed beast v42016 share the three headed beast v4
2016 share the three headed beast v4bigendiansmalls
 
The Walking Dead volume 3
The Walking Dead volume 3The Walking Dead volume 3
The Walking Dead volume 3dmxallen
 
Mainframe Hacking - Derbycon 5.0
Mainframe Hacking - Derbycon 5.0Mainframe Hacking - Derbycon 5.0
Mainframe Hacking - Derbycon 5.0bigendiansmalls
 
Securing Cassandra The Right Way
Securing Cassandra The Right WaySecuring Cassandra The Right Way
Securing Cassandra The Right WayDataStax Academy
 
Hardening cassandra for compliance or paranoia
Hardening cassandra for compliance or paranoiaHardening cassandra for compliance or paranoia
Hardening cassandra for compliance or paranoiazznate
 
Seattle C* Meetup: Hardening cassandra for compliance or paranoia
Seattle C* Meetup: Hardening cassandra for compliance or paranoiaSeattle C* Meetup: Hardening cassandra for compliance or paranoia
Seattle C* Meetup: Hardening cassandra for compliance or paranoiazznate
 
O caml2014 leroy-slides
O caml2014 leroy-slidesO caml2014 leroy-slides
O caml2014 leroy-slidesOCaml
 
AAPG POSTERS - Evolution of the Mardin Uplift
AAPG POSTERS - Evolution of the Mardin UpliftAAPG POSTERS - Evolution of the Mardin Uplift
AAPG POSTERS - Evolution of the Mardin UpliftJoshua Doubek
 
How to Start a Movement with Your Blog - with Gideon Shalwick
How to Start a Movement with Your Blog - with Gideon ShalwickHow to Start a Movement with Your Blog - with Gideon Shalwick
How to Start a Movement with Your Blog - with Gideon ShalwickLeslie Samuel
 
Sejarah perkembangan komputer
Sejarah perkembangan komputerSejarah perkembangan komputer
Sejarah perkembangan komputerWahyu Dermawan
 

Viewers also liked (20)

Cics
CicsCics
Cics
 
Philip young current state of mainframe hacking - vanguard - 101016
Philip young   current state of mainframe hacking - vanguard - 101016Philip young   current state of mainframe hacking - vanguard - 101016
Philip young current state of mainframe hacking - vanguard - 101016
 
Advanced mainframe hacking
Advanced mainframe hackingAdvanced mainframe hacking
Advanced mainframe hacking
 
CA World - mft1755 - gaps in your defense hacking the mainframe - philip young
CA World - mft1755 - gaps in your defense hacking the mainframe - philip youngCA World - mft1755 - gaps in your defense hacking the mainframe - philip young
CA World - mft1755 - gaps in your defense hacking the mainframe - philip young
 
ISPF Recent and Coming Enhancements
ISPF Recent and Coming EnhancementsISPF Recent and Coming Enhancements
ISPF Recent and Coming Enhancements
 
Share winter 2016 encryption
Share winter 2016 encryptionShare winter 2016 encryption
Share winter 2016 encryption
 
Security necromancy - Further adventures in mainframe hacking - DEF CON 23
Security necromancy - Further adventures in mainframe hacking - DEF CON 23Security necromancy - Further adventures in mainframe hacking - DEF CON 23
Security necromancy - Further adventures in mainframe hacking - DEF CON 23
 
Web-enabling mainframe applications
Web-enabling mainframe applicationsWeb-enabling mainframe applications
Web-enabling mainframe applications
 
How To Master PACBASE For Mainframe In Only Seven Days
How To Master PACBASE For Mainframe In Only Seven DaysHow To Master PACBASE For Mainframe In Only Seven Days
How To Master PACBASE For Mainframe In Only Seven Days
 
2016 share the three headed beast v4
2016 share the three headed beast v42016 share the three headed beast v4
2016 share the three headed beast v4
 
The Walking Dead volume 3
The Walking Dead volume 3The Walking Dead volume 3
The Walking Dead volume 3
 
Mainframe Hacking - Derbycon 5.0
Mainframe Hacking - Derbycon 5.0Mainframe Hacking - Derbycon 5.0
Mainframe Hacking - Derbycon 5.0
 
Securing Cassandra The Right Way
Securing Cassandra The Right WaySecuring Cassandra The Right Way
Securing Cassandra The Right Way
 
Hardening cassandra for compliance or paranoia
Hardening cassandra for compliance or paranoiaHardening cassandra for compliance or paranoia
Hardening cassandra for compliance or paranoia
 
Seattle C* Meetup: Hardening cassandra for compliance or paranoia
Seattle C* Meetup: Hardening cassandra for compliance or paranoiaSeattle C* Meetup: Hardening cassandra for compliance or paranoia
Seattle C* Meetup: Hardening cassandra for compliance or paranoia
 
O caml2014 leroy-slides
O caml2014 leroy-slidesO caml2014 leroy-slides
O caml2014 leroy-slides
 
It's just a computer...
It's just a computer...It's just a computer...
It's just a computer...
 
AAPG POSTERS - Evolution of the Mardin Uplift
AAPG POSTERS - Evolution of the Mardin UpliftAAPG POSTERS - Evolution of the Mardin Uplift
AAPG POSTERS - Evolution of the Mardin Uplift
 
How to Start a Movement with Your Blog - with Gideon Shalwick
How to Start a Movement with Your Blog - with Gideon ShalwickHow to Start a Movement with Your Blog - with Gideon Shalwick
How to Start a Movement with Your Blog - with Gideon Shalwick
 
Sejarah perkembangan komputer
Sejarah perkembangan komputerSejarah perkembangan komputer
Sejarah perkembangan komputer
 

Similar to Mainframe

2 working with operating system
2 working with operating system2 working with operating system
2 working with operating systemMukesh Thakur
 
TSO Productivity
TSO ProductivityTSO Productivity
TSO ProductivityDan O'Dea
 
Trabajo en ingles[1]
Trabajo en ingles[1]Trabajo en ingles[1]
Trabajo en ingles[1]karenyarley
 
Chapter 10.1.1
Chapter 10.1.1Chapter 10.1.1
Chapter 10.1.1patcha535
 
ConSteel_14_User_Manual-351-359.pdf
ConSteel_14_User_Manual-351-359.pdfConSteel_14_User_Manual-351-359.pdf
ConSteel_14_User_Manual-351-359.pdfJuanUnafVargas
 
Introduction to ms word
Introduction to ms wordIntroduction to ms word
Introduction to ms wordigwennabuike
 
Chapter 1 part 3
Chapter 1 part 3Chapter 1 part 3
Chapter 1 part 3rohassanie
 
Visual Basic IDE Introduction
Visual Basic IDE IntroductionVisual Basic IDE Introduction
Visual Basic IDE IntroductionAhllen Javier
 
Visual Basic IDE Intro.pdf
Visual Basic IDE Intro.pdfVisual Basic IDE Intro.pdf
Visual Basic IDE Intro.pdfsheenmarie0212
 
INTRODUCTION CHAP. 1 complete access to all the hardware and can.docx
INTRODUCTION CHAP. 1 complete access to all the hardware and can.docxINTRODUCTION CHAP. 1 complete access to all the hardware and can.docx
INTRODUCTION CHAP. 1 complete access to all the hardware and can.docxvrickens
 
MS Office Professional 2010 Course.pdf
MS Office Professional 2010 Course.pdfMS Office Professional 2010 Course.pdf
MS Office Professional 2010 Course.pdfUdara Sandaruwan
 
ICT-CONTACTSJDHJBQFFVEGVCGSVCHCHDCHDCVCKACH
ICT-CONTACTSJDHJBQFFVEGVCGSVCHCHDCHDCVCKACHICT-CONTACTSJDHJBQFFVEGVCGSVCHCHDCHDCVCKACH
ICT-CONTACTSJDHJBQFFVEGVCGSVCHCHDCHDCVCKACHJamaicaCabrales
 
Kannada nudi software
Kannada nudi softwareKannada nudi software
Kannada nudi softwareeVidhya
 

Similar to Mainframe (20)

Working with Operating System
Working with Operating SystemWorking with Operating System
Working with Operating System
 
2 working with operating system
2 working with operating system2 working with operating system
2 working with operating system
 
TSO Productivity
TSO ProductivityTSO Productivity
TSO Productivity
 
language.pptx
language.pptxlanguage.pptx
language.pptx
 
Trabajo en ingles[1]
Trabajo en ingles[1]Trabajo en ingles[1]
Trabajo en ingles[1]
 
Visual basic
Visual basicVisual basic
Visual basic
 
Chapter 10.1.1
Chapter 10.1.1Chapter 10.1.1
Chapter 10.1.1
 
ConSteel_14_User_Manual-351-359.pdf
ConSteel_14_User_Manual-351-359.pdfConSteel_14_User_Manual-351-359.pdf
ConSteel_14_User_Manual-351-359.pdf
 
ch 3
ch 3ch 3
ch 3
 
Introduction to ms word
Introduction to ms wordIntroduction to ms word
Introduction to ms word
 
Fepc truss tut
Fepc truss tutFepc truss tut
Fepc truss tut
 
Chapter 1 part 3
Chapter 1 part 3Chapter 1 part 3
Chapter 1 part 3
 
Visual Basic IDE Introduction
Visual Basic IDE IntroductionVisual Basic IDE Introduction
Visual Basic IDE Introduction
 
Visual Basic IDE Intro.pdf
Visual Basic IDE Intro.pdfVisual Basic IDE Intro.pdf
Visual Basic IDE Intro.pdf
 
INTRODUCTION CHAP. 1 complete access to all the hardware and can.docx
INTRODUCTION CHAP. 1 complete access to all the hardware and can.docxINTRODUCTION CHAP. 1 complete access to all the hardware and can.docx
INTRODUCTION CHAP. 1 complete access to all the hardware and can.docx
 
MS Office Professional 2010 Course.pdf
MS Office Professional 2010 Course.pdfMS Office Professional 2010 Course.pdf
MS Office Professional 2010 Course.pdf
 
ICT-CONTACTSJDHJBQFFVEGVCGSVCHCHDCHDCVCKACH
ICT-CONTACTSJDHJBQFFVEGVCGSVCHCHDCHDCVCKACHICT-CONTACTSJDHJBQFFVEGVCGSVCHCHDCHDCVCKACH
ICT-CONTACTSJDHJBQFFVEGVCGSVCHCHDCHDCVCKACH
 
Computer programming
Computer programmingComputer programming
Computer programming
 
Kannada nudi software
Kannada nudi softwareKannada nudi software
Kannada nudi software
 
ID E's features
ID E's featuresID E's features
ID E's features
 

Recently uploaded

Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 

Recently uploaded (20)

Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 

Mainframe

  • 1. TSO TIME SHARING OPTION 1
  • 2. Module 1 The ISPF Primary Options Menu 2
  • 3. Notes: The Interactive System Productivity Facility (ISPF) is a robust development tool set for the z/OS operating system. It has been used since 1975 to increase the productivity of the development of host- based applications, because it provides an extensive set of programmer oriented facilities. A thorough foundation in the ISPF utilities is provided. This includes the library utilities, data set utilities, move/copy utility, data set list utility, and compare/search utilities. The final topic covers the processing of background jobs. It explains the phases of a background job. You will learn to submit a job for background processing, monitor the status of a job while it is waiting, executing, or waiting for its output to print, and how to retrieve the output for a job that is completed. Upon completion of this course, you should be able to: • Describe the purpose of ISPF and its relationship to TSO • Effectively navigate throughout ISPF and describe its menu structure in detail • Describe the nature of sequential and partitioned data sets, how they are named, created and allocated • View and browse data sets • Utilize the ISPF edit facility, import primary commands and line commands • Insert, delete, copy, move, repeat, exclude, redisplay, and shift lines • Change and maintain edit profiles • Search for and change data 3
  • 4. Utilize the main functions of the library utility, data set utility, move/copy utility, data set list utility, and compare/search utility • Mark data set members with various options using member selection lists • Allocate new data sets using an appropriate block size for the DASD device • Display data sets across the entire system or across an individual volume • Describe the phases involved in the life of a background job • Use the ISPF Batch Selection Panel to create multiple jobs steps for language processing • Use the OUTLIST Utility and SDSF to display job status and display/print job output The Time Sharing Option (TSO) is IBM's mainframe time-sharing operating system, which also has a long and rich heritage. ISPF can be seen as an extension to TSO. It is housed "under" TSO, and sometimes the acronym TSO/ISPF is used to describe the facility provided by these closely associated subsystems. The services provided by ISPF complement those of the host TSO system to provide interactive processing. 4
  • 5. Notes: ISPF facilitates the work of programmers, and end-users by providing labeled fill-in-the-blank screens, called panels. The screens are arranged in a simple menu structure. Applications produced through ISPF are called dialogs. ISPF provides services to the dialogs during their execution. A programmer can produce custom dialogs and applications using ISPF. Such dialogs run on a traditional IBM user terminal, like the 3270, or a terminal emulator running in a window on a PC. A dialog receives requests and data from a user, then responds by using ISPF services to obtain information from, or enter information into, the z/OS system. 5
  • 6. Notes: The Program Development Facility provides the application developer with services necessary to create and test applications. For example, you can generate tables and manage data sets, create test messages, trace and debug applications. The center of the PDF is the ISPF Primary Option Menu. The menu contains a list of options which may be customized, so the main menu on one z/OS system might not match the one on another system. The standard options for the PDF Main Menu are listed here. • Settings: Used to display and change ISPF parameters.You can change key definitions and display styles. • View: Allows you to view data sets. • Edit: Allows you to create or update data sets. • Utilities: Utility system and data set management functions, such as printing, renaming, or deleting data sets. • Foreground: Used to interactively run language processing programs such as COBOL. • Batch: Generates and submits batch jobs through job control statements. Command: Enter TSO commands while ISPF remains active. Dialog Test: Allows for testing of elements such as panels and messages. You can test elements before assembling them into an application. LM Utilities: Library management functions. IBM Products: Interface to other IBM products. SCLM: Access to the Software Component and Library Manager. 6
  • 7. Notes: You can navigate through ISPF in four different ways. The four different techniques are: • Action Bars • Point-and-Shoot • Selection by Option Code • Function Keys 7
  • 8. Notes: The action bar appears at the very top of the panel, and the choices presented vary from panel to panel. Each word on the action bar represents a category of options. If you place the cursor on one of the action bar words, and press the Enter key, you will see a list of the options for the category. Then in the list move the cursor over an option and press Enter to select it. 8
  • 9. Notes: Point-and-shoot means that you can move the cursor to one of the menu selections in the area illustrated here, then press the Enter key in order to make your selection. This feature is not available on every z/OS system. 9
  • 10. Notes: You can get to the command area quickly by pressing the Home key. No matter where the cursor may be, the home key will immediately place the cursor in the command area. A selection can be made in the traditional way by entering the selection code in the command area. Then press the Enter key to complete the selection. 10
  • 11. Notes: The function keys represent the final technique. The keys themselves are usually located across the top of the keyboard. The purpose or action represented by each key is shown at the bottom of the panel. To activate an option, just press the corresponding function key. Using PFSHOW command, you can display either the long or short form of the keys, or remove with PFSHOW OFF. ISPF responds to PF and PA keys on the 3270 keyboard. The table here shows the meaning of the keys to ISPF. Two of the most important keys are PF3 (duplicated by PF15) and PF4 (duplicated by PF16). PF3 is the End key and it terminates an ISPF function. For example, after building several job steps in the Batch Job section, you press PF3. The job is submitted and you are returned to the previous menu. The PF4 performs almost the exact same function. The only difference is that it returns you to the ISPF Primary Option Menu. 11
  • 12.  PA1 Attention: Interrupt the current position.  PA2 Reshow: Redisplay the current screen.  PF1/13 Help: Enter the tutorial, or view help.  PF2/14 Split: Enter split screen mode.  PF3/15 End: Terminate the current operation.  PA4/16 Return: Return to the primary option menu.  PA7/19 Up: Move the screen window up.  PF8/20 Down: Move the screen window down.  PF9/21 Swap: Activate the other logical screen in split screen mode.  PF10/22 Left: Move the screen window left.  PF11/23 Right: Move the screen window right.  PF12/24 Retrieve: Redisplay the last issued ISPF command. 12
  • 13. Notes: Use the KEYS command to change your function key definitions and labels. The KEYS command will display either the "PF Key Definitions and Labels" panel or the "Keylist Change" panel for the keylist of the panel from which the KEYS command was invoked. You can use the KEYS command from any display without ending the function that you currently are running (and without having to enter split screen mode). When you enter an END command from the KEYS panel, ISPF returns to the function that you were running when you entered the KEYS command. 13
  • 14. Notes: Many of the functions on the ISPF Primary Option Menu lead to additional menus. If you select option 3, for example, the next ISPF screen you receive is another menu, showing many more options. You can bypass the second menu by specifying both options at the primary menu. Just separate the options with a period. Option ===> 3.2 You can also jump from one option to another without having to "fall back" to the ISPF Primary Option Menu. For example, if you are editing a file (in option 2), you can jump directly to the utilities option. Type an equal sign, followed by the desired option number. Example: Command ===> = 3 14
  • 15. Notes: You are in the ISPF Primary Option Menu. Navigate from here to the (3) Utility Selection Panel. Type 3, then press Enter. You are in the Utility Selection Panel. Navigate to the Move/Copy Utility. Enter 3, then Press Enter. To navigate DIRECTLY to the (3.3) Move/Copy Utility. Enter 3.3, then press Enter 15
  • 16. Notes: In split-screen mode, the screen is split horizontally into two separate screens, and you may view two different ISPF panels at the same time. To enter split-screen mode, you place the cursor on the line where you want the split to occur. Then press PF2. Immediately the screen splits into two logical screens, and each logical screen is an independent session. To switch between screens press PF9. To end split screen mode, simply end one of the sessions by typing ‘exit’ on the command line or pressing F3 from the Primary Options Menu. 16
  • 17. Notes: You can use the START command to start a dialog in a new logical screen. This function is similar to the function nesting made available with action bars except that the nesting occurs in a new screen. 17
  • 18. Notes: Format: SWAP PREV|NEXT|screen_name|n Although you can alternately use any logical screen, only one of the logical screens is considered active at a time. The location of the cursor identifies the active screen. You make a screen active by using the SWAP command and its parameters to choose the desired screen. The parameters on the SWAP command-LIST, PREV, NEXT, screen_name, and n-control which screens you see displayed. SWAP command without parameters in 3270 mode: If only one screen exists, this command has no effect. If more than one screen exists, this command moves the cursor between the two logical screens that are displayed. If only two screens are present, the cursor moves to the one that it is not currently on. If more than two screens exist, this command defaults to the SWAP LIST command and causes the ISPF task list to display in a pop-up window. Entering SWAP PREV changes the focus to the next lower screen number from the one where the command is entered. Repeatedly issuing the same command causes each lower-numbered screen to display until screen number 1 is reached, then the counter wraps back to screen number 32 (or your installation's maximum number). 18
  • 19. Entering SWAP NEXT changes the focus to the next higher screen number from the one where the command is entered. Repeatedly issuing the same command causes each higher-numbered screen to display until screen number 32 (or your maximum) is reached, then the counter wraps back to screen number 1. Entering SWAP screen_name changes the focus to the screen named screen_name if it is active. Entering SWAP n changes the focus to the screen numbered n (ZSCREEN variable) if it is active. SWAP LIST command in 3270 mode: This command displays the ISPF Task List, from which you can select which screen to display. The screen you select replaces the screen on which you entered the command. 19
  • 21. Notes: For compatibility reasons, because records in an MVS system in the 1960s existed as 80-column punched cards, even today's JCL and program source code on a modern z/OS system is maintained as a file of 80- byte records. Every statement is a full 80 bytes long even if it is completely blank. In the z/OS environment, files are known as data sets. z/OS lets you maintain two types of data sets under TSO: sequential and partitioned. In a sequential data set, the records of a file can be retrieved only in the same order they were written. To process a record somewhere within the file, you have to read all of the preceding records. Since there is no provision for subdirectories, file naming and the use of partitioned data sets support all the processing that occurs on a mainframe under z/OS. A partitioned data set (PDS) consists of a directory and one or more members. A PDS is also called a library. Each member is functionally the same as a sequential data set, and you can process an individual member of a partitioned data set as if it were a sequential data set. On the other hand, you can process the entire library, the entire PDS, as a single file. The minimum allocation for a data set is one track of disk space, and this can usually amount to a significant amount of space. For a small file that contains only a small amount of information, much space can be wasted if it is stored in a data set all by itself. Instead it can be stored as one of many members in a partitioned data set. This is how most source code and JCL is stored under z/OS. Each partitioned data set contains a directory and data area. The directory maintains housekeeping information about the members stored in the data area. It stores an index of member names and their locations. 21
  • 22. Notes: Standard TSO data set naming calls for three qualifiers within the name of the data set. The naming is illustrated on the slide. Qualifiers can be up to eight characters long and when you specify a data set name, you separate the qualifiers by periods. The data set name consists of three qualifiers listed below. • High-level Qualifier • User Determined Qualifier • Type of Data 22
  • 23. Notes: Partitioned data sets appear to the z/OS operating system to be no different than any other type of data set, and just by seeing the name it is not possible to tell absolutely if the data set is partitioned or not. The operating system has the information internally about its organization, but this is not necessarily reflected in the name. In order to deal with a specific member of a partitioned data set, the member name is placed at the end of the data set name inside parentheses. The data set name shown at the right is a partitioned data set. The member name, which is the name in parentheses, can be up to eight characters long, and must start with a letter. 23
  • 24. The View Entry Panel appears when you select View (option 1) from the ISPF Primary Option Menu. An image of the View Entry Panel is shown on the right. This panel facilitates viewing and browsing of a data set, but does not provide the ability to edit or change data. Two areas of particular interest here are the fields in the panel and the action bar at the top of the panel. Action Bar The action bar of the View Action Panel displays some important choices. The Menu selection provides a drop down list with a subset of the items on the ISPF Primary Option Menu. The RefList selection facilitates the use of Personal Data Set Lists and Library Lists, a feature that you can use to speed up access to frequently used data sets. The RefMode drop-down menu controls the action taken when you select a data set from a personal list. The Utilities selection provides quick access to all the functionality available in the Utilities (option 3) section of the ISPF Primary Action Panel. The ISPF Library section permits you to enter a data set name. The project ID identifies the project associated with the data set. It usually defaults to the user ID from your LOGON command. The three components of the data set name, Project, Group, and Type, are strung together to form the z/OS data set name. The Workstation selection enables you to more fully utilize your desktop workstation's potential by giving you the ability to edit host data on the workstation, and workstation data on the host. ISPF calls this function distributed editing. After selecting the data set desired, either the one specified in the ISPF Library Section or the Other Partitioned... section, the view command is executed by pressing Enter. 24
  • 25. Notes: If the data set is partitioned, you can specify the name of the member in the Member field. You may also enter a pattern for the member name. A pattern consists of a partial member name plus the symbols * or % or both. For example, the member name PAY* will select all members that begin with the three letters P-A-Y. The next panel you receive will present you with that list for further selection. In the example on the right, browse searches MFM3984.PAYROLL.COBOL first to locate the member PAY2A. If not found, it searches MFM3984.TESTPAY.COBOL to find PAY2A. If the data set you specify is partitioned, and you specify a pattern of the member name, or if you do not specify a member name at all, you will receive a member list. 25
  • 26. Notes: Use PF7 and PF8 to scroll. 26
  • 27. Notes: After you have selected the member you want to display, the browse panel displays the first 22 lines of the data. An example is shown here on the right. This is a listing of a COBOL program. The heading line displays the data set name, current line position, and current columns displayed. In this screen, only browsing is allowed. You are not permitted to edit the member. 27
  • 28. Notes: Scrolling functions let you specify both the direction and amount you move as you peruse the data. PF7 and PF8 move the window up and down respectively. PF10 and PF11 move it left and right. You may specify the amount of the scroll by entering a value in the SCROLL field at the lower right hand side. The default value is HALF. This means that when you press any of the function keys mentioned above, the window moves a half page in the direction desired. Possible values are shown below. 28
  • 29. Notes: 29
  • 30. Notes: Using LOCATE command, you can locate the member in the directory 30
  • 31. Notes: You can position the display to a certain line number by using the LOCATE command, followed by the line number. Remember that this line number refers to the line number as it appears on the left-hand side of the window. You can also assign a label to a line number in the member by positioning the cursor on a specific line, then typing a period, followed by the label in the line command area. Then in the future you can use the label to go there immediately, using the LOCATE command. Example: Command ===> LOCATE .TOPDIV 31
  • 32. Notes: You can use the FIND command to search for a specific string of characters. You type FIND at the command line followed by the string. If the search string contains blanks or characters, enclose it in either single or double quotes. An example is FIND "PROCEDURE DIVISION" This command will find the next line that contains the target string. You can also add one of the following qualifiers after the search string. • NEXT • PREV • FIRST • LAST • ALL 32
  • 33. 33
  • 34. 34
  • 36. Notes: In this unit you will learn about the ISPF editor facility. This includes all the functions available under selection 2 on the ISPF Primary Option Menu. The ISPF editor facilitates the editing and making of changes to a data set or member of a data set. You may edit a sequential data set or enter only the name of a partitioned data set and receive a member selection list. Important commands include I to insert lines, D to delete lines, R to repeat lines, C to copy lines, and M to move lines. You will learn to customize your editor environment by creating different edit profiles. There are also editing modes that will help you fine tune the way you want the editor to work. For advanced editing, you will learn how to change text throughout the source data. You may use a search range and affect the condition under which the search finds a match. You may exclude text and redisplay it. 36
  • 37. Notes: The Edit Entry Panel appears when you select View (option 2) from the ISPF Primary Option Menu. An image of the Edit Entry Panel is shown on the right. This panel facilitates the editing and making of changes to a data set or member of a data set. This panel looks almost identical to the View Entry Panel and operates in virtually the exact same way. The ISPF Library section permits you to enter a default data set name. This data set name will always be displayed upon entry into this panel. Under Other Partitioned or Sequential Data Set, you may specify a data set name that is different than the default. 37
  • 38. Notes: For a partitioned data set, the member list appears, as it does with the View Panel, except the upper left corner says EDIT followed by the name of the data set. Each member of the data set is listed along with its statistics such as the created and changed dates. You can select a certain member by positioning the cursor on the dot next to the member name, or by typing S in the left column of the line that has the name of the member. If the list exceeds the room available on a single screen, it may be scrolled using F7 and F8. 38
  • 39. Notes: The ISPF Edit Panel is shown on the right. It shows a sample data set member, and a COBOL program, called PGM1G1 The first six columns of the lines containing COBOL source code represent the line command area. If specified in the profile setting, the editor displays the line number in this area. The remaining portion of the lines represents the screen window. You can use the same scrolling functions used in the View Panel. PF11 moves the window right and PF10 moves it to the left. PF7 moves the window up, and PF8 moves it down. Scrolling amount is subject to the scroll function that appears at the lower right part of the panel. In the ISPF editor, there are • primary commands • line commands The Primary commands are entered in the Command Input Area. They apply to the entire source member. Line commands are entered over the numbers in the line command area and they affect individual lines Primary commands are typed at the command prompt. 39
  • 40. Notes: Lines can be inserted by the I command, which is typed in the line command area at the spot where the lines are to be inserted. The I command creates blank lines which can subsequently be entered. It shifts existing lines which follows further down in the file. The inserted lines contain apostrophes in the line number area until you type the source data. When you press the Enter key, the editor deletes any inserted lines that do not contain data. There are two forms of this command I Inserts a single line following this line In Inserts n lines following this line 40
  • 41. Notes: The command In inserts n lines following this line 41
  • 42. Notes: Lines can be deleted using the D command, typed into the line command area at the line when deletion is to begin. There are three forms of this command • D Deletes this line • Dn Deletes n lines starting with this line • DD Delete the block of lines beginning with the first DD • command and ending with the second DD command. 42
  • 43. Notes: Dn Deletes n lines starting with this line 43
  • 44. Notes: 44
  • 45. Notes: The R command lets you repeat a single line or a group of lines one or more times. The repeated line falls in immediately after the original line. The R command has several forms • R Repeat this line • Rn Repeat this line n times • RR Repeat a block of lines When you use the RR command, the first RR marks the start of the block. The second RR command indicates the end of the block, and, if you so choose, the number of times to repeat the block. 45
  • 46. Notes: 46
  • 47. Notes: 47
  • 48. Notes: Copying lines is similar to repeating them, except that you are able to specify a destination. The C command has several forms • C Copies one line • Cn Copies n lines • CC Marks a block of lines for copying Then you move elsewhere in the member and type either an A or a B. If you type an A, the source lines are copied after the destination line. If you type a B, they are placed before the destination line. 48
  • 49. Notes: 49
  • 50. Notes: CC Marks a block of lines for copying Then you move elsewhere in the member and type either an A or a B. If you type an A, the source lines are copied after the destination line. If you type a B, they are placed before the destination line. 50
  • 51. Notes: Moving lines is similar to copying them except that the source lines are deleted from their original location after they are moved. The M command has several forms • M Moves a single line • Mn Moves n lines • MM Marks a block of lines to move Then you move elsewhere in the member and type either an A or B. If you type an A, the source lines are copied after the destination line. If you type a B, they are placed before the destination line. 51
  • 52. Notes: 52
  • 53. Notes: MM Marks a block of lines to move Then you move elsewhere in the member and type either an A or B. If you type an A, the source lines are copied after the destination line. If you type a B, they are placed before the destination line. 53
  • 54. Notes: The library, that is the Project, Group, and Type you specify, must already exist. ISPF creates an empty workspace in virtual storage for the new member. Once in the ISPF Edit Panel, you can use the INSERT number of lines as you see necessary and enter your source data. ISPF writes the new member onto disk when you exit the edit session. 54
  • 55. Notes: The COPY command is used to copy one or more lines of data from a sequential data set, member of a partitioned data set (PDS), into the member, data set currently being edited or viewed. Use the A (after) or B (before) line commands or the AFTER or BEFORE keyword along with a label, to specify where the data is to be copied. If a member name is specified as part of the command, and "after" or "before" is properly specified, the entire member or a range of lines in the member will be copied in immediately. Command ===> copy memnam copy in the member "memnam". or Command ===> copy (memnam) 2 10 copy in lines 2-10 of "memnam". A partially qualified or fully qualified data set name may be specified as part of the command. This can be a sequential data set or another partitioned data set. Command ===> copy seqds Copies a sequential data set. or Command ===> copy 'userid.seqds' Copies a sequential data set. Command ===> copy pds(a) copies member a. or Command ===> copy pds 6 10 member list is displayed and lines 6-10 are copied from the selected member. or Command ===> copy 'userid.seqds' Copies a sequential data set. Command ===> copy pds(a) copies member a. or Command ===> copy pds 6 10 member list is displayed and lines 6-10 are copied from the selected member. 55
  • 56. To use "extended copy", enter the COPY command without a member name, data set name, or file pathname. Having specified the destination line, a panel will be displayed allowing you to enter the name of a sequential data set, PDS (and member). Command ===> copy after .here requests extended-copy panel. You have the option of copying an entire data set, member, or file, or of selecting one or more lines to be copied. 56
  • 57. Notes: CREATE Command The CREATE command (may be abbreviated CRE ) is used to create a new member of a partitioned data set (PDS), a new sequential data set, using one or more lines of the data being edited or viewed. In a PDS, the new member will be created in the lowest level library of the current concatenation only if it does not exist in that library. If it exists in a higher level library, a warning message is displayed and the member is created. (Use the REPLACE command to replace an existing member.) To specify the lines to be put into the new member, use: . line commands C or CC or else a range operand to copy line(s). . line commands M or MM to move line(s). (copy, then delete) If you specify the member name as part of the command, and the move or copy line commands (or range operand) are entered, the new member will be created immediately from the data that you are editing or viewing. The member name may be entered with or without parentheses. Command ===> create memnam creates the new member "memnam". Command ===> create (memnam) creates the new member "memnam". A partially qualified or fully qualified data set name may be specified as part of the command. Command ===> create pds(a) creates member a. Command ===> create 'userid.pds(a) creates member a Command ===> create 'userid.seq creates sequential data set 57
  • 58. To use "extended create", enter the CREATE command without a member name or data set name. If the range operand is specified, or the move or copy line commands are entered, a panel will be displayed allowing you to enter either the name of a PDS and member, the name of a sequential data set. Command ===> cre .strt .end requests extended-create panel. or Command ===> cre .zfirst .zlast requests extended-create panel. REPLACE Command The REPLACE command (may be abbreviated REPL ) is used to replace amember of a partitioned data set (PDS), an entire sequential data set using one or more lines of the data being edited or viewed. In a PDS, a new member will be created or an existing member will be replaced in the lowest level library of the concatenation. To specify the lines to be put into the member being replaced, use: . line commands C or CC or else a range operand to copy line(s). . line commands M or MM to move line(s). (copy, then delete) If the member name is specified as part of the command, and the move or copy lines commands (or range operand) are entered, the named member of the PDS will be replaced immediately. Member name may be entered with or without parentheses. To ensure that a member is replaced instead of a sequential data set by the same name, use parentheses. Command ===> replace memnam replaces the member "memnam". Command ===> replace (memnam) replaces the member "memnam". A partially qualified or fully qualified data set name may be specified s part of the command. This can be a sequential data set or another partitioned data set. Command ===> replace seqds replaces a sequential data set. or Command ===> replace 'userid.seqds' replaces a sequential data set. Command ===> replace seqds replaces a sequential data set. or Command ===> replace 'userid.seqds' replaces a sequential data set. Command ===> replace pds(a) replaces member a. Command ===> replace 'userid.pds(a)' replaces member a. To use extended replace , enter the REPLACE command without a member name, data set name, or file pathname. If a range operand is specified, or once the move or copy line commands have been entered, a panel will be displayed. You can enter the name of any sequential data set or PDS (and member). Command ===> repl .strt .end requests extended-replace panel. or Command ===> repl .zfirst .zlast requests extended-replace panel. 58
  • 59. Notes: Confirm Cancel/Move/Replace Specifies that you want ISPF to display a confirmation panel whenever you issue a Cancel, Move, or Replace command. 59
  • 60. Notes: When you have completed all editing in the ISPF Edit Panel, press the End key, PF3. When you do this ISPF saves your changed member to the primary library. You are returned to the Edit Entry Panel. If you press PF3 again, ISPF returns to the ISPF Primary Option Panel. In the Edit Entry Panel, you can skip some steps and return directly to the ISPF Primary Option Panel by pressing PF4. ISPF saves the changed member in the process. Still another alternative is to enter SAVE at the Command line to cause the member to be saved. Entering CANCEL causes the changes to be discarded, and you are returned to the Edit Entry Panel. 60
  • 61. Notes: The edit profile controls many of the operations involved in editing such as column boundaries, tab settings, the generation of line numbers, editing using all capitals, and other items. For each user, ISPF maintains a number of separate profiles. There are default profiles for each data set type. For example, there is a default for COBOL files. You can also make up additionalprofiles for any data set type. The profile in effect for an edit session can be entered in the Profile Name field in the Edit Entry Panel. 61
  • 62. Notes: Inside the Editor Panel, you can display the edit profile that is in effect by typing PROFILE at the command line. The top several lines of the display becomes shaded and the text like =PROF>, =TABS> or =COLS> appears in the line number command area for the lines displaying the profile. The several lines at the top will show the setting of various edit modes. For example, the profile name is COBOL. The settings for RECOVERY, NUMBER, HEX, NULLS, TABS, AUTONUM, AUTOLIST, and PACK are all set to OFF. CAPS, AUTOSAVE, STATS, and NOTE are set to ON. Other settings like PROFILE and IMACRO have different values. The next panel shows an example of the result of entering the profile command. Editing exists profile If an edit profile exists which you would like to activate, you can do that by placing its name in the PROFILE command. Example: PROFILE COB2. The profile named COB2 is retrieved. If this profile does not exist, a new one is created using the current profile settings. This represents the manner in which you can create new profiles. You can change the profiles settings as you wish, then issue a PROFILE command specifying the new profile name. Changes you make to the PROFILE are saved when you exit the edit session. To avoid changes to the profile being saved at the end of the session you may use the PROFILE LOCK command. 62
  • 63. Notes: The column boundaries Column boundaries control the width of the area in which source data can be placed, and the range of columns for editing data. The area within the boundaries represent the columns to which editing commands apply. The COBOL default is 7 for the left boundary and 72 for the right boundary. For other types, such as an assembler source file (ASM), the standard left margin is 1 and the right margin is 71. The =BNDS> line illustrates the current settings. 63
  • 64. Notes: You can change the BOUNDS setting in the profile using the BOUNDS primary command. At the command prompt, you can type a command like BOUNDS 7 80. This will cause a new, left boundary and a new right boundary to be set to 7 and 80, respectively. This form of the command is the BOUNDS primary command. To set only the left boundary, issue the same command, but use an asterisk for the right boundary. To set only the right boundary, use the asterisk in place of the left boundary. A BOUNDS command without specifying anything resets the defaults. 64
  • 65. Notes: Another alternative is to use the BOUNDS command as a line command. Enter BOUNDS in the line command area. The editor responds by displaying a =BNDS> line at the place where you entered the command. You may move the terminal cursor to the spot on the line where you want to set up new boundaries. Type a less-than sign to mark the new left boundary, and type a greater-than sign to mark a new right boundary. 65
  • 66. Notes: Tab stops are especially important for editing members containing source files like COBOL or Assembler, because certain constructs must begin in specific columns. There are two types of tab stops supported by the ISPF editor, hardware and logical. You move among hardware tab stops by pressing the Tab key on the 3270 terminal or terminal-emulator. With logical tab stops you enter a special tab character like a @ or #. The editor will take the subsequent text and align it to the closest tab stop inserting spaces as necessary to position it. You may very effectively mix tab stops. For example, in the DATA DIVISION of a COBOL program, you will want to control very specifically the columns where level numbers, PIC, and VALUE clauses fall. Hardware tabbing works well. In the PROCEDURE DIVISION, where indentation is more important than specific column positions, logical tabbing is more suitable and useful. 66
  • 67. Notes: Hardware tab stops are activated by typing the TABS command in the line command area. Upon pressing Enter, the editor gives you a =TABS> line. On this line you enter an asterisk (*) immediately to the left of the desired position for the tab stop. The asterisk defines the position for an attribute byte. This is a special character recognizable by the 3270 hardware as a tab position. The attribute byte actually takes up a position and displays as blank. However, you will not be able to type any source data into this position. Source data will fall in starting at the position immediately to the right of the asterisk. You could enter a TABS OFF command to deactivate all tabs, or you can do one of the following: - Position the cursor on the attribute byte and press ENTER. - Blank out the sequence number for the line and press ENTER. Either of the above will temporarily eliminate tabs on a single line. TABS ON, typed at the command line, will activate hardware tab stops and TABS OFF turns them off. 67
  • 68. Notes: To activate logical tabbing, type the TAB command at the command line, followed by the character to be used to mark the tab position. From then on, that character can be typed in any source line to generate the logical tabbing effect. TAB with no character turns off logical tabbing. 68
  • 69. Notes: Using an edit mask, you can predefine a lines initial contents to be used each time you insert a line using the I command. Start by entering the MASK command in the line command area. A line beginning with =MASK> is inserted, and you enter your edit mask. Subsequently, until you change the mask line, each line created using the I command will start with the contents of the mask line. To remove the current mask line, use the D line command to delete it. The default mask line is blank. Alternatively, you can achieve the effect of a mask line by inserting one blank line, enter your data, and then repeat it using an R command. 69
  • 70. Notes: CAPS mode forces all characters typed to automatically appear in uppercase. With this mode turned off, no automatic conversion is applied. When turned on, this is quite useful for COBOL programs and other types of program source code, which is generally all entered in uppercase characters. There are also two associated commands typed in the line command mode. LC typed at a line converts all characters on the line to lowercase, and UC converts all characters on the line to uppercase. You can convert a number of contiguous lines by following the LC or UC command by the number of lines you want to convert. 70
  • 71. Notes: With STATS mode turned on, statistics are maintained for each member in a library. These are the statistics displayed in the member selection lists. The items it shows are listed below. • VV.MM - The version and modification level number • CREATED -The date the member was initially created • CHANGED - The date and time that the member was last edited • SIZE - The current number of lines in the member • INIT - The number of lines initially in this version of the member • MOD - The number of lines that have been modified since this version of the member was created • ID - The user-id of the person who most recently edited the member 71
  • 72. Notes: The ISPF editor is capable of maintaining a record of all changes you make during an edit session if you turn on RECOVERY Mode. The changes are maintained in the special file called the recovery data set. If during an edit session, the system crashes, the recovery data set is left opened. When you edit the member again, the editor will sense this and give you an opportunity to apply the changes again. RECOVERY mode also provides an undo capability. Since, changes are being logged, you may enter the UNDO command at anytime to back out the last change made. You may enter successive UNDO commands until all changes made during the current edit session have been backed out. 72
  • 73. Notes: With HEX Mode on, all characters are displayed in hexadecimal format. Each actual character is replaced by its two-byte hexadecimal equivalent. You can change any character by changing its two-byte code. The two-byte code is equivalent to PACKED-DECIMAL in COBOL. Therefore this mode can be used to create or modify such data. 73
  • 74. Notes: The ISPF editor also offers a CHANGE command. However, the change commands takes two strings. The first string is a target string, and the second is a replacement string. For example, you can type at the command prompt CHANGE FORMAT PRINT If the target or replacement string contains spaces or special characters they need to be placed in quotes. The first occurrence of the target string FORMAT is changed to PRINT. If you wish to replace all occurrences throughout the source member, add the keyword ALL the end of the command. Lines changed are marked with ==CHG> in the line command area. On every CHANGE command, you must specify a "from" string and a "to“ string. In most cases you simply enter CHANGE or its abbreviations CHG or C, followed by the two character strings. Example - ===> change demo test If you want to use the same string that was used in the previous CHANGE command, use an * (asterisk). Example - ===> chg * * 40 60 (change demo to test in cols 40 to 60) In some cases, you want to change a string of characters that cannot be entered in the simple format shown above. For these cases, special strings can be entered. For example, to change the expression "a = b" to "c = d" you must use delimited strings as the expressions contain blanks. Example - ===> c 'a = b' 'c = d' 74
  • 75. Notes: You may limit the range affected by a CHANGE command by specifying a search range. The search range is communicated by following the replacement string with two labels that have been assigned to the first line and last line of the range respectively. Labels are assigned by positioning the cursor at a line, and typing the label, preceded by a period (.) . In the CHANGE command, you need to include the period as part of the label. The following CHANGE command changes all occurrences of the string FORMAT to PRINT, within the lines labeled .TOPLN and .BOTLN. 75
  • 76. Notes: NEXT NEXT can be entered as an optional parameter with the CHANGE command. (It is never required, however, since next is the default). Command ===> change xx yy next changes the next "xx" to "yy". A search for the next occurrence of the string "xx" will be made, starting at the beginning of the first line being displayed (if the cursor is still on line 2), or at the cursor location (if the cursor is within the data part of the display). If the string is changed, the cursor will be placed at the end of the "yy" string. If the RCHANGE PF key is then pressed, scanning will continue, changing the next occurrence, and then the next, etc., until the bottom of data is reached. If the string is not found by the bottom of the data, a BOTTOM OF DATA message will be displayed. To continue scanning, wrapping around from the bottom of the data to the top, use RCHANGE or RFIND. 76
  • 77. PREV PREV can be entered as an optional parameter with the CHANGE command. Command ===> c xx yy prev changes the previous "xx" to "yy". A search for the previous occurrence of the string "xx" will be made, starting at the end of the line preceding the first line being displayed (if the cursor is still on line 2), or at the cursor location (if the cursor is within the data portion of the display). If the string is changed, the cursor will be placed at the end of the string. If the RCHANGE PF key is then pressed, scanning backwards will continue until the string is changed again, or the top of the data is reached. If the string is not found by the top of the data, a TOP OF DATA message will be displayed. To continue backwards scanning, wrapping around from the top of the data to the bottom, use RCHANGE or RFIND. FIRST FIRST can be entered as an optional parameter with the CHANGE command. Command ===> chg xx yy first changes the first "xx" to "yy". A search for the first occurrence of the string "xx" will be made, starting at the beginning of the first line of the data and continuing until the string is found, or the bottom of data is reached. If the string is changed, the cursor will be placed at the end of the changing the second occurrence, then the third occurrence, etc., until the bottom of data is reached. If the string is not found by the bottom of the data, a message will be displayed, indicating that the characters cannot be found. LAST LAST can be entered as an optional parameter with the CHANGE command. Command ===> chg xx yy last changes the last "xx" to "yy". A search for the last occurrence of the string "xx" will be made, starting at the end of the last line of the data and continuing backward until the string is found, or the top of data is reached. If the string is changed, the cursor will be placed at the end of the string. If the RCHANGE PF key is then pressed, backwards scanning will continue, changing the next to the last occurrence, the third from the last occurrence, etc., until the top of data is reached. If the string is not found by the top of the data, a message will be displayed, indicating that the characters cannot be found. ALL ALL can be entered as an optional parameter with the CHANGE command. Command ===> c xx yy all changes all "xx" to yy". A search for all the occurrences of the string "xx" will be made, starting at the beginning of the first line of the data and continuing to the bottom of data. If the string is found one or more times, all occurrences will be changed, and the cursor will be placed at the end of the first changed characters. A message will be displayed indicating the number of times that the string was changed. Each line will be flagged with =CHG=>. If it is impossible to change one or more occurrences of the "from" string, a message will be displayed indicating the number of times that the error occurred. Each line will also be flagged with =ERR=>. If the string is not found by the bottom of the data, a message will be displayed, indicating that the characters cannot be found. 77
  • 78. Notes: CHARS CHARS can be entered as an optional parameter with the CHANGE command. (It is never required, however, since CHARS is the default). Command ===> chg xx yy chars changes the chars "xx" to "yy" Any occurrence of the character string "xx" that is within the specified (or default) bounds will be considered a match. In the list below, all occurrences of the character string "do" would be changed. CHARS DO - DO DONT ADO ADOPT 'DO' ¢ADO (DONT) ADO- PREFIX PREFIX (or the abbreviation PRE ) can be entered as an optional parameter with the CHANGE command. Command ===> chg xx yy prefix changes the prefix "xx" to "yy". Only those occurrences of the character string "xx" that are a prefix to a word or label and that are within the specified (or default) bounds will be considered a match. A prefix is defined as being preceded by a non-alphameric character and followed by an alphameric character. 78
  • 79. The prefix parameter could be used for example to change all labels or words beginning with "er", without changing words ending in "er". In the list below, only DONT and (DONT) strings would be changed: PREFIX DO - DO DONT ADO ADOPT 'DO' ¢ADO (DONT) ADO- SUFFIX SUFFIX (or the abbreviation SUF ) can be entered as an optional parameter with the CHANGE command. Command ===> chg xx yy suffix changes the suffix "xx" to "yy". Only those occurrences of the character string "xx" that are a suffix to a word or label and that are within the specified (or default) bounds will be considered a match. A suffix is defined as being preceded by an alphameric character and followed by a non-alphameric character. The suffix parameter could be used for example to change all labels or words ending with "g" without changing all occurrences of the character "g". In the list below, only ADO, ¢ADO and ADO- strings would be changed: SUFFIX DO - DO DONT ADO ADOPT 'DO' ¢ADO (DONT) ADO- WORD WORD can be entered as an optional parameter with the CHANGE command. Command ===> chg xx yy word changes the word "xx" to "yy". Only those occurrences of the character string "xx" that are a word (or a label) and that are within the specified (or default) bounds will be considered a match. A word is defined as being preceded and followed by a non-alphameric character. The "word" parameter could be used for example to change all words "do", without changing all occurrences of the character string "do". In the list below, only DO and 'DO' strings would be changed: WORD DO - DO DONT ADO ADOPT 'DO' ¢ADO (DONT) ADO- 79
  • 80. Notes: You may exclude lines before executing your change command using the EXCLUDE command. You can type the following command EXCLUDE FILLER ALL This command has the effect of excluding all lines within the source that contains the string FILLER. Such lines will not be displayed. In the subsequent FIND or CHANGE command you should add either the X or NX option. If you add X, only the excluded lines are searched. If you add NX, only the lines which are not excluded are searched. A block of excluded lines is replaced by a single line indicating that the block of lines is hidden. 80
  • 81. Notes: You may also exclude lines by using the XX command in the line command area. There are three forms of the exclude command: X Excludes this line Xn Excludes n lines starting with this line XX Excludes the block of lines beginning with the first XX command 81
  • 82. Notes: 82
  • 83. Notes: 83
  • 84. Notes: A single F typed in the spot where lines were excluded shows or redisplays the first line. A command like F8 redisplays the first 8 lines. Likewise a single L displays the last line excluded, and L7 redisplays the last 7 lines. An S command redisplays lines based on indentation level. If you type S9, lines within the first 9 excluded lines are redisplayed as long are they are not among the ones most indented. This can be useful for lining up IF and ELSE clauses in large blocks of indented code. The RESET displays all excluded lines. This is typed at the command prompt, not in the line command area. 84
  • 85. Notes: Examples: Command ===> delete all x deletes all excluded lines from the data Command ===> delete all nx .a .b deletes all non-excluded lines from the inclusive range defined by the labels, ".a" and ".b". Command ===> delete all .a .b deletes all lines from the inclusive range defined by the labels, ".a" and ".b". Command ===> delete x .a .b deletes all excluded lines from the inclusive range defined by the labels, ".a" and ".b". The parameters may be entered in any order. The "range" is optional and ALL is optional when X or NX is specified. 85
  • 86. Notes: The ISPF editor provides some line level commands to help shift or change the indentation of groups of lines. All these are typed in the line command area. A single ( shifts the line left 1 position. A (7 shifts the line left 7 positions. A ) shifts the line right 1 position, and a )8 shifts it right 8 positions. You can shift a whole block of text left by marking the first line with (( and the last line with ((. Mark the first line with ((7 and the last line with ((, and the whole block will be shifted left 7 positions. You may shift right using )) and )), or ))8 and )) to shift a whole block right 8 positions. These commands are equivalent to using the Insert and Delete keys on the 3270 terminal. Depending on the quantity and type of lines requiring shifting, it may be easier to use the keys on the keyboard. 86
  • 88. Notes: This unit covers the some of the functions in selection 3 of the ISPF Primary Action Menu. This represents the ISPF utilities. With the ISPF utilities, you can display and print library and data set member lists. You can also reset statistics for ISPF library members, and define commands to be used with specific dialogs. 88
  • 89. Notes: The ISPF Utilities are accessed through option 3 of the ISPF Primary Options Menu. When you select option 3, you see the Utility Selection Panel, shown on the slide. There are typically 15 different utility options; all 15 are listed shown on the slide. Some of the things you can do with the utilities: • Display and print library and data set member lists • Reset statistics for ISPF library members • Define commands to be used with specific dialogs • Compare data sets and search for strings of data • Move, copy, lock, promote, and print library and data set members 89
  • 90. Notes: If you select option 1 on the Utility Selection Panel, you see the Library Utility Panel shown here. This set of utilities targets a specific data set and then allows you to operate on its members. This is in contrast to the DSLIST Utility, option 4 on the (3) Utility Selection Panel. The DSLIST allows you to perform many similar functions, but targets lists of data sets, and allows you to operate on individual data sets within the lists. Among the most important functions are browse member, print member, rename member, and delete member. Options You start by entering the name of a partitioned data set in the ISPF Library section. You can specify the name of a member, in which case you can immediately select B, D, E, P, R, and V at the command prompt. If you do not supply a member name and leave the command prompt blank, you see a member selection list panel when you press Enter. Furthermore, you can enter the name of an existing member and a new name for the new member. Then, if you select the R option, the member will be renamed with the new name you have chosen. 90
  • 91. The options that you can use in the Library Utility applied to a member of a partitioned data set are: C Compress data set V View member X Print index listing B Browse member L Print entire data set D Delete member I Data set information R Rename member S Short data set information P Print member These options operate either on an entire library, or on a specific member. Options that operate on an entire library: C Compress data set X Print index listing L Print entire data set I Data set information S Short data set information Options that operate on a specific Member: V View member B Browse member D Delete member R Rename member P Print member 91
  • 92. Notes: After the selections are made, press enterIf a member name is left blank, the member selection list panel appears just like other member lists you have seen, and is very powerful in this context. You may move through the member list, and enter one of the utility codes to the left of one member or multiple members. For example, you can place a B next to PAY2A to browse it, a D next to PAY34 to delete it, and a P next to PAY31 to print it. Feel free to place the appropriate codes next to desired members, even scroll forward and backward through the member list if it is large. When you have made your selections, press Enter. 92
  • 93. Notes: Option 2 of the (3) Utility Selection Panel is named the data set utility because options on it deal with data set libraries rather than on PDS members. These options include the allocation of a new data set, renaming an entire data set, deleting an entire data set, cataloging and uncataloging of data sets, and display of space usage information. Again, many of the functions in this section can be performed by the Dslist utility. This will be explained in more detail in the next topic. CATALOG/UNCATALOG z/OS maintains a structure of catalogs to store the names and information of files. A file need not be part of the catalog, but commonly used files should be cataloged. Cataloging a data set means that OS/390 keeps track of what disk media it occupies. To access a file that is not cataloged, you must supply the data set name and the volume/serial for the volume in which it resides. Most files you will use and manipulate under ISPF will be cataloged. Under ISPF, data sets are cataloged automatically when they are allocated. However, occasionally jobs fail and there are loose ends which must be patched up. A failed job may leave a data set uncataloged. Occasionally, there will be non-ISPF data sets that must be accessed. For these reasons the Data Set Utility provides a catalog data set function (C) and an uncatalog data set (U) function. When you catalog a data set, the volume/serial of the volume must be specified. The system examines the volume table of contents (VTOC) and obtains the characteristics of the data set. 93
  • 94. Notes: After entering the name of the data set, you can leave the Option Prompt blank, and press Enter. This will cause the Data Set Information panel to appear. It contains detailed information about the allocation, format, and utilization of the data set. 94
  • 95. Notes: Before you can use a data set, it must be allocated. Option A on the Data Set Utility Panel is for allocating data sets. You enter the name of the data set and select option A. If the data set does not exist, ISPF displays the allocate panel. If you want to place the new data set on a specific volume, you must enter the volume's serial number in that field. If you leave it blank, OS/390 will select a default volume, unless you specify a generic unit. In the generic unit field, you can specify the type of DASD you want to use, such as 3380. Under normal circumstances, you do not specify the volume serial numberor generic unit. Space for a new data The space requirement for a new data set is specified through three parameters – space units, primary quantity, and secondary quantity. The space units field determines the unit of measurement for allocation. You may allocate in terms of blocks (BLKS), tracks (TRKS), or cylinders (CYLS). The primary quantity field should contain the amount of space the data set will require. 95
  • 96. In the secondary quantity field, you should place a secondary allocation, which is necessary to expand the data set. If required, it will be added to the primary quantity. Up to 15 allocations will be made. After that the only way to expand the data set is copy or move it to a new data set with a larger allocation. Expiration Date Specify a date when the file can be considered expired and can be deleted In the file expiration data parameter you can specify a date when the file can be considered expired and can be deleted. The expiration date is not normally filled in for disk data sets, since it interferes with their reorganization. They cannot be deleted until the expiration data is reached. Directory blocks The directory blocks field determines whether you are creating a sequential data set or a partitioned data set. If set to zero, the new data set becomes a sequential data set. To create a partitioned data set, enter a value in the directory blocks field. This parameter represents the number of 255-byte directory blocks that should be allocated for the library. Normally, each block can accommodate six member entries for standard ISPF source members. Non-standard ISPF source members do not have ISPF statistics, and there is less information which must be stored in the directory blocks. In these data sets, each directory block can hold up to 21 members. 96
  • 97. Notes: If you select the rename option, you are presented with the Rename Data Set panel. The data set name at the top of the screen is carried over from the initial Data Set Utility panel. You enter the new name for the data set under the ISPF Library fields. 97
  • 98. Notes: The D option on the Data Set Utility panel provides you the ability to delete a data set. Enter the name of the data set you want to delete. Press Enter. ISPF provides a pop-up window that will request confirmation from you that you truly wish to delete the data set. The deletion of the data set frees space for immediate use by z/OS for other data sets. Once it is deleted, it is gone. To get it back, it must be restored from backup. 98
  • 99. Notes: Selection 3 on the Utility Selection Panel, represents the move/copy Utility. With this utility, you can move or copy sequential or partitioned data sets. Copying a data set means reproducing it to another location. Afterwards you have two versions, the original and the copy. When you move a data set, it is copied from one location to another, but the original is scratched, and only one version remains. With the move/copy utility, you may also move or copy a member from one partitioned data set to another. Likewise, copying a member implies reproducing it. Moving a member means that the original is scratched. Moving or copying does not allocate a new data set. Both from and to data sets must already exist. The C and M options are used to copy or move either a data set or member of a data set. CP and MP are also provided to print the data set or member as it is copied. Actually, the data copied is placed in the list data set that is submitted to for batch print when the ISPF session is ended. To copy a sequential data set, you must enter the data set name information of the from data set in the section From ISPF Library. Leave the member name blank. You can enter up to four library names. ISPF concatenates these searches for each of the libraries until it finds the data set. Select your copy or move option, then press Enter. In the entry panel that follows you have the opportunity to specify the to data set. For a sequential data set, you need to enter a project, group, and type. There are a number of data sets options to consider at the bottom of the screen. If you select Mod, and the to data set already exists, the copied or moved data is added to the end of the existing data set. If you select OLD, the previous contents of the to data set are erased. 99
  • 100. You can also choose to store the output data set in packed (compressed) format. The third set of options has to do with the Source Configuration Library Manager (SCLM) module. In the second panel, specify the name of the to data set, and also the name of the to member. When copying members of a PDS, you must consider the Replace option. If you enter a slash (/), you will replace like-named members. This means that duplicate members will be deleted from the to data set before they are copied or moved. If you do not select this option, duplicate members WILL NOT be copied or moved. 100
  • 101. Notes: You can copy all members from one PDS to another very easily. When entering the From ISPF Library, place an asterisk in the Member field. This will tell the utility to copy all members it finds in the from data set. In such an operation, you should consider carefully the Replace Like-Named Members option on the Specify-To entry panel. The member selection list shows the names of the members that appear in the from data set. You can select the members you wish to move or copy, by placing an S in the left-most column of the selection list. An important part of this member selection list display is the Rename column. Here you may add a new member name next to any member you select. The member will be copied or moved and the to version will possess the member name from the Rename column. 101
  • 102. Notes: The fourth selection on the ISPF Primary Option Menu provides access to the DSLIST utility. This might be one of the most useful areas of the feature provided by ISPF. The main panel for the DSLIST Utility is shown here. At the top are four options. The most useful of these is Display Data Set List, since it is really the starting point for almost all the operations you will do with the DSLIST utility. If you leave the option prompt blank and press Enter, the utility provides a list of data sets. First, you must enter parameters that indicate the scope of the data set list you want to start with. These two important parameters are DSNAME Level and Volume Serial. In the fields Confirm Data Set Delete and Confirm Member Delete, it is a good idea to set these options by typing the slash (/). This will ensure later that you are prompted for assurance before the utility permits a data set or member to be deleted. On the Data Set Utility Panel, there are four possible views to select from. You make your selection by entering a number 1 through 4 at Initial View field. The four views are listed below. Volume – The VOLUME option displays the volume where each of the data sets in the list reside. Space – The SPACE option displays information on track allocation and usage. Attrib – The ATTRIB option displays the characteristics of the data sets. Total – The TOTAL option displays all of the previous information, along with the creation and expiration dates and the date each data set was last referenced. 102
  • 103. If you enter a high-level data set name qualifier, perhaps only a project id in the DSNAME level field, you would then press Enter. The utility searches all cataloged data sets across the entire system with front portions of their names matching the value you specified. An example of such a list is shown here. You may also specify a Volume Serial parameter and leave the DSNAME level field blank. The list will show all data sets on the specified disk volume, cataloged or uncataloged. Finally, you can specify both a DSNAME level parameter and a Volume Serial parameter. In this case the list will show only data sets matching the name qualifier on the specified disk volume. There are three options in addition to leaving the option prompt blank. • The P option will cause the list of data sets to be entered into the list data set for printing when the ISPF session ends. • The V option provides information taken from the volume table of contents VTOC of the specified disk. It shows the number of tracks, their overall usage, and amount of space left on the disk. • The PV option places the same information, as displayed by the V option, in the list data set for printing when the session ends. The VTOC information is of greater use to system programmers than that of application programmers. Specifying Dsname Level * A single asterisk by itself indicates that at least one qualifier is needed to occupy that position. A single asterisk within a qualifier indicates that zero or more characters can occupy that position. ** A double asterisk indicates that zero or more qualifiers can occupy that position. A double asterisk within a qualifier is invalid. % A single percent sign indicates that any one single alphameric or national character can occupy that position. %%... One to eight percent signs can be specified in each qualifier. The following examples are valid for Dsname Level: Dsname Level Data Set List SYS1.PARMLIB One data set name. SYS1.* All data set names with SYS1 as the first qualifier and at least one more qualifier. SYS1 or SYS1.** All data set names with SYS1 as the first qualifier **.CLIST All data set names with a qualifier of CLIST . AAA%*.B*%%%B All data sets that start with AAA, have at least one more character in the high level qualifier and have a second qualifier that begins and ends in B with at least three letters between the Bs. 103
  • 104. Notes: The functions available for use within the data set list are shown here: B Browse data set C Catalog data set D Delete entire data set E Edit data set I Data set information M Member list only P Print entire data set R Rename entire data set S Sort data set information U Uncatalog data set X Print data set index listing Z Compress data set All of these functions are present in one or more forms within ISPF. The DSLIST utility provides a manner of using these within the context of a data set list. The data set list represents the branching off point for any of several desired actions. For example, you can move the cursor down to a particular data set name, enter B for browse, and press Enter. 104
  • 105. If the data set is a PDS, you will receive a member list showing all members in the data set. From that list you can select a member by typing an S next to it, and pressing Enter. Immediately you are taken to a browse panel in order to browse the source data contained in that member. If the data set is a sequential data set, and you select it with a B for browse, you will be taken immediately to the browse panel to see its source data. The PF3 key takes you back to the data set list. 105
  • 106. Notes: Option 14 on the Utility Selection Panel brings up the Search-For Utility. This utility allows you to search for one or more characters in a data set. The search string is entered on the first line. Spaces or special characters must be placed in quotes. In this basic Search Utility, search strings are not case-sensitive, and may be entered in uppercase or lowercase. You can specify that data set here. If you leave the Member Field blank, Search-For displays a member list. In the member list, you can select the members you want searched by placing an S next to each. In the panel shown here, if you place an asterisk in the Member Field, all members in the library would be searched. You may also choose to process in foreground or batch mode. On the Search-For Utility Panel you can enter a slash to select the option that will specify additional search strings. A pop-up window appears titled Search-For Strings. Here you may enter single or multiple search strings. You may include the keywords PREFIX, SUFFIX, or WORD after any search string to consider a match. At the beginning of a word, end of a word, or acomplete word, respectively. You cannot include multiple keywords on one line. If you want to search for the same string at the beginning or end of a line, place the same search string on two different lines, one with PREFIX and one with SUFFIX. When you specify multiple search strings, you may also supply the keyword C. C stands for continuation, and it indicates that the search string from the previous line is being continued. For example: ==> COMPUTE WORD ==> AMOUNT WORD C The selection scenario shown indicates to locate all lines that contain COMPUTE and AMOUNT. 106