Ispf v71
Ispf v71
Ispf v71
Eugenie Alexander Rodney Almodovar Balachandran Chandrasekaran Pearlson Christopher Steve Coalbran Mark Leung Jean Mothersele Chaitra Narayanaswamy Kevin Neubert Richard Pace Michael Rotter Walter Zakorchemny
ibm.com/redbooks
8093edno.fm
International Technical Support Organization Improving Productivity with ISPF Productivity Tool V7.1 February 2013
SG24-8093-00
8093edno.fm
Note: Before using this information and the product it supports, read the information in Notices on page xi.
First Edition (February 2013) This edition applies to Version 7, Release 1, Modification 0 of ISPF Productivity Tool (product number 5655-SPF). This document was created or updated on January 23, 2013.
Copyright International Business Machines Corporation 2012. All rights reserved. Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
8093TOC.fm
Contents
Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii The team who wrote this book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv Now you can become a published author, too! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii Stay connected to IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xviii Chapter 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1 Targeted audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Definition of terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 IPT batch utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4 IPT seamless integration with ISPF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.5 Learning IPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.6 Increased productivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.7 Integration with other products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.8 Object Linking and Embedding (OLE). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.9 z/OS panel images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.10 The Object List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.11 IPT functional overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 2 3 3 3 4 4 5 5 5 6
Chapter 2. Object lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.1 Using IPT Object List Assist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.2 Catalog navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.2.1 Exploring the system. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.3 Object List generic searches with dataset patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.3.1 Hot functions or hot buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.3.2 Further exploration of system datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.4 Validating APF libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.5 Group execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.5.1 Group execution by line command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 2.5.2 Group execution by number reference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 2.5.3 Group execution by generic reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 2.6 Permanent Object List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 2.6.1 Permanent Object List for projects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 2.6.2 Creating project ELUX OLIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 2.6.3 Project ELUX workflow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 2.7 MEMFIND command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 2.8 FINDTEXT command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 2.8.1 Using the AUTOMATIC Yes setting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 2.8.2 Using the AUTOMATIC No setting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 2.8.3 FINDTEXT parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 2.8.4 Using the FINDTEXT ALL command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 2.8.5 Using the FINDTEXT FIRST comand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 2.8.6 Using the FINDTEXT NEXT command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 2.8.7 Using the FINDTEXT LAST command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 2.8.8 Using the FINDTEXT PREV command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 2.9 SHOWMIG command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Copyright IBM Corp. 2012. All rights reserved.
iii
8093TOC.fm
Using the EMPTY Object List command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using the COPYALL and MOVEALL commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . BOOK and SHELF Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using the MAPPDS command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
72 74 75 78 81 82 83 85 88 91
Chapter 3. Common OLISTs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Creating a public OLIST using export . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 Creating a read-only OLIST using export . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4 Copying an OLIST using Import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5 Paste MODEL/SAMPLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapter 4. Clone object list command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 4.1 The CLONE command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 4.2 CLONE command using a Member Selection List (MSL) . . . . . . . . . . . . . . . . . . . . . . . 99 4.3 CLONE main command in EDIT/VIEW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 4.4 OLCLONE command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Chapter 5. Member Selection Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1 Basic MSL functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Using the IPT MSL Assist command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3 IPT search commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4 Global find and global change commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5 Changing the global IPT defaults for your session . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.6 The Global Edit command settings and parameters . . . . . . . . . . . . . . . . . . . . . . . . . 5.7 Invoking a find or change command globally . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.7.1 Examples using the Global Find and Change commands . . . . . . . . . . . . . . . . . 5.8 MSL FINDTEXT command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.9 Partitioned dataset extended . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.9.1 Defining PDSEs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.9.2 When to use PDSs instead of PDSEs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.9.3 Using ISPF concatenated libraries to manage change . . . . . . . . . . . . . . . . . . . 5.10 MSL Point-and-Shoot fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.11 MSL HOTBARs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.12 Advanced MSL functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.12.1 IPT support for PDF libraries: automated compress and directory expansion . 5.12.2 Using EMPTY and COMPRESS on a PDS. . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.12.3 Identify members and move them to another PDS . . . . . . . . . . . . . . . . . . . . . . 5.13 Using the TAILOR command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.13.1 Using the MAPPDS command to recover deleted PDS members. . . . . . . . . . 5.13.2 Using the expanded member name field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapter 6. MSL partitioned member list filtering and group execution . . . . . . . . . . . 6.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 FILTER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3 Date filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.4 Using Patterns with COPY, MOVE and DELETE . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapter 7. Tagging partitioned members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1 Command overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2 TAG command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3 COPYTAG command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.4 DELETTAG command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.5 FILTTAG command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 106 106 108 109 109 110 111 112 116 122 122 122 123 129 132 133 134 135 137 139 142 147 149 150 150 155 159 171 172 173 178 180 183
iv
8093TOC.fm
7.6 FINDTAG and FINDTXTG commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.7 GLOBLTAG command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.8 HIDETAG command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.9 INFOTAG and STATSTAG commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.10 LOCATTAG command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.11 MOVETAG command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.12 PRINTTAG command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.13 SELECTAG command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.14 SORTTAG command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.15 SUBMTTAG command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapter 8. MSL TITLE and related commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1 MSL TITLE commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2 TITLE command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3 FILTTITL and FILTUKEY commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.4 FINDTITL and FINDUKEY commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.5 HIDETITL and HIDEUKEY commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.6 SORTTITL and SORTUKEY commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.7 TITLE control statements in IQIBUTIL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.8 TITLE support for load libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapter 9. TSO Command Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.1 Validating the TSO Command Shell options in IPT . . . . . . . . . . . . . . . . . . . . . . . . . . 9.2 Using IQIWIZRD to customize the TSO shell command list . . . . . . . . . . . . . . . . . . . . 9.3 IPT History Commands List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.3.1 Using the TSO Command Shell with the IPT History Command List . . . . . . . . . 9.4 IPT Permanent Command List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.4.1 Using the TSO Command Shell with the IPT Permanent Command List . . . . . . 9.5 TSO Command Shell list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.5.1 Demonstration of TSO History command list options . . . . . . . . . . . . . . . . . . . . . 9.5.2 Demonstrating TSO Permanent Command List options . . . . . . . . . . . . . . . . . . . Chapter 10. Invoking Commands from OLISTs and MSLs . . . . . . . . . . . . . . . . . . . . . 10.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2 Invoking TSO commands from OLIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.3 Invoking user commands from OLIST. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.4 MSL CLIST/EXEC line commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.5 MSL CLIST/EXEC main commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapter 11. IPT Global Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1 IPT Global commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 IPT syntax definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3 Generic searches with dataset patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.4 Object List commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.5 IPT OL, OLIS, and PLIST commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.6 TSO permanent commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.7 IPT-related IPT shortcuts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.8 List of IPT shortcut commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapter 12. Invoking IPT from ISPF Option 3.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.1 IPT Option 3.4 panel changes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.2 Displaying a Temporary Object List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.3 Dataset list (DS) and NON-ISPF generic searches. . . . . . . . . . . . . . . . . . . . . . . . . . 12.4 The MORE? indicator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
185 188 191 193 196 199 202 205 207 210 213 214 214 220 223 224 225 226 229 231 232 233 235 235 236 236 237 238 243 249 250 252 255 256 259 261 262 264 265 272 274 275 278 281 285 286 290 297 301
Contents
8093TOC.fm
Additional field panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . How to list generation data groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . List files by volumes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Object List compared to DSLIST volume handling . . . . . . . . . . . . . . . . . . . . . . . . . . Populating an Object List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
305 308 310 317 317 321 322 323 324 325 326 329 331 333 333 334 336 337 338 338 340 340 342 343 345 346 349 351 352 352 353 354 355 357 358 359 360 362 363 364 366 367 368 370 370 371 373
Chapter 13. Enhanced cut and paste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.1 Cutting text into a clipboard. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.2 Cut using labels. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.3 Cut using relative line numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.4 Cut using C, CC, M, or MM editor line commands . . . . . . . . . . . . . . . . . . . . . . . . . . 13.5 Cut using NX or X operands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.6 Specifying a clipboard on the CUT command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.7 Appending text to an existing clipboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.8 Saving the clipboard for future use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.9 Browsing and editing the clipboard data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.10 Displaying and maintaining the current clipboards . . . . . . . . . . . . . . . . . . . . . . . . . 13.11 Pasting text from a clipboard. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.12 Paste using A or B editor line commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.13 Paste using BEFore or AFTer operands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.14 Specifying a clipboard on the PASTE command . . . . . . . . . . . . . . . . . . . . . . . . . . 13.15 Pasting the contents of a member . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.16 Pasting the directory list of a PDS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.17 Pasting the output from a TSO command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.18 Pasting a portion of the clipboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.19 Editing the clipboard prior to copying it . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.20 Pasting text as temporary MSG or NOTE lines. . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.21 Printing the clipboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapter 14. IPT customization: First-time logon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.1 IPT LOGON procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.2 IPT persistent tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.2.1 IPT persistent tables defined with first logon. . . . . . . . . . . . . . . . . . . . . . . . . . . 14.2.2 IPT persistent tables defined by the system programmer. . . . . . . . . . . . . . . . . 14.2.3 IPT persistent tables defined by user customization. . . . . . . . . . . . . . . . . . . . . Chapter 15. IPT user customization using the IPT SET command . . . . . . . . . . . . . . . 15.1 Invoke IPT SET menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.2 Using the single option to set ALL IPT defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.3 Settings for Member Selection List (MSL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.4 Settings for Object List (OLIST) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.5 Settings for GLOBAL FINDTEXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.6 Settings for PRINT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.7 Settings for DSLIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.8 Settings for the TSO command shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.9 Settings for EDIT/VIEW/BROWSE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.10 Settings for the user interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.11 Settings for diagnostics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.12 Settings for the persistent table library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.13 Setting for the BookManager interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapter 16. Customizing your ISPF keys for Point-and-Shoot . . . . . . . . . . . . . . . . . . 375 16.1 Customizing IPT with View using PF4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376 16.1.1 Defining PF4 for the IPT View command for SDSF . . . . . . . . . . . . . . . . . . . . . 376 vi
Improving Productivity with ISPF Productivity Tool V7.1
8093TOC.fm
Customizing IPT to invoke Dataset History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IPT Point-and-Shoot to invoke an Object List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using the IPT Point-and-Shoot Commands with an MSL . . . . . . . . . . . . . . . . . . . . . Invoking z/OS UNIX Object names using Point-and-Shoot . . . . . . . . . . . . . . . . . . . Translation of symbolic information using Point-and-Shoot . . . . . . . . . . . . . . . . . . .
380 384 385 387 387 391 392 392 395 396 397 399 399 400 403 403 404 406 406 407 409 412 413 413 415 416 419 422 422 426 428 430 433 434 439 440 440 446 449 454 461 464 464 466 468 468 472 473 477 480 481 vii
Chapter 17. Using IBM File Manager for z/OS with IPT . . . . . . . . . . . . . . . . . . . . . . . . 17.1 Customizing IPT to invoke File Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.1.1 Tell IPT to open VSAM files and DB2 tables using File Manager . . . . . . . . . . . 17.1.2 Update IPT CLISTs to invoke File Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.2 Using File Manager Base with IPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.2.1 Sample data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.2.2 Using IPT as a shortcut to File Manager DB2. . . . . . . . . . . . . . . . . . . . . . . . . . 17.2.3 Maintaining data in hexadecimal mode using File Manager . . . . . . . . . . . . . . . 17.2.4 Using copybooks to maintain data using File Manager. . . . . . . . . . . . . . . . . . . 17.2.5 Additional features of File Manager Base . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.3 Using File Manager for DB2 with IPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.3.1 Browsing, editing, or viewing a fully qualified DB2 table in IPT. . . . . . . . . . . . . 17.3.2 Nominating a DB2 table without specifying a subsystem . . . . . . . . . . . . . . . . . 17.3.3 Browsing, editing, or viewing a generic DB2 table in IPT . . . . . . . . . . . . . . . . . 17.3.4 Beyond DB2 table browsing, editing and viewing . . . . . . . . . . . . . . . . . . . . . . . 17.3.5 Exporting DB2 data to sequential or VSAM files. . . . . . . . . . . . . . . . . . . . . . . . 17.3.6 BROWSE, EDIT, VIEW commands in IPT and File Manager for DB2 . . . . . . . 17.3.7 Using IPTCMD to deal with command collisions. . . . . . . . . . . . . . . . . . . . . . . . 17.3.8 Additional features of File Manager for DB2 . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapter 18. SCLM integration with IPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.1 Customization to support SCLM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.2 SCLM IPT interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.3 IPT SCLM walk-through . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.3.1 Creating a new assembler program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.3.2 Migrating members to SCLM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.3.3 Updating the project SCLM ARCHDEF members. . . . . . . . . . . . . . . . . . . . . . . 18.3.4 Building and promoting the SCLM ARCHDEF members . . . . . . . . . . . . . . . . . 18.3.5 Removing the obsolete program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.3.6 MSL SCLM related commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapter 19. IPT double-byte character set support . . . . . . . . . . . . . . . . . . . . . . . . . . . 19.1 Setting up a Japanese 3270 session in Rational Host On-Demand (HOD) . . . . . . . 19.1.1 Creating a Japanese 3270 session in HOD . . . . . . . . . . . . . . . . . . . . . . . . . . . 19.2 Setting up a simplified Chinese 3270 session in IBM Personal Communication . . . 19.3 ISPF and IPT settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19.4 Using DBCS with the Object List. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19.4.1 Using the FINDTEXT command with DBCS . . . . . . . . . . . . . . . . . . . . . . . . . . . 19.5 Using DBCS with the Member Selection List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19.5.1 Enable MSL DBCS support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19.5.2 MSL DBCS search string support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19.6 MSL titles and DBCS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19.6.1 Update the title and userkey individually. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19.6.2 Update title and userkey using TITLEMIG . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19.6.3 A sample job to generate TITLEMIG input to create member titles / user keys 19.6.4 Creating a view with member titles and user keys . . . . . . . . . . . . . . . . . . . . . . 19.7 Examples of using some MSL Titles commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . 19.7.1 Using HID) to filter user keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Contents
8093TOC.fm
19.7.2 Stacking HID) commands using TAILOR D . . . . . . . . . . . . . . . . . . . . . . . . . . . 483 19.7.3 Using IQIBUTIL TITLELIST. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485 19.7.4 Start over with MSL titlesand user keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486 Chapter 20. Batch Utility IQIBUTIL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.1 IQIBUTIL processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.1.1 Control statement syntax conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.1.2 Non-standard member name support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.1.3 Filtering target member names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.1.4 Member name filter processing rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.2 JCL EXEC statement PARM option parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.3 JCL DD statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.4 IQIBUTIL special control statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.4.1 ALIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.4.2 COMPRESS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.4.3 COPYSEQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.4.4 DELETE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.4.5 EMPTY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.4.6 EXPDIR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.4.7 LISTDIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.4.8 MAPPDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.4.9 MOVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.4.10 RECOVER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.4.11 RENAME. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.4.12 TITLEIMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.4.13 TITLEMIG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.4.14 TITLELIST. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.4.15 INDSN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.4.16 EXCLHEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.4.17 SELHEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.5 IQIBUTIL IEBCOPY control statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.5.1 ALTERMOD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.5.2 COPY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.5.3 COPYGRP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.5.4 COPYGROUP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.5.5 COPYMOD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapter 21. Installing IPT V7.1 on z/OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.1 Installation requirements for IPT V7.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Contents of the IPT product package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2.1 Custom-built product delivery offering tapes. . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3 IPT installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3.1 Sample jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3.2 Allocating SMP/E global zone consolidated software inventory libraries . . . . . 21.3.3 Allocating SMP/E target and distribution zone libraries . . . . . . . . . . . . . . . . . . 21.3.4 Allocating SMP/E temporary libraries for global zone . . . . . . . . . . . . . . . . . . . . 21.3.5 Allocating libraries for target and distribution zones . . . . . . . . . . . . . . . . . . . . . 21.3.6 Defining global, target, and distribution zone options and DDDEF entries . . . . 21.3.7 Performing SMP/E RECEIVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3.8 Performing SMP/E APPLY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3.9 Performing SMP/E ACCEPT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3.10 List SYSMODS for IPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3.11 Installing PTFs for IPT releases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491 492 492 492 492 493 493 497 497 497 498 499 500 502 503 505 506 507 508 509 510 512 514 515 515 516 517 517 518 520 521 522 525 526 526 526 528 529 530 531 532 533 536 545 546 547 548 548
viii
8093TOC.fm
21.4 Customizing the LOGON PROC to invoke IPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.4.1 Customizing the TSO LOGON procedure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.4.2 Customizing the CLIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.5 Creating a RACF profile to use the customized TSO LOGON PROC for IPT. . . . . . 21.6 Using the new TSO LOGON procedure to invoke IPT . . . . . . . . . . . . . . . . . . . . . . . 21.7 Ordering IPT V7.1 for clients in India . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Appendix A. Customizing IBM Personal Communications . . . . . . . . . . . . . . . . . . . . . Marking the box for cut and paste activities without the mouse . . . . . . . . . . . . . . . . . . . . . Displaying the pop-up keypad panel without a mouse . . . . . . . . . . . . . . . . . . . . . . . . . . . . Changing PCOM to use the mouse to open and close files. . . . . . . . . . . . . . . . . . . . . . . . Touring IPT using the mouse-enabled point-and-click function . . . . . . . . . . . . . . . . . . Restoring the PCOM mouse settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Appendix B. Personalization suggestions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Removing the ISPF Action Bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Removing the OLIST Volume display for cataloged datasets . . . . . . . . . . . . . . . . . . . . . . Removing ISPF PF Keys display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Setting the SWAPBAR split name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Setting the HOTBAR in OLIST, MSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Related publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Other publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Online resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Help from IBM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
549 549 551 555 557 561 563 564 564 564 566 568 569 570 572 574 577 578 583 583 583 583 583
Contents
ix
8093TOC.fm
8093spec.fm
Notices
This information was developed for products and services offered in the U.S.A. IBM may not offer the products, services, or features discussed in this document in other countries. Consult your local IBM representative for information on the products and services currently available in your area. Any reference to an IBM product, program, or service is not intended to state or imply that only that IBM product, program, or service may be used. Any functionally equivalent product, program, or service that does not infringe any IBM intellectual property right may be used instead. However, it is the user's responsibility to evaluate and verify the operation of any non-IBM product, program, or service. IBM may have patents or pending patent applications covering subject matter described in this document. The furnishing of this document does not grant you any license to these patents. You can send license inquiries, in writing, to: IBM Director of Licensing, IBM Corporation, North Castle Drive, Armonk, NY 10504-1785 U.S.A. The following paragraph does not apply to the United Kingdom or any other country where such provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of express or implied warranties in certain transactions, therefore, this statement may not apply to you. This information could include technical inaccuracies or typographical errors. Changes are periodically made to the information herein; these changes will be incorporated in new editions of the publication. IBM may make improvements and/or changes in the product(s) and/or the program(s) described in this publication at any time without notice. Any references in this information to non-IBM websites are provided for convenience only and do not in any manner serve as an endorsement of those websites. The materials at those websites are not part of the materials for this IBM product and use of those websites is at your own risk. IBM may use or distribute any of the information you supply in any way it believes appropriate without incurring any obligation to you. Any performance data contained herein was determined in a controlled environment. Therefore, the results obtained in other operating environments may vary significantly. Some measurements may have been made on development-level systems and there is no guarantee that these measurements will be the same on generally available systems. Furthermore, some measurements may have been estimated through extrapolation. Actual results may vary. Users of this document should verify the applicable data for their specific environment. Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not tested those products and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products. This information contains examples of data and reports used in daily business operations. To illustrate them as completely as possible, the examples include the names of individuals, companies, brands, and products. All of these names are fictitious and any similarity to the names and addresses used by an actual business enterprise is entirely coincidental. COPYRIGHT LICENSE: This information contains sample application programs in source language, which illustrate programming techniques on various operating platforms. You may copy, modify, and distribute these sample programs in any form without payment to IBM, for the purposes of developing, using, marketing or distributing application programs conforming to the application programming interface for the operating platform for which the sample programs are written. These examples have not been thoroughly tested under all conditions. IBM, therefore, cannot guarantee or imply reliability, serviceability, or function of these programs.
xi
8093spec.fm
Trademarks
IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of International Business Machines Corporation in the United States, other countries, or both. These and other IBM trademarked terms are marked on their first occurrence in this information with the appropriate symbol ( or ), indicating US registered or common law trademarks owned by IBM at the time this information was published. Such trademarks may also be registered or common law trademarks in other countries. A current list of IBM trademarks is available on the Web at http://www.ibm.com/legal/copytrade.shtml The following terms are trademarks of the International Business Machines Corporation in the United States, other countries, or both:
BookManager CICS DB2 IBM IMS Lotus Notes Lotus MVS Notes RACF Redbooks Redbooks (logo) System z z/OS
The following terms are trademarks of other companies: UNIX is a registered trademark of The Open Group in the United States and other countries. Other company, product, or service names may be trademarks or service marks of others.
xii
8093pref.fm
Preface
This IBM Redbooks publication introduces the Interactive System Productivity Facility (ISPF) Productivity Tool (IPT) Version 7, Release 1 for z/OS. IPT operates as a seamlessly integrated front end to ISPF: IPT functionality is available from any panel without a need to modify any ISPF Primary Options Menu. All IPT functions are totally integrated. IPT can perform almost any activity within ISPF, or internally invoke the function that can perform the task. IPT combines separately provided ISPF utility functions and new ISPF Productivity Tool features into the Object List (OLIST) and Member Selection List (MSL). The resulting member, dataset, and object lists become powerful platforms where you can perform many tasks without navigating to other utilities. IPT relates objects to applications in a similar manner to the way that a PC performs Object Linking and Embedding (OLE). By extending the dataset objects that are used by ISPF to other object classes, IPT lets you specify the object to be processed and the action that is performed (such as EDIT or BROWSE). The facility that is appropriate to the object class for the action that you have requested is invoked automatically. IPT provides extensive search capabilities that are both rapid and intuitive. You can easily search for volumes, datasets, members, and text within members. ISPF Productivity Tool also furnishes automatic drill-down system navigation to examine volumes, datasets, and members. IPT provides a menu-driven facility to display and recover all of the deleted members of a partitioned dataset (PDS) library. IPT extends the ISPF Action Bar with options that provide access to new functionality so that you do not have to learn new commands or syntax. In addition to the ISPF point-and-shoot capabilities, IPT provides new concepts, such as hotbars (user-defined fields that execute commands), field-sensitive areas in MSLs and OLISTs, automatic recognition of a dataset name on any ISPF panel as a parameter to BROWSE, EDIT, or VIEW, or parameters within any Time Sharing Option (TSO) command. IPT provides integrated and enhanced IBM Software Configuration and Library Manager (SCLM) support within the standard member and dataset lists. SCLM is a source library management component of ISPF that provides change control, multiple source versions, auditing, a built-in make facility, and automatic check-in/sign-out using standard libraries (PDS and partitioned dataset extended (PDSE)). IPT includes built-in interfaces to various IBM and ISV products. IPT includes a new batch utility that provides a seamlessly integrated front-end to IBM's IEBCOPY utility. In addition to supporting all IEBCOPY standard functionality, it includes additional major enhancements. This book is intended as a supplement to existing product manuals. It starts with an overview of the main IPT concepts and facilities. It then follows with detailed chapters, each dedicated to a major IPT function. Practical scenarios, accompanied by detailed screen captures and coding examples, demonstrate how to take advantage of the IPT enhanced functionality in every case.
xiii
8093pref.fm
Michael Rotter is a Senior Software Engineer at IBM Tivoli in New Jersey, US. Mike is currently serving as the Chief Architect/Developer/Level-3 Support for the ISPF Productivity Tool product. Mike joined IBM in July 2005 during the acquisition (by IBM) of his former company ISOGON. Mike has over 30 years of experience with system-level software development in large system environments with MVS, OS/390, and z/OS. Prior to joining IBM, Mike held software development leadership positions at ISOGON, STERLING Software, AT&T Federal Systems, E.F. Hutton, J.P. Morgan Bank, Informatics, and more. Eugenie Alexander is an Advisory Software Engineer at IBM Systems & Technology Group in San Jose, California. She has done planning, execution and closing of the Function Verification phases on numerous z/OS DFSMS releases. She has over 25 years of experience with z/OS products including Binder, PDSEs, Access Methods, and Utilities. Eugenie joined IBM in 1981 as a Product Analyst in manufacturing. She currently lives in Spokane, WA.
Rodney Almodovar is an Advisory Software Engineer at IBM Software Group in Austin, Texas. He has sixteen years of IBM work experience, supporting HourGlass, ISPF, REXX and OS/2. His current responsibilities include application analysis, design, planning, development, testing, implementation, and maintenance of application software under the mainframe environment.
Balachandran Chandrasekaran Chandrasekaran is a Certified IT Specialist at IBM Systems and Technology Labs, India. He has worked on Mainframe technologies for ten years. In his career, he has performed various roles involving z/OS Application development, Security Administration, Change Management using IBM SCLM and Database Administration. He has special interest in performance tuning the databases. His experience also includes IBM Power Systems and Oracle Databases. In his current role, he provides Database consulting services to IBM Customers in the Asia Pacific region.
xiv
8093pref.fm
Pearlson Christopher is a Senior Mainframe Platform Support z/OS System Programmer at IBM GTS Services Delivery in Bangalore, India. Christo is currently the Technical lead for z/OS platform support team which handles multiple z/OS client infrastructure across different geographies. His responsibilities include providing technical leadership, handling complex projects, creating solutions, building technical process & procedures and implementing service improvements. Christo joined IBM in December 2007. He has eight years experience in z/OS platform and has developed expertise in mainframe hardware migration, z/OS installation & maintenance, IBM program product & ISV product support, parallel sysplex implementation and disaster recovery planning. He recently got certified as IBM Certified IT Specialist (Experienced level) in the Software Enablement specialization. Steve Coalbran is an accredited Senior IT Specialist with IBM Global Business Services in Stockholm, Sweden. Steve has over 35 years of application development and design-to-end experience within IBM. He joined IBM UK in 1978 and transferred to Sweden in 1999. Steve specializes in the development of innovative solutions and tools that increase the productivity and efficiency of developers and production systems. He has worked primarily with MVS from OS/360 through z/OS and, to a lesser extent, with CMS and OS/2, AS/400, DOS, and Windows. In the past years, his work in Sweden related to the implementation of customized IBM product line solutions, replacing and improving on existing software. Steve especially focused on tailoring ISPF and REXX in products within the AD Tool set, working closely with both Software Sales and ISPF development. Mark Leung Mark Leung has been working with z/OS at IBM for 24 years. He has been involved in testing for the last 15 years, including functional/system testing for ISPF/SCLM, File Manager, DB2, as well as application performance testing. He is a proficient user of Teleprocessing Network Simulator (TPNS) and Workload Simulator (WSim). He has co-written Redbooks in PL/I and DB2 previously.
Jean Mothersele is an IT Subject Matter Expert for the State of Connecticut. Jean is currently working as the z/OS Systems Programmer for the Bureau of Enterprise Systems and Technology. She began her career at the State of Connecticut in 1988 as a CICS application programmer for the Department of Correction, in 1991 she was promoted to Technical Support. In 2002, Jean earned a Governor's Service award for her work with the Department of Information Technology's Relocation Team. Jean has installed and supported IMS and DB2 as well as many z/OS software products. Her current responsibilities include z/OS and Web Sphere Application Server for z/OS supporting various state departments served by the DAS/BEST mainframe.
Preface
xv
8093pref.fm
Chaitra Narayanaswamy is a System Engineer at IBM GBS Global Delivery in Bangalore, India. She is currently working for the S&D Customer Fulfillment project under IBM Global Account. She joined IBM in November 2006 as an Application Programmer. Her current responsibilities include planning, estimation, analysis, design, development, testing, integration, implementation, and maintenance of applications under the mainframe environment. She has primarily worked with MVS from OS/390 through z/OS and also VM and has over two years of experience in ISPF and other z/OS tools. She is an IBM Certified DB2 Database Associate. In addition, she has contributed to a Six Sigma project for productivity improvement. Kevin Neubert is a Senior System Support Analyst for the State of Washington. Kevin is currently responsible for z/OS, WebSphere Application Server for z/OS, WebSphere MQ for z/OS and related OEM and ISV products. His previous responsibilities have included hardware configuration, z/VM, Linux on System z and most facets of data center operations and business continuity.
Richard Pace Richard Pace is a Senior Software Engineer for IBM Corporation in the Global Technology Services division writing source code for the z/OS platform storage migration products, TDMF and zDMF. Richard has over 30 years in his career of systems programming, product design, software development and technical support on z/OS and legacy MVS operating systems. Prior to joining IBM in 2007, Richard managed and participated actively in Software Development and Technical Support teams within Goal Systems, Legent Corporation and Panorama Software for business continuity products. Richard has performed in software development and support, systems programming and security implementation for Mainstar Software, Amdahl and Lockheed Aeronautical Systems. Richard holds an M.S. in Mathematics from California State University, Northridge, and U.S. patents in ICF Catalog Recovery and Logical Data Set Migration.
Walter Zakorchemny Zakorchemny is a Certified Senior IT Specialist with IBM Americas Software Group. Walter has over 30 years of experience with z/OS in many areas, including operations, systems programming, and technical sales. Prior to joining IBM in 1980, Walter worked as an IT Specialist for the Banking and Aerospace industries. Walter has been the Technical Sales Team Lead for the ISPF Productivity Tool and has developed sales material, training workshops, and provided input for enhancements for the IPT product . Walter is based in Sea Isle City, New Jersey, US.
xvi
8093pref.fm
Carla Sadtler Jeff Cox International Technical Support Organization, Raleigh Center James Rice IBM US Zaid Faydi Formerly of IBM Australia Tyrone Dalais IBM Australia
Thanks to the authors of the previous editions of this book. Authors of Improving Productivity with ISPF Productivity Tool V6.1, SG24-7710, published in August, 2009, were: Michael Rotter, Tiju Ambalathingal, Steve Coalbran, Howard Givner, Gregery Green, Dhanya Nair, Chaitra Narayanaswamy, James Rice, Ren Xiao Yang, Walter (Zack) Zakorchemny
Comments welcome
Your comments are important to us! We want our books to be as helpful as possible. Send us your comments about this book or other IBM Redbooks publications in one of the following ways: Use the online Contact us review Redbooks form found at: ibm.com/redbooks Send your comments in an email to: redbooks@us.ibm.com Mail your comments to: IBM Corporation, International Technical Support Organization Dept. HYTD Mail Station P099
Preface
xvii
8093pref.fm
xviii
8093ch01.fm
Chapter 1.
Introduction
In this chapter, we provide a general description of the Interactive System Productivity Facility (ISPF) Productivity Tool (IPT) Version 7, Release 1 for z/OS. We discuss the features, functions, and facilities that ISPF Productivity Tool provides to enhance ISPF.
8093ch01.fm
8093ch01.fm
8093ch01.fm
You can also display the command syntax and examples by entering ASSIST olistcommand (or A olistcommand). For example, A FINDTEXT provides the details of the FINDTEXT command. See Chapter 2, Object lists on page 9 for more information. The Member Selection List ASSIST command summarizes each MSL primary and line command syntax and examples of each MSL command. You can also display the command syntax and examples by entering ASSIST mslcommand (or A mslcommand). For example, A WHERE provides the details of the WHERE command. See Chapter 5, Member Selection Lists on page 105 for more information. The ISPF Productivity Tool invocation uses an ISPF logon procedure that is designed for IPT. You can turn off IPT for the duration of your ISPF session, by entering IPTOFF;=X without leaving ISPF. To turn it back on, you can enter IPTON;=X.
8093ch01.fm
Other third-party products Software Configuration Management Systems: IBM Software Configuration and Library Manager Other third-party products DB2 tables: IBM File Manager/DB2 for z/OS (with IPT Version 5.10) Other third-party products
Chapter 1. Introduction
8093ch01.fm
Table 1-1 MYPROJ Object List Object 1 2 3 4 5 6 7 8 9 10 Type of object SCLM Hierarchy JCL PROC DB2 Table SEQ File SEQ File VSAM File USS File Imbedded Olist Control Data Object name <USBAPP.DEV1.SOURCE MYID.JCLLIB MYID.PROCLIB USBAPP.CUSTORDER MYID.CUST.ORDER MYID.CUST.ORDER.REPORT MYID.CUST.MASTER.FILE )/U/MYID/Project Documentation USBAPP*PROJECT MYID.CONTROL
The Object List in Table 1-1 represents all the files that you need to modify an application for a customer change request. Think of this Object List as a Project File for the customer change request. Using the SCLM Hierarchy, you can easily reference all the levels in the SCLM tree, and all SCLM library types. Files containing the test JCL, PROC, and Control members are contained in the OLIST. Project documentation can reside in a UNIX System Services file. The application also uses VSAM, and DB2 files, which you can easily reference. With this OLIST, you can access any of your project files by simply selecting the file that you need. The Object Linking and Embedding process will invoke the correct utility to reference the file. An Object List is persistent. Therefore, changes that you make to the Object List are not lost when you log off the TSO session.
8093ch01.fm
Automatic integrated access: Edit and browse VSAM files, DB2 tables, hierarchical file system (HFS) files, PC files, catalog levels, and other objects. There is no need to navigate to other products. Extremely fast results: Many IPT functions invoke a single utility to process a request with multiple files. IPT provides an ASSIST feature when working with objects from either: An Object List (OLIST or OL). a Member Selection Lists (MSL) The Assist feature is the basic method of documenting IPT features and is the primary source of information. The ASSIST elements will be updated with any changes before the manuals so this should be one's primary source of information on commands. It is also a convenient reminder of the functions that are available, at any time within any OLIST or MSL. Advanced batch utility for manipulating partitioned and sequential data sets.
Chapter 1. Introduction
8093ch01.fm
8093ch02.fm
Chapter 2.
Object lists
The Interactive System Productivity Facility (ISPF) Productivity Tool (IPT) Version 6 Release 1 for z/OS introduced to a new concept an Object List. An Object List is a data store reference, which is used to organize your work into a single folder. With an Object List, you can organize all of the required files into a single project folder, which is called an OLIST. ISPF Productivity Tool (IPT) is really useful in helping you to explore the system using the system catalog. Imagine that you are a new user to a system or investigating an unfamiliar area. The catalog is the obvious starting point. In this section, we examine the concepts of Catalog navigation and concentrate on several of the Group execution techniques.
8093ch02.fm
As shown in Figure 2-2 the Assist feature provides a display showing the main (command line) commands and the line commands that can be used when working with objects in an OL. IPT release 7.1 has increased the numbers of commands available.
10
8093ch02.fm
You can obtain additional information for each command by entering the following command: A command where command represents one of the IPT OL main commands or line commands. In Figure 2-3, the A LISTPAGE command is used to get additional assistance.
This command gives specific assistance with the LISTPAGE command (see Figure 2-4).
Alternatively placing the cursor on a command and pressing ENTER (or double-clicking if your emulator is set up correctly), as in Figure 2-5 on page 12. Other emulators may have a slightly different method of achieving the same effect.
11
8093ch02.fm
In PCOM you can select Edit > Preferences > HotSpots and then select the Point-and-Select Commands option ENTER at cursor position (see Figure 2-6).
Other emulators may have a slightly different method of achieving the same effect.
12
8093ch02.fm
Issuing an OLDD command without a DDname parameter displays a panel similar to Figure 2-8 on page 13.
Figure 2-8 Displaying the Allocation List from an OLDD command without a DDname parameter
13
8093ch02.fm
There are many libraries allocated at this installation, so we stopped scrolling here. Your list will differ. Seeing all of the libraries that are allocated, we must focus on particular subsets, one at a time. We can start by looking at the first library in the SYSPROC concatenation, as shown in Figure 2-10. 14
Improving Productivity with ISPF Productivity Tool V7.1
8093ch02.fm
SYS1**LIB*.%%%
For more information: Refer to 11.3, Generic searches with dataset patterns on page 265.
To focus on only the datasets that match, we create a temporary OLIST using IMS* as a pattern. This command (Figure 2-11) displays all datasets that begin with IMS.
Figure 2-11 Temporary Object List matching a pattern Chapter 2. Object lists
15
8093ch02.fm
When the IPT search finds more than 1,000 entries (this limit can be modified at installation time), IPT prompts you after each 1,000 of the first 3,000 as shown in Figure 2-12.
Figure 2-12 Prompting for more than 1,000 entries in the Object List
Another prompt is issued when the 2,835 rows are pending. Finally, the whole list is displayed, as shown in Figure 2-13.
Figure 2-13 Complete Object List displayed after all prompts are cleared
We are interested in JavaTM component. We want to see only the datasets in this list that contain the string JAVA. We use the FILTER command, as shown in Figure 2-14 on page 17.
16
8093ch02.fm
Figure 2-14 Using the Object List FILTER command to scope the results
Figure 2-15 Using the Object List FILTER shows only datasets containing the string JAVA
Figure 2-16 shows us how to select all of the datasets that we have just excluded, by using the FLIP command.
17
8093ch02.fm
Figure 2-17 on page 18 displays all of the IMS* datasets, except for the datasets that contain the string JAVA.
Figure 2-17 After using FLIP, the Object List shows only datasets that do not contain the string JAVA
Tip: The *EXCLUDE* and the *FILTER* function are dynamic or hot functions. At any time, you can return to the base IMS* list by placing your cursor on the *EXCLUDE* column heading and pressing Enter. You can use the *FILTER* function in the same way.
18
8093ch02.fm
Figure 2-18 Toggling from the Class column to the Volume column display
The result is that the Class column is toggled to display the dataset Volume column. Program function key or PF6 achieves the same result, as do the commands: VOLUME or SHOWVOL. To change back, toggle back by placing the cursor on the Class column and pressing Enter, or issue the commands: CLASS or SHOWCLAS.
Figure 2-19 Using the OL/ command to display the system files
The OL/ command displays a pop-up panel, as shown in Figure 2-20 on page 20, where you can choose several alternative ways to populate the generated OLIST.
19
8093ch02.fm
Figure 2-20 Pop-up selection panel to select Object List population criteria
At the top of Figure 2-20, we see the option that we selected before when we discussed OLDD, 1 Allocations. Let us investigate option 7 SYSTEM files. Either enter a 7 in the Option field, or use the cursor to point-and-shoot at the line SYSTEM files. The panel shown in Figure 2-21 on page 20 is displayed. Enter 5 to select option 5 - All of the above.
20
8093ch02.fm
Figure 2-22 Selected all of LINKLIST, LPALIB, APF, and PARMLIB libraries
The list is long. Each category is separated by a comment line that describes the libraries that follow, which we can show using the FILTER command, as shown in Figure 2-23. Tip: The exclamation mark (!) is usually displayed as denoting a comment. On certain non-US codepages this may vary.
Figure 2-23 Using the FILTER command to show only the category separator comment lines
Figure 2-24 on page 22 shows only the lines that begin with symbols, signifying that they are comments.
21
8093ch02.fm
Figure 2-24 Result of using the FILTER command to show only the category separator comment lines
To show only the libraries, we can use the FLIP command as shown in Figure 2-25.
22
8093ch02.fm
Figure 2-26 shows the result from entering the FLIP command.
Figure 2-26 Result of using FLIP on the Object List shows all but the category separator comment lines
Now, we can analyze what is contained on each volume. We can use the SORT command, for example, to see which libraries are on the Z00RES system pack. Tip: Rember that if at any time within an OLIST (or an MSL) you are unsure of the syntax of a command or of which commands are available, you can use the ASSIST command. For example, A SORT for the SORT command. First ensure that the Volume column is populated by use of the FILLVOL command, as shown in Figure 2-27.
Figure 2-27 Using the SORT command: Complete the volume information
Next, use the SORT command to sort the entries as shown in Figure 2-28 on page 24.
23
8093ch02.fm
Figure 2-28 Using the SORT command: Sort the list by volume and then by dataset name
Figure 2-29 Using the SORT command: Scroll to locate the seven libraries on the required volume
IPT is versatile. You can also obtain all of the datasets on the same pack by listing by VTOC, as shown in Figure 2-30, instead of using the catalog.
Figure 2-31 on page 25 lists the VTOC for the pack Z00RES. Tip: The status panel appears briefly. If you had a slow response or the volume-serial was generic (for example, requesting a volume-serial pattern of Z00*), this panel might have displayed for a longer amount of time.
24
8093ch02.fm
Figure 2-31 Status panel displayed while the LISTVTOC Object List is built
Remember that a complete list of available commands is available, from any panel, at any time, by using the IPT? command, as shown in Figure 2-33.
25
8093ch02.fm
Scroll down to see the remainder (currently 60) of the command descriptions.
26
8093ch02.fm
Figure 2-36 on page 27 displays the current APF library objects list.
If you place the cursor on the Volume column heading and press Enter, Figure 2-37 appears.
27
8093ch02.fm
Notice that the library Class fields are empty in Figure 2-38 on page 28. To check the validity of the entries, we need to issue the VALIDATE command. First, we use the ASSIST command to see exactly what the VALIDATE command does ( Figure 2-39).
28
8093ch02.fm
Figure 2-40 Using ASSIST to explain the VALIDATE command: Assistance displayed
29
8093ch02.fm
Figure 2-42 on page 30 displays a dynamic status message as the individual entries are validated.
30
8093ch02.fm
The dynamic status display (Figure 2-43 on page 31) shows the results of validation.
You can easily identify the files that are not found (- NOT FND-) or archived (ARCHIVE). First, sort the list by Class to get them all together. Figure 2-44 shows issuing the command.
31
8093ch02.fm
Figure 2-45 on page 32 shows the results of the sort. Datasets not found contain a *DEL* flag in their Class column.
Figure 2-45 Using the VALIDATE command: *DEL* Not found for the -NOT FND- libraries
Scrolling down, we can see the beginings of the PDS CLASS, displayed in Figure 2-46 where the archived dataset contains a PDS flag in its Class column.
Figure 2-46 Using the VALIDATE command: *MIGR* is the archived MIGRATED library
32
8093ch02.fm
When you first performed the VALIDATE, you received an on-panel message, under the Hotbar (refer back to Figure 2-43 on page 31), which said that to remove the -NOT FND- libraries from the list, issue the RESET DEL command, as shown in Figure 2-47 on page 33.
Figure 2-48 shows the results obtained from the RESET DEL command. The *DEL* marked libraries are no longer visible. The archived datasets are unaffected, of course.
Tip: You can also use the VALIDATE command for older OLISTs, for example, permanent OLISTs that might be out-of-date.
33
8093ch02.fm
The command will result in various prompt panels, such as the panel in Figure 2-50 on page 34).
The final result of the command is the temporary OLIST that is shown in Figure 2-51.
Figure 2-51 A temporary OLIST for IMS*: Results from the command
34
8093ch02.fm
Figure 2-52 Excluding a catalog entry from an Object List: Issuing a line command
The first line of the list is excluded. Notice in Figure 2-53 that line 1 is no longer displayed, and the *EXCLUDE* flag is displayed, signifying that certain lines are excluded.
Figure 2-53 Excluding a catalog entry from an Object List: Results of the command
To perform the same action as the /X line command for a single line by number reference, enter 1 X on the command line, as shown in Figure 2-55 on page 36.
35
8093ch02.fm
Figure 2-55 Excluding a catalog entry from an Object List by number reference
Figure 2-56 shows that again the first line of the list is excluded.
We can see that many of these datasets are migrated (indicated by the value MIGRAT in the Class column). If we need to recall all of the IMS.APPC.* datasets1 (numbers 2,3,4 in the list), we can use the HRECA command as shown in Figure 2-57.
Figure 2-57 Recalling a group of datasets in one IPT command, by number reference
Note that there is a better way of working in the current version of IPT. See the section 2.16, SHOWMIG command on page 78.
36
8093ch02.fm
As shown in Figure 2-58 on page 37, recalls are issued for datasets with 2-4 in their Numbr column.
Figure 2-58 Recalls requested and completed for a group of migrated datasets
To view a subset of datasets, enter the V command with the numbers of the datasets to view, as shown in Figure 2-59.
In Figure 2-59, we inadvertently selected 9-10 instead of 10-11, and the first of these datasets is a migrated dataset (and it is the Index of a VSAM dataset). IPT knows that the dataset is migrated and that we do not want the standard TSO response, which is to WAIT or press Attention. Therefore, IPT provides certain alternative options to use, as shown in Figure 2-60 on page 38.
37
8093ch02.fm
We chose option X to ignore our previous action. We then proceed to VIEW the next dataset, as shown in Figure 2-61.
We can now go back to correctly view dataset 11 from Figure 2-59 on page 37 independently; however, we will skip this step.
38
8093ch02.fm
We see in Figure 2-63 on page 39 that IPT gives you the option to cancel one or all actions.
In this case, we press End to cancel and SKIP to the next dataset in the list, see Figure 2-64.
Here, we can press End again and proceed through all the datasets in the range one by one, but we decide to QUIT and terminate the deletion process altogether. See Figure 2-65.
39
8093ch02.fm
After you enter QUIT, you get the option to continue to quit this set of deletes or to resume the delete actions on the list by entering the QUIT STOP command. See Figure 2-66 on page 40.
Here, we do not take this option, but instead press Enter, as shown in Figure 2-67.
Alternatively, you could have entered QUIT STOP, as shown in Figure 2-68 on page 41.
40
8093ch02.fm
Then, the DELETE action proceeds with the message QUIT stopped as in Figure 2-69.
41
8093ch02.fm
Although the file formats, content, and requirements change each time, the activity is similar each time that it is requested. The spreadsheets to be matched (two, three, sometimes up to six) are sent to the programmer, who uploads them to the host. A new REXX exec is then tailored based on previous examples, compiled, and tested, and any required modifications are applied. The results from the match are downloaded to the PC and then e-mailed to the auditors. The following list summarizes the tasks that are completed on the host. Files are sent and received using Lotus Notes attachments: 1. Upload CSV files to host. 2. Modify and run JCL to accept new input and output file names. 3. Modify the compile JCL to compile the new exec. 4. Create a new REXX exec, and compile the REXX exec to a load module. 5. Run the REXX program. 6. Review the output of the CSV file. 7. Download the output CSV to the PC. Tip: As a general suggestion for permanent OLISTs, most entries need to be patterns, which automatically handle any catalog changes to those datasets. You might typically have only a couple of stable datasets, such as JCL or PROC libraries, as explicit dataset names within any OLIST. The other datasets are various patterns. Even if only a single name matches that pattern, there is a good chance that new names matching those patterns might be added later.
42
8093ch02.fm
Figure 2-72 is displayed, allowing you can choose your Object List options.
Figure 2-72 Setting OLIST defaults on the Object List Options panel
In Figure 2-72, we chose N for the option Show VOLSER of cataloged data-sets and C for the option Display mode (right column shows), because, typically, using uncataloged datasets is rare for most users. The actual location of the data is unimportant, because most environments use system-managed storage. Choose your own preferences for the default actions. You can always come back at any time and amend them. Return directly to the main menu by pressing End. Create an empty permanent OLIST as shown in Figure 2-73.
43
8093ch02.fm
This option creates an empty OLIST named ELUX, as shown in Figure 2-74.
IPT automatically preloads the list with the last couple of datasets you have accessed as well as a comment to tell you how you can proceed. The most straightforward way can be to enter UPD in the Command field. Do this and press ENTER to continue (see Figure 2-75).
Edit the list with the objects and libraries that are needed for this project (see Figure 2-76 on page 44).
Use the standard features of Edit to update, insert, and delete lines appropriately, then enter the SAVE command to save the OLIST to your list of Permanent OLISTs. Figure 2-77 shows the edited list.
44
8093ch02.fm
Press END to see the OLIST in its final form (see Figure 2-78 on page 45).
The OLIST is not yet saved so type SAVE to save the changes to the Permanent OLIST. To understand the rather special generic nature of IPT patterns, enter a B against line 4 (or place the cursor on the line because Browse is the default command), and press Enter, as shown in Figure 2-79. Notice that the Class for line 4 is LIST, meaning that it is a list of objects.
45
8093ch02.fm
Figure 2-79 Intuitive searches using generic patterns: Browse command against a LIST
The CSV files that match this intuitive search on the generic pattern are displayed in Figure 2-80 on page 46.
Figure 2-80 Intuitive searches using generic patterns: Browsing a list of objects
46
8093ch02.fm
Select the command lines using the mouse or Ctrl and the arrow keys, as shown in Figure 2-83 on page 47.
Figure 2-84 Copying the FTP upload command onto the clipboard
Paste (right-click and select Paste) the command lines in a command prompt, as shown in Figure 2-85.
47
8093ch02.fm
Figure 2-85 Pasting the FTP upload command onto the prompt of an MSDOS panel
Figure 2-86 FTP uploading the assets and contacts lists saved from EXCEL in the CSV format
Looking back to the OLIST, we can check that the two files are uploaded, as shown in Figure 2-87. We skip browsing the file data.
48
8093ch02.fm
Figure 2-87 Browsing the uploaded FTP files to ensure that they were correctly uploaded
Modify the run JCL to accept new input and output filenames by entering E against line 8, as shown in Figure 2-88 on page 49.
Figure 2-88 Editing the run JCL to check that the dataset names are correct for this file match: Open JCL in Edit
Make any necessary adjustments to file names and so forth (see Figure 2-89).
49
8093ch02.fm
Figure 2-89 Editing the run JCL to check that the dataset names are correct for this file match: in Edit
Next, we want to modify and compile the JCL to compile the new REXX exec. To start, enter E against line 7 as shown in Figure 2-90 on page 50.
Figure 2-90 Selecting the compile JCL to check that the dataset names are correct for this file match
We are now in Edit on the JCL, which compiles and link-edits the REXX exec, as shown in Figure 2-91.
50
8093ch02.fm
Figure 2-91 Editing the compile JCL to check that the module name is correct
The compile/link-edit routine that is invoked by this job is a cataloged procedure. The exec/program name is passed together with the HLI of the program libraries and the compile options. Confirm that the exec/program name is correct, or update it. Press End to save any changes. Create a new REXX exec by typing an E against member CONASS in the ELUX EXEC library that is listed, as shown in Figure 2-92.
Write the new REXX exec, as shown in Figure 2-93 on page 51, either from the beginning or by copying an existing, similar REXX exec.
Figure 2-93 Editing the REXX code for the file match program
Press End to save the program when completed. Next, we compile the REXX exec to a load module. Submit the compile and linkedit job, by typing the TSO command SUB (Figure 2-94).
51
8093ch02.fm
You could also submit the job by typing option J in the command field on line 7, as shown in Figure 2-95.
In this example, we used the sub command. Figure 2-96 shows the job has been submitted.
A line message is displayed IKJ56250I JOB SE16661C(JOB05776) SUBMITTED. Then, another message appears: 14.38.19 JOB05776 AHASP165 SE16661C ENDED AT MOPZT00 JCL ERROR CN(INTERNAL) There has been a JCL error, so we must fix the problem. In this cases, we needed to rename the system libraries because the name has changed with this release. We re-submit the job and get the following message: 14.43.22 JOB01234 HASP165 SE16661C ENDED AT MOPZT00 MAXCC=0 CN(INTERNAL) We can check the status of the job by using the custom user defined object (UDO2, OUT) on line 10. In this case, however, we invoke the TSO command SDSF with the status parameter ST (on line 11). Type S against line 11, and press Enter, as shown in Figure 2-97.
This action invokes the TSO command (notice the + prefix) SDSF with the two parameters (ST SE16661C), which requests a status list of all jobs with jobname SE16661C. The result is shown in Figure 2-98 on page 53.
2
User Defined Object. These UDOs are not covered in detail in this book, but you can refer to a detailed discussion of them in Improving Your Productivity with the ISPF Productivity Tool V5.9 on z/OS, SG24-7587.
52
8093ch02.fm
Figure 2-98 Display the status of the executing file match job by invoking the SDSF command
Select the job and view the output. Press End until you return to the IPT OLIST display. Now do the same for the JCL job that actually runs the CONASS REXX, as shown in Figure 2-99. Submit the job, which will create the CONTACTS CSV file.
Figure 2-99 Run the REXX exec to process the CSV files.
When the job completes, type S against line 4 of the OLIST to browse the generic LIST of CSV spreadsheet files, as shown in Figure 2-100.
Select line 2 (the CONTACTS CSV) by typing S to the left of it to browse the output from the program, as shown in Figure 2-101 on page 54.
53
8093ch02.fm
Figure 2-101 Browse the results of the file match: Select the generic spreadsheets
Figure 2-102 Browse the results of the file match: Looking at the output
Next, we download this output CSV to the PC, as we did with the upload FTP command. Return to the top of the OLIST, and browse (view or edit) the FTP commands in member FTPDNLD from the Member Selection List. These steps are not explicitly displayed but refer back to Figure 2-81 on page 46 to Figure 2-82 on page 47 for the general procedure. Browse the download member FTPDNLD. Select the download commands and copy them (Ctrl+C) to the clipboard, as shown in Figure 2-103.
Figure 2-103 Browsing the FTP download member. Selecting and copying the FTP download command
Select the prompt line within an MSDOS panel, and paste (right-click + click Paste) the lines of the download command, as shown in Figure 2-104 on page 55.
54
8093ch02.fm
Figure 2-104 Pasting the FTP download command onto the prompt of an MSDOS window
Figure 2-105 FTP downloading the result of the file match in CSV format
Then, the programmer rapidly sends the output back to the audit team as a Lotus Notes attachment to use, or to request modifications to the process, and the cycle is repeated. But remember, we are still waiting to be told that the UNIX download-and-send routine is ready for use.
55
8093ch02.fm
Figure 2-106 View the HFS file holding the REXX exec
New in V71: In IPT V7.1, a ZUNIX object name must start with /, ~, or .. There is no need to add a closing parenthesis ) in front of the object name to indicate the type of object. The same object in z/OS V1.8 and earlier will be treated as an Open Edition (OE) object and thus processed via CLIST IQI$OE. Under z/OS V1.9 and later, the object will be processed by native ISPF UNIX support. The developers have not progressed too far, as we can see in Figure 2-107 on page 56.
Figure 2-107 Browsing the HFS file holding the REXX exec to see the stage of development
We clearly see that the promised code has not yet been delivered; it is only a stub.
56
8093ch02.fm
On the pop-up panel that displays, which is shown in Figure 2-109 on page 57, you enter the search argument, and you can also limit the search scope: Enter a member name or member name mask. The MEMFIND (alias MF or FINDMEM) command for Version 6.1 supports unrestricted member name patterns (not only by common prefix). For example: ASMTDLI ASM* ASM%DL* *MTDL*
The MEMFIND command must include the first member name in their results. Specify the search scope: 1NEXT searches the list for the next library containing the specified member (default). 2FIRST searches the list in order and stops as soon as the library is found that contains the member. 3ALL searches all libraries for the specified member. You must specify whether to exclude failures: Y/N.
We use the example of a MEMFIND command to search for ALL occurrences, which is the most likely usage. If, however, you choose to run the command without specifying ALL, you must RFIND through the entire OLIST. This procedure is not illustrated here. Figure 2-110 shows the MEMFIND command with a specified text string being issued on a temporary OLIST for CICSTS* just before you press Enter.
Chapter 2. Object lists
57
8093ch02.fm
Figure 2-110 OLIST MEMFIND ALL command on a complex member name pattern
If the OLIST is large, as in this case, it takes time to search. The dynamic status message shown in Figure 2-111 on page 58 is displayed while it is searching.
Figure 2-111 OLIST MEMFIND ALL dynamic status message while searching
When it has completed searching, the display looks like Figure 2-112. Several panels have been shown together for completeness. As you can see by the Numbr fields, the rows with --FOUND-- entries are widely spaced.
58
8093ch02.fm
Figure 2-112 OLIST MEMFIND ALL results spaced over rows in dataset name order
Rather than paging up and down to find the libraries that contain the member, you can use the SORT MEM command, which moves the libraries that contain members that match the selection to the top of the OLIST. Figure 2-113 shows issuing this command.
And, Figure 2-114 shows the result of the SORT MEM command.
59
8093ch02.fm
Figure 2-114 OLIST MEMFIND ALL: Result of the SORT MEM command
To simplify the display, you can set the GLOBAL EXCLUDE flag to YES by using the ISET command. Selecting YES for the GLOBAL EXCLUDE flag prevents datasets that do not contain members matching the request from displaying. This option can affect the appearance of the results lists. Figure 2-115 shows issuing the ISET GLOBAL command.
Figure 2-116 on page 60 shows setting the GLOBAL EXCLUDE option for OLISTs to YES. Note that the panel is divided in two sections: the top section shows the MSL GLOBAL controls and the bottom section shows OLIST FINDTEXT/MEMFIND.
60
8093ch02.fm
Figure 2-117 shows the result of the same MEMFIND ALL command being issued with the GLOBAL EXCLUDE now set to YES. Notice that the sequence numbers of the libraries did not change.
At the end of this search, only the libraries that contain the member are displayed. Use the FLIP command to see the libraries that are excluded because they did not contain the member, as shown in Figure 2-118.
To remove the text box displayed, simply press Enter. When you complete your work in the OLIST, you can end or exit the panel using PF3. You can use the REFRESH (REF) command to refresh the current OLIST using its original parameters. These various forms of RESET(RES) are also useful commands: RESET RESET M RESET EXCLUDE RESET ALL Clears the command column. Clears the member column. Shows all of the libraries in the OLIST. Resets all of the fields and returns the OLIST to its original state.
You can issue the ASSIST RESET command to see the full range of options.
61
8093ch02.fm
You can customize the maximum number of objects in a temporary OLIST up to 99,999 by using IQIWIZRD.
62
8093ch02.fm
Figure 2-120 shows the SET GLOBAL panel. The top half of the panel relates to MSLs, and the bottom half of the panel relates to OLISTs. Both AUTOMATIC and EXCLUDE are set to Y.
For more information: For more information about Global Find Settings, refer to Chapter 15.5, Settings for GLOBAL FINDTEXT on page 363.
63
8093ch02.fm
page 64) are just copies. The sequential dataset (on the second row of Figure 2-122 on page 64) is identical to member ONE.
Figure 2-121 OLIST SE16661.IPT* contents of libraries and the sequential dataset
Figure 2-122 FINDTEXT OLIST command: FT XYZ Figure 2-123 shows the results of the command.
We see, in the case of the libraries for each one, the first member in which the search string was found4. We can type an S against the first member of the first library
4
OLISTs only return the member in which the first occurrence of the FINDTEXT string was found. To burrow deeper one needs to go into MSL on the library.
64
8093ch02.fm
(SE16661.IPT.TEXT(FIVE)). Figure 2-124 shows its contents. Notice that a FIND command for the search string has been generated in the Command field.
Figure 2-124 FINDTEXT OLIST command: FT 'XYZ' results for member ALL
Figure 2-125 shows the effect of pressing Enter to issue the generated command, and the search string is located.
Figure 2-125 FINDTEXT OLIST command: FT 'XYZ' results for member ALL
This time, we get a similar dynamic status message (but for a shorter duration). We see the results of the search in Figure 2-127 on page 66. Notice that only the first occurrence in the first object is displayed.
65
8093ch02.fm
Figure 2-128 Issuing the command to find all of the occurrences of a string
As we see in Figure 2-129 on page 67, each of the objects containing the string has been labeled TXT FND-5. The first member in each library where the string occurs was labeled, in preparation for direct selection of that member. Where the dataset was sequential (note SEQ as opposed to PDSE in the Class column), then clearly no labeling is possible or necessary.
Notice here that the object on row 5 is EXCLUDED now. Why is it excluded? Because every object in the list is tested to see if it contains any occurrences of the string. As the command searches and verifies objects that do not, it excludes them and continues its search.
66
8093ch02.fm
Figure 2-129 The result of the command to find all occurrences of a string
Figure 2-130 Finding all occurrences of a string: Selecting the first occurrence
We see in Figure 2-131 that IPT has prepared an EDIT command of FIND XYZ, which is ready for use in performing FIND and RFIND occurrences of the string.
Figure 2-131 Finding all occurrences of a string: FIND the string within the dataset/library member
Pressing Enter here locates the string in the second position of the first line.
Figure 2-132 Issuing the command to find the first occurrence of a string
67
8093ch02.fm
Figure 2-133 Finding the first occurrence of a string: The result of the command The first occurrence
Figure 2-134 Issuing the command to find the next occurrence of a string
In Figure 2-135 on page 68 we see the results of the FINDTEXT NEXT command and we find the next occurrence from our current position.
Figure 2-135 Finding the next occurrence of a string: Result of the command
Notice here that the object on row 5 is EXCLUDED now. Why is this object excluded? Because, in wrapping, the object has to be tested to see if it contains any occurrences of the string. Having verified that it does not, IPT excludes the object and continues its search.
68
8093ch02.fm
Figure 2-136 Issuing the command to find the last occurrence of a string
In Figure 2-137, we see the results of the FINDTEXT XYZ LAST command, and we find the next occurrence from our current position.
Figure 2-137 Finding the last occurrence of a string: Result of the command
Figure 2-138 Issuing the command to find the previous occurrence of a string
69
8093ch02.fm
Figure 2-139 Finding the previous occurrence of a string: Result of the command
The OLIST displays as in Figure 2-141 where all datasets, wherever they are located, are shown.
70
8093ch02.fm
If we now issue a SHOWMIG OFF command, as shown in Figure 2-142, the migrated (MIGRAT) datasets are excluded.
In Figure 2-143 on page 71, notice the ISPF short message Migrated are hidden. The *EXCLUDE* flag is showing, and the migrated datasets are no longer visible.
Figure 2-143 SHOWMIG OFF: Results of the command, viewing the non-migrated datasets
To see the migrated datasets, we need to use the FLIP command to show only the currently excluded rows. Figure 2-144 shows the FLIP command being issued.
Figure 2-144 SHOWMIG OFF: FLIP to show the currently excluded datasets
Figure 2-145 shows the display after the FLIP command has been issued.
71
8093ch02.fm
Figure 2-145 SHOWMIG OFF: The migrated datasets show after issuing a FLIP command
Figure 2-147 shows issuing the issue an EMPTY command against one of these datasets.
We see the results of these EMPTY commands in Figure 2-148 to Figure 2-150 on page 73. First, we have to confirm that we really meant to empty the library. We change the N shown here to Y (if we want to empty the library).
72
8093ch02.fm
Figure 2-148 EMPTY a library: Confirming the empty instruction for IPT2
Having entered a Y in the Approval field and pressing Enter, we see a display as in Figure 2-149.
Figure 2-149 EMPTY a library: Both libraries (IPT2 and IPT3) have been emptied
We empty the sequential dataset on row 2, as well, but using another method. Figure 2-150 on page 73 shows the command that we issued to empty this dataset.
We again have to confirm that we really meant to empty the second library by again entering a Y in the Approval field and pressing Enter. We see a display as in Figure 2-151.
Figure 2-151 EMPTY a sequential dataset: Confirming the empty instruction for IPTSEQ Chapter 2. Object lists
73
8093ch02.fm
We now do the same to confirm that we really meant to empty the sequential dataset by again entering a Y in the Approval field and pressing Enter. Figure 2-152 shows the result.
Figure 2-154 on page 74 shows the target or to library. Notice that we have already changed the group name of the target library to IPT2. We press Enter to copy the five members.
74
8093ch02.fm
Press End to return to the OLIST display. Figure 2-156 shows the updated display.
We repeat the same process to populate the IPT3 library. Populating the IPTSEQ.TEXT sequential dataset does not require a COPYALL, in fact attemping that would issue the message IQIM064 Target file must be a partitioned dataset.. Here instead we must use the EDIT command to edit IPTSEQ.TEXT and perform a standard ISPF EDIT COPY of SE16661.IPT.TEXT(ONE). Using the MOVALL command: The MOVEALL command works in exactly the same way as COPYALL, except that the source library is deleted afterward.
Assuming, of course, that the BookManager shelf and books have been correctly installed. See Chapter 21, Installing IPT V7.1 on z/OS on page 525.
75
8093ch02.fm
Select the appropriate bookshelf. There is only one bookshelf shown in Figure 2-158 on page 76.
Next, we select the ISPZDG80 z/OS V1R11.0 ISPF Dialog Developer's Guide and Refererence. See Figure 2-160.
76
8093ch02.fm
Figure 2-161 displays the table of contents for our book. We scroll down and browse to see what is available about BOOK and SHELF.
Figure 2-162 shows an example of the help message that occurs if you press PF1 to see why the dictionary is not available.
77
8093ch02.fm
We see the directory map that is displayed in Figure 2-165. The deleted members are clearly visible. The member names for the deleted members do not show. You can, as always, issue the ASSIST command for assistance.
78
8093ch02.fm
There are a number of commands available to use at this point, including the most useful: B (Browse) E (Edit) V (View) R (Restore) You can undelete any mistakenly deleted members. We can browse the members to check the content enabling us (we hope) to recognise and rename them, see Figure 2-166 and Figure 2-167 below.
Issuing the R command allows us to rename them (back). See Figure 2-168 on page 79 and Figure 2-169 on page 80 below.
79
8093ch02.fm
Issuing a REFresh command, we see, in Figure 2-170 below, that member SIX has been restored.
80
8093ch17.fm
Chapter 3.
Common OLISTs
This chapter will explore public and read-only OLISTs for storing site-wide common object lists. IPT administration of the public and read-only libraries is accomplished via data set security. A public OLIST can only be modified by an authorized IPT administrator and cannot be overridden by an unauthorized user. A read-only OLIST can only be modified by an authorized IPT administrator or customized by a user and stored as a private permanent OLIST. User accessible OLISTs have a priority of public, private, and then read-only. For example, if a private and read-only OLIST have the same name only the private OLIST will be visible. Deleting or renaming the private OLIST would allow the read-only OLIST to become visible.
81
8093ch17.fm
3.1 Overview
You can display all your permanent OLISTs with the OLIST * command or with shortcuts O* or OL* as shown in Figure 3-1. Any public, private or read-only OLISTs available to you will be shown.
Permanent objects listed with private libraries will be noted as PRIVATE under STATUS. Public libraries will be noted as PUBLIC* and Read-only libraries will be noted as RD-ONLY under status. Figure 3-2 on page 82 shows the display of permanent object lists and their status.
82
8093ch17.fm
To make the JCL OLIST public, enter the EXPORT command as shown in Figure 3-4 on page 83.
83
8093ch17.fm
Enter the new public library name in the the Export to dataset field along with the option to use if the library already exists (to replace or not to replace), as shown in Figure 3-5 on page 84.
With proper public library data set access authority, the OLIST will be exported as shown in Figure 3-6 on page 84.
The exported OLIST is now a public library. The private OLIST JCL is no longer visable due to public OLISTs having precidence over private and read-only OLISTs as shown in Figure 3-7 on page 85.
84
8093ch17.fm
85
8093ch17.fm
Because we previously made the OLIST JCL private, and private OLISTs have precidence over read-only OLISTs, the private OLIST JCL would need to deleted or renamed for the read-only version to become visible as shown in Figure 3-9 on page 86.
To rename the private OLIST JCL accordingly enter R as shown in Figure 3-10 on page 86.
86
8093ch17.fm
Enter the new name, JCLPRIV in this example and press enter for confirmation as shown in Figure 3-11 on page 87.
The OLIST has been renamed, but the read-only OLIST JCL is still not visible. It is necessary to use the VALIDATE command or the shortcut VALID, to validate the existence of the OLIST objects as shown in Figure 3-12 on page 87.
87
8093ch17.fm
Now the read-only OLIST JCL is visible because the private OLIST with the same name is gone (Figure 3-13 on page 88).
88
8093ch17.fm
Enter the import dataset location information. For this example, the dataset location to import from is the read-only OLIST library and the destination is the private OLIST library. Since the OLIST name already exists, specify Y for the Replace option to replace the existing member as shown in Figure 3-15 on page 89.
Note the successful import and the SAMPLES OLIST and status change from RD-ONLY to PRIVATE due to private objects having precidence over read-only objects as shown in Figure 3-16 on page 89.
89
8093ch17.fm
Read-only OLISTs are automatically imported. Upon ending a selected read-only OLIST you are prompted to save or remove the OLIST as a private OLIST as shown in Figure 3-17 on page 90.
If you choose to save the new OLIST, you will see a saved message as shown in Figure 3-18 on page 90.
If you choose the END key in Figure 3-17 on page 90, you will see a message that the OLIST was not saved as shown in Figure 3-19 on page 90.
90
8093ch17.fm
91
8093ch17.fm
The results of the sample OLIST are appended to the current OLIST. You can modify the OLIST with the UPDATE command or by using line commands as shown in Figure 3-21 on page 92.
92
8093ch17.fm
In Figure 3-22 on page 93, the OLIST is ready for update. Standard ISPF edit commands can be used to tailor the list.
93
8093ch17.fm
94
8093ch16.fm
Chapter 4.
95
8093ch16.fm
The resulting OLIST is displayed. Enter the CLONE command on the desired data set as shown in Figure 4-2.
Figure 4-3 on page 96 shows the CLONING Data Set panel. Attributes can be overridden here. When overriding attributes, make sure you update the Override suggested clone attributes with a Y.
To add more primary space to the DDT0001.PDS.CLONE, change the Primary quantity value to the new value, and type Y in the Override suggested clone attributes as shown in Figure 4-4.
96
8093ch16.fm
Any changes to the attributes will display a confirmation prompt. Figure 4-5 on page 97 shows the prompt.
You can make additional changes and you will be prompted again. Or press END to cancel the CLONE command. Figure 4-6 shows the message received when END is pressed.
97
8093ch16.fm
Figure 4-6 Message received when exiting the panel using PF3 (END)
Pressing enter to confirm the cloning changes in Figure 4-5 on page 97 returns the OLIST panel, with the cloned data set added, and with a message containing copy information, as shown in Figure 4-7 on page 98.
98
8093ch16.fm
Figure 4-8 CLONE main command entered while editing data set DDT0001.PDSE
When enter is pressed, the CLONING Data Set panel is displayed (see Figure 4-9). Here you can override data set attributes. When overriding attributes, make sure you update the Override suggested clone attributes with a Y.
When enter is pressed, you are returned to the edit panel, and a message containing copy information is displayed, see Figure 4-10 on page 100.
99
8093ch16.fm
From the EDIT panel, the CLONE 2 command is entered to clone the second concatenated library, DDT0001.PDS2.JCL, see Figure 4-12 on page 101.
100
8093ch16.fm
When enter is pressed, the CLONING Data Set panel is displayed, using the attributes of DDT0001.PDS2.JCL, see Figure 4-13. When overriding attributes, make sure you update the Override suggested clone attributes with a Y.
When enter is pressed, the CLONE is completed, and a confirmation message, as shown in Figure 4-14 on page 102 is displayed.
101
8093ch16.fm
Issuing the OLCL command without any parameters yields the Object List panel shown in Figure 4-16. As you can see by the note that specifying a .CLONE suffix is not required.
When DDT0001 is entered in the DSNAME field, a list of DDT0001 CLONED datasets are shown, as displayed in Figure 4-17 on page 103.
102
8093ch16.fm
103
8093ch16.fm
104
8093ch03.fm
Chapter 5.
105
8093ch03.fm
The previous release of IPT displayed the available features in a popup window. The advantage was that one could continue work on the MSL while the list of available commands were displayed (see Figure 5-2).
106
8093ch03.fm
Figure 5-2 MSL ASSIST display for IPT earlier version 6.1
However, in release 7.1 there is so much more functionality available that it now displays as full screen (see Figure 5-3).
Figure 5-3 MSL ASSIST display for IPT latest version 7.1
107
8093ch03.fm
Additional information for an individual command can be retrieved by entering one of the IPT MSL main commands or line commands. In Figure 5-4 additional assistance is requested with the DEFault command.
The Global Find command is only for use with MSLs. It is used to find all occurrences of the specified data in a PDS or PDSE. The Global Find command can search for text, case-sensitive, hexadecimal, or DBCS strings with Link, Find, or Change commands.
108
8093ch03.fm
In the following sections, the MSL FINDTEXT and Global Find and Change commands are described.
109
8093ch03.fm
Figure 5-7 Results of choosing option G from the Setting IBMIPT Defaults panel
110
8093ch03.fm
LINK===>Y/N (Process each command only if previous command succeeds?) PRINT===>Y/N (Generate listing of each member changed and saved?) A setting of Y allows IPT to present a prompt to confirm the printing of members that were altered as the result of a CHANGE command. This feature serves as an audit trail of changed members in a dataset. EXCLUDE===> Y/N (Exclude failing members from selection list?) When this option is set to Y, all members in your MSL, which did not contain a match to the FIND or CHANGE argument, are automatically excluded When set to N, it shows all of the members in your MSL, even if they did not contain a match to the FIND or CHANGE argument. You can easily change the settings for Global commands when viewing a list of members from a dataset by issuing the G or Global command. Figure 5-8 depicts the Global EDIT command panel.
111
8093ch03.fm
When you use the Global Edit Command panel, which is described in Option 2, ISPF functions are used to perform the Global Find and Change: Global Find and Change commands are case-insensitive, unless otherwise specified. Global Find and Change commands can be case sensitive: You can use FIND CSample to locate text in members that contain the word Sample. The C prefix ensures that the case matches during the search operation. A command, such as Change c'SAMPLE' c'Sample' all, changes all syntax of SAMPLE to Sample. Commands can be linked together. Global Find and Change commands can be hex sensitive. To locate or change a series of characters in hex: G F x81 C x81 x82
Global Find and Change commands can include a column limit by specifying the start and end columns in the ISET Global setting.
Figure 5-10 shows the results, with the Global options changed to AUTOMATIC=Y, EXCLUDE=Y, and PROMPT AFTER=50.
112
8093ch03.fm
Figure 5-10 Results of a Global Find command with AUTOMATIC=Y, EXCLUDE=Y, and PROMPT=50
Figure 5-10 on page 113 shows that IPT has processed 50 of the members in the dataset. The summary panel indicates the status of each member G:FAIL or +G:OK. You can continue the search in order to process the remaining members simply by pressing Enter. Notice that the upper lines of the display are a summary of the processing that has taken place. Just beneath the summary line, the screen provides the option to alter the current settings for the STOP AFTER and PROMPT AFTER global options. Figure 5-11 shows the result of the Global Find command with EXCLUDE on.
If AUTOMATIC is set to N, the Find or Change command stops on each member where your global argument is found. To advance to the next member that meets the global argument, you must press the END key to get out of the member that is displayed. Figure 5-12 shows the first results of the Global Find command G F IEBCOPY with AUTOMATIC set to N and EXCLUDE set to N.
113
8093ch03.fm
Figure 5-12 Results of the Global Find command with AUTOMATIC=N and EXCLUDE=N
For more information: Refer to Chapter 15.5, Settings for GLOBAL FINDTEXT on page 363. Setting the LINK field to Y allows you to link multiple find or change commands when you are working in an MSL. To specify the commands or macros which need to be executed, enter the command GLOBAL or G without operands. On the resulting panel, you can specify GLOBAL EDIT options and any number of ISPF EDIT commands using the EDIT facility in the lower half of the display. If the LINK field is set to N, all of the augments are processed without regard to the success or failure of the previous argument. Figure 5-13 on page 114 shows an example of issuing the G command against the MSL, specifying two FIND commands and one CHANGE command in the GLOBAL EDIT panel.
Figure 5-13 Global Find example using the Global Edit commands panel
If you do not use the word ALL, and the member contains the find or change argument more than one time, IPT only changes the first reference that it finds. Figure 5-14 depicts the final results of a Global Find with the EXCLUDE option set to N. You can either page through your MSL to see all of the members that met the Global Find argument, or you can enter either the SORT TEXT command or the SORT NOTE command.
114
8093ch03.fm
The resulting member list (regardless of the EXCLUDE setting) is sorted by the text of the first found row in each member.
Figure 5-15 on page 115 shows the results of the same Global Find statement with the EXCLUDE option set to Y. Note the informational message showing that of the 68 members that IPT processed, 66 members are hidden members. With EXCLUDE=Y, IPT displays only the members that contained the search argument.
The FLIP command reveals the hidden members, as shown in Figure 5-16. This command acts as a toggle between the excluded members and the members that met the criteria of the command that was issued.
115
8093ch03.fm
Figure 5-18 shows the results of the FT command. IPT uses the RENAME column to provide the message -TXT FND next to the member containing the found item. At the same time, IPT displays the beginning of the member to provide the developer with a context as to where the object was found.
You can limit the number of members that you want IPT to process by setting the PROMPT AFTER option of the GLOBAL processing options. You can set these options using the ISET command or by typing a G when you are in an MSL, which is described in 5.5, Changing the global IPT defaults for your session on page 109. Tip: Entering the FINDTEXT (FT) command without an argument brings up the Global Options panel, allowing you to change the Global Options for the FT command.
116
8093ch03.fm
You can use the RFIND (repeat find) command to advance to the next occurrence of the FINDTEXT string. If you enter SORT TEXT or SORT NOTE, the members that contained the FINDTEXT string are sorted to the top of the member list. When you view or edit a member that contains the data string, the FIND command and the object of the find is automatically displayed on the command line. Figure 5-19 shows a selected member with the FINDTEXT string on the command line.
Figure 5-19 Selected member that contains the FINDTEXT string on the command line
In the example in Figure 5-20, the FINDTEXT command is combined with positioning keywords to identify the starting point of the search and the direction for the subsequent find. The FT STATEMENT FIRST command identifies the first occurrence of the text, whereas the FT STATEMENT ALL identifies all of the members that contain the text STATEMENT.
Figure 5-21 The text is not found within the selected range for prompting
In Figure 5-22 on page 118, the text string STATEMENT was found in several members, which is indicated by TXT FND.
117
8093ch03.fm
Use the SORT command (see Figure 5-23) on the RENAME column to group all the changes together .
118
8093ch03.fm
An alternative for this scenario is using the GLOBAL command. In Figure 5-25 the use of the GLOBAL FIND is shown to achieve a similar result.
In Figure 5-26 on page 120 command execution is halted by the prompt level. Press ENTER to continue the FINDs.
119
8093ch03.fm
In Figure 5-28 on page 120 the FT STATEMENT LAST command identifies the last member in the partitioned dataset (PDS) that contains the text string STATEMENT.
120
8093ch03.fm
The result of the FT STATEMENT LAST command positions the screen at the last member where the search found the text STATEMENT. In Figure 5-29, we did not issue the RFIND command to find the next reference to STATEMENT. Because we used the FT LAST command, the search will start from the bottom to the top.
Figure 5-29 Result of FT STATEMENT LAST command and entering the RFIND command
In Figure 5-30 on page 121, the RFIND command has found the next reference to STATEMENT. Because the search starts at the last reference, the search continues toward the top of the dataset.
121
8093ch03.fm
8093ch03.fm
Using an IPT Object List, you can specify the same library structure as: =project group1 ... group4 type Figure 5-32 shows how you can define an ISPF library using an IPT Object List.
ISPF libraries can be PDS or PDSE libraries. They might also be IBM Software Configuration and Library Manager (SCLM) libraries. demonstrates the use of SCLM with the IPT MSLs. ISPF libraries provide an easy way to separate the changes that you make from the production library. If a member is modified, a version is saved in library1 or group1. Consequently, if the original member is not in group1, the original version is not lost. There are several IPT commands that are designed to expedite your work when you use ISPF libraries or SCLM libraries: PROject: Switch to another project qualifier LIB: Add, remove, or switch to another library TYPE: Switch to another library type WHERE or the H line command: Shows which libraries contain the member ISPF libraries with IPT use an Object List Concatenated dataset as shown in Figure 5-33.
123
8093ch03.fm
Important: In Figure 5-33, the ISPF value is in the Class field. The equal (=) sign denotes an ISPF library in the OLIST. In Figure 5-34 on page 124, DNET187.TEST.COPYLIB identifies the group1 library. The LIB2=PROD identifies the second library in the concatenation. To switch from SOURCE to JCL libraries, use the TYPE command.
As seen in Figure 5-35, the ISPF library type of JCL is edited. The LIB command adds or removes libraries. Enter A LIB if you want to see the syntax of the LIB command. The LIB 3 BACKUP command is used to add the BACKUP library as the third library.
124
8093ch03.fm
Figure 5-35 Results of TYPE JCL Command and then executing the lib 3 backup command
Now, there are three libraries concatenated: DNET187.TEST.JCL DNET187.PROD.JCL DNET187.BACKUP.JCL In Figure 5-36, the lib 3 - command is used to remove the backup library that was added.
Figure 5-36 Results of adding lib 3, and then executing the lib 3 command to remove the Backup library
125
8093ch03.fm
In Figure 5-37 , lib 3 has been deleted, and the Where command or h is used to identify the libraries in which a member has been found in the concatenation.
Figure 5-37 Lib 3 removed and the execution of the WHERE command
In Figure 5-38, the BAPAAPI member resides in libraries 1 and 2 or TEST.JCL and PROD.JCL, which are depicted in the RENAME column.
The DSN command (see Figure 5-39) switches the MSL to another dataset. If the DSN command is entered without parameters, it invokes Option 2 of IPT.
The DSN command allows you to change the library name or the invocation parameters that might not be available using the MSL; for example, you can enter an EDIT/VIEW initial Macro parameter value or a profile name. LOAD is entered for the library TYPE in Figure 5-40 on page 127.
126
8093ch03.fm
Hint: You can navigate directly to another dataset using the DSN command with parameters. For example, the command DSN CUSTFILE.KSDS navigates directly to the user ID.CUSTFILE.KSDS file from a MSL. Enter L to the left of member ADSTAT to display the load module information for that member as shown in Figure 5-41 on page 127
127
8093ch03.fm
Figure 5-43 shows the display after using PF11 to view the right part of the report, which is the list of the Load Module Members.
128
8093ch03.fm
HOTBAR In this section the location and use of each of the listed fields is described. First, an appropriate MSL is selected. Next a general temporary OLIST is performed against the ADLAB datasets, followed by an EDIT on the JCL library (Figure 5-44).
The action field changes from EDIT to BROWSE to VIEW when using the Point-and-Shoot function. This action equates to using the DEFAULT command. Figure 5-45 shows the EDIT BROWSE VIEW Point-and-Shoot field. Placing the cursor on the field and double-clicking will toggle through the modes EDIT BROWSE VIEW EDIT.
129
8093ch03.fm
Figure 5-47 on page 130 shows the Dataset history Point-and-Shoot field.
In Figure 5-48, using the Dataset history Point-and-Shoot field results in a dynamic Object List of the most recently used datasets.
IPT automatically retains the last 100 datasets that you have used, which are presented when you request the history datasets by using the Point-and-Shoot action. 130
Improving Productivity with ISPF Productivity Tool V7.1
8093ch03.fm
The HOTBAR fields (see Figure 5-49) may all be point and shoot fields of course, should you have one selected. These are covered in more detail in Figure 5-49 .
Figure 5-49 HOTBAR fields may all be point and shoot fields
The example in Figure 5-50 on page 131 shows the results of the FILTER C* command, executed from the MSL, which reduced the number of members shown.
You can point-and-shoot using any of the ISPF STATS column headings to sort the members. The sort by an ISPF STATS column only sorts entries that contain values for the column heading. Date fields (such as CREATED) are sorted by default in descending order of creation date. In Figure 5-51, the members are shown sorted by the CREATED date. If you point and shoot the CREATED title again, the list will be sorted in the opposite order (i.e. ascending) of creation date. In both cases entries with no values in the column are pushed to the bottom of the displayed member list.
131
8093ch03.fm
As shown in Figure 5-54 on page 133, by updating the MSL HOTBAR, you can enter up to eight MSL commands in the HOTBAR fields.
132
8093ch03.fm
You can use any valid MSL command for a HOTBAR command and then invoke the HOTBAR commands using Point-and-Shoot functions. The MSL panel permanently retains your HOTBAR commands. Press ENTER to save them. Figure 5-55 shows the HOTBAR fields filled with MSL commands.
133
8093ch03.fm
5.12.1 IPT support for PDF libraries: automated compress and directory expansion
Even though most z/OS mainframes support PDSE libraries, many people still use PDS libraries. If the PDS you use requires maintenance, IPT can guide you through the required steps to correct the problem. In this example, the Save command attempts to save a new member EPPDIR as shown in Figure 5-56.
The DNET187.ADLAB.JCL PDS has no directory blocks available, and saving the member fails as shown in the IPT Intercepts Directory Stow error in Figure 5-57 on page 134.
To expand the directory, press Enter to continue. IPT expands the directory and successfully allows the member to be created as shown in Figure 5-58 .
134
8093ch03.fm
IPT expanded the directory and saved the member EPPDIR, which is a significant improvement over ISPF, which requires steps similar to the following: 1. Split the panel. 2. Navigate to ISPF option 3.2. 3. View the DNET187.ADLAB.JCL.CNTL1. 4. Exit. 5. Allocate a similar library with additional directory blocks as DNE187.ADLAB.JCL.CNTL1.NEW. 6. Navigate to ISPF option 3.3. 7. Copy all members from DNET187.ADLAB.JCL.CNTL1 to the newly allocated library. 8. Swap to the original library. 9. Save the new library with the line command C9999 to save the member in the new PDS. 10.Exit from option 2. 11.Delete the original PDS library. 12.Rename the new PDS library to DNET187.ADLAB.JCL.CNTL1.
135
8093ch03.fm
In Figure 5-60 on page 136, which is the confirmation to empty PDS panel, you have to change the Approval field to Y and press Enter to confirm that all members in the PDS will be deleted.
Figure 5-61 shows that the library has been successfully compressed.
136
8093ch03.fm
In Figure 5-63, the FILTER CUST* command is shown entered to select only the members that begin with CUST.
Figure 5-64 shows entry of the move * command, which will move only the two members that resulted from the FILTER command.
137
8093ch03.fm
You will be prompted for a target library to receive the members that are being moved. In Figure 5-65 on page 138, DNET187.PROD.COPYLIB is shown entered in the dataset name field to identify the target library.
Important: In Figure 5-65 , the REPLACE like-named library members selection of O allows the MOVE operation to occur only if the target member is older than the source member, which minimizes the risk of accidentally destroying your data. Figure 5-66 depicts all of the members prior to the MOVE operation, which gives you an opportunity to rename members.
On pressing Enter, all of these members are copied with the original member name.
138
8093ch03.fm
Figure 5-67 shows the result of pressing Enter. No members remain in the source library, as they were moved to the target library, and the remaining members in the library are hidden by a filter.
Figure 5-68 on page 139 shows the edit of DNET187.PROD.COPYLIB and the two members that were moved that begin with CUST.
139
8093ch03.fm
As shown in the IPT Option 1 or 2, the Edit/Browse/View panel provides a field that is labelled Do TAILOR (Figure 5-69 on page 140).
Entering d allows you to define commands. Figure 5-70 shows the command FILTER B*, which retains only members starting with B. The SORT CHA command sorts the remaining members by descending date and time. You can update the Automatic preview field and the Replace existing members field on this panel.
140
8093ch03.fm
As shown in Figure 5-72, the Do TAILOR command, which executes the tailoring, is automatically set to Y. Press Enter to browse the MSL using the Tailor commands.
Figure 5-73 shows a different library as the previous example did not demonstrate the CHANGED column sequence. Here again only members starting with B are displayed and these again are sorted by the changed column.
141
8093ch03.fm
Members are listed in the Changed column in descending date and time sequence. There are 106 hidden members that do not meet the Tailor criteria (106 HIDDEN). You can invoke the TAILOR command directly from the MSL panel that is shown in Figure 5-73, for example, the command TAILOR? invokes the MSL TAILOR COMMAND panel. The command TAILOR executes the currently defined commands from the MSL.
142
8093ch03.fm
Figure 5-75 shows the prompt that is displayed to confirm the deletion.
Each members deletion will need to be confirmed. Figure 5-76 on page 143 shows an example of the prompt.
143
8093ch03.fm
Figure 5-77 shows the results of the command. The members were deleted, but they are available to be restored using IPT until the PDS is compressed.
Use the MAPpds command to display all members including deleted members. You can View, Browse, and Restore any deleted member. In Figure 5-78 , which shows the Execute Map Command, the map command is used to display all members, including the deleted members.
Figure 5-79 on page 145 shows the results of the Map or MAPpds command. The deleted members are identified in the Synonym column. You can use the Point-and-Shoot feature on the Synonym column to group all of the deleted members. You can use the B (browse), E (edit), and V (view) line commands to view the contents of all members.
144
8093ch03.fm
The Assist Restore command displays the assist information for the Restore command. Figure 5-80, shows entering the a r command .
The restore command allows you to restore one or more deleted members in a PDS that has not been compressed. If you specify a member name in the name column or on the line command for the restore, the specified member name must be unique. The default member name is the synonym.
145
8093ch03.fm
Figure 5-81 is the result of the a r command and shows the information that is provided by IPT for the syntax of the Restore command.
These examples demonstrate the Restore command: R 5 OLDONE: Restores deleted member number 5 as the member name OLDONE. R *: Restores all deleted members. This command renames all of the deleted members to Synonym names. R 7-9: Restores deleted member entries: 7, 8, and 9. Figure 5-82 shows the Restore command, which is used to restore one deleted member to a member named BCCOB.
Figure 5-83 on page 147 shows the restore results for a deleted member to member name BCCOB.
146
8093ch03.fm
147
8093ch03.fm
148
8093ch21.fm
Chapter 6.
149
8093ch21.fm
6.1 Overview
Some of the available filtering commands are FILTER, UNFILTER, HIDE, EXCLUDE, FLIP and RESET. Many commands allow a member selection list to be quickly manipulated by member name, field name or field pattern. A member name pattern can consist of wildcard characters % and *. Field names consist of member selection list column headings. Field pattern values for the corresponding column heading fields consists of wildcard characters % and *. Even greater filter granularity is possible with operators such as equal, not equal, contain, does not contain, begin with, end with, etc. In lieu of filtering, the LOCATE command can be a useful option for quickly finding members utilizing many of the filtering principles. Patterns can be used to execute line commands such as COPY and DELETE against select displayed members.
6.2 FILTER
We begin with filtering by examining command assistance for FILTER. Enter ASSIST FILTER or shortcut A FIL as shown in Figure 6-1 on page 150.
The MSL command assistance for FILTER provides syntax, numerous examples and usage notes as shown in Figure 6-2 on page 151.
150
8093ch21.fm
Returning to the member selection list we filter for member names that contain PAY in any character position of their name by issuing FILTER *PAY* or shortcut FIL *PAY* as shown in Figure 6-3 on page 151.
151
8093ch21.fm
Our previously displayed list of 15 members in Figure 6-3 has been reduced to 6 filter conforming members in Figure 6-4. The 9 non-conforming members are hidden, but can be quickly revealed with the FLIP command as shown in Figure 6-4. The member selection list *FILTER* status is present indicating active filters.
Figure 6-4 Filtered list showing members with PAY in their name
Be aware the FLIP command deactivates active filters as indicated by the absence of the *FILTER* status. The filtered list of members containing *PAY* is now hidden as shown in Figure 6-5 on page 152.
Figure 6-5 Flipped list (members without PAY in their name are displayed)
152
8093ch21.fm
Had we not deactivated the filter by issuing the FLIP command, it would be possible to specify additional filters. Continuing with our example before the FLIP, we specify another filter to retain members containing the $ character in the fourth character position of their name. HIDE %%%$* .NE or shortcut HID %%%$* .N as shown in Figure 6-6 on page 153.
Based on our additional filter criteria 12 non-conforming members are now hidden. More complex filters are possible, for example, we will filter for members with a modification level greater than 0 and last modified by user ID TECH001. The commands are FILTER USERID TECH001 { MM 0 .LT or shortcut FIL ID TECH001 { MM 0 .LT as shown in Figure 6-7 on page 153.
Based on our additional filter criteria 14 non-conforming members are now hidden as shown in Figure 6-8. It is possible to de-stack filtered member selections list on a last-in-first-order basis using the UNFILTER command or shortcut UNF. Before de-stacking we will display the active filters with the UNFILTER command using keyword ? as shown in Figure 6-8 on page 153.
153
8093ch21.fm
The active filters are displayed as shown in Figure 6-9 on page 154.
Returning to the member selection list and issuing UNFILTER will remove the last filter based on user ID and member modification level as shown in Figure 6-10 on page 154.
The remaining active filters are displayed prior to returning to the updated member selection list as shown in Figure 6-11 on page 154.
154
8093ch21.fm
It is possible to remove all filters at once using the UNFILTER command with keyword ALL. FILTER without keywords and RESET FILTER or shortcut RES F will also remove all filters. Any excluded members will remain hidden as shown in Figure 6-12 on page 155.
We will filter all members modified in the last month (31 days) by issuing FILTER CHANGE MONTH or shortcut FIL CHA M as shown in Figure 6-14 on page 156.
155
8093ch21.fm
The results, as shown in Figure 6-15, are two members modified in the last month. Issue the FILTER command to remove all active filters for the next example as shown in Figure 6-15.
156
8093ch21.fm
Next, filter all members created since August 23, 2011, by issuing FILTER CREATED 11/08/23 <= or shortcut FIL CRE 11/08/23 <= as shown in Figure 6-16 on page 157.
The results, shown in Figure 6-17, include five members created since August 23, 2011. Issue command UNF ALL to remove all active filters for the next example.
157
8093ch21.fm
Hide all members updated in the last 15 days by issuing HIDE CHANGED -15 or shortcut HID CHA -15 as shown in Figure 6-18 on page 158.
The results, shown in Figure 6-19, include fourteen members not updated in the last 15 days. Issue command RES F to remove all active filters for the next example.
158
8093ch21.fm
Filter all members updated by user IDs ending in 1 during the last quarter by issuing FILTER USERID 1 .EW CHA Q or shortcut FIL ID 1 .EW CHA Q as shown in Figure 6-20 on page 159.
The results, shown in Figure 6-21, are one member updated by a user ID ending in 1 during the last quarter.
159
8093ch21.fm
TECH001.LIB2 is specified as the target data set name, and N is specified in the REPLACE like-named members field, as shown in Figure 6-23 on page 160.
Figure 6-23 TECH001.LIB2 is specified in the DATA SET NAME field, N is specified in the REPLACE field
The COPY GROUP panel is displayed, listing the members to be copied. This panel allows you to indicate new member names in the RENAME column. You can enter new names in this column for any or all of the members, or to leave it blank to use the same member name. Figure 6-24 on page 161 shows this panel. In our example, the RENAME column is left blank, so no members will be renamed when we press enter.
160
8093ch21.fm
The COPY command completes, noting the members that were copied, and those that were not replaced due to the N specification on the REPLACE like-named members field, see Figure 6-25 on page 161.
A subset of the members can be copied using patterns along with the COPY command. In the next example, only members that begin with an "A" are copied. This is done by using the pattern A*, as shown in Figure 6-26 on page 162. A member name pattern can consist of wildcard characters "%" and "*".
161
8093ch21.fm
After entering the target dataset name in the prompt panel, the COPY GROUP panel is displayed showing the members to be copied. Only those members that begin with A will be copied, as shown in Figure 6-27.
Figure 6-27 The COPY GROUP panel showing only members that match the pattern specified
The MSL is redisplayed, with copy information listed in the RENAME field, as shown in Figure 6-28 on page 163.
162
8093ch21.fm
The next example demonstrates the use of the "%" pattern character. The percent sign (%) represents one non-blank character. The COPY PAY%%% command is issued to copy all member that begin with PAY and consist of 6 characters to the target data set. The "%%%" represents 3 non-blank characters, the command is shown in Figure 6-29.
After entering the target dataset name in the prompt panel, the COPY GROUP panel is displayed showing the members to be copied. Only those member names that are 6 characters long and begin with PAY will be copied, as shown in Figure 6-30 on page 164.
163
8093ch21.fm
Figure 6-30 The COPY GROUP panel showing only members that match the pattern specified
In the next example, members will be copied between concatenated datasets. Two data sets, TECH001.LIB1.PDS and TECH001.LIB2.PDS, are specified on the EDIT - ENTRY PANEL screen as shown in Figure 6-31.
The data sets will be concatenated during the edit session. TECH001.LIB1.PDS will be LIB1 and TECH001.LIB2.PDS will be LIB2 as shown in Figure 6-32 on page 165.
164
8093ch21.fm
To copy only the members that contain a dollar sign ($) from LIB1 to LIB2, the command COPY *$* 2 is executed as shown in Figure 6-33 on page 165.
Only the members matching the patter *$* will be copied to the target data set (TECH001.LIB2.PDS). The target data set name specification panel is skipped because the target data set name has already been specified in the COPY command. The qualifying members are presented in the COPY GROUP panel, as shown in Figure 6-34 on page 166
165
8093ch21.fm
Figure 6-34 The COPY GROUP panel with the qualifying members
Patterns are also available for use with the MOVE command. Upon successful completion of a MOVE command, members are moved to the target data set. In Figure 6-35 the MOVE *ONE command is specified.
In the next panel (not shown), TECH001.LIB2 is specified as the target data set. The members that match the pattern are moved from TECH001.LIB to the data set TECH001.LIB2. The resulting member lists for these datasets are shown in Figure 6-36 on page 167.
166
8093ch21.fm
Patterns are also available for use with the DELETE command. In Figure 6-37 the DELETE P* command is specified.
A list of the matching members is displayed. Figure 6-38 on page 168 shows the DELETE CONFIRMATION panel showing the members to be deleted. A confirmation panel for each member will be presented by specifying "Y" in the "Do you want a confirmation panel for each member?" field. Changing this to "N" will delete all members without a prompt. Pressing PF3, will end the command without deleting any members.
167
8093ch21.fm
To bypass the confirmation panel entirely, specify NOPROMPT on the DELETE command as shown in Figure 6-39. When enter is pressed, all members that begin with P and contain the letter N will be deleted.
168
8093ch21.fm
Two members in our example match the P*N* pattern and will be deleted, PAYONE and PAY$ONE. These members are deleted without any prompting, and the panel in Figure 6-40 on page 169 is presented, with "2 members deleted" displayed in the message field.
Figure 6-40 The MSL after the DELETE with the NOPROMPT option specified
169
8093ch21.fm
170
8093ch19.fm
Chapter 7.
171
8093ch19.fm
Keep in mind that TAG identifiers persist only for the duration of the current MSL. Once you close the MSL, the identifiers cease to exist. MSL begins a member list display with the RENAME field cleared. Note: To create permanent member related information see the MSL TITLE command and related TITLE commands in Chapter 8, MSL TITLE and related commands on page 213. In the remaining sections of this chapter we describe and give examples of the TAG command and its associated commands.
172
8093ch19.fm
Figure 7-2 on page 173 displays the syntax of the TAG command resulting from the ASSIST command.
As you can see from the syntax description, the TAG command takes a member name, or member name pattern, as its primary input, followed by your chosen one to seven character identifier or label. After execution of the TAG command, the RENAME field of the members that match the pattern contain will contain the chosen identifier preceded by a +. The + prefixed to a
Chapter 7. Tagging partitioned members
173
8093ch19.fm
non-blank label in the RENAME field of a member indicates a tag produced by the TAG command. For example, say you want to tag all the members that start with the string AM with the label TEST. Figure 7-3 on page 174, shows the command TAG AM* TEST on the command line.
Figure 7-4 on page 174 shows the results of the TAG AM* TEST command.
Notice that the TAG command repositions the MSL to the first member that matches. The RENAME field of each matching member now contains the +TEST tag label while the RENAME fields of members not matching contain no label. Using the FILTER keyword, the TAG command results in an MSL with only the member names that match. Figure Figure 7-5 on page 175 shows the same command with the FILTER parameter added, using the shortened F.
174
8093ch19.fm
Figure 7-6 on page 175 displays the results. With the FILTER keyword, the MSL displays only the member names that match the member pattern on the TAG command. FILTER hides the unmatched members, as you can see by the HIDDEN message the FILTER option resulted in 446 hidden members. The FILTER keyword causes the TAG command to execute the MSL command FILTER TAG label after tagging the matching members. In other words, to accomplish the same effect as TAG AM* TEST F, enter TAG AM* TEST followed by FILTER TAG TEST.
To display the hidden members along with the member shown in the current MSL display, enter the RESET command with no operands. To display only the hidden members exclusive from the current MSL display, enter the FLIP command. Consult the MSL ASSIST for RESET and FLIP for more details about these commands. Figure 7-7 on page 176 shows the MSL after executing a RESET command.
175
8093ch19.fm
The tagged members from the TAG command remain tagged as can be seen by the bottom member in the list, AMATERSE. The short form of the TAG command, +, acts as both a primary command and a line command. For example, as a primary command, + AM* TEST achieves the same result as TAG AM* TEST. To use + as a line command, enter + on the line next to the desired member and enter the tag label in the RENAME field of that member. Figure 7-8 on page 176 shows several TAG line commands.
Figure 7-9 on page 177 displays the results from executing the line commands. The command positions the MSL at the first member selected for tagging.
176
8093ch19.fm
A TAG command entered with no identifier or label removes any existing tag from the members that match the member pattern. TAG * removes tags from all members. Figure 7-10 on page 177 demonstrates using TAG * on several members that have tags.
As shown in Figure 7-11 on page 178, the command removes the tag labels from the RENAME field and repositions the MSL to the top of the member list.
177
8093ch19.fm
Figure 7-11 Labels removed from RENAME field and MSL repositioned to top
Figure 7-13 on page 179 displays a library with three levels DEV, TEST and REL with a few members tagged with the label OK. We use the COPYTAG command to make these tagged members available at the next level, TEST. We use the short form of the of the command, C+. The 2 specified as the target indicates that we want to copy to the TEST level in this data set concatenation, where L2=TEST and L3=REL.
178
8093ch19.fm
After entering the command, COPYTAG presents us with a copy confirmation panel which lists the members and provides options to retain the original member name, provide new names, or to cancel the copy action. Figure 7-14 on page 179 shows the COPYTAG confirmation panel where we have chosen to rename one member and use the original names for the remaining members.
Figure 7-15 on page 179 displays the results from the command. A status message in the upper right corner indicates COPY successful and then the RENAME field indicates the status of +COPIED for each member. The COPYTAG command overlays the RENAME field with feedback information for each member in the form of a new tag identifier. As we see here, a successful copy operation results in the new tag +COPIED.
Later in this chapter we show how other tag commands (SORTTAG, for example) take advantage of tagged feedback.
179
8093ch19.fm
The Status feedback from tag commands that perform operations on members, in some cases, may take the form of a tag identifier. In addition to copying members to another level in the data set concatenation, COPYTAG also copies members to other partitioned or sequential data sets. When the target parameter is omitted, COPYTAG presents a copy prompting panel where you enter a target data set name. Figure 7-16 on page 180 displays four members with a tag of NEW and the COPYTAG command to copy the members using a prompting panel.
After we enter the command the prompting panel appears. Figure 7-17 on page 180 shows the prompting panel.
The prompting panel allows us to enter a partitioned or sequential data set name, or go to a history list to select the target data set. Here we enter AMW000.NEW.JCL as the target data set name. For more information about using a history list and @H enter the IPTHELP command and review the section entitled Data Set History Facility. After pressing enter, COPYTAG displays the copy confirmation panel, as shown previously in figure Figure 7-14 on page 179. Confirming the copy operation, COPYTAG proceeds with the copy operation as in the previous example, with results similar to those shown in Figure 7-15 on page 179. We reiterate here that when the COPYTAG operation completes, COPYTAG replaces the original tag identifier, NEW, with the copy status feedback in the form of a tag identifier.
180
8093ch19.fm
In Figure 7-19 on page 181 we enter the DELETTAG command, D+, to delete several tagged members in the MSL; some members marked with NEW and some with OLD.
Notice that we entered the command without specifying a tag label. As displayed by the Delete Confirmation screen in Figure 7-20 on page 181, this results in selecting all tagged members, equivalent to specifying a tag label of asterisk.
The Delete Confirmation screen provides an option to confirm deletion for each member, Y, or to bypass individual member delete confirmation, N. We choose here to override the default Y option, thereby bypassing member delete confirmation. Figure 7-21 on page 182 gives us the results of the DELETTAG command.
181
8093ch19.fm
The message in the upper right indicates DELETTAG deleted six members. However, you can see that three of our six member still appear in the MSL list with their tag identifiers. Observe that the MSL consists of a library concatenation, with L1=DEV, L2=TEST and L3=REL. On closer inspection we see that the ASM member resides in L3 (the REL level), and the other two members in L2 (the TEST level). Looking back at Figure 7-19 on page 181, the six members for which we requested deletion all resided in L1 (the DEV level). Since the tag identifiers remain, repeating the DELETTAG command deletes these members from the next level library where they now reside. Figure 7-22 on page 182 and Figure 7-23 on page 182 show the command and the results, respectively.
The message in the upper right indicates three members deleted. If any members deleted from L2 also existed at L3, the MSL would have positioned the list at those members, as it did in Figure 7-21 on page 182 indicating members deleted from L1 still existed at L2 and L3.
182
8093ch19.fm
Tip: FILTTAG executes a special case of the the more general FILTER command i.e. FILTER TAG tagvalue tagrel column value relation. In Figure 7-25 on page 183, we execute a simple FILTTAG command where the MSL contains several members with tag values (more members have tag values than shown).
Figure 7-26 on page 184 shows the results of the command, displaying 20 members with tags and 1159 hidden members. We see that entering FILTTAG with no operands results in selecting all members with tags, equivalent to entering FILTTAG *.
183
8093ch19.fm
Figure 7-26 All members with tags selected by FILTTAG entered with no operands
As mentioned, FILTTAG implements a special case of the FILTER command. We give one more example of FILTTAG to demonstrate the use of additional filter criteria. We begin with the example as shown previously in Figure 7-25 on page 183, but instead we enter the command FIL+ * lib 3 .eq, as shown in Figure 7-27 on page 184 .
Figure 7-27 FILTTAG command to select all tagged members with LIB column equal 3
This command selects all members in the MSL that have a tag identifier and, in addition, have the value 3 in the LIB column. In other words, select all tagged members that reside in the third library concatenation. Figure 7-28 on page 184 displays the resulting list.
Tip: From MSL, enter A FILTER to read about filter criteria using column names and values and how to specify relations.
184
8093ch19.fm
FINDTAG takes an unquoted 1-7 character label or pattern and repositions the MSL at the first member that has a matching tag identifier. Or, FINDTAG takes a quoted string as input and searches for the first tagged member whose file content contains the string. In Figure 7-30 on page 185 we search for the first member with the tag identifier TEST. Notice that before entering the command the display shows the MSL positioned at the first member and a few members tagged but none with the tag TEST.
As shown in Figure 7-31 on page 186, after executing the command, MSL repositions the list at the first member with a tag identifier starting with the string TEST, the member DB2LOAD with tag TEST1, in this case. The short message in the upper right indicates Tag found. Also notice that MSL displays the first few lines of the member DB2LOAD.
185
8093ch19.fm
The other FINDTAG option, using a quoted string parameter, finds the first tagged member (any tag will do) that contains the quoted string in its file content. So, for example, we can enter F+ 'TEST'; i.e. find the first tagged member that contains the string 'TEST'. As it so happens none of our tagged members contain the string 'TEST', as shown in Figure 7-32 on page 186 with the message TEXT NOT FOUND.
What does a successful FINDTAG command using a quoted string look like? In Figure 7-33 on page 186, we enter the command FINDTAG 'db2cr8'.
We have our results in Figure 7-34 on page 187 where you see the MSL positioned at member DB2NNNN4 with the corresponding message in the upper right indicating Text found in DB2NNNN4. Also note that the command overlays the tag identifier with the feedback status of +TXT-FND in the format of a tag identifier. Again, the command displays the first few lines of the member.
186
8093ch19.fm
Now, if you carefully read the lines displayed from the member, you will find the text string, 'db2cr8'. But if you use the BROWSE, VIEW, or EDIT line command, MSL opens the file and primes the command line with a Find command to locate the string within the file. Figure 7-35 on page 187 demonstrates the BROWSE line command (note the b to the left of the member name DB2NNNN4).
Figure 7-35 Browse line command to open file to find text string
Figure 7-36 on page 187 shows the file in BROWSE mode with the generated FIND command. Pressing enter locates the string with the file.
As we mentioned, the string option of the FINDTAG command uses a special case of the FINDTXTG command. Figure 7-37 on page 188 shows the syntax of the FINDTXTG command.
187
8093ch19.fm
For example, FINDTAG 'db2cr8' (cf. Figure 7-34 on page 187 above) actually executes FINDTXTG 'db2cr8' FIRST . FINDTXTG provides the additional flexibility of qualifying the search with ALL, NEXT, LAST and PREV options. Since FINDTAG with the string option essentially illustrates how FINDTXTG works using the FIRST option, we give no additional examples of FINDTXTG and encourage you to review the FINDTXTG syntax. We only make one further note that when entered without an operand FINDTXTG executes a GLOBLTAG command, which we discuss in the next section.
The command takes a FIND, CHANGE, or an ISPF EDIT command or macro as an operand. For example, in Figure 7-39 on page 189, we enter the command GLOBLTAG FIND DB9G to search tagged members for the string DB9G.
188
8093ch19.fm
Figure 7-39 GLOBLTAG command to search for string DB9G in tagged members
Figure 7-40 on page 189 shows the results with feedback status of OK for members that contain the string and FAIL for members that do not contain the string.
Using the same tagged member list, in Figure 7-41 on page 189, we enter GLOBLTAG CHANGE DB9G DSNE to change the string DB9G to the string DSNE in any of the tagged members.
Notice in Figure 7-42 on page 190, that instead of executing the command immediately, GLOBLTAG presents a QUICK FIND AND GLOBAL EDIT COMMANDS panel.
189
8093ch19.fm
Since a global change command may affect several member, this panel gives us an opportunity to verify the change requested, modify the the request or cancel the command entirely. Furthermore, we may add other EDIT commands to the list by inserting one or more lines before or after the line containing the change command, using the i (insert) line command. We press END (PF3) to process this CHANGE command and proceed to the Global Execution Confirmation screen shown in figure Figure 7-43 on page 190. Here we have another opportunity to cancel the command execution.
Pressing ENTER to proceed, we have the results of the command in Figure 7-44 on page 190 with status feedback indicating success (OK) or failure (FAIL).
Other EDIT commands or macros used with GLOBLTAG proceed in a similar fashion as the GLOBLTAG CHANGE command. GLOBLTAG entered with no operands presents the QUICK FIND AND GLOBAL EDIT COMMANDS panel (as shown in previously in Figure 7-42 on page 190) from which you enter the desired commands or macros.
190
8093ch19.fm
Tag criteria consists of a tag value and a tag relation. For example, in the command HIDETAG TEST .CO, the tag criteria consists of the tag value TEST, and the tag relation .CO,with the meaning Hide all members whose tag contains the value TEST, and any members without a tag. Tip: For more information on relation operators see the command syntax for the HIDE command; enter A HIDE from an MSL. Figure 7-46 on page 191 shows an MSL with a few members with tag identifiers, some of which contain the string TEST. We enter the command HIDETAG TEST .CO.
Figure 7-46 HIDETAG to exclude members with tag value containing TEST
This command results the exclusion of the two members #BOX and #FTPXJOB and all members without any tag, leaving us with just three members in the list, as shown in Figure 7-47 on page 192.
191
8093ch19.fm
Notice that we have 1177 hidden members. Not shown here, the MSL FLIP command toggles the list to the hidden members. The MSL RESET command removes the HIDETAG exclusions and displays all members. Tip: For more information on the FLIP command enter A FLIP from MSL. For more information on the RESET command enter A RESET from MSL. Entering HIDETAG without any operands excludes all members with tag identifiers, leaving only non-tagged members in the list. In Figure 7-48 on page 192 the MSL displays five members with tags and in this list of 1180 members; no other members besides these five have tag identifiers. We now enter the HIDETAG command with no operands.
Figure 7-49 on page 192 shows the results of the command. The MSL displays 1175 members with 5 hidden members. None of the displayed members have tag values.
192
8093ch19.fm
Figure 7-50 INFOTAG command to display statistics for all tagged members
Starting with the first tagged member, $DCU in figure Figure 7-51 on page 193, INFOTAG displays the statistics information panel for each tagged member. Pressing PF3 ends the current display and brings up the statistics panel for the next tagged member, or if no tagged members remain, ends the command.
The STATSTAG command creates, removes, or updates the statistics information for tagged members. Figure 7-52 on page 194 shows the command syntax.
193
8093ch19.fm
In Figure 7-53 on page 194 we use the short form of STATSTAG, Z+, to remove the statistics from tagged members whose tag value contains the string TEST.
Figure 7-53 Remove statistics from members with tags containing TEST
The STATSTAG command affects the two members, ADRDUMP and ADRREST, where in Figure 7-54 on page 194, the display shows the statistics removed.
We now create new statistics in those same members. In Figure 7-55 on page 195, we enter the command Z+ TEST* CREATE.
194
8093ch19.fm
Figure 7-56 on page 195 shows the members ADRDUMP and ADRREST with new statistics.
To update or change statistics of tagged members, STATSTAG presents the MSL statistics settings panel. The values changed apply to all members selected for update. We enter the STATSTAG change command in Figure 7-57 on page 195.
The command selects members ADRDUMP and ADRREST to change statistics and in Figure 7-58 on page 195 displays the MSL statistics settings panel.
195
8093ch19.fm
The panel displays the fields eligible for modification: VV, MM, CREATED, CHANGED DATE, CHANGED TIME, SIZE, INIT, MOD, and USERID. An equal sign under any field leaves the field unchanged. VV, MM and USERID allow entry of a new value. For the remaining fields, when the field contains a blank value, STATSTAG calculates the new value. For our example in Figure 7-59 on page 196 we provide new values for VV, MM and USERID, and request a new value for CHANGED TIME as indicated by the blank value in that field.
As shown in Figure 7-60 on page 196, for the selected members ADRDUMP and ADRREST, the VV and MM field updated with 02.01, CHANGED TIME updated with 20:28 and USERID updated with AMW010.
196
8093ch19.fm
Note that similar to FINTTAG and FINDTXTG, LOCATTAG also locates tagged members that contain specified string values. In this case, the current sort column plays no role in the operation of the command. Since this string location function is so similar to these other commands, we forego any examples for string location in this section and refer the reader to the examples found in the section on FINDTAG and FINDTXTG commands. Figure 7-63 on page 197 shows partial MSL screen sorted by the default column NAME and the LOCATTAG command to locate a tagged member with a name that starts with A followed by any characters.
Figure 7-63 Locate a tagged member with name matching the pattern A*
197
8093ch19.fm
We omit from the command the column name, NAME, since the command derives the implied column from the current sort column. We also omit the relation operator, .EQ, since an omitted operator defaults to .EQ (i.e. equals). The partial screen in Figure 7-64 on page 198 shows the results with member ABSDUMP with tag TEST located.
By specifying the column name we can locate a tagged member by column values other than the current sort column. In Figure 7-65 on page 198, we enter the command to locate a tagged member with a userid equal to AMW010, though the current MSL sort column remains NAME. The command requires all three operands when an explicit column name is specified.
The command positions the list to the member, ADRREST, with the USERID field equal to AMW010, as we see in Figure 7-66 on page 198.
We demonstrate LOCATTAG's sensitivity to the current sort column with the following example. We first sort the MSL by library number. What happens when the locate request contains operands that conflict with the implied column selection? The LIB column requires a numeric value. In Figure 7-67 on page 199 we enter a LOCATTAG command using criterion more appropriate for the NAME column.
198
8093ch19.fm
Figure 7-67 LOCATTAG with improper criterion for the default column LIB
After pressing enter, the command displays the MSL command assistance panel to inform us that the current command environment requires a numeric value as shown in Figure 7-68 on page 199.
Pressing PF3 returns us to the previous panel where we correct the command, replacing A* with the numeric value 2. Figure 7-69 on page 199 shows the results. The list is repositioned to member ABSDUMP found in library 2.
199
8093ch19.fm
The partial screen in Figure 7-71 on page 200 shows three members with tag identifiers. We enter the command M+ TEST* 2, to move the tagged members that contain the tag value TEST from their current library to library 2 in the current library concatenation.
Figure 7-72 on page 200 indicates we received an error because we attempted to move a member into its own library member #DEF2300 resides in library 2. For this member we might want to RENAME instead.
200
8093ch19.fm
In Figure 7-73 on page 201 we remove the tag from the offending member and execute the command again.
MOVETAG now presents us with a MOVE confirmation screen, as shown in Figure 7-74 on page 201.
We may choose to rename one or more members by providing a new name in the RENAME field. We proceed without renaming any members and press ENTER. Figure 7-75 on page 201 displays the results.
The message in the upper right gives the overall status MOVE unsuccessful. We see that the command replaced the members' tag identifiers with tagged feedback. Member #BOX indicates NO-REPL, meaning not replaced. From this we know that library 2 already contained a member named #BOX; hence, the reason for the unsuccessful message status. The other member, #CATTEST, indicates a status of MOVED and now shows a location in library 2 (previously, library 3). To move members to an external sequential or partitioned data set enter MOVETAG without any operands, as in Figure 7-76 on page 201.
201
8093ch19.fm
Figure 7-77 on page 202 shows the move prompt panel where we have entered the PDS data set AMW000.NEW.JCL as our target data set for the move. The prompt panel provides options to replace like-named members, and set the allocation disposition for the target data set (OLD or MOD).
As shown as in Figure 7-78 on page 202, after pressing ENTER, the MOVETAG confirmation gives us the opportunity to rename members and even cancel the move operation entirely.
And finally, confirming the process by pressing ENTER one more time, we see the results in Figure 7-79 on page 202, showing MOVE successful in the upper right.
202
8093ch19.fm
Using the keyword L, I or G, PRINTTAG directs the printed data set to the ISPF LIST data set (L) or the JES SYSOUT queue (I or G). If directed to the ISPF LIST data set, the ISPF settings for the LIST data set determine the output disposition of the print output. The I option prints all tagged members to a single JES OUTPUT data set. A subsequent PRINTTAG command using option I creates a new, separate JES output data set. In contrast, PRINTTAG using option G accumulates print from subsequent PRINTTAG commands that use option G into the same JES output data set. After the first PRINTTAG command using option G, any subsequent PRINTTAG command using option I or L closes the print accumulation from the most recent PRINTTAG command using option G. To illustrate, refer to Figure 7-81 on page 203 where the MSL displays five tagged members.
We print the first two tagged members using option I. On the command line, we enter PRINTTAG TEST1 I, followed by PRINTTAG TEST2 I. Using Spool Display and Search Facility (SDSF), we view the JES output and note that in Figure 7-82 on page 203, the separate PRINTTAG commands have created two separate JES output data sets.
Figure 7-82 Separate JES output for each PRINTTAG command using I option
Now we print the next two tagged members using option G. On the command line, we enter PRINTTAG TEST3 G, followed by PRINTTAG TEST4 G. To show how a subsequent PRINTTAG command using option I or L closes off the print file accumulation of option G, we enter PRINTTAG TEST5 L (sending this member to the ISPF LIST data set). Our SDSF display in Figure 7-83 on page 204 shows one new JES output file which contains the listings for the two members printed using option G. The output directed to the ISPF LIST
203
8093ch19.fm
data set using the L option does not create a JES output data set, for obvious reasons ISPF LIST allocates to a disk data set.
Figure 7-83 Third JES output data set for two PRINTTAG option G commands
In the figures that follow, we demonstrate the execution of the first PRINTTAG command which gave us our first listing result shown above (cf. Figure 7-82 on page 203). We enter the PRINTTAG TEST1 I command in Figure 7-84 on page 204.
The PRINTTAG command gives us a print confirmation panel shown here in Figure 7-85 on page 204.
The print confirmation panel allows for the opportunity to change several print options output class, number of copies, lines per page, even the process mode. Even though we invoked the command using the I option (Immediate mode), we may change to G (Group) or L (List).. We proceed without any changes and we see the results in Figure 7-86 on page 204. The upper right displays the status message indicating one member printed and the rename field of the print member now contains the status feedback of -PRINT I.
204
8093ch19.fm
The complete series of PRINTTAG commands discussed results in the feedback status shown in Figure 7-87 on page 205.
One final note, we can change the default PRINT options using the PRINTTAG command by entering a question mark (?) as print option. This is equivalent to issuing the ISET PRINT command or just ISET and selecting the PRINT option. Figure 7-88 on page 205 shows the command to display the PRINT options panel before printing.
Figure 7-89 on page 205 displays the PRINT options panel where we may set new print options that take affect with this printing.
After making any changes and pressing ENTER, the command proceeds as shown in the previous displays.
205
8093ch19.fm
In Figure 7-91 on page 206, we have tagged all the members that begin with the string DB2. We now want to BROWSE each member and we enter the command SELECTAG DB2 B.
After entering the command, we browse each tagged member in succession. We show the first member in Figure 7-92 on page 206.
Pressing PF3 ends the current member and the command selects the next member for browsing. You may wish to terminate processing of the remaining members. We accomplish this by entering the MSL QUIT command. Figure 7-93 on page 207 shows the QUIT command.
206
8093ch19.fm
After entering QUIT, the command gives us a chance to resume the SELECTAG process by entering QUIT STOP, or proceed with terminating the the SELECTAG process by pressing PF3. Note the IQIQ002 message in Figure 7-94 on page 207.
The VIEW and EDIT options proceed in a similar fashion and we encourage the reader to experiment with those options.
207
8093ch19.fm
The MSL in Figure 7-96 on page 208 contains many tagged members with various names, not all shown in the figure. We issue the SORTTAG command to order the tagged members by tag name.
Figure 7-97 on page 209 shows the tagged members sorted by ascending tag value.
208
8093ch19.fm
Next we show how to sort tagged members by an MSL display column name. In Figure 7-98 on page 209, we enter the command SORTTAG SIZE D to sort the tagged member by their size in descending order. The command allows for more than one column criterion. However, we only use the one column here.
209
8093ch19.fm
Viewing down the SIZE column, the SORTTAG command has ordered the tagged members from largest to smallest.
In Figure 7-101 on page 210 we demonstrate submitting three tagged members to the JES input queue by entering the command J+.
210
8093ch19.fm
Figure 7-102 on page 211 shows the system response showing the job submissions in.
Finally, in Figure 7-103 on page 211, the SUBMTTAG feedback indicates the submit status for the three tagged members.
211
8093ch19.fm
212
8093ch20.fm
Chapter 8.
213
8093ch20.fm
As with any MSL command, get a full syntax description of these commands by using the MSL ASSIST command; for example for the TITLE command, from an MSL enter ASSIST TITLE. In addition to the MSL TITLE commands available through the IPT ISPF interface, the IPT batch utility, IQIBUTIL, provides three TITLE related controls: TITLEIMP, TITLEMIG, and TITLELIST. In sections that follow, we review these, as well as all the MSL TITLE related commands. We also have a special section on TITLE support for load libraries.
214
8093ch20.fm
Figure 8-1 Customization panel to set site-wide member name for storing titles
This IPT customization executes as part of the IPT installation process. We will see later how to determine the member name using the TITLE command. In this chapter whenever we reference the name Z999TITL, be aware that your installation might be using a different name. To add a title and key to member TSTSVC30, enter TITLE TSTSVC30, as shown in Figure 8-2.
IPT displays the Member Title panel with input fields for the title text and key. We enter the title text and key as shown in Figure 8-3.
After pressing enter, the MSL screen switches to display titles rather than ISPF statistics and Figure 8-4 shows that the member TSTSVC30 now has the title and key information we entered. Use the SHOWTITL command to toggle the MSL display between ISPF statistics and title/userkey information.
215
8093ch20.fm
As shown in Figure 8-5, the SHOWTITL mode switch is off after execution of SHOWTITL, and the MSL now lists the ISPF statistics.
At this point, the title and userkey we added for member TSTSVC30 only resides in memory. Recall that to make the title and userkey information permanent, IPT must store the information in a special member, Z999TITL by default. We do that now in Figure 8-6 on page 216 by entering the TITLE command with no operands.
216
8093ch20.fm
The TITLE command entered with no operands brings up the MSL Member Title List Management panel shown in Figure 8-7. We will use option 1 to store the title and userkey information into member Z999TITL. If this member does not exist in the PDS/PDSE, IPT creates it. On this panel you may verify the member name specified during IPT installation that will contain the title and userkey information, Z999UTIL by default.
The other options include: Use option 2 after updating title and/or userkey information and before storing, to recover or refresh the previously stored title and userkey information contained in the persistent store member found in the current library, Z999UTIL. Use option 3 to clear or erase all member title and userkey information in memory. If you want to permanently clear the title and userkey information, follow up with option 2 to update the persistent member store. Similar to option 2, option 4 loads or imports title and userkey information from a persistent store member from a possibly different data set. The data set must contain the persistent store member, Z999UTIL by default. Finally, option 5 migrates or creates title and userkey information using a sequential file. We will demonstrate this option after completing option 1. We will show in 8.7, TITLE control statements in IQIBUTIL on page 226 how to use the IPT batch utility to perform options 4 and 5 using the batch utility controls TITLEIMP and TITLEMIG. To continue with option1, Figure 8-8 on page 217 shows the result from storing the title information.
217
8093ch20.fm
The title list information is successfully stored into member Z999UTIL. The MSL now includes the member Z999UTIL, as shown in Figure 8-9.
For one or a few updates, using TITLE <member> does not present a problem and proves quite convenient. However, when the task involves hundreds or even thousands of members, we require a more efficient method. The previously mentioned migrate option 5 from the MSL Member Title List Management menu provides just such a method. We start by creating a sequential file that contains the member name, title and userkey information for each member we want to create or update title information. The sequential file can reside in a physical sequential data set or a member of a PDS or PDSE. Figure 8-10 on page 218 shows such a file. The member name appears in colums 1-8. The title text begins in column 10 and extends to column 59. The userkey information occupies columns 61-68.
Figure 8-10 PDSE member containing title and userkey information for twenty members
With this information saved, we proceed to the MSL Member Title List Management menu and select option 5, as shown in Figure 8-11.
Figure 8-11 Option 5 Migrate member titles from an external data set
218
8093ch20.fm
IPT shows the MIGRATE Member Title List panel. We specify the data set and member name (since we used a partitioned data set) that contains our list of member title information. For convenience we have used the same data set which contains the members we want to update. In typical practice, the definitions reside in a data set different from the members receiving the title information.
As indicated in Figure 8-13 on page 219, IPT successfully migrated the title information.
Using SHOWTITL, in Figure 8-14 we see that members REPORT01-20 now have title and userkey information.
219
8093ch20.fm
If all looks well, we enter TITLE to return to option 1 of the MSL Member Title List Management menu to store the title information. Tip: See the discussion on the IPT batch utility function TITLEMIG (8.7, TITLE control statements in IQIBUTIL on page 226) for an even better way to manage and maintain member titles and userkeys.
220
8093ch20.fm
Figure 8-15 Executing a simple FILTTITL command to select all members with title data
Notice that to filter by TITLE does not require the TITLE field in the MSL display. Figure 8-16 shows the results with 21 members selected. The ISPF statistics remain in the display until we issue the SHOWTITL command (circled in Figure 8-16) to toggle the title display status on.
Figure 8-17 on page 222 exhibits the title and userkey information of the selected members.
221
8093ch20.fm
Figure 8-17 Title and userkey information displayed with SHOWTITL status toggled on
As with other filtered lists, use the MSL commands FLIP and RESET to manipulate the MSL displayed list. In Figure 8-18 with SHOWTITL status on, we now choose to filter the same full list of 470 members by userkey, and we qualify the filter criteria to select the members with a userkey that matches the string WEDNESDAY. Notice that the short form of FILTUKEY uses a right parentheses, whereas the short form of FILTTITL uses a left parentheses.
Figure 8-18 FILTUKEY command selecting members with userkey string of WEDNESDAY
This example highlights the maximum length of 8 for the userkey field. Even though our filter criteria contained a 9-character value, WEDNESDAY, the command matched only the first 8. Tip: Both FILTTITL and FILTIUKEY commands take other filtering criteria as defined by the MSL FILTER command.
222
8093ch20.fm
Figure 8-20 FINDTITL command search for first member with title string starting with ACCOUNT
In Figure 8-21, FINDTITL locates member REPORT06 and in usual fashion displays the first few lines of the member.
The member display obscures the title and userkey information. However, after pressing ENTER to clear the member content display, indeed, the member title begins with the string ACCOUNT, as requested (cf. Figure 8-22).
223
8093ch20.fm
Figure 8-22 Member REPORT06 with title content beginning with string ACCOUNT
The FINDUKEY command works in a similar fashion, operating on a userkey label rather than a title string.
Figure 8-23 HIDETITL to exclude members with title strings matching ACCOUNT
224
8093ch20.fm
In Figure 8-24, we see that in addition to excluding the members that have title information matching ACCOUNT, the command also excludes members with no title information whatsoever.
In Figure 8-26, we see the MSL now ordered by ascending userkey. The command orders members lacking a userkey after all members with a userkey.
225
8093ch20.fm
226
8093ch20.fm
The TITLEIMP and TITLEMIG control statements implement options 4 and 5, respectively, of the MSL Member Title List Management menu discussed in 8.2, TITLE command on page 214 and shown in Figure 8-7 on page 217. Table 8-2 summarizes the functions of the three TITLE batch control statements.
Table 8-2 Summary of TITLE batch control statements Control Statement TITLEIMP TITLEMIG TITLELIST Description Indicates a copy operation of all IPT managed member titles from one partitioned data set to another Indicates a conversion operation of a sequential data set (or member) into an IPT managed persistent member title list of a partitioned data set. Indicates a report operation of all IPT managed member titles of a partitioned data set.
In the remaining part of this section, we demonstrate the use of TITLEMIG. The TITLEMIG control statement takes as input a sequential data set or member containing the member title and userkey definitions and updates the corresponding members of a PDS or PDSE with that information. Figure 8-29 on page 227 displays the INPUT record format obtained from the IQIBUTIL documentation.
In Figure 8-30, we show a portion of the INPUT data set we will use.
227
8093ch20.fm
From the IQIBUTIL documentation, we obtain the syntax for the TITLEMIG control statement, a section of which we display in Figure 8-31.
Finally we construct our JCL to execute the TITLEMIG statement to update our PDSE with our title and userkey information. The JCL appears in Figure 8-32 on page 228.
After submitting the JCL and attaining a successful execution, we have the results, a portion of which we display in Figure 8-33.
228
8093ch20.fm
Tip: The batch utility TITLEMIG function automatically creates and/or updates the persistent store member, Z999UTIL by default. This gives TITLEMIG a big advantage over the online MSL TITLE command.
229
8093ch20.fm
230
8093ch04.fm
Chapter 9.
231
8093ch04.fm
Set the Use IBMIPT TSO shell option to Y, as shown in Figure 9-3.
232
8093ch04.fm
Alternatively, you can type the ISET T command from any ISPF panel as a shortcut to select the IPT TSO shell options panel that is shown in Figure 9-3. Important: The normal IPT command list limit for new users is set to 100 instead of the 999 maximum. However, the command list limit that is circled in Figure 9-3 on page 233 allows you to override the history and permanent command list limit. In addition, the Automatic filling option that is circled in Figure 9-3 on page 233 enters your TSO shell commands into the permanent command list, in the next available empty slots. The maximum number of rows in the TSO shell command lists is fixed as 999 for each list. Hence, the permanent or history table can accommodate approximately 999 x 234 bytes of virtual memory, which together can occupy almost 2 MB of virtual memory and external space in the persistent table library. You can, however, lower or customize the maximum number of rows in the TSO shell command lists by using the IPT customization wizard IQIWIZRD.
233
8093ch04.fm
When prompted, type the SIQITLIB library name as shown in Figure 9-5 on page 234.
Again when prompted, type the SIQIPLIB library name as shown in Figure 9-6.
Follow the instructions that are provided by the IPT Installation, and press Enter to see the IBMIPT - Customization Wizard screen as shown in Figure 9-7 on page 234. Type the command for the Customization selection.
Continue to press Enter until you reach the TSO command shell options screen as shown in Figure 9-8.
234
8093ch04.fm
You can customize the Command list limit as is shown (circled) in Figure 9-8 on page 235. However, the ISET T command allows you to override this Customization Wizard setting.
9.3.1 Using the TSO Command Shell with the IPT History Command List
Select Option 6 in TSO to use the command shell. From the command shell you may perform any of the following: Invoke a command in TSO Command Shell by typing n on the TSO Command Shell, where n is the command number. Invoke a command in TSO Command Shell by entering ?n, which allows you to modify the command prior to execution. Edit the IPT History Command List, and update the IPT History command list by typing the /EH command. Type the IPT History Command shortcut EX= to display the most recent History Command. The EX= command always displays the History command list regardless of the TSO shell default settings. Use slash (/) as a variable for substitution point-and-shoot variables. Figure 9-9 shows the History command list.
235
8093ch04.fm
9.4.1 Using the TSO Command Shell with the IPT Permanent Command List
Enter Option 6 in TSO to use the command shell. From the command shell you may perform any of the following: Invoke a command in TSO Command Shell by typing n on the TSO Command Shell, where n is the permanent command line. Invoke a command in TSO Command Shell by typing ?n, which allows you to modify the command prior to execution. Edit the IPT Permanent Command List and update the IPT Permanent Command List by typing the /EP command. Enter the IPT Permanent Command shortcut EX? to identify how many Permanent Commands are present and their respective sequence numbers. The EX? command always displays the Permanent Command List regardless of the TSO shell default settings. Use slash (/) as a variable for substitution point-and-shoot variables. You can invoke the Permanent Command List from any ISPF panel by performing either of the following: Typing EXn, where n = 1 to 9, representing one of the first nine permanent commands. Typing TSO n, where n = 1 to 999.
236
8093ch04.fm
Figure 9-10 shows the Permanent Command List. << Linda, can you remove the red lines under the words?>>
Use the /SAV command to save the command list. When you exit IPT, both Permanent command lists and History command lists are automatically saved. If the user's session is disconnected due to a network or power interruption, changes made to the permanent command list are lost if a /SAV command has not already been issued to permanently save the changes.
237
8093ch04.fm
Important: The EX= command can be used as a shortcut to display the History command list from the TSO Command Shell regardless of the TSO Shell Default settings. Similarly, the EX? command can be used as a shortcut to display the Permanent command list from the TSO Command Shell regardless of the TSO Shell Default settings.
The LISTDS command will be invoked when you type 1 in the command prompt.
238
8093ch04.fm
Figure 9-13 TSO History Command List in the TSO Command Shell showing a ?n entry
239
8093ch04.fm
Figure 9-14 on page 240 illustrates how you can modify a command.
240
8093ch04.fm
Figure 9-16 shows the result of the /IS command. You can use the ISPF command shell to enter TSO or other workstation commands.
Figure 9-17 TSO History Command List in the TSO Command Shell showing the /EH entry
241
8093ch04.fm
The /EH command allows you to modify, insert, or delete the History command list using standard ISPF editor commands. Figure 9-18 shows the resulting Edit panel for the TSO Command Shell History.
Figure 9-18 Result of the /EH entry in the TSO Command Shell History
Figure 9-19 TSO History Command Shell showing the EX= entry
Figure 9-20 displays the TSO OUTPUT, which is the most recent History command entered in the History Command List.
242
8093ch04.fm
Important: You can also use the TSO = command as a shortcut to display the History Command List from the TSO Command Shell, regardless of the TSO Shell Default settings. This command is identical to the EX= command previously demonstrated. The only difference between the TSO = command and the EX= command is that the TSO = command has an embedded space whereas EX= does not have an embedded space. In addition, you can also use the TSO? command as a shortcut to display the History Command List. However, the TSO ? command does not recall the last History command that was executed.
243
8093ch04.fm
Figure 9-21 History Command List in the TSO Command Shell in ISPF Option 6
Figure 9-22 on page 244 displays the Permanent Command List as a result of the /P command in the TSO History Command Shell, and entry of the EX? command.
Figure 9-22 Result of the /P entry showing the Permanent Command List in the TSO Command Shell
244
8093ch04.fm
Figure 9-23 The result of the EX? entry showing the Permanent Commands
Figure 9-24 Entering the EX6 command with the cursor positioned on dataset number 6
245
8093ch04.fm
Figure 9-25 indicates that the TSO LISTC command is invoked for dataset number 6.
Figure 9-25 Result of entering EX6 which invoked the LISTC command
Figure 9-26 TSO Permanent Command List shell with the /EP entry
The /EP command opens the list for editing and modification, as seen in Figure 9-27.
246
8093ch04.fm
Figure 9-27 Result of entering the /EP command showing TSO Permanent Command shell
Figure 9-28 LISTDS / entry in TSO History Command List shell Chapter 9. TSO Command Shell
247
8093ch04.fm
Figure 9-29 on page 248 prompts you to enter the dataset name.
Figure 9-30 displays the LISTDS command result for the dataset DDS1923.TEST.LIBRARY.
248
8093ch18.fm
10
Chapter 10.
249
8093ch18.fm
10.1 Overview
The command SHOWCMD or shortcut SHOW controls whether TSO commands, CLISTs and REXX EXECs are executed immediately or displayed prior to execution. The SHOWCMD setting is saved in the user profile and will remain in effect for subsequent OLIST displays. You can display all your permanent OLISTs with command OLIST * or with shortcuts O* or OL* as shown in Figure 10-1.
Select an OLIST to work with. For this example we are using an OLIST named SAMPLES as shown in Figure 10-2 on page 250.
Although the OLIST status indicates *SHOW* or *EXEC* for the current SHOWCMD setting it can be specifically displayed via the SHOWCMD command ? operand as shown in Figure 10-3 on page 251.
250
8093ch18.fm
Figure 10-4 on page 251 shows the result of the SHOW ? command. In this example, the result is SHOWCMD is ON.
The SHOWCMD or shortcut SHOW without operands will toggle between the SHOWCMD ON/OFF settings (Figure 10-5 on page 251). SHOWCMD operands YES and NO are also available.
251
8093ch18.fm
The SHOW command in this example has toggled the OLIST status from *SHOW* to *EXEC*. The OLIST status is SHOWCMD is OFF is also displayed above the OLIST status as shown in Figure 10-6 on page 252.
In Figure 10-7, the OLIST status indicates *SHOW* so commands will be displayed before execution, as shown in Figure 10-8 on page 252. Commands can be edited, processed or cancelled. For this example we proceed without making changes.
252
8093ch18.fm
The display from the processed LISTDS command in this example is shown in Figure 10-9 on page 253.
In Figure 10-10 on page 253 the SHOW OFF command is issued to change the SHOWCMD status. With this setting, the commands will be processed immediately.
Figure 10-11 on page 253 shows the TSO command LISTDS is being issued for Object 2 and repeated for Objects 3 and 4 by using the = command (the = repeats a preceding line command).
253
8093ch18.fm
Figure 10-13 shows an example of using the TSO command LISTDS with the MEMBERS operand. The command is issued for a range of OLIST objectsobjects 2 thorough 4. Alternatively 2-* could be entered to list all objects including and following object 2. Preceding a command with ? will display the command before execution regardless of whether the SHOWCMD setting is off.
254
8093ch18.fm
The result of this LISTDS command is shown in Figure 10-14 on page 255.
255
8093ch18.fm
Figure 10-16 on page 256 shows an example display from the OLS LINKLIST command. The PDSECHK user command is being issued for all objects, as noted by the range *. The PDSECHK command will list the PDSE libraries found in the temporary OLIST.
Figure 10-17 on page 256 shows the results from the PDSECHK command.
256
8093ch18.fm
The results of the SHOWCMD command are shown in Figure 10-19 on page 257, a confirmation message appears at the top of the screen, and the *EXEC* has been changed to *SHOW* on the MSL display.
For demonstration purposes, a simple REXX EXEC named MYCMD that displays the current data set name is used. The % line command is entered and the REXX EXEC MYCMD is entered in the RENAME field, as shown in Figure 10-20 on page 257.
Figure 10-20 Using the % command to execute the MYCMD REXX EXEC
Because SHOWCMD is on, the Verify/Modify/Enter panel in Figure 10-21 on page 258 is displayed.
257
8093ch18.fm
You can press enter, to execute the command as displayed, press PF3 to exit without executing the command, or modify the command before execution. In Figure 10-22 on page 258, we changed the member name from MEM101 to MEM202.
Pressing PF3 cancels the request and you are returned to the MSL and the message -SKIPPED is displayed in the RENAME field of MEM101 as shown in Figure 10-23.
If instead of cancelling, we had continued with the command, the MYCMD REXX EXEC would have executed, the results are shown in Figure 10-24.
258
8093ch18.fm
Figure 10-25 Executing CLIST MYCLIST from a member selection list on multiple members
Because SHOWCMD is off, we are not prompted, and the command continues for all 6 members specified, as shown in Figure 10-26.
Figure 10-26 The output from MYCLIST on all MEM* members of DDT001.PDS
You can also run the CLIST or REXX EXEC on one or more tagged members in the member selection list by using the %+ main command. MEM101, MEM202 and MEM303 were
259
8093ch18.fm
tagged with XXX and MEM404, MEM505 and MEM606 were tagged with YYY using the TAG command. Figure 10-27 on page 260 shows the command format to execute MYCLIST on all members tagged with XXX. The parameter P1 will also be passed to the CLIST.
The results of the MYCLIST command execution are shown in Figure 10-28 on page 260.
Figure 10-28 The results of running MYCLIST on members tagged with XXX
Had SHOWCMD been ON during the execution of this command, we would have been presented with a confirmation panel for each member processed; Figure 10-29 on page 260 shows an example of the panel.
260
8093ch05.fm
11
Chapter 11.
261
8093ch05.fm
Figure 11-2 on page 263 shows the Command Shortcuts panel. Notice the upper right corner of the shortcuts panel of Figure 11-2 on page 263. There are 60 rows through which to scroll. IPT has a rich set of command shortcuts. Notice that the commands listed on the panel are not displayed in alphabetical order. Instead, the list is displayed with the commands grouped in a functional order to help you get to the most commonly used information quickly. The web link at the top of the page will take you to the home page for ISPF Productivity Tool for z/OS. This page contains additional links that you might find useful.
262
8093ch05.fm
The shortcut commands for IPT are listed first. Using these commands takes you to information about IPT and how to use it, to panels for configuring IPT to your personal preferences, and to the latest news about IPT. Next, we find commonly used ISPF/IPT commands and the commands that are most immediately helpful. Following these commands are the object list commands and the execute commands. The two commands that display next to the Commands: label in Figure 11-2, SORT and REFresh, will switch the list to an alphabetically ordered list or return the list to its normal state. You might find an alphabetically ordered list easier to search than the functionally ordered list. To display the list alphabetically, type SORT on the command line and press Enter. Refer to Figure 11-3 on page 263.
263
8093ch05.fm
Typing REF on the command line and pressing Enter restores the panel display to its normal configuration.
264
8093ch05.fm
In the third column, you will see the following description types: <parm>: parameter. Explains parameter as seen by IPT <DSNpat>: Dataset name pattern. Required by patterns enclosed in apostrophes <MEMpat>: MEMber name pattern <VOLpat>: VOLume pattern <DDname>: Data Definition name (from JCL DD statement) <SYStype>: System type Using the IPT? command shows that various shortcut commands can be used in conjunction with parameters to produce a result with less navigation. We next look at performing a generic search and the capabilities of IPT? searches.
265
8093ch05.fm
Important: The wildcard character % in IPT includes dots. Standard ISPF does not include dots. Figure 11-6 shows a standard ISPF 3.4 dataset pattern search setup.
Pressing Enter performs the search. As shown in Figure 11-7 on page 267, only names that begin with G and have at least three more characters before the dot are listed.
266
8093ch05.fm
To achieve a similar but more extensive search in IPT, you can use the BR command shortcut that includes a generic pattern search. Browse, Edit, and View patterns are interpreted in the following ways (assume the use of the Browse command for the following examples): Strings of eight or fewer characters (including the wildcard characters) and without enclosing apostrophes are seen as member names. The resulting search will be made on the most recently accessed dataset. If this dataset is not a PDS, or a PDS that has no pattern matching members, you will be presented with the Browse Entry panel. You can then add more detailed information to define your search. Strings without enclosing apostrophes that are longer than eight characters (including wildcard characters) or strings without enclosing apostrophes that contain dots will be seen as dataset names. This type of string will be concatenated with your Time Sharing Option (TSO) ID as a prefix for the name search. If this name is not found, you will be presented with the Browse Entry panel. Strings, regardless of length (including the wildcard characters), enclosed with apostrophes will be seen as dataset names. The search will be performed as specified. Again, if no dataset name is found, you will be presented with the Browse Entry panel. In summary, BR patterns can be made more general by enclosing them with apostrophes. Figure 11-8 on page 268 shows a BR search using the IPT pattern search capability and with apostrophes.
267
8093ch05.fm
An IPT search looks similar to an ISPF search. However, the result includes more datasets. Figure 11-9 shows the result. Notice that 2162 rows have been retrieved with the IPT search, which is 1080 more rows have been retrieved than with ISPF alone. More rows were retrieved because of the IPT inclusion of dots in the % wildcard pattern.
268
8093ch05.fm
Figure 11-10 on page 269 shows that we have scrolled down the list to display several of the rows that were not found in an ISPF search. You can see that the shorter first-part names have been included.
You might have noticed that the panel is labeled OLIST in the upper left corner of Figure 11-10. If you consider datasets as objects, you can achieve the same result using the shortcut command ol. Figure 11-11 shows the ol shortcut command with a <parm>. Notice that the parm with the ol command does not need apostrophes.
Figure 11-11 OL shortcut command with parm Chapter 11. IPT Global Commands
269
8093ch05.fm
Figure 11-12 on page 270 shows the result of the ol command. The figure does not show all of the panels that are associated with the Figure 11-12 search, but you can see by the row count that the result is the same.
If your searches do not perform as we have described them, check your TSO prefix. The prefix is usually set to your TSO USER ID. To check your TSO USER ID, use the TSO PROFILE command. You can type this command on any command line. Figure 11-13 shows the command.
If you have no prefix set, you will get the result that is shown in Figure 11-14.
Setting a prefix is done with the TSO PROFILE PREFIX command. Type it on any command line. Figure 11-15 on page 271 shows the command.
270
8093ch05.fm
When you press Enter, you are prompted for the prefix. Type your TSO user ID as a prefix. Figure 11-16 shows the result after the user ID has been typed.
Now, entering a TSO PROFILE command will show your prefix (Figure 11-17).
Now, your prefix will be embedded in the Browse, Edit, and View search commands. The Session Status view of the ISPF Primary Option Menu displays your TSO prefix. Figure Figure 11-18 on page 272 shows an example.
271
8093ch05.fm
272
8093ch05.fm
Figure 11-20 on page 273 shows the result. You can see vl that a large number of objects have been listed.
If you want to narrow the search and you know the DDname in which you are interested, use it as a parameter with the command. Figure 11-21 shows an OLDD command with a DDname.
273
8093ch05.fm
Figure 11-22 on page 274 shows the result of using this command. You see a much shorter list of datasets.
OLH, which is short for OLHIST, is the second most commonly used command. This command displays a temporary Object List with your most recently accessed dataset names, so that you do not have to remember the last dataset name that you used. Figure 11-23 shows the result of entering the OLH command.
274
8093ch05.fm
The syntax for PLIST and OLIS is shown in Figure 11-24 on page 275. The IPT display was reordered using the SORT command.
275
8093ch05.fm
Typing the EX? command displays the current list of your permanent commands. Previously, we developed a list of commands in the TSO Command Shell to use with this demonstration. Figure 11-26 on page 276 is the result of executing the EX? shortcut.
This list contains a number of transmit commands. Your command list will differ, of course. We did it this way simply to populate the list for this demonstration. You can return to the IPT display by pressing PF3. Often, when using a TSO command, you find that you need to use a particular command repeatedly. Notice in Figure 11-25 on page 275 that there are EX1 through EX9 commands. You can execute the first through the ninth permanent TSO command in your permanent list simply by entering its same-numbered shortcut. For example, the first command listed in Figure 11-26 is a dataset transmit to another system. Type EX1, and IPT will execute TSO permanent command 1, as shown in Figure 11-27.
276
8093ch05.fm
You can display your most recently entered TSO command by entering EX= on any command line. For example, Figure 11-29 shows that the EX= command has been entered.
277
8093ch05.fm
The result is shown in Figure 11-30. You will notice that the top entry in the history list is the most recent command. It is also located on the command line, ready to be executed.
Most of these shortcuts are obvious. There are other shortcuts that you only use when there might be a problem with IPT, such as ISNAP or IDIAG. IPTNEW, issued as shown in Figure 11-32 shows a readme file of changes and enhancements to IPT.
278
8093ch05.fm
Figure 11-33 on page 279 shows the results of the IPTNEW command.
Two commands are included that might surprise you: IPTOF and IPTON. You can turn off the functionality of IPT. And, when it has been turned off, you can turn it on again. In Figure 11-34, IPTOF is issued to turn off IPT.
279
8093ch05.fm
The command will result in a prompt to exit the main menu to disable IPT (Figure 11-35).
In Figure 11-37 you can see that IPT has been deactivated.
Figure 11-38 through Figure 11-40 on page 281 show the IPTON process. First issue IPTON as shown in Figure 11-38.
280
8093ch05.fm
You will receive a prompt to exit the main ISPF menu. Type x (Figure 11-39).
281
8093ch05.fm
Table 11-1 IPT shortcut commands Commands IPT????? INAME IPTHELP IPTOFF IPTON IPTDTEST IPTCMDS IPTNEWS IDIAG ISET ISNAP IMAINT IVERSION IVSML BROWSE EDIT VIEW BFILE EFILE VFILE O* O/ OHIST OLIST OL OL* OL/ OLDDNAME OLBASE OLBK OLBOOK Shortcuts IPT? INAM IPT IPTOF IPTON IPTDT IPTCMD IPTNEW IDIAG ISET ISNAP IMAINT IVER IVSM BR ED VI BF EF VF O* O/ OH OLIS OL OL* OL/ OLDD OLB OLBK OLBO Comments Display IPT shortcuts IPT SET SCREEN NAME IPT help Disable IPT Enable IPT Dialog test Disable/enable IPT shortcuts IPT news IPT diagnostics IPT SET options IPT snap IPT maintenance report IPT version report IPT virtual storage management display Browse dataset Edit dataset View dataset Browse VSAM file Edit VSAM file View VSAM file Show all Permanent Object Lists Populate a new Object List Display History List of Accessed datasets Display Object List Display Object List Show all Permanent Object Lists Populate a new Object List Display allocated datasets by DDNAME Listcat base of generation Listcat Bookmanager books Listcat Bookmanager books
282
8093ch05.fm
Commands OLCAT OLCLONE OLDA OLE OLPDSE OLGDG OLHIST OLINFO OLMIG OLNVSAM OLPAGE OLSHELF OLSYS OLTAPE OLVTOC OLVSAM OLZONE PLIST EX?????? EX= EX1 EX2 EX3 EX4 EX5 EX6 EX7
Shortcuts OLC OLCL OLDASD OLE OLPDSE OLG OLH OLI OLM OLN OLP OLSH OLS OLT OLV OLVS OLZ PLIST EX? EX= EX1 EX2 EX3 EX4 EX5 EX6 EX7
Comments Listcat multiple patterns Listcat clones List DASD online volumes Listcat PDSE libraries Listcat PDSE libraries Listcat GDG datasets Display History List of accessed datasets Listcat + INFO Listcat migrated Listcat NON-VSAM Listcat page-space datasets Listcat Bookmanager shelves List system datasets Listcat tape datasets ListVTOC datasets Listcat VSAM clusters Listcat SMP/E zones Display Object List Display TSO Permanent Commands Display TSO most recent command Execute TSO Permanent Command #1 Execute TSO Permanent Command #2 Execute TSO Permanent Command #3 Execute TSO Permanent Command #4 Execute TSO Permanent Command #5 Execute TSO Permanent Command #6 Execute TSO Permanent Command #7
283
8093ch05.fm
284
8093ch06.fm
12
Chapter 12.
285
8093ch06.fm
You can retrieve information about datasets or volumes by using combinations of the dataset list options. The default view is the dataset list. Figure 12-2 on page 287 is the IPT enhanced option 3.4 Data Set List Utility panel.
286
8093ch06.fm
The panel contains more options, with a layout altered to accommodate these additional options. It still contains the original ISPF options and parameters. DS is the Display dataset list command, which behaves the same as the standard ISPF 3.4 command. PL is the permanent Object List. GDG is the enhanced IPT generation dataset display. P, PV, and V are command options from standard ISPF 3.4. XV is an enhanced volume data display. Leaving the command field blank implies selection of an assignable list type which by default is Temporary Object List. Important: You can activate all of these commands by either typing a command on the command line, or by moving the cursor to the command and pressing Enter. Figure 12-3 on page 288 shows a typed DS command with a generic search.
287
8093ch06.fm
Figure 12-5 on page 289 shows the same command executed using cursor placement instead of typing a command. Notice the cursor is under the DS on the panel. 288
Improving Productivity with ISPF Productivity Tool V7.1
8093ch06.fm
Press Enter, and the command executes where the cursor is placed. Figure 12-6 shows that it yields the same result as the command typed in Figure 12-3 .
289
8093ch06.fm
Depending on which list command you choose to execute (object-related, dataset-related, or volume-related), you must fill in the appropriate information for the command execution in the center part of the panel shown in Figure 12-7. This approach is similar to the standard ISPF Option 3.4 action.
Options and information to the right within Figure 12-7 are discussed in detail later. Shown in Figure 12-8 is the bottom part of the panel with the most commonly used display options selected .
For example, if you consistently use option 3.4 to display a temporary Object List, having that command set as the default action saves time, as you then only need to enter the search criteria.
290
8093ch06.fm
An example is shown in Figure 12-10 on page 291 where a list of objects beginning with DDS is generated.
Notice that no command is entered on the command line in Figure 12-10 . Pressing Enter executes the command, and the result is shown in Figure 12-11.
291
8093ch06.fm
You can achieve the same search and result by typing an Object List command from any command line with the same generic search parameters (as shown in Figure 12-12, with the result shown in Figure 12-13).
292
8093ch06.fm
Important: Part of the underlying philosophy of IPT is that a user does not have to change a work habit in order to use it. As shown, you can perform a search either by using option 3.4 or by using an IPT command from anywhere in ISPF. For example, if you were in a program edit session and needed to check on a particular data value before continuing, you would not need to save the work and navigate to ISPF option 3.4, find and access the data, locate the value, and then reverse the process to return to the work. You would only need to enter the OL command on the command line in the edit session. As you become more familiar with IPT, you might find that you begin using the IPT commands directly. To change the default command when the Command field is left blank, use the IPT SET, or ISET shortcut IPT command. Figure 12-14 shows the ISET command entered on the Option 3.4 panel.
293
8093ch06.fm
294
8093ch06.fm
Type the D option on the command line and press Enter. Tab to the position in front of the D, type a character or leave blank, and press Enter. Place the cursor anywhere on the line with the D option and press Enter. Figure 12-16 shows the result.
Recall that in Figure 12-9 on page 290, blank is associated with Temporary Object List , which you can see selected as the Default ACTION option in Figure 12-16. You can change the default action by typing the desired action from the list. You can also establish these other defaults: The default name level, which is useful if you consistently access a certain high-level qualifier. The first level must be fully qualified, but lower levels can be specified by wildcard characters. The VOLUME, which is useful if you consistently access information on a volume. The DSLIST VIEW option is carried over from the 3.4 panel and can be changed in either location. The VOLUME LIMIT THRESHOLD (set at 100) means that 100 volumes can be searched before the search is stopped. In large systems with many volumes, you must limit searches. 100 is the IPT initial setting for the threshold. Important: To change an ISET option, type the ISET command with that option. The command appears as ISET D. You can change the default list type to DS by typing DS in the field provided and pressing Enter (Figure 12-17).
295
8093ch06.fm
The Setting IBMIPT Defaultsmenu appears, and pressing PF3 returns us to the 3.4 panel. If you had typed the ISET D command, pressing Enter returns you to the 3.4 panel, because there is no intervening panel. Yet another way to change this default is to place the cursor on the Settings option on the action bar at the top of the 3.4 panel. Figure 12-18 on page 297 shows the pop-up menu that appears after you place the cursor on the Settings option on the action bar. The current default is marked with an asterisk (*). You then type the number of the type of list that you want as a default, which in our case is 1, and press Enter.
296
8093ch06.fm
The changes you make to the defaults by using the ISET command become active when you next enter option 3.4. So if you want them to become active immediately, you must exit and re-enter option 3.4. Changes you make using Settings from the action bar become active immediately.
297
8093ch06.fm
Figure 12-21 on page 299 shows a DSLIST search using a pattern that conforms to an IPT generic search pattern. You might recall that in IPT the % wildcard can represent dots. 298
Improving Productivity with ISPF Productivity Tool V7.1
8093ch06.fm
The message is due to the % wildcard character in a position where ISPF 3.4 expected to find a blank, a dot, and another dataset level, or an asterisk (*) wildcard character.
Chapter 12. Invoking IPT from ISPF Option 3.4
299
8093ch06.fm
In option 3.4, if you want to employ IPT generic searches, you must enter TP on the command line, because the default command is DS. The other action is to change the default list type tp to TP. Figure 12-23 shows specifying a TP list type and an IPT generic search pattern.
300
8093ch06.fm
Changing its value from N to Y and pressing Enter opens a pop-up panel where you can specify multiple DSNAME levels and volumes as additional search criteria. This action will produce an OLIST containing matching datasets. Figure 12-26 shows the pop-up panel.
301
8093ch06.fm
Notice that the pop-up panel is displayed with the generic search that was already entered in the previous panel. You can add more DSname levels, as shown in Figure 12-27 on page 302. Pressing End (PF3) performs the search, and the result displayed is shown in Figure 12-28 on page 303.
302
8093ch06.fm
Important: Using an exclamation point (!) in an OLIST, as seen in Figure 12-28, is a comment line. You can see from Figure 12-28 that both generic searches were performed, and the results were displayed in a temporary list. This capability of IPT is advantageous over the standard ISPF 3.4 dataset search, where teh generic searches must be performed individually. Another way to access and use Multiple Level lists is by placing your cursor on the Special-lists option in the action bar at the top of the option 3.4 panel (shown in Figure 12-29).
Figure 12-30 shows the result. The Special-lists pop-up panel appears. Typing number 4 and pressing Enter starts the Multiple Levels function.
303
8093ch06.fm
Figure 12-31 on page 304 shows the Multiple Levels pop-up panel. Notice that the MORE? field is still set to N as this pop-up panel was supplied from the Special-lists option on the action bar.
304
8093ch06.fm
From this point, executing a multiple level search is the same as having set MORE? to Y.
You can either type a name or an asterisk (*) in the Object List field, and you will be presented with a panel that contains object lists for your selection. See Figure 12-33.
305
8093ch06.fm
As shown in Figure 12-33, an optional READ-ONLY OLIST library for storing site-wide common object lists is available. Both the PUBLIC and READ-ONLY OLISTs can only be modified by an authorized IPT administrator and can not be overridden by an unauthorized user. The permanent object list contains all the OLISTS accessible by you grouped by priority of PUBLIC, PRIVATE and READ-ONLY. If you want to create a new OLIST, you can type the name over an existing OLIST and save the new OLIST. See Figure 12-34 .
306
8093ch06.fm
You will see the most recently used list name. Typing = and pressing Enter executes that list. Typing MYLIST and pressing Enter will execute that list also. If you enter an asterisk (*) and press Enter, you will see a selection panel as shown in Figure 12-33 on page 306. You can select a particular OLIST and see its contents. If you know the OLIST name already, you could enter it on the Object List field and see its contents directly. See Figure 12-35 on page 308 for an example.
307
8093ch06.fm
Important: Beware of naming a permanent OLIST with your Time Sharing Option (TSO) PREFIX, which will create a source of confusion. You will want searches for objects beginning with your prefix to yield lists of dataset objects, not the name of an object list.
308
8093ch06.fm
The information in Figure 12-36 is used to search for GDGs beginning with DDS1923. The search result is shown in Figure 12-37.
In Figure 12-37, you see a GDG base and two generations under it. Notice that the base does not have a volume associated with it. In GDG style, the generations are labeled on the left as they are used in the dataset name in JCL. The file named DDS1923.TEST.GDG.G0012V00 and labeled as (0) is the current, or most recent generation, for example. Using IPT OLG with a parameter achieves the same result as the 3.4 GDG search. You type OLG DDS1923* on any command line and press Enter, as shown in Figure 12-38 on page 310.
309
8093ch06.fm
On pressing the RETURN key, you see the list of matching GDGs similar to that shown in Figure 12-3 on page 288.
310
8093ch06.fm
Extended volume searches with patterns yield volume lists, which can then be explored. Figure 12-41 shows a pattern search setup. The result is shown in Figure 12-42 on page 312.
311
8093ch06.fm
312
8093ch06.fm
In Figure 12-42 on page 312 notice several commands shown above the list of volumes that were retrieved by the search. Most of the commands are obvious in their intent. The SORT command can be performed with several qualifiers. Each letter in the list following the SORT label and separated by the vertical bar (|) relates to a column heading in the display. The relationship is shown in Table 12-1.
Table 12-1 Sort letter and relationship Sort letters V T % F L S D A Related column VOLUME TYPE % FREE FREE SPACE LARGEST EXTENT SMS DYN ATTRIBUTES
To display the results in descending order of free space, such as, for example, when trying to find space for a large dataset, sort by %, F, or L. An example of a sort using FREE SPACE is shown in Figure 12-43, and the result is shown in Figure 12-44 on page 314.
313
8093ch06.fm
As you can see in Figure 12-44, the volumes with the largest free space are now at the top of the list, and the columns headings that have been sorted are a different color. Another convenient way to re-sort the display is to use point-and-shoot. Place the cursor on the column that you want to sort and press Enter. Use the line commands that are listed beneath the main commands to display either the volume table of contents (VTOC) for a volume or a list of the resident dataset names. Typing S beside DMPU13 and pressing Enter shows you a panel like the panel in Figure 12-40 on page 311. You can view a list of datasets by typing DS next to the volume. In Figure 12-44, notice the column label *=EAV. Since z/OS V1.10, you can take advantage of Extended Address Volume (EAV) DASD architecture. This architecture allows for larger volumes by using an expanded addressing scheme. Volumes using the EAV scheme show an asterisk (*) in the System Managed Storage or SMS column. Recall from our earlier discussion about setting IPT defaults for DSLIST and the Volume List Threshold (see Figure 12-16 on page 295). Again, this value is set to limit the number of volumes searched, as a performance consideration. Similarly, an XV command with only an asterisk (*) in the Volume Serial field can cause a search that consumes an extensive amount of time and resources. You should use the smallest number feasible with your system that will produce a reasonable result. You can easily substitute an appropriate IPT command for the panel and command driven approach to navigation that is common in ISPF. This approach is also true for XV. The OLDA command produces the same as from the XV command, but from any command line. Figure 12-45 shows the OLDA command with a parameter. The result will be similar to what is shown in Figure 12-42 on page 312.
314
8093ch06.fm
When you perform a search that results in access to a large number of volumes, IPT does not gather the statistics for individual volumes, as shown in Figure 12-46.
If you still want to display the data for any individual volume, you can use the S or V line commands and the data will be displayed. Figure 12-47 on page 316 shows how you could use the S line command to view the details of the volume DMPA01.
315
8093ch06.fm
316
8093ch06.fm
When you return to the list, the statistics for the selected volume will be displayed. Figure 12-49 on page 317 shows the result of an S line command after returning to the list display.
The warning about large searches applies to the OLDA command, as well as to the XV command. The combination OLDA * will look for every volume in the system.
317
8093ch06.fm
The Special-lists options are panel input versions of IPT commands. They are available for users who prefer this approach. For example, if you type 1, as shown in Figure 12-51, and press Enter, you will see the allocations panel. Figure 12-52 shows the resulting input panel.
Without typing a DDNAME, press Enter. Figure 12-53 shows the result.
318
8093ch06.fm
You can achieve the same result with the IPT command OLDD, which is also true for the other Special-Lists. Use IPT ISPF option 3.4 to enjoy its power and versatility. Hopefully, the IPT capability of being able to use an IPT command from any ISPF command line will, in time, allow you to move beyond option 3.4.
319
8093ch06.fm
320
8093ch07.fm
13
Chapter 13.
321
8093ch07.fm
After you have entered the CUT ALL command and pressed Enter, all the lines in the member are copied into the default clipboard (00).
322
8093ch07.fm
Figure 13-2 on page 323 shows that all 18 lines in the member were copied to the default clipboard (board-0).
323
8093ch07.fm
Figure 13-3 on page 324 shows a cut of the lines starting at the .a label and ending at the .b label. File Edit Edit_Settings Menu Utilities Compilers Test Help _______________________________________________________________________________ -IPT- EDIT IPT.TEST.DATA(MEM1) - 01.02 Columns 00001 00072 Command ===> CUT .A .B Scroll ===> CSR ****** ***************************** Top of Data ****************************** 000100 //IEBCOPY JOB (IMS,PE22),'IEBCOPY',CLASS=A, 000200 // MSGCLASS=X,MSGLEVEL=(1,1),NOTIFY=&SYSUID,REGION=32M 000300 //* .A0400 //COPY1 EXEC PGM=IEBCOPY,REGION=0M 000500 //INDD DD DISP=SHR,DSN=IPT.DEV.LOAD 000600 //OUTDD DD DISP=SHR,DSN=IPT.TEST.LOAD 000700 //SYSPRINT DD SYSOUT= 000800 //SYSUT3 DD UNIT=SYSALLDA,SPACE=(CYL,2) 000900 //SYSUT4 DD UNIT=SYSALLDA,SPACE=(CYL,2) .B1000 //SYSIN DD * 001100 COPY INDD=((INDD,R)),OUTDD=OUTDD 001200 SELECT MEMBER=(ABCCOMN1) 001300 SELECT MEMBER=(ABCCONS1) 001400 SELECT MEMBER=(ABCXTRN1) 001500 SELECT MEMBER=(ABC1POPD) 001600 SELECT MEMBER=(ABC1POPI) 001700 SELECT MEMBER=(ABC1POPS) 001800 /* ****** **************************** Bottom of Data ****************************
Figure 13-3 Cut using labels
324
8093ch07.fm
Note: The numbers are the relative line numbers. If lines were deleted or inserted, the relative numbers might not correspond to the numbers down the left side of the member.
325
8093ch07.fm
If you use the M or MM editor line commands, the selected lines will be moved from the member being viewed or edited into the clipboard. Figure 13-6 shows that the lines were deleted by using the MM editor line commands with the CUT command.
326
8093ch07.fm
The CUT command can use the X or NX operand to copy the excluded or not excluded lines. Figure 13-7 shows issuing the EXCLUDE and FIND primary commands to display only the lines that contain the characters D$US5.
Figure 13-8 shows using the NX operand with the CUT command to copy the not-excluded lines (lines containing D$US5) to the clipboard. The BROWSE operand will allow the clipboard to be viewed after the CUT command has completed.
Figure 13-9 on page 328 shows the clipboard after the NX operand was used with the CUT command to copy the not-excluded lines (lines containing D$US5).
327
8093ch07.fm
Figure 13-10 shows the using the X operand with the CUT command to copy the excluded lines (lines not containing D$US5) to the clipboard. The browse operand will allow the clipboard to be viewed after the CUT command has completed.
Figure 13-11 on page 329 shows the clipboard after using the X operand with the CUT command to copy the excluded lines (lines not containing D$US5).
328
8093ch07.fm
329
8093ch07.fm
Figure 13-13 shows selecting a clipboard using the STAtus operand on the CUT command.
By selecting a clipboard using the S line command, the data that you selected in the member that you are viewing or editing will be copied or moved into the selected clipboard. Figure 13-14 shows selecting the ABC clipboard.
330
8093ch07.fm
331
8093ch07.fm
Figure 13-15 CUT this text and append it to the end of the clipboard data
Figure 13-16 on page 332 shows cutting 10 lines of data and appending the copied lines before the existing data in the ABC clipboard.
332
8093ch07.fm
Figure 13-17 Using the CUT command and saving a clipboard for future use
333
8093ch07.fm
Figure 13-19 shows editing the clipboard data prior to saving it to the clipboard.
Figure 13-19 Editing the clipboard after issuing the CUT command using the EDIT operand
334
8093ch07.fm
Rename a clipboard. Restore a clipboard to its state as of the last save or when you logged on. Save a clipboard so that it is available after you exit ISPF IPT. View the clipboard and possibly select the lines to be pasted. Figure 13-20 shows issuing the CUT STAtus command to display the Active Clipboards panel.
Figure 13-21 shows the Active Clipboards panel, which displays the active clipboards that are available for use. An asterisk shows a permanent clipboard.
335
8093ch07.fm
Note: Only temporary (non-persistent) clipboards are deleted when you exit IPT. However, you can choose to make even clipboard 00 a persistent one.
336
8093ch07.fm
Figure 13-23 shows that 6 lines from the default clipboard (00) were inserted after the 2nd line.
337
8093ch07.fm
Figure 13-25 shows a relative line number being used to insert six lines after the 3rd line.
Figure 13-25 Paste using an AFTer operand and a relative line number of 3
338
8093ch07.fm
Use the FROM operand on the PASTE command to specify the clipboard from which the text will be copied. Use the STAtus operand on the PASTE command to display the Active Clipboards panel. Typing an S line command against a clipboard causes the data to be copied from that clipboard. Figure 13-26 on page 339 shows pasting the data in clipboard ABC into the current member that is being viewed or edited.
Figure 13-27 shows selecting a clipboard using the STAtus operand on the PASTE command.
The command and the STAtus operand will display the Active Clipboards panel. By selecting a clipboard using the S line command, the clipboard data will be pasted into the member you are viewing or editing. Figure 13-28 shows the clipboard ABC being selected.
339
8093ch07.fm
340
8093ch07.fm
After you press Enter after issuing the PASTE DIR command, IPT displays the PASTE MEMBER LIST panel. On this panel, you need to specify the partition dataset whose directory information you want copied and if you want the directory statistics copied, as well. Figure 13-31 on page 341 shows that the member directory and statistical information for the dataset named IPT.TEST.DATA is to be copied.
After you press Enter, the member directory information is copied into the member that is being viewed or edited. Figure 13-32 shows the results of the PASTE DIR command.
341
8093ch07.fm
After pressing Enter, the PASTE TSO COMMAND panel is displayed on which you can enter the TSO command, CLIST, or REXX exec that you want to run. Figure 13-34 shows typing the LISTDS IPT.TEST.DATA command.
342
8093ch07.fm
After you press Enter, the command that you have entered is executed and the results are pasted into the member that you are currently viewing or editing. Figure 13-35 on page 343 show the results of the LISTDS IPT.TEST.DATA command pasted into the member.
343
8093ch07.fm
Figure 13-37 on page 344 shows the ABC clipboard being viewed. On the PASTE DISPLAY panel, you can select the lines to be copied using the C or CC line commands.
After pressing Enter, the line that you selected will be pasted into the member that is currently being viewed or edited. Figure 13-38 shows that the four selected lines have been copied into the member.
344
8093ch07.fm
While editing the clipboard, you can insert, delete, and change lines. After you exit the clipboard edit session, the modified data will be copied into the member that is being viewed or edited. Figure 13-40 shows a new line that was added and an existing line that was changed in the ABC clipboard.
345
8093ch07.fm
Figure 13-41 on page 346 shows the modified clipboard lines being copied into the member that is being edited.
346
8093ch07.fm
Figure 13-43 on page 347 shows the lines pasted as temporary ==MSG> lines.
Figure 13-43 Results of the PASTE command using the MSGs operand
347
8093ch07.fm
Figure 13-44 Results of the PASTE command using the NOTE operand
The ==MSG> or =NOTE= lines are temporary, but you can make them permanent lines by using the MD (Make Data) editor line command. Figure 13-45 on page 348 shows the MD5 line command being used to change the first 5 note temporary lines into permanent data lines.
Figure 13-46 shows that the first five note lines have now been made data lines. They will be saved when you exit the member.
348
8093ch07.fm
349
8093ch07.fm
If you want to modify how the clipboard data is printed or where it is printed, you can issue the SET PRINT command. The SET PRINT command displays the Printing Defaults panel on which you can change the print destination, as well as select options about how the clipboard data is printed. Figure 13-48 on page 350 shows the Printing Defaults panel, which is used to determine how the data is printed.
350
8093ch09.fm
14
Chapter 14.
351
8093ch09.fm
In this example, the IPT LOGON procedure is named IPTBETA. Remember that RACF authorization might be required for your respective TSO logon procedure. The LOGON procedure is stored in the TSO segment of the user's profile for use as the default value the next time the user logs on to TSO.
352
8093ch09.fm
IPT recommends a dedicated PDSE library to store persistent tables. IPT uses the naming convention userid.ISPF.IPITBLIB for the DD IPITBLIB allocation. To allocate a PDSE with this naming convention, press Enter. This will open the panel in Figure 14-3. Note that the dataset name type is LIBRARY.
353
8093ch09.fm
Figure 14-3 defines the persistent table library as a PDSE. PDSE libraries have significant benefits. Your installation might require data, such as Management Class or Storage Class. Complete the necessary fields, and press Enter to allocate to the library. The IPITBLIB now available message in Figure 14-4 confirms a successful persistent table library allocation.
354
8093ch09.fm
From the Setting IBMIPT Defaults menu, enter L to navigate to the persistent table library options panel, as shown in Figure 14-6 and Figure 14-7 on page 356.
355
8093ch09.fm
Figure 14-7 on page 356 shows the options for you to choose an action regarding the use of persistent table libraries. We suggest that you choose option A. Option A allocates and enables the use of persistent table libraries while you are logged on to IPT.
We describe the remaining options in detail in Chapter 15, IPT user customization using the IPT SET command on page 357.
356
8093ch12.fm
15
Chapter 15.
357
8093ch12.fm
358
8093ch12.fm
Figure 15-2 on page 359 shows the menu for setting IPT defaults. As an IPT user, you can set the preference for each of the functions. We describe eleven settings in detail.
Chapter 15. IPT user customization using the IPT SET command
359
8093ch12.fm
360
8093ch12.fm
Figure 15-4 on page 361 provides the various options that you can set in the IPT profile for MSLs.
Member list line command pad character Main menu option 1 default process Main menu option 1, 2 @H display Default cursor position
Include member names in dataset history Prompt with FIND command after a Global FIND
Chapter 15. IPT user customization using the IPT SET command
361
8093ch12.fm
MSL setting Double-byte-character-set (DBCS) support If DBCS is supported, use case-sensitive search strings Commands executed by the TAILOR command
Descriptions This option has to be set as Y to support DBCS. This option has to be set as Y to support case-sensitive DBCS search strings. As an IPT user, you can specify the MSL commands that have to be executed when you use the TAILOR command on MSL. These commands will be the default commands that are executed when the TAILOR command is invoked.
Table 15-2 describes the various options with their attributes that you can set for OLIST.
Table 15-2 OLIST settings and descriptions OLIST setting Default command (when selecting an item) Show the VOLSER of the cataloged datasets Check edit recovery when the list opens Provide a field for TSO command parameters Descriptions This option provides the flexibility to open the dataset in one of three modes: Browse, Edit, and View. This option provides the option to view the VOLSER of the dataset in the Object List view. This option allows you to include/exclude the edit recovery option when an object list is opened. Setting this option to Y provides the line to issue TSO commands.
362
8093ch12.fm
OLIST setting Display mode (the right column shows) Default cursor position Include member names in the dataset history Double-byte-character-set (DBCS) support DBCS case-sensitive search strings
Descriptions This option gives you the choice to view the CLASS or VOLUME of the dataset in the list. This option is the option to decide the default cursor position at the Main command and the Line command. Setting this option to Y allows you to view the most recently accessed member of the PDS or PDSE in the dataset history. This option must be set as Y to support DBCS. This option must be set as Y to support case-sensitive DBCS search strings.
Chapter 15. IPT user customization using the IPT SET command
363
8093ch12.fm
Table 15-3 describes the options for the MSL GLOBAL commands.
Table 15-3 TMSL GLOBAL settings and descriptions MSL GLOBAL commands STOP AFTER PROMPT AFTER START COLUMN END COLUMN AUTOMATIC LINK PRINT EXCLUDE Descriptions You can specify the limit or maximum number of items that must be processed successfully. This number is the number of items that must be processed successfully before a prompt is issued. The column number specified will be used by QUICK FIND as the starting position in the data record. The column number specified will be used by QUICK FIND as the ending position in the data record. Set this option to Y for global processing to continue without editing for successful items. Set this option to Y for global processing to continue provided the previous command is successful. Set this option to Y to generate the list of each member changed and saved. Set this option to Y to exclude the failing items from the final Member Selection List.
364
8093ch12.fm
Table 15-5 shows the settings that are available for the Print options and their descriptions.
Table 15-5 PRINT settings and descriptions Print settings Suppress page formatting Print changed lines in bold Highlight program elements Process mode Description Specify Y or N depending on whether the file is formatted. Specify Y to depict changed lines in bold. Specify Y to highlight program elements (or reserved words). There are three processing modes available: I=Print immediately. G=Group requests for later printing. L=Print directly to the ISPF LIST dataset.
Chapter 15. IPT user customization using the IPT SET command
365
8093ch12.fm
PRINT process mode setting Lines per page Keep in HOLD queue FORM number FCB name
Descriptions Specify the number of lines to be printed on a page. Specify if you want to place the print job in the HOLD queue. This number is an optional parameter. This name is an optional parameter.
DSLIST is more commonly known as option 3.4 from the main IPT menu. As an IPT user, you can specify the default action to be taken when the command line is left blank. Prior to describing the default action, we will explain the default values that are used in DSLIST when these values are not specified. Table 15-7 on page 366 shows the DSLIST default settings and descriptions.
Table 15-7 DLIST default settings and descriptions DLIST default settings LEVEL VOLUME VIEW Descriptions The dataset specified in this entry will appear as the default dataset name in DSLIST. You can specify the VOLUME to appear as the default on DSLIST. We suggest you leave this setting blank unless it is necessary to specify it. This setting is the option to specify the initial view of DSLIST.
366
8093ch12.fm
Descriptions This option allows you to restrict the number of volumes to be searched and display the summary information per volume. Search will cease after the count of volumes reaches the limit specified. In other words, it controls the summary data display in the initial display of all selected volumes. You can optimize the number of volumes searched, and the results are available in less time. We suggest that you set this value depending on the count of volumes available on your system and the CPU speed of your system.
The entries on the DSLIST menu will appear based on the options that you set for the DSLIST settings. In the case of a scenario where the default level and the default action to be taken are left blank, IPT provides the choice of one of following actions as shown in Table 15-8.
Table 15-8 DLIST setting and description when the default level and default action are left blank DSLIST setting DS for DSLIST TP for Temporary Object List PL for Permanent Object List Descriptions The command DS will appear as the default command. The menu to create the Temporary Object List will appear. The command PL will appear as the default command.
Chapter 15. IPT user customization using the IPT SET command
367
8093ch12.fm
Use the IPT TSO shell options menu to choose whether to use the new IBMIPT TSO shell or to use the standard ISPF TSO shell. If you choose to use the IBMIPT TSO shell (type Y for Use IBMIPT TSO shell), you can use the additional settings that are shown in Table 15-9.
Table 15-9 Command shell setting description TSO command shell settings Initial panel Descriptions Depending on your choice, the history list or permanent list of TSO commands will be displayed. Type H to view the history list, or type P for the permanent list. If this option is set to Y, the TSO commands that you execute will be stored in the permanent list. The line number on the 3270 panel where the TSO command output will be displayed is specified in this option. Figure 12-9 shows the value is set to 7. Therefore, output will be displayed starting at line 7 onward. This option can be used to cap the number of TSO commands that can be stored in the history list and in the permanent list. The maximum number of entries is 999. This option is extremely useful to optimize the space usage in your system. Setting this parameter to a lower value saves space that is allocated to store the history list and the permanent list.
368
8093ch12.fm
Chapter 15. IPT user customization using the IPT SET command
369
8093ch12.fm
Table 15-11 on page 370 describes the various options for the User Interface.
Table 15-11 User interface settings and descriptions User Interface settings Activate HOTBARS Activate Action bars Descriptions This option must be set to Y to activate HOTBARS and make them available on ISPF panels. This option must be set to Y to activate Action bars and make them available on ISPF panels.
There are four sub-options within the Action bars that provide you with more flexibility by having the action bars display on the BROWSE/EDIT/VIEW, MSL, Object List, and DSLIST panels.
8093ch12.fm
The options on Figure 15-12 determine these functions: Diagnose panel processing errors: Setting this option to Y allows you to view and use the diagnostic help that is provided by IPT to analyze ISPF panel processing errors. Diagnose ISPF program invocation errors and ABENDs: Setting this option to Y allows you to view and use the diagnostic help that is provided by IPT to analyze ISPF program invocation errors and ABENDs that are associated with ISPF during the processing. Display panel identifier (name) on each panel: Setting this option to Y displays the ISPF panel identifier (name) on the top of the panel. The command PANELID (OFF/ON) is usually used to display the panel identifier for each ISPF panel. However, setting this IPT option to Y overrides the function set by PANELID OFF.
Chapter 15. IPT user customization using the IPT SET command
371
8093ch12.fm
Figure 15-13 shows the various settings for persistent table library functions.
IPT provides you with four choices to use persistent tables, as shown in Table 15-12.
Table 15-12 Persistent tables setting descriptions Option A B T P Action taken by IPT IPT allocates an existing or new library to store persistent tables. A panel will prompt you to specify the name of an existing or new library. IPT backs up the current table library and allocates space for a new library. The use of persistent tables is temporarily disabled only for the current session. The use of persistent tables is disabled permanently. You have to explicitly use the ISET command to enable it for future sessions.
372
8093ch12.fm
In Figure 15-14, the BookManager interface status prompt is the most important option. It either activates (using A) or deactivates (using D) the BookManager options. IPT has specific options for Bookshelves and Books within these options. You can set the suffix for the dataset name, its record format, and its record length for Bookshelves and Books. It is not mandatory to provide values for these fields. You can ignore a field by providing blanks or zeroes as appropriate.
Chapter 15. IPT user customization using the IPT SET command
373
8093ch12.fm
374
8093ch10.fm
16
Chapter 16.
375
8093ch10.fm
16.1.1 Defining PF4 for the IPT View command for SDSF
In this section, we show you how to define a PF key to view files with SDSF. Because separate KEYLISTS are used for an Object List and Member Selection Lists, repeat the following steps when you view the Object List and again when you view a Member Selection List. Figure 16-1 depicts a job in the SDSF output queue.
Figure 16-1 SDSF queue: Invocation of PF Key Definitions and Labels panel
376
8093ch10.fm
The KEYS command displays the PF Key Definitions and Labels panel, as shown in Figure 16-2. Change the PF4 setting to VI. Optionally, you can add a Label. Press PF3 to return to the SDSF list of output Jobs.
Important: It is better to assign the primary commands to Alternate PF keys (F13-F24) so that we retain the functionality of the Primary PF keys (F1-F12), which are extensively used. Select a job from the output queue, as shown in Figure 16-3 on page 378.
377
8093ch10.fm
The Find command locates the file and puts the cursor under the file name, as shown in Figure 16-4 and Figure 16-5 on page 379.<< Linda, can you uncircle F4=VIEW?>>
Figure 16-5 on page 379 shows where the file DDS1019.CHISTRG.CTLFILE2 is located. Use PF4 to View the file.
378
8093ch10.fm
Figure 16-5 SDSF output: VSAM file has been located Use PF4 to View
IPT is customized to invoke the File Manager product when you View, Browse, or Edit a VSAM file, as shown in Figure 16-6.
A prior FIND command in Figure 16-4 on page 378 has positioned the cursor on the second qualifier of the file. IPT recognizes this file name and appends the user DDS1019 prefix to the file name when using PF4, as shown in Figure 16-7 on page 380.
379
8093ch10.fm
8093ch10.fm
you referenced in your current session and select one using point-and-shoot. IPT displays a panel that lists the data sets and the time of the last access. The items are listed in descending order of access. If a pattern or a member name was specified, that information is included in the item. In ISPF Primary Option Menu, you can assign the primary command OHIST to a PF key. 1. From the primary ISPF option menu, enter KEYS (Figure 16-9).
2. Enter the OHIST command as the definition of the selected PF Key and add a label (Figure 16-10 on page 381).
381
8093ch10.fm
3. After assigning the Primary command OHIST to PF1 key and changing the Label to History, press PF3 to return to ISPF main screen. You can see at the bottom of Figure 16-11 that the PF Key is now labeled with your new label.
To try out the new PF Key function, use option 3.4 to go to Dataset List Utility and browse the datasets you are interested in. In the following screen, suppose you browse the dataset number 5 - 'DDS1019.CHISTRG.CTL5', number 8 - 'DDS1019.ISPF.IPITBLIB' and number 11 - 'DDS1019.JCS.JCLLIB'.
382
8093ch10.fm
Use option 3.3 to go to the Move/Copy Utility screen. You want to copy from a source dataset (using option C) which you had browsed sometime back in the current session but you do not remember the entire name of the dataset. You can press PF1 which displays the Dataset history showing the datasets you have accessed in the current session (Figure 16-13).
To select an item in the dataset history (Figure 16-14 on page 383), type S next to it and press ENTER, or put your cursor on the item and press ENTER. Processing continues exactly as if you had typed the information in the input field (see Figure 16-14 on page 383).
383
8093ch10.fm
Then, while browsing through the SDSF panel, you can invoke the Object List of a file by keeping the cursor on the file name and pressing PF4 as shown in Figure 16-16.
Figure 16-16 Place the cursor on the file and press PF4 to view the Object List
IPT displays the Object List of the file DDS1019.CHISTRG.CTLFILE2, as shown in Figure 16-17 on page 385.
384
8093ch10.fm
385
8093ch10.fm
With IPT, you can view datasets or members using the VIEW command. When you are in an MSL, an OLIST, or a Hierarchy, you can view members by putting your cursor on the member name and pressing PF4 to invoke the VIEW command, as shown in Figure 16-19.
386
8093ch10.fm
387
8093ch10.fm
Figure 16-23 Enter the MVS operator command in the SDSF panel and press Enter
The system symbol &SYSR1 is defined with the value of DMPRES. The DMPRES is the disk volume on which the datasets reside. You can display the Volume Table of Contents (VTOC) that provides a way of locating the datasets that reside on the DMPRES disk volume. Type the command OLV on the main command line, position the cursor on the System symbol &SYSR1, and then press Enter, as illustrated in Figure 16-25.
388
8093ch10.fm
Figure 16-25 Type OLV in command line, position the cursor on &SYSR1, and press Enter
The VTOC list of datasets residing on the DMPRES disk volume is displayed as shown in Figure 16-26.
Figure 16-26 VTOC list of datasets residing on the DMPRES disk volume
389
8093ch10.fm
390
8093ch08.fm
17
Chapter 17.
391
8093ch08.fm
17.1.1 Tell IPT to open VSAM files and DB2 tables using File Manager
The IQIWIZRD command is used to customize IPT to invoke File Manager from an Object List to process VSAM and DB2 tables. To use the wizard, follow these steps: 1. Log on to ISPF using a valid IPT LOGON procedure. 2. Type TSO IQIWIZRD on the command line to invoke the IPT Customization Wizard. 3. When prompted, enter the SIQITLIB and SIQIPLIB library names. This process is illustrated in Figure 17-1 on page 392.
After you press Enter, the IPT Customization Wizard panel is displayed. On this panel, you select Customization by typing option 1 and pressing Enter, as shown in Figure 17-2.
392
8093ch08.fm
To complete the customization wizard panels, follow the instructions that are provided in IBM ISPF Productivity Tool for z/OS Installation and Customization Guide Version 7 Release 1 Modification 0, GC19-3847, which is available here: http://www-01.ibm.com/software/awdtools/ispfproductivitytool/library/#v71 Figure 17-3 on page 393 shows the process of selecting third-party products to be used to process VSAM datasets and DB2 tables. When you reach the Object Class panel, ensure that the VSAM data sets and DB2 tables are selected, then press Enter.
Figure 17-3 Selecting Object Classes for VSAM datasets and DB2 tables
After selecting the object classes, several options panels are displayed, depending on the options that were selected. When you reach the VSAM dataset panel that is shown in Figure 17-4 on page 394, select option 2 and then press Enter to use IBM File Manager for z/OS to process VSAM datasets from an IPT Object List.
Chapter 17. Using IBM File Manager for z/OS with IPT
393
8093ch08.fm
Figure 17-4 Selecting IBM File Manager for z/OS to process VSAM datasets
After you choose how to process VSAM datasets, IPT displays a panel where you can select the product to be used to browse, edit, or view a DB2 table from an Object List. As shown in Figure 17-5 on page 394, select option 9 and then press Enter to designate IBM File Manager for this purpose.
Figure 17-5 File Manager/DB2 for z/OS being selected to process DB2 tables
The customization process is now complete and IPT is set up to invoke these routines from the IPT Object List: IQI$FMGR CLIST if a VSAM dataset is selected
394
8093ch08.fm
IQI$FMD2 CLIST if a DB2 object is selected IMPORTANT: If the ISPF logon procedures for users to access IPT have not been modified to allocate the File Manager for z/OS and File Manager/DB2 for z/OS datasets, you need to modify the IQI$FMGR and IQI$FMD2 routines to ensure that LIBDEF statements are used to allocate the required File Manager datasets. This is explained in the next section.
PROC 0 /******************* IQI$FMGR ********************************/ APPLID(FMN) /*Required ISPF APPLICATION ID */ FMQUAL(FILEMGR.V12R1) /*FileManager High-level qualifier */ FMOPTS() /*FileManager site options dataset */ FMLANG(ENU) /*FileManager national language ID */ HANDLER(FILEMGR) /*Name of the VSAM handler */ NOLDEF() /*LIBDEFs and ALTLIB control */ LIST() /*Limited diagnostics */ TRACE() /*Full diagnostics */ SHOW() /*Display invocation statement */
+ + + + + + + + +
To use LIBDEFs to allocate the File Manager Base datasets, modify the IQI$FMGR CLIST to specify these values: NOLDEF() defaults to blank and ensures the LIBDEF statements will be executed to allocate the File Manager Base datasets. If the JCL logon procedure already allocates all of the required File Manager data sets, specify a non-blank character such as NOLDEF(Y) to bypass LIBDEF. The FMQUAL parameter, contains the high-level qualifier of the installed File Manager Base datasets. If the sets are in the format FMN.SFMNMOD1, the parameter will be FMQUAL(FMN). The FMOPTS parameter contains the load library containing the File Manager Base options module (that is, FMN0POPT) that was set up during the File Manager Base customization. Leave it blank if site options are specified in the SFMNMOD1 dataset FMLANG(ENU) defaults to allocating data sets for English language. You can specify JPN for Japanese or KOR for Korean if the appropriate language support has been installed and the data sets exist. We cover this in Chapter 19, IPT double-byte character set support on page 439. LIST(), TRACE() and SHOW() are for diagnostics. Enter a value (such as Y) to activate them.
Chapter 17. Using IBM File Manager for z/OS with IPT
395
8093ch08.fm
Example 17-2 shows the CLIST IQI$FMD2 setup to allocate File Manager DB2 datasets using LIBDEFs.
Example 17-2 The opening lines in CLIST IQI$FMD2 for FM DB2
PROC 0 /******************* IQI$FMD2 ********************************/ APPLID(FMN2) /*Required ISPF APPLICATION ID */ FMQUAL(FILEMGR.V12R1) /*FileManager High-level qualifier */ FMOPTS() /*FileManager site options dataset */ FMLANG(ENU) /*FileManager national language ID */ DB2QUAL(DB2.V10) /*DB2 High-level qualifier */ HANDLER(%FMN2INEX) /*Name of the DB2 handler */ NOLDEF() /*LIBDEFs and ALTLIB control */ LIST() /*Limited diagnostics */ TRACE() /*Full diagnostics */ SHOW() /*Display invocation statement */
+ + + + + + + + + +
To use LIBDEFs to allocate the File Manager DB2 datasets, modify the IQI$FMD2 CLIST to specify these values: Change NOLDEF() to ensure that the LIBDEF statements are used to allocate the File Manager DB2 datasets. Change FMQUAL, which contains the high-level qualifier of the installed File Manager DB2 datasets. If the sets are in the format FMN.SFMNMOD1, the parameter will be FMQUAL(FMN). Change FMOPTS, which contains the load library containing the File Manager DB2 options module (that is, FMN2POPT) that was set up during the File Manager Base customization. Change DB2QUAL, which contains the qualifier of the DB2 ISPF panel datasets (that is, DSN.SDSNPFPE and DSN.SDSNSPFP). These datasets are required because File Manager DB2 invokes DB2 processes, such as SQL Processor Using File Input (SPUFI).
8093ch08.fm
PATH PATHs that are related to an alternate index are restricted to browse only Alternate Index (AIX)<< NOTE TO FINAL EDITOR: Please ensure we do not add trademark sign here. >> Invoking the File Manager Base from IPT shows the object list commands and point-and-shoot main commands (see Table 17-1) that can be used to browse, edit, or view sequential datasets, partitioned datasets (PDS or PDSE), or VSAM datasets.
Table 17-1 Object List and point-and-shoot main commands to invoke File Manager Base File Type VSAM (all types) VSAM (all types) VSAM (all types) Sequential files Sequential files Object List line command B or V BF or VF E or EF B, V, E BF, VF, or EF Point-and-shoot main command BR or VI BF or VF ED or EF BR, VI, or ED BF, VF, or EF Product invoked File Manager Browse File Manager Browse File Manager Edit ISPF Browse, View, or Edit File Manager browses or edits the file, which is useful if you want to apply a copybook when accessing the file. ISPF changes the format to Browse. The file is too large to fit into the TSO Address space memory, so Browse is invoked instead.
Sequential files that are too large for Time Sharing Option (TSO) address pace memory Sequential files that are too large for TSO address space memory
V, E
VI or ED
EF
EF
File Manager will edit the file. Because the file will not fit in the TSO Address space, File Manager will use Auxiliary Edit mode to allow you to edit the file.
IMPORTANT: You can use the File Manager to browse or edit sequential files or PDS members. With File Manager, you can apply a copybook to a sequential file, or you can edit a large sequential file that ISPF is unable to edit. Use the BF or EF command (depending on whether you are using Object List or point-and-shoot main) to invoke the File Manager in Browse or Edit mode for sequential files.
Chapter 17. Using IBM File Manager for z/OS with IPT
397
8093ch08.fm
We first defined a VSAM cluster by running the VSAM DEFINE command shown in Example 17-3.
Example 17-3 JCL to define the VSAM cluster IGYTCAR
//*$ DELETE/DEFINE IGYTCAR VSAM //CREATE EXEC PGM=IDCAMS //VOL1 DD VOL=SER=DMPU07,UNIT=3390,DISP=SHR //SYSPRINT DD SYSOUT=A //SYSIN DD * DELETE IPTLAB.IGYTCAR.MASTFILE FILE(VOL1) PURGE DEFINE CLUSTER (NAME(IPTLAB.IGYTCAR.MASTFILE) VOLUME(DMPU07) FILE(VOL1) INDEXED RECSZ(80 80) KEYS(16 0) CYLINDERS(2)) /* Next, we ran a COBOL sample program to compile, link-edit, and run the IGYTCARA protram with the JCL shown in Example 17-4.
Example 17-4 JCL to compile, link and execute the COBOL sample program IGYTCARA
//*$ COMPILE/LINK/RUN SAMPLE IGYTCARA, WRITE VSAM // JCLLIB ORDER=(COBOL.V4R2.SIGYPROC) //TEST EXEC IGYWCLG //COBOL.SYSLIB DD DSN=COBOL.V4R2.SIGYSAMP,DISP=SHR //COBOL.SYSIN DD DSN=COBOL.V4R2.SIGYSAMP(IGYTCARA),DISP=SHR //GO.SYSOUT DD SYSOUT=A //GO.COMMUTR DD DSN=IPTLAB.IGYTCAR.MASTFILE,DISP=SHR //GO.LOCCODE DD DSN=COBOL.V4R2.SIGYSAMP(IGYTCODE),DISP=SHR //GO.UPDTRANS DD DSN=COBOL.V4R2.SIGYSAMP(IGYTRANX),DISP=SHR //GO.UPDPRINT DD SYSOUT=A,DCB=BLKSIZE=133 // This batch application does two tasks: Produces reports of employees who can share rides from the same home location to the same work location Updates the carpool data: Adds data for new employees Changes information for participating employees Deletes employee records Lists update requests that are not valid
We then used the DB2 SPUFI DCLGEN function against sample table EMP to expand the key field from 6 to 10 bytes and create a KSDS VSAM for 95 byte records.
398
8093ch08.fm
Figure 17-7 on page 399 shows the VSAM dataset IPTLAB.EMP.KSDS being editing using File Manager Base.
Figure 17-7 Editing data in character format using File Manager Base
As you can see in Figure 17-7, the VSAM dataset contains non-displayable characters, which are shown as a dot (.). To be able to maintain these characters, you either need to maintain the data in hexadecimal mode or use a copybook that maps the data to be edited in File Manager. We discuss these topics in further detail in the next two sections.
Chapter 17. Using IBM File Manager for z/OS with IPT
399
8093ch08.fm
In hexadecimal mode, File Manager will display three lines for each line in the sequential dataset, PDS, or VSAM dataset. The first line shows the character representation and the second and third lines show the hexadecimal representation of each character. To show data in hexadecimal format in File Manager Base, either enter the FH primary command or change the Format field on the panel to HEX as shown in Figure 17-8.
In long hexadecimal mode, File Manager displays a single line showing the hexadecimal representation. To show data in long hexadecimal format in File Manager Base, either enter the FL primary command or change the Format field on the panel to LHEX as shown in Figure 17-9.
Figure 17-9 Editing data in long hexadecimal format in File Manager Base
400
8093ch08.fm
Example 17-5 shows the copybook EMP, which was used to create the data in the IPTLAB.EMP.KSDS VSAM dataset.
Example 17-5 COBOL copybook EMP that will be used to map the VSAM data
01
DCLEMP. 10 EMPNO 10 FIRSTNME. 49 FIRSTNME-LEN 49 FIRSTNME-TEXT 10 MIDINIT 10 LASTNAME. 49 LASTNAME-LEN 49 LASTNAME-TEXT 10 WORKDEPT 10 PHONENO 10 HIREDATE 10 JOB 10 EDLEVEL 10 SEX 10 BIRTHDATE 10 SALARY 10 BONUS 10 COMM PIC X(10). PIC S9(4) USAGE COMP. PIC X(12). PIC X(1). PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC S9(4) USAGE COMP. X(15). X(3). X(4). X(10). X(8). S9(4) USAGE COMP. X(1). X(10). S9(7)V9(2) USAGE COMP-3. S9(7)V9(2) USAGE COMP-3. S9(7)V9(2) USAGE COMP-3.
To run the File Manager Base editor session using a copybook, issue the template edit (TE) primary command by typing TE in the Edit session, as shown in Figure 17-10.
After issuing the TE command and pressing Enter, File Manager displays the Template Workbench panel, from which you can perform these tasks: Use a copybook to maintain the data in the File Manager Edit session Create a template that allows you to select records and change how the data is displayed Maintain existing templates To maintain the data using the COBOL copybook EMP, type the RC primary command on the Template Workbench panel (see Figure 17-11) and press Enter. This returns you to the Edit session and displays the data in TABL format with a column fo reach field in the COBOL copybook (see Figure 17-12 on page 402)..
Chapter 17. Using IBM File Manager for z/OS with IPT
401
8093ch08.fm
Figure 17-11 Issuing the RC primary command on the Template Workbench panel
Figure 17-12 File Manager displaying data from a copybook in TABL format
File Manager allows a single row to be displayed on the panel with the fields shown vertically, as illustrated in Figure 17-13. To display the rows in this format, referred to as SNGL, type the FS primary command or change the format field to SNGL in the Template Workbench panel.
402
8093ch08.fm
To redisplay the data in TABL format, you can re-issue the FT primary command or change the format field back to TABL.
Chapter 17. Using IBM File Manager for z/OS with IPT
403
8093ch08.fm
You can also specify a generic name for a DB2 table when you dont know some information. For example, if you know that the owner of the table starts with DSN but you do not know the exact name of the owner or the table, you can specify this entry: DB11_DSN*.* IMPORTANT: For more information about specifying generic Object List entries, refer to Chapter 2, Object lists on page 9. Figure 17-14 shows the DB2TAB Object List with a mixture of single (fully qualified) DB2 table entries and generic DB2 table entries.
Figure 17-14 Object List showing single DB2 table entries and generic DB2 table entries
After File Manager DB2 has been customized to be invoked by IPT, issuing the B (browse), E (edit), or V (view) line commands against a DB2 table entry will invoke File Manager for DB2.
404
8093ch08.fm
Another way to get the same result is by issuing primary command 4 V (to view the fourth item). Or you can issue the following command on the command line: vi db11_dsn81010.dept Figure 17-16 on page 405 shows File Manager for DB2 displaying the DB2 table DSN81010.DEPT in the DB11 DB2 subsystem.
Figure 17-16 A DB2 table displayed for viewing in File Manager for DB2
Chapter 17. Using IBM File Manager for z/OS with IPT
405
8093ch08.fm
Figure 17-17 Selecting an SSID in the File Manager for DB2 Subsystem Selection panel
After you enter the command and press Enter, IPT invokes File Manager for DB2, which displays a list of DB2 tables that match the pattern that was entered on the Object List entry that you selected. Figure 17-19 shows File Manager for DB2 displaying a list of the DB2 tables with names that start with EMP in the DB2 subsystem DB11 that have an owner name that starts with DSN.
406
8093ch08.fm
Figure 17-19 A list of DB2 tables displayed in File Manager for DB2
Typing an S against the DB2 table DSN8810.EMP DB2 selects and displays the table for editing. Figure 17-20 shows the DB2 table DSN81010.EMP in the DB2 subsystem DB11 in edit mode in File Manager for DB2.
Figure 17-20 A DB2 table in edit mode in File Manager for DB2
Chapter 17. Using IBM File Manager for z/OS with IPT
407
8093ch08.fm
408
8093ch08.fm
Figure 17-24 Exporting from an Object List showing DB2 table entries
This takes us to the EXPORT function of File Manager for DB2. Start by specifying a data set name for your output VSAM KSDS, EMP.KSDS as shown in Figure 17-25 on page 410.
Chapter 17. Using IBM File Manager for z/OS with IPT
409
8093ch08.fm
Next, press Enter and specify 1 KSDS as the new data set organization, as shown in Figure 17-26.
The File Manager VSAM Define panel then opens, as shown in Figure 17-27 on page 411. Specify the minimum properties required to create the output VSAM file EMP.KSDS. Then press Enter to create the data set as well as export the DB2 table data. In this example, the rows are exported and the message 43 rows exported is displayed.
410
8093ch08.fm
The steps just described created a KSDS VSAM data set and loaded it with data from a DB2 table. Next comes looking at the contents of this data set using File Manager Base. In the Table Browse panel (Figure 17-28) enter the browse command for the new VSAM data set, followed by the File Manager primary command FH to display the data in hexadecimal format, and then press Enter. The command is: br emp.ksds ; fh
Figure 17-28 Enter the command to browse the new VSAM dataset in hexadecimal format
This invokes File Manager Base to view the newly created KSDS in hexadecimal format, as shown in Figure 17-29.
Chapter 17. Using IBM File Manager for z/OS with IPT
411
8093ch08.fm
Figure 17-29 Using the File Manager Base to view the newly created KSDS
17.3.6 BROWSE, EDIT, VIEW commands in IPT and File Manager for DB2
In our example, IPT invokes a product, File Manager for DB2, which has its own primary commands such as BROWSE, EDIT, and VIEW. For instance, issuing the EDIT command in File Manager for DB2 displays the panel shown in Figure 17-30 on page 412.
As with the IPT version of the BROWSE, EDIT, and VIEW commands, users can also pass parameters to the File Manager for DB2 version of these commands. But the format of the commands in File Manager for DB2 is diferent than the format of the commands in IPT. For example, if you are already viewing a DB2 table in File Manager for DB2, you can issue this IPT command to browse another table: 412
Improving Productivity with ISPF Productivity Tool V7.1
8093ch08.fm
BR DSNA_SYSIBM.SYSDUMMY1 This command lets you browse the contents of SYSIBM.SYSDUMMY1 in subsystem DSNA. The syntax for the same thing in File Manager for DB2 would be this: BROWSE SYSIBM.SYSDUMMY1 With this command, you will be presented with a File Manager for DB2 BROWSE panel where you can specify things such as templates before actually browsing the table.
Figure 17-31 Object List showing single DB2 table entries and generic DB2 table entries
Chapter 17. Using IBM File Manager for z/OS with IPT
413
8093ch08.fm
https://www.ibm.com/software/awdtools/filemanager/library
414
8093ch13.fm
18
Chapter 18.
415
8093ch13.fm
Enter S, and Figure 18-2 is displayed to provide SCLM support through IPT. The wizard provides the following SCLM customization options: All users are SCLM users. There are no SCLM users. Users are identified by an IQISCLM DD DUMMY statement in their LOGON procedure.
The installation of IPT chooses conditional SCLM support (option D), meaning your IPT session supports the SCLM commands, provided that you have the DD name, IQISCLM, allocated to your LOGON procedure. Tip: If your installation provided conditional SCLM support and your LOGON procedure does not have the //IQISCLM DD DUMMY statement, or CLIST does not have ALLOC DD(IQISCLM) DUMMY, you can dynamically add it. Exit from ISPF, and enter the command ALLOC DD(IQISCLM) DUMMY. Invoke ISPF, and your session will be SCLM-enabled. The SCLM parameter prompt in Figure 18-3 on page 417 refers to the SCLMPARM panel in Figure 18-4.
416
8093ch13.fm
Figure 18-3 IPT customization wizard: SCLM parameter prompt and override SCLMCHK value
The Override SCLMCHK option in Figure 18-3 provides a way to override the SCLM locking. We recommend that you set this value to an asterisk (*), provided that there are no SCLM lock overrides. For the SCLM parameter prompt in Figure 18-3, the recommended setting is F, which will display the SCLMPARM panel that is shown in Figure 18-4 when an SCLM library is first accessed.
On Figure 18-4, you can set the following values: Lock: Yes will lock members from other SCLM users. Alternate: SCLM macros define the characteristics of the SCLM hierarchy. The library hlq.PROJDEFS.LOAD contains the assembled and linked SCLM macro definitions. If you want to override the default member name of the SCLM definition, you can use a different (alternate) SCLM member, which is specified here. Change code: You can specify the default change code. Language: You can specify the default language. Authorization (Auth.) code: You can specify the default authorization code. The fields that are defined by the SCLMPARM command apply only to the SCLM library that is currently edited by IPT. For example, you can set SCLMPARM values for the library SPIFFY.V710.DEV.ASM to the language HLASM, and the SPIFFY.V710.DEV.JCL library can have the language TEXT. Note that in the displayed value for ISPF Project, the panel displays the multi-qualifier identifier as determined by the SCLM project definition, in this case SPIFFY.V710. Tip: The SCLMPARM provides the default values when you add new members to an SCLM library. You can override these parameters using the SPROF command.
417
8093ch13.fm
You can override the default installation values of Lock and Display SCLM parameters for your ISPF sessions by using the ISET command. As shown in Figure 12-5, the ISET command gives you the Setting IBMIPT Defaults panel. From this panel select SCLM options by typing S next to SCLM as shown in Figure 18-5.
You can override the LOCK default for all SCLM libraries for your ID, as shown in Figure 18-6.
418
8093ch13.fm
The Object List < character, shown on line 6 of Figure 18-8, denotes an SCLM library. Enter the number for the lowest level library in the SCLM hierarchy on the command line.
In Figure 18-9, IPT found the three libraries, which are circled, from the SCLM project definition, using the alternate project definition member SPIFF710.
419
8093ch13.fm
The SCLMPARM command shows the panel in Figure 18-10 on page 420.
The SCLMPARM panel provides the default values that SCLM uses for new members. You might need to update the alternate project name to direct SCLM to the correct libraries. The examples in this chapter use the data that is shown in Figure 18-10. In Figure 18-11, the DEF E action sets the default action to EDIT. The 7 initiates an edit session with concatenated libraries. IPT classified the datasets on line 7 as ISPF concatenated libraries.
Both line 6 and line 7 in Figure 18-11 yield the same results. IPT determined that these libraries are SCLM libraries by the S in the lib field, which we circled in Figure 18-12.
420
8093ch13.fm
If your session is SCLM enabled and SCLM libraries are used, IPT invokes the SCLM support, which includes these functions: SCLMPARM command K command Notes (as shown above the list of names in Figure 18-12 on page 421). SPROF command Many more functions In Figure 18-13, the libraries that are specified in line 7 do not match the SCLM hierarchy. The INT library is missing.
IPT notifies you if the libraries in the ISPF concatenation do not match the SCLM hierarchy. If a library is incorrect or missing or if the alternate project definition is incorrect, you will see the panel that is shown in Figure 18-14. Choose option 1 or 2 to continue.
421
8093ch13.fm
One way to locate the items in DEV and INT is to use the SORT LIB command, as shown in Figure 18-16.
Select the program TSTSVC26, as shown in Figure 18-17 on page 423. We are going to change the name of this module to TSTSVC30, which we demonstrate in this walk-through.
422
8093ch13.fm
As displayed in Figure 18-18, upon entering EDIT on member TSTSVC26, IPT issues two informative messages: IQIX607 indicating IPT issued an SCLM lock for the member and IQIS002 showing the SCLM project and alternate project names.
Figure 18-18 Messages IQIX607 and IQIS002 issued upon entering EDIT
Issue the SCLM command SPROF as shown in Figure 18-19 on page 424.
423
8093ch13.fm
The SPROF command, which we show in Figure 18-20, provides the actual language and change code for the member. The SCLMPARM panel, shown previously in Figure 18-10, provides the default values that are used for new members.
Use PF3 to back out of the SPROF panel and again to terminate the EDIT session of member TSTSVC26. Then copy the member TSTSVC26 to the member TSTSVC30, as shown in Figure 18-21.
424
8093ch13.fm
As shown in Figure 18-23, change all occurrences of TSTSVC26 to TSTSVC30, and save the member.
We can invoke the SCLM build function directly from IPT. Use the K command, with the build parameter in the RENAME field, as shown in Figure 18-24, to assemble and link the new program. Also note that the feedback message from EDIT in the upper right hand corner indicates a status of saved and parsed. The SCLM PARSE function determines statistical and dependency information about the member.
The action from Figure 18-24 invokes the SCLM Build Entry panel. To assemble the program online, use the EX command, as shown in Figure 18-25 on page 426.
425
8093ch13.fm
Tip: The EX command overrides the Process option 2 (Submit) specified on the panel. Execute invokes the command in the foreground whereas Submit builds JCL and submits a batch job to perform the SCLM Build.
Tip: If you want to build the member using an ARCHDEF, change the TYPE to ARCHDEF, and enter the correct member name on the panel in Figure 18-25.
Figure 13-27 demonstrates how to use the COPY command to copy all four members.
426
8093ch13.fm
As shown in Figure 18-28, the target library is our SCLM development JCL library.
As shown in Figure 18-30, the copy process was successful for all four members.
Edit the SCLM ASM library, switch to the TYPE JCL, and SORT the members in LIB order, as shown in Figure 18-31 on page 427.
Figure 18-31 Edit SCLMASM library, switch to TYPE JCL, and SORT the members in LIB order
427
8093ch13.fm
Tip: Use the MSL TYPE command to switch to a library concatenation with a different low level qualifier (TYPE). LIB information for the TSTSVC* members is shown in Figure 18-32. Because there is no S under the LIB column, these members do not have SCLM accounting information available. Use the SC command to migrate all four members as shown in Figure 18-32. The SCLMPARM panel default values are applied during the MIGRATE process.
Figure 18-32 Note the LIB information for the TSTSVC* members and use SC command
The MIGRATE feedback messages in the RENAME field along with the IQIM433 message, both shown in Figure 18-33, indicate the SCLM migrate function completed successfully. The command circled at the top will be discussed as a next step in 18.3.3, Updating the project SCLM ARCHDEF members on page 428
Hint: If you copy a member into a library and you want to reset statistics, such as the created time and date, use the Z MSL command to invoke the MSL Statistics Settings Panel. If the library is SCLM controlled, perform any statistics reset before migrating the member into SCLM.
8093ch13.fm
2. Change the TSTSVC26 ARCHDEF to TSTSVC30, as shown in Figure 18-35 on page 429.
3. Update the $TSTJCL members with the four JCL library members, as shown in Figure 18-36.
Figure 18-36 Updating the $TSTJCL members with the four JCL library members
429
8093ch13.fm
Figure 18-40 Entering the line command to invoke the SCLM Build panel
2. As shown in Figure 18-41, SCLM presents us with the SCLM Build - Entry Panel from which SCLM builds the ARCHDEF member TSTSVC30. . Here we demonstrate the use of the SCLM EX command to override the process value on the panel; although in this case, the EX command and the process value of 1 (Execute) are the same.
430
8093ch13.fm
3. As shown in Figure 18-42 on page 431, we proceed in a similar fashion to build the ARCHDEF member $TSTJCL.
4. The final build, shown in Figure 18-43, concludes with ARCHDEF member $TSTASM.
5. The ARCHDEF builds are now complete. As shown in Figure 18-44, next to the ARCHDEF $TSTASM, we entered the k command with the parameter promote in the RENAME column. For the second ARCHDEF, $TSTJCL, enter the k command without any parameters.
431
8093ch13.fm
6. The parameter PROMOTE invokes the SCLM Promote - Entry Panel that is depicted in Figure 18-45 on page 432. Using the EX primary command, SCLM successfully promotes $TSTASM to the INT library.
Figure 18-46 shows the Promote messages. Because the output control settings in the SCLM Promote panel in Figure 18-45 specified Data set, SCLM directs the REPORT and MESSAGES to the data sets indicated.
7. Figure 18-47 depicts the request to promote the second ARCHDEF, $TSTJCL.
432
8093ch13.fm
Figure 18-48 on page 433 shows the successful promotion of the $TSTJCL ARCHDEF. Note that when using the IPT SCLM COMMAND PROMPT panel, IPT bypasses the SCLM function panel; compare the sequence displayed in Figure 18-45 and Figure 18-46 with the sequence displayed in Figure 18-47 and Figure 18-48 on page 433.
Figure 18-49 Switching to ASM hierarchy to view a subset of members using the TAILOR command
If your personal user settings request a delete confirmation, IPT prompts you prior to deleting the member, as shown in Figure 18-51 on page 434. The value of Y, circled in Figure 18-50 directs IPT to delete the SCLM statistics.
433
8093ch13.fm
Figure 18-51 Based on your settings, IPT can prompt you prior to deleting a member
434
8093ch13.fm
Figure 18-53 Using MSL ASSIST to obtain command help for the SCLM command
Figure 18-54 displays the resulting help panel for the SCLM command.
As you can see, the MSL SCLM command requests various functions of the SCLM software, such as LOCK, BUILD, PROMOTE, and so forth. In this chapter we used the short form, SC, and the line command, K, in several places to invoke various SCLM functions. In lieu of examples here, we suggest you review some examples in previous sections (Figures Figure 18-24, Figure 18-32, Figure 18-40 ). Use the MSL TYPE command to switch from one data set type to another. In Figure 18-55, we use the TYPE command to switch from ASM to ARCHDEF.
Figure 18-56 on page 436 shows the new MSL with ARCHDEF data set type.
435
8093ch13.fm
In a similar fashion, use the MSL LIB command to switch from one group to another. In Figure 18-57, we enter the command LIB DEV0 to change the group level from DEV to DEV0.
Figure 18-57 MSL LIB command to switch from group DEV to DEV0
Figure 18-58 displays the results with the new group DEV0.
Using the MSL PROJECT command we can switch to an entirely new SCLM project. In Figure 18-59 on page 436, we issue the command PROJECT SPIFFY.V710BU to switch from the SPIFFY.V710 project to the SPIFFY.V710BU project.
In Figure 18-60, the MSL now displays the project qualifier SPIFFY.V710BU. The second NOTE line indicates the new alternate project, BUTIL710. 436
Improving Productivity with ISPF Productivity Tool V7.1
8093ch13.fm
Tip: In Figure 18-60, and in many other screen displays shown in this chapter, three NOTE lines appear containing information about the SCLM project. Use the MSL REFRESH command to toggle the display of these NOTE lines.
437
8093ch13.fm
438
8093ch14.fm
19
Chapter 19.
439
8093ch14.fm
You may see a Java run-time environment (JRE) being downloaded. In our case, we already have an appropriate JRE. 3. Next you will see the Java applet starting as shown in Figure 19-2 on page 441.
440
8093ch14.fm
Allow the HOD applet to run when you see the security warning as shown in Figure 19-3.
4. You see an empty list of configured sessions the first time you invoke HOD, as shown in Figure 19-4 on page 442.
441
8093ch14.fm
Click the Add Sessions button. It will present you with different types of sessions you can configure, as shown in Figure 19-5.
5. Double click 3270 Display. Figure 19-6 on page 443 is an example of how we configured Japanese 3270 for this scenario.
442
8093ch14.fm
a. We chose a meaningful Session Name: demomvs is our test environment; jp is short for Japan/Japanese; cp939 tells us it is using code page 939, and the final 2 stands for 3270 model 2, which has a screen size of 24 row by 80 columns. b. Select the 939 Japan (Latin Extended) host code page. c. Specify the Destination Address prior to using this definition. 6. Click Screen > Font on the left hand navigation pane to select the fonts. Figure 19-7 on page 444 shows the non-fixed, plain, monospaced fonts are selected.
443
8093ch14.fm
7. Click the OK button, to see an icon for the newly configured 3270 Display as shown in Figure 19-8 on page 445.
444
8093ch14.fm
8. Double click the icon to start the 3270 session. Reply No to blocking HODApplet when prompted by the security warning shown in Figure 19-9.
445
8093ch14.fm
3. In the Customize Communication dialog Figure 19-11 on page 447, specify: Type of Host: zSeries Interface: LAN Attachment: Telnet3270 4. Click the Link Parameters (L) button.
446
8093ch14.fm
5. In the Host Definition tab of the Telnet3270 dialog, specify the primary Host Name or IP Address in Figure 19-12 on page 448, then click OK.
447
8093ch14.fm
6. Back in the Customize Communication dialog, click the Session Parameters button. The Session Parameters 3270 Host will come up. Select 1388 Chinese from the Host Code-Page list box, as shown in Figure 19-13.
7. Click OK and the click OK again. You have now defined a 3270 session for simplified Chinese. You can save the configuration with a meaningful name using File > Save As, shown in Figure 19-14 on page 449.
448
8093ch14.fm
449
8093ch14.fm
2. The ISPF Settings panel is displayed. Scroll down to find the list of terminal types, and select 3278KN from the list, as shown in Figure 19-16 on page 451.
450
8093ch14.fm
3. Next, we set the Edit mode. Press F3 to exit to save the previous selection and return to the ISPF Primary Option Menu panel. Then, select option 2 EDIT by typing 2 on the Option line, as shown in Figure 19-17 on page 452.
451
8093ch14.fm
4. The EDIT ENTRY PANEL is displayed. Scroll down to find the option MIXED MODE, and set it to Y, as shown in Figure 19-18.
5. To set the OLIST DBCS support option in IPT, you can use the ISET command shortcut. On any panel, type the command ISET, as shown in Figure 19-19.
452
8093ch14.fm
6. The SETTING IBMIPT DEFAULTS panel is displayed. For OLIST, type O, as shown in Figure 19-20.
7. Then, in the OLIST OBJECT LIST OPTIONS panel, set the option for the field DOUBLE-BYTE-CHARACTER-SET (DBCS) SUPPORT to Y, and set the option for the field IF DBCS SUPPORTED, USE CASE-SENSITIVE SEARCH STRINGS to N, as shown in Figure 19-21.
453
8093ch14.fm
Now, we have finished all of the configurations for OLIST DBCS support.
We have several files that are based on these five records, including the file that is shown in Figure 19-22, that will be included in our Object List. 1. Type OL DNET481.IPTTEST.* to create a temporary Object List of these files, as shown in Figure 19-23 on page 455.
454
8093ch14.fm
2. A temporary Object List has been created, which lists all of the datasets that match this pattern. Enter the Main command SAVE DBCS to save this list as a permanent OLIST named DBCS, as shown in Figure 19-24 on page 456.
455
8093ch14.fm
Then, the confirmation panel shown in Figure 19-25 is displayed. DBCS was saved as a permanent OLIST for later use.
456
8093ch14.fm
3. From IPT Version 6.1, OLIST titles and comment lines can include DBCS character strings. This capability gives the OLIST and its objects a more meaningful description. Next, we add DBCS titles and comment lines in OLIST DBCS. Place the cursor in the description area, and press Enter. Currently, the description is LEVEL DNET481.IPTTEST.*, as shown in Figure 19-26.
4. A pop-up panel is displayed. Type the description that you want, and press Enter, as shown in Figure 19-27 on page 458. We chose CHINESE OLIST .
457
8093ch14.fm
Figure 19-28 shows how the description of our OLIST has changed to mixed DBCS.
5. To add one comment line, use the UPDATE command, as shown in Figure 19-29.
458
8093ch14.fm
6. In an EDIT panel, insert a line. Use the I line command, as shown in Figure 19-30.
459
8093ch14.fm
Finally, the OLIST looks like the panel that is shown in Figure 19-32.
As you can see, mixed DBCS titles and comments are an extremely useful feature that can give OLIST and its objects more meaningful descriptions and make an OLIST more like a private desktop.
460
8093ch14.fm
2. The command results in Figure 19-34 on page 462, which lists all of the datasets included in object list DBCS. Here, we try to find a DBCS only string by entering a Find Text command, FT , as shown in Figure 19-34 on page 462.
461
8093ch14.fm
The first match is found in DNET481.IPTTEST.DBCS.PDS01, member MEM01, as shown in Figure 19-35.
462
8093ch14.fm
We can use F5 several times to find all of the matches, then use F7 back to the top of the list, as shown in Figure 19-36.
We performed many scenarios against the permanent OLIST DBCS. Table 19-1 shows the results.
Table 19-1 Other test scenarios Scenario FT FT FT FT FT FT [improper string] Result Success Success Success Success Success Success or failure, it depends Find improper substring in improper DBCS string. Improper DBCS is treated as SBCS. Find mixed DBCS substring in mixed DBCS string, case insensitive.S Comment Find 1-chracter only DBCS string. Find DBCS only substring in DBCS only string. Find DBCS only substring in mixed DBCS string
463
8093ch14.fm
Comment Find that mixed DBCS substring does not exist in mixed DBCS string.
We get the SETTING IBMIPT DEFAULTS panel. Choose option M, as shown in Figure 19-38 on page 465.
464
8093ch14.fm
Then, we see Figure 19-39. Set DOUBLE-BYTE-CHARACTER-SET(DBCS) SUPPORT to Y, and set IF DBCS SUPPORTED, USE CASE-SENSITIVE SEARCH STRINGS to N, as shown in Figure 19-39.
465
8093ch14.fm
2. Issue the Find Text command and include the DBCS search string against the MSL, as shown in Figure 19-41.
Figure 19-41 Find Text command including DBCS search string, part 1
466
8093ch14.fm
The first match that is found in member MEM03 is displayed, as shown in Figure 19-42 on page 467.
Figure 19-42 Find Text command include DBCS search string, part 2
3. Next, try to use another MSL command, Global Find for DBCS, as shown in Figure 19-43.
467
8093ch14.fm
We tried many situations, single character and multi-characters, pure DBCS and mixed DBCS, full string and substring, proper and improper string, and get the following conclusion. The MSL commands Find Text and GlobalFind fully support DBCS, and improper DBCS is treated as SBCS. Examples of improper DBCS include strings that are not enclosed between a pair of SO (shift out) and SI (shift in) control characters.
468
8093ch14.fm
1. We can manually add an MSL title using the ( line command as shown in Figure 19-46 on page 470.
469
8093ch14.fm
2. We specify the MSL Title SIMPLIFIED CHINESE WTO 'VSAM ' as shown in Figure 19-47.
3. After pressing Enter, the member title appears , together with message IQIM446 Member "WTOCN" has a new title. Figure 19-48 on page 471 shows the member title but not the IQIM446 message.
470
8093ch14.fm
By using member title, the team can display a short description against each JCL member. They can toggle between viewing ISPF member statistics and the MSL Title using command SHOWTITL. Each member title can be updated using the same ( line command or the ) line command. Notice when we update an existing member title, the CONFIRM field is set to N, as shown in Figure 19-49.
4. We replace the existing DBCS title with the following DBCS title: WTO 'VSAM ' We also change the userkey from blank to TODO. Remember to enter Y to confirm update of title, as shown in Figure 19-50 on page 472.
471
8093ch14.fm
5. Press Enter and the title is now updated, as shown in Figure 19-51.
In this example: WTOCN is the 8 byte member name. Starting at position 10 for 50 bytes is the member title. Starting at position 61 for 8 bytes is the userkey.
472
8093ch14.fm
The SYSPRINT from IQIBUTIL displays the content of the member title list, as shown in Figure 19-53.
Two things to note: The IQIB032I message shows the current content of the member titles, not what has been updated for this IQIBUTIL execution. For example, if there are already 2 titles, and this execution adds 1 title, the list will show 3 titles, not 1. DBCS text will not display correctly in this report, but it does display correctly in MSL Titles, as shown in Figure 19-54.
19.6.3 A sample job to generate TITLEMIG input to create member titles / user keys
In this scenario, the team follows a convention for adding a special JCL comment in every JCL member (a short description prefixed with //*$). We now show you a sample job which uses a combination of SuperC and DFSORT to generate TITLEMIG input. This has the advantage of: Being able to run this batch job periodically to generate TITLEMIG input which has the latest comments. Leaving ISPF member statistics untouched even though the MSL titles changes Example 19-1 on page 474 shows the job that creates input to the titles batch update. This can be the basis of a small indexing job which helps keep the description for each member current in the MSL titles. The job consists of three steps:
473
8093ch14.fm
1. Use SuperC to search for //*$ in a partition data set. 2. use DFSORT to reformat output from Superc into the required format by titles update function of the IPT batch utility 3. use IPT batch utility to create titles member, ready to update MSL titles Since SuperC ends with return code 1 if it finds anything, we expect this job to end with a return code of 1 if it is to be successful. Member Z999TITL will be added or updated. The first part of the job sets up symbolics and allocates temporary data sets for later as shown in Example 19-1.
Example 19-1 Job to extract special comments from a PDS for TITLEMIG part 1
//INDEXJOB JOB //*-------------------------------------------------------------------//*$ GENERATE DESCRIPTIONS FOR A JCL LIBRARY //*-------------------------------------------------------------------//* // SET FOUNDOUT=&SYSUID..INDEXJCL.FOUNDOUT // SET TITLEMIG=&SYSUID..INDEXJCL.TITLEMIG // SET IPTLOAD=IPT.V7R1.SIQILOAD // SET IPTPLIB=IPT.V7R1.SIQIPLIB //* SET LIB=&SYSUID..SAMPLE.JCL.CN * YOUR LIBRARY // SET LIB=DDS3292.SAMPLE.JCL.CN * YOUR LIBRARY //* //*-------------------------------------------------------------------//* ALLOCATE TEMPORARY DATA SETS //*-------------------------------------------------------------------//* //ALLOC EXEC PGM=IEFBR14,COND=(00,NE) //OUTDD DD DSN=&FOUNDOUT.,SPACE=(50000,(50,10)), // UNIT=SYSDA,DISP=(NEW,CATLG,DELETE) //OUTDD2 DD DSN=&TITLEMIG.,SPACE=(50000,(50,10)), // DSORG=PS,RECFM=FB,LRECL=80, // UNIT=SYSDA,DISP=(NEW,CATLG,DELETE) //* The 2nd part of this job uses SuperC to all the //*$ lines. It assumes each member has only one such line as shown in Example 19-2 on page 474.
Example 19-2 Job to extract special comments from a PDS for TITLEMIG part 2
//*-------------------------------------------------------------------//* USE SUPERC TO FIND MEMBERS WITH //*$ //*-------------------------------------------------------------------//* //STEP010 EXEC PGM=ISRSUPC,PARM=(SRCHCMP,'IDPFX') //NEWDD DD DSN=&LIB,DISP=SHR //OUTDD DD DISP=OLD,DSN=&FOUNDOUT. * PS FBA 133 3325 //SYSIN DD * SRCHFOR '//*$',1 /* //*
474
8093ch14.fm
The 3rd part of this job uses DFSORT / ICEMAN to reformat the SuperC output as shown in Example 19-3 on page 475.
Example 19-3 Job to extract special comments from a PDS for TITLEMIG part 3
//*-------------------------------------------------------------------//* REFORMAT SUPERC OUTPUT FOR TITLEMIG //*-------------------------------------------------------------------//* //STEP020 EXEC PGM=ICEMAN,COND=(01,LT) //SORTIN DD DISP=SHR,DSN=&FOUNDOUT. //SYMNAMES DD * MBRNAME,02,08,CH * PATTERN,20,04,CH * DESC,25,50,CH * ASSUMES BLANK /* //SYSIN DD * SORT FIELDS=(COPY) OUTREC FIELDS=(MBRNAME,X,DESC,X,8X,12X) INCLUDE COND=(PATTERN,EQ,C'//*$') /* //*SORTOUT DD SYSOUT=*,LRECL=80,RECFM=FB //SORTOUT DD DISP=OLD,DSN=&TITLEMIG. //SYMNAMES DD DUMMY * //SYMNOUT DD SYSOUT=* //SYSOUT DD SYSOUT=* //* Figure 19-56 shows reformatted SuperC output in TITLEMIG format. Only the first 50 bytes of the each comment is used for the title. In this particular example, we did not specify any user key.
475
8093ch14.fm
The 4th and final part of the job runs TITLEMIG via the ITP batch utility, and optionally deletes temporary files used in the job as shown in Example 19-4 on page 476.
Example 19-4 Job to extract special comments from a PDS for TITLEMIG part 4
//*-------------------------------------------------------------------//* RUN TITLEMIG //*-------------------------------------------------------------------//* //UPDTITL EXEC PGM=IQIBUTIL, // PARM='TITLEMIG,REPLACE,L=YES',COND=(01,LT) //STEPLIB DD DISP=SHR,DSN=&IPTLOAD. //IQIBUDFL DD DISP=SHR,DSN=&IPTPLIB. //SYSPRINT DD SYSOUT=* //SYSUT2 DD DISP=OLD,DSN=&LIB. //SYSUT1 DD DISP=SHR,DSN=&TITLEMIG. //* //*-------------------------------------------------------------------//* DELETE TEMPORARY FILES //*-------------------------------------------------------------------//* //DELETE EXEC PGM=IEFBR14,COND=(00,LE) //*ELETE EXEC PGM=IEFBR14,COND=(01,LT) //OUTDD DD DSN=&FOUNDOUT.,DISP=(OLD,DELETE) //OUTDD2 DD DSN=&TITLEMIG.,DISP=(OLD,DELETE)
//*
476
8093ch14.fm
We can now issue TITLE from MSL , as shown in Figure 19-58 on page 478.
477
8093ch14.fm
We see the IQIM454 message to let us know that the MSL Title List is refreshed. Notice we dont see the titles yet because by default, SHOWTITL is OFF. So we issue SHOWT to toggle to SHOWTITL ON, as shown in Figure 19-60 on page 479.
478
8093ch14.fm
Press Enter to display MSL titles and user keys, as shown in Figure 19-61 on page 480.
479
8093ch14.fm
Our team can now view the member description and the workflow status. The DBCS text shows up correctly in member titles. They can also view the ISPF member statistics by toggling command SHOWT . Notice that members DCLEMP, EMP, TCARA and TCARA2 do not have any member title because they are actually not JCL members. Member Z999TITL is where IPT stores a permanent copy of the titles and user keys. So it is not a JCL member either. In the next section, we will show some very simple ways of making this view more helpful for some tasks.
480
8093ch14.fm
We chose to prefix the command with a reset (RES) to show the full list of members prior to the HIDE command. RES simply resets the display as specified by the RES parameters or default. In our case, the RENAME field, if non-empty, will not be cleared. REF refreshes the list from the start as if you just reentered it. Press Enter to get the filtered list, as shown in Figure 19-63 on page 482. Notice user key of BYPASS is not hidden. If we want to hide PASS and BYPASS, we can use either of the following commands: HID) *PASS HID) PASS .CO (contain)
481
8093ch14.fm
As shown by the green text above, 9 members have been hidden, leaving 8. Does it mean 9 members have passed? We issue the FLIP command to see what has been hidden. The result is shown in Figure 19-64.
Only 4 members have a userkey value of PASS. The other 5 members listed are those without any member title / user key. Note: Beware of members without title / user keys when using HIDE commands. They are also selected.
482
8093ch14.fm
It may make sense not to make sure every member has a member title, or make sure we use FLIP to check what has been hidden. It may make sense to give these members a special user key.
483
8093ch14.fm
Press Enter and specify the MSL commands REF; HID) *PASS; HID) FAIL; HID) OA*; as shown in Figure 19-66.
Once we have entered the commands, press Enter to run them. We can then issue TAI in future to execute the same commands, until these get redefined. Use A TAILOR to find out more about TAILOR using ASSIST. Figure 19-67 on page 485 shows the result of running the three HID) commands defined in TAILOR.
484
8093ch14.fm
We have members assigned to Tom, Dick and Harry for review, and one member yet to be assigned. We can use the ) line command to update the user key.
485
8093ch14.fm
Some of the members do not have any titles or user keys because they are not actually jobs. All other members have user key values of PASS, FAIL, BYPASS or a problem record identifier like OA*. This means that we have finished a cycle of testing. To clear out the titles and user keys, we issue the short form of the TITLE primary command (TIT) and press Enter. From the MSL member titles list management panel, select option 3 to blank out all member titles as shown in Figure 19-70 on page 487
486
8093ch14.fm
Press Enter to process the command. We are presented with the ISPF member statistics view as shown in Figure 19-71 on page 488
487
8093ch14.fm
Figure 19-71 MSL Title List now empy; Back to member statistics
Notice that the ISPF statistics have not changed while we updated titles. To load up the member titles again, repeat the steps outlined in 19.6.3, A sample job to generate TITLEMIG input to create member titles / user keys on page 473 and 19.6.4, Creating a view with member titles and user keys on page 477. You should end up with MSL title list with blank user keys as shown in Figure 19-72 on page 489, ready for the next test cycle.
488
8093ch14.fm
Figure 19-72 MSL Title List with member descriptions and blank user keys
489
8093ch14.fm
490
8093ch15_s.fm
20
Chapter 20.
491
8093ch15_s.fm
492
8093ch15_s.fm
An * (asterisk) represents any string of 0 to 8 characters. A % (percent sign) represents any single character. For example, the following control statement targets all member names starting with X and having MRO in character positions 3 to 5: SELECT MEMBER=(X%MRO*) New member name pattern masks are specified via the MEMBER keyword parameter of a SELECT statement following the same syntax convention as for standard new member names. An = (equal sign) represents the character in the same position in the target name. In the example below, all member names starting with X and having MRO in character positions 3 to 5, are renamed with new names that have IBM in positions 3 to 5 and the same characters in all other positions. SELECT MEMBER=((X%MRO*,==IBM===)) If the new member name mask length is less than 8, longer original member names are truncated.
493
8093ch15_s.fm
MONTH (or M) same as AGE=31 QUARTER (or Q) same as AGE=93 YEAR or (Y) same as AGE=365 CLASS=<class> This parameter directs IQIBUTIL to use the specified SYSOUT class for any dynamically allocated output report data sets written to DD statement IQIBUPRT and IQIBUDOC. The class value may be any valid SYSOUT class character including *. COMPAT This parameter directs IQIBUTIL to use enforce IEBCOPY's stricter syntax rules. COPYSEQ (or CQ) This parameter directs IQIBUTIL to generate a control statement to perform a COPYSEQ operation. EMPTY This parameter directs IQIBUTIL to generate a control statement to perform an EMPTY operation. EXPDIR A control statement to perform an EXPDIR operation is generated by IQIBUTIL. HELP This parameter directs IQIBUTIL to write a listing of the Online User Guide to the sequential data set specified by IQIBUDOC DD statement as shown in Example 20-2.
Example 20-2 Write a listing of Online User Guide to sequential data set
//HELP EXEC PGM=IQIBUTIL,PARM='HELP' //IQIBUDFL DD DISP=SHR,DSN=IQI.SIQIPLIB //IQIBUDOC DD DISP=SHR,DSN=A860059.IQIBUDOC.DS In this example, the Online User Guide is written to data set A860059.IQIBUDOC.DS. INDISP=<disp> A disposition can be set for data sets that are dynamically allocated via the INDSN= parameter ( Example 20-3). The disp keyword can be OLD or SHR (SHR is the default).
Example 20-3 Set disposition for dynamically allocated INDSN data sets
//JOBLIB DD DISP=SHR,DSN=IQI.SIQILOAD //JOBSTEP EXEC PGM=IQIBUTIL, // PARM='LIST=YES,INDISP=SHR,OUTDISP=OLD' //IQIBUDFL DD DISP=SHR,DSN=IQI.SIQIPLIB //SYSPRINT DD SYSOUT=* //SYSIN DD * COPY INDSN=LIB1, OUTDSN=LIB2 SELECT MEMBER=(ABC) In this example, INDISP of SHR is specified on the EXEC PARM statement. This is the disposition that will be set for INDSN LIB1. LISTDIR (or DIRLIST) This parameter directs IQIBUTIL to generate a control statement to perform a LISTDIR operation. MAPPDS (or PDSMAP or MAP) 494
Improving Productivity with ISPF Productivity Tool V7.1
8093ch15_s.fm
IQIBUTIL generates a control statement to perform a MAPPDS operation when this parameter is specified. MAXRC=<n> When running multiple utility operations, you can set a limit for an acceptable utility step return code. If the limit is reached, all remaining operations are skipped. <n> is a decimal number of up to 4 digits. A zero value has no effect (same as omitted). MEMRULE=<n> This parameter sets the member naming convention rule as follows: n=1 Accept only member names with upper-case alpha or numeric or national symbol characters. n=2 Accept, in addition to those included when MEMRULE=1: _ (X'6D') { (X'C0').
n=3 Accept, in addition to those included when MEMRULE=2, all printable special characters except: *, %, (, ), , and (blank). The value of <n> cannot be higher than the site-wide IPT customization setting for this rule. MOVE This parameter directs IQIBUTIL to generate a control statement to perform a MOVE operation. NUMBER=<n> or N=<n> This parameter sets a default number of directory blocks to be used in a EXPDIR operation or default number of deleted members to be used in a RECOVER operation. The number <n> is either ALL or a decimal number of up to 6 digits. The maximum acceptable number of directory blocks in an EXPDIR operation is 99. OUTDISP=<disp> A disposition can be set for data sets that are dynamically allocated via the OUTDSN= parameter (Example 20-4). The disp keyword can be OLD or SHR (SHR is the default).
Example 20-4 Set disposition for dynamically allocated OUTDSN data sets
//JOBLIB DD DISP=SHR,DSN=IQI.SIQILOAD //JOBSTEP EXEC PGM=IQIBUTIL, // PARM='LIST=YES,INDISP=SHR,OUTDISP=OLD' //IQIBUDFL DD DISP=SHR,DSN=IQI.SIQIPLIB //SYSPRINT DD SYSOUT=* //SYSIN DD * COPY INDSN=LIB1, OUTDSN=LIB2 SELECT MEMBER=(ABC) In this example, OUTDISP of OLD is specified on the EXEC PARM statement. This is the disposition that will be set for OUTDSN LIB2. PASSTHRU
495
8093ch15_s.fm
This parameter directs IQIBUTIL to accept only IEBCOPY supported control statements for standard IEBCOPY operations. This does not apply to ALIAS, COPYSEQ, DELETE, EMPTY, EXPDIR, LISTDIR, MAPPDS, RECOVER, TITLEIMP, TITLEMIG and TITLELIST IQIBUTIL operations. RC4NODEL Specifying this parameter causes IQIBUTIL to set return code 4 when a DELETE operation fails to delete one or more members. Example 20-5
Example 20-5 Delete operation with PARM=RC4NODEL
//DELETE EXEC PGM=IQIBUTIL,PARM='RC4NODEL' //STEPLIB DD DISP=SHR,DSN=IQI.SIQILOAD //IQIBUDFL DD DISP=SHR,DSN=IQI.SIQIPLIB //MYLIB DD DISP=OLD,DSN=A860059.PDSE.LIB //SYSPRINT DD SYSOUT=* //SYSIN DD * DELETE O=MYLIB SELECT MEMBER=(A123,B345,XYZ) The input library does not contain members A123 and XYZ. These members are not deleted and are listed as irrelevant filters. The return code from the DELETE execution is set to 4 because of the RC4NODEL specification. This result is reflected in the SYSPRINT shown in Example 20-6.
Example 20-6 SYSPRINT showing failed delete
<000001> DELETE O=MYLIB <000002> SELECT MEMBER=(A123,B345,XYZ) IQIB008I INITIATING "DELETE" COMMAND STEP PROCESSING AT 18:48:22.06 ON 2012/10/2 IEB1179W CONTROL STATEMENT USER EXIT SET HIGHEST RC=4 AND REASONCODE=X'00000000FFFFFFFF' IQIB031W IRRELEVANT FILTER: <000002> SELECT MEMBER=A123 IQIB031W IRRELEVANT FILTER: <000002> SELECT MEMBER=XYZ IQIB500I END OF UTILITY PROCESSING AT 18:48:22.06 ON 2012/10/21 IEB151I JOB HAS TERMINATED WITH ERROR(S) IEB147I END OF JOB - 4 WAS HIGHEST SEVERITY CODE If RC4NODEL was not specified the return code would be set to zero. RECOVER Specifying this parameter causes IQIBUTIL to generate a control statement to perform a RECOVER operation. TITLEIMP A control statement to perform a TITLEIMP operation is generated by this specification. TITLEMIG Specifying this parameter causes IQIBUTIL to generate a control statement to perform a TITLEMIG operation. TITLELIST Specifying this parameter causes IQIBUTIL to generate a control statement to perform a TITLELIST operation. USERID=<userid>
496
8093ch15_s.fm
Specifying this parameter causes IQIBUTIL to restrict member selection by userid of most recent update, stored in the user data of a directory entry containing standard ISPF statistics data. <userid> is a string of up to 7 characters long. It can be either a distinct user ID or a pattern mask with * and % wild card characters.
NP DDNAME StepName ProcStep DSID Owner C Dest Rec-Cnt Page JESMSGLG JES2 2 A860059 H LOCAL 19 JESJCL JES2 3 A860059 H LOCAL 8 JESYSMSG JES2 4 A860059 H LOCAL 28 SYSPRINT COPYSTEP 102 A860059 H LOCAL 18 IQIBUDOC COPYSTEP 104 A860059 A LOCAL 1,318
20.4.1 ALIAS
The ALIAS control statement, shown in Example 20-8, indicates an operation to add alias names to one or more members of a partitioned data set.
Example 20-8 Add alias names to two members of PDS A860059.ALIASTST
497
8093ch15_s.fm
//JOBLIB DD DISP=SHR,DSN=IQI.SIQILOAD //ALIASSTP EXEC PGM=IQIBUTIL //IQIBUDFL DD DISP=SHR,DSN=IQI.SIQIPLIB //SYSPRINT DD SYSOUT=* //SYSIN DD * ALIAS OUTDSN=(A860059.ALIASTST,SHR),LIST=YES SELECT MEMBER=((ABC12345,XYZ0301),(DEF6789A,ABC6789A)) /* The contents of PDS A860059.ALIASTST before the operation are shown in Example 20-9.
Example 20-9 Contents of A860059.ALIASTST before execution of ALIAS statement
NAME RENAME LIB SIZE TTR ALIAS-OF AC RENT REFR REUS TEST ABC12345 1 00000D00 00261E 00 DEF6789A 1 00000D00 002627 00 The contents of PDS A860059.ALIASTST are changed after execution of ALIAS statement, as shown in Example 20-10.
Example 20-10 Contents of A860059.ALIASTST after execution of ALIAS statement
NAME RENAME LIB SIZE TTR ALIAS-OF AC RENT REFR REUS TEST ABC12345 1 00000D00 00261E 00 ABC6789A 1 00000D00 002627 DEF6789A 00 DEF6789A 1 00000D00 002627 00 XYZ0301 1 00000D00 00261E ABC12345 00 The ALIAS control statement specifies LIST=YES, which indicates the names of the aliased members are to be listed in the SYSPRINT data set, as shown in .
Example 20-11 SYSPRINT when LIST=YES is specified on ALIAS statement
IQIB008I INITIATING "ALIAS" COMMAND STEP PROCESSING AT 14:36:58.67 ON 2012/10/09 IQIB021I MEMBER "ABC12345" HAS AN ALIAS NAME "XYZ0301" IQIB021I MEMBER "DEF6789A" HAS AN ALIAS NAME "ABC6789A"
20.4.2 COMPRESS
The COMPRESS control statement, shown in Example 20-12, indicates an operation to compress a PDS. The OUTDD= parameter is abbreviated O= and LIST=YES is specified.
Example 20-12 Compress the PDS defined by MYLIB DD
//COMPRESS JOB ,, // MSGLEVEL=(1,1),MSGCLASS=H,CLASS=A,TIME=1440,NOTIFY=&SYSUID //JOBLIB DD DISP=SHR,DSN=IQI.SIQILOAD //COMPRESS EXEC PGM=IQIBUTIL //IQIBUDFL DD DISP=SHR,DSN=IQI.SIQIPLIB //SYSPRINT DD SYSOUT=* //MYLIB DD DSN=A860059.PDS,DISP=SHR //SYSIN DD * COMPRESS O=MYLIB,LIST=YES /*
498
8093ch15_s.fm
Example 20-13 shows the SYSPRINT data set from this example.
Example 20-13 SYSPRINT data set when LIST=YES is specified on COMPRESS statement
IEB1018I COMPRESSING PDS OUTDD=MYLIB VOL=HSM943 DSN=A860059.PDS IEB152I XYZ12345 COMPRESSED - WAS ALREADY IN PLACE AND NOT MOVED IEB152I XYZDEFGH COMPRESSED - WAS ALREADY IN PLACE AND NOT MOVED IEB152I XYZ98765 COMPRESSED - WAS ALREADY IN PLACE AND NOT MOVED IEB152I MEM101 COMPRESSED - WAS ALREADY IN PLACE AND NOT MOVED IEB152I MEM201 COMPRESSED - WAS ALREADY IN PLACE AND NOT MOVED IEB152I MEM401 COMPRESSED - WAS ALREADY IN PLACE AND NOT MOVED IEB152I MEM501 COMPRESSED - WAS ALREADY IN PLACE AND NOT MOVED IEB152I MEM303 COMPRESSED - WAS ALREADY IN PLACE AND NOT MOVED IEB152I MEM606 COMPRESSED - WAS ALREADY IN PLACE AND NOT MOVED IEB152I A123 COMPRESSED - WAS ALREADY IN PLACE AND NOT MOVED IEB152I MEMBER01 COMPRESSED - WAS ALREADY IN PLACE AND NOT MOVED IEB153I ALL MEMBERS COMPRESSED - ALL WERE ORIGINALLY COMPRESSED When LIST=NO is specified, SYSPRINT shows a summary of the compress operation, as shown in Example 20-14.
Example 20-14 SYSPRINT data set when LIST=NO is specified on COMPRESS statement
IEB1018I COMPRESSING PDS OUTDD=MYLIB VOL=HSM943 DSN=A860059.PDS IEB153I ALL MEMBERS COMPRESSED - ALL WERE ORIGINALLY COMPRESSED
20.4.3 COPYSEQ
The COPYSEQ control statement indicates an operation to consecutively copy one or more members of a partitioned data set into a sequential data set. The command can also be used to copy one sequential data set to another sequential data set with the same or different record format with the same or different record length. In Example 20-15, member names that begin with INTR0 are consecutively copied, with the exception of those that begin with INTR09. Then members REPORT1, REPORT2 and REPORT3 are copied.
Example 20-15 Use COPYSEQ to copy PDSE members to sequential data set
//COPYSEQ1 JOB ,, // MSGLEVEL=(1,1),MSGCLASS=H,CLASS=A,TIME=1440,NOTIFY=&SYSUID //JOBLIB DD DISP=SHR,DSN=IQI.SIQILOAD //COPYSEQ1 EXEC PGM=IQIBUTIL //IQIBUDFL DD DISP=SHR,DSN=IQI.SIQIPLIB //SYSPRINT DD SYSOUT=* //INPDSE DD DSN=A860059.RELEASE.DOCLIB,DISP=SHR //WORKDOC DD DSN=A860059.RELEASE.WORKDOC,DISP=OLD //SYSIN DD * COPYSEQ I=INPDSE,O=WORKDOC S M=REPORT3,REPORT2,REPORT1, INTR0* EXCLUDE M=INTR09* /* The contents of PDSE, A860059.RELEASE.DOCLIB are shown in Example 20-16 on page 500.
499
8093ch15_s.fm
NAME RENAME LIB VV.MM CREATED CHANGED SIZE INIT MOD USERID INTR0111 1 01.00 12/10/08 12/10/08 10:49 62 62 0 A860059 INTR0222 1 01.00 12/10/08 12/10/08 10:49 62 62 0 A860059 INTR0333 1 01.00 12/10/08 12/10/08 10:49 62 62 0 A860059 INTR0551 1 01.00 12/10/08 12/10/08 10:48 62 62 0 A860059 INTR0991 1 01.00 12/10/08 12/10/08 10:49 62 62 0 A860059 INTR0992 1 01.00 12/10/08 12/10/08 10:49 62 62 0 A860059 INTR0993 1 01.00 12/10/08 12/10/08 10:49 62 62 0 A860059 REPORT1 1 01.00 12/10/08 12/10/08 10:47 62 62 0 A860059 REPORT2 1 01.00 12/10/08 12/10/08 10:47 62 62 0 A860059 REPORT3 1 01.00 12/10/08 12/10/08 10:47 62 62 0 A860059 REPORT4 1 01.00 12/10/08 12/10/08 10:48 62 62 0 A860059 REPORT5 1 01.00 12/10/08 12/10/08 10:48 62 62 0 A860059 REPORT6 1 01.00 12/10/08 12/10/08 10:48 62 62 0 A860059 REPORT7 1 01.00 12/10/08 12/10/08 10:48 62 62 0 A860059 The selected members are copied in ascending order of member name regardless of their selection order. This is reflected in the SYSPRINT output as shown in Example 20-17.
Example 20-17 SYSPRINT data set for COPYSEQ operation
INITIATING "COPYSEQ" COMMAND STEP PROCESSING AT 20:06:07.95 ON 2012/10/21 MEMBER "INTR0111" COPIED INTO DATASET "A860059.RELEASE.WORKDOC" MEMBER "INTR0222" COPIED INTO DATASET "A860059.RELEASE.WORKDOC" MEMBER "INTR0333" COPIED INTO DATASET "A860059.RELEASE.WORKDOC" MEMBER "INTR0551" COPIED INTO DATASET "A860059.RELEASE.WORKDOC" MEMBER "REPORT1" COPIED INTO DATASET "A860059.RELEASE.WORKDOC" MEMBER "REPORT2" COPIED INTO DATASET "A860059.RELEASE.WORKDOC" MEMBER "REPORT3" COPIED INTO DATASET "A860059.RELEASE.WORKDOC"
20.4.4 DELETE
The DELETE control statement indicates an operation to delete one or more members of a partitioned data set. Example 20-18 shows a DELETE control statement that uses member pattern masks to select and excluded members
Example 20-18 DELETE operation using member pattern masks to EXCLUDE/SELECT members
//DELETE1 JOB ,, // MSGLEVEL=(1,1),MSGCLASS=H,CLASS=A,TIME=1440 //DELETE EXEC PGM=IQIBUTIL //STEPLIB DD DISP=SHR,DSN=IQI.SIQILOAD //IQIBUDFL DD DISP=SHR,DSN=IQI.SIQIPLIB //MYLIB DD DISP=OLD,DSN=A860059.PDSE.LIB //SYSPRINT DD SYSOUT=* //SYSIN DD * DELETE O=MYLIB EXCLUDE M=A*,B*,C* SELECT MEMBER=(A123,BF05,B345,XYZ,Z01) /*
500
8093ch15_s.fm
EXCLUDE statements with member name pattern masks are processed first, followed by EXCLUDE statements for specific member names, SELECT statements with member name pattern masks, and finally by SELECT statements for specific member names. Example 20-19 shows the MYLIB data set before the delete operation.
Example 20-19 MYLIB data set before the DELETE operation
NAME RENAME LIB VV.MM CREATED CHANGED SIZE INIT MOD USERID BF05 1 01.00 12/10/21 12/10/21 20:20 156 156 0 A860059 BIGSHR 1 01.01 12/08/13 12/10/21 20:14 156 155 0 A860059 B345 1 01.00 12/10/21 12/10/21 20:13 3 3 0 A860059 DF01 1 01.00 12/10/21 12/10/21 20:13 3 3 0 A860059 DSCB1 1 01.00 12/10/21 12/10/21 20:13 3 3 0 A860059 EAREAD 1 01.00 12/10/21 12/10/21 20:13 3 3 0 A860059 ZFS2 1 01.00 12/10/21 12/10/21 20:13 3 3 0 A860059 ZXSETUP 1 01.00 12/10/21 12/10/21 20:13 3 3 0 A860059 Z01 1 01.00 12/10/21 12/10/21 20:14 3 3 0 A860059 After the delete operation, member Z01 is no longer in the data set as shown in Example 20-20.
Example 20-20 MYLIB data set after the DELETE operation
NAME RENAME LIB VV.MM CREATED CHANGED SIZE INIT MOD USERID BF05 1 01.00 12/10/21 12/10/21 20:20 156 156 0 A860059 BIGSHR 1 01.01 12/08/13 12/10/21 20:14 156 155 0 A860059 B345 1 01.00 12/10/21 12/10/21 20:13 3 3 0 A860059 DF01 1 01.00 12/10/21 12/10/21 20:13 3 3 0 A860059 DSCB1 1 01.00 12/10/21 12/10/21 20:13 3 3 0 A860059 EAREAD 1 01.00 12/10/21 12/10/21 20:13 3 3 0 A860059 ZFS2 1 01.00 12/10/21 12/10/21 20:13 3 3 0 A860059 ZXSETUP 1 01.00 12/10/21 12/10/21 20:13 3 3 0 A860059
There are no members in the input data set starting with A or C. Therefore EXCLUDE statements specifying A* and C are marked as irrelevant filters. Member names starting with B are excluded from deletion causing the SELECT statements with BF05 and B345 to be marked as irrelevant filters. Members A123 and XYZ are not present in the input data set and are also marked as irrelevant filters. Example 20-21 shows the SYSPRINT that results from the delete operation.
Example 20-21 SYSPRINT reflecting DELETE operation
INITIATING "DELETE" COMMAND MEMBER "Z01" DELETED IRRELEVANT FILTER: <000002> IRRELEVANT FILTER: <000003> IRRELEVANT FILTER: <000003> IRRELEVANT FILTER: <000003> IRRELEVANT FILTER: <000002> IRRELEVANT FILTER: <000003>
STEP PROCESSING AT 20:35:15.11 ON 2012/10/2 EXCLUDE MEMBER=A* SELECT MEMBER=A123 SELECT MEMBER=BF05 SELECT MEMBER=B345 EXCLUDE MEMBER=C* SELECT MEMBER=XYZ
501
8093ch15_s.fm
20.4.5 EMPTY
The EMPTY control statement indicates the beginning of a deletion operation of all members of a partitioned data set, followed by a compress operation of the data set (PDS only). This command can also erase all data in a physical sequential data set. Example 20-22 shows the EMPTY control statement used to empty a PDSE. The OUTDSN parameter specifies cataloged partitioned data set A860059.PDSE.LIB. A disposition of SHR is indicated.
Example 20-22 Empty a PDSE
//EMPTY1 JOB ,, // MSGLEVEL=(1,1),MSGCLASS=H,CLASS=A,TIME=1440 //JOBLIB DD DISP=SHR,DSN=IQI.SIQILOAD //EMPTYIT EXEC PGM=IQIBUTIL //IQIBUDFL DD DISP=SHR,DSN=IQI.SIQIPLIB //SYSPRINT DD SYSOUT=* //SYSIN DD * EMPTY OUTDSN=(A860059.PDSE.LIB,SHR) /* At the completion of this operation, all members of the PDSE will be deleted. The SYSPRINT data set, shown in Example 20-23, shows processing of the control statement:
Example 20-23 SYSPRINT from the EMPTY operation
IQIB008I INITIATING "EMPTY" COMMAND STEP PROCESSING AT 20:56:49.17 ON 2012/10/21 IQIB014I DATASET "A860059.PDSE.LIB" EMPTIED AT 20:56:49.18 ON 2012/10/21 Example 20-24 shows the EMPTY control statement used to empty a PDS. The OUTDSN parameter, abbreviated ODS, specifies cataloged PDS, A860059.PDS.LIB. A disposition of OLD is indicated. All members of the A860059.PDS.LIB will be deleted.
Example 20-24 Empty a PDS
//EMPTY2 JOB ,, // MSGLEVEL=(1,1),MSGCLASS=H,CLASS=A,TIME=1440,NOTIFY=&SYSUID //JOBLIB DD DISP=SHR,DSN=IQI.SIQILOAD //EMPTYIT EXEC PGM=IQIBUTIL //IQIBUDFL DD DISP=SHR,DSN=IQI.SIQIPLIB //SYSPRINT DD SYSOUT=* //SYSIN DD * EMPTY ODS=(A860059.PDS.LIB,OLD) /* The SYSPRINT data set (Example 20-25) shows the result of this processing. Notice that the PDS is compressed. An EMPTY operation on a PDS automatically triggers a COMPRESS operation after the deletion of all members in the data set.
Example 20-25 SYSPRINT output from the PDS EMPTY operation
IQIB008I INITIATING "EMPTY" COMMAND STEP PROCESSING AT 21:02:07.54 ON 2012/10/21 IQIB014I DATASET "A860059.PDS.LIB" EMPTIED AT 21:02:07.54 ON 2012/10/21 IQIB008I INITIATING "COPY" COMMAND STEP PROCESSING AT 21:02:07.54 ON 2012/10/21 COPY OUTDD=SYS00002 <000002> INDD=SYS00001 <000003> 502
Improving Productivity with ISPF Productivity Tool V7.1
8093ch15_s.fm
IEB1018I COMPRESSING PDS OUTDD=SYS00002 VOL=HSM927 DSN=A860059.PDS.LIB IEB140I SYS00001 REFERENCES A NULL INPUT DATA SET Example 20-26 shows an EMPTY operation on a physical sequential data set. The contents of the physical sequential data set defined by the MYLIB DD statement, A860059.SEQ.DS are deleted. The abbreviation O is used for the OUTDD parameter.
Example 20-26 EMPTY operation on a physical sequential data set
//EMPTY3 JOB ,, // MSGLEVEL=(1,1),MSGCLASS=H,CLASS=A,TIME=1440,NOTIFY=&SYSUID //JOBLIB DD DISP=SHR,DSN=IQI.SIQILOAD //EMPTYIT EXEC PGM=IQIBUTIL //IQIBUDFL DD DISP=SHR,DSN=IQI.SIQIPLIB //SYSPRINT DD SYSOUT=* //MYLIB DD DSN=A860059.SEQ.DS,DISP=SHR //SYSIN DD * EMPTY O=MYLIB /* The SYSPRINT for this example is shown in Example 20-27:
Example 20-27 SYSPRINT results for the EMPTY operation on the physical sequential data set
<000001> EMPTY O=MYLIB IQIB008I INITIATING "EMPTY" COMMAND STEP PROCESSING AT 21:05:39.94 ON 2012/10/21 IQIB014I DATASET "A860059.SEQ.DS" EMPTIED AT 21:05:39.95 ON 2012/10/21
20.4.6 EXPDIR
The EXPDIR statement is used to expand the directory of a PDS data set with one or more directory blocks. The target PDS can be specified using OUTDD or OUTDSN parameters. The OUTDD parameter specifies the DDNAME of the PDS and the OUTDSN parameter specifies the data set name of a cataloged PDS. The number of directory blocks to be added to the PDS directory is specified with the NUMBER parameter. N= is an acceptable abbreviation of NUMBER=. The maximum acceptable value of 'n' is 99. EXPDIR cannot be used to expand the directory of a PDSE.
503
8093ch15_s.fm
Example 20-28 shows the use of EXPDIR to expand the directory of cataloged PDS A860059.IQIBUTIL.PDS by 5 directory blocks. The OUTDSN= parameter is abbreviated using ODS= .
Example 20-28 Expand PDS directory by 5
//EXPDIR JOB ,, // REGION=0M,MSGLEVEL=(1,1), // NOTIFY=&SYSUID,MSGCLASS=H //JOBLIB DD DISP=SHR,DSN=MROTTER.IQI.SIQILOAD //EXPAND EXEC PGM=IQIBUTIL //IQIBUDFL DD DISP=SHR,DSN=MROTTER.IQI.SIQIPLIB //SYSPRINT DD SYSOUT=* //SYSIN DD * EXPDIR ODS=A860059.IQIBUTIL.PDS,N=5 Example 20-29 shows the characteristics of the PDS before the EXPDIR operation. Prior to execution of the JCL in this example the maximum directory block value is 10.
Example 20-29 PDS characteristics before the EXPDIR operation
Data Set Name . . . . : A860059.IQIBUTIL.PDS3 General Data Management class . . : DEFAULT Storage class . . . : STANDARD Volume serial . . . : HSM908 Device type . . . . : 3390 Data class . . . . . : **None** Organization . . . : PO Record format . . . : FB Current Allocation Allocated cylinders : 1 Allocated extents . : 1 Maximum dir. blocks : 10
. . : 1
Example 20-30 shows the characteristics of the PDS after the EXPDIR operation. After execution of the JCL, the maximun directory block value is 15.
Example 20-30 PDS characteristics after the EXPDIR operation
Data Set Name . . . . : A860059.IQIBUTIL.PDS3 General Data Current Allocation Management class . . : DEFAULT Allocated cylinders : 1 Storage class . . . : STANDARD Allocated extents . : 1 Volume serial . . . : HSM908 Maximum dir. blocks : 15 Device type . . . . : 3390 Data class . . . . . : **None** Organization . . . : PO Current Utilization Record format . . . : FB Used cylinders . . : 1 The SYSPRINT data set (Example 20-31) reflects the result of the execution:
Example 20-31 SYSPRINT showing result of EXPDIR operation
504
8093ch15_s.fm
20.4.7 LISTDIR
Use the LISTDIR (or DIRLIST) statement to print a listing of the directory entries of selected (or all) member names of one or more concatenated partitioned data sets. Example 20-32 shows the LISTDIR statement used to print a listing of directory entries in a PDS concatenation. In the example, the INDD specifies a PDS concatenation containing load modules. There are two data sets in the concatenation, CEE.SIBMCAL2 and CEE.SIBMTASK. The output from this operation is directed to the sequential data set defined by the OUT DD statement. The data set name is A860059.DSMAP.
Example 20-32 Print a list of directory entries in a PDS concatenation
//LISTDIR JOB ,, // MSGLEVEL=(1,1),MSGCLASS=H,CLASS=A,TIME=1440,NOTIFY=&SYSUID //JOBLIB DD DISP=SHR,DSN=MROTTER.IQI.SIQILOAD //LISTSTEP EXEC PGM=IQIBUTIL //IQIBUDFL DD DISP=SHR,DSN=IQI.SIQIPLIB //SYSPRINT DD SYSOUT=* //SYSUDUMP DD SYSOUT=A //IN DD DSN=CEE.SIBMCAL2,DISP=SHR // DD DSN=CEE.SIBMTASK,DISP=SHR //OUT DD DSN=A860059.DSMAP,DISP=SHR //SYSIN DD * LISTDIR OUTDD=OUT,INDD=IN,LIST=YES /* As shown in Example 20-33, the load module attributes are included in the output because LIST=YES is specified. When LIST=NO is specified only the member names appear in the output data set.
Example 20-33 Contents of data set defined by OUT DD statement
IBMBPIRA IBMBPIRB IBMBPIRC IBMQICLA IBMQICLB IBMRINP1 IBMUINPL IBMUROOT IBMUSTRT PLICALLA PLICALLB PLISTART
001 001 001 001 001 001 001 001 001 001 001 001
00000350 00000350 00000350 00000020 00000020 00000028 00000028 00000350 00000088 00000020 00000020 00000088
000010 000010 000010 00003B 000044 000007 000007 000010 00001A 00003B 000044 00001A
IBMUROOT 00 31 ANY IBMUROOT 00 31 ANY IBMUROOT 00 31 ANY 00 31 ANY 10748680 00 31 ANY 10748681 IBMUINPL 00 31 ANY 00 31 ANY 10745616 00 31 ANY 10745649 00 31 ANY 10745657 IBMQICLA 00 31 ANY IBMQICLB 00 31 ANY IBMUSTRT 00 31 ANY
10745649 RENT REUS 10745649 RENT REUS 10745649 RENT REUS RENT REUS REFR RENT REUS REFR 10745616 RENT REUS RENT REUS REFR RENT REUS REFR RENT REUS REFR 10748680 RENT REUS 10748681 RENT REUS 10745657 RENT REUS
REFR
505
8093ch15_s.fm
In Example 20-34, DIRLIST is used instead of LISTDIR and the INDD keyword specifies a single PDS. The output from this operation is directed to the sequential data set defined by the OUT DD statement. The data set name is A860059.DSMAP1. The AGE and USERID parameters are specified where AGE has a value of Today, abbreviated T.
Example 20-34 Print a listing of directory entries in a PDS using DIRLIST specification
//DIRLIST JOB ,, // MSGLEVEL=(1,1),MSGCLASS=H,CLASS=A,TIME=1440,NOTIFY=&SYSUID //JOBLIB DD DISP=SHR,DSN=MROTTER.IQI.SIQILOAD //LISTSTEP EXEC PGM=IQIBUTIL //IQIBUDFL DD DISP=SHR,DSN=IQI.SIQIPLIB //SYSPRINT DD SYSOUT=* //SYSUDUMP DD SYSOUT=A //IN DD DSN=DFPFT.WORKLIB.DFSMS,DISP=SHR //OUT DD DSN=A860059.DSMAP1,DISP=SHR //SYSIN DD * DIRLIST OUTDD=OUT,INDD=IN,AGE=T,USERID=A860059,LIST=YES /* Example 20-35 shows the results of the DIRLIST operation, a directory listing of the members changed today by user ID A860059.
Example 20-35 Directory listing of members changed today by USERID A860059
SETPDSXM 001 01.01 2012/11/06 2012/11/12 1:45 SETPDSXX 001 01.06 2012/10/21 2012/11/12 9:31
88 88
86 43
2 A860059 50 A860059
20.4.8 MAPPDS
The MAPPDS control statement is an operation to list locations of all member data extents, of the existing and deleted members in a PDS. Example 20-36 shows the use of the MAPPDS statement to print a listing of the locations of all member data extents in PDS CEE.SIBMCAL2.
Example 20-36 Print listing of locations of all member data extents in PDS CEE.SIBMCAL2
//MAPPDS JOB ,, // MSGLEVEL=(1,1),MSGCLASS=H,CLASS=A,TIME=1440,NOTIFY=&SYSUID //JOBLIB DD DISP=SHR,DSN=MROTTER.IQI.SIQILOAD //MAPSTEP EXEC PGM=IQIBUTIL //IQIBUDFL DD DISP=SHR,DSN=IQI.SIQIPLIB //SYSPRINT DD SYSOUT=* //IN DD DSN=CEE.SIBMCAL2,DISP=SHR //OUT DD DSN=A860059.MAPPDS,DISP=SHR //SYSIN DD * MAPPDS OUTDD=OUT,INDD=IN /* Example 20-37 shows the SYSPRINT with the output records.
Example 20-37 SYSPRINT showing layout of output records
8093ch15_s.fm
| ------- | ------------------------------------------| 1 : 1 | CARRIAGE CONTROL CHARACTER (BLANK) | 2 : 9 | MEMBER DATA EXTENT SEQUENCE NUMBER | 11 : 13 | LIBRARY CONCATENATION NUMBER | 15 : 22 | EXISTING MEMBER NAME | 24 : 31 | DELETED MEMBER SYNONYM NAME | 33 : 38 | MEMBER DATA LOCATION TTR (HEXADECIMAL) | 40 : 47 | MEMBER DATA TOTAL SIZE (HEXADECIMAL) | 49 : 54 | MEMBER DATA NUMBER OF BLOCKS IQIB062I 8 MEMBER NAMES WRITTEN TO "A860059.MAPPDS" DATASET Example 20-38 shows the output data.
Example 20-38 Contents of output data
8 8 8 8 8 8 8 8
20.4.9 MOVE
The MOVE control statement indicates the beginning of a COPY operation from one partitioned data set to another, followed by deletion of all successfully copied input members. Example 20-39 shows the use of the MOVE statement to move members from one partitioned data set to another. The OUTDSN parameter, abbreviated ODS, specifies partitioned data set A860059.TARGET. The INDSN parameter, abbreviated IDS, specifies partitioned data set A860059.SOURCE. The SELECT statement, abbreviated S, specifies two members to be copied and renamed. The MEMBER parameter is abbreviated M. R specifies that all members to be moved from the input data set are to replace any identically named members.
Example 20-39 Move members from one partitioned data set to another
//MOVEMEMS JOB ,, // MSGLEVEL=(1,1),MSGCLASS=H,CLASS=A,TIME=1440,NOTIFY=&SYSUID //JOBLIB DD DISP=SHR,DSN=IQI.SIQILOAD //MOVE EXEC PGM=IQIBUTIL //IQIBUDFL DD DISP=SHR,DSN=IQI.SIQIPLIB //SYSPRINT DD SYSOUT=* //SYSIN DD * MOVE ODS=(A860059.TARGET,OLD),LIST=YES IDS=(A860059.SOURCE,OLD) S M=((MEM100,NEW100,R),(MEM200,NEW200,R)) /*
507
8093ch15_s.fm
Before the move operation, A860059.SOURCE contains the 5 members shown in Example 20-40:
Example 20-40 Contents of A860059.SOURCE before the move
NAME RENAME LIB VV.MM CREATED CHANGED SIZE INIT MOD USERID MEM100 1 01.00 12/10/21 12/10/21 21:20 1548 1548 0 A860059 MEM200 1 01.00 12/10/21 12/10/21 21:20 1548 1548 0 A860059 MEM300 1 01.00 12/10/21 12/10/21 21:19 1548 1548 0 A860059 MEM400 1 01.03 12/07/24 12/10/21 21:19 70 70 0 A860059 MEM500 1 01.06 12/08/01 12/10/21 21:20 12811 3870 0 A860059 After the move operation, A860059.SOURCE contains 3 members, shown in Example 20-41.
Example 20-41 Contents of A860059.SOURCE after the move
NAME RENAME LIB VV.MM CREATED CHANGED SIZE INIT MOD USERID MEM300 1 01.00 12/10/21 12/10/21 21:19 1548 1548 0 A860059 MEM400 1 01.03 12/07/24 12/10/21 21:19 70 70 0 A860059 MEM500 1 01.06 12/08/01 12/10/21 21:20 12811 3870 0 A860059 A860059.TARGET contains the members shown in Example 20-42 at the completion of the MOVE operation.
Example 20-42 Contents of A860059.TARGET after the move
NAME RENAME LIB VV.MM CREATED CHANGED SIZE INIT MOD USERID NEW100 1 01.00 12/10/21 12/10/21 21:20 1548 1548 0 A860059 NEW200 1 01.00 12/10/21 12/10/21 21:20 1548 1548 0 A860059
20.4.10 RECOVER
The RECOVER control statement indicates an operation to recover deleted members of a PDS. Example 20-43 shows the use of the RECOVER control statement to recover deleted members of a PDS. In this example, members of PDS SYS1.MACLIB beginning with ASMM are copied into PDS A860059.RECOVER. The copied members are then deleted with the DELETE control statement and recovered with the RECOVER control statement. The COPY control statement is abbreviated C. INDD and OUTDD are abbreviated I and O respectively. The SELECT control statement is abbreviated S and the MEMBER keyword is abbreviated M.
Example 20-43 Recover deleted members of a PDS
//RECOVER JOB ,, // MSGLEVEL=(1,1),MSGCLASS=H,CLASS=A,TIME=1440,NOTIFY=&SYSUID //JOBLIB DD DISP=SHR,DSN=MROTTER.IQI.SIQILOAD //RECOVER EXEC PGM=IQIBUTIL //IQIBUDFL DD DISP=SHR,DSN=IQI.SIQIPLIB //SYSPRINT DD SYSOUT=* //SYSUDUMP DD SYSOUT=A //FROMDD DD DSN=SYS1.MACLIB,DISP=SHR //MYPDS DD DSN=A860059.RECOVER,DISP=SHR //SYSIN DD * 508
8093ch15_s.fm
C I=FROMDD,O=MYPDS S M=(ASMM*) DELETE OUTDD=MYPDS SELECT MEMBER=ASMM* RECOVER O=MYPDS,NUMBER=10 /* The SYSPRINT in Example 20-44 shows the result of each operation in Example 20-43.
Example 20-44 SYSPRINT showing the results of the operations
IEB167I FOLLOWING MEMBER(S) COPIED FROM INPUT DATA SET REFERENCED BY FROMDD IEB154I ASMMCHKN HAS BEEN SUCCESSFULLY COPIED IEB154I ASMMDOPR HAS BEEN SUCCESSFULLY COPIED IEB154I ASMMDOPR HAS BEEN SUCCESSFULLY COPIED IEB1098I 3 OF 3 MEMBERS COPIED FROM INPUT DATA SET REFERENCED BY FROMDD IQIB008I INITIATING "DELETE" COMMAND STEP PROCESSING AT 16:12:21.81 ON 2012/11/1 IQIB064I 3 MEMBERS DELETED FROM "A860059.RECOVER" DATASET IQIB008I INITIATING "RECOVER" COMMAND STEP PROCESSING AT 16:12:21.82 ON 2012/11/ IQIB065I 3 MEMBERS RECOVERED IN "A860059.RECOVER" DATASET IQIB500I END OF UTILITY PROCESSING AT 16:12:21.84 ON 2012/11/12 IEB147I END OF JOB - 0 WAS HIGHEST SEVERITY CODE As shown in Example 20-45, each recovered member gets an 8 character name of the format <9Ztttttt>; where tttttt is a 6 digit (hexadecimal) location address (i.e., TTR) of the first data block of the member.
Example 20-45 Recovered member names
NAME RENAME LIB 9Z00000F -INV NAM 1 9Z00001F -NOT STD 1 9Z000017 -NOT STD 1
SIZE
TTR ALIAS-OF AC RENT REFR REUS TEST AM RM 0000 Non-standard directory entry 0000 MEMBER NAME=X'F9E9F0F0F0F0F1C6' 0000 MEMBER NAME=X'F9E9F0F0F0F0F1F7'
20.4.11 RENAME
The RENAME control statement indicates an operation to rename one or more members of a partitioned data set. Example 20-46 shows the use of the RENAME statement to rename selected members of a partitioned data set.
Example 20-46 Rename selected members of a partitioned data set
//RENAME1 JOB ,, // MSGLEVEL=(1,1),MSGCLASS=H,CLASS=A,TIME=1440,NOTIFY=&SYSUID //JOBLIB DD DISP=SHR,DSN=IQI.SIQILOAD //RENAME EXEC PGM=IQIBUTIL //IQIBUDFL DD DISP=SHR,DSN=IQI.SIQIPLIB //RENAMEDS DD DISP=SHR,DSN=A860059.RENAMEDS //SYSPRINT DD SYSOUT=* //SYSIN DD * RENAME O=RENAMEDS,LIST=YES SELECT MEMBER=((MEM%01,ZZZ===), (MEM101,NEW101),(MEM201,NEW201),
509
8093ch15_s.fm
(MEM301,NEW301),(MEM401,NEW401), (MEM501,NEW501),(MEM601,NEW601)) EXCLUDE M=%%%5* /* In this example, six-character member names that begin with MEM and end with 01 are renamed with six-character names beginning with ZZZ. Characters in positions 4, 5 and 6 stay the same. MEM501 is not renamed. The other filters are marked as irrelevant. This is reflected in the SYSPRINT data set generated by this operation (Example 20-47):
Example 20-47 SYSPRINT generated by the RENAME operation
IQIB008I IQIB018I IQIB018I IQIB018I IQIB031W IQIB031W IQIB031W IQIB031W IQIB031W IQIB031W
INITIATING "RENAME" COMMAND STEP PROCESSING AT 21:31:19.62 ON 2012/10/2 MEMBER "MEM101 RENAMED TO "ZZZ101" MEMBER "MEM201 RENAMED TO "ZZZ201" MEMBER "MEM401 RENAMED TO "ZZZ401" IRRELEVANT FILTER: <000003> SELECT MEMBER=((MEM101,NEW101)) IRRELEVANT FILTER: <000003> SELECT MEMBER=((MEM201,NEW201)) IRRELEVANT FILTER: <000004> SELECT MEMBER=((MEM301,NEW301)) IRRELEVANT FILTER: <000004> SELECT MEMBER=((MEM401,NEW401)) IRRELEVANT FILTER: <000005> SELECT MEMBER=((MEM501,NEW501)) IRRELEVANT FILTER: <000005> SELECT MEMBER=((MEM601,NEW601))
Example 20-48 shows the data set defined by the RENAME DD statement, A860059.RENAMEDS before the RENAME operation.
Example 20-48 Data set defined by the RENAME DD statement before the RENAME operation
NAME RENAME LIB VV.MM CREATED CHANGED SIZE INIT MOD USERID MEM101 1 01.00 12/10/21 12/10/21 21:19 1548 1548 0 A860059 MEM201 1 01.04 12/07/24 12/10/21 21:29 80 70 0 A860059 MEM303 1 01.06 12/08/01 12/10/21 21:20 12811 3870 0 A860059 MEM401 1 01.00 12/10/21 12/10/21 21:29 70 70 0 A860059 MEM501 1 01.00 12/10/21 12/10/21 21:29 12811 12811 0 A860059 MEM606 1 01.00 12/10/21 12/10/21 21:30 9999 9999 0 A860059 Example 20-49 shows the dataset A860059.DS after RENAME operation.
Example 20-49 Dataset after the RENAME operation
NAME RENAME LIB VV.MM CREATED CHANGED SIZE INIT MOD USERID MEM303 1 01.06 12/08/01 12/10/21 21:20 12811 3870 0 A860059 MEM501 1 01.00 12/10/21 12/10/21 21:29 12811 12811 0 A860059 MEM606 1 01.00 12/10/21 12/10/21 21:30 9999 9999 0 A860059 ZZZ101 1 01.00 12/10/21 12/10/21 21:19 1548 1548 0 A860059 ZZZ201 1 01.04 12/07/24 12/10/21 21:29 80 70 0 A860059 ZZZ401 1 01.00 12/10/21 12/10/21 21:29 70 70 0 A860059
20.4.12 TITLEIMP
The TITLEIMP statement is used to import IPT-managed member titles from one partitioned data set to another partitioned data set. Example 20-50 on page 511 shows the use of the TITLEIMP statement to import an IPT-managed member title list.
510
8093ch15_s.fm
//TITLEIMP JOB ,, // MSGLEVEL=(1,1),MSGCLASS=H,CLASS=H,TIME=1440,NOTIFY=&SYSUID //JOBLIB DD DISP=SHR,DSN=IQI.SIQILOAD //TITLESTP EXEC PGM=IQIBUTIL //STEPLIB DD DISP=SHR,DSN=IQI.SIQILOAD //IQIBUDFL DD DISP=SHR,DSN=IQI.SIQIPLIB //SYSPRINT DD SYSOUT=* //LIB1 DD DISP=SHR,DSN=A860059.IQIBUTIL.LIB1 //LIB2 DD DISP=SHR,DSN=A860059.IQIBUTIL.LIB2 //SYSIN DD * TITLEIMP I=LIB1, O=LIB2, LIST=YES /* As a result of executing the TITLEIMP operation in Example 20-50, the member titles of those member names of data set A860059.IQIBUTIL.LIB1 that also exist in A860059.IQIBUTIL.LIB2 are copied (without replacing existing titles). Example 20-51 shows A860059.IQIBUTIL.LIB1 before execution of TITLEIMP.
Example 20-51 A860059.IQIBUTIL.LIB1 before execution of TITLEIMP
NAME RENAME TITLE........................................... ABCEF TEST CASE 1 BCDEFG TEST CASE 2 MEM00001 member 1 MEM00002 member 2 MEM00003 member 3 Example 20-52 shows A860059.IQIBUTIL.LIB2 before execution of TITLEIMP.
Example 20-52 A860059.IQIBUTIL.LIB2 before execution of TITLEIMP
NAME RENAME TITLE........................................... MEM00001 MEM00002 MEM00003 XBYDEFG XBYXXXX Example 20-53 shows A860059.IQIBUTIL.LIB2 after execution of TITLEIMP.
Example 20-53 A860059.IQIBUTIL.LIB2 after execution of TITLEIMP
NAME RENAME TITLE........................................... MEM00001 member 1 MEM00002 member 2 MEM00003 member 3 XBYDEFG XBYXXXX XBYYYYY In order to display A860059.IQIBUTIIL.LIB2 titles, you need to set display mode to "SHOWTITL ON" .
Chapter 20. Batch Utility IQIBUTIL
511
8093ch15_s.fm
Example 20-54 shows the TITLEIMP specified in PARM field of JCL EXEC statement. This example causes IQIBUTIL to generate a control statement to perform a TITLEIMP operation. The SYSUT1 DD statement defines the library from which member titles are to be imported. The SYSUT2 DD statement defines the library to which the member titles are to be imported.
Example 20-54 TITLEIMP specified in PARM field of JCL EXEC statement
//TITLEIMP JOB ,, // MSGLEVEL=(1,1),MSGCLASS=H,CLASS=A,TIME=1440,NOTIFY=&SYSUID //JOBLIB DD DISP=SHR,DSN=IQI.SIQILOAD //TITLESTP EXEC PGM=IQIBUTIL,PARM=TITLEIMP //STEPLIB DD DISP=SHR,DSN=IQI.SIQILOAD //IQIBUDFL DD DISP=SHR,DSN=IQI.SIQIPLIB //SYSPRINT DD SYSOUT=* //SYSUT1 DD DISP=SHR,DSN=A860059.IQIBUTIL.LIB1 //SYSUT2 DD DISP=SHR,DSN=A860059.IQIBUTIL.LIB2 /*
20.4.13 TITLEMIG
The TITLEMIG control statement creates IPT managed member titles from an input sequential data set. The layout of the migrated title input record is: Member name is listed in columns 1 to 8 Column 9 contains a blank separator Member title is listed in columns 10 to 59 Column 60 contains a blank separator Member key is listed in columns 61 to 68 In order to display the new or updated titles in the output partitioned data set, you need to set your IPT Member Selection List (MSL) display mode to SHOWTITL ON. Example 20-55 shows how to create IPT-managed member titles from an input sequential data set. INDD specifies the DDNAME of a sequential data set containing the migrated title input records. OUTDD specifies the DDNAME of a partitioned data set
Example 20-55 Create IPT managed member titles from input sequential data set
//TITLEMIG JOB ,, // MSGLEVEL=(1,1),MSGCLASS=H,CLASS=A,TIME=1440,NOTIFY=&SYSUID //JOBLIB DD DISP=SHR,DSN=IQI.SIQILOAD //TITLESTP EXEC PGM=IQIBUTIL //STEPLIB DD DISP=SHR,DSN=IQI.SIQILOAD //IQIBUDFL DD DISP=SHR,DSN=IQI.SIQIPLIB //SYSPRINT DD SYSOUT=* //SEQ1 DD DISP=SHR,DSN=A860059.IQIBUTIL.SEQ1 //PDS1 DD DISP=SHR,DSN=A860059.IQIBUTIL.PDS1 //SYSIN DD * TITLEMIG INDD=SEQ1, OUTDD=PDS1, LIST=YES /*
512
8093ch15_s.fm
Example 20-56 shows the A860059.IQIBUTIL.PDS1 partitioned data set before execution of the statement.
Example 20-56 OUTDD data set A860059.IQIBUTIL.PDS1
58 62
17 19
46 H373743 0 A860059
Example 20-57 shows the contents of the INDD data set A860059.IQIBUTIL.SEQ1 containing the migrated title input records.
Example 20-57 INDD data set A860059.IQIBUTIL.SEQ1
ABCDEFGH Member containing test JCL #1 ABC12345 Member containing test JCL #2 ABC98765 Member containing test JCL #3
Because LIST=YES is specified, a member title list report is to be written into the SYSPRINT data set as shown in Example 20-58
Example 20-58 SYSPRINT data set from executing TITLEMIG
IQIB008I INITIATING "TITLEMIG" COMMAND STEP PROCESSING AT 07:05:16.23 ON 2012/11 IQIB033I MEMBER TITLES FROM "A860059.IQIBUTIL.SEQ1" SUCCESSFULLY MIGRATED INTO LIBRARY IQIB032I CURRENT MEMBER TITLES OF LIBRARY: A860059.IQIBUTIL.PDS1 MEMBER TITLE -------- -------------------------------------------------ABCDEFGH Member containing test JCL #1 ABC12345 Member containing test JCL #2 ABC98765 Member containing test JCL #3 -------- -------------------------------------------------IQIB500I END OF UTILITY PROCESSING AT 07:05:16.28 ON 2012/11/19 IEB147I END OF JOB - 0 WAS HIGHEST SEVERITY CODE Example 20-59 shows how to use the TITLEMIG statement to update an IPT-managed member title list in a partitioned data set. TITLEMIG is specified on the EXEC PARM statement and causes generation of the TITLEMIG control statement: TITLEMIG OUTDD=SYSUT2,INDD=((SYSUT1,R))
Example 20-59 Update an IPT-managed member title list in a partitioned data set
//TITLEMIG JOB ,, // MSGLEVEL=(1,1),MSGCLASS=H,CLASS=A,TIME=1440,NOTIFY=&SYSUID //DOTITLES EXEC PGM=IQIBUTIL, // PARM='TITLEMIG,REPLACE,L=YES' //STEPLIB DD DISP=SHR,DSN=IQI.SIQILOAD //IQIBUDFL DD DISP=SHR,DSN=IQI.SIQIPLIB //SYSPRINT DD SYSOUT=* //SYSUT2 DD DISP=OLD,DSN=A860059.PAYROLL.PROD.EMPLOYEE.LIB //SYSUT1 DD * MEMNAME| MEMBER TITLE |USER KEY| EMPLOY#| EMPLOYEE FULL NAME AND ADDRESS |LASTNAME|
513
8093ch15_s.fm
#------- -------------------------------------------------- -------#1234567 EMILY PEARL JONES, 75 FIRST AVE., SAN DIEGO, CA JONES #0000201 JONATHAN GOODMAN, 1 KINGS ROAD, NEWARK, NJ GOODMAN /* Titles are created (or existing ones replaced) for members #1234567 and #0000201 in partitioned data set A860059.PAYROLL.PROD.EMPLOYEE.LIB. The first three records in SYSUT1 are ignored by the TITLEMIG command, because they begin with unacceptable member names. LIST=YES specifies that a member title list report is to be written into the SYSPRINT data set. Example 20-60 shows the A860059.PAYROLL.PROD.EMPLOYEE.LIB after TITLEMIG execution
Example 20-60 A860059.PAYROLL.PROD.EMPLOYEE.LIB after TITLEMIG execution
JONATHAN GOODMAN, 1 KINGS ROAD, NEWARK, NJ EMILY PEARL JONES, 75 FIRST AVE., SAN DIEGO, CA
GOODMAN JONES
Example 20-61 shows the SYSPRINT data set with member title list report.
Example 20-61 SYSPRINT data set with member title list report
IQIB008I INITIATING "TITLEMIG" COMMAND STEP PROCESSING AT 07:47:19.53 ON 2012/11 IQIB033I MEMBER TITLES FROM "SYSUT1" SUCCESSFULLY MIGRATED INTO LIBRARY "A860059 IQIB032I CURRENT MEMBER TITLES OF LIBRARY: A860059.PAYROLL.PROD.EMPLOYEE.LIB MEMBER TITLE USER KEY -------- -------------------------------------------------- -------#0000201 JONATHAN GOODMAN, 1 KINGS ROAD, NEWARK, NJ GOODMAN #1234567 EMILY PEARL JONES, 75 FIRST AVE., SAN DIEGO, CA JONES -------- -------------------------------------------------- -------IQIB500I END OF UTILITY PROCESSING AT 07:47:19.56 ON 2012/11/19
20.4.14 TITLELIST
The TITLELIST control statement creates a report of all IPT managed member titles in a partitioned data set, as illustrated in Example 20-62 . This example produces a report of all IPT managed member titles in data set A860059.IQIBUTIL.LIB1.
Example 20-62 Create a report of IPT managed member titles
//TITLELST JOB ,, // MSGLEVEL=(1,1),MSGCLASS=H,CLASS=A,TIME=1440,NOTIFY=&SYSUID //JOBLIB DD DISP=SHR,DSN=MROTTER.IQI.SIQILOAD //TITLESTP EXEC PGM=IQIBUTIL,PARM=TITLELIST //IQIBUDFL DD DISP=SHR,DSN=IQI.SIQIPLIB //SYSPRINT DD SYSOUT=* //SYSUT2 DD DISP=SHR,DSN=A860059.IQIBUTIL.LIB1 /*
514
8093ch15_s.fm
Example 20-63 shows the resulting SYSPRINT report of the IPT managed member titles.
Example 20-63 SYSPRINT report of IPT managed member titles
IQIB032I CURRENT MEMBER TITLES OF LIBRARY: A860059.IQIBUTIL.LIB1 MEMBER TITLE USER KEY -------- -------------------------------------------------- -------ABCEF TEST CASE 1 BCDEFG TEST CASE 2 MEM00001 member 1 MEM00002 member 2 MEM00003 member 3 XBYDEFG TEST CASE 3 XBYXXXX TEST CASE 4 XBYYYYY TEST CASE 6 -------- -------------------------------------------------- -------IQIB500I END OF UTILITY PROCESSING AT 09:58:29.41 ON 2012/11/19 IEB147I END OF JOB - 0 WAS HIGHEST SEVERITY CODE
20.4.15 INDSN
The INDSN= parameter Indicates the beginning of another COPY step similar to the standard INDD= statement. Example 20-64 shows an example of how to copy members of a dataset listed in with INDSN. In this example members of the data set listed in the INDSN parameter, A860059.INDSN and the data sets defined by the IDD1 and IDD2 DD statements (A860059.PDS1 and A860059.PDS2) are copied to the data set defined by the ODD DD statement.
Example 20-64 Copy members of data set listed in INDSN
//INDSN1 JOB ,, // MSGLEVEL=(1,1),MSGCLASS=H,CLASS=A,TIME=1440,NOTIFY=&SYSUID //JOBLIB DD DISP=SHR,DSN=IQI.SIQILOAD //INDSN EXEC PGM=IQIBUTIL //IQIBUDFL DD DISP=SHR,DSN=IQI.SIQIPLIB //ODD DD DISP=SHR,DSN=A860059.PDS //IDD1 DD DISP=SHR,DSN=A860059.PDS1 //IDD2 DD DISP=SHR,DSN=A860059.PDS2 //SYSPRINT DD SYSOUT=* //SYSIN DD * COPY O=ODD INDSN=(A860059.INDSN,SHR,R) INDD=(IDD1,IDD2)
20.4.16 EXCLHEX
The EXCLHEX control statement specifies a member name (16 hexadecimal digits) to be excluded from the current operation. Example 20-65 on page 516 shows how to specify members to be excluded using the EXCLHEX statement. In this example members of data set A860059.TEST.SAMPLIB beginning with '9' are renamed. The first character of the member name is changed from '9' to
515
8093ch15_s.fm
'8'. All other characters in the name remain the same. Member 'F9D9C5C1C4F1F2F3' (9READ123) is to be excluded from the operation as specified using EXCLHEX.
Example 20-65 Specify members to be EXCLUDEd using EXCLHEX statement
//EXCLHEX JOB ,, // MSGLEVEL=(1,1),MSGCLASS=H,CLASS=A,TIME=1440,NOTIFY=&SYSUID //JOBLIB DD DISP=SHR,DSN=MROTTER.IQI.SIQILOAD //DOINHEX EXEC PGM=IQIBUTIL,PARM='LIST=YES,MEMRULE=3' //OUT DD DSN=A860059.TEST.SAMPLIB,DISP=SHR //IQIBUDFL DD DISP=SHR,DSN=MROTTER.IQI.SIQIPLIB //SYSPRINT DD SYSOUT=* //SYSIN DD * STEP1 RENAME OUTDD=OUT S M=((9*,8=======)) * 9READ123 EXCLHEX M=(F9D9C5C1C4F1F2F3) Example 20-66 shows the OUTDD data set before the rename operation.
Example 20-66 A860059.TEST.SAMPLIB before the rename operation
NAME RENAME LIB VV.MM CREATED CHANGED SIZE INIT MOD USERID 9WRITE45 -INV NAM 1 MEMBER NAME=X'F9E6D9C9E3C5F4F5' 9READ123 -INV NAM 1 MEMBER NAME=X'F9D9C5C1C4F1F2F3' Example 20-67 shows the OUTDD data set after the rename operation when using EXCLHEX.
Example 20-67 A860059.TEST.SAMPLIB after RENAME specifying EXCLHEX
NAME RENAME LIB VV.MM CREATED CHANGED SIZE INIT MOD USERID 8WRITE45 -INV NAM 1 MEMBER NAME=X'F8E6D9C9E3C5F4F5' 9READ123 -INV NAM 1 MEMBER NAME=X'F9D9C5C1C4F1F2F3'
20.4.17 SELHEX
The SELHEX control statement specifies a member name (16 hexadecimal digits), and optionally a new name, to be included in the current operation. In Example 20-68 two members of SYS1.MACLIB (GET and PUT) are copied to A860059.TEST.SAMPLIB. The members to be copied and their new names are specified in hex using the SELHEX keyword.
Example 20-68 Specify members to be SELECTed using SELHEX statement
//SELHEX JOB ,, // MSGLEVEL=(1,1),MSGCLASS=H,CLASS=A,TIME=1440,NOTIFY=&SYSUID //JOBLIB DD DISP=SHR,DSN=MROTTER.IQI.SIQILOAD //DOINHEX EXEC PGM=IQIBUTIL,PARM='LIST=YES,MEMRULE=3' //IN DD DISP=SHR,DSN=SYS1.MACLIB //OUT DD DSN=A860059.TEST.SAMPLIB,DISP=SHR //IQIBUDFL DD DISP=SHR,DSN=MROTTER.IQI.SIQIPLIB //SYSPRINT DD SYSOUT=* //SYSIN DD * STEP1 COPY OUTDD=OUT,INDD=IN * GET ,9GET1234 SELHEX MEMBER=(C7C5E34040404040,F9C7C5E3F1F2F3F4,R)
516
8093ch15_s.fm
* PUT ,9PUT1234 SELHEX MEMBER=(D7E4E34040404040,F9D7E4E3F1F2F3F4) When the copy operation completes, the new member names are listed in the output library as shown in Example 20-69.
Example 20-69 A860059.TEST.SAMPLIB after the COPY operation
NAME RENAME LIB VV.MM CREATED CHANGED SIZE INIT MOD USERID 9GET1234 -INV NAM 1 MEMBER NAME=X'F9C7C5E3F1F2F3F4' 9PUT1234 -INV NAM 1 MEMBER NAME=X'F9D7E4E3F1F2F3F4'
20.5.1 ALTERMOD
The ALTERMOD control statement is used to alter load modules in place. This control statement can only be used with PDSs. It does not operate on PDSEs. In Example 20-70, the OUTDD DD statement defines partitioned data set A860059.IQIBUTIL.ALTMOD1. The data set contains member AOD40H3A which has an RLD count of zero in the control record. Execution of the ALTERMOD statement updates the control record with the correct Relocation dictionary (RLD) count in the load module. No update is necessary for the other members of the input partitioned data set.
Example 20-70 ALTER Load module in a PDS defined by OUTDD
//ALTERMD1 JOB ,, // MSGLEVEL=(1,1),MSGCLASS=H,CLASS=A,TIME=1440,NOTIFY=&SYSUID //ALTMOD1 EXEC PGM=IQIBUTIL //IQIBUDFL DD DISP=SHR,DSN=IQI.SIQIPLIB //SYSPRINT DD SYSOUT=* //INPUT DD DSN=A860059.IQIBUTIL.ALTMOD1,DISP=SHR //SYSIN DD * ALTERMOD OUTDD=INPUT,LIST=YES /* The LIST=YES parameter indicates that the names of the altered members are to be listed in SYSPRINT, as shown in Example 20-71.
Example 20-71 SYSPRINT after ALTERMOD execution
IEB1097I FOLLOWING MEMBER(S) ALTERED IN DATA SET REFERENCED BY INPUT IEB19GI MEMBER AOD4OH3A ALTERED IN PLACE. IEB19HI MEMBER BTS NOT ALTERED, RLD COUNT WAS CORRECT. IEB1098I 2 OF 2 MEMBERS ALTERED FROM INPUT DATA SET REFERENCED BY INPUT If LIST=NO is specified instead, the SYSPRINT contains a summary of the operation: IEB10981I 1 OF 1 MEMBERS ALTERED FROM INPUT DATA SET REFERENCED BY INPUT
517
8093ch15_s.fm
Example 20-72 shows the use of the ALTERMOD control statement to alter a load module in a PDS defined by OUTDSN. In this example, A860059.IQIBUTIL.ALTMOD2 is a cataloged partitioned data set. The RLD counts in the control records for two members of the data set do not match the actual number of RLDs in the load modules. Execution of the ALTERMOD statement updates the control records with the correct number of RLDs. A disposition of SHR is specified with the OUTDSN keyword.
Example 20-72 ALTER Load module in a PDS defined by OUTDSN
//ALTERMD2 JOB ,, // MSGLEVEL=(1,1),MSGCLASS=H,CLASS=A,TIME=1440,NOTIFY=&SYSUID //ALTMOD2 EXEC PGM=IQIBUTIL //IQIBUDFL DD DISP=SHR,DSN=IQI.SIQIPLIB //SYSPRINT DD SYSOUT=* //SYSIN DD * ALTERMOD OUTDSN=(A860059.IQIBUTIL.ALTMOD2,SHR) /* Example 20-73 shows the result of the ALTERMOD operation.
Example 20-73 SYSPRINT reflecting result of executing ALTERMOD
IEB1097I FOLLOWING MEMBER(S) ALTERED IN DATA SET REFERENCED BY SYS00001 IEB19GI MEMBER A#D4OH3A ALTERED IN PLACE. IEB19GI MEMBER B#D4OH3A ALTERED IN PLACE. IEB1098I 2 OF 2 MEMBERS ALTERED FROM INPUT DATA SET REFERENCED BY SYS00001 Attempting to execute the ALTERMOD control statement with a PDSE will be unsuccessful and the SYSPRINT will contain the following message: IEB1010I ALTERMOD FUNCTION REQUESTED FOR A PDSE
20.5.2 COPY
The COPY control statement is used to begin one or more copy, unload or load operations. Example 20-74 shows the use of the COPY control statement. In this example, members of the PDS defined by the IN DD statement are copied to the PDS defined by the OUT DD statement. All members of data set A860059.IQIBUTIL.PDS1 that begin with ABC are copied to data set A860059.IQIBUTIL.PDS2. Members meeting the filter criteria will be renamed in the output library with XYZ in the first three character positions of the original names. Identically named members will be replaced as specified by the R (replace) parameter.
Example 20-74 Selected members are copied to another PDS and some members are renamed
//COPYJOB1 JOB ,, // MSGLEVEL=(1,1),MSGCLASS=H,CLASS=A,TIME=1440,NOTIFY=&SYSUID //JOBLIB DD DISP=SHR,DSN=IQI.SIQILOAD //COPYSTEP EXEC PGM=IQIBUTIL //IQIBUDFL DD DISP=SHR,DSN=IQI.SIQIPLIB //SYSPRINT DD DSN=A860059.IQIBUTIL.SEQDS,DISP=SHR //SYSUDUMP DD SYSOUT=A //IN DD DSN=A860059.IQIBUTIL.PDS1,DISP=SHR //OUT DD DSN=A860059.IQIBUTIL.PDS2,DISP=SHR //SYSUT3 DD UNIT=SYSDA,SPACE=(CYL,(5,1)) 518
Improving Productivity with ISPF Productivity Tool V7.1
8093ch15_s.fm
//SYSUT4 DD UNIT=SYSDA,SPACE=(CYL,(5,1)) //SYSIN DD * COPY OUTDD=OUT,INDD=IN,LIST=YES SELECT MEMBER=((ABC*,XYZ=====,R)) /* The LIST parameter indicates whether the names of all copied members will be reported by additional lines in the SYSPRINT. In this example, LIST=YES is specified and the resulting SYSPRINT contains the names of the copied members as shown in Example 20-75
Example 20-75 Names of copied members are listed in SYSPRINT
IEB1551 XYZDEFGH HAS BEEN SUCCESSFULLY COPIED AND IS A NEW NAME IEB1551 XYZ12345 HAS BEEN SUCCESSFULLY COPIED AND IS A NEW NAME IEB1551 XYZ98765 HAS BEEN SUCCESSFULLY COPIED AND IS A NEW NAME In Example 20-76 there are two copy steps identified by labels COPY01 and COPY02. Data set dispositions have been specified. The first step will copy all members meeting the filter criteria with CPY in the first three character positions of their original names. The second step will copy all members meeting the filter criteria with BKP in the first three character positions of their original names except for members with ABC in the first three character positions, any fourth character and PAY for the next three character positions. The last (eighth) character is not being evaluated for this exclusion. Regardless of member name statement order, processing precedence is as follows: 1. EXCLUDE pattern masks 2. EXCLUDE specific names 3. SELECT pattern masks 4. SELECT specific names
Example 20-76 Multiple COPY operations in single step
//JOBLIB DD DISP=SHR,DSN=IQI.SIQILOAD //JOBSTEP EXEC PGM=IQIBUTIL //IQIBUDFL DD DISP=SHR,DSN=IQI.SIQIPLIB //SYSPRINT DD SYSOUT=* //SYSIN DD * COPY01 COPY INDSN=(TECH001.LIB,SHR), OUTDSN=(TECH001.LIB.COPY,OLD), LIST=YES SELECT MEMBER=((ABC*,CPY=====,R)) COPY02 COPY INDSN=(TECH001.LIB,SHR), OUTDSN=(TECH001.LIB.BACKUP,OLD), LIST=YES SELECT MEMBER=((ABC*,BKP=====,R)) EXCLUDE MEMBER=ABC%PAY /* Example 20-77 shows data set dispositions (INDISP and OUTDISP) and SYSPRINT (LIST=YES) listing output options specified via the EXEC PARM. All members meeting the filter criteria of any characters in the first three character positions followed by $ in the fourth character position will be renamed with PMTS in the first four
519
8093ch15_s.fm
character positions of their original names except for members with REC in the first three character positions.
Example 20-77 COPY with member name pattern mask used to SELECT and EXCLUDE members
//JOBLIB DD DISP=SHR,DSN=IQI.SIQILOAD //JOBSTEP EXEC PGM=IQIBUTIL, // PARM='LIST=YES,INDISP=SHR,OUTDISP=OLD' //IQIBUDFL DD DISP=SHR,DSN=IQI.SIQIPLIB //SYSPRINT DD SYSOUT=* //SYSIN DD * STEP01 COPY INDSN=TECH001.LIB, OUTDSN=TECH001.LIB.COPY SELECT MEMBER=((%%%$*,PMTS====,R)) EXCLUDE MEMBER=REC*
20.5.3 COPYGRP
The COPYGRP control statement is used to begin a group copy, unload or load operation. A group consists of a member and all of its aliases. In Example 20-78, selected members of a PDS are copied to a PDSE. Members of the input PDS will replace identically named members in the output PDSE as indicated by the specification of the R (replace).
Example 20-78 COPYGRP of input PDS to output PDSE
//COPYGRP1 JOB ,, // MSGLEVEL=(1,1),MSGCLASS=H,CLASS=A,TIME=1440,NOTIFY=&SYSUID //JOBLIB DD DISP=SHR,DSN=IQI.SIQILOAD //COPYSTEP EXEC PGM=IQIBUTIL //IQIBUDFL DD DISP=SHR,DSN=IQI.SIQIPLIB //SYSPRINT DD SYSOUT=* //DDIN1 DD DSN=A860059.COPYGRP1.IN,DISP=SHR //DDOUT DD DSN=A860059.COPYGRP1.OUT1,DISP=SHR //SYSIN DD * COPYGRP INDD=((DDIN1,R)),OUTDD=DDOUT,LIST=YES SELECT MEMBER=(XYZDEFGH,XYZ12345,XYZ98765) /* Example 20-79 shows the contents of the input data set A860059.COPYGRP1.IN.
Example 20-79 Contents of the input data set A860059.COPYGRP1.IN
NAME RENAME LIB VV.MM CREATED CHANGED SIZE INIT MOD USERID ABCEDFGH 1 -ALIASABC12345 1 -ALIASABC98765 1 -ALIASDEFDEFGH 1 -ALIASGHIDEFGH 1 -ALIASXYZDEFGH 1 01.01 07/12/05 09/08/27 09:21 58 17 46 H373743 XYZ12345 1 01.12 11/05/24 11/06/03 11:17 62 19 0 A860059 XYZ98765 1
520
8093ch15_s.fm
Example 20-80 shows the contents of A860059.COPYGRP1.OUT after execution of COPYGRP operation. Members XYZDEFGH, XYZ12345 and XYZ98765 and their aliases are copied to the PDSE.
Example 20-80 The contents of A860059.COPYGRP1.OUT after execution of COPYGRP operation
NAME RENAME LIB VV.MM CREATED CHANGED SIZE INIT MOD USERID ABCEDFGH 1 -ALIASABC12345 1 -ALIASABC98765 1 -ALIASDEFDEFGH 1 -ALIASXYZDEFGH 1 01.01 07/12/05 09/08/27 09:21 58 17 46 H373743 XYZ12345 1 01.00 12/10/22 12/10/22 06:46 58 58 0 A860059 XYZ98765 1 01.00 12/10/22 12/10/22 06:46 58 58 0 A860059 Example 20-81 shows the SYSPRINT data set with the details of the COPYGRP operation.
Example 20-81 SYSPRINT data set showing the details of the COPYGRP operation
ALIAS ABCEDFGH OF COPIED ALIAS ABC12345 OF COPIED ALIAS ABC98765 OF COPIED ALIAS DEFDEFGH OF COPIED MEMBER XYZDEFGH HAS BEEN MEMBER XYZ12345 HAS BEEN MEMBER XYZ98765 HAS BEEN 7 OF 7 SPECIFIED MEMBERS
PRIMARY XYZDEFGH PRIMARY XYZ12345 PRIMARY XYZ98765 PRIMARY XYZDEFGH COPIED COPIED COPIED WERE COPIED
20.5.4 COPYGROUP
The COPYGROUP control statement is used to begin a group copy, unload or load operation. A group consists of a member and all of its aliases. When either the input or output is a PDSE, COPYGROUP operates the same as COPYGRP. COPYGROUP will be converted to COPYGRP when running on a z/OS level that does not support IEBCOPY COPYGROUP. In Example 20-82 three members and their aliases in the SYS1.LPALIB PDS are copied to a PDSE, A860059.MYLPALIB.PDSE.
Example 20-82 Members of a PDS are copied to a PDSE
//CGROUP1 JOB ,, // MSGLEVEL=(1,1),MSGCLASS=H,CLASS=A,TIME=1440,NOTIFY=&SYSUID //* TEST COPYGROUP //JOBLIB DD DISP=SHR,DSN=MROTTER.IQI.SIQILOAD //COPYSTEP EXEC PGM=IQIBUTIL //IQIBUDFL DD DISP=SHR,DSN=IQI.SIQIPLIB //SYSPRINT DD SYSOUT=* //SYSUDUMP DD SYSOUT=A //DDIN1 DD DSN=SYS1.LPALIB,DISP=SHR //DDOUT DD DSN=A860059.MYLPALIB.PDSE,DISP=SHR //SYSIN DD * COPYGROUP INDD=((DDIN1,R)),OUTDD=DDOUT,LIST=YES SELECT MEMBER=(AMDPRFMT,ASBSCMG,IEWSWOVR) /*
521
8093ch15_s.fm
Example 20-83 on page 522 shows the contents of A860059.MYLPALIB.PDSE following after the COPYGROUP operation.
Example 20-83 Contents of A860059.MYLPALIB.PDSE following after the COPYGROUP operation
NAME RENAME LIB SIZE TTR ALIAS-OF AC RENT REFR REUS TEST AM RM AMDPRFMT 1 00000320 000006 BLSQPFMT 00 YES YES YES ANY 24 ASBSCMG 1 000000A8 000005 00 YES YES ANY 24 ASBSCPUT 1 000000A8 000005 ASBSCMG 00 YES YES 24 24 BLSQPFMT 1 00000320 000006 00 YES YES YES ANY 24 IEWSEGLD 1 00000560 000004 IEWSWOVR 00 YES YES IEWSWOVR 1 00000560 000004 00 YES YES IEWSZOVR 1 00000560 000004 IEWSWOVR 00 YES YES Example 20-84 shows the SYSPRINT data set with the results of the operation.
Example 20-84 The results of the operation are reflected in the SYSPRINT data set
<000001> COPYGROUP INDD=((DDIN1,R)),OUTDD=DDOUT,LIST=YES IQIB055I INPUT CONTROL STATEMENT CONVERTED <000001> COPYGRP INDD=((DDIN1,R)),OUTDD=DDOUT,LIST=YES <000002> SELECT MEMBER=(AMDPRFMT,ASBSCMG,IEWSWOVR) IQIB040W "PASSTHRU" OPTION IMPLIED DUE TO THE PRESENCE OF A PDSE LIBRARY IQIB008I INITIATING "COPYGRP" COMMAND STEP PROCESSING AT 15:38:38.77 ON 2012/10/28 COPYGRP OUTDD=DDOUT,LIST=YES <000001> INDD=((DDIN1,R)) <000001> SELECT MEMBER=AMDPRFMT <000002> SELECT MEMBER=ASBSCMG <000002> SELECT MEMBER=IEWSWOVR <000002> IEB1013I COPYING FROM PDS INDD=DDIN1 VOL=RESI3A DSN=SYS1.LPALIB IEB1014I TO PDSE OUTDD=DDOUT VOL=HSM919 DSN=A860059.MYLPALIB.PDSE IGW01553I ALIAS AMDPRFMT OF COPIED PRIMARY BLSQPFMT HAS BEEN COPIED IGW01551I MEMBER ASBSCMG HAS BEEN COPIED IGW01553I ALIAS ASBSCPUT OF COPIED PRIMARY ASBSCMG HAS BEEN COPIED IGW01551I MEMBER BLSQPFMT HAS BEEN COPIED IGW01553I ALIAS IEWSEGLD OF COPIED PRIMARY IEWSWOVR HAS BEEN COPIED IGW01551I MEMBER IEWSWOVR HAS BEEN COPIED IGW01553I ALIAS IEWSZOVR OF COPIED PRIMARY IEWSWOVR HAS BEEN COPIED IGW01550I 7 OF 7 SPECIFIED MEMBERS WERE COPIED IQIB500I END OF UTILITY PROCESSING AT 15:38:38.98 ON 2012/10/28 IEB147I END OF JOB - 0 WAS HIGHEST SEVERITY CODE Note the presence of the IQIB040W message due to the use of a PDSE in the COPYGROUP operation.
20.5.5 COPYMOD
The COPYMOD control statement is used to begin one or more copy, unload, load operations of load module libraries. The MAXBLK parameter specifies the maximum block size for records in the output partitioned data set. The value may be specified as a decimal number as in MAXBLK=32760. It may also be specified as MAXBLK=nnK, indicating that the nn value should be multiplied by 1024 bytes. For example, MAXBLK=4K results in a maximum block size of 4096 for records in the output partitioned data set..
522
8093ch15_s.fm
The MINBLK parameter specifies the minimum block size for records in the output partitioned data set. The value may be specified as a decimal number as in MINBLK=32760. Specifying MINBLK=nnK indicates that the nn value should be multiplied by 1024 bytes. For example, MINBLK=4K results in a minimum block size of 4096 for records in the output partitioned data set. In Example 20-85 members of load module data set SYS1.LINKLIB are copied to A860059.COPYMOD2 and reblocked. The MINBLK specified is 1K and the MAXBLK is 4K.
Example 20-85 Reblock members of load library with COPYMOD operation
//COPYMOD1 JOB ,, // MSGLEVEL=(1,1),MSGCLASS=H,CLASS=A,TIME=1440,NOTIFY=&SYSUID //JOBLIB DD DISP=SHR,DSN=IQI.SIQILOAD //COPYMOD EXEC PGM=IQIBUTIL //IQIBUDFL DD DISP=SHR,DSN=IQI.SIQIPLIB //SYSPRINT DD SYSOUT=* //INPUT1 DD DSN=SYS1.LINKLIB,DISP=SHR //NEWLIB DD DSN=A860059.COPYMOD2,DISP=SHR //SYSIN DD * COPYMOD OUTDD=NEWLIB,INDD=INPUT1,MINBLK=1K,MAXBLK=4K SELECT MEMBER=IEBGENER,IEFBR14 /* Example 20-86 shows the contents of the SYSPRINT data set with the results of this operation.
Example 20-86 The contents of the SYSPRINT data set reflect the result of this operation
IEB167I FOLLOWING MEMBER(S) COPIED FROM INPUT DATA SET REFERENCED BY INPUT1 IEB19AI MEMBER IEBGENER COPIED AND REBLOCKED. IEB19AI MEMBER IEFBR14 COPIED AND REBLOCKED. IEB1098I 2 OF 2 MEMBERS COPIED FROM INPUT DATA SET REFERENCED BY INPUT1
523
8093ch15_s.fm
524
8093ch11.fm
21
Chapter 21.
525
8093ch11.fm
6 14
Yes
A CBPDO contains a product and services on a single logical tape. It contains the following installation materials: Sample jobs to receive products and service Program directories for the products that you have ordered Installation manuals for the products that you have ordered The IPT V7.1 CDBPO package that is delivered to customer contains these items:
526
8093ch11.fm
Relative file (RELFILE) tape Object code only (OCO) Source code (optional) Program directory (installation manual)
Relative File 2
Relative File 3
Relative File 6
Relative File 7
Relative File 8
Relative File 9
527
8093ch11.fm
The program directory is part of the informal documentation of the product. It does not contain changes that are unrelated to installation or detailed information that is available in a technical newsletter or replacement publication.
Table 21-4 Target dataset descriptions Library SIQICLBV SIQICLIB SIQIINST SIQILOAD Description IPT CLIST library (variable blocked) IPT CLIST library (fixed blocked) IPT installation and maintenance sample JCL library IPT Linklist load library
528
8093ch11.fm
Description IPT LPA load library IPT ISPF-message library IPT ISPF-panel library IPT ISPF-skeleton library IPT ISPF-table library
The mainframe enterprise that we selected for installation has multiple logical partitions (LPARs) running various z/OS releases. We wanted to use the same IPT target libraries on all LPARs, regardless of their z/OS level. The IPT is independent of the z/OS and ISPF release. It dynamically enables or disables any IPT functions that are dependent on certain z/OS or ISPF releases. Consider maintaining a dedicated SMP/E global zone that serves as single point of IPT maintenance for all of the z/OS images of your enterprise, which is called the IPT single point of maintenance option.
//STEP1
EXEC PGM=IEBCOPY
Chapter 21. Installing IPT V7.1 on z/OS
529
8093ch11.fm
//SYSPRINT DD SYSOUT=* //TAPEIN DD DSN=IBM.HIQI710.F1,UNIT=tunit // VOL=SER=volser,LABEL=(x,SL), // DISP=(OLD,KEEP) //FILEIN DD DSN=IBM.HIQI710.F1,UNIT=SYSALLDA,DISP=SHR, // VOL=SER=filevol //OUT DD DSNAME=jcl-library-name, // DISP=(NEW,CATLG,DELETE), // VOL=SER=dasdvol,UNIT=SYSALLDA, // SPACE=(TRK,(5,1,3)) //SYSUT3 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)) //SYSIN DD * COPY INDD=xxxxIN,OUTDD=OUT /* If using TAPEIN:
tunit is the unit value that matches the product tape volser is the volume serial matching the product tape x is the tape file number where the dataset name is on the tape
Refer to the documentation provided by CBPDO to see where IBM.HIQI710.F1 is on the tape
If using FILEIN:
filevol is the volume serial of the DASD device where the downloaded files reside jcl-library-name is the name of the output dataset where the sample jobs are
stored
OUT:
dasdvol is the volume serial of the DASD device where the output dataset will
reside
SYSIN:
//IQIJALGZ JOB 'ACCOUNT INFORMATION','ALLOC GLOBAL ZONE', // CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1), // NOTIFY=&SYSUID //DELDEF1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DELETE IQI.V7R1M0.GLOBAL.CSI /* <==1 */ DEFINE CLUSTER(NAME(IQI.V7R1M0.GLOBAL.CSI) /* FREESPACE(20, 5) KEYS(24 0) 530
Improving Productivity with ISPF Productivity Tool V7.1
<==1
*/-
8093ch11.fm
RECORDSIZE(24 143) SHAREOPTIONS(2) UNIQUE VOLUME(SUPT01)) /* <==2 */ DATA(NAME(IQI.V7R1M0.GLOBAL.CSI.DATA) CONTROLINTERVALSIZE(4096) CYLINDER(10 1)) INDEX(NAME(IQI.V7R1M0.GLOBAL.CSI.INDEX) CONTROLINTERVALSIZE(1024) TRACK(15 1) IMBED) /* //PRIMCSI2 EXEC PGM=IDCAMS //SMPCSI DD DSN=IQI.V7R1M0.GLOBAL.CSI,DISP=SHR //ZPOOLDD DSN=SYS1.MACLIB(GIMZPOOL),DISP=SHR //SYSPRINT DD SYSOUT=* //SYSIN DD * REPRO OUTFILE(SMPCSI) INFILE(ZPOOL) //
/*
<==1
*/-
/*
<==1
*/-
/*
<==1
*/
Look for the expected return code or message for this job. The job is considered successful if a return code of 0 is received.
//IQIJALTZ JOB 'ACCOUNT INFORMATION','ALLOC TZONE/DZONE', // CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1), // NOTIFY=&SYSUID //DELDEF1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DELETE IQI.V7R1M0.TZONE.CSI /* <==1,3 */ DELETE IQI.V7R1M0.DZONE.CSI /* <==1,4 */ DEFINE CLUSTER(NAME(IQI.V7R1M0.TZONE.CSI) /* FREESPACE(20, 5) KEYS(24 0) RECORDSIZE(24 143) SHAREOPTIONS(2) UNIQUE) VOLUME(SUPT01)) /* <==2 */ DATA(NAME(IQI.V7R1M0.TZONE.CSI.DATA) CONTROLINTERVALSIZE(4096) CYLINDER(10 1)) INDEX(NAME(IQI.V7R1M0.TZONE.CSI.INDEX) CONTROLINTERVALSIZE(1024) TRACK(15 1) IMBED) DEFINE CLUSTER(NAME(IQI.V7R1M0.DZONE.CSI) /* <==1,4 FREESPACE(20, 5) KEYS(24 0) -
<==1,3
*/
/*
<==1,3 */
/*
<==1,3*/
*/
531
8093ch11.fm
RECORDSIZE(24 143) SHAREOPTIONS(2) UNIQUE) VOLUME(SUPT01)) /* <==2 */ DATA(NAME(IQI.V7R1M0.DZONE.CSI.DATA) CONTROLINTERVALSIZE(4096) CYLINDER(10 1)) INDEX(NAME(IQI.V7R1M0.DZONE.CSI.INDEX) CONTROLINTERVALSIZE(1024) TRACK(15 1) IMBED)
/*
<==1,4
*/
/*
<==1,4
*/
/* //PRIMCSI2 EXEC PGM=IDCAMS //SMPCSI DD DSN=IQI.V7R1M0.TZONE.CSI,DISP=SHR /* //ZPOOL DD DSN=SYS1.MACLIB(GIMZPOOL),DISP=SHR //SYSPRINT DD SYSOUT=* //SYSIN DD * REPRO OUTFILE(SMPCSI)INFILE(ZPOOL) /* //PRIMCSI3 EXEC PGM=IDCAMS //SMPCSI DD DSN=IQI.V7R1M0.DZONE.CSI,DISP=SHR /* //ZPOOL DD DSN=SYS1.MACLIB(GIMZPOOL),DISP=SHR //SYSPRINT DD SYSOUT=* //SYSIN DD * REPRO OUTFILE(SMPCSI) INFILE(ZPOOL) /* // The job is considered successful if a return code of 0 is received.
<==1,3 */
<==1,4 */
//IQIJALTZ JOB 'ACCOUNT INFORMATION','ALLOC TZONE/DZONE', // CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1), // NOTIFY=&SYSUID //DELDEF1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DELETE IQI.V7R1M0.TZONE.CSI /* <==1,3 */ DELETE IQI.V7R1M0.DZONE.CSI /* <==1,4 */ DEFINE CLUSTER(NAME(IQI.V7R1M0.TZONE.CSI)/* <==1,3 */ FREESPACE(20, 5) KEYS(24 0) RECORDSIZE(24 143) SHAREOPTIONS(2) UNIQUE) VOLUME(SUPT01)) /* <==2 */DATA(NAME(IQI.V7R1M0.TZONE.CSI.DATA) /* <==1,3 */ CONTROLINTERVALSIZE(4096) CYLINDER(10 1)) 532
Improving Productivity with ISPF Productivity Tool V7.1
8093ch11.fm
INDEX(NAME(IQI.V7R1M0.TZONE.CSI.INDEX) /* <==1,3*/ CONTROLINTERVALSIZE(1024) TRACK(15 1) IMBED) DEFINE CLUSTER(NAME(IQI.V7R1M0.DZONE.CSI) /* <==1,4 */ FREESPACE(20, 5) KEYS(24 0) RECORDSIZE(24 143) SHAREOPTIONS(2) UNIQUE) VOLUME(SUPT01)) /* <==2 */ DATA(NAME(IQI.V7R1M0.DZONE.CSI.DATA) /* <==1,4 */ CONTROLINTERVALSIZE(4096) CYLINDER(10 1)) INDEX(NAME(IQI.V7R1M0.DZONE.CSI.INDEX) /* <==1,4 */ CONTROLINTERVALSIZE(1024) TRACK(15 1) IMBED) /* //PRIMCSI2 EXEC PGM=IDCAMS //SMPCSI DD DSN=IQI.V7R1M0.TZONE.CSI,DISP=SHR /* <==1,3 */ //ZPOOL DD DSN=SYS1.MACLIB(GIMZPOOL),DISP=SHR //SYSPRINT DD SYSOUT=* //SYSIN DD * REPRO OUTFILE(SMPCSI)INFILE(ZPOOL) /* //PRIMCSI3 EXEC PGM=IDCAMS //SMPCSI DD DSN=IQI.V7R1M0.DZONE.CSI,DISP=SHR /* <==1,4 */ //ZPOOL DD DSN=SYS1.MACLIB(GIMZPOOL),DISP=SHR //SYSPRINT DD SYSOUT=* //SYSIN DD * REPRO OUTFILE(SMPCSI) INFILE(ZPOOL) /* //
//IQIJALIB JOB 'ACCOUNT INFORMATION','ALLOCATE LIBS', // CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1), // NOTIFY=&SYSUID //IQIRALOC PROC TGTHLQ=,DSTHLQ=,TUNIT=,DUNIT=,TVOLID1=,TVOLID2=,DVOLID= //ALLOC EXEC PGM=IEFBR14 //* //* ALLOCATE TARGET LIBRARIES //* //SIQIINST DD DSN=&TGTHLQ.SIQIINST, // UNIT=&TUNIT, // VOL=SER=&TVOLID2, // SPACE=(TRK,(5,1,3)), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=0),
Chapter 21. Installing IPT V7.1 on z/OS
533
8093ch11.fm
// DISP=(NEW,CATLG) //* //SIQICLIB DD DSN=&TGTHLQ.SIQICLIB, // UNIT=&TUNIT, // VOL=SER=&TVOLID2, // SPACE=(TRK,(16,1,10)), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=0), // DISP=(NEW,CATLG) //* //SIQICLBV DD DSN=&TGTHLQ.SIQICLBV, //SIQIMLIB DD DSN=&TGTHLQ.SIQIMLIB, // UNIT=&TUNIT, // VOL=SER=&TVOLID2, // SPACE=(TRK,(3,1,5)), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=0), // DISP=(NEW,CATLG) //* //SIQIPLIB DD DSN=&TGTHLQ.SIQIPLIB, // UNIT=&TUNIT, // VOL=SER=&TVOLID2, // SPACE=(TRK,(110,10,230)), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=0), // DISP=(NEW,CATLG) //* //SIQISLIB DD DSN=&TGTHLQ.SIQISLIB, // UNIT=&TUNIT, // VOL=SER=&TVOLID2, // SPACE=(TRK,(1,1,1)), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=0), // DISP=(NEW,CATLG) //* //SIQITLIB DD DSN=&TGTHLQ.SIQITLIB, // UNIT=&TUNIT, // VOL=SER=&TVOLID2, // SPACE=(TRK,(6,2,25)), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=0), // DISP=(NEW,CATLG) //* //* ALLOCATE DISTRIBUTION LIBRARIES //* //AIQIINST DD DSN=&DSTHLQ.AIQIINST, // UNIT=&DUNIT, // VOL=SER=&DVOLID, // SPACE=(TRK,(5,1,3)), // DISP=(NEW,CATLG) //* //AIQICLIB DD DSN=&DSTHLQ.AIQICLIB, // UNIT=&TUNIT, // VOL=SER=&TVOLID2, // SPACE=(TRK,(16,1,10)), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=0), // DISP=(NEW,CATLG) //* //AIQICLBV DD DSN=&DSTHLQ.AIQICLBV, // UNIT=&TUNIT,
534
8093ch11.fm
// VOL=SER=&TVOLID2, // SPACE=(TRK,(16,1,10)), // DCB=(RECFM=VB,LRECL=251,BLKSIZE=0), // DISP=(NEW,CATLG) //* //AIQILOAD DD DSN=&DSTHLQ.AIQILOAD, // UNIT=&TUNIT, // VOL=SER=&TVOLID1, // SPACE=(TRK,(35,2,10)), // DCB=(RECFM=U,LRECL=0,BLKSIZE=32760), // DISP=(NEW,CATLG) //* //AIQILPA DD DSN=&DSTHLQ.AIQILPA, // UNIT=&TUNIT, // VOL=SER=&TVOLID1, // SPACE=(TRK,(125,5,40)), // DCB=(RECFM=U,LRECL=0,BLKSIZE=32760), // DISP=(NEW,CATLG) //* //AIQIMLIB DD DSN=&DSTHLQ.AIQIMLIB, // UNIT=&TUNIT, // VOL=SER=&TVOLID2, // SPACE=(TRK,(3,1,5)), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=0), // DISP=(NEW,CATLG) //* //AIQIPLIB DD DSN=&DSTHLQ.AIQIPLIB, // UNIT=&TUNIT, // VOL=SER=&TVOLID2, // SPACE=(TRK,(110,10,230)), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=0), // DISP=(NEW,CATLG) //* //AIQISLIB DD DSN=&DSTHLQ.AIQISLIB, // UNIT=&TUNIT, // VOL=SER=&TVOLID2, // SPACE=(TRK,(1,1,1)), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=0), // DISP=(NEW,CATLG) //* //AIQITLIB DD DSN=&DSTHLQ.AIQITLIB, // UNIT=&TUNIT, // VOL=SER=&TVOLID2, // SPACE=(TRK,(6,2,25)), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=0), // DISP=(NEW,CATLG) //* // PEND //ALLOCATE EXEC IQIRALOC, // TGTHLQ='IQI.V7R1M0.', <== TGT LIB HIGH LEVEL QUAL. // TUNIT=SYSALLDA, <== TGT LIB UNIT TYPE // TVOLID1=Z18R52, <== TGT LIB VOLUME 1 // TVOLID2=Z18R52, <== TGT LIB VOLUME 2 // DSTHLQ='IQI.V7R1M0.', <== DIST LIB HIGH LEVEL QUAL. // DUNIT=SYSALLDA, <== DIST LIB UNIT TYPE
535
8093ch11.fm
// /*
DVOLID Z18D52
21.3.6 Defining global, target, and distribution zone options and DDDEF entries
Use the JCL named IQIJDEFZ to define the global, target, and distribution zone options to SMP/E, as well as to define the DDDEFs for SMP/E libraries, as shown in Example 21-6. Consult the instructions in the sample job for more information.
Example 21-6 JCL IQIJDEFZ
//IQIJDEFZ JOB 'ACCOUNT INFORMATION','DEFINE SMP ZONES', // CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1), // NOTIFY=&SYSUID //CZONES1 EXEC PGM=GIMSMP,PARM='DATE=U',REGION=0M //SMPCSI DD DISP=SHR,DSN=IQI.V7R1M0.GLOBAL.CSI <==1,2 //SMPLOG DD DISP=SHR,DSN=IQI.V7R1M0.SMPLOG <==1 //SMPPTS DD DISP=SHR,DSN=IQI.V7R1M0.SMPPTS <==1 //SMPOUT DD SYSOUT=* //SMPLIST DD SYSOUT=* //SMPRPT DD SYSOUT=* //SMPSNAP DD DUMMY //SYSUDUMP DD DUMMY //SMPCNTL DD * SET BOUNDARY(GLOBAL) . UCLIN . ADD GLOBALZONE SREL(Z038) OPTIONS(DEFOPT) /* <==7 OPTIONS ENTRY NAME */ ZONEINDEX((TZONE,IQI.V7R1M0.TZONE.CSI,TARGET),/* <==3,4 */ (DZONE,IQI.V7R1M0.DZONE.CSI,DLIB)) /* <==3,5 */ ADD OPTIONS(DEFOPT) /* <==7 OPTIONS ENTRY NAME */ DSSPACE(300,500,900) DSPREFIX(IQI.V7R1M0)/* <==1,6 PREFIX FOR SMPTLIBS */ NOPURGE NOREJECT SAVEMTS SAVESTS /* NUCID(1) */ PAGELEN(60) PEMAX(9999) RETRYDDN(ALL) . ENDUCL . SET BOUNDARY(TZONE) /* <==3 */ . UCLIN . ADD TARGETZONE(TZONE) /* <==3*/ OPTIONS(DEFOPT) /* <==7 OPTIONS ENTRY NAME*/ SREL(Z038) RELATED(DZONE) /* <==3*/ 536
Improving Productivity with ISPF Productivity Tool V7.1
8093ch11.fm
ENDUCL . SET BOUNDARY(DZONE) /* <==3*/ . UCLIN . ADD DLIBZONE(DZONE) /* <==3*/ OPTIONS(DEFOPT) /* <==7 OPTIONS ENTRY NAME*/ SREL(Z038) RELATED(TZONE) /* <==3*/ . ENDUCL . SET BOUNDARY(GLOBAL) . LIST ALLZONES . //********************************************************************** //* Create DDDEFs for SMP/E libraries* //********************************************************************** //DDDEF EXEC PGM=GIMSMP,COND=(0,LT),REGION=0M //SMPCSI DD DISP=SHR,DSN=IQI.V7R1M0.GLOBAL.CSI <==1,2 //SMPLOG DD DISP=SHR,DSN=IQI.V7R1M0.SMPLOG <==1 //SMPPTS DD DISP=SHR,DSN=IQI.V7R1M0.SMPPTS <==1 //SMPOUT DD SYSOUT=* //SMPLISTDD SYSOUT=* //SMPRPT DD SYSOUT=* //SMPCNTLDD * SET BOUNDARY(GLOBAL) . UCLIN. ADD DDDEF (SMPDEBUG) SYSOUT(*). ADD DDDEF (SMPLIST) SYSOUT(*). ADD DDDEF (SMPLOG) DATASET(IQI.V7R1M0.SMPLOG) /* <==1*/ UNIT(SYSALLDA) VOLUME(SUPT01) /* <==8 */ WAITFORDSN SHR. ADD DDDEF (SMPLOGA) DATASET(IQI.V7R1M0.SMPLOGA) /* <==1*/ UNIT(SYSALLDA) VOLUME(SUPT01) /* <==8 */ WAITFORDSN SHR. ADD DDDEF (SMPOUT) SYSOUT(*). ADD DDDEF (SMPPTS) DATASET(IQI.V7R1M0.SMPPTS) /* <==1*/ UNIT(SYSALLDA) VOLUME(SUPT01)/* <==8*/ WAITFORDSN SHR.
537
8093ch11.fm
ADD DDDEF (SMPPUNCH) SYSOUT(B). ADD DDDEF (SMPRPT) SYSOUT(*). ADD DDDEF (SMPSNAP) SYSOUT(*). ADD DDDEF (SMPTLIB) UNIT(SYSALLDA) VOLUME(SUPT01). /* <==8 */ ADD DDDEF (SMPNTS) PATH('/u/userid/HIQI710/')./* <==9 */ ADD DDDEF (SYSPRINT) SYSOUT(*). ADD DDDEF(SYSUT1) UNIT(SYSALLDA) SPACE(2,1) CYL. ADD DDDEF(SYSUT2) UNIT(SYSALLDA) SPACE(2,1) CYL. ADD DDDEF(SYSUT3) UNIT(SYSALLDA) SPACE(2 ,1 ) CYL. ADD DDDEF(SYSUT4) UNIT(SYSALLDA) SPACE(2,1) CYL. ENDUCL . SET BOUNDARY(TZONE) /* <==3 */ . UCLIN. ADD DDDEF (MACLIB) DATASET(SYS1.MACLIB) /* <==10 */ /* UNIT(SYSALLDA) */ /* VOLUME(MACVOL) *//* <==11 */ WAITFORDSN SHR. ADD DDDEF (SMPDEBUG) SYSOUT(*). ADD DDDEF (SMPLIST) SYSOUT(*). ADD DDDEF (SMPLOG) DATASET(IQI.V7R1M0.SMPLOG) /* <==1 */ UNIT(SYSALLDA) VOLUME(SUPT01) /* <==8 */ WAITFORDSN SHR. ADD DDDEF (SMPLOGA) DATASET(IQI.V7R1M0.SMPLOGA) /* <==1 */ UNIT(SYSALLDA)VOLUME(SUPT01) /* <==8 */ WAITFORDSN SHR. ADD DDDEF (SMPLTS) DATASET(IQI.V7R1M0.SMPLTS) /* <==1 */ UNIT(SYSALLDA) VOLUME(SUPT01) /* <==8 */ WAITFORDSN SHR. ADD DDDEF (SMPMTS) DATASET(IQI.V7R1M0.SMPMTS) /* <==1 */
538
8093ch11.fm
UNIT(SYSALLDA) VOLUME(SUPT01) /* <==8 */ WAITFORDSN SHR. ADD DDDEF (SMPPTS) DATASET(IQI.V7R1M0.SMPPTS) /* <==1 */ UNIT(SYSALLDA) VOLUME(SUPT01) /* <==8 */ WAITFORDSN SHR. ADD DDDEF (SMPPUNCH) SYSOUT(B). ADD DDDEF (SMPRPT) SYSOUT(*). ADD DDDEF (SMPSCDS) DATASET(IQI.V7R1M0.SMPSCDS) /* <==1 */ UNIT(SYSALLDA) VOLUME(SUPT01) /* <==8 */ WAITFORDSN SHR. ADD DDDEF (SMPSNAP) SYSOUT(*). ADD DDDEF (SMPSTS) DATASET(IQI.V7R1M0.SMPSTS) /* <==1 */ UNIT(SYSALLDA) VOLUME(SUPT01) /* <==8 */ WAITFORDSN SHR. ADD DDDEF (SMPWRK1) UNIT(SYSALLDA) SPACE(10 ,5) DIR(250) CYL. ADD DDDEF (SMPWRK2) UNIT(SYSALLDA) SPACE(10 ,5) DIR(250) CYL. ADD DDDEF (SMPWRK3) UNIT(SYSALLDA) SPACE(10 ,5) DIR(250) CYL. ADD DDDEF (SMPWRK4) UNIT(SYSALLDA) SPACE(10 ,5) DIR(250) CYL. ADD DDDEF (SMPWRK6) UNIT(SYSALLDA) SPACE(10 ,5) DIR(250) CYL. ADD DDDEF (SYSLIB) CONCAT(SMPMTS MACLIB). ADD DDDEF (SYSPRINT) SYSOUT(*). ADD DDDEF(SYSUT1)
539
8093ch11.fm
UNIT(SYSALLDA) SPACE(5,1) CYL. ADD DDDEF(SYSUT2) UNIT(SYSALLDA) SPACE(5,1) CYL. ADD DDDEF(SYSUT3) UNIT(SYSALLDA) SPACE(5,1) CYL. ADD DDDEF(SYSUT4) UNIT(SYSALLDA) SPACE(5,1 CYL. ENDUCL SET BOUNDARY(DZONE) . UCLIN. ADD DDDEF (MACLIB) DATASET(SYS1.MACLIB) /* UNIT(SYSALLDA)*/ /* VOLUME(MACVOL)* WAITFORDSN SHR. ADD DDDEF (SMPDEBUG) SYSOUT(*). ADD DDDEF (SMPLIST)
/*
<==3
*/
/* <==10
*/
//* <==11 */
DATASET(IQI.V7R1M0.SMPLOG) UNIT(SYSALLDA) VOLUME(SUPT01) /* <==8 WAITFORDSN SHR. ADD DDDEF (SMPLOGA) DATASET(IQI.V7R1M0.SMPLOGA) /* <==1 UNIT(SYSALLDA) VOLUME(SUPT01) /* <==8 WAITFORDSN SHR. ADD DDDEF (SMPLTS) DATASET(IQI.V7R1M0.SMPLTS) /* <==1 */ UNIT(SYSALLDA) VOLUME(SUPT01) /* <==8 */ WAITFORDSN SHR. ADD DDDEF (SMPMTS) DATASET(IQI.V7R1M0.SMPMTS) /* <==1 UNIT(SYSALLDA) VOLUME(SUPT01) /* <==8 WAITFORDSN SHR. ADD DDDEF (SMPPTS) DATASET(IQI.V7R1M0.SMPPTS) /* <==1
*/ */
*/ */
*/
540
8093ch11.fm
/*
<==8
*/
DATASET(IQI.V7R1M0.SMPSCDS) UNIT(SYSALLDA) VOLUME(SUPT01) /* <==8 */ WAITFORDSN SHR. ADD DDDEF (SMPSNAP) SYSOUT(*). ADD DDDEF (SMPSTS) DATASET(IQI.V7R1M0.SMPSTS) /* <==1 */ UNIT(SYSALLDA) VOLUME(SUPT01) /* <==8 */ WAITFORDSN SHR. ADD DDDEF (SMPWRK1) UNIT(SYSALLDA) SPACE(10 ,5) DIR(250) CYL. ADD DDDEF (SMPWRK2) UNIT(SYSALLDA) SPACE(10 ,5) DIR(250) CYL. ADD DDDEF (SMPWRK3) UNIT(SYSALLDA) SPACE(10 ,5) DIR(250) CYL. ADD DDDEF (SMPWRK4) UNIT(SYSALLDA) SPACE(10 ,5) DIR(250) CYL. ADD DDDEF (SMPWRK6) UNIT(SYSALLDA) SPACE(10 ,5) DIR(250) CYL. ADD DDDEF (SYSLIB) CONCAT(SMPMTS MACLIB). ADD DDDEF (SYSPRINT) SYSOUT(*). ADD DDDEF(SYSUT1) UNIT(SYSALLDA) SPACE(5,1) CYL. ADD DDDEF(SYSUT2) UNIT(SYSALLDA) SPACE(5,1) CYL.
541
8093ch11.fm
ADD DDDEF(SYSUT3) UNIT(SYSALLDA) SPACE(5,1) CYL. ADD DDDEF(SYSUT4) UNIT(SYSALLDA) SPACE(5,1) CYL. ENDUCL. // The job is considered successful if a return code of 0 is received.
//IQIJDDDF JOB 'ACCOUNT INFORMATION','ADD DDDEF', // CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1), // NOTIFY=&SYSUID //DDDEF EXEC PGM=GIMSMP,REGION=0M //SMPCSI DD DSN=IQI.V7R1M0.GLOBAL.CSI,DISP=SHR /* <=== NOTE 2 */ //SMPCNTL DD * SET BDY(TZONE) . /* <=== NOTE 3 */ UCLIN . ADD DDDEF(SIQIINST) DA(IQI.V7R1M0.SIQIINST) /* <=== 3 TARGET LIBRARY */ UNIT(SYSALLDA) VOLUME(SUPT01) /* <=== 3 TVOL2 VOLUME */ WAITFORDSN SHR . ADD DDDEF(SIQICLIB) DA(IQI.V7R1M0.SIQICLIB) /* <=== 3 TARGET LIBRARY */ UNIT(SYSALLDA) VOLUME(SUPT01) /* <=== 3 TVOL1 VOLUME */ WAITFORDSN SHR . ADD DDDEF(SIQICLBV) DA(IQI.V7R1M0.SIQICLBV) /* <=== 3 TARGET LIBRARY */ UNIT(SYSALLDA) VOLUME(SUPT01) /* <=== 3 TVOL1 VOLUME */ WAITFORDSN SHR . ADD DDDEF(SIQILOAD) DA(IQI.V7R1M0.SIQILOAD) /* <=== 3 TARGET LIBRARY */ UNIT(SYSALLDA) VOLUME(SUPT01) /* <=== 3 TVOL1 VOLUME */ WAITFORDSN SHR . ADD DDDEF(SIQILPA) DA(IQI.V7R1M0.SIQILPA) /* <=== 3 TARGET LIBRARY */ UNIT(SYSALLDA) VOLUME(SUPT01) /* <=== 3 TVOL1 VOLUME */
542
8093ch11.fm
WAITFORDSN SHR . ADD DDDEF(SIQIMLIB) DA(IQI.V7R1M0.SIQIMLIB) UNIT(SYSALLDA) VOLUME(SUPT01) WAITFORDSN SHR . ADD DDDEF(SIQIPLIB) DA(IQI.V7R1M0.SIQIPLIB) UNIT(SYSALLDA) VOLUME(SUPT01) WAITFORDSN SHR . ADD DDDEF(SIQISLIB) DA(IQI.V7R1M0.SIQISLIB) UNIT(SYSALLDA) VOLUME(SUPT01) WAITFORDSN SHR . ADD DDDEF(SIQITLIB) DA(IQI.V7R1M0.SIQITLIB) UNIT(SYSALLDA) VOLUME(SUPT01) WAITFORDSN SHR . ADD DDDEF(AIQIINST) DA(IQI.V7R1M0.AIQIINST) UNIT(SYSALLDA) VOLUME(SUPT01) WAITFORDSN SHR . ADD DDDEF(AIQICLIB) DA(IQI.V7R1M0.AIQICLIB) VOLUME(SUPT01) WAITFORDSN SHR . ADD DDDEF(AIQICLBV) DA(IQI.V7R1M0.AIQICLBV) UNIT(SYSALLDA) VOLUME(SUPT01) WAITFORDSN SHR . ADD DDDEF(AIQILOAD) DA(IQI.V7R1M0.AIQILOAD) UNIT(SYSALLDA) VOLUME(SUPT01) WAITFORDSN SHR . ADD DDDEF(AIQILPA) DA(IQI.V7R1M0.AIQILPA) UNIT(SYSALLDA) VOLUME(SUPT01) WAITFORDSN SHR .
543
8093ch11.fm
ADD DDDEF(AIQIMLIB) DA(IQI.V7R1M0.AIQIMLIB) /* <=== 3 DIST. LIBRARY */ UNIT(SYSALLDA) VOLUME(SUPT01) /* <=== 3 DIST. VOLUME */ WAITFORDSN SHR . ADD DDDEF(AIQIPLIB) DA(IQI.V7R1M0.AIQIPLIB) /* <=== 3 DIST. LIBRARY */ UNIT(SYSALLDA) VOLUME(SUPT01) /* <=== 3 DIST. VOLUME */ WAITFORDSN SHR . ADD DDDEF(AIQISLIB) DA(IQI.V7R1M0.AIQISLIB) /* <=== 3 DIST. LIBRARY */ UNIT(SYSALLDA) VOLUME(SUPT01) /* <=== 3 DIST. VOLUME */ WAITFORDSN SHR . ADD DDDEF(AIQITLIB) DA(IQI.V7R1M0.AIQITLIB) /* <=== 3 DIST. LIBRARY */ UNIT(SYSALLDA) VOLUME(SUPT01) /* <=== 3 DIST. VOLUME */ WAITFORDSN SHR . ENDUCL . //* //DDDEF2 EXEC PGM=GIMSMP,REGION=0M //SMPCSI DD DSN=IQI.V7R1M0.GLOBAL.CSI,DISP=SHR /* <=== NOTE 2 */ //SMPCNTL DD * SET BDY(DZONE) . /* <=== NOTE 3 */ UCLIN . ADD DDDEF(AIQIINST) DA(IQI.V7R1M0.AIQIINST) /* <=== 3 DIST. LIBRARY */ VOLUME(SUPT01) /* <=== 3 DIST. VOLUME */ WAITFORDSN SHR . ADD DDDEF(AIQICLIB) DA(IQI.V7R1M0.AIQICLIB) /* <=== 3 DIST. LIBRARY */ UNIT(SYSALLDA) VOLUME(SUPT01) /* <=== 3 DIST. VOLUME */ WAITFORDSN SHR . ADD DDDEF(AIQICLBV) DA(IQI.V7R1M0.AIQICLBV) /* <=== 3 DIST. LIBRARY */ UNIT(SYSALLDA) VOLUME(SUPT01) /* <=== 3 DIST. VOLUME */ WAITFORDSN SHR . ADD DDDEF(AIQILOAD) DA(IQI.V7R1M0.AIQILOAD) /* <=== 3 DIST. LIBRARY */ UNIT(SYSALLDA) VOLUME(SUPT01) /* <=== 3 DIST. VOLUME */ WAITFORDSN SHR . ADD DDDEF(AIQILPA)
544
8093ch11.fm
DA(dstIQI.V7R1M0.AIQILPA) UNIT(SYSALLDA) VOLUME(SUPT01) WAITFORDSN SHR . ADD DDDEF(AIQIMLIB) DA(IQI.V7R1M0.AIQIMLIB) UNIT(SYSALLDA) VOLUME(SUPT01) WAITFORDSN SHR . ADD DDDEF(AIQIPLIB) DA(IQI.V7R1M0.AIQIPLIB) UNIT(SYSALLDA) VOLUME(SUPT01 WAITFORDSN SHR . ADD DDDEF(AIQISLIB) DA(IQI.V7R1M0.AIQISLIB) UNIT(SYSALLDA) VOLUME(SUPT01) WAITFORDSN SHR . ADD DDDEF(AIQITLIB) DA(IQI.V7R1M0.AIQITLIB) UNIT(SYSALLDA) VOLUME(SUPT01) WAITFORDSN SHR . ENDUCL . //
//IQIJRECV JOB 'ACCOUNT INFORMATION','RECEIVE PROD', // CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1), // NOTIFY=&SYSUID //RECEIVE EXEC PGM=GIMSMP,REGION=0M /* <=== NOTE 2 */ //* //SMPCSI DD DSN=IQI.V7R1M0.GLOBAL.CSI,DISP=SHR /* <=== NOTE 3 */ //* //*SMPTLIB DD UNIT=SYSALLDA,DISP=OLD, /* <=== NOTE 4 */ //* VOL=SER=volser //* 545
8093ch11.fm
//SMPPTFIN DD DSN=SMPMCS,UNIT=SYSALLDA, /* <=== NOTE 5 */ // VOL=SER=IQI610,DISP=OLD //* //SMPLOG DD DSN=IQI.V7R1M0.SMPLOG,DISP=SHR /* <== NOTE 6 */ //SMPPTS DD DSN=IQI.V7R1M0.SMPPTS,DISP=SHR /* <== NOTE 6 */ //* //* //SMPCNTL DD * SET BDY(GLOBAL) . RECEIVE SELECT(HIQI710) SYSMODS LIST . /* //* The job is considered successful if a return code of 0 is received.
//IQIJPTAP JOB 'ACCOUNT INFORMATION','APPLY PTF', // CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1), // NOTIFY=&SYSUID //APPLY EXEC PGM=GIMSMP,REGION=0M /* <=== Note 2 //* //SMPCSI DD DSN=IQI.V7R1M0.GLOBAL.CSI,DISP=SHR //SMPLOG DD DSN=IQI.V7R1M0.SMPLOG,DISP=SHR //SMPLOGA DD DSN=IQI.V7R1M0.SMPLOGA,DISP=SHR //SMPMTS DD DSN=IQI.V7R1M0.SMPMTS,DISP=SHR //SMPSTS DD DSN=IQI.V7R1M0.SMPSTS,DISP=SHR //SMPPTS DD DSN=IQI.V7R1M0.SMPPTS,DISP=SHR //SMPSCDS DD DSN=IQI.V7R1M0.SMPSCDS,DISP=SHR //* //SMPCNTL DD * SET BDY(TZONE). /* <=== NOTE 4 */ APPLY SELECT(HIQI710) /* <=== NOTE 5 */ FORFMID(HIQI710) GROUPEXTEND /* CHECK */ /* <=== Note 6 */ . //
*/ /*<=== NOTE 3*/ /*<=== NOTE 3*/ /*<=== NOTE 3*/ /*<=== NOTE 3*/ /*<=== NOTE 3*/ /*<=== NOTE 3*/
546
8093ch11.fm
//IQIJACPT JOB 'ACCOUNT INFORMATION','ACCEPT PROD', // CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1), // NOTIFY=&SYSUID //ACCEPT EXEC PGM=GIMSMP,REGION=0M /* <=== Note 2 */ //SMPCSI DD DSN=IQI.V7R1M0.GLOBAL.CSI,DISP=SHR /* <=== Note 3 */ //* //SMPCNTL DD * SET BDY(DZONE) . /* <=== Note 4 */ ACCEPT SELECT(HIQI710) FORFMID(HIQI710) GROUPEXTEND /* CHECK */ . //
/* <=== Note 5 */
547
8093ch11.fm
//IQIJLIST JOB 'ACCOUNT INFORMATION','LIST SYSMODS', // CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1), //LIST EXEC PGM=GIMSMP,REGION=0M /* <=== Note 2 */ //* //SMPCSI DD DSN=IQI.V7R1M0.GLOBAL.CSI,DISP=SHR /* <=== Note 3 */ //* //SMPCNTL DD * SET BDY(TZONE) . /* <=== Note 4 */ LIST SYSMODS . //
//IQIJRJCT JOB 'ACCOUNT INFORMATION','REJECT PTF', // CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1), // NOTIFY=&SYSUID //REJECT EXEC PGM=GIMSMP,REGION=0M /* <=== NOTE 2 */ //* //SMPCSI DD DSN=IQI.V7R1M0.GLOBAL.CSI,DISP=SHR /* <=== NOTE 3 */ //* //*SMPTLIB DD UNIT=SYSALLDA,DISP=OLD, /* <=== NOTE 4 */ //* VOL=SER=volser //* //SMPLOG DD DSN=IQI.V7R1M0.SMPLOG,DISP=SHR /* <== NOTE 5 */ //SMPPTS DD DSN=IQI.V7R1M0.SMPPTS,DISP=SHR /* <== NOTE 5 */ //* //SMPCNTL DD * SET BDY(GLOBAL) . REJECT SELECT(PTF) BYPASS( APPCHK) . /* <== NOTE 6 */
/* // Example 21-13 Example 11-13 shows the sample JCL for RESTORE.
548
8093ch11.fm
//IQIJRSTR JOB 'ACCOUNT INFORMATION','RESTORE PTF', // CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1), // NOTIFY=&SYSUID //RESTORE EXEC PGM=GIMSMP,REGION=0M /* <=== Note 2 */ //* //SMPCSI DD DSN=IQI.V7R1M0.GLOBAL.CSI,DISP=SHR /* <=== NOTE 3 */ //* //*SMPTLIB DD UNIT=SYSALLDA,DISP=OLD, /* <=== NOTE 4 */ //* VOL=SER=volser //* //SMPLOG DD DSN=IQI.V7R1M0.SMPLOG,DISP=SHR /* <=== NOTE 5*/ //SMPLOGA DD DSN=IQI.V7R1M0.SMPLOGA,DISP=SHR /* <=== NOTE 5*/ //SMPMTS DD DSN=IQI.V7R1M0.SMPMTS,DISP=SHR /* <=== NOTE 5*/ //SMPSTS DD DSN=IQI.V7R1M0.SMPSTS,DISP=SHR /* <=== NOTE 5*/ //SMPPTS DD DSN=IQI.V7R1M0.SMPPTS,DISP=SHR /* <=== NOTE 5*/ //SMPSCDS DD DSN=IQI.V7R1M0.SMPSCDS,DISP=SHR /* <=== NOTE 5*/ //* //SMPCNTL DD * SET BDY(TZONE) /* <=== NOTE 6 */ OPTIONS(DEFOPT) . RESTORE SELECT(PTF) /* <=== NOTE 7 */ GROUP . //
//*-----------------------------------------------------------------------------//* SERVERPAC LOGON PROCEDURE //* //* THIS PROCEDURE ENABLES USERS TO LOG ON TO TSO/E. //* THE CLIST ISPBET, WHICH RESIDES IN CPAC.CMDPROC, //* IS EXECUTED AT FIRST TO INVOKE THE ISPF. //*-----------------------------------------------------------------------------//IPTBETA PROC //IPTBETA EXEC PGM=IKJEFT01,DYNAMNBR=500,PARM=ISPBET //STEPLIB DD DISP=SHR,DSN=IQI.V7R1M0.SIQILPA * IPT Dataset *
Chapter 21. Installing IPT V7.1 on z/OS
549
8093ch11.fm
// DD DISP=SHR,DSN=MQM.SCSQANLE // DD DISP=SHR,DSN=MQM.SCSQAUTH // DD DSN=QMF.SDSQEXIT,DISP=SHR * QMF MODULES * // DD DSN=QMF.SDSQLOAD,DISP=SHR * QMF MODULES * // DD DSN=SYS1.DSN810.SDSNEXIT,DISP=SHR * DB2 MODULES * // DD DSN=DSN810.SDSNLOAD,DISP=SHR * DB2 MODULES * // DD DSN=GDDM.SADMMOD,DISP=SHR * GDDM MODULES * //SYSPROC DD DISP=SHR,DSN=CPAC.CMDPROC // DD DISP=SHR,DSN=IQI.V7R1M0.SIQICLIB //SYSHELP DD DISP=SHR,DSN=SYS1.HELP // DD DISP=SHR,DSN=ISF.SISFHELP // DD DISP=SHR,DSN=SYS1.SBDTHELP // DD DISP=SHR,DSN=SYS1.HELPENP // DD DISP=SHR,DSN=ISP.SISPHELP //SYSLBC DD DISP=SHR,DSN=SYS1.BRODCAST //SYSPRINT DD TERM=TS,SYSOUT=* //SYSTERM DD TERM=TS,SYSOUT=* //ISPPLIB DD DSN=QMF.SDSQPLBE,DISP=SHR //ISPMLIB DD DSN=QMF.SDSQMLBE,DISP=SHR //ISPSLIB DD DSN=QMF.SDSQSLBE,DISP=SHR //********************************************************** //* QMF/GDDM DATA SETS * //********************************************************** //ADMGGMAP DD DSN=QMF.SDSQMAPE,DISP=SHR //ADMCFORM DD DSN=QMF.SDSQCHRT,DISP=SHR //*DSQUCFRM DD DSN=AAAAAAA,DISP=SHR //ADMCDATA DD DSN=GDDM.SADMCDA,DISP=SHR //ADMGDF DD DSN=GDDM.SADMGDF,DISP=SHR //ADMSYMBL DD DSN=GDDM.SADMSYM,DISP=SHR //********************************************************** //* DATASETS USED BY QMF * //********************************************************** //DSQPNLEDD DSN=QMF.DSQPNLE,DISP=SHR //DSQPRINT DD SYSOUT=A,DCB=(RECFM=FBA,LRECL=133,BLKSIZE=1330) //DSQDEBUG DD SYSOUT=A,DCB=(RECFM=FBA,LRECL=121,BLKSIZE=1210) //DSQEDITDD UNIT=SYSDA,DCB=(RECFM=FBA,LRECL=79,BLKSIZE=4029), // DISP=NEW,SPACE=(CYL,(1,1)) //DSQUDUMP DD SYSOUT=A,DCB=(RECFM=VBA,LRECL=125,BLKSIZE=1632) //SYSUDUMP DD SYSOUT=A //DSQSPILL DD DSN=&&SPILL,DISP=(NEW,DELETE), // UNIT=SYSDA,SPACE=(CYL,(1,1),RLSE), // DCB=(RECFM=F,LRECL=4096,BLKSIZE=4096) //SYSIN DD TERM=TS //* //********************************************************** //* IPT/IQI DATA SETS * //********************************************************** //IQITLIB DD DISP=SHR,DSN=IQI.V7R1M0.SIQITLIB We created the IPTBETA TSO LOGON procedure as shown in Example 11-15. LPA load library SIQILPA The IPT target library, SIQILPA, is specified at the first of DD (STEPLIB). Ensure SIQILPA library is specified ahead of the corresponding ISPF SISPLPA library. CLIST library SIQICLIB 550
Improving Productivity with ISPF Productivity Tool V7.1
8093ch11.fm
Add the CLIST library to the DD (SYSPROC) concatenation. We recommend that you place the IPT CLIST library as the first library in the concatenation. We created the new CLIST PROC ISPBET and placed it in the CPAC.CMDPROC. ISPBET is passed as a parameter to IKJEFT01 in the IPTBETA logon procedure. Table library SIQITLIB Add a new statement for the table library with DD (IQITLIB). Do not confuse this DD name with ISPFs ISPTLIB.
/* */ /* 5751-CS9 */ /* (C) COPYRIGHT IBM CORP.1996, 2006 */ /* */ /* LIB: CPAC.CMDPROC(ISPPDF) */ /* DOC: THIS CLIST ALLOCATES THE FILES REQUIRED BY ISPF AND PDF */ /* AND THEN INVOKES PDF. */ /* */ /* NOTE: SYSPROC IS FREED AND REALLOCATED TO INCLUDE THE PDF CLIST*/ /* DATASET. THIS MAY RESULT IN A DIFFERENT CONCATENATION */ /* THAN EXISTED BEFORE THIS CLIST WAS INVOKED. */ /* */ /**************************************************/ CONTROL NOFLUSH NOMSG MAIN PROFILE MODE WTPMSG MSGID FREE FILE(ISPLLIB,ISPPLIB,ISPMLIB,ISPTLIB,ISPSLIB, + ISPPROF,ISPTABL,SMPTABL,IPCSPARM,ISPPALT,ISPMALT,ISPILIB) /*********************************************************************/ WRITE WRITE LOGON PROC IS IPTBETA WRITENR ALLOCATING ISPF AND PRODUCT DATASETS /*************************************************************/ FREE FI(SYSPROC) ALLOC FI(SYSPROC) SHR DA( + 'CPAC.CMDPROC' + 'IQI.V7R1M0.SIQICLIB' + 'DSN810.SDSNCLST' + 'SYS1.SBLSCLI0' + 'SYS1.SERBCLS' + 'DBATOOL.SADBCLST' + 'DBATOOL.SADBEXEC' + 'SYS1.HRFCLST' + 'GIM.SGIMCLS0' + 'CBC.SCCNUTL' + 'SYS1.SICECLIB' + 'SYS1.SBDTCLI0' + 'SYS1.SCBDCLST' + 'CSF.SCSFCLI0' + 'EOY.SEOYCLIB' + 'EOX.SEPHCLB1' + 'ICQ.ICQCCLIB' + 'ISP.SISPCLIB' +
551
8093ch11.fm
+ +
FREE FI(SYSEXEC) ALLOC FI(SYSEXEC) SHR DA( + 'MQM.SCSQEXEC' + 'QMF.SDSQEXCE' + 'EUV.SEUVEXEC' + 'ISF.SISFEXEC' + 'AOP.SAOPEXEC' + 'IOE.SIOEEXEC' + 'EOY.SEOYCLIB' + 'EOX.SEPHCLB1' + 'SYS1.SBPXEXEC' + 'EUVF.SEUVFEXC' + 'GLD.SGLDEXEC' + 'ISP.SISPEXEC' + 'FFST.V120ESA.SEPWSRC1' + 'SYS1.SEDGEXE1') WRITENR . SET &DSNAME = &SYSUID..ISPF.ISPPROF ALLOC FI(ISPPROF) SHR DA('&DSNAME.') IF &LASTCC = 0 THEN + DO FREE FI(ISPCRTE) CONTROL MSG ATTRIB ISPCRTE DSORG(PO) RECFM(F B) LRECL(80) BLKSIZE(6160) ALLOC DA('&DSNAME.') SP(5,1) CYLINDERS DIR(20) USING(ISPCRTE) + FI(ISPPROF) IF &LASTCC = 0 THEN + WRITE *** ISPF PROFILE DATA SET '&DSNAME.' HAS BEEN CREATED ELSE + DO WRITE *** UNABLE TO ALLOCATE ISPF PROFILE DATA SET '&DSNAME.' FREE FI(ISPCRTE) EXIT CODE(12) END FREE FI(ISPCRTE) END CONTROL MSG ERROR EXIT IF &PANEL = &STR() THEN + SET &PNL = PANEL(ISR@PRIM) ELSE + SET &PNL = PANEL(&PANEL) ALLOC FI(ISPTABL) SHR DA( + '&DSNAME' + ) ALLOC FI(SMPTABL) SHR DA('&DSNAME.') ALLOC FI(ISPLLIB) SHR DA( + 'IQI.V7R1M0.SIQILPA' + 'IQI.V7R1M0.SIQILOAD' + 'MQM.SCSQANLE + 'SYS1.DFQLLIB' + 'DBATOOL.SADBLLIB' + 'SYS1.DGTLLIB') WRITENR . ALLOC FI(ISPPLIB) SHR DA( +
552
8093ch11.fm
'CPAC.ISPPLIB' 'IQI.V7R1M0.SIQIPLIB' 'DSN810.SDSNPFPE' 'DBATOOL.SADBPLIB' 'ISP.SISPPENU' 'SYS1.SERBPENU' 'SYS1.HRFPANL' 'MQM.SCSQPNLE' 'GIM.SGIMPENU' 'EUV.SEUVPNL' 'TCPIP.SEZAPENU' 'SYS1.SBLSPNL0' 'ISF.SISFPLIB' 'SYS1.SHASPNL0' 'AOP.SAOPPENU' 'SYS1.SICEPENU' 'EOY.SEOYPENU' 'SYS1.SBDTPNL0' 'IOE.SIOEPNLE' 'SYS1.SCBDPENU' 'CSF.SCSFPNL0' 'EOX.SEPHPNL1' 'SYS1.SBPXPENU' 'ICQ.ICQPLIB' 'GDDM.SADMPNL' 'FFST.V120ESA.SEPWPENU' 'SYS1.DFQPLIB' 'SYS1.DGTPLIB' 'SYS1.SEDGPENU') WRITENR . ALLOC FI(ISPMLIB) SHR DA( + 'SYS1.SERBMENU' 'IQI.V7R1M0.SIQIMLIB' 'DSN810.SDSNSPFM' 'DBATOOL.SADBMLIB' 'SYS1.HRFMSG' 'MQM.SCSQMSGE' 'GIM.SGIMMENU' 'EUV.SEUVMSG' 'TCPIP.SEZAMENU' 'ISF.SISFMLIB' 'AOP.SAOPMENU' 'SYS1.SICEMENU' 'EOY.SEOYMENU' 'SYS1.SBDTMSG' 'IOE.SIOEMSGE' 'SYS1.SCBDMENU' 'CSF.SCSFMSG0' 'EOY.SEOYBENU' 'EOX.SEPHMSG1' 'SYS1.SBLSMSG0' 'SYS1.SBPXMENU' 'ICQ.ICQMLIB' 'ISP.SISPMENU' 'GDDM.SADMMSG'
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + +
553
8093ch11.fm
'SYS1.DGTMLIB' + 'SYS1.DFQMLIB' + 'SYS1.SEDGMENU') ALLOC FI(IPCSPARM) SHR DA( + 'SYS1.SHASPARM' 'SYS1.IBM.PARMLIB') WRITENR . ALLOC FI(ISPTLIB) SHR DA( + '&DSNAME' 'SYS1.SERBT' + 'SYS1.SERBTENU' + 'DBATOOL.SADBTLIB' + 'MQM.SCSQTBLE' + 'GIM.SGIMTENU' + 'ISF.SISFTLIB' + 'SYS1.SICETLIB' + 'EOY.SEOYTENU' + 'SYS1.SCBDTENU' + 'CSF.SCSFTLIB' + 'EOX.SEPHTBL1' + 'SYS1.SBLSTBL0' + 'SYS1.SBPXTENU' + 'ICQ.ICQTABLS' + 'ISP.SISPTENU' + 'SYS1.DGTTLIB') WRITENR . ALLOC FI(ISPSLIB) SHR DA( + 'SYS1.HRFSKEL' 'IQI.V7R1M0.SIQISLIB' 'GIM.SGIMSENU' 'DBATOOL.SADBSLIB' 'ISF.SISFSLIB' 'SYS1.SICESLIB' 'CSF.SCSFSKL0' 'SYS1.SBLSKEL0' 'ICQ.ICQSLIB' 'ISP.SISPSLIB' 'ISP.SISPSENU' 'SYS1.DGTSLIB') WRITENR . ALLOC FI(ISPILIB) SHR DA( + 'ISP.SISPSAMP') ALLOC FI(DITPLIB) SHR DA('DIT.V1R3M0.SDITPLIB') WRITE BRODCAST ERROR RETURN PDF &PNL IPT load library SIQILOAD Place the IPT load library, SIQILOAD, in DD(ISPLLIB) or DD(STEPLIB). CLIST library SIQICLIB Add the CLIST library to the DD(SYSPROC) concatenation. We recommend that you place the IPT CLIST library as the first library in the concatenation. Message library SIQIMLIB Add the message library to the DD(ISPMLIB) concatenation. +
+ + + + + + + + + + +
554
8093ch11.fm
Panel library SIQIPLIB Add the panel library to the DD(ISPPLIB) concatenation. We recommend that you place the ISPF Productivity Tool panel library as the first library in the concatenation. Skeleton library SIQISLIB Add the skeleton library to the DD(ISPSLIB) concatenation. Important: There are other special purpose optional DD statements that can be used as required.
21.5 Creating a RACF profile to use the customized TSO LOGON PROC for IPT
To create the RACF profile to use the customized TSO LOGON PROC for IPT: 1. Choose the RACF - Resource Access Control Facility menu from ISPF. 2. Choose option 2 - GENERAL RESOURCE PROFILES from the RACF menu, as shown in Figure 21-1 on page 555.
3. Choose option 1: ADD - Add a profile on the RACF - General Resource Profile Services menu, as shown in Figure 21-2.
555
8093ch11.fm
4. Add the profile information. We specified CLASS as TSOPROC and PROFILE as IPTBETA, as shown in Figure 21-3 on page 556.
5. In Figure 21-4, we have specified the relevant parameters. We recommend that you specify UACC as READ, as shown in Figure 21-4 Figure 11-5. Press Enter. The profile IPTBETA is ready to use.
556
8093ch11.fm
557
8093ch11.fm
3. IPT gives the option to choose the topic of your choice or to learn about IPT. Press F3 to exit from the IPT general information (see Figure 21-7 on page 558).
4. When you exit the IPT General Information panel, you see the Persistent Table Management panel, as shown in Figure 21-8. The Persistent Table Management panel indicates that IPITBLIB is unavailable. Press Enter to continue.
558
8093ch11.fm
5. Allocate the datasets so that the procedure IPTBETA can use them. Specify the relevant fields, and press Enter to continue, as shown in Figure 21-9 on page 559.
6. After the allocation is successful, ISPF displays a message that IPITBLIB is now available for use, as shown in Figure 21-10.
559
8093ch11.fm
We can continue to work after IPITBLIB is available. On every instance after the first logon, when we log on using IPTBETA PROC, the ISPF main menu displays IBM IPT VERSION 7.1, as shown in Figure 21-11 on page 560.
560
8093ch11.fm
To determine the maintenance level of the IPT at your installation, enter the following command on any IPT panel: IPT VER or enter the shortcut IVER The initial panel displays the range of installed APARs, as shown in Figure 21-12 on page 561, which is the IPT VER output. The scrollable list displays the date and maintenance level of each IPT module.
561
8093ch11.fm
562
8093ax01.fm
Appendix A.
563
8093ax01.fm
Marking the box for cut and paste activities without the mouse
Figure A-1shows the basic keyboard arrows.
To mark a box around text for cut and paste activities without the mouse: 1. Use the keyboard arrows shown in Figure A-1 to move the cursor to a corner of the area that you want to mark. 2. While holding down the Shift key, use the cursor-movement keys to mark the area. 3. Release the Shift key. 4. You can use the mouse to click Edit Copy to continue with the copy operation.
To display the pop-up keypad without using the mouse: Left-click the Action menu bar command. Left-click the display pop-up keypad. Because you now have an alternate method to mark text and to display the pop-up keypad, you are ready to program your mouse to open and close files.
564
8093ax01.fm
3. Click Customize. 4. Click the pull-down list. Scroll down until you find the mouse position. Click the mouse position to highlight it, and then click Add. 5. Scroll up until you find Enter. Click Enter to highlight it, and click Add. You will now see both commands [mouse position] and [enter] in the Macro Statements box. 6. Click File Save. Enter a name for the Macro, such as mouse.mac., as shown in Figure A-3.
7. Close the Macro/Script window by clicking the X in the upper-right corner of the box. The previous steps defined the macro file mouse.mac and positioned the cursor and invoked Enter. The next series of steps defines the mouse actions: 1. Left-click Edit Preferences Mouse. 2. Left-click User-Defined, and then left-click Customize. 3. When you see the completed Customization panel, follow these steps: a. Left-click in the Macro/Script box, and locate the Macro/Script file name that you saved earlier. b. When you find the correct file name, click the Left box of the Current Action of Mouse Button, which enables the Macro/Script that you created earlier by using the left-mouse click. c. Left-click the Function Pull Down, and locate Program Function Key 3. Your PF3 key is set to END, which saves and closes files. Select Program Function Key 3. d. Left-click the Right box of the Current Action of Mouse Button. e. Click the red X to close the Customize Mouse panel, and the Figure A-4 on page 566 is displayed, as shown in Figure A-4 on page 566.
565
8093ax01.fm
f. Click Yes. g. Enter a valid file name. Save the MMP file.
566
8093ax01.fm
1. Left-click DNET424.ADLAB.COPYLIB, which is the MSL in the Member Selection List that is shown in Figure A-6.
2. Left-click CUSTMAST to browse the member. The contents of CUSTMAST are displayed in Figure A-8 on page 568.
567
8093ax01.fm
3. We customized F4 using the VIEW command. Put your cursor under CUSTREC1, and press PF4 to view the CUSTREC1 member. The CUSTREC1 member view is displayed (Figure A-9).
4. Using PF4, we can view the CUSTREC1 member. Right-click to invoke the END command, and return to the previous panel.
568
8093ax02.fm
Appendix B.
Personalization suggestions
In this chapter, we show you how to customize the Interactive System Productivity Facility (ISPF) Productivity Tool (IPT) Version 7, Release 1 for experiencing the new look and feel. You can use the standard ISPF function keys to minimize the keystrokes that are required when you use the ISPF Productivity Tool Point-and-Shoot functions. In the following sections, we show you how to define the PF4 key to initiate the VIEW primary command when using System Display and Search Facility (SDSF). You can choose to define a PF key for a Browse or Edit command or any of the ISPF Productivity Tool shortcuts that the IPT? command shows. You can choose to define any function key to view the file.
569
8093ax02.fm
In the User Interface Options, specify N for the Activate Action Bars option and press k and then PF3 to exit to ISPF main screen as shown in Figure B-2 on page 570.
You will get the Interface Change Warning shown in Figure B-3 on page 571 indicating that the some of the panel interface options were changed and that they will take effect immediately or later.
570
8093ax02.fm
Check for the removal of the Action bar from any of the IPT panels. IFor example, enter O* to view the Object Lists as shown in Figure B-4 on page 571.
You can see that the Action bar is not displayed in the Permanent Object Lists pane as shown in Figure B-5 on page 572 and selecting a member shows that the action bar is not displayed on the member display as shown in Figure B-6 on page 572.
571
8093ax02.fm
Figure B-5 No action bar is displayed on the Permanent Object Lists panel
572
8093ax02.fm
Figure B-7 Dataset list having Volume information displayed on the right
To remove the volume information from this display, use the ISET command to invoke the Primary menu for setting the IPT defaults. Select option O to invoke the Object List Options menu as shown in Figure B-8 on page 573.
Select the No option for the Show VOLSER of cataloged datasets setting as shown in Figure B-9 on page 574 to remove the volume information from the display for the cataloged datasets.
573
8093ax02.fm
You can see that the Volume information is not displayed in the OLIST screen as shown in Figure B-10.
574
8093ax02.fm
You can remove the display of PF keys by choosing option 0 Settings from the main ISPF screen as shown in Figure B-12 on page 575.
Select the Function Keys menu at the top of the screen, select option 6 Remove function key display and press Enter key as shown in Figure B-13 on page 576.
575
8093ax02.fm
Selecting this option removes the display of PF keys from all ISPF panels as shown in Figure B-14 on page 576.
576
8093ax02.fm
Figure B-15 Using INAM command to activate SWAPBAR and assign screen name
The INAM command supports the ON and OFF options in order to turn the SWAPBAR off when not needed.
577
8093ax02.fm
When commands are not defined on the Hotbar, the tag changes to Hotbar? and the Hotbar fields are blank as shown in Figure B-18 on page 579. To activate a Hotbar command, use point-and-shoot techniques. You can place any valid command that could be manually be entered on the COMMAND line.
578
8093ax02.fm
On the OLIST screen, the Hotbar commands shown in Table B-1 are useful.
Table B-1 Hotbar commands list on OLIST screen Command FLIP REFRESH RESET CLRVOL FILLVOL RFIND UPDATE VALIDATE SET UTIL CUT PASTE Use Hide visible lines and reveal excluded and filtered-out lines Refresh current OLIST from original parameters Clear the COMMAND field Clear the VOLUME column Fill the VOLUME column Repeat the last FIND, FINDMEM, FINDTEXT, or EXCLUDE command Edit the OLIST Validate OLIST entries Modify -IPT- user default settings Temporarily exit to ISPF option 3 (Utilities) Cut the OLIST into default clipboard Paste into the OLIST from the default clipboard
On the MSL screen, the Hotbar commands in Table B-2 on page 579 are useful.
Table B-2 Hotbar commands list on MSL screen Command SET REFRESH Use Modify-IPT-user default settings Refresh member selection list from directory
579
8093ax02.fm
Use Reset filters, excludes, and sorting order Issue an EDIT FIND and/or CHANGE on all displayed members Hide visible members and reveal excluded and filtered-out members Repeat the last FINDTEXT command Re-apply the tailoring command Show totals for members
Table B-3 shows useful Hotbar commands for the Edit, View and Browse Entry panels.
Table B-3 Hotbar commands list on Edit , View and Browse Entry Panels Command SET @H @L SORT CHA SCLMPARM COMPRESS TAILOR TOTALS Use Modify-IPT-user default settings Select a data set from the history list Select the last referenced data set in the history list Display the member list sorted by the changed date(most recently changed member on top of list) If SCLM is active, display the current SCLM parameters Compress the member list Re-apply the tailoring command Show totals for members
580
8093ax02.fm
To invoke a command from the Hotbar, use the point-and-shoot technique by placing the cursor on the command and pressing Enter. In Figure B-19 on page 581 the FILLVOL command is selected.
The FILLVOL command will be executed to display the Volume information as shown in Figure B-20 on page 581.
581
8093ax02.fm
582
8093bibl.fm
Related publications
The publications listed in this section are considered particularly suitable for a more detailed discussion of the topics covered in this book.
IBM Redbooks
The following IBM Redbooks publications provide additional information about the topic in this document. Note that some publications referenced in this list might be available in softcopy only. Application Lifecycle Management with SCLM on System z, SG24-7592 You can search for, view, download or order these documents and other Redbooks, Redpapers, Web Docs, draft and additional materials, at the following website: ibm.com/redbooks
Other publications
These publications are also relevant as further information sources:
Online resources
These websites are also relevant as further information sources: Information about the IBM ISPF tool family: http://www.ibm.com/software/awdtools/ispfproductivitytool ISPF Productivity Tool, Version 7 Release 1 Publications: http://www-01.ibm.com/software/awdtools/ispfproductivitytool/library/#v71 This includes download links for the following publications: Installation and Customization Guide Users Guide Program directory
583
8093bibl.fm
584
To determine the spine width of a book, you divide the paper PPI into the number of pages in the book. An example is a 250 page book using Plainfield opaque 50# smooth which has a PPI of 526. Divided 250 by 526 which equals a spine width of .4752". In this case, you would use the .5 spine. Now select the Spine width for the book and hide the others: Special>Conditional Text>Show/Hide>SpineSize(-->Hide:)>Set . Move the changed Conditional text settings to all files in your book by opening the book file with the spine.fm still open and File>Import>Formats the
8093spine.fm
585
To determine the spine width of a book, you divide the paper PPI into the number of pages in the book. An example is a 250 page book using Plainfield opaque 50# smooth which has a PPI of 526. Divided 250 by 526 which equals a spine width of .4752". In this case, you would use the .5 spine. Now select the Spine width for the book and hide the others: Special>Conditional Text>Show/Hide>SpineSize(-->Hide:)>Set . Move the changed Conditional text settings to all files in your book by opening the book file with the spine.fm still open and File>Import>Formats the
8093spine.fm
586
Back cover
IPT functionality is available from any ISPF panel. IPT combines ISPF utility functions and new IPT features into the Object List (OLIST) and Member Selection List (MSL). The resulting member, dataset, and object lists become powerful platforms where you can perform many tasks without navigating to other utilities. IPT relates objects to applications. By extending the dataset objects that are used by ISPF to other object classes, IPT lets you specify the object to be processed and the action that is performed (such as EDIT or BROWSE). IPT provides extensive search capabilities and drill-down system navigation that allow you to easily search for volumes, datasets, members, and text within members. IPT provides a menu-driven facility to display and recover all of the deleted members of a partitioned dataset (PDS) library. IPT extends the ISPF Action Bar with options that provide access to new functionality so that you do not have to learn new commands or syntax.
IPT provides integrated and enhanced IBM Software Configuration and Library Manager (SCLM) support within the standard member and dataset lists. IPT includes a new batch utility that provides a seamlessly integrated front-end to IBM's IEBCOPY utility. This book is intended as a supplement to existing product manuals. It starts with an overview of the main IPT concepts and facilities. It then follows with detailed chapters, each dedicated to a major IPT function. Practical scenarios, accompanied by detailed screen captures and coding examples, demonstrate how to take advantage of the IPT enhanced functionality in every case.