You are previewing IBM z/OS ISPF Smart Practices.
O'Reilly logo
IBM z/OS ISPF Smart Practices

Book Description

This books helps employees working with IBM mainframe systems to significantly increase their productivity. The reader learns how to use ISPF professionally. The author gives many useful hints and tips based on his extensive experience working with ISPF. All major commands are demonstrated by tested examples in their mode of action. The book can be used both as a teaching help and as a practical guide to daily work.

Table of Contents

  1. Cover
  2. Title
  3. Copyright
  4. Preface
  5. 1 Introduction
    1. 1.1 Users of this book
    2. 1.2 The significance of the REXX programming language in z/OS
    3. 1.3 Brochures for programming ISPF applications
      1. 1.3.1 The REXX programming literature
      2. 1.3.2 ISPF reference books
      3. 1.3.3 TSO reference books
      4. 1.3.4 The ISPF services
  6. 2 Introduction to the REXX programming language
    1. 2.1 What is REXX?
    2. 2.2 Overview of REXX under TSO
      1. 2.2.1 Recognizing a REXX procedure by the TSO
      2. 2.2.2 Running REXX procedures in the TSO
    3. 2.3 Compile REXX procedures
    4. 2.4 Performance of REXX procedures
    5. 2.5 The syntax of the REXX language
    6. 2.6 Variables in REXX
    7. 2.7 Data types of REXX variables
    8. 2.8 Operators of the REXX language
      1. 2.8.1 String operators
      2. 2.8.2 Arithmetic Operators
      3. 2.8.3 Compare operators
      4. 2.8.4 Logical operators
    9. 2.9 Stems in REXX
      1. 2.9.1 Initialize stems with null string
      2. 2.9.2 File processing in connection with stems
      3. 2.9.3 Multi-unit Stems
  7. 3 The REXX commands
    1. 3.1 ADDRESS – Connection to the subsystems
      1. 3.1.1 The host command environments
      2. 3.1.2 The active host command environment
      3. 3.1.3 The temporary addressing of external commands
      4. 3.1.4 Special case ISPEXEC and ISREDIT
      5. 3.1.5 The main host command environments
    2. 3.2 ARG – Retrieve the parameter string
    3. 3.3 CALL – Call other programs
    4. 3.4 DO groups and DO loops
      1. 3.4.1 The DO group
      2. 3.4.2 The DO loop
    5. 3.5 EXIT and RETURN – leaving the REXX procedure
    6. 3.6 IF and WHEN – check conditions
    7. 3.7 INTERPRET – generate REXX commands dynamically
    8. 3.8 NUMERIC – set computing options
    9. 3.9 PARSE – text fragmentation
      1. 3.9.1 PARSE ARG
      2. 3.9.2 PARSE VALUE WITH
      3. 3.9.3 PARSE VAR
      4. 3.9.4 PARSE SOURCE
    10. 3.10 PROCEDURE – Option for internal subroutines
      1. 3.10.1 Internal subroutines with PROCEDURE statement
      2. 3.10.2 Internal subroutines without PROCEDURE statement
    11. 3.11 QUEUE – Working with the TSO stack
      1. 3.11.1 The TSO/E data stack
      2. 3.11.2 Use options for the TSO/E Data Stack
    12. 3.12 SAY – Print texts
    13. 3.13 SELECT – Conditionally call alternative instructions
    14. 3.14 NOP – No operation
    15. 3.15 PULL – Enter data on the screen
    16. 3.16 TRACE – The strong debugging aid
    17. 3.17 SIGNAL – Jumping when errors
  8. 4 The REXX functions
    1. 4.1 General functions
      1. 4.1.1 ADDRESS – Get the active host command environment
      2. 4.1.2 ARG – Input parameter test or take
      3. 4.1.3 DATE – Date functions
      4. 4.1.4 TIME – Time functions
      5. 4.1.5 QEUED – Number of records in the data stack
      6. 4.1.6 SOURCELINE – Return a program line
      7. 4.1.7 USERID – Return the TSO user ID
      8. 4.1.8 VALUE – Create variable names dynamically
    2. 4.2 Arithmetic functions
      1. 4.2.1 ABS – absolute value of a number
      2. 4.2.2 DIGITS, FORM, FUZZ – Query options for arithmetic operations
      3. 4.2.3 MIN, MAX – Minimum and maximum value
      4. 4.2.4 RANDOM – Generate random numbers
      5. 4.2.5 SIGN – Return of the sign
    3. 4.3 Comparison Functions
      1. 4.3.1 COMPARE – Compare texts
      2. 4.3.2 DATATYPE – Determine data type
    4. 4.4 Conversion functions
      1. 4.4.1 C2D – Character to decimal
      2. 4.4.2 C2X – Character to Hexadecimal
      3. 4.4.3 D2C – Decimal to Character
      4. 4.4.4 D2X – Decimal to Hexadecimal
      5. 4.4.5 X2B – Hexadecimal to Binary
      6. 4.4.6 X2C – Hexadecimal to Character
      7. 4.4.7 X2D – Hexadecimal to Decimal
    5. 4.5 Formatting functions
      1. 4.5.1 CENTER – Centering a string
      2. 4.5.2 COPIES – Reproduce texts
      3. 4.5.3 FORMAT – Format numbers
      4. 4.5.4 JUSTIFY – Formatting a string
      5. 4.5.5 LEFT – Rearrange text left-justified
      6. 4.5.6 RIGHT – Arrange text right- justified
    6. 4.6 String functions
      1. 4.6.1 DELSTR – Delete substrings
      2. 4.6.2 INSERT – Insert text
      3. 4.6.3 SCHANGE – Change of texts
      4. 4.6.4 LENGTH – Length of a text
      5. 4.6.5 OVERLAY – Superimpose text
      6. 4.6.6 POS – Search for text
      7. 4.6.7 STRIP – remove border characters
      8. 4.6.8 SUBSTR – Extract part of a text
      9. 4.6.9 TRANSLATE – translate characters
      10. 4.6.10 VERIFY – verify text
    7. 4.7 Word functions
      1. 4.7.1 WORD – return of a word
      2. 4.7.2 WORDINDEX – return the starting position of a word
      3. 4.7.3 WORDLENGTH – return the length of a word
      4. 4.7.4 WORDPOS – search for a word
      5. 4.7.5 WORDS – number of words in a string
    8. 4.8 System functions
      1. 4.8.1 LISTDSI – List data set information
      2. 4.8.2 MSG – control of the TSO messages
      3. 4.8.3 MVSVAR – Return z/OS system information
      4. 4.8.4 OUTTRAP – take TSO messages
      5. 4.8.5 SYSDSN – check data set status
      6. 4.8.6 SYSVAR – get system Information
      7. 4.8.7 STORAGE – read and write memory contents
  9. 5 The TSO/E REXX commands
    1. 5.1 EXECIO – Read and write data sets
    2. 5.2 DELSTACK – delete data stack contents
    3. 5.3 DROPBUF – Delete data stack buffers
    4. 5.4 TSO Commands
  10. 6 Execute REXX programs
    1. 6.1 Execution of programs in a TSO/ISPF environment
      1. 6.1.1 Online execution
      2. 6.1.2 Batch execution
  11. 7 Introduction to ISPF programming
    1. 7.1 Programming languages useable in ISPF
    2. 7.2 ISPF programming objects
    3. 7.3 Some typical examples
      1. 7.3.1 Example for use of ISPF panels
      2. 7.3.2 Example for use of skeletons
      3. 7.3.3 Example for use of tables
      4. 7.3.4 Example for use of ISPF variables
      5. 7.3.5 Example for data processing with TSO and ISPF
      6. 7.3.6 Output of messages with ISPF
    4. 7.4 LIBDEF – Dynamic linking of ISPF libraries
    5. 7.5 ALTLIB – Dynamic linking of EXEC libraries
      1. 7.5.1 Search sequence in the procedures libraries
      2. 7.5.2 The ALTLIB command in ISPF
      3. 7.5.3 Stacking of the APPLICATION level ALTLIBs
      4. 7.5.4 The QUIET operand of the ALTLIB DISPLAY command
  12. 8 Data set processing using ISPF
    1. 8.1 The LM services
      1. 8.1.1 Grouping of LM services
      2. 8.1.2 LMINIT – Start of the data set processing
      3. 8.1.3 LMFREE – Free a data set
      4. 8.1.4 LMOPEN – Open a data set for processing
      5. 8.1.5 LMCLOSE – Close a data set
      6. 8.1.6 LMMFIND – Localize a member
      7. 8.1.7 LMMREP – Replace a member
      8. 8.1.8 LMMADD – Add a member
      9. 8.1.9 LMGET – Read a data records
      10. 8.1.10 LMPUT – Output data records
      11. 8.1.11 LMCOPY – Copy data
      12. 8.1.12 LMMOVE – Move data
      13. 8.1.13 LMMDEL – Delete members
      14. 8.1.14 LMMREN – Rename members
      15. 8.1.15 LMMSTATS – Display or change member statistics
      16. 8.1.16 LMCOMP – Compress a PDS
      17. 8.1.17 LMMLIST – Display a member list
      18. 8.1.18 LMMDISP – Display and edit a member list
      19. 8.1.19 LMDINIT – Initialize the LMDDISP service
      20. 8.1.20 LMDDISP – Data set list service
      21. 8.1.21 LMDLIST – List of data sets
      22. 8.1.22 LMDFREE – Free a LISTID
      23. 8.1.23 MEMLIST – member list dialog service
    2. 8.2 Data set query services
      1. 8.2.1 LMDLIST – Data set list service
      2. 8.2.2 DSINFO – ISPF service which provides data set information
      3. 8.2.3 LISTDSI – REXX function to list data set information
      4. 8.2.4 QBASELIB – Query DSN information
      5. 8.2.5 QLIBDEF – Query LIBDEF Information
      6. 8.2.6 QUERYENQ – ENQs determination
  13. 9 Messages – Definition, setting, output
    1. 9.1 Error handling in ISPF
      1. 9.1.1 Returning error messages
      2. 9.1.2 Output of error messages
      3. 9.1.3 SETMSG – Set next message
      4. 9.1.4 Definition of ISPF messages
      5. 9.1.5 Naming convention of the ISPF message IDs
      6. 9.1.6 Definition of messages
      7. 9.1.7 The standard message member ISRZ00
  14. 10 Panels – create and use
    1. 10.1 The Dynamic Tag Language (DTL)
    2. 10.2 Panel types in ISPF
    3. 10.3 Definition of panels
      1. 10.3.1 The structure of a panel
      2. 10.3.2 Creation of panels and their call
      3. 10.3.3 The panel definition sections
      4. 10.3.4 Variables in panel definitions
      5. 10.3.5 Panel processing
      6. 10.3.6 Help panels
      7. 10.3.7 Panels to display ISPF tables
  15. 11 Skeletons – Design and use
    1. 11.1 Creating skeletons
    2. 11.2 Steps to use the file-tailoring service
  16. 12 Tables – Create and edit
    1. 12.1 Locations for tables
    2. 12.2 Reading ISPF tables
    3. 12.3 Writing ISPF tables
    4. 12.4 Commands of the table services
    5. 12.5 Example of working with tables
  17. 13 Variables – Definition and using
    1. 13.1 Variables pools
      1. 13.1.1 Function pool
      2. 13.1.2 Shared pool
      3. 13.1.3 Profile pool
    2. 13.2 Saving the profile members
    3. 13.3 Creating profile members
    4. 13.4 Display of actually used profile member
    5. 13.5 The System Profile Pool
      1. 13.5.1 Frequently used ISPF variables
      2. 13.5.2 Process ISPF variables
  18. 14 Edit macros – Create and apply
    1. 14.1 What is an edit macro?
      1. 14.1.1 Naming conventions for edit macros
      2. 14.1.2 Example of two very useful edit macros
    2. 14.2 Table of edit macro commands
    3. 14.3 Operands and abbreviations used in the edit macro commands
    4. 14.4 Test aids in the creating macros
      1. 14.4.1 Prototyping
      2. 14.4.2 The REXX TRACE command as developing aid
      3. 14.4.3 The program ISREMSPY
    5. 14.5 System variables of the ISPF editor
    6. 14.6 Passing parameters to macros
    7. 14.7 Examples for editing and SUBMIT batch jobs
    8. 14.8 Mnemonics for macro programming
  19. 15 The SMART ISPF utilities
    1. 15.1 Naming conventions
    2. 15.2 The dynamic panel concept
    3. 15.3 List of executable programs
    4. 15.4 Program descriptions
      1. 15.4.1 Edit macro ## – Execute a currently edited REXX procedure
      2. 15.4.2 Edit macro #ALTXT – Realign line parts
      3. 15.4.3 Edit macro #EDMEM – Edit of a member
      4. 15.4.4 Edit macro #IMACROA – General ISPF edit macro
      5. 15.4.5 Edit macro #IMACRO1 – Initial edit macro
      6. 15.4.6 Edit macro #IMACRO2 – Edit session end macro
      7. 15.4.7 Edit macro #ISPFB – Submit an ISPF batch job
      8. 15.4.8 Edit macro #LCH – Perform long edit change commands
      9. 15.4.9 Edit macro #SPLJ – SPLIT and JOIN lines
      10. 15.4.10 Edit macro #SSS – Clear SCHFOR lists
      11. 15.4.11 Edit macro #SSSCH – Mass update of members
      12. 15.4.12 Edit macro #SU – Submit JCL without a JOB statement
      13. 15.4.13 Edit macro #TSOB – Submit a TSO batch job
      14. 15.4.14 Edit macro #VERASE – Erase ISPF profile variables
      15. 15.4.15 Program SCURSOR – Calling a data set from an ISPF screen
      16. 15.4.16 Program SDOC – Produce documentation members
      17. 15.4.17 Program SLE – Display last edited data sets
      18. 15.4.18 SLOGDSN – Data member containing DSNs for logon
      19. 15.4.19 Program SLOGON – Personal logon procedure
      20. 15.4.20 Program SPROFEDT – Store users ISPF profile variables
      21. 15.4.21 SPROFVAR – Load user ISPF variables
      22. 15.4.22 Program SSC – Super clone for data sets
      23. 15.4.23 Program SSS – Perform a Super-Search
    5. 15.5 Programming aids
      1. 15.5.1 Edit macro #C – Compile and execute a REXX program
      2. 15.5.2 Edit macro #RO – Online compile of a REXX program
      3. 15.5.3 Edit macro #RC – Compile a REXX procedure with a batch job
      4. 15.5.4 Edit macro #RCLOAD – Produce a load or a call module
      5. 15.5.5 Edit macro #IE – Insert a call to ISPF_ERROR
      6. 15.5.6 Subroutine ISPF_ERROR – Display ISPF error messages
      7. 15.5.7 Edit macro #PAN – Execute a panel source code
      8. 15.5.8 Subroutine DAYDIFF – Calculate number of days
      9. 15.5.9 Subroutine ENDDAY – Calculate a target date
      10. 15.5.10 Subroutine JULDATE – Translate a date to Julian and vise versa
      11. 15.5.11 Subroutine LEAPYEAR – Return the leap year information
      12. 15.5.12 REXX subroutine SCHANGE – REXX change function
      13. 15.5.13 Program SDYNPAN – Convert a panel source code
    6. 15.6 Installation of SMART ISPF utilities
      1. 15.6.1 Download and unzip
      2. 15.6.2 Installation
      3. 15.6.3 ALTLIB command
      4. 15.6.4 Make the SMART ISPF utilities ready to run
  20. List of programs
  21. List of tables
  22. List of screens
  23. Bibliography
  24. Index