Hiperstation for VTAM User Guide
Transcription
Hiperstation for VTAM User Guide
Hiperstation for VTAM User Guide Release 16.05 ii Hiperstation for VTAM User Guide Please direct questions about Hiperstation or comments on this document to: Compuware Customer Support http://go.compuware.com This document and the product referenced in it are subject to the following legends: Copyright 1994-2016 Compuware Corporation. All rights reserved. Unpublished rights reserved under the Copyright Laws of the United States. U.S. GOVERNMENT RIGHTS-Use, duplication, or disclosure by the U.S. Government is subject to restrictions as set forth in Compuware Corporation license agreement and as provided in DFARS 227.7202-1(a) and 227.7202-3(a) (1995), DFARS 252.227-7013(c)(1)(ii) (OCT 1988), FAR 12.212(a) (1995), FAR 52.227-19, or FAR 52.227-14 (ALT III), as applicable. Compuware Corporation. This product contains confidential information and trade secrets of Compuware Corporation. Use, disclosure, or reproduction is prohibited without the prior express written permission of Compuware Corporation. Access is limited to authorized users. Use of this product is subject to the terms and conditions of the user’s License Agreement with Compuware Corporation. Compuware, Hiperstation, Hiperstation for VTAM, Hiperstation for Mainframe Servers, Hiperstation for WebSphere MQ, QAHiperstation+, QAPlayback, File-AID, File-AID for DB2, File-AID for IMS, File-AID/MVS, and File-AID/RDX are trademarks or registered trademarks of Compuware Corporation. ISPF, CICS, DB2, DFSMS, MVS/ESA, MVS/SP, MVS/XA, OS/390, RACF, REXX, VTAM, BookManager, MQSeries, WebSphere MQ, zSeries, and z/OS are trademarks or registered trademarks of International Business Machines Corporation. Adobe® Reader® is a trademark of Adobe Systems Incorporated in the United States and/or other countries. All other company and product names are trademarks or registered trademarks of their respective owners. Doc. JAN2016 December 21, 2015 iii Contents Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix Accessing Hiperstation Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix HTML Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xx Using this Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xx Hiperstation for VTAM User Guide Overview. . . . . . . . . . . . . . . . . . . . . . . xx Notation Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi Command Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxii Reading Syntax Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxii Accessibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xxiii Installing Windows Accessibility Features . . . . . . . . . . . . . . . . . . . . . . . . xxiv Selecting Font and Font Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiv Changing Color and Contrast. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiv Setting Cursor Blink Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv Using Keyboard Shortcuts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv Accessibility Exceptions Work Arounds . . . . . . . . . . . . . . . . . . . . . . . . . . xxv Known Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvi Getting Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvi FrontLine Support Web Site . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvi Contacting Customer Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvi Phone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvi Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii Mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii Corporate Web Site . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii Chapter 1. Product Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1 Hiperstation for VTAM Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1 Automated Testing Vehicle (ATV) Manager . . . . . . . . . . . . . . . . . . . . . . . . 1-2 Archiving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2 Recording. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2 Interactive Recording (Domain Traveler) . . . . . . . . . . . . . . . . . . . . . . 1-2 End-User Recording . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3 Global Recording . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-3 Playback. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3 Interactive Playback. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3 Non-Stop Playback. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3 Unattended Playback. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4 Comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4 Unattended Comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4 Editing, Masking, and Dubbing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4 Masking Information. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4 Dubbing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5 Customizing Scripts Using Script Processors. . . . . . . . . . . . . . . . . . . . . . . . 1-5 Message Filtering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5 Advanced Testing Using REXX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-6 Substituting Terminal Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-6 Creating Modular Scripts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-6 iv Hiperstation for VTAM User Guide Creating Script Reports. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Additional Management Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transaction Journal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Autodoc (Automated Documentation) . . . . . . . . . . . . . . . . . . . . . . . Session Demo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Online Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DBCS Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Product Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ISPF (Interactive) Screen Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ISPF Mode TSO Jump Constraint . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zoom Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using PF Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PF Key Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Simulating PF Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-6 1-6 1-7 1-7 1-7 1-7 1-7 1-7 1-7 1-8 1-8 1-8 1-8 1-9 Chapter 2. Managing Hiperstation for VTAM Datasets . . . . . . . . . . . . . . . . . . . . . Allocating a Script Dataset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Allocating Before Using Hiperstation for VTAM . . . . . . . . . . . . . . . . . . . . Allocating While Using Hiperstation for VTAM . . . . . . . . . . . . . . . . . . . . Recovering Migrated Datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reusing Datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Recovering Recordings that Ended in Error . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1 2-1 2-1 2-1 2-2 2-2 2-3 Chapter 3. Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Accessing Hiperstation for VTAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Introducing Domain Traveler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Contact the Domain Destination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Change Session Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Change Application Profile Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Communicate with the Domain Destination . . . . . . . . . . . . . . . . . . . . . . Session Status Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Virtual Terminal Presentation Space . . . . . . . . . . . . . . . . . . . . . . . . . Cancel a Domain Traveler Session . . . . . . . . . . . . . . . . . . . . . . . . . . . End the Session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1 3-1 3-2 3-2 3-3 3-4 3-5 3-6 3-6 3-7 3-7 Chapter 4. Automated Testing Vehicle (ATV) Manager . . . . . . . . . . . . . . . . . . . . . 4-1 Introducing the ATV Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1 Chapter 5. Online Testing of 3270 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1 Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1 Recording Scripts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1 Set Up Recording . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1 Recording Process. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2 Cancel a Recording . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-4 Recording Function Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-4 Playing Back Scripts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-5 Playback Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-5 Play and Think Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-7 Playback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-7 Playback Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-9 Interactive Playback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-9 Non-Stop Playback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-9 Terminate Playback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-10 Playback Function Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-10 Comparing Scripts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-11 Set Comparison Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-12 When a Mismatch Occurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-13 v Masking Script Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-16 Using Row Masks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-16 Mask an Entire Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-17 Mask Individual Characters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-18 Mask Hexadecimal Characters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-18 Mask Characters Globally . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-18 Reset All Masks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-19 Online Row Masking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-19 Generic Masking of Output Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-20 Generic Masking Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-20 Other Generic Masking Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-21 Dubbing Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-22 Explicit Dubbing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-22 Add to the End of a Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-22 Inserting in the Middle of a Script . . . . . . . . . . . . . . . . . . . . . . . . . . 5-23 Implicit Dubbing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-26 Dub Function Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-27 Editing Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-28 Script File Format. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-28 Chapter 6. 3270 Unattended Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1 Starting Unattended Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1 Generating 3270 Unattended Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2 Defining Unattended Statement Parameters . . . . . . . . . . . . . . . . . . . . . . . 6-3 CONTROL Statement Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3 GROUP Statement Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4 SCRIPT Statement Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-7 COMPARE Statement Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-8 COMPANY and DUBTITLE Statement Parameters . . . . . . . . . . . . . . . 6-9 CACHE INCLUDE and EXCLUDE Statement Parameters . . . . . . . . . . 6-9 Building Unattended Statements and JCL . . . . . . . . . . . . . . . . . . . . . . . .6-10 Building JCL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-11 Restricting Script Datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-12 Chapter 7. Unattended Playback, Dubbing, and Comparison for 3270 and LU0 Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-1 Using the Unattended Mode Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2 Unattended Mode Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-3 Statement Sequencing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-3 CACHEXCL Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-4 CACHINCL Statement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-4 COMPANY Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-4 COMPARE Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-4 CONTROL Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-7 DUBTITLE Statement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-10 GROUP Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-11 Required Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-12 Optional Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-12 SCRIPT Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-20 Required Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-20 Optional Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-20 Print File Naming Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-22 3270 Unattended Playback, Dubbing and Comparison Sample JCL . . . . . . . . 7-23 Example 1: Play Back a Single Script, Single Terminal . . . . . . . . . . . . . . . 7-23 Example 2: Play Back Multiple Scripts, Single Terminal . . . . . . . . . . . . . .7-23 Example 3: Play Back Multiple Scripts, Multiple Terminals . . . . . . . . . . . 7-24 vi Hiperstation for VTAM User Guide Example 4: Play Back Multiple Scripts, Multiple Terminals, and Multiple Domain Destinations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-24 Example 5: Play Back and Compare All Scripts in a Group . . . . . . . . . . 7-24 Example 6: Dub All Scripts in a Group . . . . . . . . . . . . . . . . . . . . . . . . . . 7-25 Example 7: Exclude Scripts from Dubbing . . . . . . . . . . . . . . . . . . . . . . . 7-25 Example 8: Dub and Combine Scripts, Single Group . . . . . . . . . . . . . . . 7-25 Example 9: Dub Multiple Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-26 Example 10: Compare All Specified Scripts in a Group . . . . . . . . . . . . . 7-26 Example 11: Compare Multiple Groups . . . . . . . . . . . . . . . . . . . . . . . . . 7-27 Example 12: LU0 Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-27 Replacing Data with Unformatted Scripts . . . . . . . . . . . . . . . . . . . . 7-27 Unattended Mode Return Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-29 Unattended Mode Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-31 CONTROL Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-31 GROUP Statement - Optional Parameters for LU0 . . . . . . . . . . . . . 7-32 Chapter 8. Quick Play — Select a Script and Go . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1 Running Quick Play . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1 Chapter 9. Demonstrating Scripts with Session Demo . . . . . . . . . . . . . . . . . . . . . Accessing Session Demo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Starting the Demonstration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pop-Up Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pop-Up Window Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Session Demo Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-1 9-1 9-2 9-3 9-3 9-4 Chapter 10. Global Recording Requests and Scripts . . . . . . . . . . . . . . . . . . . . . . 10-1 Introducing Global Recording Requests and Scripts . . . . . . . . . . . . . . . . . . . 10-1 Accessing Global Recording . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-1 Creating a Global Recording Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-2 Define Script Creation Criteria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-7 If Script Creation Fails . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-9 Session Log for Global Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-10 Message Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-11 Monitoring and Managing Existing Requests. . . . . . . . . . . . . . . . . . . . . . . . 10-12 View Active Sessions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-14 Reviewing Repositories and Creating Scripts . . . . . . . . . . . . . . . . . . . . . . . . 10-15 Generate Scripts from a Selected Repository . . . . . . . . . . . . . . . . . . . . . 10-17 Generate Scripts from Selected Sessions . . . . . . . . . . . . . . . . . . . . . . . . 10-18 Defining Global Recording Manager Lists . . . . . . . . . . . . . . . . . . . . . . . . . . 10-19 Create a New Global Recording Manager List . . . . . . . . . . . . . . . . . . . . 10-21 Copy an Existing Global Recording Manager List. . . . . . . . . . . . . . . . . 10-22 Accessing Global Recording Administration . . . . . . . . . . . . . . . . . . . . . . . . 10-22 Using the Global Recording Batch Interface. . . . . . . . . . . . . . . . . . . . . . . . . 10-23 Create a Global Recording Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-23 Global Recording Request Parameter Syntax. . . . . . . . . . . . . . . . . 10-25 Global Recording Request Parameters . . . . . . . . . . . . . . . . . . . . . . 10-26 Sample DCIADXL2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-27 Check the Status of Existing Requests . . . . . . . . . . . . . . . . . . . . . . . . . . 10-39 Manage Existing Requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-40 Retrieve the Parameters of an Existing Request. . . . . . . . . . . . . . . . . . . 10-42 Generate a Request Parameters Skeleton . . . . . . . . . . . . . . . . . . . . . . . . 10-43 Create Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-43 Script Creation Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-44 SQQFSAMP Member SCLU2 — Script Creation Parameters . . . . . 10-45 Troubleshoot Failed Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-48 Recording Request Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-48 vii Script Create Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-49 Generating a Capture Segment Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-49 Review the Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-51 Chapter 11. Archive Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-1 Introducing the Archive Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11-1 Using Hiperstation as a Security Monitoring Tool . . . . . . . . . . . . . . . . . . 11-1 Implementing Hiperstation for VTAM as a Security Monitoring Tool . . .11-1 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-2 Using the Archive Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-3 Chapter 12. Customizing Scripts with the REXX Script Processor . . . . . . . . . . . 12-1 REXX Script Processor Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-1 Using the REXX Script Processor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-2 REXX Script Processor Control File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-2 Control File Conversion Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-3 Starting the Control File Conversion Utility . . . . . . . . . . . . . . . . . . . . . . 12-3 Data Replacement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-5 Starting Data Replacement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-7 Adding a Data Replacement Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-7 Updating a Data Replacement Entry. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-9 Deleting a Data Replacement Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-9 Browsing Data Replacement Entries . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-10 Date Recalculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-10 Setting a User-Defined Current Date. . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-11 Starting Date Recalculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-12 Adding a Date Recalculation Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-12 Updating a Date Recalculation Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-14 Deleting a Date Recalculation Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-15 Browsing a Date Recalculation Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-15 Multi-Field Date Recalculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-15 Starting Multi-Field Date Recalculation . . . . . . . . . . . . . . . . . . . . . . . . . 12-16 Adding a Multi-Field Date Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-17 Updating a Multi-Field Date Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-18 Browsing a Multi-Field Date Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-19 Deleting a Multi-Field Date Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-20 List Processing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-20 Starting List Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-21 Adding a List Processing Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-22 Updating a List Processing Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-23 Deleting a List Processing Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-24 Browsing a List Processing Entry. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-24 Synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-25 Starting Synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-26 Adding a Synchronization Entry. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-27 Updating a Synchronization Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-28 Deleting a Synchronization Entry. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-29 Browsing a Synchronization Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-29 Running the REXX Script Processor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-30 Background (Batch) Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-31 Processed Script REXX Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-32 Data Replacement REXX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-32 Date Recalculation REXX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-33 User-Defined Current Date Recalculation REXX. . . . . . . . . . . . . . . 12-36 List Processing REXX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-37 Synchronization REXX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-38 Troubleshooting REXX Script Processor Problems. . . . . . . . . . . . . . . . . . . . . 12-39 viii Hiperstation for VTAM User Guide Data Replacement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Date Recalculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . List Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Synchronization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-39 12-40 12-41 12-42 Chapter 13. Date Change and Date Find Script Processors . . . . . . . . . . . . . . . . Date Change Script Processor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Single Field Dates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Multi-Field Dates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Embedded Dates. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Running the Date Change Script Processor. . . . . . . . . . . . . . . . . . . . . . . Date Find Script Processor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using the Date Find Script Processor. . . . . . . . . . . . . . . . . . . . . . . . . . . . Running the Date Find Script Processor . . . . . . . . . . . . . . . . . . . . . . . . . 13-1 13-1 13-2 13-3 13-5 13-6 13-7 13-8 13-9 Chapter 14. Input Field Reformat Script Processor . . . . . . . . . . . . . . . . . . . . . . . 14-1 Chapter 15. MultiChange Script Processor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-1 Maintain Input Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-2 Modify Output Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-4 Add Field To Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-5 Delete Field From Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-7 Modify Screen Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-8 Add Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-9 Erase Interaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-10 Executing MultiChange Script Processor Requests . . . . . . . . . . . . . . . . . . . 15-11 Background Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-12 Chapter 16. Security Script Processor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-1 Chapter 17. Hiperstation for VTAM EURO Script Utility . . . . . . . . . . . . . . . . . . . 17-1 Using the EURO Script Utility. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-1 Using Member Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-3 Using Control Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-4 Control Items . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-5 Using Currency Cards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-7 Individual Currency Cards. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-8 Submitting EURO Script Utility Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-10 EURO Script Utility Currency Location and Conversion . . . . . . . . . . . 17-11 Control Cards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-11 Chapter 18. GST (Goods and Services Tax) Testing Utility . . . . . . . . . . . . . . . . . Add a Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Update a Request. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Browse a Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Delete a Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Execute the Requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-1 18-2 18-3 18-5 18-5 18-5 18-7 Chapter 19. Unattended Message Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . How the Message Filter Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . REXX Exit Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Deciding What Screens Are in a Message . . . . . . . . . . . . . . . . . . . . . . . . Interactive Message Filtering. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Generate Message Filtering REXX Exit for Formatted Scripts . . . . . . . . . Describe Start of Message for Formatted Scripts . . . . . . . . . . . . . . . Describe End of Message for Formatted Scripts . . . . . . . . . . . . . . . . Generate Message Filtering REXX Exit for Unformatted Scripts. . . . . . . 19-1 19-1 19-2 19-2 19-3 19-4 19-4 19-6 19-7 ix Describe Start of Message for Unformatted Scripts . . . . . . . . . . . . . .19-7 Describe End of Message for Unformatted Scripts . . . . . . . . . . . . . . 19-8 Message Filtering Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-9 Override Defaults. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-11 Manual Message Filtering - Coding Examples . . . . . . . . . . . . . . . . . . . . . . . . 19-13 Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-13 Example 1: Find All Screens with a Common Eyecatcher . . . . . . . . . . . 19-13 Example 2: Find Only Output Screens . . . . . . . . . . . . . . . . . . . . . . . . . . 19-13 Example 3: Find All Screens from a List . . . . . . . . . . . . . . . . . . . . . . . . . 19-14 Example 4: Convert a Script to Inputs Only. . . . . . . . . . . . . . . . . . . . . . 19-14 Example 5: Check for a Combination of Screen Items . . . . . . . . . . . . . . 19-14 Message Filter REXX Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-15 HS_MATCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-15 HS_WHICH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-16 HS_EXITTYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-16 HS_KEY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-16 HS_ROW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-16 HS_COLUMN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-17 HS_INPUT.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-17 HS_INPUT.n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-17 HS_OUTPUT.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-17 HS_OUTPUT.n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19-18 HS_PARM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-18 HS_SCRIPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-18 HS_FORMAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-18 HS_INPUT_SEQUENCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-18 HS_OUTPUT_SEQUENCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-18 HS_INPUT_STREAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-19 HS_OUTPUT_STREAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-19 Message Filter Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-19 Syntax Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-19 CONTROL Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-20 SELECT Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-21 INCLUDE Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-21 EXCLUDE Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-21 Running the Message Filter Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-22 Message Filter Summary Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-22 Sample Message Filtering Job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-23 Chapter 20. 3270 Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-1 Transaction Journal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20-1 Start the Transaction Journal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-2 Stop the Transaction Journal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20-2 Transaction Journal Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-2 Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20-4 Automated Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20-4 Start AutoDoc. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-4 Auto Documentation Setup Screen . . . . . . . . . . . . . . . . . . . . . . . . . 20-4 AutoDoc Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-5 3270 Summary Report. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20-6 General Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-8 Performance Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-8 Comparison Check Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-8 Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-9 Comparison Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-9 Start the Comparison Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-9 Stop the Comparison Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-10 x Hiperstation for VTAM User Guide Comparison Log Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exception Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Start the Exception Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Stop the Exception Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . REXX Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-10 20-11 20-11 20-12 20-12 Chapter 21. Text-to-Web Compare and Exception Log Converter . . . . . . . . . . . 21-1 Converting Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-1 Accessing Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-4 Reading and Navigating Web-Based Reports . . . . . . . . . . . . . . . . . . . . . . . . . 21-4 Report Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-4 Report Detail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-6 Navigation Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-6 Detail Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-7 Search and Find Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-8 Customizing Report Presentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-9 Report Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-10 System Display Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-10 Chapter 22. Hiperstation for VTAM Profile Defaults . . . . . . . . . . . . . . . . . . . . . . 22-1 Domain Traveler Profile Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-1 3270/LU0 Profile Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-6 Auditing 3270 Profile Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-11 Appendix A. Customer Support Diagnostics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-1 Appendix B. Hiperstation Script Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Script File Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Control Script Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Input Script Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Output Script Tags. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Individual Character Mask Script Tag. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Edit Function Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Script Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-1 B-1 B-1 B-4 B-5 B-7 B-7 B-7 Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G-1 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I-1 xi Figures 1-1. 2-1. 2-2. 2-3. 2-4. 2-5. 3-1. 3-2. 3-3. 3-4. 3-5. 3-6. 3-7. 3-8. 5-1. 5-2. 5-3. 5-4. 5-5. 5-6. 5-7. 5-8. 5-9. 5-10. 5-11. 5-12. 5-13. 5-14. 5-15. 5-16. 5-17. 5-18. 5-19. 5-20. 5-21. 5-22. 5-23. 5-24. 5-25. 5-26. 5-27. 5-28. 5-29. 5-30. 5-31. 5-32. 5-33. 5-34. 5-35. 5-36. 5-37. 5-38. 5-39. 5-40. 5-41. 5-42. PF Key Mapping Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-9 Hiperstation Allocate a Script Dataset Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-2 Recover Migrated Dataset Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-2 Bad Dataset Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-3 Reuse Dataset Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-3 JCL for Script Recovery Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-3 Hiperstation Product Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-1 Hiperstation for VTAM Main Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-2 Domain Traveler Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-3 Session Options Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-3 Application Profile Settings Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-5 Domain Traveler Entry Screen in ISPF Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-6 View the Domain Traveler Status Line. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-6 Virtual Terminal Display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-7 Domain Traveler Destination Entry Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-1 Recording Setup Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-2 Recording Process, Screen 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-3 Recording Process, Screen 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-3 Recording Process, Screen 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-3 Recording Process, Screen 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-4 Recording Process, Screen 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-4 Enter the PLAY Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-5 Play Setup Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-6 Play/Think Time Options Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-7 Playback, Screen 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-8 Playback, Screen 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-8 Playback, Screen 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-8 Playback, Screen 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-9 Playback, Screen 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-9 Comparison Mismatch Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-12 Comparison Options Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-12 Actual Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-14 Delta Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-15 Differences Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-15 Expected Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-16 CICS REC1 Script Before Masking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-17 Mask an Entire Line of Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-17 Mask Individual Characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-18 Mask Hexadecimal Characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-18 Globally Mask an Entire Line of Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-19 Reset the Line of Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-19 Mask Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-19 Mask with a String of Lower Case i’s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-20 Explicit Dubbing — Add a Transaction — Screen 1. . . . . . . . . . . . . . . . . . . . . . . .5-22 Explicit Dubbing — Add a Transaction — Screen 2. . . . . . . . . . . . . . . . . . . . . . . .5-23 Explicit Dubbing — Add a Transaction — Screen 3. . . . . . . . . . . . . . . . . . . . . . . .5-23 Explicit Dubbing — Insert a Transaction — Screen 1 . . . . . . . . . . . . . . . . . . . . . .5-24 Explicit Dubbing — Insert a Transaction — Screen 2 . . . . . . . . . . . . . . . . . . . . . .5-24 Explicit Dubbing — Insert a Transaction — Screen 3 . . . . . . . . . . . . . . . . . . . . . .5-24 Explicit Dubbing — Insert a Transaction — Screen 4 . . . . . . . . . . . . . . . . . . . . . .5-25 Explicit Dubbing — Insert a Transaction — Screen 5 . . . . . . . . . . . . . . . . . . . . . .5-25 Explicit Dubbing — Insert a Transaction — Screen 6 . . . . . . . . . . . . . . . . . . . . . .5-25 Implicit Dubbing, Screen 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-26 Implicit Dubbing, Screen 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-27 Implicit Dubbing, Screen 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-27 Edit a Recorded Script. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-28 xii Hiperstation for VTAM User Guide 6-1. 6-2. 6-3. 6-4. 6-5. 6-6. 6-7. 6-8. 6-9. 6-10. 6-11. 6-12. 6-13. 6-14. 6-15. 6-16. 6-17. 6-18. 6-19. 7-1. 7-2. 7-3. 7-4. 7-5. 7-6. 7-7. 7-8. 7-9. 7-10. 7-11. 7-12. 7-13. 7-14. 7-15. 7-16. 7-17. 8-1. 8-2. 9-1. 9-2. 9-3. 10-1. 10-2. 10-3. 10-4. 10-5. 10-6. 10-7. 10-8. 10-9. 10-10. 10-11. 10-12. 10-13. 10-14. 10-15. 10-16. 10-17. 10-18. 10-19. 10-20. Hiperstation * Generate Unattended Statements Screen . . . . . . . . . . . . . . . . . . . . .6-1 Generate Statements for Unattended 3270 Screen . . . . . . . . . . . . . . . . . . . . . . . . .6-2 3270 Statement Generation Parameters Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-3 3270 CONTROL Statement Parameters Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-4 3270 GROUP Statement Parameters Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-4 3270 GROUP Connection Parameters Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-5 3270 GROUP Documentation Parameters Screen . . . . . . . . . . . . . . . . . . . . . . . . . .6-6 3270 GROUP Timing Parameters Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-6 3270 GROUP Dubbing Options Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-7 SCRIPT Statement Parameters Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-8 3270 COMPARE Statement Parameters Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-8 Company and Dub Title Statement Parameters Screen . . . . . . . . . . . . . . . . . . . . . .6-9 CACHE INCLUDE and EXCLUDE Statement Parameters Screen . . . . . . . . . . . . . .6-9 Unattended Statement Build Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-10 ISPF EDIT Screen Showing Generated Statements . . . . . . . . . . . . . . . . . . . . . . . . .6-11 Unattended JCL Build Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-11 ISPF EDIT Screen Showing Generated JCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-12 Generation Restrictions Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-12 ISPF EDIT Screen Showing Restricted Generated Statements . . . . . . . . . . . . . . . .6-13 3270 Unattended Mode Statement Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-3 JCL to Play Back Single Script, Single Terminal . . . . . . . . . . . . . . . . . . . . . . . . . . .7-23 JCL to Play Back Multiple Scripts, Single Terminal . . . . . . . . . . . . . . . . . . . . . . . .7-23 JCL to Play Back Multiple Scripts, Multiple Terminals . . . . . . . . . . . . . . . . . . . . .7-24 JCL to Play Back Multiple Scripts, Terminals, and Transaction Processing . . . . . .7-24 JCL to Play Back and Compare Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-25 JCL to Dub All Scripts in a Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-25 JCL to Exclude Scripts from Dubbing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-25 JCL to Dub and Combine Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-26 JCL to Dub Multiple Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-26 JCL to Compare All Specified Scripts in a Group . . . . . . . . . . . . . . . . . . . . . . . . . .7-26 JCL to Compare Multiple Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-27 JCL to Compare Multiple Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-27 Character Representation of Hex String. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-28 Method 1 Sample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-28 Method 2 - First Sample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-28 Method 2 - Second Sample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-29 Quick Play Script Dataset Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-1 Quick Play Select and Play Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-2 Demonstration Setup Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9-1 Session Demo Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9-2 Pop-Up Window Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9-4 Hiperstation for VTAM - Main Menu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-2 Global Recording Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-2 Global Recording - Add Requests Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-3 Global Recording - Monitor Requests Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-3 3270/LU0 Capture Criteria Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-4 3270/LU0 - Script Criteria Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-8 Session Log Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-10 3270/LU0 - Message Filters Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-11 Global Recording - Monitor Requests Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . .10-13 Global Recording - Active Sessions Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-14 Review Repository - Dataset List Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-16 Review Repository - Processing Options Prompt . . . . . . . . . . . . . . . . . . . . . . . . .10-17 Script Processing Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-17 Review Repository - Session List Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-18 Global Recording Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-20 Global Record Manager * Include/Exclude Lists Screen. . . . . . . . . . . . . . . . . . . .10-20 Global Record Manager * Add List Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-21 Global Record Manager * Copy List Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-22 DCIJCL — Sample JCL to Add or Manage Requests. . . . . . . . . . . . . . . . . . . . . . .10-25 SQQFSAMP Member SCJCL — Sample JCL to Create Scripts . . . . . . . . . . . . . . .10-44 Figures 10-21. 10-22. 11-1. 12-1. 12-2. 12-3. 12-4. 12-5. 12-6. 12-7. 12-8. 12-9. 12-10. 12-11. 12-12. 12-13. 12-14. 12-15. 12-16. 12-17. 12-18. 12-19. 12-20. 12-21. 12-22. 12-23. 12-24. 12-25. 12-26. 12-27. 12-28. 12-29. 12-30. 12-31. 12-32. 12-33. 12-34. 12-35. 12-36. 12-37. 12-38. 12-39. 12-40. 12-41. 12-42. 12-43. 12-44. 12-45. 12-46. 12-47. 12-48. 12-49. 12-50. 13-1. 13-2. 13-3. 13-4. 13-5. 13-6. 13-7. 13-8. xiii SQQFSAMP Member MCSREPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-50 Capture Summary Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-51 Hiperstation Archive Recording Setup Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . .11-2 REXX Script Processor Primary Options Screen . . . . . . . . . . . . . . . . . . . . . . . . . . .12-2 Allocate Control File Pop-up Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-3 Control File Conversion Utility Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-4 Control File Conversion Utility, Member Selection List . . . . . . . . . . . . . . . . . . . .12-4 Create the Document Number during the Recording . . . . . . . . . . . . . . . . . . . . . .12-5 Application’s Display Document Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-5 Document Number Entered as Input During Recording . . . . . . . . . . . . . . . . . . . .12-6 New Document Number Created During Playback . . . . . . . . . . . . . . . . . . . . . . . .12-6 Application’s Display Document Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-6 Original Document Number Being Replaced During Playback . . . . . . . . . . . . . . .12-7 REXX Script Processor Data Replacement Screen . . . . . . . . . . . . . . . . . . . . . . . . .12-7 Data Replacement: ADD Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-8 REXX Script Processor Data Replacement UPDATE Screen . . . . . . . . . . . . . . . . . .12-9 REXX Script Processor * Data Replacement BROWSE Screen . . . . . . . . . . . . . . .12-10 Application’s Order Entry Screen — Delivery Date Input Field. . . . . . . . . . . . . .12-11 Application’s Order Entry Screen — Playback Input Screen . . . . . . . . . . . . . . . .12-11 Date Recalculation Item List Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-12 Example Date Recalculation Entry to Handle Delivery Date. . . . . . . . . . . . . . . .12-13 Date Recalculation: UPDATE Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-14 Date Recalculation BROWSE Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-15 Multi-Field Date Recalculation Item List Screen . . . . . . . . . . . . . . . . . . . . . . . . .12-16 Multi-Field Date: ADD Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-17 Multi-Field Date: Update Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-19 Multi-Field Date BROWSE Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-19 List Row Selected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-20 Wrong Row Selected During Playback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-21 Hiperstation REXX Script Processor * List Processing Screen. . . . . . . . . . . . . . . .12-21 List Processing: ADD Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-22 Hiperstation REXX Script Processor * List Processing UPDATE Screen . . . . . . . .12-24 REXX Script Processor List Processing BROWSE Screen. . . . . . . . . . . . . . . . . . . .12-25 PLEASE WAIT Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-26 REXX Script Processor Synchronization Screen . . . . . . . . . . . . . . . . . . . . . . . . . .12-26 REXX Script Processor Synchronization ADD Screen . . . . . . . . . . . . . . . . . . . . .12-27 REXX Script Processor Synchronization UPDATE Screen . . . . . . . . . . . . . . . . . .12-29 REXX Script Processor Synchronization BROWSE Screen . . . . . . . . . . . . . . . . . .12-29 Hiperstation Script Processor * Execution Screen . . . . . . . . . . . . . . . . . . . . . . . .12-30 List Script Names for Processing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-31 Script Processor Background Execution Screen . . . . . . . . . . . . . . . . . . . . . . . . . .12-31 Data Replacement REXX Storing “From” Field . . . . . . . . . . . . . . . . . . . . . . . . . .12-32 Data Replacement REXX, Replaced Input Field . . . . . . . . . . . . . . . . . . . . . . . . . .12-33 Variable Script_Base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-33 SPDTCALC - Date Recalculation Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-33 Sample Input Date Recalculation REXX Code . . . . . . . . . . . . . . . . . . . . . . . . . . .12-34 Sample Output Date Recalculation REXX Code . . . . . . . . . . . . . . . . . . . . . . . . .12-35 Contents of the SPDTCALC REXX Function . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-36 Date Recalculation REXX, Example DATASET Routine . . . . . . . . . . . . . . . . . . . .12-37 List Processing REXX, Call to List Routine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-37 List Processing REXX, Example List Selection Routine . . . . . . . . . . . . . . . . . . . .12-38 Synchronization REXX, <ADDCALL> Statement. . . . . . . . . . . . . . . . . . . . . . . . .12-39 Synchronization REXX, Example SYNCH_HANDLE Routing . . . . . . . . . . . . . . .12-39 Script Processors Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13-1 Hiperstation Script Processor * Date Change Options Screen . . . . . . . . . . . . . . . .13-2 Single Field Date Change Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13-2 Multi-Field Date Change Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13-4 Embedded Dates Change Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13-5 Enter the Name of the Script Partitioned Dataset . . . . . . . . . . . . . . . . . . . . . . . . .13-6 List Script Names for Processing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13-7 Sample Date Find Script Processor Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13-8 xiv Hiperstation for VTAM User Guide 13-9. 13-10. 13-11. 14-1. 14-2. 14-3. 15-1. 15-2. 15-3. 15-4. 15-5. 15-6. 15-7. 15-8. 15-9. 15-10. 15-11. 15-12. 15-13. 15-14. 15-15. 15-16. 15-17. 16-1. 16-2. 16-3. 16-4. 17-1. 17-2. 17-3. 17-4. 17-5. 17-6. 17-7. 17-8. 17-9. 17-10. 18-1. 18-2. 18-3. 18-4. 18-5. 18-6. 18-7. 18-8. 18-9. 18-10. 18-11. 19-1. 19-2. 19-3. 19-4. 19-5. 19-6. 19-7. 19-8. 19-9. 19-10. 19-11. 19-12. 19-13. Hiperstation Script Processor * Date Find Screen. . . . . . . . . . . . . . . . . . . . . . . . . .13-8 Enter the Name of the Script Partitioned Dataset File . . . . . . . . . . . . . . . . . . . . . .13-9 List Script Names For Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13-9 Script Processors Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14-1 Hiperstation Script Processor * Change Input Field Formats Screen . . . . . . . . . . .14-2 Hiperstation Script Processor * Execution Screen . . . . . . . . . . . . . . . . . . . . . . . . .14-2 Script Processors Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15-1 MultiChange Script Facility Primary Options Screen . . . . . . . . . . . . . . . . . . . . . .15-1 Maintain Input Field Values Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15-2 Maintain Input Field Request Types Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15-3 Add Input Field Value Item Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15-3 Modify Output Screen Item List. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15-4 Modify Output Screen Item Types Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15-5 Add Field to Screen Item Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15-5 Delete Field From Screen Item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15-7 Modify Screen Constant Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15-8 Add Script Item List Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15-9 Add Script Item Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15-9 Erase Interaction Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15-10 Erase Interaction Request: ADD/UPDATE Screen. . . . . . . . . . . . . . . . . . . . . . . . .15-10 Initial Script Processor MultiChange Execution Screen. . . . . . . . . . . . . . . . . . . .15-11 Hiperstation Script Processor * MultiChange Execution Screen . . . . . . . . . . . . .15-11 MultiChange Script Processor Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15-12 Script Processors Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16-1 Security Script Processor Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16-1 Security Password Modification Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16-2 Security Script Processor Background Processing. . . . . . . . . . . . . . . . . . . . . . . . . .16-3 Script Processors Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17-1 EURO Script Utility Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17-2 Script Selection List Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17-3 Member List Screen with Duplicate Member Names . . . . . . . . . . . . . . . . . . . . . . .17-4 Member List Screen with Changed Member Name . . . . . . . . . . . . . . . . . . . . . . . .17-4 Control File Item List Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17-5 Maintain Control File Item Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17-5 EURO Currency Card List Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17-7 Maintain EURO Currency Card Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17-8 EURO Script Utility Execution Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17-10 GST Testing Utility Main Options Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18-1 GST Testing Utility Main Options Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18-1 Hiperstation REXX Script Processor * GST Screen . . . . . . . . . . . . . . . . . . . . . . . . .18-2 GST Add New Entry Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18-2 GST Update Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18-4 GST Browse Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18-5 Hiperstation Script Processor * Execution Screen . . . . . . . . . . . . . . . . . . . . . . . . .18-6 Hiperstation Script Processor * Execution Processing Screen . . . . . . . . . . . . . . . .18-6 Original Script. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18-7 Script Processed Using GST Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18-9 USERPROC Created by the GST Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18-12 Message Filtering * Primary Options Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19-3 Allocate Filter Dataset Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19-4 Describe Start of Message for Formatted Scripts Screen . . . . . . . . . . . . . . . . . . . . .19-5 Describe End of Message for Formatted Scripts Screen . . . . . . . . . . . . . . . . . . . . .19-6 Describe Start of Message for Unformatted Scripts Screen. . . . . . . . . . . . . . . . . . .19-7 Describe End of Message for Unformatted Scripts Screen . . . . . . . . . . . . . . . . . . .19-8 Message Filtering Execution Screen 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19-9 Message Filtering Execution Screen 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19-10 Message Filtering Background Execution Screen . . . . . . . . . . . . . . . . . . . . . . . . .19-11 Override Defaults Screen with Sample Settings . . . . . . . . . . . . . . . . . . . . . . . . . .19-12 Look for a Common Eyecatcher. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19-13 Find Only Output Screens that Contain PLAF on the First Line . . . . . . . . . . . . .19-14 Look for a Set of Screens. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19-14 Figures 19-14. 19-15. 19-16. 19-17. 19-18. 19-19. 20-1. 20-2. 20-3. 20-4. 20-5. 20-6. 20-7. 20-8. 20-9. 20-10. 20-11. 20-12. 21-1. 21-2. 21-3. 21-4. 21-5. 21-6. 21-7. 21-8. 21-9. 22-1. 22-2. 22-3. 22-4. 22-5. 22-6. 22-7. A-1. A-2. xv Convert to Inputs Only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19-14 Look at Several Areas on the Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19-15 Message Filter Summary Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19-23 Sample JCL for Message Filter Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19-23 PAYROLL Exit Program. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19-24 SALARY Exit Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19-25 Transaction Journal Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20-2 Stop the Transaction Journal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20-2 Transaction Journal Sample Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20-3 Auto Documentation Setup Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20-4 Sample AutoDoc Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20-6 3270 Summary Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20-7 Domain Traveler Screen - Bring Up the Comparison Log Setup Screen . . . . . . . .20-9 Activate the Comparison Log. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20-10 Comparison Log Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20-11 Domain Traveler Screen - Bring Up the Comparison Log Setup Screen . . . . . . .20-12 Activate the Exception Log. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20-12 REXX Output Setup Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20-13 CLOGGEN JCL Sample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21-2 Compare Log Index Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21-4 Web-based Compare/Exception Report Summary. . . . . . . . . . . . . . . . . . . . . . . . .21-5 Compare Log Navigation and Detail Panes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21-6 Compare Log Detail Navigation Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21-7 Top of Compare Log Detail Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21-8 Compare Log Search Results. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21-9 Find Text Dialog Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21-9 Change Settings Dialog Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21-10 Hiperstation Profile Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22-1 Domain Traveler Defaults - Session Options and PF Key Translations . . . . . . . . .22-2 Remainder of Domain Traveler Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22-3 Hiperstation Profile Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22-7 3270/LU0 Record and Script Create Defaults Screen . . . . . . . . . . . . . . . . . . . . . . .22-8 Hiperstation Profile Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22-12 Auditing Defaults for 3270 Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22-13 Hiperstation - Diagnostics Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-1 Customer Support Diagnostic Report. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-2 xvi Hiperstation for VTAM User Guide xvii Tables 7-1. 7-2. JCL Statements for Unattended Mode Functions . . . . . . . . . . . . . . . . . . . . . . . . . .7-2 Hiperstation for VTAM Unattended Playback Return Codes. . . . . . . . . . . . . . . . .7-30 xviii Hiperstation for VTAM User Guide xix Introduction Intro Compuware is committed to providing user-friendly documentation in a variety of electronic formats. This chapter describes the available formats and how to access them. It also provides an overview of this manual, describes the conventions used within, and describes the resources available to help you. Accessing Hiperstation Documentation The Hiperstation documentation is available on the Compuware Go (FrontLine) customer support website at http://go.compuware.com. Release Notes are provided in HTML format and manuals in Portable Document Format (PDF): • Release Notes — Provides recent information for the Hiperstation product. In this file, you can quickly access system requirements, technical notes, customer support contact information, and a list of the new features available in the release. The Release Notes may be updated throughout the life cycle of a release with the most current version located on FrontLine for easy access to the latest product information. • Hiperstation Installation Guide — Provides installation and configuration procedures. • Hiperstation for VTAM User Guide — Explains how to use Hiperstation for VTAM to test 3270 and LU0 applications. • Hiperstation for WebSphere MQ User Guide— Explains how to use Hiperstation for WebSphere MQ to test WebSphere MQ applications. • Hiperstation for Mainframe Servers User Guide — Explains how to use Hiperstation for Mainframe Servers to test APPC and TCP/IP applications. • Hiperstation Auditor User Guide — Explains how to use the Hiperstation Archive Function. • Hiperstation Automated Testing Vehicle (ATV) Manager User Guide — Explains how to use the Hiperstation ATV Manager to manage your testing environment and test cases. • Hiperstation Messages and Codes — Explains the messages and codes that Hiperstation produces. • Hiperstation Scripting Reference — Introduces advanced script editing concepts and provides reference information for technical users. • Hiperstation Reference Summary — Summarizes the commands used in Hiperstation for VTAM’s Domain Traveler and Session Demo features. • Master Index — This file contains an indexed list of the contents of the entire manual set. To use this file, all of the book files and the master index file must be located in the same directory. Open the master index file and search for the desired term. Clicking on a search result will open the appropriate book at the desired page. View and print PDF files with Adobe Reader. Download a free copy of the latest version of the reader from Adobe’s web site: http://www.adobe.com. Note: With a few minor exceptions, PDF files comply with the requirements of section 508 of the Rehabilitation Act of 1973. Refer to the Accessibility preface in any of the user guides for information. xx Hiperstation for VTAM User Guide For your convenience, Compuware also provides the Hiperstation manuals in the following formats: • Hypertext Markup Language (HTML) Access these formats on FrontLine, Compuware’s Customer Support Web site at http://frontline.compuware.com. 1. Log-in. 2. Select the desired product. 3. Click the Documentation link on the left selection bar. 4. Select the desired release. FrontLine presents a documentation index containing links to each of the product’s manuals in all of the available formats. HTML Files View HTML files with any standard Web browser. Simply click the HTML link on the selected FrontLine documentation page. Note: As you review the HTML content, you may encounter the known issue regarding screens and other graphic figures in which the image may be cropped along the left or bottom edge. Using this Manual This section describes the: • contents of this manual • notation conventions used throughout the manual • command syntax and syntax diagrams Hiperstation for VTAM User Guide Overview This guide describes how to use Hiperstation for testing mainframe business applications. It contains the following sections: • Chapter 1, “Product Overview” — Summary of system requirements, interactive and batch facilities, and interface conventions. • Chapter 2, “Managing Hiperstation for VTAM Datasets” — Describes how to manage required datasets including how to allocate Hiperstation script datasets, how Hiperstation responds when you work with an archived dataset or reuse an existing one, and how to use the script recovery utility when a recording ends in error. • Chapter 3, “Getting Started” — Describes how to start and end sessions and contact the domain destination to be tested. • Chapter 4, “Automated Testing Vehicle (ATV) Manager” — Describes how to use the Automated Testing Vehicle Manager to build, execute, and manage regression and performance automated test vehicles. • Chapter 5, “Online Testing of 3270 Applications” — Describes how to record, play back, compare, mask, dub, and edit scripts for testing 3270 applications. • Chapter 6, “3270 Unattended Processing” — Describes how to set up unattended playback of 3270 scripts. • Chapter 7, “Unattended Playback, Dubbing, and Comparison for 3270 and LU0 Scripts” — Describes how to use unattended playback, dubbing, and independent Introduction xxi unattended comparison functions for stress, volume, and concurrency testing of domain destinations. • Chapter 8, “Quick Play — Select a Script and Go” — Describes how to quickly play back recorded scripts without being attached to an application. • Chapter 9, “Demonstrating Scripts with Session Demo” — Describes how to play a script without interacting with the domain destination used to record the script. • Chapter 10, “Global Recording Requests and Scripts” — Describes how to record the activity of multiple users and generate scripts. • Chapter 11, “Archive Functions” — Describes how to create, access, and search archive requests and reports. • Chapter 12, “Customizing Scripts with the REXX Script Processor” — Describes how to create “smart” scripts automatically. • Chapter 13, “Date Change and Date Find Script Processors” — Describes how to use these testing processors. • Chapter 14, “Input Field Reformat Script Processor” — Describes how to change the format of input fields in scripts. • Chapter 15, “MultiChange Script Processor” — Describes how to modify the contents of fields in scripts or add a script to another script. • Chapter 16, “Security Script Processor” — Describes how to modify out-of-date passwords in scripts. • Chapter 17, “Hiperstation for VTAM EURO Script Utility” — Describes how to translate monetary units to aid in testing conversion to the new European currency. This is an optional feature and requires a separate license. • Chapter 18, “GST (Goods and Services Tax) Testing Utility” — Describes how to find and isolate selected fields. This is an optional feature and requires a separate license. • Chapter 19, “Unattended Message Filters” — Describes how to create new scripts by removing selected messages from existing scripts. • Chapter 20, “3270 Reporting” — Describes how to use utilities for the transaction journal, automated documentation, comparison, exception, REXX logs, and 3270 summary reports. • Chapter 21, “Text-to-Web Compare and Exception Log Converter” — Describes how to convert comparison, exception, and onelog datasets to interactive web reports and how to navigate the converted reports. • Chapter 22, “Hiperstation for VTAM Profile Defaults”— Provides information on how to edit your Hiperstation for VTAM default profile settings. • Appendix A, “Customer Support Diagnostics” — Describes how to generate a Customer Support Diagnostic Report that lists all PTFs applied to your installation. • Appendix B, “Hiperstation Script Tags” — Contains description of Hiperstation script tags. Notation Conventions This document uses the following notations to describe Hiperstation screens and the information you enter on those screens: • Technical revisions made to this document are indicated by revision bars in the left margin, as shown here. xxii Hiperstation for VTAM User Guide • Sample screens generally show only the information appropriate to the accompanying text, for example: ZOOM:PF23 ---------------------- Hiperstation ------------------- LINE 1 OF 24 COMMAND ===> record SCROLL ===> HALF Record OFF Play OFF Journal OFF Compare Log OFF autoDoc OFF ***USR2312 WELCOME TO CICS/MVS *** 10:11:42 • Blank lines or standard footings, as shown below, are usually omitted from screen illustrations. Press ENTER to begin recording, Use END to cancel setup. • Information you enter is printed in boldface. • Words defined within paragraphs are italicized. • The phrase “select an option” refers to typing a slash next to one of the presented options and pressing Enter. Command Syntax Hiperstation uses statements and commands that you will learn about later. This section describes text conventions used in statement and command descriptions. It also explains how to read syntax diagrams. • Keywords are shown in UPPERCASE letters. Enter keywords and special characters as shown. If a command or statement name can be abbreviated, the description shows only the abbreviation in uppercase letters. Find string [NEXT|PREV|ALL] The uppercase F in the command FIND means that you can enter the FIND command either as FIND or F. • Variables and generic descriptions of parameter values are shown in lowercase letters. • Vertical bars (|) are separators between mutually exclusive options. • Brackets ([ ]) indicate optional parameters. All parameters not enclosed in brackets are required. • Ellipses (…) indicate that the value can be repeated. Reading Syntax Diagrams Syntax diagrams define primary command syntax. A parameter is either a keyword or a variable. All KEYWORDs are shown in uppercase characters and must be spelled exactly as shown. You cannot substitute another value. If any part of a KEYWORD is shown in lowercase characters, that part is optional. Variables are user-specified values and are printed in lowercase italics. For example, dataset-name indicates you are to substitute a value. The syntax for commands is described in diagrams that help you visualize parameter use. The following example shows a command and a parameter: Introduction xxiii Read the diagrams from left to right and from top to bottom. These symbols help you follow the path of the syntax: indicates the beginning of a statement. indicates the statement is continued on the next line. indicates the statement is continued from the previous line. indicates the end of a statement. Required parameters appear on the horizontal line (the main path). Optional parameters appear below the main path. Default parameters appear above the main path and are optional. The command executes the same regardless of whether the default parameter is included. Vertically stacked parameters are mutually exclusive. If you must choose a parameter, one item of the stack appears on the main path. If the parameters are optional, the entire stack appears below the main path. If a parameter in a stack is the default, it appears above the main path. If the same parameters are used with several commands, their syntax may be documented in a separate diagram. In the command syntax, these common parameters are indicated with separators before and after the parameter name. An arrow returning to the left indicates a repeatable item. If the arrow contains a comma, separate the repeated items with a comma. Accessibility In accordance with section 508 of the Rehabilitation Act of 1973, Compuware has committed to making its products and services easier to use for everyone including people with disabilities. Hiperstation is a mainframe application that runs on IBM’s OS/390 and z/OS operating systems. It has an ISPF interface that is accessed with IBM 327x-type terminals or with 3270 terminal emulator software. Since the mainframe environment offers few accessibility features, Compuware has focused its attention, with regard to accessibility, on 3270 terminal emulator software running on personal computers (PCs) with Microsoft Windows 2000 or more current. Hiperstation supports, with a few exceptions, Microsoft xxiv Hiperstation for VTAM User Guide Windows accessibility features and Window-based Assistive Technology (AT) software and devices, such as Braille devices, screen readers, magnifiers, etc. Note: Hiperstation is intended for use by mainframe software developers, programmers, and testers. Much of the input and output used or produced by Hiperstation, such as Job Control Language (JCL) and hexadecimal contents or dumps of memory, are not easily understood by the general public. Unfortunately, as in the case of hexadecimal dumps, data in these formats can be confusing to screen readers and therefore confusing to the people who use them. Effective use of this application requires the specialized knowledge of a mainframe systems software developer or programmer. Hiperstation accessibility was evaluated using: • Freedom Scientifics’ JAWS screen reader • Attachmate Corporation’s myExtra Presentation Services tn3270 emulator • Microsoft’s Windows accessibility features • Adobe Reader using the “Read Out Loud” function This evaluation not only identified accessibility exceptions, but revealed emulator and screen reader compatibility issues that in some cases can be remedied through appropriate configuration. Installing Windows Accessibility Features Microsoft Windows operating systems offer several accessibility features to aid individuals who have difficulty typing or using a mouse, who are blind or have low vision, or who are deaf or are hard-of-hearing. Install these features during setup or later using the Windows installation disks. Refer to the “accessibility” topics in the Windows Help system for information on installing and using these features. Visit the Microsoft Web site, http://www.microsoft.com/enable, for additional information and tutorials. Selecting Font and Font Size Microsoft Windows and emulator software packages offer font and font size settings to accommodate users with low vision. The emulator software’s tool bars and dialog boxes typically use the font specified in the operating system, while the terminal presentation uses the font and font size specified in the emulator. To change the font or font size: • Presented on the toolbars and dialog boxes, refer to the Windows Help system. • Presented in the terminal window, refer to the emulator’s documentation or Help. Some screen readers recommend certain fonts and font sizes for compatibility. For example, Freedom Scientifics recommends setting the font to a common or “plain” font such as Lucida, Courier, or Times New Roman, and setting the font size to 10 points or smaller. Refer to the screen reader’s documentation or Help for these recommendations. Changing Color and Contrast Color and contrast settings can assist users with low vision. ISPF and most emulator software packages offer color and contrast settings. If you are accessing Hiperstation with a terminal, use ISPF settings. Otherwise, adjust the color and contrast in the emulator software. Refer to ISPF Help or the emulator’s documentation or Help. Introduction xxv Setting Cursor Blink Rate The blink rate of the cursor can affect users with photosensitive epilepsy. Additionally, some screen readers require a specific blink rate. Some readers automatically adjust the blink rate while others expect you to adjust the rate. Refer to: • The Microsoft Windows Help to find out how to set the cursor blink rate. • The screen reader’s documentation or Help to find out the recommended blink rate. Using Keyboard Shortcuts Keyboard access to application functions support users who cannot use a mouse. Microsoft Windows provides keyboard access to all functions within the operating system, such as: • Displaying or hiding the Windows Start Menu • Showing the Desktop • Minimizing all windows • Searching for files • Accessing the help system • Controlling the behavior of the Windows accessibility features, for example, toggling the listening status to the microphone, or cycling focus backward and forward. Most Windows-based applications also provide keyboard access to their functions. The combination of keys required to execute a given function is called a keyboard shortcut. Refer to the “Keyboard Shortcuts” topics in the Windows Help system for a complete list of Windows shortcuts. For a list of the shortcuts that are available in the emulator software or any third-party accessibility tool, such as the JAWS screen reader, refer to the software’s documentation or Help. Accessibility Exceptions Work Arounds During Hiperstation accessibility evaluation, some exceptions were encountered where some accessibility features or AT were not fully supported. The causes of and solutions for these exceptions are currently under investigation by Compuware Corporation. Known Exceptions Accessibility exceptions include: • Function Key (F Key) information at the bottom of the screen is not read by the screen reader on some screens. This is believed to be caused by an external interface. See “Solutions” for a viable work-around. • Some system error and warning messages are not read by the screen reader when issued. Believed to be caused by an external interface. See “Solutions” for a viable work-around. • Some pop-up dialog boxes or windows do not capture exclusive focus and are not read correctly by the screen reader. This is believed to be caused by an external interface. No known solution is currently available. • System error and warning messages do not capture visual focus for the screen magnifier. This is believed to be caused by an external interface. No known solution is currently available. • Some entry and display fields lack individual labels. When entry fields are accessed using the Tab key, the entire individual line is read. xxvi Hiperstation for VTAM User Guide • Current Web-based reports are not easily navigated using the keyboard and lack table element coordinate tags. Additionally, some of these reports contain color-coded elements — for example, the color of some elements conveys meaning. Solutions When the screen reader fails to read the F Key information upon entry to a new screen, do one of the following: • Use the arrow keys to move the cursor down to the lines with the F Key information. The screen reader reads each line as the cursor is placed on it. • Press the Page Up key for the screen reader to reread the entire screen. When the screen reader fails to read an error or warning message, an audio alert occurs if this feature is enabled on your system. Press the Up key to place the cursor on the line containing the error message, usually on the top or title line. The screen reader reads the line and its error message individually. Getting Help Compuware provides a variety of support resources to make it easy for you to find the information you need. FrontLine Support Web Site You can access online information for Compuware products via our FrontLine support site at http://frontline.compuware.com. FrontLine provides access to critical information about your Compuware products. You can review frequently asked questions, read or download documentation, access product fixes, or e-mail your questions or comments. The first time you access FrontLine, you are required to register and obtain a password. Registration is free. Compuware now offers User Communities, online forums to collaborate, network, and exchange best practices with other Compuware solution users worldwide. Go to http://groups.compuware.com to join. Contacting Customer Support If you have difficulty with Hiperstation, refer to the information in the appropriate user’s guide for help or consult with the Hiperstation technical representative at your site. If the problem persists, please obtain the following information before calling Compuware: 1. The release number of the product being used 2. The release number of the transaction processing utility (such as CICS, IMS/DC, or ISPF) being used 3. The operating system being used to help determine operating system dependencies 4. If an abend occurs, note the displacement and the module in which it occurs, and if possible, obtain a copy of the system dump. 5. The sequence of issued transactions and/or commands that resulted in the problem and the data type involved. Phone • USA and Canada: 1-800-538-7822 or 1-313-227-5444. Introduction xxvii • All other countries: Contact your local Compuware office. Contact information is available at http://frontline.compuware.com. Web You can report issues via the Report and Track Calls tab on the FrontLine home page. Note: Please report all high-priority issues by phone. Mail Hiperstation for VTAM Customer Support Compuware Corporation One Campus Martius Detroit, MI 48226-5099 Corporate Web Site To access Compuware’s site on the Web, go to http://www.compuware.com. The Compuware site provides a variety of product and support information. Note: Hiperstation provides a report that may help Customer Support diagnose an issue. See Appendix A, “Customer Support Diagnostics” for details. Although it is not required, generating the report before calling may expedite diagnosis. xxviii Hiperstation for VTAM User Guide 1-1 Chapter 1. Product Overview Chap 1 Compuware Hiperstation is a suite of tools that streamlines the testing process and helps improve the quality of your applications. The Hiperstation tool suite offers these products: • Hiperstation for VTAM provides the means for testing applications that use a 3270 user interface, or SNA LU0/LU2 communication protocols via unattended and interactive tools. It also provides an Automated Testing Vehicle (ATV) Manager and an auditing function for security monitoring. See the remainder of this book and the online help for information on how to use this product. • Hiperstation for Mainframe Servers includes support for testing applications using HTTP and HTTPS protocols. It includes SNA testing support and expands this support to test APPC/LU6.2 applications. See the Hiperstation for Mainframe Servers User Guide and the online help for more details about this product. • Hiperstation for WebSphere MQ enables the testing of applications that use WebSphere MQ. See the Hiperstation for WebSphere MQ User Guide and the online help for more details about this product. All of the Hiperstation products include the following functions: • Record: Captures user sessions on a keystroke-by-keystroke or message-by-message basis. This is accomplished through a global record function for ALL components and interactively in the case of 3270 applications. • Playback: Re-executes previously recorded sessions either online in interactive or non-stop mode, or in a batch job. • Comparison: Compares the output of the current playback session with the recorded session. Each of the components also has specific capabilities to aid testing in their respective environments. For advanced testing, Hiperstation incorporates IBM's REXX script language, allowing you to customize and enhance script creation, playback, and reporting. This chapter introduces Hiperstation for VTAM’s major features. It also outlines how to use Hiperstation for VTAM to test applications with 3270 data, viewing modes, and function key conventions. Hiperstation for VTAM Features Compuware’s Hiperstation for VTAM streamlines testing to help you improve the quality of your LU0 and 3270 business applications. Hiperstation for VTAM can, among other features, record, play back, compare, and dub scripts. These functions help you comprehensively test your applications including unit, concurrency, integration, migration, capacity, and load tests. Hiperstation for VTAM also provides many other online and unattended features to modify and customize existing scripts. For advanced testing, Hiperstation for VTAM incorporates IBM’s REXX script language, allowing you to customize and enhance script creation, playback, and reporting. 1-2 Hiperstation for VTAM User Guide Automated Testing Vehicle (ATV) Manager The ATV Manager provides a system in which you can compile the elements of your automated tests to organize and manage their use. The ATV Manager then reports on the execution of tests and can e-mail the reports to defined recipients. The ATV Manager will build, execute, and manage regression and performance automated test vehicles. See the Hiperstation Automated Testing Vehicle (ATV) Manager User Guide or the online help for complete information on how to use the ATV. Archiving The Archive/Search function allows you to create archive record requests. A registry dataset is also created. A request is started and repositories are generated based on filter criteria. The registry dataset contains entries that indicate the date and time ranges of each generated repository segment so that the Archive/Search function can locate specific datasets by date and time. The Archive Record Administrator will set up security so that only authorized users have access to, and can search from, the list of audit requests. The Archive/Search function provides the following options: • Archive Requests — creates archive recording requests allowing you to create search reports. • Create Search Reports — provides IT auditors and help desk personnel with the ability to easily locate and extract data from the repository. • Search Report Management — manages your requests and frees up space by deleting requests that are no longer needed. • Global Record Manager — builds lists of applications, terminals, and user IDs to include or exclude from recording. Global Record Manager Lists provide greater flexibility in defining Global Recording requests. See the Hiperstation Auditor User Guide or the online help for complete information on how to use the Archive/Search function. Recording Hiperstation for VTAM provides the following recording options: • Interactive Recording through Domain Traveler captures single-user activity. Start and stop the recording at any time during the session. • End-User Recording automates capture of end-user activity. Recording automatically begins when you log on to a special TSO ID and terminates when you log off the domain destination. • Global Recording captures the activity of one or more users. This option writes the activity to a repository that generates testing scripts. It records LU0 and 3270 traffic to generate stress tests or to archive activity for audit purposes. The rest of this section provides a description of each of these options. Interactive Recording (Domain Traveler) Hiperstation for VTAM’s record function saves all activity on a keystroke-by-keystroke basis during a session and stores it in a script as a dataset member. You can select from several recording options to: Product Overview 1-3 • Replace an existing member with a member to be created. • Record a session as a normal script or as a hexadecimal data stream. • Stop the recording activity. End-User Recording End-user recording allows individuals with no knowledge of TSO to create recordings or scripts for later use in regression testing. The user logs on to an ID established for enduser recording. When the user logs off the domain destination, the TSO session automatically logs off and returns the terminal to VTAM. The user will not see TSO screens after the initial logon. For more information, refer to the Hiperstation Installation Guide. Global Recording Use Global Recording to record VTAM 3270 (LU2) and LU0 sessions. You can record while groups of users perform their daily routines and choose the exact terminals, applications, and time frames to record. You can include or exclude certain messages from recording based on a predefined list of messages. Message filtering provides a script that contains a subset of the messages from the 3270 session. You can also create and reuse lists of user IDs, logical unit (LU) names, or applications that can be included or excluded from a session. Playback You can: • Play back scripts online in either interactive or batch mode without manually rekeying transactions. • Play back previously recorded scripts in interactive or non-stop (full-speed) modes. • Play back scripts in a batch environment using unattended playback. Interactive Playback In interactive mode, Hiperstation for VTAM stops the script at each screen to allow you to review the input and output data. Interactive playback allows you to change input data, so you can modify the script without re-recording it. In addition, you can: • Insert new transactions in the script • Delete input messages in the script • Skip selected parts of the script • Play back the script • Terminate the session • Purge current transactions Non-Stop Playback In non-stop playback mode, you see each screen as it occurs in the script. The keyboard is locked to prevent data input. Three non-stop playback options are provided: • Full Speed: Transactions are replayed as quickly as the system can play them. • Recorded Think Time: Think time (the amount of time between each recorded user action) is simulated using the think-time value recorded in the script. 1-4 Hiperstation for VTAM User Guide • Chosen Think Time: You set a think-time value for each transaction — in seconds or as a percentage of the recorded value. In non-stop playback, when Hiperstation for VTAM encounters a mismatch, script playback stops. When you resume playback, it continues in non-stop mode. In this mode, you see screens only when a mismatch occurs. This eliminates the need to review screens that have not changed. Unattended Playback In unattended playback, you can play back scripts containing the recorded activity of multiple terminals in a batch environment. Unattended playback can play back multiple scripts on one or more virtual terminals. These virtual terminals can be signed on to one or more VTAM-based domain destinations. Unattended playback eliminates the need for weekend and after-hours testing. By running a batch job, you can perform regression, concurrency, and stress tests. You can also perform tests with multiple online regions for capacity planning and performance tuning. If your script contains REXX logic, you can use data from an external file to generate additional input data to populate your database. Comparison You can compare current test results with previous benchmarked results. When you play a script, Hiperstation for VTAM automatically compares each current session output (actual screen) with each original recorded session output (expected screen). During playback setup, you can set the conditions under which Hiperstation for VTAM stops processing when a mismatch occurs. Hiperstation for VTAM also allows you to ignore numeric differences during playback. This option is useful for screens with date and time fields. Unattended Comparison Using unattended comparison, you can compare two 3270-based scripts independent of playback. It uses the same statements as unattended playback with an additional COMPARE statement. Editing, Masking, and Dubbing After a script has been recorded, you can use ISPF edit capabilities to add or delete screens from the script. You can also edit the script to: • Imbed REXX logic • Change input data to different values • Document script flow • Add comments Masking Information Masking instructs Hiperstation for VTAM to ignore certain screen information, such as date and time fields, during comparison. Hiperstation for VTAM can also generically mask selected alphanumeric characters on a screen. You can mask when recording or dubbing a script or with ISPF edit. You can also globally mask screen information for the entire script. There are two basic mask types: Product Overview 1-5 • Row masks are characters inserted in a script to mask an entire screen row or selected columns within the row. • Generic masks use a parsed string to allow you to make conditional masking decisions based on screen content. Dubbing With dubbing, you can create new test scripts using previously recorded sessions. This is useful when adding new transactions to an existing script or re-recording screen images to a new script. Hiperstation for VTAM can be set to automatically record the new script while playing back the existing script. You can also instruct Hiperstation for VTAM to record the new script only when a mismatch occurs. Dubbing provides many ways for you to customize scripts, allowing you to: • Combine multiple scripts into a single script. • Update an existing script with new screen images. • Append transactions to the middle or end of a script. • Update an existing script with new or additional input. • Update masked data. Unattended dubbing With unattended dubbing, you can dub 3270-based scripts during unattended playback. You can combine scripts for a single group into one script or create a dubbed script for each script in a group. Customizing Scripts Using Script Processors With script processors, you can customize tests by taking previously recorded scripts and creating customized output scripts. Available script processors include: • REXX Script Processor (see Chapter 12, “Customizing Scripts with the REXX Script Processor” for details) • Date Change Script Processor (see Chapter 13, “Date Change and Date Find Script Processors” for details) • Date Find Script Processor (see Chapter 13, “Date Change and Date Find Script Processors” for details) • Input Field Reformat Script Processor (see Chapter 14, “Input Field Reformat Script Processor” for details) • Multichange Script Processor (see Chapter 15, “MultiChange Script Processor” for details) • Security Script Processor (see Chapter 16, “Security Script Processor” for details) • EURO Script Processor (optional feature) (see Chapter 17, “Hiperstation for VTAM EURO Script Utility” for details) • GST Testing Utility (optional feature) (see Chapter 18, “GST (Goods and Services Tax) Testing Utility” for details) Message Filtering With message filtering, you can create a new script by taking an existing script and removing certain transactions or messages. Using REXX code, you choose which messages to include and exclude in the new script. You can filter messages from Global 1-6 Hiperstation for VTAM User Guide Record or from the unattended (batch) message filter program. With message filtering, you can: • Simplify testing by producing scripts that contain a single message, allowing you to test one message at a time. • Remove messages that contain confidential data. • Reduce script size by eliminating messages of no interest. Advanced Testing Using REXX Hiperstation for VTAM uses IBM’s REXX language to significantly enhance script playback in ISPF and in unattended playback. Hiperstation for VTAM’s REXX utility can: • Extract data from external datasets to be used as input data. • Generate random numbers. • Perform integer, decimal, and floating point arithmetic. • Make internal and external function calls. Following are some other uses of REXX in Hiperstation for VTAM scripts. Substituting Terminal Input Terminal input substitution allows you to substitute or assign constants and variables to the input of a Hiperstation for VTAM script. In stress testing, where multiple terminal sessions are involved, systems often require unique user ID and password data for each session. Hiperstation for VTAM’s table processing and variable substitution allows a table of users to be read in and substituted based on criteria such as the session’s terminal ID or port number. Creating Modular Scripts You can use REXX’s conditional logic and CALL statement to create a fix-up script based on the output of a particular transaction. For example, if a batch job tries to close a database while users are attached to it, Hiperstation for VTAM can issue a message and reschedule the job. The CALL statement lets you dynamically include: • Other Hiperstation for VTAM recorded scripts. • Additional script logic implemented as REXX internal procedures. • Programs in REXX, Assembler, C, or other high-level languages. Using REXX, you can create scripts to perform tasks with control returned to the original script. For example, a CICS installation needs to use the CEMT transaction to open and close databases during nightly backups or reorganizations. Using Hiperstation for VTAM, you can create special operator scripts to perform tasks that normally require a terminal operator. Creating Script Reports The REXX SAY statement provides a way to create reports from a running script. The results are written to the Hiperstation for VTAM log. In unattended playback, this is the SYSPRINT dataset. In ISPF playback, this is the log defined by Hiperstation for VTAM’s RLOG command. Additional Management Features Several management functions, including Transaction Journal, Autodoc, and Session Demo, help ensure the integrity of your testing process. Product Overview 1-7 Transaction Journal The transaction journal records all inputs and outputs of a user session in screen-image format for easy reference. It also shows the user’s think time, the system’s response time, and the session’s elapsed time. The journal is recorded on DASD for online review or subsequent printing. Autodoc (Automated Documentation) Automated documentation (autodoc) helps you produce documentation for online systems. Autodoc automatically creates document skeletons or boilerplates consisting of document format characters, a running title, screen images, user input data, and short titles leading to the screen’s description. You can print autodoc-created datasets or transfer them to a PC for use as word-processing input. Session Demo Session Demo is a script demonstration tool. It plays 3270 scripts without initiating the application from which the scripts were derived. Use it to: • Inspect a script’s contents • Train personnel — create a script, use ISPF Edit to insert instructional pop-up messages, then view the training script with Session Demo • Demonstrate the screen flows of application prototypes Session Demo supports interactive and non-interactive demonstration. Use Session Demo commands to move backward and forward through the screens in the script, locate a specific screen, and copy and paste screen images into an ISPF Edit session. Online Help Hiperstation for VTAM provides online help text that describes the product’s screens, fields, and commands. Press PF13 for help when viewing the Domain Destination screen. On all other Hiperstation for VTAM screens, press PF1 to obtain help information. DBCS Support Hiperstation for VTAM supports DBCS (Double Byte Character Set) used primarily to display Japanese Kanji characters during 3270 testing. Product Conventions This section presents basic information about Hiperstation for VTAM. It describes Hiperstation for VTAM’s screen modes, PF key conventions, and help information. ISPF (Interactive) Screen Mode When you connect to a domain destination, you can choose between zoom and ISPF modes for viewing screens. When you choose ISPF mode, the screen image from the domain destination appears in an ISPF window. With a domain destination in an ISPF window, you can use the same physical 3270 for both your ISPF session and your domain destination session. Normal SPLIT and SWAP keys let you go back and forth between sessions. The ISPF print command allows domain destination screens to be recorded in the ISPF list dataset. All of the 3270 terminal functions are available in ISPF mode. In ISPF mode, the first three screen lines may prevent you from seeing all of the lines on the 3270 screen. This may also be true if you employ the ISPF split-screen capability. 1-8 Hiperstation for VTAM User Guide Note: Making Hiperstation active on multiple split screens is not supported. Also, ISPF mode uses PF key mapping, which allows 12 PF keys to be passed to the domain destination and 12 PF keys to be passed to ISPF for functions such as split and swap. Note: ISPF mode changes low-order blanks to binary zeros within fields being sent from the screen to the domain destination. If this is a problem, use Zoom mode. ISPF Mode TSO Jump Constraint If you are in ISPF mode and are connected to TSO as a domain destination, the TSO jump function will not work for the domain destination. To correct this precede the jump character with the TSO domain destination command separator. For example, if the TSO domain destination has defined a command separator as a semicolon (;), which is the TSO default, then enter ;=3.5 to jump to 3.5 in the domain destination. Note: During the domain destination session, the jump function for the TSO session (not the TSO domain destination) is disabled. Zoom Mode When in Zoom mode, all PF keys are passed to the domain destination, so no PF key mapping is necessary. Since Zoom mode takes over the whole screen, the entire screen shows making scrolling unnecessary. To toggle back and forth between the ISPF and Zoom modes, press the Zoom key, PF23. You can use Zoom mode at any time while interacting with the domain destination. From Zoom mode, press PF23 again to return to ISPF mode. Several vendor programs, such as SDF (IBM’s screen definition utility), work for a long period of time before they show final output. When in Zoom mode, Hiperstation for VTAM is able to detect that delay. Therefore, you do not need to press Enter repeatedly to see the transaction’s ultimate output or for slow multiple write transactions. Note: If your terminal is incapable of showing the Zoom image, Hiperstation for VTAM returns a DEVICE NOT CAPABLE message. Press PF1 for more information. Using PF Keys ISPF uses PF keys for many commonly used functions such as <End>, <Repeat Find>, and <Scroll>. For example, pressing the PF3 key in ISPF usually sends the <End> command to the application. Most likely, the domain destination you are contacting also uses PF keys. For clarity, Hiperstation for VTAM considers the PA1, PA2, and Clear keys to be PF keys and addresses this conflict in two ways: by using PF key mapping or by simulating PF keys. PF Key Mapping Most terminals have 24 PF keys. If your terminal has 24 PF keys, you can assign some of them to the domain destination. ISPF uses the rest of the keys. This technique is called PF key mapping. Generally, PF1 through PF12 are mapped to PF1 through PF12 for the domain destination, and PF13 through PF24 are seen directly by ISPF. This map correspondence is established on the Session Options screen (Figure 1-1 on page 1-9). The only PF keys in a different position that are passed to the domain destination (and not given to ISPF) are the PF17, PF18, and PF22 keys. By default, the following keys are assigned: • If you press PF17: PA1 is passed to the domain destination Product Overview 1-9 • If you press PF18: PA2 is passed to the domain destination • If you press PF22: Clear is passed to the domain destination. In Figure 1-1, PF1 through PF12 pass to the domain destination as PF1 through PF12. PF17 translates to the PA1 key, PF18 translates to PA2, PF22 sends the Clear key to the domain destination, and PF23 is the Zoom key. To access the Session Options screen, type a slash in the Change session options field on the Hiperstation Domain Traveler screen. Use PF keys 13 through 24 for normal ISPF functions such as <End>. For example, using IBM defaults, PF13 is <Help>, PF14 is <Split> and PF21 is <Swap>. Figure 1-1. PF Key Mapping Example Hiperstation --------------------Session Options ------------------------------ Command ===> Logon data. . . . (Optional) ZOOM mode . . . . N Y=yes, N=No ZOOM key. . . . . PF23 LU name . . . . . (Terminal name used to login to application) Logmode . . . . . SNX32702 (Overrides model, SNA and Queriable options) 3270 model. . . . 1=12x40, 2=24x80, 3=32x80, 4=43x80, 5=27x132 SNA . . . . . . . Y=yes, N=no Queriable . . . . Y=yes, N=no Trailing Blanks . 1 (Only applies to non-Zoom mode) Infirst . . . . . N Y = No Welcome Screen From Domain Destination Appl Profiling. . "/" to View application profile settings The following PF key translations apply to the Domain Destination when in non-Zoom mode: PF01 = F1 PF04 = F4 PF07 = F7 PF10 = F10 PA1 = PF02 = F2 PF05 = F5 PF08 = F8 PF11 = F11 PA2 = PF03 = F3 PF06 = F6 PF09 = F9 PF12 = F12 CLEAR= Note: On a 24 PF key terminal, this still provides access to all of the common ISPF functions using PF keys 13–24. The keys mapped to PA1, PA2, and Clear normally are set to the repeat find, repeat change, and scroll left functions, none of which have function in the Hiperstation for VTAM environment. Also, it is important to note that setting the PF keys for Hiperstation for VTAM has no effect on the other side of the split screen. Simulating PF Keys You can simulate PF keys by entering the key name on the command line and pressing Enter. For example, to send PF3 to the domain destination, type PF3 on the command line, then press Enter. 1-10 Hiperstation for VTAM User Guide 2-1 Chapter 2. Managing Hiperstation for VTAM Datasets Chap 2 This chapter describes how to manage Hiperstation for VTAM datasets, including: • How to allocate Hiperstation for VTAM script datasets • How Hiperstation for VTAM responds when you work with an archived dataset or reuse an existing one • The script recovery utility you can use when a recording ends in error Allocating a Script Dataset You can allocate a script dataset either before or while using Hiperstation for VTAM. If your site requires that you define your script dataset before running Hiperstation for VTAM, see “Allocating Before Using Hiperstation for VTAM”. If you need to allocate datasets on an as-needed basis after you begin a Hiperstation for VTAM session, see “Allocating While Using Hiperstation for VTAM”. Allocating Before Using Hiperstation for VTAM Although Hiperstation for VTAM does not require a preallocated script dataset, you may want to preallocate datasets. To do so, use the standard ISPF ALLOCATE NEW DATA SET screen, normally found under ISPF option 3.2. Ensure that the script dataset is a standard partitioned dataset with a variable blocked format. The amount of space needed for the script files depends on the amount of data recorded. Compuware recommends a block size of 9004 for both 3350 and 3380 devices, and a block size of 4352 for 3390 devices. This provides a good trade off between efficiency and number of I/Os. For example, if you use a BLKSIZE of 9004 on a 3380 device (five blocks per track), a track can hold approximately 15 to 20 transactions (one interaction with the domain destination). A primary allocation of 20 tracks on a 3380 device holds about 300 transactions. Allocating While Using Hiperstation for VTAM If you are already in a Hiperstation for VTAM session and attempt to use an unallocated script dataset while recording, the Allocate a Script Dataset screen appears (Figure 2-1). Use this screen to define your script dataset without leaving Hiperstation for VTAM. 2-2 Hiperstation for VTAM User Guide Figure 2-1. Hiperstation Allocate a Script Dataset Screen ----------------- Hiperstation Allocate a Script Dataset ------------------- OPTION ===> _ SCRIPT DATASET NAME: TSO0001.HS.NEWSCRPS VOLUME SERIAL ===> HPER00 SPACE UNITS ===> TRACK (TRKS, or CYLS) PRIMARY QUANTITY ===> 10 (In above units) SECONDARY QUANTITY ===> 05 (In above units) DIRECTORY BLOCKS ===> 25 RECORD LENGTH ===> 256 (Suggest 256) BLOCK SIZE ===> 9004 (Suggest 9004) Recovering Migrated Datasets If you select a dataset that has been migrated (archived), the Recover Migrated Dataset screen appears (Figure 2-2). To recover that migrated dataset, press ENTER. If you decide not to recover the migrated dataset, press END. Pressing END returns to the previous Hiperstation for VTAM screen where you can enter a new dataset name. Figure 2-2. Recover Migrated Dataset Screen --------------------- Hiperstation * Recover Migrated Data Set ---------------- OPTION ===> DATA SET NAME: This data set has been found to be migrated off the system by an archiving software package and is currently not available. Press ENTER to recover the data set and make it available and continue. or Press END to cancel the recovery and permit the data set to be respecified. Reusing Datasets If you select a dataset name that does not meet the characteristics of the specified dataset type, the Bad Dataset screen appears (Figure 2-3). If you select a dataset name that meets the characteristics of the specified dataset, and the System Installer has set PROMPT=YES in EHSDFLT, the Reuse Dataset screen appears (Figure 2-4 on page 2-3). Managing Hiperstation for VTAM Datasets 2-3 Figure 2-3. Bad Dataset Screen --------------------- Hiperstation * Bad Dataset --------------------------- OPTION ===> _ DATASET NAME: ’TSO0001.HS.ALLOCNEW’ REQUESTED TYPE: LIST Basic specifications: DSORG=PS,RECFM=VBA This dataset has been found but does not conform to the basic dataset specifications for an Autodoc dataset. Press ENTER to allocate the dataset and continue. or - Press END to cancel the allocate and permit the dataset to be respecified Figure 2-4. Reuse Dataset Screen Hiperstation --------------------- Reuse Data Set ------------------ COMMAND ===> Data Set Name: ’USER25.TEST610.AUTODOC’ Requested type: LIST Basic specifications: DSORG=PS,RECFM=VBA This data set has been found and conforms to the basic dataset specifications for an Autodoc data set. Choose an action: 1 1. Delete and redefine the dataset 2. Use the existing dataset 3. Specify a different dataset name Enter END to exit, ENTER to proceed. Recovering Recordings that Ended in Error Hiperstation for VTAM’s script recovery utility (EHSSRCVY) allows you to allocate a file to store compressed screen images of a recording session. Using this utility, you can recreate the script if an abend occurs. The utility creates a dataset member containing all screens recorded up to the point of failure. EHSSRCVY uses a recovery file (sequential dataset created when record script activity starts) as input. The recovery file has an undefined format and a block size of 13680. The space allocation and location of the dataset are defined by values in the default parameter table. The recovery file is deleted after the script is transferred from memory, or the recovery file, to the specified script dataset. The utility’s JCL appears in Figure 2-5. Figure 2-5. JCL for Script Recovery Utility //JOBCARD ..... //EHSSRCVY EXEC PGM=EHSSRCVY,PARM=’OVERRIDES’ //STEPLIB DD DISP=SHR,DSN=VP.Rxx.LOAD //HSSCRBKP DD DISP=SHR,DSN=script.recovery.dsn //SYSPRINT DD SYSOUT=* //SYSIN DD * SCRDSN=<output pds name> SCRIPT=<output pds member name> REPLACE=<NO|yes> /* // 1 2 3 4 The numbers below correspond to the bold numbers in the JCL: 2-4 Hiperstation for VTAM User Guide 1. PARM=‘OVERRIDES’ tells the utility to process any data in the SYSIN dataset. 2. Specifies your installation’s Hiperstation for VTAM load library. 3. Specifies the recovery sequential dataset created at recording startup. Its naming convention is controlled by EHSDFLT parameters. 4. Specifies that the SYSIN dataset will contain any overrides. Default processing uses the dataset and member names saved in the recovery script. – SCRDSN: Redirects the script to be created in the specified dataset. – SCRIPT: Redirects the script to be created in the specified dataset member. – REPLACE: If REPLACE set to NO (the default), the utility checks to see whether the member currently exists in the dataset. If the member is found, processing ends. If REPLACE IS set to YES, the utility does not perform any member checking. If the member is in the dataset, the utility replaces it with the contents of the recovery member. 3-1 Chapter 3. Getting Started Chap 3 This chapter describes how to start Hiperstation for VTAM. It also introduces Domain Traveler, the facility that interacts with the subsystem or application you are testing. Accessing Hiperstation for VTAM You can access Hiperstation for VTAM from the Hiperstation Product Menu, which is accessible from the ISPF Primary Option Menu. To start Hiperstation for VTAM: 1. On the Option or Command line, enter the ISPF option assigned to Hiperstation. The Hiperstation Product Menu appears (Figure 3-1). Note: If you do not see an option for Hiperstation on the ISPF Primary Option Menu, contact your systems administrator. Figure 3-1. Hiperstation Product Menu ETRMPRIM --------------- Hiperstation - Product Menu -------------------------- Option ===> 0 Hiperstation Profiles Set user profiles 1 Hiperstation for VTAM VTAM Application Testing 2 Hiperstation for Mainframe Servers SNA/APPC & HTTP Testing 3 Hiperstation for WebSphere MQ WebSphere MQ Message Testing 4 Hiperstation ATV Manager Automated Testing Vehicle Manager Profile ===> HIPER Profile dataset ===> 'USER2312.HIPER.PROFILE' Leave Profile blank for selection list Leave Profile dataset blank to create new dataset Leave both blank to run with no Profile See Hiperstation frequently asked questions at: http://frontline.compuware.com Copyright (C) 1994, 2013 Compuware Corporation. All Rights Reserved. Unpublished-rights Reserved Under the Copyright Laws of the United States. Type LEGAL on the command line for Copyright/Trade Secret Notice information 2. Select option 1 Hiperstation for VTAM to display the Hiperstation for VTAM Main Menu (Figure 3-2). 3-2 Hiperstation for VTAM User Guide Figure 3-2. Hiperstation for VTAM Main Menu ------------------------Option ===> 1 2 3 4 5 6 7 Hiperstation - Main Menu Domain Traveler Quick Play Session Demo Global Recording Archive/Search Script Processors Unattended Processing -------------------------- Product Release: 16.05.00 Record and Playback Select a Script and Go Demonstrate Online Applications System and Application Test Creation Audit and Help Desk Functions Automatic Script Editing Setup Unattended Playback and Compare Jobs From this screen you can access all of the functions in Hiperstation for VTAM. 3. Type the number of the option you want to use on the Option line and press Enter. 1. Domain Traveler — See “Introducing Domain Traveler” on page 3-2. 2. Quick Play — See “Running Quick Play” on page 8-1. 3. Session Demo — See Chapter 9, “Demonstrating Scripts with Session Demo”. 4. Global Recording — See Chapter 10, “Global Recording Requests and Scripts”. 5. Archive/Search — See Chapter 11, “Archive Functions” or the Hiperstation Auditor User Guide. 6. Script processors — See the script processor chapters including • Chapter 12, “Customizing Scripts with the REXX Script Processor” • Chapter 13, “Date Change and Date Find Script Processors” • Chapter 14, “Input Field Reformat Script Processor” • Chapter 15, “MultiChange Script Processor” • Chapter 16, “Security Script Processor” • Chapter 17, “Hiperstation for VTAM EURO Script Utility” • Chapter 18, “GST (Goods and Services Tax) Testing Utility” • Chapter 19, “Unattended Message Filters” 7. Unattended Processing — See Chapter 6, “3270 Unattended Processing”. Introducing Domain Traveler Domain Traveler provides an interactive connection to the application or subsystem you are testing. You can use Domain Traveler to record your activity, play back recorded scripts, compare recorded scripts to live activity, and dub new testing scripts. Chapter 5, “Online Testing of 3270 Applications”, explains how to record, play back, compare, and dub scripts with Domain Traveler. Contact the Domain Destination You can use Domain Traveler to contact the domain destination. Domain destination describes a software application or subsystem designed to facilitate interactive transactions. When connected, you can record, play back, compare, and dub scripts. To contact the domain destination: 1. Select option 1 Domain Traveler from the Hiperstation for VTAM Main Menu (Figure 3-2). The Domain Traveler Screen appears (Figure 3-3 on page 3-3). Getting Started 3-3 Figure 3-3. Domain Traveler Screen ------------------------ Hiperstation * Domain Traveler ----------------------- Command ===> Use this panel to connect to one of your site's domains. When connected you can record your session or play back previous sessions. Domain Destination . CICS41A Change session options (Enter "/") Start = ISPF , Zoom = PF23 , LUName = Default , Restore Keyboard Logmode = SNX32702 , Model = 2-(24X80) , SNA = Yes , Queriable = Yes Application Profiling(Off) , IMS = Y 2. Enter the name of the desired Domain Destination. This is the VTAM application name (APPLID) defined to your system. If you do not know the APPLID, type a slash (/) and press Enter to see a list of available domain destinations (this feature requires a custom installation and may not be available at your site), or contact your customer support group or help desk. OR Type a slash in the Change session options field to access the Session Options screen. See “Change Session Options” for more information. Your session options settings are listed below this field. 3. Press Enter to continue. If you selected the Change session options field, the Session Options screen appears (Figure 3-4 on page 3-3); otherwise, you are connected to the domain destination (Figure 3-6 on page 3-6). Change Session Options Use the Session Options screen to modify the appearance of information on your screen, assign PF keys, and establish other Domain Traveler session options. Hiperstation for VTAM preserves your settings. To access session options: 1. On the Domain Traveler screen (Figure 3-3), type a slash next to the Change session options field and press Enter. The Session Options screen appears (Figure 3-4 on page 3-3). Figure 3-4. Session Options Screen Hiperstation --------------------Session Options ------------------------------ Command ===> Logon data. . . . (Optional) ZOOM mode . . . . N Y=yes, N=No ZOOM key. . . . . PF23 LU name . . . . . (Terminal name used to login to application) Logmode . . . . . SNX32702 (Overrides model, SNA and Queriable options) 3270 model. . . . 1=12x40, 2=24x80, 3=32x80, 4=43x80, 5=27x132 SNA . . . . . . . Y=yes, N=no Queriable . . . . Y=yes, N=no Trailing Blanks . 1 (Only applies to non-Zoom mode) Infirst . . . . . N Y = No Welcome Screen From Domain Destination Appl Profiling. . "/" to View application profile settings The following PF key translations apply to the Domain Destination when in non-Zoom mode: PF01 = F1 PF04 = F4 PF07 = F7 PF10 = F10 PA1 = PF02 = F2 PF05 = F5 PF08 = F8 PF11 = F11 PA2 = PF03 = F3 PF06 = F6 PF09 = F9 PF12 = F12 CLEAR= 2. Specify the desired options. See the online help for complete field descriptions. 3-4 Hiperstation for VTAM User Guide – Logmode shows terminal characteristics, such as rows and columns, that Hiperstation for VTAM uses when establishing a session with the application. This value must be defined to VTAM. A value entered in this field overrides any values in the 3270 Model, SNA, or Queriable fields. – Type Y or N in the Queriable field to specify whether the terminal is queriable. Y is the default. Queriable terminals can support extended attributes and doublebyte character sets (DBCS). – Type Y or N in the Infirst field. Y tells Hiperstation for VTAM to send its first INPUT as the initial replay activity (do not wait for an OUTPUT from the Domain Destination). When Y is specified, no welcome screen from the Domain Destination appears. This field is valid only if Application Profiling has been turned off. – Type a slash (/) in the Appl Profiling field to display the Application Profiling Settings screen. Application profiling examines components of each datastream received and compares them to previously received datastreams to better anticipate the next action that the application will take (for example, send more data or wait for input). 3. Press Enter to continue. If you selected Appl Profiling, the Application Profile Settings screen appears (Figure 3-5 on page 3-5); otherwise, you are connected to the domain destination (Figure 3-6 on page 3-6). Change Application Profile Settings When you play back a script with Domain Traveler, Hiperstation for VTAM uses the following parameter values to determine how long to wait before sending the next input to the application: – XTRMUTIM (keyboard unlock time limit) – XTRMKTIM (premature keyboard unlock time limit) – XTRMTIME (time limit for secondary writes) Every input and output employs the wait times established by these parameters. If the application does not respond in the amount of time specified, Hiperstation for VTAM times out and produces error messages. Your installer can adjust these parameters by editing the ETRMSPAR member of the SQVPPENU library. See the Hiperstation Installation Guide for more information. Application profiling alleviates the need to adjust these parameters. It synchronizes script playback with application responses to ensure successful and efficient playback. It collects response-time information to determine how long to wait for the next response. If the application does not respond within the expected time frame, Hiperstation for VTAM automatically increases the wait time up to the maximum wait value specified on this screen. As Hiperstation for VTAM gathers more data, wait times typically decrease. 1. On the Hiperstation for VTAM Main Menu, select option 1 Domain Traveler. Type a slash (/) next to the Change session options field and press Enter. On the Session Options screen, type a slash (/) next to the Appl Profiling field and press Enter. The Application Profile Settings screen appears (Figure 3-5). Getting Started 3-5 Figure 3-5. Application Profile Settings Screen Hiperstation ------------Application Profile Settings ------------------------- Command ===> Use Application Profiling . Y Y=Yes,N=No Standard Wait. . . . . . . 0 0 0 ==>Use default values ss hh ss=seconds, hh=hundredths of seconds Maximum Wait. . . . . . . . 0 0 0 ==>Use default values sss hh sss=seconds, hh=hundredths of seconds --------------------------------------------------------------------- If Use Application Profiling is set to "Y" the selections below will be ignored --------------------------------------------------------------------- IMS Application . . . . . . Y = Process special "IMS" datastreams N = No special processes used KB Restore Action . . . . . 1 1 = Allow application KB restore 2 = Override 2. Specify the desired options. See the online help for complete field descriptions. – Type Y or N for Use Application Profiling to specify whether to use application profiling. N is the default. Short scripts or applications with different types of data streams may take longer to play back when application profiling is enabled. – Standard Wait specifies the “slow start” value to be used in Application Profiling. This value estimates application response time until sufficient data has been gathered to calculate response time. If no value is entered, Hiperstation for VTAM defaults to 0.01 seconds. Standard Wait values are used only when Application Profiling is enabled. – Maximum Wait specifies the amount of time for Hiperstation for VTAM to wait until it assumes the application has stalled. If Hiperstation for VTAM does not receive a response from the application in this interval, it terminates the application session. If no value is entered, the application stall timer defaults to 75 seconds. Maximum wait values are used only when Application Profiling is enabled. – Type Y or N for IMS Application. Y examines special IMS-like datastreams and uses those datastreams as an indication of more data coming from the application. This field is valid only if Application Profiling is disabled. N specifies that no special processes will be used. – Type 1 or 2 for KB Restore Action. 1 tells Hiperstation for VTAM to unlock the keyboard at the Domain Destination’s request. 1 is the default. 2 tells Hiperstation for VTAM to unlock the keyboard when the Domain Destination finishes sending data. KB Restore Action is used only if IMS Application is set to N and Application Profiling is disabled. 3. Press END to continue. You return to the Session Options screen. Communicate with the Domain Destination When you establish contact with the domain destination, the Domain Traveler entry screen appears. The domain that you log in to will determine what your screen looks like. The first three lines on the screen will look like those in Figure 3-6. The rest of the screen may look different. 3-6 Hiperstation for VTAM User Guide Figure 3-6. Domain Traveler Entry Screen in ISPF Mode ZOOM:F23 ------------------ HIPERSTATION ------------------------ LINE 1 OF 24 Command ===> Scroll ===> PAGE Record OFF Play OFF Journal OFF Compare Log OFF autoDoc OFF COMPUWARE SALES SUPPORT CICS REGION CICS41A BROADCAST SCREEN 07/06/07 08:56:36 ACTIVITY DATE ======== ======== NO MESSAGES TODAY START =EST= END =EST= REP/ACCOUNT ===================== PRODUCTS ======== In ISPF mode, this screen contains a session status area and a virtual terminal presentation space. In Zoom mode, the virtual terminal presentation space occupies the entire screen. See “Product Conventions” on page 1-7 to learn more about these display modes. Session Status Area The Session Status Area contains three lines: • Title and Message Area — The first line on the screen displays the zoom key designation, Hiperstation for VTAM screen title, and a short message area that provides session information, such as RECORDING IN PROGRESS. • Command Line — The second line is where you enter ISPF and Hiperstation for VTAM commands. • Status Line — The third line indicates the state of key Hiperstation for VTAM facilities. Here you see whether recording is on or off, if playback is active, and the status of the transaction journal, comparison log, and autoDoc. For example, when a mismatch occurs during playback, the status line shows the current display name and command names for viewing the Expected, Delta, and Differences screen, and instructions for resuming playback. The status line also shows the results of the Response Time Monitor. In Figure 3-7, the highlighted status line shows that the user is recording a script named CICSDEMO while also playing a recorded script named CICSDEMO. In addition, the journal is on and eight pages have been printed. The comparison log is active and nine pages have been recorded. AutoDoc is turned off. Figure 3-7. View the Domain Traveler Status Line ZOOM:PF23 -------------------------- Hiperstation --------------- LINE 1 OF 24 COMMAND ===> ENTER SCROLL ===> HALF RECORDING CICSDEMO PLAYING CICSDEM0 JOURNAL ON 0008 LOG ON 0009 autoDoc OFF CEMT I TRAN STATUS: RESULTS - OVERTYPE TO MODIFY Tran(AADD) Pri( 001 ) Ena Tran(ABRW) Pri( 001 ) Ena Tran(ADDS) Pri( 001 ) Ena + Tran(CCM F) Pri( 001 ) Ena Virtual Terminal Presentation Space The domain destination you contact works with Hiperstation for VTAM as a virtual terminal. When the domain destination sends data to the terminal, it appears in the virtual terminal presentation space. The virtual terminal presentation space begins on the line below the status line and normally ends on the last line of the screen. If the screen is split, it ends at the bottom of the ISPF window. Getting Started Note: 3-7 In ISPF mode, the session status information occupies the first three lines of the screen. You may have to scroll to see the bottom of your application screen or press the zoom key to see the entire screen. Figure 3-8 shows an actual Domain Traveler session that is connected to a CICS region. The CICS welcome message appears in the virtual terminal presentation space. Figure 3-8. Virtual Terminal Display ZOOM:F23 ------------------ HIPERSTATION ------------------------ LINE 1 OF 24 Command ===> Scroll ===> PAGE Record OFF Play OFF Journal OFF Compare Log OFF autoDoc OFF ***USR2312 WELCOME TO CICS/MVS *** 09:25:16 CCC CCCCC CC CC CC CC CC CC CCCCC CCC IIII II II II II II II IIII CCC CCCCC CC CC CC CC CC CC CCCCC CCC SSS SSSSS SS SS SS SS SS SS SSSSS SSS *** *** MMM MMM MMMM MMMM MM MMMM MM MM MM MM MM MM MM MM MM MM MMMM MMMM VVV VVV VV VV VV VV VV VV VV VV VV VV VVV V SSS SSSSS SS SS SS SS SS SS SSSSS SSS Hiperstation for VTAM passes the data you input in the virtual terminal presentation space to the domain destination when you press Enter or a mapped PF key, unless there is a command on the command line. ISPF and Hiperstation for VTAM commands take precedence. For more information on PF keys, see “Using PF Keys” on page 1-8. Cancel a Domain Traveler Session To cancel your Domain Traveler session and return to the Hiperstation * Domain Traveler screen, type CANCEL on the command line. From this screen, you can return to the Hiperstation Main Menu by entering END on the command line or pressing the END PF key. Note: Typing CANCEL will cancel your session, and anything you are recording will be lost. End the Session Ending a Hiperstation for VTAM session is like ending a session on a physical terminal. For example, the following procedure terminates a CICS session. 1. Clear the screen using the mapped <Clear> key (default is PF22) or by entering C on the command line. 2. Type the CICS transaction CSSF LOGOFF or CESF LOGOFF in the virtual terminal presentation space and press Enter. CICS responds with the message: CICS SIGNOFF IS COMPLETE. Note: Messages that would appear at the bottom of the domain destination screen may not be visible in ISPF mode. Scroll down to see the bottom of the screen. 3. Press Enter again to return to the Domain Traveler screen. 4. Enter END or press the END PF key to return to the Hiperstation Main Menu. 3-8 Hiperstation for VTAM User Guide 4-1 Chapter 4. Automated Testing Vehicle (ATV) Manager Chap 4 Introducing the ATV Manager An ATV, or vehicle, is a project environment that contains a number of individual test cases that collectively address a defined regression or performance testing requirement. By collecting the elements needed to accomplish a testing requirement into a vehicle it simplifies the management of that test project. The ATV Manager employs a test case centric approach to address the requirements of a test project. Individual test cases are defined to accomplish a single, well defined testing goal. The test case contains the information needed to achieve the stated testing goal, including data instantiation, environment setup, exercising the application being tested, and success or failure determination at the conclusion of test case execution. Utilizing this approach, a set of test cases are used to address a wider scope requirement than an individual test case. For example, three individual test cases for the following three requirements, 1) Test ISPF Browse of a PDS member, 2) Test ISPF Browse of a PDSE member, and 3) Test ISPF Browse of a sequential dataset, taken together address the wider scope requirement to test the ISPF Browse function. A project requirement for a complete regression or performance test for an application can be addressed using this paradigm. Running all of the test cases within a vehicle constitutes the full regression or performance test. The ATV Manager has the ability to distribute test run reports via email to a defined set of recipients. Individual test case failure notices can be sent to the person or persons tasked with maintaining the failing test case. This proactive information delivery can be used to initiate the problem resolution process as soon as possible. Care should be taken when defining the requirement scope to be addressed at the vehicle level. As the ATV Manager nomenclature suggests, a vehicle should be tasked with testing an application, though it is still up to the user to select the best scope. For example, you could consider a General Ledger an application, and Accounts Receivable as a function within the General Ledger application, or you could view Accounts Receivable as one application in your General Ledger system. Some considerations in defining the testing scope for your vehicles include: 1. Reusability of assets. All scripts and test assets, the building blocks for test cases, are shareable at the vehicle level. 2. Personnel using ATVs. Hiperstation’s facility for securing access to ATV data is done at the vehicle level. 3. Report distribution. Test activity reporting and report distribution is performed via test run requests that range in scope from an individual test case to a single vehicle. If separate test or development teams maintain different areas within an application, it could be desirable to use separate vehicles along the same delineation. 4. Your application development process. Entire vehicles can be cloned using the copy function. This is useful for setting up a new vehicle to test a new development version of an application. Changes to support the application under development can be applied to the new vehicle while leaving the old vehicle intact to continue testing the older, production version of the application. 4-2 Hiperstation for VTAM User Guide The ATV Manager provides a system in which you can compile the elements of your automated tests to organize and manage their use. The ATV Manager then reports on the execution of tests and can e-mail the reports to defined recipients. The ATV Manager will build, execute, and manage regression and performance automated test vehicles. The ATV Manager performs the following tasks: • Incorporate test assets and scripts within the ATV and control access to these elements. • Associate test assets including Hiperstation scripts to create test cases. • Execute tests by using the assets and scripts from the test cases. • Allow a single Pass/Fail condition to be determined for a test case. • Create test case groups to execute regression or performance testing of an element of the target application through a single request. • Execute all test cases within an ATV to perform complete regression or performance testing of the target application through a single request. • Collect the Pass/Fail condition for all test cases into a single test execution report. • Distribute the test execution report to e-mail addresses as specified for the test execution. • Allow viewing of individual test case reports. • Assist in script repair using the test execution results. • Assist in the dubbing of new scripts, when necessary, within the context of the test case. • Allow the duplication of an entire ATV to support multiple versions of a target application. • Allow for maintenance of test assets to keep them current. For complete details on how to use the ATV Manager, see the Hiperstation Automated Testing Vehicle (ATV) Manager User Guide. 5-1 Chapter 5. Online Testing of 3270 Applications Chap 5 This chapter documents Hiperstation for VTAM’s 3270 terminal-based application testing functions. See Chapter 7, “Unattended Playback, Dubbing, and Comparison for 3270 and LU0 Scripts” for LU0 testing information. With Hiperstation for VTAM, you can record and play back scripts for regression, unit, or stress testing. In all, you can record, play back, compare, mask, dub, and edit scripts. Getting Started 1. Start at the Hiperstation for VTAM Main Menu. Select option 1 Domain Traveler. 2. Enter the name of the domain destination you intend to contact for this session. From this screen, you can go to the Session Options screen and change options such as PF key mapping. For more information, see “Change Session Options” on page 3-3 and “PF Key Mapping” on page 1-8. 3. Continue with the next section to record a script. Recording Scripts This section presents a sample session where the IBM-supplied CICS BROWSE transaction CEBR is recorded. Set Up Recording You can begin a recording any time after you establish communication with a domain destination. 1. Type RECORD on the Command line and press Enter (Figure 5-1). Figure 5-1. Domain Traveler Destination Entry Screen ZOOM:F23 ------------------ HIPERSTATION ------------------------ LINE 1 OF 24 Command ===> record Scroll ===> PAGE Record OFF Play OFF Journal OFF Compare Log OFF autoDoc OFF COMPUWARE SALES SUPPORT CICS REGION CICS41A BROADCAST SCREEN 07/06/07 08:56:36 ACTIVITY DATE ======== ======== NO MESSAGES TODAY START =EST= END =EST= REP/ACCOUNT ===================== The Hiperstation * Recording Setup screen appears (Figure 5-2). PRODUCTS ======== 5-2 Hiperstation for VTAM User Guide Figure 5-2. Recording Setup Screen ------------------------ Hiperstation * Recording Setup ----------------------- Command ===> Recording File Name: Project . . . . HPER Group . . . . . RECBIG Type . . . . . DATA6 Member . . . . REC1 (Blank or pattern for member selection list) Other Dsn . . . Description . . DEMONSTRATE RECORDING IN (ROW,COL) FORMAT Recording Options: Enter "/" to select option Replace Like Member(s) / Format Recording Record Inputs Only Stop Recording / Script Recovery / Input fields in (row,column) format Press ENTER to begin recording, END to cancel setup. 2. Type a Recording File Name (also referred to as the Script Dataset Name). – Enter an existing dataset name in the Project, Group, and Type fields. If you have not already allocated a script dataset, you can do so from this screen. See “Allocating Before Using Hiperstation for VTAM” on page 2-1 for more information. – Type a one- to eight-character dataset Member name of the script to be recorded. If the member name is left blank or a pattern member name is entered, an ISPF member selection list appears. Note: If a script dataset name does not conform to ISPF naming standards, enter it in the Other Dsn field, including the member name. 3. Select from the list of Recording Options (type a slash (/) to select an option): – Replace Like Member(s) — Replace an existing member with the one you are about to create. – Format Recording — Record the session as a normal Hiperstation script. Leave blank, for debugging purposes, to record the session as a series of hexadecimal data streams. – Record Inputs Only — Record only your input keystrokes. Use this option for stress testing the script where screen comparisons are unnecessary. Leave blank to record both your input keystrokes and the output screen images. – Stop Recording — Halt any recording activity. – Script Recovery — Allows you to allocate a file to store compressed screen images during a recording session so you can continue recording if you run out of memory or re-create the script if an abend occurs. For more information, see “Recovering Recordings that Ended in Error” on page 2-3. – Input fields in (row,column) format — Record input fields in the format <I(row,col)>"data" instead of the default format <Inn>"data". Recording Process After typing the script dataset name (HPER.RECBIG.DATA6) and member (REC1) on the Recording Setup screen (Figure 5-2 on page 5-2), press Enter to return to the Domain Traveler entry screen (Figure 5-3). If you have not already allocated your dataset, the Allocate Dataset screen will appear. Press Enter to continue. Notice that the message area Online Testing of 3270 Applications 5-3 (in the upper right corner of the screen) contains the message RECORDING IN PROGRESS. The status line (immediately below the Command line) also shows that recording is active. Figure 5-3. Recording Process, Screen 1 ZOOM:F23 ------------------ HIPERSTATION --------------- RECORDING IN PROGRESS Command ===> Scroll ===> PAGE Recording REC1 Play OFF Journal OFF Compare Log OFF autoDoc OFF COMPUWARE SALES SUPPORT CICS REGION CICS41A BROADCAST SCREEN 07/06/07 08:56:36 ACTIVITY DATE ======== ======== NO MESSAGES TODAY START =EST= END =EST= REP/ACCOUNT ===================== PRODUCTS ======== 1. On the Command line, type CLEAR and press Enter. The screen clears. Note: Depending on the application you are recording, a logon screen may appear. If so, type your user ID and password and press Enter. Figure 5-4. Recording Process, Screen 2 ZOOM:F23 ------------------ HIPERSTATION ------------------------ LINE 1 OF 24 Command ===> Scroll ===> PAGE Recording REC1 Play OFF Journal OFF Compare Log OFF autoDoc OFF CEBR 2. To begin the CICS transaction, type CEBR in the virtual terminal area (Figure 5-4). Press Enter. The CICS BROWSE screen appears (Figure 5-5). Figure 5-5. Recording Process, Screen 3 ZOOM:F23 ------------------ HIPERSTATION ------------------------ LINE 1 OF 24 Command ===> Scroll ===> PAGE Recording REC1 Play OFF Journal OFF Compare Log OFF autoDoc OFF CEBR TSQ CEBR0001 SYSID C054 REC 1 OF 0 COL 1 OF 0 ENTER COMMAND ===> ************************** TOP OF QUEUE ******************************* ************************* BOTTOM OF QUEUE ***************************** TS QUEUE CEBR0001 DOES NOT EXIST PF1 : HELP PF2 : SWITCH HEX/CHAR PF3 : TERMINATE BROWSE 3. Press PF1 to get help data about CICS BROWSE (Figure 5-6). 5-4 Hiperstation for VTAM User Guide Figure 5-6. Recording Process, Screen 4 ZOOM:F23 ------------------ HIPERSTATION ------------------------ LINE 1 OF 24 Command ===> Scroll ===> PAGE Recording REC1 Play OFF Journal OFF Compare Log OFF autoDoc OFF CEBR TSQ CEBR0001 SYSID C054 REC 1 OF 0 COL 1 OF 0 ENTER COMMAND ===> These commands are available to you (abbreviations in UPPER CASE): Find /string/ - Keyword optional. Final delimiter optional if string has no blanks. Any other delimiter is OK. Line line-number Column column-number Top Bottom TERMinal terminal-id - Browse temp. storage queue for another terminal. Queue temp-stg-queue - Browse a named temp. storage queue (name may be in hex - e.g., X'C134') Sysid shared/remote sysid - Browse shared or remote temp. storage queue. Put transient-data-queue - Copy current queue into a transient data queue. Get transient-data-queue - Fetch a transient data queue for browsing. PURGE - Destroy the current queue. ************************** TOP OF QUEUE ******************************* ************************* BOTTOM OF QUEUE ***************************** TS QUEUE CEBR0001 DOES NOT EXIST PF1 : HELP PF2 : SWITCH HEX/CHAR PF3 : TERMINATE BROWSE 4. Press END to end the CICS BROWSE session. CICS BROWSE indicates that it ended normally with this message below the status line: BROWSE HAS ENDED NORMALLY. READY FOR NEXT TRANSACTION: 5. Type STOP on the Command line and press Enter to stop recording. The status line indicates recording status is OFF (Figure 5-7). This ends the recording session. Figure 5-7. Recording Process, Screen 5 ZOOM:F23 ------------------ HIPERSTATION ------------------- RECORDING STOPPED Command ===> Scroll ===> PAGE Record OFF Play OFF Journal OFF Compare Log OFF autoDoc OFF BROWSE HAS ENDED NORMALLY. READY FOR NEXT TRANSACTION: Cancel a Recording To end a recording without saving the script, type RECORD CAN on the Command line and press Enter. The Status line indicates that recording is off, and a message stating that the recording has been canceled appears in the upper right corner of the screen. Recording Function Commands RECOVER Saves the session to use when running a recover job. The script is stored in memory and in a temporary file during the recording time. For more information, see “Recovering Recordings that Ended in Error” on page 2-3. Record Creates a script. Used without any operands, it displays the Recording Setup screen. Valid operators are: CAN — Recording is terminated and the script is discarded. OFF — Recording is terminated, but the script is saved in the script dataset. STop Halts recording. Online Testing of 3270 Applications 5-5 RTM Displays the following information across the top of the screen: RESPONSE TIME — The amount of time it took for the application to respond to the input. THINK TIME — The amount of time it took from the last application response to the next input. ELAPSED TIME — The amount of time that has elapsed since the Domain Traveler session was initiated or since the ETIME command was issued. To refresh the values, put the cursor on the Command line while the RTM information is displayed and press Enter. ETIME Resets the elapsed time counter to zero and reports the elapsed time values in the playback log. Use this command to determine how long it takes to complete a specific transaction. This command is not available when doing explicit or implicit dubbing. NOTes Displays a notepad where you can enter script information to be saved with the script. Playing Back Scripts Playing back a recorded script is as simple as typing PLAY on the Command line, validating the dataset name, and pressing Enter. Before you begin, review the following considerations: • IMPORTANT — Start playback at the same place as the recording. For example, in CICS, if recording started on a clear screen, start playback on a clear screen. • The ISPF End key is disabled during Domain Traveler sessions. • Do not change input data during playback or unusual conditions or abends may occur. To continue with the example session from the previous section, we will play back the recording named REC1. Note: You can also play back using batch processing or the Quick Play option. See Chapter 7, “Unattended Playback, Dubbing, and Comparison for 3270 and LU0 Scripts” or Chapter 8, “Quick Play — Select a Script and Go” for more information. Playback Setup 1. To begin a playback session, type PLAY on the command line (Figure 5-8), and press Enter. Figure 5-8. Enter the PLAY Command ZOOM:F23 ------------------ HIPERSTATION ------------------------ LINE 1 OF 24 Command ===> play Scroll ===> PAGE Record OFF Play OFF Journal OFF Compare Log OFF autoDoc OFF BROWSE HAS ENDED NORMALLY. READY FOR NEXT TRANSACTION: 5-6 Hiperstation for VTAM User Guide The Play Setup screen appears (Figure 5-9). Use this screen to choose options to control playback sessions. Figure 5-9. Play Setup Screen Hiperstation---------------------- Play Setup -------------------------------- Command ===> _________________________________________________________________ Recording File Name: Project . . . . . . HPER____ Group . . . . . . . RECBIG__ Type . . . . . . . DATA6_ Member . . . . . . REC1 (Blank or pattern for member selection list) Other DSN . . . . . _________________________________________________________ (1 to 999) Repetition Count . . 1 (Yes, No, Resume) Zoom Mode . . . . . N Dubbing . . . . . . N (Yes, No, Change Only) Playback Options: Enter "/" to select option _ Alter Play/Think Time Option(s) Current Values: Interactive _ Alter Comparison Option(s) Current Values: AllChecks,Actual,MskDub,MskCmp _ Suppress Play Screen(s) _ Stop Play 2. Type a Recording File Name (also referred to as the Script Dataset Name). – Enter an existing dataset name in the Project, Group, and Type fields. If you have not already allocated a script dataset, you can do so from this screen. See “Allocating Before Using Hiperstation for VTAM” on page 2-1 for more information. – Type a one- to eight-character dataset Member name of the script to be recorded. If the member name is left blank or a pattern member name is entered, an ISPF member selection list appears. Note: If a script dataset name does not conform to ISPF naming standards, enter it in the Other Dsn field, including the member name. 3. Repetition Count repeats script playback n times. Enter a number between 1 and 999. 4. Select a Zoom Mode. Y plays back in zoom mode. N plays back in ISPF mode. R plays back in zoom mode and then returns to ISPF mode when the script completes or when a mismatch occurs. When playback resumes after a mismatch, it resumes in zoom mode. 5. Make a Dubbing selection. Y creates a new version of the original script. N does not create a new script. C creates a new script only if a comparison check occurs during playback of the original script. See “Explicit Dubbing” on page 5-22 and “Implicit Dubbing” on page 5-26 for more information on the Y and C options. 6. Select from the list of Playback Options. The Current Values column shows the current setting for each option. Enter a slash (/) next to the desired options. – Alter Play/Think Time Option(s) — Display the Play/Think Time Options screen shown in Figure 5-10 on page 5-7. For more information, see “Play and Think Time” on page 5-7. – Alter Comparison Option(s) — Display the Comparison Options screen shown in Figure 5-17 on page 5-12. For more information, see “Comparing Scripts” on page 5-11. Online Testing of 3270 Applications 5-7 – Suppress Play Screen(s) — Select if, during a non-stop playback, you do not want the screens from the domain destination to appear on your physical terminal. This field works in conjunction with think time options 2, 3, and 4. – Stop Play — Halt any current playback activity. 7. After making your selections, press Enter. Play and Think Time When you type a slash (/) next to Alter Play/Think Time Option(s) on the Play Setup screen and press Enter, the Play/Think Time Options screen appears (Figure 5-10). Figure 5-10. Play/Think Time Options Screen --------------------Command ===> HIPERSTATION * Play/Think Time Options ----------------- Please select an option: 1 1 Play interactively 2 Play at full speed 3 Play at think time recorded on script 4 Play at user specified think time If you have selected options 3 or 4, you may alter the rate of the playback by altering the Think Time (For option 4 only) or the percentage. Think Time (in seconds and hundredths) . . . 01 50 Percentage . . . . . . . . . . . . . . . . . 100 1. Select a playback option. You can select one of four options for interactive or nonstop playback modes on this screen. Option 1 is for interactive playback. Options 2, 3, and 4 are for non-stop playback. 1 — Play back interactively. The script stops and requires user intervention before sending each transaction’s data. 2 — Play back at full speed. Hiperstation for VTAM plays the transactions as quickly as the system can run them. 3 — Play back at the think time recorded on the script. 4 — Play back at the think time specified in the Time field. 2. If you selected option 4, you need to specify the Think Time value for each transaction. Time can be specified in seconds (ss), tenths (t) of a second, and hundredths (h) of a second. For example, 00 75 specifies 3/4 of a second think time. 3. If you selected option 3 or 4, you can apply a percentage figure to the think time. For example, to play back a script with half the original think time, select option 3 and type 50 in this field. 4. After making your selections, press Enter to continue. You will return to the Play Setup screen. Playback Continuing with the REC1 test script, when you return from the Play Setup screen, the Domain Traveler Entry screen appears (Figure 5-11). Note that the status line indicates that you are playing REC1. In this demonstration, you are playing back in interactive mode. In this mode, Hiperstation for VTAM stops and shows each screen before sending it to the domain destination. 5-8 Hiperstation for VTAM User Guide Figure 5-11. Playback, Screen 1 ZOOM:PF23 ---------------------- Hiperstation ------------------- LINE 1 OF 24 COMMAND ===> CLEAR SCROLL ===> HALF Record OFF Playing REC1 Journal OFF Compare Log OFF autoDoc OFF BROWSE HAS ENDED NORMALLY. READY FOR NEXT TRANSACTION: 1. Type CLEAR on the Command line and press Enter. The screen clears and Hiperstation for VTAM fills in the CEBR transaction ID (Figure 5-12). Figure 5-12. Playback, Screen 2 ZOOM:PF23 ---------------------- Hiperstation ------------------- LINE 1 OF 24 COMMAND ===> ENTER SCROLL ===> HALF Record OFF Playing REC1 Journal OFF Compare Log OFF autoDoc OFF CEBR 2. Type ENTER on the Command line and press Enter. The CICS BROWSE screen appears (Figure 5-13). The simulated PF key is the Enter key. Figure 5-13. Playback, Screen 3 ZOOM:F23 ------------------ HIPERSTATION ------------------------ LINE 1 OF 24 Command ===> Scroll ===> PAGE Record OFF Play OFF Journal OFF Compare Log OFF autoDoc OFF CEBR TSQ CEBR0001 SYSID C054 REC 1 OF 0 COL 1 OF 0 ENTER COMMAND ===> ************************** TOP OF QUEUE ******************************* ************************* BOTTOM OF QUEUE ***************************** TS QUEUE CEBR0001 DOES NOT EXIST PF1 : HELP PF2 : SWITCH HEX/CHAR PF3 : TERMINATE BROWSE 3. This time, PF1 is the simulated PF key. Type PF1 and press Enter. Figure 5-14 shows that the CICS help data appeared because you sent a PF1 to CICS. Online Testing of 3270 Applications 5-9 Figure 5-14. Playback, Screen 4 ZOOM:F23 ------------------ HIPERSTATION ------------------------ LINE 1 OF 24 Command ===> PF3 Scroll ===> PAGE Record OFF Play OFF Journal OFF Compare Log OFF autoDoc OFF CEBR TSQ CEBR0001 SYSID C054 REC 1 OF 0 COL 1 OF 0 ENTER COMMAND ===> These commands are available to you (abbreviations in UPPER CASE): Find /string/ - Keyword optional. Final delimiter optional if string has no blanks. Any other delimiter is OK. Line line-number Column column-number Top Bottom TERMinal terminal-id - Browse temp. storage queue for another terminal. Queue temp-stg-queue - Browse a named temp. storage queue (name may be in hex - e.g., X'C134') Sysid shared/remote sysid - Browse shared or remote temp. storage queue. Put transient-data-queue - Copy current queue into a transient data queue. Get transient-data-queue - Fetch a transient data queue for browsing. PURGE - Destroy the current queue. ************************** TOP OF QUEUE ******************************* ************************* BOTTOM OF QUEUE ***************************** TS QUEUE CEBR0001 DOES NOT EXIST PF1 : HELP PF2 : SWITCH HEX/CHAR PF3 : TERMINATE BROWSE 4. This time, the simulated PF key is PF3 to end the BROWSE session. Type PF3 and press Enter. Figure 5-15 shows that BROWSE ended normally, just as it did when the recording was made. The message shows that the REC1 playback has finished and the status line also shows Play OFF. Figure 5-15. Playback, Screen 5 ZOOM:F23 ------------------ HIPERSTATION ------------------------ LINE 1 OF 24 Command ===> Scroll ===> PAGE Record OFF Play OFF Journal OFF Compare Log OFF autoDoc OFF BROWSE HAS ENDED NORMALLY. READY FOR NEXT TRANSACTION: Playback Modes Hiperstation for VTAM can rerun scripts in two online modes as specified on the Play/Think Time Options screen (Figure 5-10 on page 5-7). The two modes are interactive (option 1) and non-stop (options 2, 3, 4). Choose playback mode by typing a slash (/) next to the desired option on the Play/Think Time Options screen and pressing Enter. Interactive Playback Interactive mode stops at each screen to let you review the input and output data. In interactive mode, input data can be changed allowing you to modify playback activity without having to re-record the script. Press Enter to continue playback. Non-Stop Playback Non-stop mode shows each screen as it occurs in the script. The keyboard locks, so you cannot input data. If a mismatch occurs, playback stops. When playback resumes, it continues in non-stop mode. To break out of non-stop mode, enter the Attention command or press PA1, depending on the type of controller attached to your terminal. This puts playback in interactive mode. 5-10 Hiperstation for VTAM User Guide To go back to non-stop mode, type PLAY on the Command line, press Enter, and then change the think time option on the Play Setup screen to option 2, 3, or 4. Play/think time options are described on page 5-7. Press Enter and playback resumes in non-stop mode. Screen Suppression When you play back a script in non-stop mode, you can suppress showing the domain destination’s actual screens on your physical terminal unless a mismatch occurs. This feature eliminates the overhead incurred by mapping the screens from the virtual terminal to your physical terminal. To select screen suppression, type a slash (/) next to the Suppress Play Screen(s) field on the Play Setup screen and press Enter. Terminate Playback You can stop or interrupt playback in several ways: • To stop playback at any time, type PLAY OFF on the Command line and press Enter. The status line indicates that playback is OFF. Any activated Hiperstation for VTAM journal, auto documentation, or comparison logs continue to update. However, page numbers on the status line do not reflect this activity until the script is finished and screen suppression automatically resets. • Type STOP on the Command line and press Enter. STOP terminates both playback and record. • To interrupt non-stop and screen suppression modes, press the Attention or PA1 key, depending on the type of controller attached to your terminal. The current screen from the domain destination appears on your terminal while display and playback continue in interactive mode. • Type PAUSE on the Command line and press Enter. This allows you to enter an unlimited number of transactions to correct any potential problems. To continue playback, type RESUME on the Command line and press Enter. You do not have to restart from the beginning of the script, which may require restoring files/databases. For example, if you do not restore record script data before playback, a mismatch occurs causing all or a portion of the script to be out of sequence. You can then pause the script, add or restore the data, reposition the script at the proper input, and issue the RESUME command to continue processing. Playback Function Commands PAuse Temporarily interrupts a playback in interactive mode. Play Initiates script playback. While an interactive playback is in process, you can also reenter the PLAY command to display the Hiperstation for VTAM Play Setup screen and change the play mode to full-speed. OFF terminates script playback. RESume Restarts a paused playback. SKIP SKIP has two functions depending on which screen you are on. If you are on an interactive playback screen, SKIP: 1. Discards the current input (on the screen) Online Testing of 3270 Applications 5-11 2. Ignores the next output 3. Fills in the screen with the next input If you are on a miscompare screen, SKIP: 1. Discards the current output screen (the current expected screen) 2. Ignores the next input 3. Retrieves the next output screen 4. Compares it to the actual screen 5. Reacts to the compare normally To continue after using SKIP on a miscompare screen, type GO on the Command line and press Enter. STop Halts playback. XMask Resets all masks that Hiperstation for VTAM has stored in its mask buffer. When you perform multiple consecutive online sessions, the XMASK command eliminates the need to manually reset masks that do not apply to the next session. RTM Displays the following information across the top of the screen: RESPONSE TIME — The amount of time it took for the application to respond to the input. THINK TIME — The amount of time it took from the last application response to the next input. ELAPSED TIME — The amount of time that has elapsed since the Domain Traveler session was initiated or since the ETIME command was issued. To refresh the values, put the cursor on the Command line while the RTM information is displayed and press Enter. ETIME Resets the elapsed time counter to zero, and reports the elapsed time values in the playback log. Use this command to determine how long it takes to complete a specific transaction. This command is not available when doing explicit or implicit dubbing. NOTes Displays a notepad where you can enter script information to be saved with the script. Comparing Scripts A mismatch occurs when an output screen from the domain destination does not exactly match the expected screen (the screen image contained in the script). When a mismatch occurs during playback, a mismatch message appears and the status line changes to show that a mismatch condition exists. The screen also shows the available commands that enable you to examine the mismatch or proceed with playback. Note: You can also perform comparisons using batch processing. See Chapter 7, “Unattended Playback, Dubbing, and Comparison for 3270 and LU0 Scripts” for information. 5-12 Hiperstation for VTAM User Guide Figure 5-16. Comparison Mismatch Screen ZOOM:PF23 ---------------------- Hiperstation ------------------- LINE 1 OF 24 COMMAND ===> SCROLL ===> HALF SCRN# 0000001 IS: ACTUAL , COMMANDS: ACTUAL, DELTA, DIFFER, EXPECTED, GO, MASK I TER STATUS: RESULTS - OVERTYPE TO MODIFY Ter(CERR) Pri( 000 ) Pag Ins Tti Ter(C001) Pri( 000 ) Pag Ins Tti Ter(C002) Pri( 000 ) Pag Ins Tti Ter(C003) Pri( 000 ) Pag Ins Tti Ter(C004) Pri( 000 ) Pag Ins Tti Ter(C005) Pri( 000 ) Pag Ins Tti Ter(C006) Pri( 000 ) Pag Ins Tti Ter(C007) Pri( 000 ) Pag Ins Tti Ter(C008) Pri( 000 ) Pag Ins Tti Ter(C009) Pri( 000 ) Pag Ins Tti Ter(C010) Pri( 000 ) Pag Ins Tti Ter(C011) Pri( 000 ) Pag Ins Tti Ter(C012) Pri( 000 ) Pag Ins Tti Ter(C013) Pri( 000 ) Pag Ins Tti Ter(C014) Pri( 000 ) Pag Ins Tti Ter(C015) Pri( 000 ) Pag Ins Tti + Ter(DBC1) Pri( 000 ) Pag Ins Ati Tti Net(DBCS0001) Rel Before you begin a playback, Hiperstation for VTAM offers the following techniques for eliminating trivial or known differences in the expected and actual screen images. Set Comparison Options 1. From the Domain Traveler screen, type your Domain Destination and press Enter. 2. After you establish a destination, type PLAY on the Command line. 3. The Play Setup screen appears. 4. Type a slash (/) next to Alter Comparison Option(s) and press Enter. The Comparison Options screen appears (Figure 5-17). Figure 5-17. Comparison Options Screen --------------------Command ===> HIPERSTATION * Comparison Options --------------------- Please select an option: 1 1. Stop on any compare check 2. Stop on alpha character differences 3. Stop only on field number mismatches 4. Ignore all compare differences Initial mismatch . . . ACTUAL (ACTUAL,DIFFER,DELTA) Compare Processing Options (Enter "/" to select): Ignore numeric differences Compare Last Image Only / Dub encrypted masks as character masks / Use encrypted masks during Compare Identify outputs whose compare processing should be bypassed: 5. Select one of the four options to specify what constitutes a mismatch: 1 — Stop on any compare check. If the character on the received screen does not match any character on the recorded screen, the number of fields on the received screen does not match, or an attribute byte does not match, a mismatch occurs. 2 — Stop on alpha character differences. A mismatch occurs only if there are one or more alphanumeric character differences between the received and expected screens. Use this option to ignore differences in screen attribute bytes. Online Testing of 3270 Applications 5-13 3 — Stop only on field number mismatches. A mismatch occurs only if there is a difference in the number of fields on the received and expected screens. 4 — Ignore all comparison differences during playback. Playback does not stop or display mismatch screens. However, differences are noted in the Compare Log or Exception Log if you chose to generate a log. 6. Specify ACTUAL, DELTA, or DIFFER in the Initial mismatch field. This sets the initial screen that appears when a mismatch occurs. Valid entries are ACTUAL — Displays the contents of the buffer that Hiperstation received from the application. DELTA — Displays an overlay of the positions that are different from the actual screen versus the expected screen. DIFFER — Displays an overlay of the differences between the actual screen versus the expected screen. This overlay is on top on the ACTUAL screen. 7. Type a slash (/) to select the desired Compare Processing Options: – Ignore numeric differences causes Hiperstation to consider the following conditions as equal (matching): • Actual character and expected character are both numeric. • Actual character is numeric and the expected character is blank or null. • Actual character is blank or null and the expected character is numeric. All other conditions are mismatches. – Compare Last Image Only compares the scripted screen image and the screen image received from the application only after the application has sent all data required to build the final screen. For example, many applications send a map filled with data followed by a map containing only a message. Enter a slash (/) in this field to eliminate comparison of the first data only map but to allow comparison when the full screen image is built from both the data and the message maps. – Dub encrypted masks as character masks dubs encrypted masks (<MSK>NNN tags) in the script being played back to the new script as both encrypted masks and as an additional record of “I” character masks. Deselect this field to prevent additional character masks from being added to your dubbed script. – Use encrypted masks during Compare. During comparison, encrypted masks (<MSK>NNN tags) are in effect and prevent miscompares on dark fields. Deselect this option to disable encrypted masks and allow identification of miscompares within dark fields. Note: Deselecting this option does not cause data within dark fields to appear on Actual/Expected screens. This option affects only encrypted masks. All other forms of masking are still valid and in effect for dark fields. 8. Identify outputs whose compare processing should be bypassed. Enter a range of <OUTPUT> groups for which you want to bypass compare processing. The groups within this range are not compared. For example, entering the range 1-2, 6, and 77 bypasses compare processing for <OUTPUT> groups 0000001, 0000002, 0000006, and 0000077. 9. After you have set all of the playback options, press Enter to process. Playback begins, and mismatches are handled according to the options you set. When a Mismatch Occurs When a mismatch occurs during playback, you have several options. 5-14 Hiperstation for VTAM User Guide Ignore and Continue Playback Type GO on the Command line and press Enter. The script continues. Pause Playback and Fix Mismatch Type PAUSE on the Command line and press Enter. The script halts allowing you to correct the mismatch. After the mismatch is corrected, type RESUME on the Command line and press Enter to continue playback. Ignore Mismatches during Playback Setup Hiperstation for VTAM considers any character differences between the received and expected screens to be a mismatch. During playback setup, options are available to bypass all or specific types of mismatches (see “Set Comparison Options” on page 5-12). If the options you select limit some or all of what Hiperstation considers a mismatch, then Hiperstation will not register a mismatch and will not stop if these differences occur. For example, you can choose that differences in numeric fields do not constitute a mismatch. This is most useful when fields on the screen contain time of day, current date, or real-time system data such as CICS task IDs, or performance data such as the number of terminals online. Analyze the Mismatch Depending on the value you set in the Initial Mismatch field on the Comparison Options screen, Hiperstation for VTAM shows each mismatch on the Actual, Delta, or Differences screen. The default initial screen is the Actual screen. After analyzing the mismatch, you can redisplay the Actual screen by typing Actual on the Command line and pressing Enter. The screen from the domain destination appears (Figure 5-18). Figure 5-18. Actual Screen ZOOM:PF23 ---------------------- Hiperstation ------------------- LINE 1 OF 24 COMMAND ===> SCROLL ===> HALF SCREEN# 0000001 IS: ACTUAL , COMMANDS: ACTUAL, DELTA, DIFFER, EXPECTED, GO I TER STATUS: RESULTS - OVERTYPE TO MODIFY Ter(CERR) Pri( 000 ) Pag Ins Tti Ter(C001) Pri( 000 ) Pag Ins Tti Ter(C002) Pri( 000 ) Pag Ins Tti Ter(C003) Pri( 000 ) Pag Ins Tti Ter(C004) Pri( 000 ) Pag Ins Tti Ter(C005) Pri( 000 ) Pag Ins Tti Ter(C006) Pri( 000 ) Pag Ins Tti Ter(C007) Pri( 000 ) Pag Ins Tti Ter(C008) Pri( 000 ) Pag Ins Tti Ter(C009) Pri( 000 ) Pag Ins Tti Ter(C010) Pri( 000 ) Pag Ins Tti Ter(C011) Pri( 000 ) Pag Ins Tti Ter(C012) Pri( 000 ) Pag Ins Tti Ter(C013) Pri( 000 ) Pag Ins Tti Ter(C014) Pri( 000 ) Pag Ins Tti Ter(C015) Pri( 000 ) Pag Ins Tti + Ter(DBC1) Pri( 000 ) Pag Ins Ati Tti Net(DBCS0001) Rel Showing Mismatches on the Delta Screen The Delta command shows the differences between actual and expected screens. Hiperstation for VTAM shows the differences by highlighting the characters on the screen that are different. All other characters are in low intensity (Figure 5-19). Note: The character immediately before and immediately after the changed text is blank. This is a result of highlighting the changed text and does not imply that these characters are missing on the expected screen. Online Testing of 3270 Applications 5-15 Figure 5-19. Delta Screen ZOOM:PF23 ---------------------- Hiperstation ------------------- LINE 1 OF 24 COMMAND ===> SCROLL ===> HALF SCREEN# 0000001 IS: DELTA , COMMANDS: ACTUAL, DELTA, DIFFER, EXPECTED, GO I TER STATUS: RESULTS - OVERTYPE TO MODIFY Ter(CERR) Pri( 000 ) Pag Ins Tti Ter(C001) Pri( 000 ) Pag Ins Tti Ter(C002) Pri( 000 ) Pag Ins Tti Ter(C003) Pri( 000 ) Pag Ins Tti Ter(C004) Pri( 000 ) Pag Ins Tti Ter(C005) Pri( 000 ) Pag Ins Tti Ter(C006) Pri( 000 ) Pag Ins Tti Ter(C007) Pri( 000 ) Pag Ins Tti Ter(C008) Pri( 000 ) Pag Ins Tti Ter(C009) Pri( 000 ) Pag Ins Tti Ter(C010) Pri( 000 ) Pag Ins Tti Ter(C011) Pri( 000 ) Pag Ins Tti Ter(C012) Pri( 000 ) Pag Ins Tti Ter(C013) Pri( 000 ) Pag Ins Tti Ter(C014) Pri( 000 ) Pag Ins Tti Ter DBC1 Pri( 000 ) Pag Ins Tti + Ter(DB 2 Pri( 000 ) Pag Ins Ati Tti Net(DBCS0001) Rel Showing Mismatches on the Differences Screen The DIffer command, like the Delta command, shows differences between actual and expected screens. Differences are shown by clearing the virtual terminal presentation space and placing an X in each position where characters differed (Figure 5-20). The Differences screen is particularly useful when an attribute character has changed, or a character has changed into a blank or null. Figure 5-20. Differences Screen ZOOM:PF23 ---------------------- Hiperstation ------------------- LINE 1 OF 24 COMMAND ===> SCROLL ===> HALF SCREEN# 0000001 IS: DIFFERENCES, COMMANDS: ACTUAL, DELTA, DIFFER, EXPECTED, GO XXXX X Showing the Expected Screen The Expected primary command shows the screen that was recorded — the screen you expected (Figure 5-21). 5-16 Hiperstation for VTAM User Guide Figure 5-21. Expected Screen ZOOM:PF23 ---------------------- Hiperstation ------------------- LINE 1 OF 24 COMMAND ===> SCROLL ===> HALF SCREEN# 0000001 IS: EXPECTED , COMMANDS: ACTUAL, DELTA, DIFFER, EXPECTED, GO I TER STATUS: RESULTS - OVERTYPE TO MODIFY Ter(CERR) Pri( 000 ) Pag Ins Tti Ter(C001) Pri( 000 ) Pag Ins Tti Ter(C002) Pri( 000 ) Pag Ins Tti Ter(C003) Pri( 000 ) Pag Ins Tti Ter(C004) Pri( 000 ) Pag Ins Tti Ter(C005) Pri( 000 ) Pag Ins Tti Ter(C006) Pri( 000 ) Pag Ins Tti Ter(C007) Pri( 000 ) Pag Ins Tti Ter(C008) Pri( 000 ) Pag Ins Tti Ter(C009) Pri( 000 ) Pag Ins Tti Ter(C010) Pri( 000 ) Pag Ins Tti Ter(C011) Pri( 000 ) Pag Ins Tti Ter(C012) Pri( 000 ) Pag Ins Tti Ter(C013) Pri( 000 ) Pag Ins Tti Ter(C014) Pri( 000 ) Pag Ins Tti Ter(DBC1) Pri( 000 ) Pag Ins Tti + Ter(DBC2) Pri( 000 ) Pag Ins Ati Tti Net(DBCS0001) Rel Masking Script Information Masking ignores specific areas of the screen when performing comparisons. Masks can be put directly into a formatted script using ISPF Edit or indirectly using the online masking command. If you enter a mask, it stays in effect until you enter the XMASK command or exit Hiperstation for VTAM. There are two basic mask types: • Row masks are characters inserted into a formatted script to mask an entire screen row or selected columns within the row. • Generic masks use a parsed string allowing you to make conditional masking decisions based on screen content. You can put generic masks within a formatted script. Masking is not available for unformatted scripts. Using Row Masks Since Hiperstation for VTAM scripts are stored in a dataset, you can use the ISPF editor to put row masks in a script. As mentioned above, the row masks are simply characters placed within the OUTPUT section of a script. The characters and their meaning appear below: Option Description I Do not compare at this position on this screen. G Do not compare at this position on this and all subsequent screens. X Reset any global ignore masks in this screen row. To illustrate masking, edit the script named REC1 that you created in “Recording Scripts” on page 5-1 by placing masks on the CICS Welcome screen. The script of the recorded welcome screen is shown from ISPF edit (Figure 5-22). Online Testing of 3270 Applications 5-17 Notice that the welcome screen contains a message with the time of day. This time is different each time you play back this script. You have two row masking options available to mask the time field: 1. Mask the entire line. 2. Mask the individual characters or hexadecimal codes. Figure 5-22. CICS REC1 Script Before Masking EDIT ---- HPER.RECBIG.DATA6(REC1) - 00.02 ------------------- COLUMNS 001 072 COMMAND ===> SCROLL ===> CSR 000005 <VERSION>5 000006 <OUTPUT>0000001 000007 <RESPONSE>00.00.002 000008 <S01> ***USR2312 WELCOME TO CICS/MVS *** 10:11:42 000009 <S02> 000010 <S03> 000011 <S04> 000016 <S05> CCC IIII CCC SSS MMM MMM VVV VVV 000017 <S06> CCCCC II CCCCC SSSSS MMMM MMMM VV VV 000018 <S07> CC CC II CC CC SS SS MM MMMM MM VV VV 000019 <S08> CC II CC SS *** MM MM MM VV VV 000020 <S09> CC II CC SS *** MM MM VV VV 000021 <S10> CC CC II CC CC SS SS MM MM VV VV 000022 <S11> CCCCC II CCCCC SSSSS MM MM VVV 000023 <S12> CCC IIII CCC SSS MMMM MMMM V 000024 <S13> Mask an Entire Line To mask an entire line of data: 1. You must shift the line to enter the masking character. In the ISPF edit area, on the line you want to mask, insert a closed parentheses ( ) ) followed by the number of spaces to shift the line. This example will shift the line one space to the right. )1 008 <S01> ***USR2312 WELCOME TO CICS/MVS **** 10:11:42 2. Press Enter. The line you marked will shift to the right the number of spaces you specified after the parentheses ( ) ). 3. Type the letter I (Ignore) as the masking tag in front of the left angle bracket (<) of the script tag. Figure 5-23 shows this technique being used to mask this screen’s entire row 1 (identified with the <S01> script tag) during playback. Figure 5-23. Mask an Entire Line of Data EDIT ---- HPER.RECBIG.DATA6(REC1) - 00.03 ------------------- COLUMNS 001 072 COMMAND ===> SCROLL ===> CSR 000005 <VERSION>7 000006 <OUTPUT>0000001 000007 <RESPONSE>00.00.002 000008 I<S01> ***USR2312 WELCOME TO CICS/MVS *** 10:11:42 000009 <S02> 000010 <S03> 000011 <S04> 000016 <S05> CCC IIII CCC SSS MMM MMM VVV VVV 000017 <S06> CCCCC II CCCCC SSSSS MMMM MMMM VV VV 000018 <S07> CC CC II CC CC SS SS MM MMMM MM VV VV 000019 <S08> CC II CC SS *** MM MM MM VV VV 000020 <S09> CC II CC SS *** MM MM VV VV 000021 <S10> CC CC II CC CC SS SS MM MM VV VV 000022 <S11> CCCCC II CCCCC SSSSS MM MM VVV 000023 <S12> CCC IIII CCC SSS MMMM MMMM V 000024 <S13> 5-18 Hiperstation for VTAM User Guide Mask Individual Characters To mask an individual character, insert a line following the record with the <S01> script tag (Figure 5-24). On the inserted line, type the letter I below each character to be ignored. This masks these specific characters on this screen row during playback. Figure 5-24. Mask Individual Characters EDIT ---- HPER.RECBIG.DATA6(REC1) - 00.02 ------------------- COLUMNS 001 072 COMMAND ===> SCROLL ===> CSR 000005 <VERSION>5 000006 <OUTPUT>0000001 000007 <RESPONSE>00.00.002 000008 <S01> ***USR2312 WELCOME TO CICS/MVS *** 10:11:42 ’’’’’’ IIIIIIII 000009 <S02> Mask Hexadecimal Characters To mask hexadecimal characters, insert a line following the record with the <HEX> script tag. On the inserted line, type the letter I below the hex half of each byte to be masked. You must also mask the corresponding character-based comments in the <HEX> record by placing the letter I below each of those characters (Figure 5-25). Figure 5-25. Mask Hexadecimal Characters EDIT ---- HPER.RECBIG.DATAH(REC1) - 00.02 ------------------- COLUMNS 001 072 COMMAND ===> SCROLL ===> CSR 000005 <VERSION>7 000006 <OUTPUT>0000001 000007 <RESPONSE>00.00.002 000008 <HEX>"C1C2C3C4C5C6C7C8C9D1D2D3D4D5D6D7" */ ABCDEFGHIJKLMNOP /* ’’’’’’ II II I I This example masks the marked characters of both the hexadecimal (C1 and C5) portion in quotes and the character (A and E) portion of the record during playback. When <HEX> records are compared, both the hexadecimal and character-comment portions are compared. Mask Characters Globally Often, fields such as user ID, terminal ID, or date and time appear in the same area of the screen. To mask these fields, you can put a masking tag for each screen in the script. With this global masking technique, you can mask the fields in the beginning of the playback script. Hiperstation for VTAM retains the masked status of the screen area throughout playback. You can activate global masking by typing the letter G (Global) as the masking script tag instead of the letter I (Ignore). To mask an entire line of data, shift the line over one character and place the G in front of the left angle bracket character (<) (Figure 5-26). This tag masks the entire row of this and all subsequent screens during playback. Online Testing of 3270 Applications 5-19 Figure 5-26. Globally Mask an Entire Line of Data EDIT ---- HPER.RECBIG.DATA6(REC1) - 00.03 ------------------- COLUMNS 001 072 COMMAND ===> SCROLL ===> CSR 000005 <VERSION>6 000006 <OUTPUT>0000001 000007 <RESPONSE>00.00.002 000008 G<S01> ***USR2312 WELCOME TO CICS/MVS *** 10:11:42 000009 <S02> For example, to mask the entire first row of each of the first four screens in the script, reset the global mask on the fifth screen. The global mask remains in effect for the duration of your session. To reset the mask, shift the line over one character, then place the letter X as the masking tag in front of the < character of the script tag (Figure 5-27). This removes the global masking of screen row 1. Figure 5-27. Reset the Line of Data EDIT ---- HPER.RECBIG.DATA6(REC1) - 00.01 ------------------- COLUMNS 001 072 COMMAND ===> SCROLL ===> CSR 000135 <OUTPUT>0000005 000136 <RESPONSE>00.00.010 000137 X<S01> BROWSE HAS ENDED NORMALLY. READY FOR NEXT TRANSACTION: 000138 <S02> Similarly, you can globally mask the individual characters of screen row 1 by using Gs instead of Is, as described in “Mask Individual Characters” on page 5-18. This masks those specific columns of screen row 1 on that and all subsequent screens in the script until the mask is reset using Xs. Reset All Masks To reset all masks stored in Hiperstation for VTAM’s mask buffer, type XMASK on the Command line and press Enter. When you perform multiple consecutive playback sessions, the XMASK command eliminates the need to manually reset masks that do not apply to the next playback. Online Row Masking Another masking approach is to use the MASK primary command when you record or dub a script. The MASK command displays a screen in which you can type the ignore (I), global (G), and reset (X) characters directly on the screen image. When you initially record the REC1 script, you can enter the MASK primary command (Figure 5-28). Figure 5-28. Mask Command ZOOM:PF23 ---------------------- Hiperstation ------------------- LINE 1 OF 24 COMMAND ===> mask SCROLL ===> HALF Recording REC1 Play OFF Journal OFF Compare Log OFF Autodoc OFF ***USR2312 WELCOME TO CICS/MVS *** 10:11:42 The mask screen shows the current screen image. To mask the time stamp on the CICS welcome screen, move the cursor over the time stamp and enter a string of I’s (Figure 529). Enter the END command to exit the screen and save the updated masks. Enter CANCEL to exit the screen without saving the masks. 5-20 Hiperstation for VTAM User Guide Figure 5-29. Mask with a String of Lower Case i’s ------------------ Hiperstation * UPDATE COMPARISON MASKS ------- LINE 1 OF 24 COMMAND ===> SCROLL ===> HALF Scrn# 0000001 Mask Definitions, Cmds: CANcel, END ***USR2312 WELCOME TO CICS/MVS *** iiiiiiii CCC CCCCC CC CC CC CC CC CC CCCCC CCC IIII II II II II II II IIII CCC CCCCC CC CC CC CC CC CC CCCCC CCC SSS SSSSS SS SS SS SS SS SS SSSSS SSS *** *** MMM MMM MMMM MMMM MM MMMM MM MM MM MM MM MM MM MM MM MM MMMM MMMM VVV VVV VV VV VV VV VV VV VV VV VV VV VVV V SSS SSSSS SS SS SS SS SS SS SSSSS SSS The online masking screen accepts all of the row mask characters. To remove a mask, blank out the masking characters. The underlying screen characters reappear. If the screen image contains a character identical to a mask character, simply enter the mask character in the opposite case of the letter on the screen. For example, to mask the word Iteration on the screen, enter iiiiiiIii as shown below. Iteration iiiiiiIii Hiperstation does not record the screen and masks until you enter data to be sent to the actual domain destination. Therefore, you can enter and exit the mask screen multiple times on the same domain destination screen. Generic Masking of Output Data Generic masking allows suppression of data that appears in formats specified by a picture type mask. The masks can be specified in an ISPPLIB member named GENMASK. You can mask online by specifying a dataset that contains fixed-length, 80-byte records. Allocate this dataset to your session with a file name of HPERPMSK. To do this, use the TSO ALLOC command. For example: TSO ALLOC FI(HPERPMSK) DA(VP.SCRIPTS(MASK)) SHR The specified dataset (DA in the previous example) can be either a sequential file or a partitioned dataset (PDS). If you use a PDS, enclose the member name in parentheses. Note: If Hiperstation for VTAM is installed with ISPF LIBDEF as described in the Hiperstation Installation Guide, you cannot use the generic mask member. Instead, use the TSO ALLOC technique and set LRECL=80 and BLKSIZE=6160. In addition, you can add the generic masks to individual scripts using the <MASK> script tag. The <MASK> record must contain a literal within single or double quotes or a picture-string. To mask using a batch job, see “Prepare JCL” on page 7-2. Generic Masking Examples Following is the sample set of masks located in SQQFPENU member GENMASK. Notes: 1. These masks are provided in comment form. Activate them by moving the /* characters to precede the true comment. The mask must start in column 1. 2. You can use only REXX comments within the dataset, not Assembler comments. Online Testing of 3270 Applications 5-21 Sample Generic Masks /* Hiperstation SAMPLE /* GENERIC MASKS /* 99:99 /* ELIMINATE TIME 99/99/99 /* ELIMINATE DATES OF THE NUMERIC TYPES 99 XXX 99 /* ELIMINATE THE CICS TYPE DATES */ */ */ */ */ */ In the sample generic mask, the following picture-strings apply: • Code one (1) space between each command and its value. <WAIT> 1,60 WTO "Hello" • Commands must be in all capital letters. • No parentheses are needed around values (see above example). • A nine (9) specifies a numeric character. • An X specifies an alphabetic character. • Use an asterisk (*) to designate a wildcard character. This can also be used to mask attributes. • Non-alpha specifies a special character. Non-alphanumeric characters are those not included in the characters A – Z or 0 – 9. • A space specifies a space character separating other picture elements. Other Generic Masking Examples 1. Mask all dates in row 1, column 60: <MASK>(1,60) 99/99/99 (1,60) 99/99/99 (Generic mask added to script) (Generic mask using LIBDEF or PDS) 2. Mask the date in row 1, column 60 when row 5, column 10 contains ACME ORDER ENTRY: <MASK>(1,60) 99/99/99 AND <MASK>(5,10) ’ACME ORDER ENTRY’ (Generic mask added to script) 3. Ignore all mismatches on screens with TEST in row 1, column 72 and TEST anywhere in row 24: <MASK>(1,72) <MASK>(24,*) ’TEST’ SKIP AND ’TEST’ 4. Mask any occurrence of the picture 99 XXX 99: (e.g. 92 JAN 22) <MASK> 99 XXX 99 5. Mask 8 characters at row 5, column 60 on screens with EDIT in row 1, column 3 and PRODUCTION anywhere in row 23: <MASK>(5,60) XXXXXXXX AND <MASK>(1,3) ’EDIT’ AND <MASK>(23,*) ’PRODUCTION’ 6. Mask a number in row 3, column 60 where the number is in the format: N,NNN.NN. <MASK>(3,60) 9’,’999.99 5-22 Hiperstation for VTAM User Guide Dubbing Scripts Dubbing is when you record one script while playing back another. You can use dubbing to: • • • • • Combine multiple scripts into one. Update an existing script with new screen images. Add transactions to the end or middle of a script. Update an existing script with new or additional inputs. Remove transactions from a script. Dubbing copies row masks and generic masks from the old script to the new script, however, encrypted fields will not be encrypted in the new script. You can use online masking during dubbing to add or delete masks. Hiperstation for VTAM comments are also copied during the dubbing. Note: REXX statements in the original script are not copied, but the dubbed script contains all transactions initiated via the REXX statements (for example, the script statements resulting from the REXX statements). You can control online dubbing in two ways: • Explicitly using RECORD and PLAY commands. • Implicitly using the Dubbing field on the Play Setup screen. Note: You can also dub using batch processing. See Chapter 7, “Unattended Playback, Dubbing, and Comparison for 3270 and LU0 Scripts” for information. Explicit Dubbing With explicit dubbing, you record a new script while playing back another script. This section provides two examples of explicit dubbing. The first adds a transaction to the end of a script. The second inserts new transactions in the middle of a script. Add to the End of a Script In this scenario, you add transactions to the REC1 script you created earlier. 1. The REC1 script started at the CICS welcome screen, so you first need to exit and reconnect to your domain destination. 2. The Domain Traveler entry screen again shows the CICS welcome screen. Type RECORD on the Command line and press Enter. Figure 5-30. Explicit Dubbing — Add a Transaction — Screen 1 ZOOM:PF23 ---------------------- Hiperstation ------------------- LINE 1 OF 24 COMMAND ===> RECORD SCROLL ===> HALF Record OFF Play OFF Journal OFF Compare Log OFF Autodoc OFF ***USR2312 WELCOME TO CICS/MVS *** 09:24:53 CCC CCCCC CC CC CC CC CC CC CCCCC CCC IIII II II II II II II IIII CCC CCCCC CC CC CC CC CC CC CCCCC CCC SSS SSSSS SS SS SS SS SS SS SSSSS SSS *** *** MMM MMM MMMM MMMM MM MMMM MM MM MM MM MM MM MM MM MM MM MMMM MMMM VVV VVV VV VV VV VV VV VV VV VV VV VV VVV V SSS SSSSS SS SS SS SS SS SS SSSSS SSS Online Testing of 3270 Applications 5-23 3. Fill in the recording information for the new script on the Recording Setup screen (Figure 5-2 on page 5-2). For the membername of the script dataset, type REC2. Press Enter. The Domain Traveler entry screen now shows that you are recording REC2 (Figure 531). Figure 5-31. Explicit Dubbing — Add a Transaction — Screen 2 ZOOM:PF23 ---------------------- Hiperstation ------------------- LINE 1 OF 24 COMMAND ===> PLAY SCROLL ===> HALF Recording REC2 Play OFF Journal OFF Compare Log OFF Autodoc OFF ***USR2312 WELCOME TO CICS/MVS *** 09:24:53 CCC CCCCC CC CC CC CC CC CC CCCCC CCC IIII II II II II II II IIII CCC CCCCC CC CC CC CC CC CC CCCCC CCC SSS SSSSS SS SS SS SS SS SS SSSSS SSS *** *** MMM MMM MMMM MMMM MM MMMM MM MM MM MM MM MM MM MM MM MM MMMM MMMM VVV VVV VV VV VV VV VV VV VV VV VV VV VVV V SSS SSSSS SS SS SS SS SS SS SSSSS SSS 4. Type PLAY on the Command line and press Enter. 5. Fill in the playback information on the Play Setup screen (Figure 5-9 on page 5-6). Choose to play the REC1 script interactively (PLAY/THINK TIME option 1) and ignore all mismatches (COMPARISON option 4). 6. Press Enter. The status line of the Domain Traveler entry screen (Figure 5-32) shows that you are recording REC2 and playing REC1. The CLEAR command appears on the Command line, indicating that the CLEAR key will be sent to CICS. Figure 5-32. Explicit Dubbing — Add a Transaction — Screen 3 ZOOM:PF23 ---------------------- Hiperstation ------------------- LINE 1 OF 24 COMMAND ===> CLEAR SCROLL ===> HALF Recording REC2 Playing REC1 Journal OFF Compare Log OFF Autodoc OFF ***USR2312 WELCOME TO CICS/MVS *** 09:24:53 7. Step through the REC1 script just as you did in “Playback” on page 5-7. All of the transactions in the REC1 script are being recorded into the new script REC2. When REC1 finishes, playback ends (the status line shows Play OFF), but the recording remains active. 8. Now enter additional transactions, which are added to REC2. 9. When you finish with the new transactions, type STOP or R OFF on the Command line and press Enter. Recording ends and the status line shows Record Off. REC2 now contains the original transactions of REC1, plus the ones you just entered. Inserting in the Middle of a Script In this scenario, instead of adding the new transactions to the end of the script, you will insert them somewhere in the middle. In addition, you want to remove the PF1 (Help) request from the CEBR transaction. Dubbing can accomplish this using the PAUSE, RESUME, and SKIP primary commands. 1. Set up dubbing on the Recording Setup and Play Setup screens as you did in step 3 through step 5 of “Add to the End of a Script” on page 5-22. This time, however, name the new script REC3. 5-24 Hiperstation for VTAM User Guide After you enter the playback setup information, the status line of the Domain Traveler entry screen (Figure 5-33) shows that you are recording REC3 and playing REC1. The Command line shows that the CLEAR key will be sent to CICS. Figure 5-33. Explicit Dubbing — Insert a Transaction — Screen 1 ZOOM:PF23 ---------------------- Hiperstation ------------------- LINE 1 OF 24 COMMAND ===> CLEAR SCROLL ===> HALF Recording REC3 Playing REC1 Journal OFF Compare Log OFF Autodoc OFF 2. Press Enter to clear the CICS screen. The screen clears and the script fills in the CEBR transaction ID (Figure 5-34). The Command line shows that the Enter key will be sent to CICS. Figure 5-34. Explicit Dubbing — Insert a Transaction — Screen 2 ZOOM:PF23 ---------------------- Hiperstation ------------------- LINE 1 OF 24 COMMAND ===> ENTER SCROLL ===> HALF Recording REC3 Playing REC1 Journal OFF Compare Log OFF Autodoc OFF CEBR Now suppose that instead of entering the CEBR transaction, you want to enter the CEMT transaction. At this point, you need to pause the REC1 script. The PAUSE command specifies that the script is no longer in control of the session. 3. Overtype ENTER on the Command line with PAUSE and press Enter. The status line of the Domain Traveler entry screen now shows that the REC1 script is paused (Figure 5-35). The script remains paused until you enter the RESUME primary command. Figure 5-35. Explicit Dubbing — Insert a Transaction — Screen 3 ZOOM:PF23 ---------------------- Hiperstation ------------------- LINE 1 OF 24 COMMAND ===> SCROLL ===> HALF Recording REC3 PAUSED REC1 Journal OFF Compare Log OFF Autodoc OFF CEBR 4. To enter the CEMT transaction, overtype CEBR with CEMT and press Enter. The CEMT transaction is now recorded in the REC3 script ahead of the CEBR transaction. You can enter additional commands to CEMT or enter a new transaction. Each transaction is recorded in REC3 ahead of the original CEBR transaction. To resume playing REC1, you first need to reset the screen as it was when the PAUSE command was issued. 5. To reset the screen, press End and enter the CLEAR primary command to clear the CICS screen. Retype the CEBR transaction. Then type RESUME on the Command line and press Enter. The Domain Traveler entry screen now shows that you have resumed playing REC1 (Figure 5-36). Online Testing of 3270 Applications 5-25 Figure 5-36. Explicit Dubbing — Insert a Transaction — Screen 4 ZOOM:PF23 ---------------------- Hiperstation ------------------- LINE 1 OF 24 COMMAND ===> ENTER SCROLL ===> HALF Recording REC3 Playing REC1 Journal OFF Compare Log OFF Autodoc OFF CEBR 6. Press Enter to transmit this data to CICS. The CICS BROWSE screen (Figure 5-37) appears. PF1 appears on the Command line indicating a request for help information. Figure 5-37. Explicit Dubbing — Insert a Transaction — Screen 5 ZOOM:PF23 ---------------------- Hiperstation ------------------- LINE 1 OF 24 COMMAND ===> PF1 SCROLL ===> HALF Recording REC3 Playing REC1 Journal OFF Compare Log OFF Autodoc OFF CEBR TS QUEUE CEBRH104 RECORD 1 OF 0 COL 1 OF 0 ENTER COMMAND ===> ************************** TOP OF QUEUE ******************************* ************************* BOTTOM OF QUEUE ***************************** TEMPORARY STORAGE QUEUE CEBRH104 IS EMPTY PF1 : HELP PF2 : SWITCH HEX/CHAR PF3 : TERMINATE BROWSE 7. Use the SKIP command to remove this transaction from the dubbed script. SKIP has two functions depending on which screen you are on. If you are on an interactive playback screen, SKIP: a. Discards the current input (on the screen), b. Ignores the next output, and c. Fills in the screen with the next input. If you are on a miscompare screen, SKIP: a. Discards the current output screen (the current expected screen), b. Ignores the next input, c. Retrieves the next output screen, d. Compares it to the actual screen, and e. Reacts to the compare normally. To SKIP, overtype PF1 on the Command line with SKIP and press Enter. To continue after using SKIP on a miscompare screen, type GO on the Command line and press enter. PF3 appears on the Command line, which was the next transaction in the script. You can now finish playing the script. Figure 5-38. Explicit Dubbing — Insert a Transaction — Screen 6 ZOOM:PF23 ---------------------- Hiperstation ------------------- LINE 1 OF 24 COMMAND ===> PF3 SCROLL ===> HALF Recording REC3 Playing REC1 Journal OFF Compare Log OFF Autodoc OFF CEBR TS QUEUE CEBRH104 RECORD 1 OF 0 COL 1 OF 0 ENTER COMMAND ===> ************************** TOP OF QUEUE ******************************* ************************* BOTTOM OF QUEUE ***************************** 5-26 Hiperstation for VTAM User Guide 8. When the script is complete, type STOP or R OFF on the Command line and press Enter to stop the REC3 script. Hiperstation for VTAM shows the message: BROWSE HAS ENDED NORMALLY. REC3 now contains the CEMT transaction followed by the CEBR transaction. You can use PAUSE and RESUME many times within a dubbing session to insert as many transactions in as many places as required. Implicit Dubbing Implicit dubbing creates a new version of an existing script. You can add transactions to the new script, change the inputs and update the masks. Implicit dubbing does not allow you to combine multiple scripts into one because dubbing ends when the script ends. You activate implicit dubbing on the Play Setup screen. Type Y in the Dubbing field to turn recording on when you start playback. A new script is automatically created as you play the original script. Type C (change only) in this field to turn on a background recording. This recording is saved only if the original script encounters a mismatch during a playback session. Note: Implicit and explicit dubbing are mutually exclusive. You cannot activate change only dubbing and also attempt to use the RECORD command to start a recording session or the Domain Traveler will issue a warning message. Now, we will step through implicit dubbing using the REC1 script. Note that our previous dubbing session ended with the BROWSE HAS ENDED NORMALLY message. 1. To begin dubbing, type PLAY on the Command line and press Enter. 2. On the Play Setup screen, set the Dubbing field to Y (Figure 5-9 on page 5-6) and press Enter. Because you requested that a new script be dubbed, the Recording Setup screen appears (Figure 5-2 on page 5-2). 3. Type REC4 as the member for the Recording File Name and press Enter. Playback starts with a mismatch. The Actual screen appears (Figure 5-39) with the message: BROWSE HAS ENDED NORMALLY. Figure 5-39. Implicit Dubbing, Screen 1 ZOOM:PF23 ---------------------- Hiperstation ------------------- LINE 1 OF 24 COMMAND ===> SCROLL ===> HALF Scrn# 0000001 is: ACTUAL , Cmds: Actual, Delta, DIffer, Expected, Go, Mask BROWSE HAS ENDED NORMALLY. READY FOR NEXT TRANSACTION: 4. Type E on the Command line and press Enter to view the expected screen. The Expected screen (Figure 5-40) shows the CICS welcome message. Recall that the original script was recorded from the CICS welcome screen. The mismatch occurred because the script was not started from the same screen! Online Testing of 3270 Applications 5-27 Figure 5-40. Implicit Dubbing, Screen 2 ZOOM:PF23 ---------------------- Hiperstation ------------------- LINE 1 OF 24 COMMAND ===> SCROLL ===> HALF Scrn# 0000001 is: EXPECTED , Cmds: Actual, Delta, DIffer, Go, Mask, Save ***USR2312 WELCOME TO CICS/MVS *** 08:31:57 CCC CCCCC CC CC CC CC CC CC CCCCC CCC IIII II II II II II II IIII CCC CCCCC CC CC CC CC CC CC CCCCC CCC SSS SSSSS SS SS SS SS SS SS SSSSS SSS *** *** MMM MMM MMMM MMMM MM MMMM MM MM MM MM MM MM MM MM MM MM MMMM MMMM VVV VVV VV VV VV VV VV VV VV VV VV VV VVV V SSS SSSSS SS SS SS SS SS SS SSSSS SSS You can correct this problem by using the SAVE command. The SAVE command saves the original or expected screen in the dubbed script. In this case, the CICS welcome screen records REC4 instead of the screen showing the BROWSE HAS ENDED NORMALLY message. Note: You can use the SAVE command in both implicit and explicit dubbing. 5. Type SAVE on the Command line and press Enter. The Domain Traveler entry screen (Figure 5-41) shows you are recording REC4 and playing REC1. CLEAR appears on the Command line, indicating that the CLEAR key will be sent to CICS. Figure 5-41. Implicit Dubbing, Screen 3 ZOOM:PF23 ---------------------- Hiperstation ------------------- LINE 1 OF 24 COMMAND ===> CLEAR SCROLL ===> HALF Recording REC4 Playing REC1 Journal OFF Compare Log OFF autoDoc OF BROWSE HAS ENDED NORMALLY. READY FOR NEXT TRANSACTION: 6. From this point, you can continue to play the REC1 script. When the REC1 script ends, the recording also ends. The REC4 script now contains a new version of REC1. The change only dubbing option, selected by typing C in the Dubbing field on the Play Setup screen works just like the above procedure, but recording occurs in background mode (Figure 5-9 on page 5-6). This means that the status line indicates that recording is off. The new script is saved only if a mismatch occurs during a playback session. Dub Function Commands PAuse Temporarily interrupts the dub function. RESume Resumes a paused dub function. SAVE Saves the original or expected screen in the dubbed script rather than the actual screen. SKIP SKIP has two functions depending on which screen you are on. If you are on an interactive playback screen, SKIP: 5-28 Hiperstation for VTAM User Guide 1. Discards the current input (on the screen). 2. Ignores the next output. 3. Fills in the screen with the next input. If you are on a miscompare screen, SKIP: 1. Discards the current output screen (the current expected screen). 2. Ignores the next input. 3. Retrieves the next output screen. 4. Compares it to the actual screen. 5. Reacts to the compare normally. To continue after using SKIP on a miscompare screen, type GO on the Command line and press Enter. Editing Scripts You can edit recorded Hiperstation for VTAM scripts using the ISPF edit function. Editing allows you to: • Add comments or notes to the script to enable easy identification. • Perform masking operations. • Add REXX statements to extend the functionality of the script. Comments are added to the script by placing an asterisk in column 1 of a record. Do not comment any of the tagged records of the script since this can yield undesirable results. Masking allows you to instruct Hiperstation to ignore certain portions of the output screen when performing comparison operations. See “Masking Script Information” on page 5-16 for more information. Note: Unless the application produces two consecutive outputs, be sure edited scripts do not contain two consecutive outputs. Figure 5-42 illustrates an ISPF edit session of a sample script. Figure 5-42. Edit a Recorded Script EDIT ---- HPER.RECBIG.DATA6(REC1) - 00.00 -------------------- COLUMNS 001 072 COMMAND ===> SCROLL ===> PAGE 000064 <INPUT>0000003 000065 <THINK>00.26.762 AT 10:14:22 000066 <KEY>ENTER 000067 <CURSOR>00,04 000068 <I01>"CEBR" 000069 </INPUT> 000070 <OUTPUT>0000003 000071 <RESPONSE>00.01.415 000072 <S01> CEBR TS QUEUE CEBRH104 RECORD 1 OF 0 COL 000073 <S02> ENTER COMMAND ===> 000074 <S03> ************************** TOP OF QUEUE ****************** 000075 <S04> ************************* BOTTOM OF QUEUE **************** Script File Format For ease of use and data manipulation, script data is recorded in a dataset. Some terminal control characters are recorded in the dataset. During edit, these control characters can Online Testing of 3270 Applications 5-29 cause a caution message to appear, which states that the data contains invalid (nondisplay) characters. Ignore this message. All records in a script begin with a script tag except comments, which begin with an asterisk (*). Script tags consist of a left bracket (<), a right bracket (>), and the characters between the brackets. These tags specify the type of data that follows. Data in the recorded script falls into three basic categories: control, input, and output. Use the following script tags to divide categories of data: <INPUT> and </INPUT> Specifies the beginning and ending of the current input data group. <OUTPUT> and </OUTPUT> Indicates the beginning and ending of the current output data group. Note: The number immediately after <INPUT> and <OUTPUT>, such as 0000003 on line 000064 and 70 in Figure 5-42, is the input and output sequence number, respectively. Within the input and output data groups, script tags indicate which PF key was used, the data entered, and in what field it was entered. In the output groups, the data recorded includes the response time and the screen output data. See Appendix B, “Hiperstation Script Tags” for a detailed description of the Hiperstation script tags. The tags described in this appendix include Control script tags, Input and Output script tags, and the Individual Character Mask script tag. Also described are the Edit Function commands. 5-30 Hiperstation for VTAM User Guide 6-1 Chapter 6. 3270 Unattended Processing Chap 6 Hiperstation for VTAM offers unattended playback, dubbing, and comparison for batch testing 3270 and LU0 applications. These functions require unattended processing statements and JCL to run the unattended statements. Hiperstation for VTAM also offers a facility that generates these statements and the necessary JCL for you. This chapter explains how to use Unattended Processing to generate the CONTROL, GROUP, SCRIPT, COMPARE, COMPANY, DUBTITLE, CACHEINCL, and CACHEXCL statements. It also explains how to build the JCL necessary for running the unattended mode statements. Chapter 7, “Unattended Playback, Dubbing, and Comparison for 3270 and LU0 Scripts” explains how to run an unattended mode function, describes unattended mode statements, and provides JCL examples for common unattended testing functions. Note: If you are licensed for Hiperstation for Mainframe Servers you can also generate APPC statements from the Unattended Processing Facility in Hiperstation for Mainframe Servers and append APPC statements to previously generated 3270 statements or vice versa. For detailed information on generating APPC statements, refer to the Hiperstation for Mainframe Servers User Guide. Starting Unattended Processing 1. Start unattended processing by selecting option 7 Unattended Processing on the Hiperstation for VTAM Main Menu (Figure 3-1 on page 3-1). The Hiperstation * Generate Unattended Statements screen appears (Figure 6-1). Figure 6-1. Hiperstation * Generate Unattended Statements Screen ------------------ Hiperstation * Generate Unattended Statements -------------- Command ===> What to generate: 1. Generate Statements for Unattended 3270 2. Generate Statements for Unattended APPC Enter "/" to select options Add several script statements Append new Log to end of an existing Log (Add control cards generated in this execution to the end of those created via a previous execution) Enter END command to return to the Main Menu. 2. To add script statements to the end of existing unattended playback statements or append unattended playback statements to an existing file, enter a slash (/) in the corresponding field. Choices include: – Add several script statements – Append new Log to end of an existing Log Note: Use the append feature to run both APPC and 3270 playbacks in the same unattended run. 6-2 Hiperstation for VTAM User Guide 3. Press Enter to continue or END to return to the previous screen. Generating 3270 Unattended Statements To generate unattended processing statements for 3270, select option 1 Generate Statements for Unattended 3270 on the Generate Unattended Statements screen (Figure 6-1). Figure 6-2 appears. Figure 6-2. Generate Statements for Unattended 3270 Screen ---------------- Hiperstation * Generate 3270 Unattended Statements ----------- Command ===> What to generate: 1. Select the 3270 unattended statements you wish to generate 2. Generate 3270 unattended statements for each member in the script dataset 3. Generate 3270 unattended statements using a standard script profile Enter END command to return to the previous panel Note: See the online help for a description of the primary commands available on this and all lower-level screens accessed from the Generate Statements for Unattended 3270 screen. Generate Statements for Unattended 3270 Options The options in Figure 6-2 help you with three primary functions. 1. Specify the type of unattended statements you want to generate. Choices include: – Option 1 — Use this option to select which statements to generate. You then navigate various screens to generate unattended playback statements. For more information, see “Defining Unattended Statement Parameters” on page 6-3. – Option 2 — Use this option to: • define a script dataset and generate unattended statements for all scripts in that dataset • perform a mass generation Hiperstation for VTAM then generates unattended playback statements based on the datasets you chose. For more information, see “Building Unattended Statements and JCL” on page 6-10. – Option 3 — Use this option to: • restrict the generation of unattended playback statements to a subset of the scripts contained in a specific dataset • narrow statement generation based on domain destination or script prefix • include preprocessing and postprocessing scripts, allowing you to “sandwich” each of your scripts between up to five preprocessing and postprocessing scripts For more information, see “Restricting Script Datasets” on page 6-12. 2. Press Enter to continue or END to return to the previous screen. 3270 Unattended Processing 6-3 Defining Unattended Statement Parameters To set parameters for generating statements, select option 1 Select the 3270 unattended statements you wish to generate on the Generate 3270 Unattended Statements menu. The Hiperstation * 3270 Statement Generation Parameters menu appears (Figure 6-3). Figure 6-3. 3270 Statement Generation Parameters Menu --------------- Hiperstation * 3270 Statement Generation Parameters ----------- Command ===> Select the 3270 Statement type you wish to include in your unattended job 1. CONTROL Statement parameters 2. GROUP Statement parameters 3. SCRIPT Statement parameters 4. COMPARE Statement parameters 5. COMPANY and DUBTITLE Statement parameters 6. CACHINCL and CACHEXCL Statement parameters Enter END command to return to previous panel On this screen, you can select the type of 3270 unattended playback statement you want to define or modify. Select one of the statement types listed and press Enter to continue. The appropriate statement parameter screen appears for the type you selected. Hiperstation saves the information you enter, and uses it when you request generation of unattended mode statements and JCL. You can also modify your unattended statement parameters before generating your statements (for example, control cards) and JCL. For example, you might choose to define CONTROL information first, and then GROUP information or vice versa. The sequence in which you define the statements has no effect on generation. Most entries — such as CACHEOFF, REXXOFF, KEY2, and COMPARE — are retained from session to session. Dubbing information and requests for unattended compare are NOT retained from session to session and must be entered each time. The remainder of this chapter describes the statement types and how to build unattended statements and JCL. CONTROL Statement Parameters 1. Select option 1 CONTROL Statement parameters on the 3270 Statement Generation Parameters menu (Figure 6-3) to set CONTROL statement parameters. The 3270 CONTROL Statement Parameters screen appears (Figure 6-4). 6-4 Hiperstation for VTAM User Guide Figure 6-4. 3270 CONTROL Statement Parameters Screen ----------------- Hiperstation * 3270 CONTROL Statement Parameters ---------- Command ===> Connection Information: Prefix. . . . . . . EHPR Suffix. . . . . . . 4 Bind. . . . . . . . 1500 Dubbing Information: Dub Library . . . . Dub Dataset . . . . Dub Dark Masks? . . Documentation Generation Options: MSGFORM . . . . . . N MSGLEVEL(2) . . . . Y Timing Options: Appl Time Out(KEYU) 5555 Second Write Wait . 25 Processing Options: Volume. . . . . . . Unit Name . . . . . Use (R,C) Format? . Y Dub Logname. . . . Use MM/DD/YY?. . . Y IMS Time Out(KEY2) 2500 Use Start Time?. . Y Caching? . . . . . N Using REXX?. . . . Y Apply Dark Masks?. Enter END command to return to the previous panel Replace Use this screen to alter the default settings for 3270 CONTROL statements. You can modify or add parameters by entering information into or changing fields. Press Enter without entering a command to validate the current entries and remain on this screen. For detailed parameter descriptions, see “CONTROL Statement” on page 7-7, or press the Help key for a brief description of each parameter. 2. Press END to continue. GROUP Statement Parameters 1. Select option 2 Group statement parameters on the 3270 Statement Generation Parameters menu (Figure 6-3 on page 6-3) to set GROUP statement parameters. The 3270 GROUP Statement Parameters screen appears (Figure 6-5). Figure 6-5. 3270 GROUP Statement Parameters Screen ------------------ Hiperstation * 3270 GROUP Statement Parameters ------------- Command ===> Choose the GROUP Statement parameters you wish to include 1. Connection information includes: Application, Logmode, Logon Data, Keyboard Reset Ignore and number of terminals 2. Documentation Generation includes: Journal, Trace, Log/Xlog, REXX Log, Compare Options, Summary and One Log 3. Timing Options includes: Logon Delay, Start Delay, Think Time, Think Time Percent, Synchronize, All Sync and Time Sync 4. Dubbing information includes: Dub Library, Dub Log Name and Dub Member Enter END Command to return to the previous panel Use this screen to alter the default settings for 3270 GROUP statements. Parameters for the GROUP statement are divided into four categories: – – – – connection documentation timing dubbing 3270 Unattended Processing 6-5 2. Enter the appropriate option for the category of parameters you want to define. Parameter settings, with the exception of dubbing information, are saved in your profile and retained from session to session. 3. Enter the END command to continue. Connection GROUP Statement Parameters 1. Select option 1 Connection information on the 3270 GROUP Statement Parameters menu (Figure 6-5) to define GROUP Connection parameters. The 3270 GROUP Connection Parameters screen appears (Figure 6-6). Figure 6-6. 3270 GROUP Connection Parameters Screen ----------------- Hiperstation * 3270 GROUP Connection Parameters ------------- Command ===> Application . . . . . . . CICSTEST Terminals . . . . . . . . 1 TermID . . . . . . . . Repeat. . . . . . . . . . 1 Logmode . . . . . . . . . Ignore KB Reset . . . . . N IMS KB Unlock (optional). Send initial datastream . N Double Byte Character Set N Logon Data. . . . . . . . Script Read Ahead Option. Y Use Application Profiling N Application Profile ID. . DF Other GROUP Statement Parameters==> 1. Connection parameters 2. Documentation parameters 3. Timing parameters 4. Dubbing parameters Enter END command to return to the previous panel Use this screen to alter the default settings for 3270 Connection GROUP statements. You can modify or add parameters by entering information into or changing fields. 2. Press Enter without entering a command or selecting an option in the Other GROUP Statement Parameters field to validate the current entries and remain on this screen. 3. Select an option in the Other GROUP Statement Parameters field and press Enter to navigate directly to one of the other GROUP parameters screens. Hiperstation for VTAM validates the current entries and then shows the selected screen. For detailed parameter descriptions, see “GROUP Statement” on page 7-11, or press the Help key for a brief description of each parameter. 4. Press End to continue. Documentation GROUP Statement Parameters 1. Select option 2 Documentation Generation on the 3270 GROUP Statement Parameters menu (Figure 6-5 on page 6-4) to define GROUP Documentation Parameters. The 3270 GROUP Documentation Parameters screen appears (Figure 6-7). 6-6 Hiperstation for VTAM User Guide Figure 6-7. 3270 GROUP Documentation Parameters Screen Journal . . 'VP.QA.BATCH.JOURN' Summary . . 'VP.QA.BATCH.SUMMRY' REXX Log. . 'VP.QA.BATCH.REXX' Log Dataset 'VP.QA.BATCH.LOG' Type of Logging==> 1 (1 = Log, 2 = Xlog ) One Log. . . N Trace . . . 'VP.QA.BATCH.TRACE' VTAM? Y Auto Doc. . 'VP.QA.BATCH.DOC' Type of Print==> N (P = Std, D = DCF, N = None) Box? . . . . Type of Doc ==> O (O = Output, I = Input, B = Both) Comparison Options==> 2 1. Stop on any compare check 2. Stop on alpha differences 3. Stop only on field number mismatches 4. Ignore all compare differences Ignore Numeric Differences. N Lastonly . . N Other GROUP Statement Parameters==> 1. Connection parameters 2. Documentation parameters 3. Timing parameters 4. Dubbing parameters Enter END command to return to the previous panel ---------------- Hiperstation * 3270 GROUP Documentation Parameters --------Command ===> Use this screen to alter the default settings for 3270 Documentation GROUP statements. You can modify or add parameters by entering information into or changing fields. 2. Press Enter without entering a command or selecting an option in the Other GROUP Statement Parameters field to validate the current entries and remain on this screen. 3. Select an option in the Other GROUP Statement Parameters field and press Enter to navigate directly to one of the other GROUP parameters screens. Hiperstation for VTAM validates the current entries and then shows the selected screen. For detailed parameter descriptions, see “GROUP Statement” on page 7-11, or press the Help key for a brief description of each parameter. 4. Press End to continue. Timing GROUP Statement Parameters 1. Select option 3 Timing Options on the 3270 GROUP Statement Parameters menu (Figure 6-5 on page 6-4) to define GROUP Timing Parameters. The 3270 GROUP Timing Parameters screen appears (Figure 6-8). Figure 6-8. 3270 GROUP Timing Parameters Screen ------------------- Hiperstation * 3270 GROUP Timing Parameters ------------- Command ===> Logon Delay. . . . . . . . 33 Start Delay. . . . . . . . _______ Time Sync. . . . . . . . . N Start Time . . . . . . . . __________________________ Standard Wait Time . . . . ________ Max Wait Time. . . . ________ Synchronization Options==> 1 1. None 2. Sync within Group 3. Sync across Groups Think Time Option==> 1 1. Play at full speed 2. Think time recorded on script 3. User-specified think time Think Time(mm,ss) ____ , ____ Think Time Percent ____ Other GROUP Statement Parameters==> _ 1. Connection parameters 2. Documentation parameters 3. Timing parameters 4. Dubbing parameters Enter END command to return to the previous panel 3270 Unattended Processing 6-7 Use this screen to alter the default settings for 3270 Timing GROUP statements. You can modify or add parameters by entering information into or changing fields. 2. Press Enter without entering a command or selecting an option in the Other GROUP Statement Parameters field to validate the current entries and remain on this screen. 3. Select an option in the Other GROUP Statement Parameters field and press Enter to navigate directly to one of the other GROUP parameters screens. Hiperstation for VTAM validates the current entries and then shows the selected screen. For detailed parameter descriptions, see “GROUP Statement” on page 7-11, or press the Help key for a brief description of each parameter. 4. Press End to continue. Dubbing GROUP Statement Parameters 1. Select option 4 Dubbing information on the 3270 GROUP Statement Parameters menu (Figure 6-5 on page 6-4) to define GROUP Dubbing Options. The 3270 GROUP Dubbing Options screen appears (Figure 6-9). Figure 6-9. 3270 GROUP Dubbing Options Screen -------------------- Hiperstation * 3270 GROUP Dubbing Options ---------------- Command ===> Dub Library Dub Logname Replace Log?. . Dub Member Replace Member? Dub Dataset Other GROUP Statement Parameters==> 1. Connection parameters 2. Documentation parameters 3. Timing parameters 4. Dubbing parameters Enter END command to return to the previous panel Use this screen to alter the default settings for 3270 Dubbing GROUP statements. You can modify or add parameters by entering information into or changing fields. 2. Press Enter without entering a command or selecting an option in the Other GROUP Statement Parameters field to validate the current entries and remain on this screen. 3. Select an option in the Other GROUP Statement Parameters field and press Enter to navigate directly to one of the other GROUP parameters screens. Hiperstation for VTAM validates the current entries and then shows the selected screen. For detailed parameter descriptions, see “GROUP Statement” on page 7-11, or press the Help key for a brief description of each parameter. Note: Hiperstation for VTAM does NOT retain dubbing information from session to session. 4. Press End to continue. SCRIPT Statement Parameters 1. Select option 3 SCRIPT Statement parameters on the 3270 Statement Generation Parameters menu (Figure 6-3 on page 6-3) to define SCRIPT Statement Parameters. The SCRIPT Statement Parameters screen appears (Figure 6-10). 6-8 Hiperstation for VTAM User Guide Figure 6-10. SCRIPT Statement Parameters Screen ----------------- Hiperstation * SCRIPT Statement Parameters ---------------- Command ===> Dub?. . . . . .. Replace Member?. Repeat . . . . . 1 Stop On. . . .. Skip Compare .. Wait for Input. Enter END command to return to the previous panel Use this screen to alter the default settings for 3270 SCRIPT statements. You can modify or add parameters by entering information into or changing fields. 2. Press Enter without entering a command to validate current entries and remain on this screen. For detailed parameter descriptions, see “SCRIPT Statement” on page 7-20, or press the Help key for a brief description of each parameter. 3. Press End to continue. COMPARE Statement Parameters 1. Select option 4 COMPARE Statement parameters on the 3270 Statement Generation Parameters menu (Figure 6-3 on page 6-3) to define COMPARE Statement Parameters. The 3270 COMPARE Statement Parameters screen appears (Figure 6-11). Figure 6-11. 3270 COMPARE Statement Parameters Screen ----------------- Hiperstation * 3270 COMPARE Statement Parameters ---------Command ===> Build Compare Statement? N Compare Dataset. . 'USER2312.COMPARE.SCRIPTS' Log Dataset. . . . 'USER2312.LOG.OUTPUT' Type of Log==> 1 1. None 2. Log 3. XLog One Log? N Comparison Options==> 4 1. Stop on any compare check 2. Stop on alpha character differences 3. Stop only on field number mismatches 4. Ignore all compare differences Ignore Numeric Differences. . . N Stop On. . . . . _____ Enter END command to return to the previous panel Use this screen to alter the default settings for 3270 COMPARE statements. You can modify or add parameters by entering information into or changing fields. 2. Use the Compare Dataset field to define the dataset you want to compare against the input scripts. 3. Press Enter without entering a command to validate current entries and remain on this screen. For detailed parameter descriptions, see “COMPARE Statement” on page 7-4, or press the Help key for a brief description of each parameter. Note: Hiperstation for VTAM does NOT retain COMPARE statement information from session to session. 3270 Unattended Processing 6-9 4. Press End to continue. COMPANY and DUBTITLE Statement Parameters 1. Select option 5 COMPANY and DUBTITLE Statement parameters on the 3270 Statement Generation Parameters menu (Figure 6-3 on page 6-3) to define COMPANY and DUBTITLE Statements. The COMPANY and DUBTITLE Statement Parameters screen appears (Figure 6-12). Figure 6-12. Company and Dub Title Statement Parameters Screen ------------- Hiperstation * COMPANY and DUBTITLE Statement Parameters -------- Command ===> Company . . Dub Title . Enter END command to return to previous panel Use this screen to alter the default settings for 3270 COMPANY and DUBTITLE statements. You can modify or add parameters by entering information into or changing fields. 2. Press Enter without entering a command to validate current entries and remain on this screen. For detailed parameter descriptions, see “COMPANY Statement” on page 7-4 and “DUBTITLE Statement” on page 7-10. You can also press the Help for a brief description of each parameter. 3. Press End to continue. CACHE INCLUDE and EXCLUDE Statement Parameters 1. Select option 6 CACHINCL and CACHEXCL Statement parameters on the 3270 Statement Generation Parameters menu (Figure 6-3 on page 6-3) to define CACHE INCLUDE and EXCLUDE Statements. The CACHE INCLUDE and EXCLUDE Statement Parameters screen appears (Figure 6-13). Figure 6-13. CACHE INCLUDE and EXCLUDE Statement Parameters Screen ---------- Hiperstation * CACHE INCLUDE and EXCLUDE Statement Parameters ------ Command ===> CACHINCL Statement: ________ ________ ________ ________ ________ ________ ________ ________ ________ ________ ________ ________ ________ ________ ________ ________ ________ ________ ________ ________ ________ CACHEXCL Statement: ________ ________ ________ ________ ________ ________ ________ ________ ________ ________ ________ ________ ________ ________ ________ ________ ________ ________ ________ ________ ________ Enter END command to return to the previous panel Use this screen to alter 3270 CACHE INCLUDE and EXCLUDE statement default settings. You can modify or add parameters by entering information into or changing fields. 2. Press Enter without entering a command to validate current entries and remain on this screen. 6-10 Hiperstation for VTAM User Guide For detailed parameter descriptions, see “CACHINCL Statement” on page 7-4 and “CACHEXCL Statement” on page 7-4, or press the Help key for a brief description of each parameter. 3. Press End to continue. Building Unattended Statements and JCL 1. Select option 2 Generate 3270 unattended statements for each member in the script dataset on the Generate 3270 Unattended Statements screen to build unattended statements. The Unattended Statement Build screen appears (Figure 614). Figure 6-14. Unattended Statement Build Screen -------------------- Hiperstation * Unattended Statement Build ---------------- Command ===> Please supply the name of the dataset containing the scripts, and the name of the dataset and the member which will contain the generated statements. Script Dataset: Project . . . ACMJET0 Group . . . . TEST Type . . . . SCRIPTS Other Partitioned Dataset: Dataset Name. . . . Enter a "/" above to define more than one Script Dataset Unattended Statement Dataset Name: Project . . . ACMJET0 Group . . . . UNATTND Type . . . . CONTROL Member. . . . CICSTEST Other Partitioned Dataset: Dataset Name. . . . Press ENTER to generate Unattended Playback statements END to exit. Use this screen to define the dataset containing the scripts for which you want to generate unattended statements. 2. Type the dataset information in the Script Dataset fields or the Other Partitioned Dataset field. You can define up to seven datasets by typing a slash (/) in the Script Dataset - Other Partitioned Dataset field. Hiperstation for VTAM processes any additional datasets after the dataset defined on this screen. Enter at least one dataset on this screen. Hiperstation examines each member in the selected dataset and determines its sender/receiver or domain destination. Script members with either a Sender or Receiver are flagged as APPC scripts and excluded from 3270-type requests. 3. Use the Unattended Statement Dataset Name fields or the Other Partitioned Dataset field to store the dataset and member name of generated statements. If the member exists, Hiperstation overwrites it unless you select the Append option on the initial Generate Unattended Statements screen (Figure 6-1 on page 6-1). When you press Enter without entering a command, Hiperstation validates the screen entries, generates unattended statements in the defined dataset member, then shows that member on the ISPF EDIT screen (Figure 6-15). 3270 Unattended Processing 6-11 Figure 6-15. ISPF EDIT Screen Showing Generated Statements File Edit Confirm Menu Utilities Compilers Test Help ------------------------------------------------------------------------------- EDIT ACMJET0.UNATTND.CONTROL(CICSTEST) - 01.00 Columns 00001 00072 Command ===> Scroll ===> PAGE ****** ***************************** Top of Data ****************************** 000001 CONTROL - 000002 BIND(1500) - 000003 KEYU(4500) - 000004 KEY2(2500) - 000005 PREFIX(EHPR) - 000006 SUFFIX(4) - 000007 SWAIT(25) - 000008 USDATE(YES) 000009 GROUP CICSTEST - 000010 LOGD(3) - 000011 REPEAT(1) - 000012 TERM(1) - 000013 THOPT(1) 000014 SCRIPT(V531045) - 000015 REPEAT(1) 000016 GROUP CICSTEST - 000017 LOGD(3) - 000018 REPEAT(1) - 000019 TERM(1) - 4. After you have made any desired edits, use END to exit. The Unattended JCL Build screen appears (Figure 6-16). Building JCL The Unattended JCL Build screen generates the JCL for running the unattended statements generated on the previous screens. Figure 6-16. Unattended JCL Build Screen --------------------- Hiperstation * Unattended JCL Build -------------------- Command ===> Please supply the dataset and member into which the batch JCL will be written. JCL Dataset Name: Project . . . ACMJET0 Group . . . . TSO Type . . . . JCL Member. . . . UNATTEND Other Partitioned Dataset: Dataset Name. . . . Job Statement Information: //ACMJET0G JOB (’ACMETST.2DSP’,84),’J.TESTER’,MSGCLASS=R, // REGION=2048K,CLASS=P,NOTIFY=ACMJET0 //* //* //* 1. Define the dataset and member where you want to write the generated JCL by using either the JCL Dataset Name fields or the Other Partitioned Dataset field. 2. Enter your standard job statements in the Job Statement Information area. 3. When you press Enter without entering a command, Hiperstation: – validates screen entries – generates JCL in the defined dataset member – shows the generated JCL on the ISPF EDIT screen (Figure 6-17) 6-12 Hiperstation for VTAM User Guide Figure 6-17. ISPF EDIT Screen Showing Generated JCL File Edit Confirm Menu Utilities Compilers Test Help ------------------------------------------------------------------------------- EDIT ACMJET0.TSO.JCL(UNATTEND) - 01.00 Columns 00001 00072 Command ===> Scroll ===> PAGE ****** ***************************** Top of Data ****************************** 000001 //ACMJET0G JOB (’OVPBAS5.2DSP’,84),’J.TESTER’,MSGCLASS=R, 000002 // REGION=2048K,CLASS=P,NOTIFY=ACMJET0 000003 //* 000004 //* 000005 //* 000006 //STEP1 EXEC PGM=EHSBATCH 000007 //SYSPRINT DD SYSOUT=* 000008 //STEPLIB DD DISP=SHR,DSN=ACMJET0.HP.R600.LOADLIB 000009 //SYSLIB DD DISP=SHR,DSN=ACMJET0.TEST.SCRIPTS 000010 //SYSIN DD DISP=SHR,DSN=ACMJET0.UNATTND.CONTROL(CICSTEST) ****** **************************** Bottom of Data **************************** 4. After you make any desired edits, either save the JCL for later use or enter the SUBMIT command to run the unattended playback job immediately. Restricting Script Datasets 1. Select option 3 Generate 3270 unattended statements using a standard script profile on the Generate 3270 Unattended Statements menu to apply generation restrictions. The Generation Restrictions screen appears (Figure 6-18). Figure 6-18. Generation Restrictions Screen ------------------- Hiperstation * Generation Restrictions ------------------ Command ===> _ Pre-process scripts - run these scripts prior to each of the scripts selected below. LOGON___ ________ ________ ________ ________ Restrict the generation of unattended statements to script names beginning with the prefix, and/or scripts for a particular application. Script selection options: Generate statements for scripts prefixed by . . . . EOB Generate statements for scripts for application . . Post-process scripts - run these script after each of the scripts selected above. LOGOFF__ ________ ________ ________ ________ Press the ENTER key to continue, the END key to terminate Use this screen as described in “Building Unattended Statements and JCL” on page 6-10. When you press Enter without entering a command, Hiperstation validates the screen entries, generates unattended statements in the defined dataset member, and refreshes the Generation Restrictions screen (Figure 6-18). Use the Generation Restrictions screen to narrow the number of scripts for which Hiperstation generates unattended statements. If you enter a prefix in unattended statement generation, Hiperstation includes only script member names that begin with the prefix characters. If you enter an application in unattended statement generation, Hiperstation includes only script members with that domain destination. Note: Often, the domain destination is not included in scripts created using Hiperstation’s Global Record (release 6.0 and earlier). Entering a domain destination on this screen may exclude all scripts, created with Global Record, from unattended statement generation. 3270 Unattended Processing 6-13 You can also define scripts, such as logon and logoff scripts, to be run before and/or after the generated statements. 2. To run a series of scripts in sequence under one Group statement, use the options on this screen to generate the required statements. For example, to run SCRIPT1, SCRIPT2, and SCRIPT3 in sequence, enter SCRIPT1 as the preprocess script, SCRIPT2 as the script prefix, and SCRIPT3 as the postprocess script. The unattended statement generator then “sandwiches” SCRIPT2 between SCRIPT1 and SCRIPT3 and generates: GROUP... SCRIPT(SCRIPT1) SCRIPT(SCRIPT2) SCRIPT(SCRIPT3) When you press Enter without entering a command, Hiperstation validates the screen entries, generates unattended statements in the dataset member defined on the Unattended Statement Build screen, then shows that member on the ISPF EDIT screen (Figure 6-19). Figure 6-19. ISPF EDIT Screen Showing Restricted Generated Statements File Edit Confirm Menu Utilities Compilers Test Help ------------------------------------------------------------------------------- EDIT ACMJET0.UNATTND.CONTROL(CICSTEST) - 01.00 Columns 00001 00072 Command ===> Scroll ===> PAGE ****** ***************************** Top of Data ****************************** ==MSG> -CAUTION- Profile is set to STATS ON. Statistics did not exist for ==MSG> this member, but will be generated if data is saved. 000001 CONTROL - 000002 BIND(1500) - 000003 KEYU(4500) - 000004 KEY2(2500) - 000005 PREFIX(EHPR) - 000006 SUFFIX(4) - 000007 SWAIT(25) - 000008 USDATE(YES) 000009 GROUP CICSTEST - 000010 LOGD(3) - 000011 REPEAT(1) - 000012 TERM(1) - 000013 THOPT(1) 000014 SCRIPT(LOGON) 000015 SCRIPT(EOB00046) - 000016 REPEAT(1) 000017 SCRIPT(LOGOFF) ****** **************************** Bottom of Data **************************** 3. After you make any desired edits, enter END to advance to the Unattended JCL Build screen (Figure 6-16 on page 6-11). Refer to “Building JCL” on page 6-11 for information on creating JCL to run your generated unattended statements. 6-14 Hiperstation for VTAM User Guide 7-1 Chapter 7. Unattended Playback, Dubbing, and Comparison for 3270 and LU0 Scripts 7 Chap 7 This chapter describes unattended playback, dubbing, and comparison available with Hiperstation for VTAM for 3270 and LU0 scripts. The EHSBATCH program controls unattended mode processing. EHSBATCH helps you perform stress, regression, volume, and concurrent testing of domain destinations such as CICS and IMS/DC, eliminating the need for the user to enter data and drive the application. Note: Hiperstation for VTAM supports script dubbing, while performing unattended playback, and an unattended comparison function that runs independently of playback. While playback for LU0 scripts is generally the same as for 3270 scripts, special considerations for playing back LU0 scripts are included in the last section of this chapter (see “LU0 Special Considerations” on page 7-31). Unattended playback allows you to process multiple scripts running in one or more virtual terminals simultaneously logged on to one or more domain destinations. For example, four terminals can be logged on to CICS41A, and six terminals can be logged on to CICSTEST, each running a series of scripts that exercise the transactions and databases. Unattended dubbing allows you to dub scripts during an unattended playback. With unattended dubbing, you can combine all scripts for a group into one script or create a dubbed script for each script within a group. The unattended comparison batch program compares two scripts with the same name, one in the DUBLIB (actual), one in the SYSLIB (expected). Unattended comparison reports are then produced by the ETRMCMPR batch program. When performing an unattended compare, in addition to the current SYSLIB JCL statement that reads existing members, a separate JCL save statement reads “new” members. The libraries referenced by these two statements can be the same or different. The ddname for the new libraries is the same as that for unattended dubbing. EHSBATCH options are specific to playback and have no bearing on comparison. Hiperstation for VTAM ignores multiple executions of the same script via TERM, COUNT, or REPEAT. For an unattended compare, the Hiperstation for VTAM comparison log and exception log are combined into one dataset and a special report is added to the end of the consolidated logs. The report provides the port number, script name, dubbing script name (if available), and number of logical screen comparison exceptions. Note: A called member must be accessible for a compare, just like an actual playback. Unknown script contents, usually REXX, are passed to the REXX environment for processing. After REXX processing, EHSBATCH manipulates the results. This happens before the distinction between compare and playback is known, so the member must exist for the compare to execute. A compare will fail without access to the subroutines that were used when the expected and actual members were created. The compare will also fail if a script is run through session demo with a call to a member that is not in the script file. 7-2 Hiperstation for VTAM User Guide Using the Unattended Mode Functions 1. Review Storage Requirements for Unattended Mode Processing Ensure that your virtual and caching storage are sufficient for your processing needs. The Hiperstation Installation Guide lists MVS storage requirements for unattended processing. 2. Prepare the Scripts Unattended playback and comparison, like the ISPF interactive mode playback function, rerun previously recorded scripts. If Hiperstation for VTAM was used previously for interactive (TSO/ISPF) execution, usable scripts already exist. Locate the PDSs and define them to unattended playback or unattended comparison through the SYSLIB DD statement. The scripts must be recorded using Hiperstation’s interactive record or Global Recording. Record one or more scripts to handle the following: – Logon sequence – Applications to be exercised – Logoff sequence Separating the logon and logoff events from the testing activity not only supports script reuse but ensures that all activity between those events plays back. For example, if a script contains a logoff event followed by another logon event, playback terminates before the second logon event is encountered. If the logon and logoff events are in the script with the testing activity, you can still play back the scripts; however, each script must appear under a separate GROUP statement, as described later. Note: Because systems like CICS and IMS, by default, allow a single user to log on multiple times on multiple terminals, Hiperstation for VTAM can exercise those systems using a single logon ID. If this poses a security problem in your environment, consider allocating DUMMY logon IDs strictly for unattended mode usage. 3. Identify the Domain Destination The GROUP statement identifies the domain destination (such as CICS or IMS/DC) and the number of terminals to contact that domain destination. Refer to “Unattended Mode Statements” on page 7-3 for more information about GROUP statements. 4. Identify the Scripts to Run The SCRIPT statement identifies the names of the scripts to be run and the number of times to repeat each script. Note: All files used during unattended mode processing must be available for allocation before submitting the batch job. 5. Prepare JCL Hiperstation for VTAM requires JCL that lists the program to be run, the datasets where the scripts reside, an output message dataset, and the input dataset containing the Hiperstation CONTROL statements. The JCL statements are: Table 7-1. JCL Statements for Unattended Mode Functions JCL Statement Description DUBLIB Defines the PDSs where dubbed scripts will be written. DUBLIB is used as the actual screen during unattended compare. Unattended Playback, Dubbing, and Comparison for 3270 and LU0 Scripts 7-3 Table 7-1. JCL Statements for Unattended Mode Functions JCL Statement Description EXEC Required. Specifies the program name (PGM=EHSBATCH). Set the region to about 4096 KB to run 50 terminals. HPERPMSK Optional. Defines the generic masking dataset. See “Generic Masking of Output Data” on page 5-20 for more information. SYSCNTL Optional. Defines the input control dataset containing the Hiperstation CONTROL statements. This dataset’s record length (LRECL) must be 80. Use this dataset to contain CONTROL and COMPANY statements specified by the installation instead of coding them in the SYSIN dataset. This allows the systems programmer to set up a dataset with this information already specified. SYSIN Required. Defines the input dataset containing the Hiperstation CONTROL statements. This dataset’s record length (LRECL) must be 80. The JCL submitted for an unattended mode job cannot contain sequence numbers in columns 73-80. SYSLIB Required. Defines the PDSs that contain the scripts to be run. SYSLIB is used as the expected screen during the unattended compare. SYSPRINT Required. Message dataset for output from unattended playback. The logical record length of the SYSPRINT dataset is 133. 6. Submit the Batch Job Unattended Mode Statements This section describes the input control statements for Hiperstation for VTAM’s unattended playback, dubbing, and comparison functions. It includes statements for LU0 or 3270 processing. These statements control variables such as domain destination selection, the number of terminals, and the scripts to run. The statements appear in alphabetical order following introductory information on the sequencing of statements for 3270 testing. Statement Sequencing The statements must appear in the sequence shown in Figure 7-1. Figure 7-1. 3270 Unattended Mode Statement Sequence CONTROL STATEMENT GROUP STATEMENT SCRIPT SCRIPT … GROUP STATEMENT SCRIPT SCRIPT … STATEMENT STATEMENT STATEMENT STATEMENT There is no limit to the number of GROUP statements that can be specified or the number of SCRIPT statements that follow them. The statements have no column dependence. Statements can be continued on multiple lines if you separate them with the continuation character: a dash (–). However, you cannot use the continuation character to separate a keyword and its operand value. A comment can be placed after the continuation character as long as the dash and comment are separated by at least one blank space. 7-4 Hiperstation for VTAM User Guide CACHEXCL Statement The CACHEXCL statement identifies the scripts you do not want stored in memory. You can use one or more CACHEXCL statements. CEXL is the abbreviation for this statement. ddname(script) Specifies the name of the script you do not want stored in memory. SYSLIB is the default ddname if a ddname is not specified. CACHINCL Statement The CACHINCL statement identifies the scripts that Hiperstation preloads into memory during initialization. You can use one or more CACHINCL statements. CINC is the abbreviation for this statement. ddname(script) Specifies the script name and location. SYSLIB is the default ddname if a ddname is not specified. COMPANY Statement A COMPANY statement defines an alternative company name to use in the title of the batch Hiperstation reports. companyname Identifies a company name up to 40-bytes long. The default is Compuware Corporation. If the company name includes dashes or blanks, you must enclose the name in single quotes. COMPARE Statement The COMPARE statement tells EHSBATCH to perform an unattended compare instead of an unattended playback. The other EHSBATCH unattended playback and unattended dubbing statements are accepted in an unattended compare execution of EHSBATCH. Parameters used by unattended dubbing are used by COMPARE to locate members for comparison. In addition, you can include parameters normally entered on the GROUP and SCRIPT statements that pertain to comparison. If the parameters do not exist on the GROUP or SCRIPT levels, Hiperstation uses the values set on the COMPARE statement. Unattended Playback, Dubbing, and Comparison for 3270 and LU0 Scripts 7-5 Note: A subroutine that is called from within a script member must be accessible for the Unattended Compare to execute properly. It either needs to be in the Script dataset or in a dataset concatenated to the DD SYSLIB in the Unattended Compare JCL. COPT(1|2|3|4) Sets an unattended comparison option that corresponds to options on the Play Setup screen. The COPT parameter has effect only when used in conjunction with either the LOG or XLOG parameter. (1) Log all comparison checks. (2) Mark only alphanumeric character differences. Use this option to ignore differences in screen attribute bytes. (3) Mark comparison checks only if there is a difference in the number of fields on the received and expected screen. (4) Ignore all comparison checks. If you use the XLOG parameter with COPT(4), the log is created and the return code is set to 0. DBCS Double-Byte Character Set. Specifies that terminals in this comparison support twobyte characters. IGND Ignore Numeric Differences. Causes Hiperstation to consider the following conditions as equal (matching): • Actual character and expected character are both numeric. • Actual character is numeric and expected character is blank or null. • Actual character is blank or null and expected character is numeric. All other conditions are mismatches. It discards numeric values during comparison. The IGND keyword has effect only when used in conjunction with either the LOG or XLOG parameter. LOG(class|dsn|dsn(member)) Allocates a comparison log for each terminal in the group. If the value is a single character, the comparison log is allocated to SYSOUT in the class set by that single character. If the value is more than one character, the comparison log is allocated to a permanent file. By default, no log is allocated. The dataset value can be either a dataset name by itself or a dataset name with a member name: LOG(dataset) LOG(dataset(member)) 7-6 Hiperstation for VTAM User Guide The dataset or member or both can contain wildcard characters (* or ?). If a dataset name is supplied with no member and no wildcards, a dataset is created with the name ‘dataset.Pnnnn’, where nnnn is the port number assigned to the terminal. See “Print File Naming Conventions” on page 7-22 for a description of dataset and member names when using wildcards. Note: The LOG and XLOG options are mutually exclusive. ONELOG When ONELOG is used, LOG or XLOG must also be present on the COMPARE statement, and class must be a dataset rather than a SYSOUT. At the end of the job, another dataset is created where .Pnnnn is set to .P0000 if the datasets are sequential. If wildcards (* or ?) are used where the port number is inserted on LOG or XLOG, the 0000 value is inserted at the wildcard location. This dataset contains the LOG/XLOG data of all of the ports. If sequential datasets are used, the individual port LOG/XLOG datasets are deleted as the consolidated dataset is built. If PDSEs are used, the individual members remain. An unattended comparison report is appended to the end of the consolidated dataset or member. See “Print File Naming Conventions” on page 7-22 for a description of dataset and member names when using wildcards. Note: Unattended compare also uses the ONELOG parameter of the GROUP statement to combine the comparison log and exception log into a single dataset and to append a special comparison report. STOPON(n) Stops processing when it reaches the chosen number (n) of mismatches for a particular run. If fewer than the chosen number of mismatches occur, script processing continues to the end. Note: The message shown for script termination is the same one that appears when the script has no mismatches. For this reason, check all messages for the comparison. XLOG (class|dsn|dsn(member)) Allocates an exception log for each terminal in the group. If the value is a single character, the exception log is allocated to SYSOUT in the class set by that single character. If the value is more than one character, the exception log is allocated to a permanent file. By default, no log is allocated. The dataset value can be either a dataset name by itself or a dataset name with a member name: XLOG(dataset) XLOG(dataset(member)) The dataset or member or both can contain wildcard characters (* or ?). If a dataset name is supplied with no member and no wildcards, a dataset is created with the name ‘dataset.Pnnnn’, where nnnn is the port number assigned to the terminal. See “Print File Naming Conventions” on page 7-22 for a description of dataset and member names when using wildcards. Note: The LOG and XLOG options are mutually exclusive. Unattended Playback, Dubbing, and Comparison for 3270 and LU0 Scripts 7-7 CONTROL Statement The CONTROL statement describes some of the environmental tailoring performed during Hiperstation for VTAM installation (such as virtual terminal prefix and suffix, and date field format). Generally the CONTROL statement is not required. BIND(1500|nnnnnnnn) Sets the domain destination bind wait time interval (in hundredths of seconds) for Hiperstation to wait. The default is 1500 (15 seconds). CACHEOFF Does not store scripts in memory. Specifying CACHEOFF may result in higher I/O for scripts that run more than once. Note: If CACHEOFF is specified in the control statement, any REPEAT statement will be invalid because caching is required to repeat a group or script. When CACHEOFF is specified in the control statement, with a REPEAT statement, Hiperstation displays error EHSB075I - KEYWORD (REPEAT) NOT VALID WITH CACHEOFF SPECIFIED. Hiperstation then sets a return code of 8 and shuts down playback. NODEFER Suppresses report consolidation. Report consolidation is programatically turned on when 50 or more reports will be written onto DASD. Report consolidation is meant to save memory during playback when a large number of terminals are in use and memory might be an issue. DEFER Forces report consolidation when fewer than 50 reports will be written to DASD by a CONTROL parameter. Report consolidation is meant to save memory during playback when a large number of terminals are in use and memory might be an issue. DMSKCOMP(Y|N) Enables or disables the use of encrypted masks (<MSK>NNN tags) for the comparison or exception logs. Specify this parameter with a value of Y or N: – Y (default) enables the use of encrypted masks to prevent mismatches from being identified within dark fields. 7-8 Hiperstation for VTAM User Guide – N disables the use of encrypted masks to allow mismatches within dark fields to be identified on a LOG or XLOG. Other forms of masking still take effect and apply to dark fields. This option does not cause dark field data to display on the actual/expected screens. Only the location of the mismatch is identified. DMSKDUB(Y|N) Controls the way encrypted masks (<MSK>NNN tags) are dubbed. Specify this parameter with a value of Y or N: – Y (default) writes encrypted masks into the dubbed script as ‘I’ character masks. – N writes encrypted masks into the dubbed script without ‘I’ character masks. DUB(DUBLIB|ddname,DLOGnnnn|logname|logname(R)) Dubs and combines all scripts within each group into a PDS member, and combines all log records of all groups into a single script. It also combines all log records of all groups into a single PDS member. Dubbing maintains script masking by creating mask lines (see “Mask Individual Characters” on page 5-18). The mask lines are built from the internal mask buffer. The logname variable names the PDS member to contain a log of the dubbed scripts. The logname is a PDS member that contains a list of scripts dubbed for each group. Hiperstation uses this list to build JCL for unattended comparison. – If you enter an alpha character logname (no numbers), and the member already exists, then an error appears saying that the member exists. If the member does not already exist, then Hiperstation creates the member. – If you enter an alphanumeric logname in the format AAAAnnnn (four alpha, four numeric, in that order), and that member exists, then Hiperstation increments the four digit number by 1 and creates the new member. If the member does not already exist, then Hiperstation creates the member. – If you enter any logname and use (R) after, Hiperstation replaces the member if it already exists. KEYU(4500|nnnnnnnn) Sets an unlock time interval in hundredths of a second. Hiperstation waits this amount of time for a response from the application. If a response is not received, Hiperstation issues message EMTRM051 and proceeds with the script. The default is 4500 (45 seconds). KEY2(2500|nnnn) A wait time interval in hundredths of a second. Some applications (like IMS) unlock the keyboard prematurely. Hiperstation recognizes these data streams and waits for additional output. If output is not received, Hiperstation issues message EMTRM054 and proceeds with the script. The default is 2500 (25 seconds). MSGFORM Time stamps messages sent to the SYSPRINT dataset. MSGLEVEL(2) Shows the number of mismatches for each script at script termination. An example of this information is highlighted below: Replaying script test0001 compare exceptions nnnn/tttt where nnnn is the number of mismatches and tttt is the total number of processed messages. This parameter is useful when you want to know the number of mismatches without reviewing the XLOG or script. Unattended Playback, Dubbing, and Comparison for 3270 and LU0 Scripts 7-9 PREFIX(EHPR|hsprefix) Lists the one- to seven-character prefix used for Hiperstation APPLIDs defined during the installation. Ensure that the value inside the parentheses matches the value of variable XTRMPRFX in the ETRMSPAR screen (located in the Hiperstation screen library). The default for the prefix is EHPR. Unless your installation changed the node names at install time, this variable does not need to be changed. RCFORMAT Records input fields in (row,column) format. For example, an input field recorded in standard format as <I01>“data” is recorded in (row,column) format as <I(07,28)>“data”. If you do not include DUB on the CONTROL or GROUP statement, RCFORMAT has no effect. If RCFORMAT is used on the CONTROL level, Hiperstation records input fields for any dubbed GROUP in (row,column) format. If RCFORMAT is used only on the GROUP level, Hiperstation records input fields for any script dubbed in that group in (row,column) format. REXXOFF Suppresses script preprocessing using REXX. Eliminating this preprocessing results in scripts running more efficiently (CPU and memory). Use this parameter only if your scripts do not contain REXX. SUFFIX(4|n) The length of the suffix used for Hiperstation for VTAM APPLIDs defined during the Hiperstation installation. Ensure that the value inside the parentheses matches the value of variable XTRMSUFX in the ETRMSPAR screen (located in the Hiperstation screen library). The default for the suffix is four. Unless your installation changed the node names at install time, this variable does not need to be changed. SWAIT(01|nnn) The amount of time to wait for secondary writes to finish. This value is measured in hundredths of a second. The default is one-hundreth of a second (.01). SWAIT is the batch equivalent of the ETRMSPAR variable XTRMTIME. The maximum time that Hiperstation waits is calculated as follows: SWAIT multiplied by the number of times to check multiplied times four. For example: .01 8 4 = .32. TRACE(sysout_class|dataset) CAUTION: TRACE lets you trace internal Hiperstation for VTAM information. Do not use TRACE without guidance from Hiperstation Customer Support. Allocates a trace for each terminal. Trace contains the actual 3270 data streams that flowed between the application and the virtual terminal. If the value is a single character, the trace is allocated to SYSOUT in the class set by that single character. If the value is more than one character, the trace is allocated to a permanent file. By default, no trace is allocated. The dataset value can be either a dataset name by itself or a dataset name with a member name: TRACE(dataset) TRACE(dataset(member)) Neither the dataset nor the member can contain wildcard characters (* or ?). UNIT(unit) Sets the unit on which the journal or log datasets are dynamically allocated. 7-10 Hiperstation for VTAM User Guide USDATE(YES|NO) Sets the date field format. Enter Y (yes) for MONTH/DAY/YEAR. Enter N (no) for YEAR/MONTH/DAY. Sets the date display format in the reports that the tool creates and in the SYSPRINT messages it issues. Y is the default. For example USDATE(YES) "EHSB910I REPLAY STARTING: 07/26/07" USDATE(NO) "EHSB910I REPLAY STARTING: 07/07/26" MONTH/DAY/YEAR YEAR/MONTH/DAY USESTIME Use start time. Hiperstation normally starts each GROUP statement at the time the unattended playback job begins. The USESTIME keyword can delay the start of selected groups until a later time. This ensures that your scripts’ playback sequence is the same as the recorded sequence. Each GROUP statement containing STIME starts at a time interval after the playback job starts, rather than immediately. With USESTIME supplied, the GROUP statement containing the earliest STIME value starts when playback begins. The GROUP statement with the next chronological STIME value then starts after the amount of time indicated by the difference in STIME values has elapsed. For example, assume the following playback job begins at exactly 9:00 AM: CONTROL USESTIME * GROUP ... STIME(‘2006/07/21_12:05:00.000000’) SCRIPT(AAA) * GROUP ... STIME(‘2006/07/21_12:00:00.000000’) SCRIPT(BBB) Script BBB starts at 9:00 AM and script AAA starts at 9:05 AM. Notes: 1. If USESTIME is used with TIMESYNC, only USESTIME is recognized. If the two parameters are used together, Hiperstation for VTAM issues error EHSB074I - KEYWORD(TIMESYNC) IGNORED - USESTIME SPECIFIED ON CONTROL STATEMENT, ignores the TIMESYNC parameter, and continues playback. 2. Using sub-second STIME intervals with USESTIME is not recommended. One second should be the smallest STIME amount used. VOL(volume) Sets the DASD volume on which the journal or log datasets are dynamically allocated. Note: SMS, or other DASD management tools, can override the value specified on the VOL parameter. DUBTITLE Statement A DUBTITLE statement provides a description of the dubbed scripts. description Description of the dubbed scripts. It can be up to 61-bytes long. Unattended Playback, Dubbing, and Comparison for 3270 and LU0 Scripts 7-11 GROUP Statement The GROUP statement sets the name of the domain destination (such as TSO or CICSTEST), the number of terminals to simulate, parameters that define how Hiperstation will interact with the domain destination (lists terminals connected to a particular domain destination), and allows the user to request a number of documentation types for playback. 7-12 Hiperstation for VTAM User Guide (1) Comparison syntax varies depending on whether a CONTROL statement or a COMPARE statement preceded this GROUP statement. Required Parameter domain_name The domain destination’s VTAM name to use for this group of terminals (such as CICSTEST or TSO). There is no default. Optional Parameters ALLSYNCH Refer to the SYNCH parameter on page 7-18 for information. Note: This parameter is mutually exclusive with SYNCH and TIMESYNC. APPLPROF(OFF|ON) Activates application profiling for playback of formatted 3270 scripts. Note: Because application profiling uses the AID key and LU0 devices do not have an AID key, application profiling has no effect when playing back LU0 scripts. Application profiling examines components of each datastream received and compares them to previously received datastreams to better anticipate the next action that the application takes (for example, send more data or wait for input). During unattended playback without application profiling, Hiperstation uses the following parameter values to determine how long to wait before sending the next input to the application: – – – – – KEYU on page 7-8 IMSUNLOK on page 7-14 KBIGNORE on page 7-15 KEY2 on page 7-8 SWAIT on page 7-9 Unattended Playback, Dubbing, and Comparison for 3270 and LU0 Scripts 7-13 The wait-times established by these parameters must be endured for every transaction (Input/Output). If the application does not respond in the amount of time stipulated by these parameters, Hiperstation times out and produces error messages. Application profiling synchronizes script playback with application responses to ensure successful and efficient playback. It collects response time information to determine how long to wait for the next response. If the application does not respond in the expected time, Hiperstation automatically increases the wait time to help prevent timing out. As Hiperstation gathers more data, wait times typically decrease. This field defaults to OFF. Enter ON to enable application profiling. Note: Short scripts or applications with different types of data streams may take longer to play back when application profiling is enabled. AUTODOC(dsn|type of print|type of doc) Directs output generated by AutoDoc to SYSOUT or DASD dataset. If the value is a single character, documentation produced by AutoDoc goes to a SYSOUT class, and the SYSOUT goes to the class set by the single character. If the value is more than one character, the documentation is allocated to a permanent file. COPT(1|2|3|4) Sets a comparison option similar to that available online. The COPT parameter has effect only when used in conjunction with either the LOG or XLOG parameter. The return code is set based on the parameter value specified. 1: All mismatches. 2: Only alphanumeric character differences. Use this option to ignore differences in screen attribute bytes. 3: Mismatches only if there is a difference in the number of fields on the received and expected screen. 4: Ignore all mismatches. If you use the XLOG parameter with COPT(4), the log is created and the return code is set to 0. If a comparison log is requested, and COPT is not specified, the default of COPT(4) is used. If an exception log is requested, and COPT is not specified, the default of COPT(1) is used. DATA(logon_data) Sends user data to the domain destination during logon. DBCS Double-Byte Character Set specifies that the terminals in this group support two-byte characters. DUB(ddname,logname|logname(R),member|member(R)) Dubs and combines all scripts within the group into a single script. The variables define where the new scripts will be stored, the dataset member that will contain a log of the dubbed scripts, and the dataset member that will contain a combined run of all scripts for this group. Dubbing maintains script masking by creating mask lines (see “Mask Individual Characters” on page 5-18). The mask lines are built from the internal mask buffer. Using the (R) value after logname or member replaces this member if it already exists. The default value is DUB(DUBLIB,DLOGnnnn), where nnnn is a number between 1 and 9999. Hiperstation automatically increments the nnnn value unless you choose (R). 7-14 Hiperstation for VTAM User Guide The logname is a dataset member that contains a list of scripts dubbed for each group. Hiperstation uses this list to build JCL for unattended comparison. Notes: 1. If DUB and NODUB are both used for the same GROUP statement, NODUB takes precedence. 2. If dubbing is active, the REPEAT and TERM counts must be set to 1. IGND Ignore Numeric Differences. IGND does not consider numeric values when testing for mismatches. The IGND keyword has effect only when used in conjunction with either the LOG or XLOG parameter. IMSUNLOK (value_in_script|YES|NO) Expects additional data from the application program after the application has unlocked the keyboard with a special data stream. Some programs and subsystems, such as IMS, send screen images in multiple data streams before they are ready for user input. If one of these data streams indicates that the keyboard is unlocked, Hiperstation normally sends the next <INPUT> from the script, even though more data streams are still coming. This can make playback go out of sync. Setting IMSUNLOK(YES) — or <IMSUNLOK>Y in the script — makes Hiperstation wait for more data from the application when a special data stream is received. Setting IMSUNLOK(NO) — or <IMSUNLOK>N in the script — makes Hiperstation continue with the next item in the script when a special data stream is received. Setting IMSUNLOK(YES) with an application that does not send any data streams after the special data stream can cause frequent EMTRM054 messages during playback. Setting IMSUNLOK(NO) eliminates these messages and speeds playback because Hiperstation no longer waits for data streams that never come. If IMSUNLOK is not used on the GROUP statement or in the script, the value defaults to YES. An IMSUNLOK value used on the GROUP statement overrides any value set in the script. IN4700 (programname) Calls the listed program instead of the default 3270 datastream processing when processing input from the TPF. Also see IN4700 under “GROUP Statement - Optional Parameters for LU0” on page 7-32. INFIRST Normally, Hiperstation waits for the domain destination to send data before beginning script playback. INFIRST initiates playback (send the initial data stream to the domain destination) rather than wait for the initial data stream from the domain destination. The INFIRST parameter eliminates the EMTRM051 message at the start of a playback. Using this parameter has the same effect for the specified group as setting the INFIRST field on the Session Options screen to Y (yes). JOURNAL(class|dsn) Allocates a transaction journal for each terminal in the group. If the value is a single character, the journal is allocated to SYSOUT in the class set by that single character. If the value is more than one character, the journal is allocated to a permanent file. A permanent transaction journal is allocated on the volume and unit set on the CONTROL statement. By default, no transaction journal is allocated. The dataset value can be either a dataset name by itself or a dataset name with a member name: Unattended Playback, Dubbing, and Comparison for 3270 and LU0 Scripts 7-15 JOURNAL(dataset) JOURNAL(dataset(member)) The dataset or member or both can contain wildcard characters (* or ?). Note: If you are using a PDSE for the journal, it must be preallocated, and if the dataset is preallocated, it must be a PDSE. A sequential dataset can be used but is not preallocated. If a dataset name is supplied with no member and no wildcards, Hiperstation creates a dataset with the name dsn.Pnnnn, where nnnn is the port number assigned to the terminal. For example, the statement: GROUP CICS311 TERM(5) JOURNAL (HIPER.CICS.JRN) allocates five journal files. The first is HIPER.CICS.JRN.P0001, and the last is HIPER.CICS.JRN.P0005. See “Print File Naming Conventions” on page 7-22 for a description of dataset and member names when using wildcards. KBIGNORE Ignores the keyboard-restore flag sent by the application. Instead, Hiperstation waits for a “change direction” or “end bracket” flag in deciding when the application can send multiple screens in succession while the keyboard is unlocked. Using this parameter has the same effect for the specified group as setting the KB Restore Action field on the Session Options screen to 2. LASTONLY Compare only on the final or compiled screen images set by the application in response to an input. If you do not use LASTONLY, Hiperstation compares on each screen that, when compiled, makes up the screen image the user sees. LOG(class|dsn) Allocates a comparison log for each terminal in the group. If the value is a single character, the comparison log is allocated to SYSOUT in the class set by that single character. If the value is more than one character, the comparison log is allocated to a permanent file. By default, no log is allocated. The dataset value can be either a dataset name by itself or a dataset name with a member name: LOG(dsn) LOG(dsn(member)) The dataset or member or both can contain wildcard characters (* or ?). Note: If you are using a PDSE for the comparison log, it must be preallocated, and if the dataset is preallocated, it must be a PDSE. A sequential dataset can be used but is not preallocated. If a dataset name is supplied with no member and no wildcards, a dataset is created with the name dsn.Pnnnn, where nnnn is the port number assigned to the terminal. See “Print File Naming Conventions” on page 7-22 for a description of dataset and member names when using wildcards. If the LOG option is specified without the COPT option, the default of COPT(4) is used. Note: The LOG and XLOG options are mutually exclusive. LOGD(sss) Sets a delay time in seconds between logons for each port in the group. The LOGD parameter defaults to a 0-second delay. 7-16 Hiperstation for VTAM User Guide LOGM(logmode) Designates a logmode entry to use for the virtual terminal. If no logon mode is set, Hiperstation for VTAM uses the DLOGMOD value in the VTAM APPLID definition for the virtual terminal. For more information, refer to the Hiperstation Installation Guide. Check the index for “logon mode entries”. MAXWAIT(nnn) The longest time that Hiperstation waits for the completion of any I/O from connected partners before terminating playback. This is the stall detection timer. The default is 75 seconds. To change the setting to 45 seconds, for example, enter: MAXWAIT(045) Note: MAXWAIT is only in effect when APPLPROF=ON. NODUB Does not dub the scripts used to run this group. If DUB and NODUB are used for the same GROUP statement, NODUB takes precedence. ONELOG When used, the LOG or XLOG must also be present on the GROUP statement and must be a dataset rather than a SYSOUT class. At the end of the job, another dataset is created where .Pnnnn is set to .P0000 if the datasets are sequential. If wildcards (* or ?) are used where the port number is inserted on LOG or XLOG, the 0000 value is inserted at the wildcard location. This dataset contains the LOG/XLOG data of all ports. If sequential datasets are used, the individual port LOG/XLOG datasets are deleted as the consolidated dataset is being built. If PDSEs are used, the individual members remain. A special unattended comparison report is appended to the end of the consolidated dataset or member. See “Print File Naming Conventions” on page 7-22 for a description of dataset and member names when using wildcards. Note that QAHiperstation+ has special processing for the consolidated dataset. OUT4700(programname) Calls the listed program instead of the default 3270 datastream processing when processing output from the TPF. Also see OUT4700 under “GROUP Statement Optional Parameters for LU0” on page 7-32. RCFORMAT Records input fields in (row,column) format. For example, an input field recorded in standard format as <I01>“data” is recorded in (row,column) format as <I(07,28)>“data”. If you do not use DUB on the CONTROL statement or the GROUP statement, RCFORMAT has no effect. If you use RCFORMAT on the CONTROL level, Hiperstation will record input fields for any GROUP that is dubbed in (row,column) format. If you use RCFORMAT only on the GROUP level, Hiperstation records input fields for any script dubbed in that group in (row,column) format. Note: Scripts recorded in (row,column) format are not compatible with the Hiperstation for VTAM script processor. RDAHEAD(ON|OFF) Script Read Ahead. Looks forward in the script to determine the next expected activity (for example, send the next input or wait for another output). If you do not include this parameter on the statement, Hiperstation will look ahead one screen at a time. REPEAT(1|n) Sets the number of times the GROUP is repeated. The terminals within the group logon run the scripts and logoff n times. The default is 1. There is no maximum limit. Unattended Playback, Dubbing, and Comparison for 3270 and LU0 Scripts 7-17 Note: If CACHEOFF is specified in the CONTROL statement, any REPEAT statement will be invalid because caching is required to repeat a group or script. When CACHEOFF is specified in the CONTROL statement, with a REPEAT statement, Hiperstation displays error EHSB075I - KEYWORD (REPEAT) NOT VALID WITH CACHEOFF SPECIFIED, sets a return code of 8, and shuts down playback. RLOG(SYSPRINT|class|dsn) Allocates a REXX log for each terminal. If the value is a single character, the REXX log allocates to SYSOUT in the class set by that single character. If the value is more than one character, the REXX log allocates to a permanent file. By default, REXX output is directed to the SYSPRINT dataset. The dataset value can be either a dataset name by itself or a dataset name with a member name: RLOG(dataset) RLOG(dataset(member)) The dataset or member or both can contain wildcard characters (* or ?). Note: If you are using a PDSE for the REXX log, it must be preallocated, and if the dataset is preallocated, it must be a PDSE. A sequential dataset can be used but is not preallocated. If a dataset name is supplied with no member and no wildcards, a dataset is created with the name dsn.Pnnnn, where nnnn is the port number assigned to the terminal. See “Print File Naming Conventions” on page 7-22 for a description of dataset and member names when using wildcards. STARTDLY(sss) Start delay. Sets the number of seconds to elapse between the start of the GROUP statement and when the VTAM LOGON request is sent to the domain destination. Normally, STARTDLY is unnecessary if you are already using the STIME parameter. If STIME is also supplied, the VTAM LOGON to the domain destination occurs after the sum of the STIME value and the STARTDLY value. If LOGD is also supplied, the VTAM LOGON to the domain destination occurs after the sum of the STIME value and the LOGD value. Compuware recommends using STIME instead of STARTDLY to control the start time of your scripts. STIME is more efficient because it uses system resources only when the group finally starts rather than when the batch job begins. STDWAIT(nnn) Sets the standard wait time Hiperstation uses while collecting enough data to determine an exact response time from the application being tested. Measured in hundredths of a second, as nnn. This value is taken from the slow start value used in Application Profiling. The default is 2.5 seconds. Note: STDWAIT is only in effect when APPLPROF=ON. STIME(‘timestamp’) Start time. Indicates the date and time when a script created by Global Record was originally recorded. The timestamp format is: YYYY/MM/DD_HH:MM:SS.TTTTTT. STIME is normally added to the GROUP statement in the 3270 session log by Global Record. You can also add STIME to GROUP statements you have created manually if you want to control the start time of your groups. At playback time, STIME controls when the GROUP statement is started. See the description of USESTIME under “CONTROL Statement” on page 7-7 for an example. 7-18 Hiperstation for VTAM User Guide Compuware recommends using STIME instead of STARTDLY to control the start time of your scripts. STIME is more efficient because it uses system resources only when the group finally starts rather than when the batch job begins. SUMMARY(class|dsn) Generates a summary report for the group. If the value is a single character, the summary report is allocated to SYSOUT in the class set by that single character. If the value is more than one character, the summary report is allocated to a permanent file. By default, no summary report is produced. The dataset or member or both can contain wildcard characters (* or ?). If a dataset name is supplied with no wildcards, no suffix is added to the dataset name. See “Print File Naming Conventions” on page 7-22 for a description of dataset and member names when using wildcards. The dataset value can be either a dataset name by itself or a dataset name with a member name: SUMMARY(dataset) SUMMARY(dataset(member)) SYNCH Indicates whether script run is synchronized within this group or with other groups that use the ALLSYNCH parameter. If SYNCH or ALLSYNCH are not used, the terminals are dispatched on a first ready basis. If SYNCH or ALLSYNCH is used, the inputs are run on all terminals concurrently. Note: This parameter is mutually exclusive with ALLSYNCH and TIMESYNC. TERM(1|nn|termid) Sets the number of terminals to establish in the group, or a single terminal ID. nn is the number of terminals that the group will simulate. The maximum number of terminals that can be simulated depends on the amount of virtual storage available. The default number of terminals is 1. termid designates a single terminal ID (a valid Hiperstation VTAM APPLID) to use to run the scripts in the group. For example, the statement GROUP CICS41A TERM(EHPR0002) selects one terminal and uses the VTAM ID EHPR0002. This is useful in situations where security is based on a single terminal identification. THINK(mm,ss) Sets a think time to override the recorded think time. This parameter is valid only in conjunction with THOPT(3). For example, the statement GROUP CICS41A TERM(1) THOPT(3) THINK(0,1) plays back the script with a think time of one second between transactions. THOPT(1|2|3) Sets a think-time option similar to that available online. 1: Play at full speed. The transactions are played back as quickly as the system can run them. This is the default. 2: Think time recorded in the script. Think time is simulated using the think time recorded in the script. 3: User-set think time. Think time is the amount set by the THINK parameter. THPCT(nnn) Sets a think time percentage. This parameter is valid only in conjunction with THOPT(2) or THOPT(3). For example, the statement GROUP IMSB TERM(10) THOPT(2) THPCT(25) plays back the script at 25 percent of the original think time recorded on the script. Unattended Playback, Dubbing, and Comparison for 3270 and LU0 Scripts 7-19 TIMESYNC Indicates that script execution will be synchronized by time of transaction with other groups that use the TIMESYNC parameter. TIMESYNC single-threads the inputs and guarantees that the transactions run in the same sequence as they were recorded. Note: This parameter is mutually exclusive with ALLSYNCH and SYNCH. This parameter is valid only for version 6 and more current scripts. Note: If USESTIME is used with TIMESYNC, only USESTIME is recognized. If the two parameters are used together, Hiperstation issues error EHSB074I KEYWORD(TIMESYNC) IGNORED - USESTIME SPECIFIED ON CONTROL STATEMENT, ignores the TIMESYNC parameter, and continues with playback. TRACE(class|dsn) CAUTION: TRACE and VTAMTRCE let you trace internal Hiperstation for VTAM information. Do not use TRACE without guidance from Hiperstation Customer Support. If used, allocates a trace for each terminal in the group. Each trace contains the actual 3270 data streams that flowed between the application and the virtual terminal. If the value is a single character, the trace is allocated to SYSOUT in the class set by that single character. If the value is more than one character, the trace is allocated in one or more files. By default, no trace is allocated. The dataset value can be either a dataset name by itself or a dataset name with a member name: TRACE(dataset) TRACE(dataset(member)) The dataset or member or both can contain wildcard characters (* or ?). If a dataset name is supplied with no member and no wildcards, a dataset is created with the name dsn.Pnnnn, where nnnn is the port number assigned to the terminal. See “Print File Naming Conventions” on page 7-22 for a description of dataset and member names when using wildcards. VTAMTRCE Indicates that the trace contains additional VTAM data such as the bind, RPLs, and response and bracket conditions. XLOG(class|dsn) Allocates an exception log for each terminal in the group. If the value is a single character, Hiperstation allocates the exception log to SYSOUT in the class set by that single character. If the value is more than one character, the exception log is allocated to a permanent file. By default, no log is allocated. The dataset value can be either a dataset name by itself or a dataset name with a member name: XLOG(dataset) XLOG(dataset(member)) The dataset or member or both can contain wildcard characters (* or ?). Note: If you are using a PDSE for the exception log, it must be preallocated, and if the dataset is preallocated, it must be a PDSE. A sequential dataset can be used but is not preallocated. 7-20 Hiperstation for VTAM User Guide If a dataset name is supplied with no member and no wildcards, a dataset is created with the name dataset.Pnnnn, where nnnn is the port number assigned to the terminal. See “Print File Naming Conventions” on page 7-22 for a description of dataset and member names when using wildcards. If mismatches occur, the return code is normally set to 8. If you use XLOG and set the value of the COPT parameter to 4, Hiperstation for VTAM generates an XLOG with a return code of 0 (zero) even if there are mismatches. If the XLOG option is specified without the COPT option, the default value of COPT(1) is used. Note: The LOG and XLOG options are mutually exclusive. SCRIPT Statement A SCRIPT statement sets a SCRIPT (member name from the SYSLIB) to run in the domain destination that was specified on the preceding GROUP statement and optionally indicates the number of times to run the script. One or more SCRIPT statements follow a GROUP statement. Note: (1) Dubbing syntax varies depending on whether DUB or NODUB is specified on the higher level CONTROL or GROUP statement. Required Parameter scriptname Sets a script to run on the terminals listed on the preceding GROUP statement. One or more SCRIPT statements follow a GROUP statement. Optional Parameters DUBMEM(scriptname(R)|member|member(R)) Dubs the script. The member variable defines the dataset member to contain the dubbed script. Using the (R) value after member replaces this member if it already exists. The default value is DUBMEM(script_name(R)). Notes: Unattended Playback, Dubbing, and Comparison for 3270 and LU0 Scripts 7-21 1. When dubbing several scripts, use DUBMEM after each script to be dubbed, and NODUB after scripts you do not want dubbed. Each script in the group needs to be labeled either DUBMEM or NODUB. 2. If DUBMEM and NODUB are used for the same SCRIPT statement, NODUB takes precedence. 3. If a member is used in the GROUP statement, the DUBMEM parameter is ignored. 4. If dubbing is active and no member is used at the group level, the REPEAT count must be 1. 5. To activate dubbing, the DUB keyword must be on the GROUP or CONTROL statement. NODUB Does not dub this script. If DUBMEM and NODUB are used on the same SCRIPT statement, NODUB takes precedence. REPEAT(1|nnn) Sets the number of times a script plays back. This has the same effect as defining a value for the Repetition Count field on the Play Setup screen. The default is 1 (one). Note: If the script contains a CICS logoff or TSO signoff, an unbind is issued and the port is terminated. If CACHEOFF is specified in the control statement, any REPEAT statement will be invalid because caching is required to repeat a group or script. When CACHEOFF is specified in the control statement, with a REPEAT statement, Hiperstation displays error EHSB075I - KEYWORD (REPEAT) NOT VALID WITH CACHEOFF SPECIFIED, sets a return code of 8, and shuts down playback. SKIPCMP(sequence of output groups) Enter a range of <OUTPUT> groups. Compare processing is bypassed for <OUTPUT> groups that fall within this range. For example, entering 1-3, 6, 77 bypasses compare processing for <OUTPUT> groups 0000001, 0000002, 0000003, 0000006, and 0000077. STOPON(n) Stops processing when it reaches the set number (n) of mismatches for that run. If fewer than the set number of mismatches occur, Hiperstation continues script processing to the end. Note: The message shown for script termination is the same as the one that appears when the script has no mismatches. For this reason, check all messages for the playback and/or comparison. WAITMORE(sequence of input groups) Delays playback for a range of <INPUT> groups. It supports testing applications where certain steps in the flow require more time to build the screen accepting the <INPUT> group. For example, entering an order in an order processing application may be fast, but the last step, credit card submission, may require more time. Specify that <INPUT> on the WAITMORE parameter to help keep the script synchronized with the application. Specify the range of <INPUT> groups to delay. For example, if you enter WAITMORE (1, 3, 7-99), Hiperstation waits the amount of time specified on the STDWAIT parameter before playing input groups 1, 3, and 7 to 99. If you did not specify an STDWAIT, Hiperstation waits the STDWAIT default of one hundredth of a second. 7-22 Hiperstation for VTAM User Guide Print File Naming Conventions • No wildcards are allowed in the dataset or member on the CONTROL TRACE keyword. • If no wildcards are supplied on the GROUP SUMMARY value, the dataset (and optional member) are created exactly as written. • If no wildcards and no member are supplied on the GROUP JOURNAL, LOG, XLOG, RLOG, AUTODOC, and TRACE value, the dataset is suffixed with the value Pnnnn where nnnn is the current port number. • If a member but no wildcards are supplied on the GROUP JOURNAL, LOG, XLOG, RLOG, AUTODOC, and TRACE value, the dataset and member are created exactly as written. • Except for the CONTROL TRACE value, wildcard characters (* or ?) can be present on either or both the dataset and member. • Wildcard characters indicate the location in the name where the port number (for JOURNAL, LOG, XLOG, RLOG, AUTODOC, and TRACE) or the group number (for SUMMARY) is inserted. • A single ‘*’ inserts the current port or group number with enough leading zeros to create a dataset segment (the part between the dots) or member name with a length of eight characters. • One or more ‘?’ inserts the current port or group number with enough leading zeros so that the number is the same length as the question marks. • You cannot put a wildcard in the first position of a dataset segment or a member name. • If ‘*’ is used, it can appear only once in a dataset name or member name or both. • If ‘?’ is used, it can appear more than once in a dataset name or a member name or both. • If several ‘?’ are supplied, they cannot be separated from each other by any characters. • The ‘*’ and ‘?’ cannot both appear in a dataset name or member name. Print file naming examples: CONTROL TRACE(abc.def) - no wildcards allowed in the dataset - produces: abc.def CONTROL TRACE(abc.def(xyz)) - no wildcards allowed in the dataset or member - produces: abc.def(xyz) GROUP SUMMARY(abc.def) - produces: abc.def GROUP SUMMARY(abc.def(xyz)) - produces: abc.def(xyz) GROUP {JOURNAL,LOG,XLOG,RLOG,AUTODOC,TRACE}(abc.def) - produces: abc.def.P0001 GROUP {JOURNAL,LOG,XLOG,RLOG,AUTODOC,TRACE}(abc.def(xyz)) - produces: abc.def(xyz) GROUP ...(abc*.def) - produces: abc00001.def GROUP ...(abc.d*ef) - produces: abc.d00001ef GROUP ...(abc.d?ef) - produces: abc.d1ef GROUP ...(abc.d???ef) - produces: abc.d001ef GROUP ...(abc.def(xyz*)) Unattended Playback, Dubbing, and Comparison for 3270 and LU0 Scripts 7-23 - produces: abc.def(xyz00001) GROUP ...(abc.de*(xyz)) - produces: abc.de000001(xyz) GROUP ...(abc.d*f(x????z)) - produces: abc.d000001f(x0001z) GROUP ...(abc.?def) - WRONG GROUP ...(abc.def(*xyz)) - WRONG GROUP ...(abc.def*?) - WRONG GROUP ...(abc.d?ef?) - WRONG 3270 Unattended Playback, Dubbing and Comparison Sample JCL The following examples show sample JCL for 3270 testing. The first example is followed by increasingly complex scenarios. Example 1: Play Back a Single Script, Single Terminal In Figure 7-2, Hiperstation will run a script named DBCLOSE in a CICS region named CICS41A. The script is contained in the dataset ESA1.RECBIG.DATA. A transaction journal is created in SYSOUT class A, used on the JOURNAL parameter on the GROUP statement. Figure 7-2. JCL to Play Back Single Script, Single Terminal //HIPER EXEC PGM=EHSBATCH,REGION=4096K //STEPLIB DD DSN=HIPER.LOAD,DISP=SHR //SYSLIB DD DSN=ESA1.RECBIG.DATA,DISP=SHR //SYSPRINT DD SYSOUT=* //SYSIN DD * GROUP CICS41A JOURNAL(A) SCRIPT(DBCLOSE) Example 2: Play Back Multiple Scripts, Single Terminal In Figure 7-3, Hiperstation will run a script named IMSLOGON in an IMS/DC region named ICR1. When IMSLOGON is finished, the script IMSEXER runs. Finally, the script IMSOFF runs. The scripts are contained in the datasets RPN1.IMS.RECORD and SYS2.RECORD.DATA. Figure 7-3. JCL to Play Back Multiple Scripts, Single Terminal //HIPER EXEC PGM=EHSBATCH,REGION=4096K //STEPLIB DD DSN=HIPER.LOAD,DISP=SHR //SYSLIB DD DSN=RPN1.IMS.RECORD,DISP=SHR // DD DSN=SYS2.RECORD.DATA,DISP=SHR //SYSPRINT DD SYSOUT=* //SYSIN DD * GROUP ICR1 SCRIPT(IMSLOGON) SCRIPT(IMSEXER) SCRIPT(IMSOFF) 7-24 Hiperstation for VTAM User Guide Example 3: Play Back Multiple Scripts, Multiple Terminals In Figure 7-4, Hiperstation will run three scripts using 10 terminals logged on to CICS region CICSPROD. CICSEXER, set on the second SCRIPT statement, runs 20 times on each terminal. In addition, each terminal reconnects and plays back the scripts five times. Figure 7-4. JCL to Play Back Multiple Scripts, Multiple Terminals //HIPER EXEC PGM=EHSBATCH,REGION=4096K //STEPLIB DD DSN=HIPER.LOAD,DISP=SHR //SYSLIB DD DSN=ESA1.RECBIG.DATA,DISP=SHR //SYSPRINT DD SYSOUT=* //SYSIN DD * GROUP CICSPROD TERM(10) REPEAT(5) SCRIPT(CICSON) SCRIPT(CICSEXER) REPEAT(20) SCRIPT(CICSOFF) Example 4: Play Back Multiple Scripts, Multiple Terminals, and Multiple Domain Destinations In Figure 7-5, Hiperstation is used for stress testing. A number of scripts are run simultaneously in CICS on 20 different terminals and IMS/DC on 40 terminals. In addition, the region CICS41A runs multiple different scripts simultaneously on different terminals. To do this, establish two terminal groups — both running against CICS41A but defining different scripts. Figure 7-5. JCL to Play Back Multiple Scripts, Terminals, and Transaction Processing //HIPER EXEC PGM=EHSBATCH,REGION=4096K //STEPLIB DD DSN=HIPER.LOAD,DISP=SHR //SYSLIB DD DSN=ESA1.RECBIG.DATA,DISP=SHR // DD DSN=SYS2.IMS.RECORDS,DISP=SHR // DD DSN=SYS2.CICS.RECORDS,DISP=SHR //SYSPRINT DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //SYSIN DD * CONTROL PREFIX(DHPR) COMPANY *** YOUR NAME HERE *** GROUP CICS41A TERM(10) SCRIPT(CICSON) SCRIPT(CICSEXER) REPEAT(20) SCRIPT(CICSOFF) GROUP CICS41A TERM(10) SCRIPT(CICSON) SCRIPT(OLTEST) REPEAT(20) SCRIPT(CICSOFF) GROUP IMSREG1 TERM(40) SCRIPT(IMSON) SCRIPT(GLTEST1) REPEAT(10) SCRIPT(GLTEST2) REPEAT(50) SCRIPT(GLTEST3) REPEAT(20) SCRIPT(IMSOFF) Example 5: Play Back and Compare All Scripts in a Group In Figure 7-6, all of the scripts in a single group are played back. The results are stored in the exception log (XLOG). Unattended Playback, Dubbing, and Comparison for 3270 and LU0 Scripts 7-25 Figure 7-6. JCL to Play Back and Compare Scripts //HIPER EXEC PGM=EHSBATCH,REGION=4096K //STEPLIB DD DSN=HIPER.LOAD,DISP=SHR //SYSLIB DD DSN=ESA.RECBIG.DATA,DISP=SHR //SYSPRINT DD SYSOUT=* //SYSIN DD * GROUP CICSPROD COPT(1) XLOG(*) SCRIPT(CICSON) SCRIPT(CICSEXER) SCRIPT(CICSOFF) Example 6: Dub All Scripts in a Group In Figure 7-7, all scripts in a single group are dubbed. The dubbed scripts will be stored in dataset ESA.RECBIG.DATA2. A log of the dubbed scripts will be stored in DLOGnnnn. Figure 7-7. JCL to Dub All Scripts in a Group //HIPER EXEC PGM=EHSBATCH,REGION=4096K //STEPLIB DD DSN=HIPER.LOAD,DISP=SHR //SYSLIB DD DSN=ESA.RECBIG.DATA,DISP=SHR //DUBLIB DD DSN=ESA.RECBIG.DATA2,DISP=SHR //SYSPRINT DD SYSOUT=* //SYSIN DD * CONTROL DUB GROUP CICSPROD SCRIPT(CICSON) SCRIPT(CICSEXER) SCRIPT(CICSOFF) Example 7: Exclude Scripts from Dubbing In Figure 7-8, the script CICSEXER is dubbed. The dubbed scripts will be stored in dataset ESA.RECBIG.DATA2. A log of the dubbed scripts will be stored in DLOGnnnn. Figure 7-8. JCL to Exclude Scripts from Dubbing //HIPER EXEC PGM=EHSBATCH,REGION=4096K //STEPLIB DD DSN=HIPER.LOAD,DISP=SHR //SYSLIB DD DSN=ESA.RECBIG.DATA,DISP=SHR //DUBLIB DD DSN=ESA.RECBIG.DATA2,DISP=SHR //SYSPRINT DD SYSOUT=* //SYSIN DD * CONTROL DUB GROUP CICSPROD SCRIPT(CICSON) NODUB SCRIPT(CICSEXER) SCRIPT(CICSOFF) NODUB Example 8: Dub and Combine Scripts, Single Group In Figure 7-9, all of the scripts in a single group are dubbed. All of the scripts for this group will be stored in dataset member COMBINED of ESA.RECBIG.DATA2. A log of the dubbed scripts will be stored in DLOGnnnn. 7-26 Hiperstation for VTAM User Guide Figure 7-9. JCL to Dub and Combine Scripts //HIPER EXEC PGM=EHSBATCH,REGION=4096K //STEPLIB DD DSN=HIPER.LOAD,DISP=SHR //SYSLIB DD DSN=ESA.RECBIG.DATA,DISP=SHR //DUBLIB DD DSN=ESA.RECBIG.DATA2,DISP=SHR //SYSPRINT DD SYSOUT=* //SYSIN DD * GROUP CICSPROD DUB(DUBLIB,,COMBINED) SCRIPT(CICSON) SCRIPT(CICSEXER) SCRIPT(CICSOFF) Example 9: Dub Multiple Groups In Figure 7-10, all of the groups are dubbed except the first group. All dubbed scripts in the third group will be stored in dataset ESA.RECBIG.DATA2. The other groups will be stored in SYS2.RECORD.DATA2. A log is created in datasets ESA.RECBIG.DATA2 and SYS2.RECORD.DATA2 with the name DLOGnnnn. Figure 7-10. JCL to Dub Multiple Groups //HIPER EXEC PGM=EHSBATCH,REGION=4096K //STEPLIB DD DSN=HIPER.LOAD,DISP=SHR //SYSLIB DD DSN=ESA1.RECBIG.DATA,DISP=SHR // DD DSN=RPN1.IMS.RECORD,DISP=SHR // DD DSN=SYS2.RECORD.DATA,DISP=SHR // DD DSN=ESA.RECBIG.DATA,DISP=SHR //DUBLIB DD DSN=SYS2.RECORD.DATA2,DISP=SHR //DUBLIB2 DD DSN=ESA.RECBIG.DATA2,DISP=SHR //SYSPRINT DD SYSOUT=* //SYSIN DD * CONTROL DUB GROUP CICS41A NODUB SCRIPT(DBCLOSE) GROUP ICR1 SCRIPT(IMSLOGON) NODUB SCRIPT(IMSEXER) SCRIPT(IMSOFF) NODUB GROUP CICSPROD DUB(DUBLIB2) SCRIPT(CICSON) SCRIPT(CICSEXER) SCRIPT(CICSOFF) GROUP ICR1 SCRIPT(IMSLOGON) NODUB SCRIPT(IMSEXER2) SCRIPT(IMSOFF) NODUB Example 10: Compare All Specified Scripts in a Group In Figure 7-11, all of the scripts in a single group are compared to previously dubbed scripts of the same name located in dataset ESA.RECBIG.DATA2. Figure 7-11. JCL to Compare All Specified Scripts in a Group //HIPER EXEC PGM=EHSBATCH,REGION=4096K //STEPLIB DD DSN=HIPER.LOAD,DISP=SHR //SYSLIB DD DSN=ESA.RECBIG.DATA,DISP=SHR //DUBLIB DD DSN=ESA.RECBIG.DATA2,DISP=SHR //SYSPRINT DD SYSOUT=* //SYSIN DD * COMPARE COPT(1) XLOG(*) GROUP CICSPROD SCRIPT(CICSON) SCRIPT(CICSEXER) SCRIPT(CICSOFF) Unattended Playback, Dubbing, and Comparison for 3270 and LU0 Scripts 7-27 Example 11: Compare Multiple Groups In Figure 7-12, all of the scripts in each group are compared to previously dubbed scripts of the same name. The scripts in the third group are compared to the same-name scripts located in dataset ESA.RECBIG.DATA2, while the scripts in the other groups are compared to the scripts in SYS2.RECORD.DATA2. Figure 7-12. JCL to Compare Multiple Groups //HIPER EXEC PGM=EHSBATCH,REGION=4096K //STEPLIB DD DSN=HIPER.LOAD,DISP=SHR //SYSLIB DD DSN=ESA1.RECBIG.DATA,DISP=SHR // DD DSN=RPN1.IMS.RECORD,DISP=SHR // DD DSN=SYS2.RECORD.DATA,DISP=SHR // DD DSN=ESA.RECBIG.DATA,DISP=SHR //DUBLIB DD DSN=SYS2.RECORD.DATA2,DISP=SHR //DUBLIB2 DD DSN=ESA.RECBIG.DATA2,DISP=SHR //SYSPRINT DD SYSOUT=* //SYSIN DD * COMPARE COPT(1) XLOG(*) GROUP CICS41A SCRIPT(DBCLOSE) GROUP ICR1 SCRIPT(IMSLOGON) SCRIPT(IMSEXER) SCRIPT(IMSOFF) GROUP CICSPROD DUB(DUBLIB2) SCRIPT(CICSON) SCRIPT(CICSEXER) SCRIPT(CICSOFF) GROUP ICR1 SCRIPT(IMSLOGON) SCRIPT(IMSEXER2) SCRIPT(IMSOFF) Example 12: LU0 Script In Figure 7-13, Hiperstation replays one LU0 script. The script (HPLU0001) was recorded using Global Record because LU0 scripts cannot be recorded using the Hiperstation online recording features. Hiperstation waits 15 seconds after receiving data from the application before responding. The Keyboard Restore flag is not used by this application to signal an end to sending, so the KBIGNORE parameter is used. This site has defined LU0 virtual terminals using prefix EHLU0. Figure 7-13. JCL to Compare Multiple Groups //HIPER EXEC PGM=EHSBATCH,REGION=4096K //STEPLIB DD DSN=HIPER.LOAD,DISP=SHR //SYSLIB DD DSN=GLOBAL.RECORD.SCRIPTS,DISP=SHR //SYSIN DD * CONTROL KEYU(1500) PREFIX(EHLU0) SUFFIX(3) GROUP LU0APPL - KBIGNORE - LOGMODE(IBM3600) SCRIPT(HPLU0001) Replacing Data with Unformatted Scripts Since LU0 scripts are unformatted, all inputs and outputs are recorded in <HEX> format. What you see in the script is actually a character representation of the hex string in quotes, followed by a comment containing the character string itself. A sample follows: 7-28 Hiperstation for VTAM User Guide Figure 7-14. Character Representation of Hex String <HEX>"D8C7F3F0F0F2F1F9F2F1D6F0F0D501C1" <HEX>"D7F4F5F5F2F6FCC1D3C3C1D4C9D9C242" <HEX>"F0F0F0F102F0F0F5F9" /*QG30021921O00N.A*/ /*P45526.ALTAMIRB.*/ /*0001.0059 */ Hiperstation facilities, like compare, dub, and message filtering, all support unformatted scripts. REXX commands can be added to these scripts, and it is possible to edit and place a variable in these strings. Note: Unattended playback will give unexpected results if the comment block is removed. Method 1: The sample above contains a transaction code (QG30), a userid (AP45526) and a password (ALTAMIRB). The following approach can be used to replace a userid and password with REXX variables using the Hiperstation EXECUTE statement and the REXX C2X (character-to-hex) function. Note that an empty comment block is concatenated to the end of VarHex1 and VarHex2. The first two <HEX> lines are deleted and replaced with two <EXECUTE> lines. Figure 7-15. Method 1 Sample UserChar = 'AP45526' PwdChar = 'ALTAMIRB' UserChar.Pre = SUBSTR(UserChar,1,1) UserChar.Suf = SUBSTR(UserChar,2,6) * VarHex1 = D8C7F3F0F0F2F1F9F2F1D6F0F0D501||C2X(UserChar.Pre)||' /* */' VarHex2 = C2X(UserChar.Suf)||FC||C2X(PwdChar)||42||' /* */' <EXECUTE>"<HEX>"||VarHex1 <EXECUTE>"<HEX>"||VarHex2 <HEX>"F0F0F0F102F0F0F5F9" /*0001.0059 */ Method 2: Figure 7-16. Method 2 - First Sample <INPUT>0000004 <THINK>00.26.871 AT 00:00:29.011 <HEX>"F94EF2114CD2A84040114CF9A3114EC9" <HEX>"A597" </INPUT> /*9+2.<Ky /*vp .<9t.+I*/ */ A simpler approach is to “break up” a <HEX> line into smaller lines in order to isolate a variable from the string. In this example, the input sequence above is identical to the sequence below. Remember that the comment block is always required. Experience shows that it should start at column 44. Unattended Playback, Dubbing, and Comparison for 3270 and LU0 Scripts 7-29 Figure 7-17. Method 2 - Second Sample COLS> ----+----1----+----2----+----3----+----4----+----5----+----6--- cvar="+I" hvar=c2x(cvar) <INPUT>0000004 <THINK>00.26.871 AT 00:00:29.011 <HEX>"F94EF2114CD2A84040114CF9A311" /**/ <HEX>hvar /**/ <HEX>"A597" /**/ </INPUT> Unattended Mode Return Codes Hiperstation for VTAM reports an MVS return code for each step of an unattended playback job. The return code is a numeric value that indicates whether the job step completed successfully and to what degree. See Table 7-2 on page 7-30 for a complete list of Hiperstation unattended playback return codes. Note: For more definitive playback results, you can add REXX logic to a script to return a specific value based on the criteria you supply. This is called a ‘script’ or ‘custom’ return code. Refer to the Hiperstation Scripting Reference to learn how to define custom return codes. The location of your return codes is dependent on your system configuration. On some systems, with the correct job statement parameter, return codes appear in your TSO session. On others, they are written to a job log. If you need help locating your return codes, see your system administrator. Hiperstation also writes the following informational message to the SYSPRINT at job completion: EHSB098I MAXIMUM SCRIPT RC=rc, INTERNAL RC=rc This message, in most cases, reports the highest script and internal return code values. The larger of these two values is returned as the job step completion code. Note: If you did not define custom return codes, this message reports 0 for the SCRIPT RC value. If there are multiple scripts within the GROUP statement, Hiperstation returns the value set by the last script processed. For example, Hiperstation reports the return code from the LOGOFF script in the following GROUP. GROUP SCRIPT(LOGON) SCRIPT(TEST) SCRIPT(LOGOFF) Due to this processing rule, the EHSB098I message may not report the highest return code value for this type of playback job. For example, if the TEST script returned an internal return code value of 4, and the LOGOFF script returned a value of 0, EHSB098I reports a value of 0 for the INTERNAL RC. If the GROUP statement has a COUNT parameter that initiates concurrent playback sessions, or a REPEAT parameter that initiates consecutive playback sessions, Hiperstation returns the highest value of all of the sessions. For example, a GROUP statement with COUNT(2) and REPEAT(3) initiates two concurrent playback sessions, repeated three times consecutively. If the first repeat returns a code of 0 for one playback session and 12 7-30 Hiperstation for VTAM User Guide for the other, the second repeat yields 8 and 0, and the third repeat yields 0 and 0, as shown in the table below, Hiperstation returns 12 for the job step completion code. Session 1 Session 2 REPEAT Scripts in GROUP RC Scripts in GROUP RC 1 Script 0 Script 12 2 Script 8 Script 0 3 Script 0 Script 0 If a GROUP statement contains multiple SCRIPT statements, and has a COUNT parameter, Hiperstation compares the return code set by the last script processed in each session and returns the highest value. For example, the following playback statements result in two concurrent playback sessions in which LOGON, TEST and LOGOFF are played consecutively. GROUP COUNT(2) SCRIPT(LOGON) SCRIPT(TEST) SCRIPT(LOGOFF) If the last script processed in the first session yields a code of 4, and the last script processed in the second session yields a code of 12, as shown in the table below, Hiperstation returns a job step completion code of 12. Session 1 Session 2 Scripts in GROUP RC Scripts in GROUP RC LOGON 0 LOGON 0 TEST 0 TEST 4 LOGOFF 4 LOGOFF 12 In addition to the EHSB098I message, Hiperstation writes status, error, and warning messages to SYSPRINT. If the playback job step returns a non-zero code, review the return code description provided in Table 7-2. Then review the warning and error messages to determine the cause of the problem. Refer to the Hiperstation Messages and Codes guide for help with error resolution. Table 7-2. Hiperstation for VTAM Unattended Playback Return Codes RC Description 0 All scripts ran successfully. 8 Occurs when the COPT option setting flags a mismatch and LOG or XLOG is specified. 12 Error: LU6.2 or LU2 unattended mode process contains exceptions at the record level. For example: 16 • One or more corresponding record lengths are not equal • Sense data is not equal on one or more records • Log data is not the same length for corresponding records. Error: Invalid script statement found Unattended Playback, Dubbing, and Comparison for 3270 and LU0 Scripts 7-31 Table 7-2. Hiperstation for VTAM Unattended Playback Return Codes RC Description 20 Serious Error: • Port could not be started because LU2 application is not valid or not active • Port started, but could not be initialized • REXX EXEC/script not found. 24 Serious Error: The first port to be started could not start — the unattended mode process is terminated. If other ports are started, unattended mode continues. 28 SEVERE ERROR: Port subtask could not be started. • SYSPRINT could not be opened or error occurred processing SYSPRINT • SYSIN could not be opened or error occurred processing SYSIN • SYSCNTL could not be opened or error occurred processing SYSCNTL • User failed security authorization • Either LU2 or LU6.2 pool names could not be built from the provided prefix and suffix values. • Product is not licensed for LU6.2 (APPC) unattended mode processing • LU6.2 is not supported for LU6.2 scripts • Trace could not be initialized • No terminals found to be played back • VTAM initialization error. • A syntax error exists on the JOURNAL, LOG, XLOG, RLOG, AUTODOC, SUMMARY, or TRACE keywords on the CONTROL, GROUP, ALLOCATE, or COMPARE statements. 32 SERIOUS ERROR: A print file is full or could not be processed. The print files are the JOURNAL, LOG, XLOG, RLOG, AUTODOC, SUMMARY, and TRACE files. 40 SEVERE ERROR: Hiperstation is about to expire or has expired. Contact Hiperstation Customer Support for a date extension and new release availability information. 44 SECURITY ERROR: Hiperstation detected an unauthorized default parameter table. Contact your systems programmer. The most common cause of the RC=44 is a non-authorized SQQFLOAD. LU0 Special Considerations This section explains special considerations for LU0 testing. Unattended Mode Statements The unattended mode statements apply to both 3270 and LU0 testing with some exceptions. Review the following sections to determine if any of these considerations apply to your testing requirements. CONTROL Statement The LU0 CONTROL statement and its parameters have the same meaning as the 3270 CONTROL statement with the following exceptions: 7-32 Hiperstation for VTAM User Guide KEYU For LU0 playbacks, this is the amount of time Hiperstation waits for the next output from the TPF or application. Following the expiration of KEYU, Hiperstation assumes that the application has finished sending data and sends the next <INPUT> group. The default is 4500 or 45 seconds. This will normally be more than sufficient to keep scripts synchronized. If your playbacks seem sluggish, then reduce the KEYU setting. Note: Although the meanings of the PREFIX and SUFFIX parameters are the same, often the LU0 and 3270 PREFIX and SUFFIX values are different. GROUP Statement - Optional Parameters for LU0 DATA Some LU0 implementations, in particular those that use IMS Fastpath, require a user ID and password during session establishment. Hiperstation uses the DATA parameter to supply this data to the application during session establishment. KBIGNORE Use this parameter for LU0 playbacks. When this parameter is specified Hiperstation will not use the Keyboard Restore indicator in the datastream as an indication that the application has finished sending data. Since the Keyboard Restore flag is a 3270 datastream write control command, most LU0 implementations do not use it. LOGM Use an LU0 logmode. Example - Replay 1 LU0 script. The script (HPLU0001) was recorded using Global Record (LU0 scripts cannot be recorded using Hiperstation online recording). Hiperstation waits for 15 seconds following the receipt of data from the application prior to responding. The keyboard restore flag is not used by this application to signal an end to sending so the KBIGNORE parameter is used. This site has defined LU0 virtual terminals using the prefix EHLU0. //HIPER EXEC PGM=EHSBATCH,REGION=4096K //STEPLIB DD DSN=HIPER.LOAD,DISP=SHR //STEPLIB DD DSN=GLOBAL.RECORD.SCRIPTS,DISP=SHR //SYSIN DD * CONTROL KEYU(1500) PREFIX(EHLU0) SUFFIX(3) GROUP LU0APPL - KBIGNORE- LOGMODE(IBM3600) SCRIPT(HPLU0001) IN4700 When you require no special user conversion routine, specify IN4700(IEFBR14) to bypass default 3270 datastream processing for LU0 input. OUT4700 When you require no special user conversion routine, specify OUT4700(IEFBR14) to bypass default 3270 datastream processing for LU0 output. 8-1 Chapter 8. Quick Play — Select a Script and Go Chap 8 Use Quick Play to initiate interactive playback without accessing Domain Traveler. Quick Play can display a list of all scripts in a selected dataset if you are unsure of the name of the script you want to play. You can also browse or edit scripts from Quick Play. Running Quick Play To run Quick Play: 1. Select option 2 Quick Play from the Hiperstation for VTAM Main Menu. The Quick Play Script Dataset screen appears (Figure 8-1). Figure 8-1. Quick Play Script Dataset Screen Hiperstation ------------------- Quick Play ----------------------------------- Command ===> Script Data Set: Project . . . . . . HPER Group . . . . . . . TEST Type . . . . . . . SCRIPTS Member. . . . . . . A* (Blank or pattern for member selection list) Other PDS. . . . . . Press Enter to continue and END to terminate 2. Enter either the script dataset name or the script name. If you do not know the script name, leave the Member field blank or insert a wildcard (for example, A*) to view a list of scripts in the selected dataset. Press Enter. 3. If you entered a valid dataset and script name, Quick Play connects to the domain destination found in the script and begins playing. If the script does not contain a domain destination, Quick Play connects to the last domain destination you accessed. If you left the Member field (script name) blank or entered a wildcard, the Select and Play screen appears (Figure 8-2). This screen lists the scripts contained in the selected dataset. 8-2 Hiperstation for VTAM User Guide Figure 8-2. Quick Play Select and Play Screen Hiperstation ------------------ Select and Play ------------- Row 1 to 9 of 39 Command ===> Primary Commands: APPL, SESS, CANCEL Line commands : (B)rowse, (E)dit, (O)ptions, (P)lay Script Data Set: Project . . . . . . HIPER Group . . . . . . . TEST Type . . . . . . . SCRIPTS Other PDS. . . . . . Current Play Options Settings: Play. . Interactive Compare All Checks Connect to . . . . . (Blank to use Domain contained in the script) Action _ _ _ _ _ _ Script -------CDTFIND COMDTL00 COMDTL01 COMDTL02 CONTROL3 DEMO 4. Enter a domain destination in the Connect to field or leave it blank to connect to the domain destination found in the script. If you do not specify a destination and the script does not contain one, Quick Play will connect to the last domain destination you accessed. 5. Enter one of the primary commands (APPL, CANCEL, DOWN, END, SESS, or UP) on the command line or the (B)rowse, (E)dit, (O)ptions, (P)lay, or Select (/) line command in the Action column next to the desired script, and press Enter. – APPL navigates to the application Profiling settings panel. See “Change Application Profile Settings” on page 3-4 for more information. – SESS navigates to the Session Options settings panel. See “Change Session Options” on page 3-3 for more information. – (O)ptions navigates to the Play Setup screen. Script replay is then initiated from the Play Setup screen. See “Playback Setup” on page 5-5 for more information. Note: If you type a slash in the Action column next to a script, a pop-up will appear listing the valid line commands. See the online help for a description of the primary and line commands available on this screen. 9-1 Chapter 9. Demonstrating Scripts with Session Demo Chap 9 The session demo function lets you structure end-user training sessions and presentations without running your application. With session demo, you can demonstrate any previously recorded Hiperstation for VTAM script (except for input only scripts) without changing the script or interacting with the domain destination used to record it. This allows you to implement effective training without interfering with your production or test environment. For example, you can: • • • • • Scroll backwards to previously displayed screens Jump ahead or back a set number of screens Insert pop-up windows in a script to describe the screen Run the demonstration in interactive or non-interactive mode Desk-check testing scripts Accessing Session Demo 1. Select option 3 Session Demo from the Hiperstation for VTAM Main Menu to run session demo. The Demonstration Setup screen appears (Figure 9-1). Figure 9-1. Demonstration Setup Screen ---------------------- Hiperstation * Demonstration Setup --------------------- OPTION ===> Select the Recording and press ENTER to start the Demo. RECORDING FILE NAME: PROJECT ===> GROUP ===> TYPE ===> MEMBER ===> (Blank or pattern for member selection list) OTHER PARTITIONED DATA SET: DATA SET NAME ===> "ZOOM" key ===> PF23 Begin demo in ZOOM mode ==> N (Y/N) Begin demo in POP-UP mode ==> N (Y/N) DEMO/THINK TIME OPTION ===> 1 1 Demo interactively 2 Demo at full speed 3 Demo at Think Time recorded on script 4 Demo at Think Time specified below Time(ss th) => 01 50 Percent ===> 100 From this screen, you can set up your demonstration options. 2. Specify the recording file name (PROJECT, GROUP, and TYPE or OTHER PARTITIONED DATASET NAME). This must be an existing script. The MEMBER is the name of the script. You can use any valid member name. If you leave the member name blank or enter a pattern member name, an ISPF member selection list appears. This member selection list accepts the following line commands: – B: Browse the member – E: Edit the member 9-2 Hiperstation for VTAM User Guide – S: Select the member for playback. The member selection list also accepts all standard selection list primary commands, such as LOCATE and SORT. Note: Remember that you cannot use input only scripts in Session Demo. You can use OTHER PARTITIONED DATASET NAME, including the MEMBER, if your dataset name does not conform to ISPF naming standards. 3. Accept the default Zoom Key, or specify another PF key to toggle a session between Zoom and ISPF (interactive) display modes. See “Product Conventions” on page 1-7 for display mode information. 4. Specify Begin demo in ZOOM mode (Yes or No). 5. Specify Begin demo in POP-UP mode (Yes or No) 6. Specify DEMO/THINK TIME OPTION. Your choices include options that determine how the demo session will proceed. 1. Demo interactively: The demonstration proceeds each time you press Enter. 2. Demo at full speed: The transactions play back as quickly as the system can run them. 3. Demo at the think time recorded on the script: Think time is simulated using the think time recorded on the script. 4. Demo at the think time chosen below: Indicates that the think time for all transactions is the amount of time set in the Time(ss th) field (the think time for each transaction). Time is measured in seconds and hundredths of a second. For example, 00 75 is three-fourths of a second think time. Note: Percent allows a percentage figure to be applied to the think time when the THINK TIME OPTION is set to 3 or 4. For example, to play back a script with half of the original think time, set THINK TIME OPTION = 3 and Percent = 50. Starting the Demonstration To start the demonstration, specify the desired options on the Demonstration Setup screen and press Enter. The first screen of the demonstration appears (Figure 9-2). The SessionDemo screen consists of three information lines followed by the display window. Figure 9-2. Session Demo Screen ZOOM:F23 ----------------------- SessionDemo -------------------- LINE 1 OF 24 Command ===> Scroll ===> Screen# 0001/0011 KEY: <OUTPUT> Journal OFF Pop-ups OFF autoDoc OFF COMPUWARE SALES SUPPORT CICS REGION CICS41A BROADCAST SCREEN 07/06/07 08:56:36 ACTIVITY DATE START END REP/ACCOUNT PRODUCTS ======== ======== =EST= =EST= ===================== ======== NO MESSAGES TODAY The top, or title line, shows the Zoom key setting and the current scroll position. The second line is a standard ISPF command line where you can enter both ISPF and Session Demo commands. Demonstrating Scripts with Session Demo 9-3 The third line, the status line, shows the status of the Session Demo options: Option Description Screen# xxxx/yyyy Indicates the screen number currently being viewed and the highest screen number in the session. ‘xxxx’ indicates the current screen in the presentation space. ‘yyyy’ indicates the total number of screens recorded in the script. In Figure 9-2, the current screen number is 1, the highest screen number is 11. KEY: description Indicates the AID key that the user pressed. For input images, the AID key is described in character format (CLEAR, Enter, PA2, etc.). For output images, <OUTPUT> is placed in the field. Journal Specifies the status of the Journaling utility (OFF or ON). Pop-ups Specifies the status of Pop-Up window mode (OFF or ON). autoDoc Specifies the status of the Automated Documentation utility (OFF or ON). Subsequent lines show the user’s screen image. This area of the screen can be scrolled. For each transaction, two screen images are generated. The first screen image shows the KEY field on line three followed by the AID key the user pressed (such as Enter, PF1, or CLEAR). The second screen image shows the output from the application. The output images are distinguished by the <OUTPUT> identifier in the KEY field. Pop-Up Windows You can manually add pop-up windows to a script to: • Explain fields on the screen • Describe the next series of keystrokes • Emphasize a particular area of the screen 1. To turn on pop-up window mode, type POP on the command line and press Enter. The pop-up window mode in the Status line changes to ON, and any pop-up window defined for this screen appears. 2. To remove pop-up windows, type POP on the command line and press Enter. The Pop-Up mode in the Status line changes to OFF. Pop-Up Window Guidelines • You can add pop-up windows manually to any output screen in the script. • The pop-up window definition starts with a <POP> record and ends with a </POP> record. See Figure 9-3. • The lines of text between the opening and closing markers are considered the pop-up window text. The window is placed on the screen according to the row and column set on the <POP> record. • The pop-up window definition must be contained within an <OUTPUT> </OUTPUT> group. • An output screen can contain multiple pop-up windows. • A box is drawn around the text, and the pop-up window is highlighted. 9-4 Hiperstation for VTAM User Guide • The upper left corner of the pop-up window will be drawn at an offset of two columns to the right of the coordinates specified in the <POP> tag. This will allow for DBCS fields and an attribute byte for the window. • The script shows the Pop-Up window definition. Figure 9-3. Pop-Up Window Definition BROWSE -- HPER.RECBIG.DATA6(BROWSE) - 00.02 -------- LINE 00000018 COL 001 080 COMMAND ===> SCROLL ===> PAGE <S11>.... CC CC II CC CC SS SS MM MMMM MM VV VV SS SS <S12>.... CC II CC SS *** MM MM MM VV VV SS <S13>.... CC II CC SS *** MM MM VV VV SS <S14>.... CC CC II CC CC SS SS MM MM VV VV SS SS <S15>.... CCCCC II CCCCC SSSSS MM MM VVV SSSSS <S16>.... CCC IIII CCC SSS MMMM MMMM V SSS <S17> <S18> <S19> <S20> <S21> <S22> <S23> <S24> <POP>18,30 PRESS THE "CLEAR" KEY THEN ENTER "CEBR" </POP> </OUTPUT> <INPUT>0000002 <THINK>00.05.314 AT 10:13:54 <KEY>CLEAR Session Demo Commands Auto Automatically moves the display forward one screen every nn seconds. You can end auto display mode by pressing the ATTENTION or PA1 key, depending on the type of controller attached to your terminal. For example, entering A5 updates the display every five seconds. AZ The Auto Zoom command moves the display forward one screen every n seconds, and the display is transferred to Zoom mode. For example, A05 moves the display forward one screen every five seconds. To terminate zoom mode, press the ATTENTION or PA1 key depending on the type of controller attached to your terminal. END Terminates the Session Demo. Find Locates text strings in the recorded screen images. If the string contains embedded spaces or blanks, you must enclose it in quotes. For example, the command: F ‘ISPF MODE’ PREV finds the characters ISPF MODE in previous displays. Demonstrating Scripts with Session Demo 9-5 Locate nnn Moves the display to a particular screen image. ‘nnn’ is the number of the screen image to display. For example, to move the display to the first screen image, enter: L 1. To move the display to the last screen image (not necessarily 999), enter: L 999. Next 1|nnn Moves the display to the screen image that follows the currently displayed image. ‘nnn’ is the number of images to move forward. For example, to move the display forward twelve screen images, enter: N 12. You can also use PF8 (Forward) to move forward one screen. The default is 1, which moves the display to the next screen. This is equivalent to pressing Enter with no command entered on the command line. Note: For the PF7 and PF8 keys to function correctly, “enable keylists” must be activated in your emulator session. POP Turns on the pop-up window mode. Prev 1|nnn Moves the display to the screen image that precedes the currently displayed image. ‘nnn’ is the number of images to move back. For example, to move the display back twelve screen images, enter: P 12. You can also use PF7 (Backward) to move back one screen. The default is 1, which moves the display to the previous screen. Note: For the PF7 and PF8 keys to function correctly, “enable keylists” must be activated in your emulator session. SCUT 1|nn Screen Cut places one or more screen images on an ISPF clipboard for later use by the SPASTE command. ‘nn’ indicates the number of screen images to place on the clipboard. The default is 1. When more than one screen is cut, they are gathered from the previous screens to the one currently displayed. For example, SCUT 5 places five screen images on the clipboard. If you are currently displaying screen number 17 and enter SCUT 3, screens 15, 16, and 17 are cut. BOX draws a box around the screen image. SPASTE Screen Paste copies one or more screen images from the ISPF clipboard and places them in the current Edit session. The screen images are then deleted from the clipboard. Note: The SPASTE command is available only in ISPF Edit. DELETE Deletes the screens from the clipboard after they are copied. The default is DELETE. 9-6 Hiperstation for VTAM User Guide KEEP Keeps the screens on the clipboard after they are copied. 10-1 Chapter 10. Global Recording Requests and Scripts Chap 10 Introducing Global Recording Requests and Scripts Testing with Hiperstation for VTAM involves capturing activity and generating testing scripts from the captured activity. Use Global Recording to perform both of these tasks. The Global Recording menu provides the following options: • Monitor Requests — Create, manage, and monitor Global Recording requests. Record all of the 3270/LU0 traffic on the system or specify the terminals, applications, and user IDs to record. Set up the recording request to initiate script creation when the recording request ends, or suspend script creation and generate scripts later. • Review Repository — View a list of the sessions captured in a given recording. Generate scripts from selected sessions or for entire capture repositories. Save the specified script creation criteria in the affiliated recording request, or discard it after script creation. • Global Recording Manager — Build lists of applications, terminals, and user IDs to include or exclude from recording. Global Recording Manager lists provide greater flexibility in defining Global Recording requests. Hiperstation for VTAM also offers a batch interface to Global Recording. Use the batch interface with a job scheduler to automate recording initiation, termination, and script creation. For example, you can create a job that starts or stops recording, and a job that generates scripts and schedules them to run every day at the appropriate time. You can use the interfaces together. For example, • Schedule request management jobs to capture activity for the same time period each day. Then use the Review Repository option to select specific sessions for scripting. • Use the online interface to create Global Recording Manager lists. Then, use the lists to govern automated recordings. Hiperstation for VTAM also provides a Capture Segment Summary report to help you identify the information stored in your capture repositories. It indicates when recording began and ended for each segment of the specified repositories. Use it to select the appropriate segments for script creation. Review the report with a file-browsing tool such as ISPF Browse or import it into a spreadsheet or database for easy manipulation. Note: Hiperstation for VTAM now supports disabling of User Key CSA allocation. See the IBM publication, MVS Initialization and Tuning Reference, for more information. Accessing Global Recording Start Hiperstation for VTAM and select option 4 Global Recording from the Hiperstation for VTAM Main Menu (Figure 10-1). 10-2 Hiperstation for VTAM User Guide Figure 10-1. Hiperstation for VTAM - Main Menu ------------------------Option ===> 1 2 3 4 5 6 7 Hiperstation - Main Menu Domain Traveler Quick Play Session Demo Global Recording Archive/Search Script Processors Unattended Processing -------------------------- Product Release: 16.05.00 Record and Playback Select a Script and Go Demonstrate Online Applications System and Application Test Creation Audit and Help Desk Functions Automatic Script Editing Setup Unattended Playback and Compare Jobs The Global Recording menu appears (Figure 10-2). Figure 10-2. Global Recording Menu Hiperstation ---------------- Global Recording -------------------------------- Option ===> 1 SNA (3270, LU0, APPC) 1 Monitor Requests Add, Review or Update your requests 2 Review Repository Review your captured sessions 3 Global Record Manager Manage Include/Exclude filter lists TCP/IP 6 Monitor TCP/IP Requests Add/Review your TCP/IP recording requests 7 Create TCP/IP Scripts Create TCP/IP scripts from a repository Enter END command to return to Hiperstation Main Menu. Note: The TCP/IP options appear only if a license for Hiperstation for Mainframe Servers is installed. Refer to the Hiperstation for Mainframe Servers User Guide to learn how to use these options. Creating a Global Recording Request Global Recording writes captured activity to a specified dataset or range of datasets called a repository. Testing scripts are generated from the capture repository. If your installer enabled Autostart Script Creation, Global Recording initiates script creation at the end of recording. However, you can suspend script creation and initiate it later using the Review Repository option (page 10-15) or the batch interface (page 10-43). For example, you may want to capture an entire day’s activity, then generate scripts in the evening when more system resources are available. To capture activity and potentially generate scripts, create a recording request. If you specify a time frame for the request, it becomes active at the designated start time. If you do not specify a time frame, it becomes active immediately. Capture begins when all of the criteria for an active request are met. Note: You can also create and manage requests with batch jobs. See “Using the Global Recording Batch Interface” on page 10-23. To create a Global Recording request: 1. Select option 1 Monitor Requests by typing 1 on the Option line of the Global Recording menu (Figure 10-2 on page 10-2) and pressing Enter. – If there are no existing requests, the Global Recording - Add Requests screen (Figure 10-3) appears. Global Recording Requests and Scripts 10-3 Figure 10-3. Global Recording - Add Requests Screen Hiperstation -----Command ===> Global Recording - Add Requests ----------------------- Press ENTER to continue, or END to return. ***************************************************************************** * * * No Global Recording Requests were found for your userid. * * * ***************************************************************************** Type of request to add: 1 1. 3270 2. APPC • If a licensed version of Hiperstation for Mainframe Servers is installed, the Type of request to add field with options 1. 3270 and 2. APPC appears on the screen. Type 1 to select the 3270 option and press Enter. • If the options are not displayed, press Enter to continue. Note: Refer to the Hiperstation for Mainframe Servers User Guide for information about option 2. APPC. – If Global Recording requests exist, the Global Recording - Monitor Requests screen appears (Figure 10-4) showing a list of requests. Active requests are highlighted. On the first request listed, type 1 (to indicate Add 3270), and press Enter. Figure 10-4. Global Recording - Monitor Requests Screen Hiperstation ----- Global Recording - Monitor Requests ------------ Row 1 of 1 Command ===> Scroll ===> PAGE Line commands are: (C)ancel, (F)orce, (P)Stop, (R)estart, (D)isable, (S)elect, (U)pdate, (1)Add 3270, (2)Add APPC, or (9)Switch repositories LU Side-A/ Side-B/ Repository S Type Applid Terminal Userid Dataset Users - ---- -------- -------- -------- ------------------------------------- ---- 3270 * * * USER25.#3270.CAP01 0 ******************************* BOTTOM OF DATA ******************************** The 3270/LU0 Capture Criteria screen appears (Figure 10-5). 10-4 Hiperstation for VTAM User Guide Figure 10-5. 3270/LU0 Capture Criteria Screen Hiperstation ----------- 3270/LU0 - Capture Criteria Command ===> ------------------------- Press ENTER to continue, or PF1 for help, or CANCEL to exit. Terminal . . . . . . . . . . . * Use an asterisk for wildcarding Application . . . . . . . . . CICS41A the Terminal, Application or Userid Userid . . . . . . . . . . . . * fields. OR Global Record Manager List . . Second filter GRM List . . HH : MM : SS MM / DD / YY Start Time . . . 00 : 00 : 00 Start Date . . . 00 / 00 / 00 (Optional) End Time . . . . 00 : 00 : 00 End Date . . . . 00 / 00 / 00 (Optional) Repository Dataset . . . 'USER2312.TEST' First and last number. . (If wildcard in dataset) Recording options: (Enter "/" to select) Suspend script creation / Normal event notification Re-use repositories / Error event notification FORCE request at 'End Time' / Record from LOGON only 2. Enter the logical unit name of the Terminal to record. Enter one of the following: – A specific terminal ID. – An asterisk (*) to select all terminals. – A terminal prefix followed by an asterisk to select a group of terminals. For example, H8606* selects all terminals beginning with H8606. This field is required unless you provide a value in the Userid field or an include or exclude list in the Global Record Manager List field. Leaving the field blank selects all terminals. This field holds eight characters. 3. Enter the ID of the Application to record. To select all applications, leave the field blank. To specify a group of similar applications, type the application name prefix with an asterisk (*). For example, CICS* selects all applications with names that begin with CICS. This field holds eight characters. 4. Enter the User ID of the user to record. Enter one of the following: – A specific user ID. – An asterisk (*) to select all users. – A user ID prefix followed by an asterisk to select a group of users. For example, US* selects all user IDs beginning with US. This field is required unless you enter a value in the Terminal field or an Include or Exclude list in the Global Record Manager List field. Leaving the field blank selects all users. This field holds eight characters. 5. If you have not already entered the Terminal, Application, and/or Userid, enter the name of the Global Record Manager (GRM) list (and the Second Filter GRM List, if desired) to use for this request. Save time by creating Global Recording Manager lists that specify terminals, applications, and user IDs to include or exclude from capture. If you specify a list name, and an existing list starts with the same characters, the Global Record Manager * Include/Exclude List screen appears. It displays all lists beginning with the same characters. You need to: – Select one of the existing lists by typing an S next to it and pressing Enter. or – Use the A (add) line command to define the new list. Press End to return to request creation. Global Recording Requests and Scripts 10-5 If you specify a list that does not exist, the Global Record Manager * Add List screen appears. Fill in the fields and press End to return to request creation. See “Defining Global Recording Manager Lists” on page 10-19 for more information. This field accepts a value only if you did not enter information in the Terminal, Application, or Userid fields. If a Second Filter GRM List is specified, the Global Record Manager List must also be specified. The list can be either an Include or Exclude list. If the first and second lists are the same, it is logically equivalent to the one list. If they are different, the second filter will be applied to the result of the first filter. 6. Enter the start and end date and time. If you provide a start time, a start date is required. If you provide an end time, an end date is required. If you supply a start date, but accept all zeros for the start time, the request activates at midnight at the beginning of the start date. – To activate the request immediately, accept the default value of all zeros in both the Start Time and Start Date fields. – To activate or deactivate the request at a specific time, enter start and end times and dates: • Enter a two-digit hour based on a 24-hour clock. The cursor automatically moves to the MM field. • Enter either a two-digit minute, or press Tab to accept 00 and move to the SS field. • Enter either a two-digit second, or press Tab to accept 00 and move to the date fields. • Enter a two-digit month. The cursor automatically moves to the DD field. • Enter a two-digit day. The cursor automatically moves to the YY field. • Enter a two-digit year. – To keep the request active until you STOP, FORCE, or CANCEL it, accept the default value of all zeros for both the End Time and End Date fields. Note: If you select the FORCE request at ‘End Time’ option under Recording Options, an End Time is required. 7. In the Repository Dataset field, enter the name of the dataset to use for storing captured information. To create a segmented repository, use the following wildcard characters in the dataset name field and define a range with the First and last number fields: – Asterisk (*): Inserts an incremental value into the dataset name qualifier in which the asterisk appears. This wildcard pads the incremental value with enough zeros to ensure an eight-character qualifier. For example, USER.#3270.REC* with first=1 and last=3 creates capture repositories: USER.#3270.REC00001 USER.#3270.REC00002 USER.#3270.REC00003 – Question mark (?): Inserts the incremental value into the dataset name qualifier where the question marks appear. Enter at least one question mark for each digit of the greatest value in the range fields. For example, USER.#3270.REC?? with first=9 and last=11 creates capture repositories: USER.#3270.REC09 USER.#3270.REC10 USER.#3270.REC11 Note: Begin each segment of the dataset name with an alpha character (A-Z) or @#$ including segments with wildcard characters. Global Recording does not support multiple Global Recording requests using the same repository to 10-6 Hiperstation for VTAM User Guide store captured information. Make sure each Global Recording request uses a unique repository. 8. Enter a beginning and ending value in the First and Last number fields to define the range of numbers (if you specified wildcard characters in the Repository Dataset field). If you did not use wild card characters in the Repository Dataset field, leave these fields blank and go to the next step. 9. Type a slash to select the desired recording options: – Suspend script creation controls automatic script creation. Select this field to prevent script creation at the end of the recording request. If you leave this field blank you will be guided through the script creation criteria screens prior to your capture request being activated. This will also cause automatic script creation to execute when your capture request is stopped. – Normal event notification sends all recording request status and error messages to your TSO session. This option is selected by default. If you are recording a large number of sessions, consider disabling this option to reduce the number of messages you receive. – Re-use repositories applies to segmented repositories only. It causes Global Recording to continue capturing activity after the repository segments are full. After the last segment fills, it begins writing to the first segment again, replacing the oldest captured activity with the newest. If this option is not selected, recording terminates after the last segment is full. – Error event notification sends only the error messages associated with the request to your TSO session. This option is selected by default. If you are recording a large number of sessions, consider selecting this option and disabling Normal event notification to minimize the number of messages you receive. Note: Normal event notification sends all messages, including error messages, to your TSO session. If Normal event notification is selected, Global Recording ignores the Error event notification option. To prevent receiving messages altogether, clear both Normal event notification and Error event notification. However, even when these settings are cleared, certain messages are always issued by Global Recording: TCPAR101I, TCPAR102I, TCPAR104I, and TCPAR105I. – FORCE request at ‘End Time’, issues a FORCE command at the end time specified in the request. FORCE terminates recording of all sessions including inflight sessions. Script creation begins immediately, unless the Suspend script creation option is selected. Be aware that you may lose buffered data, resulting in partially recorded sessions. If you do not select this option, Global Recording issues a STOP command at the request’s specified end time. It stops recording new sessions but continues to record any active sessions. After all in-flight sessions end, recording terminates and script creation begins unless the Suspend script creation option is selected. Although this ensures complete session captures, it may delay script creation. – Record from LOGON only begins recording upon logon if all other request criteria are met. This option is selected by default. If you specify a time frame for the request, recording begins only if the logon occurs during the specified time frame. If you do not select this option, recording begins as soon as the request criteria are met. All in-flight sessions are captured. You may need to edit the scripts to delete any partially recorded business transactions. Devices using non-3270 data streams, such as LU0, are typically acquired when powered up. If you select this option, capture will begin only if the terminals are cycled within the time frame of the recording request. Global Recording Requests and Scripts 10-7 10. Press Enter to continue. If you specified an existing dataset in the request, Global Recording displays the Capture Criteria - Output Options prompt. 11. Type 1 to overwrite the existing data (choose this option only if you do not need to retain any data that might exist in the specified dataset) or type 2 to append the existing data and press Enter. Note: The dataset is overwritten when Global Recording captures and processes activity that matches the request criteria. If no activity matches, the dataset is not overwritten. If the dataset you specified does not exist, the Allocate Dataset screen appears. Generally the default parameters are appropriate, but you can modify them as necessary. Press Enter to continue. If you selected Suspend script creation, request creation is complete. Depending on the request options, your terminal may display messages associated with your request. 12. Press Enter to clear any messages your terminal displays. (You may need to press Enter several times.) After you clear all of the messages, the Monitor Requests screen appears. See “Monitoring and Managing Existing Requests” on page 10-12. If you did not select Suspend script creation, the 3270/LU0 - Script Criteria screen appears (Figure 10-6). Define Script Creation Criteria Script creation criteria allows you to generate: • Scripts containing user inputs and the resulting output screens for validating application responses. • Scripts containing only user inputs for stress testing or dubbing baseline scripts. • Formatted scripts for easy reading. • Unformatted scripts for testing LU0 applications. • Filtered scripts containing specific activity for unit or regression testing. The Script Create procedure (HSSCREAT) generates one script for each captured session. 1. Use the 3270/LU0 - Script Criteria screen (Figure 10-6) to define script creation parameters. Access this screen using one of the following: – The Monitor Requests option while creating or updating a recording request. – The Review Repository option (page 10-15) while generating scripts. – The batch interface to create scripts (page 10-43). 10-8 Hiperstation for VTAM User Guide Figure 10-6. 3270/LU0 - Script Criteria Screen Hiperstation ---------- 3270/LU0 - Script Criteria -------------------------Command ===> Press ENTER to continue, or PF1 for help, or enter CANCEL to exit. Script dataset Description. . Member prefix. Member suffix. Session log. . . . . . . 'USER25.#3270.SCRIPTS' Order Entry System Testing Scripts OES (1 - 6 character prefix) 01 (2 - 7 numeric suffix) OESLog (1 - 8 character member name) Script create options: (Enter "/" to select) Replace existing members / Format the recording Record inputs only Record input in (row,column) format / Edit message filters Use message filters 2. Enter the Script dataset (the dataset containing the scripts). This field holds up to 44 characters. Note: The automatic Script Create PROC (HSSCREAT) must have authority to update your script datasets. 3. Enter a Description, if desired. The description will appear in the script header section. This field holds up to 55 characters. 4. Enter a one- to six-character Member prefix that, in conjunction with the member suffix, forms the member name for each script created by this request. 5. Enter a Member suffix (a numeric value up to seven digits) that, in conjunction with the member prefix, forms an eight-character member name for each script created by this request. Script Create increments this value each time it creates a new script. – If you enter a suffix that is too short, Script Create pads the suffix with zeros to the left. For example, if the prefix is OES and the suffix is 10, the first script member name is OES00010, and the next member is OES00011. – If you enter a suffix that is too long, Script Create truncates the digits on the left. For example, if you enter SCRIPT for the prefix and 1234 for the suffix, the first script member is SCRIPT34, and the next member is SCRIPT35. 6. Enter a one- to eight-character member name containing the Session log or leave the field blank if you do not need a session log. A session log contains an entry for each session (and each script) created by the request. Session logs contain the bulk of the input required for an Unattended Playback job. You can save time when preparing the job by starting with the session log. See Chapter 7, “Unattended Playback, Dubbing, and Comparison for 3270 and LU0 Scripts” to learn about playback statements you may need to add or modify. 7. Type a slash to select the desired Script create options: – Replace existing members overwrites existing members with the same names as those specified in the request. – Format the recording applies a human-readable format to the scripts. If this option is not selected, the scripts contain a series of hexadecimal data streams. If you are testing with LU0 applications, do not select this option. This option is selected by default. – Record inputs only creates scripts that contain only user input keystrokes. This option primarily supports stress testing, where recorded and actual output screen comparison is not required. You can also use it to create scripts for dubbing baseline scripts. For example, play back an inputs only script, with dubbing active, against the production version of the software to create a baseline script. Then play back the baseline script against the application you are testing to Global Recording Requests and Scripts 10-9 validate its responses. This option reduces your script size and the demand on system resources. If this option is not selected, the scripts contain both the user input keystrokes and the resulting output screen images. – Record inputs in (row,column) format creates scripts containing input tags in row,column format, as opposed to the standard relative input format. For example, in standard format the first input tag is: <I01> “data” In row,column format, the same input tag contains the position of the input field: <I(07,28)>”data” When the input tag provides coordinates, locating the corresponding entry field on the screen image within this script is easier. This option is useful if you intend to review the script for debugging or audit purposes. – Edit message filters causes the 3270/LU0 - Message Filters screen to appear (Figure 10-8 on page 10-11). Use this screen to designate filters for including or excluding specific messages from your scripts. – Use message filters causes Script Create to use the message filters associated with the recording request. This option saves time when updating recording requests. 8. Press Enter to continue. – If you specified a script dataset that does not exist, and you did not select Edit message filters, an allocation screen appears. Generally, the default values are appropriate; however, you can override any or all values. Press Enter to allocate the dataset and continue. – If you selected Edit message filters, the 3270/LU0 - Message Filters screen (Figure 10-8 on page 10-11) appears before the allocation screen. See “Message Filters” on page 10-11 for more information. – If you specified an existing dataset, did not select the Edit message filters option, and accessed the Script Criteria screen through the: • Monitor Requests option, then request creation is complete. Depending on the request options, your terminal may display messages associated with your request. Press Enter to clear the messages. (You may need to press Enter several times.) After you clear all of the messages, the Global Recording Monitor Requests screen appears. See “Monitoring and Managing Existing Requests” on page 10-12 for more information. • Review Repository option, then the Script Processing screen appears (Figure 10-13 on page 10-17). The cursor starts in the Select processing option field. Enter 1 for background processing or 2 for foreground processing. The cursor automatically advances to the Job statement area of the screen. If you selected option 1, enter the job statement information and press Enter. Your terminal may display processing messages. Press Enter to clear the messages and return to the Review Repository screen. If Script Creation Fails If Global Recording encounters an error, it may prevent the script from being created in the script dataset. For example, the dataset may be full or renamed since the request was added. If you have event notification enabled for the request, you receive a message that script creation was not successful and a return code that indicates the reason for the failure. 10-10 Hiperstation for VTAM User Guide Session Log for Global Record The session log is a member stored in your script dataset containing a summary of every script created for a request. It is available for any 3270 or LU0 recording request (formatted or unformatted) when you create a script. This is a summary of all the scripts created for a script create request. If you supply a member name in the session log member name field on the 3270/LU0 Capture Criteria screen (Figure 10-5 on page 10-4) you get a session log. If you do not need a session log, leave the session log member name field blank. An example of a typical session log appears in Figure 10-7. Figure 10-7. Session Log Example * * HIPERSTATION 3270 AND LU0 SESSION LOG * DESC: THIS IS A SAMPLE SESSION LOG * * GROUP NUMBER(1) * GROUP A06TSO04 TERMINAL(TFHN115) LOGMODE(T3192V) STIME(’2007/02/12_14:22:45.830281’) FTIME(’2007/02/12_14:22:51.491721’) FMPROF(’03’X) TSPROF(’03’X) PSERVIC(’028000000000000000000300’X) SCRIPT(ALL00001) * * GROUP NUMBER(2) * GROUP A06TSO04 TERMINAL(TFHN112) LOGMODE(D4A32783) STIME(’2007/02/12_14:23:59.699372’) FTIME(’2007/02/12_14:24:36.887423’) FMPROF(’03’X) TSPROF(’03’X) PSERVIC(’020000000000185020507F00’X) SCRIPT(ALL00002) * * GROUP NUMBER(3) * GROUP CICSA TERMINAL(TFHN119) LOGMODE(D4A32785) STIME(’2007/02/12_14:24:52.901013’) FTIME(’2007/02/12_14:24:53.109341’) FMPROF(’03’X) TSPROF(’03’X) PSERVIC(’02000000000018501B847F00’X) SCRIPT(ALL00003) The session log is most useful as the basis for SYSIN input to a Hiperstation unattended playback job. The GROUP statement lists the following: • • • • • • name of the application name of the terminal logmode name start time and finish time of the session FM and TS profiles used for the session PSERVIC (LU presentation services profile and usage) for the session. Note: FMPROF, TSPROF, and PSERVIC are not required for playback jobs, but can be used if debugging by Compuware Customer Support is ever required. FTIME, the finish time of the session, is included for information only. To perform a successful playback using the session log, you typically need to change the TERMINAL value and, possibly, the APPLICATION value. The FTIME, FMPROF, TSPROF, and PSERVIC keywords are ignored during a playback and can either remain unchanged or be removed using a standard text editor as follows: 1. Exclude all lines containing TERMINAL, FMPROF, TSPROF, PSERVIC, or FTIME. Global Recording Requests and Scripts 10-11 2. Delete all of the excluded lines. 3. Remove the continuation character from the STIME line. Message Filters You can filter captured information to generate scripts containing only the activity you need. A filter is a short REXX program that compares message content to a set of criteria. If the message meets the criteria, it matches the filter. To use message filters: 1. Create filters using the Message Filtering option, or code them manually and store them in PDS members. Chapter 19, “Unattended Message Filters” explains both methods. 2. Use the 3270/LU0 - Message Filters screen (Figure 10-8) to associate one or more filters with the request. You can access the Message Filters screen by selecting the Edit message filters option on the 3270/LU0 - Script Criteria screen (Figure 10-6 on page 10-8). 3. On each filter entry, specify whether to include or exclude messages that match the filter. Each captured message is compared to all specified filters. The last matching filter takes precedence, so arrange the filters from the least to greatest priority. 4. Define a default action for messages that do not match any of the specified filters. Since the action is specified on the filter designation, rather than in the filter code, you can use the same filter to include specified activity in one request and exclude the same activity in another request. Figure 10-8. 3270/LU0 - Message Filters Screen Hiperstation ---------- 3270/LU0 - Message Filters -------------------------- Command ===> Scroll ===> PAGE Press END to save changes and return, or enter CANCEL to exit without saving changes. Message Filters: Default . . . . INCLUDE (Include or Exclude) Comments . . . . YES (Yes, No, or Clear) REXX dataset . . 'VP.AT.RVRP3270.INPUT.EXECLIB' Report dataset . 'USER25.SCRIPTS.REPORT' Line commands are: (C)opy, (D)elete, (I)nsert, (M)ove or (R)epeat Type Name Parameters ****** **************************** Top of Data ****************************** ==MSG> -Warning- The UNDO command is not available until you change ==MSG> your edit profile using the command RECOVERY ON. 000001 INCLUDE OUTPUT 000002 EXCLUDE_ PLAF____ '''''' ________ ________ Fill in the fields on this screen. 5. Default defines the action to take for messages that do not match any of the specified filters. Choose INCLUDE or EXCLUDE. Each captured message is compared to all of the specified filters. The action (include or exclude) defined by the type of the last matching filter is taken. For example, the first filter defined is an include filter and the second is an exclude filter. A message that matches both filters is excluded from the script because exclude was the last filter. 10-12 Hiperstation for VTAM User Guide If a message does not match any of the defined filters, the default action for that message is taken. For example, to create scripts containing only output screens that have PLAF on the first line, set the filter type to INCLUDE and set the default to EXCLUDE. IF (hs_exittype = 'OUTPUT') & (POS('PLAF',hs_output.1) > 0) THEN hs_match = 1 ELSE hs_match = 0 To include all messages except output screens with PLAF on the first line, use the same filter, but set the filter type to EXCLUDE and the default to INCLUDE. 6. Comments defines if and how excluded messages appear in the script. Enter: – YES to make the excluded messages comment lines. If you later wish to include a specific transaction that was initially excluded, remove the comment indicators. – NO to replace excluded messages with a single comment line that indicates the type of message, the name of the filter applied, and the date and time that filtering occurred. For example: * INPUT group excluded by PLAF 02/23/07 at 11:52:44 – CLEAR to exclude the messages altogether. 7. Enter the REXX dataset — the dataset containing the REXX filters. Do not include a member name. Script Create prefixes partially qualified dataset names with your TSO prefix or user ID, depending on your TSO profile. 8. Enter the Report dataset — the sequential dataset or PDS member in which Script Create writes a summary report. Leave the field blank if you do not want a report. If the specified dataset exists, Script Create overwrites any information it contains. If it does not exist, Script Create allocates it at report creation time. Script Create prefixes partially qualified dataset names with your TSO prefix or user ID depending on your TSO profile. 9. Define a filter entry for each filter you want to apply to the given request. Complete the following fields for each filter. – Type — The action to take when a message matches the given filter. Enter I to include or E to exclude messages that match the filter. See step 5 on page 10-11 for additional information about when to use INCLUDE or EXCLUDE. – Name — The member name containing the filter code. – Parameters — The value assigned to the hs_parm variable within the REXX filter code. This tag is required only if the REXX filter code includes hs_parm. Note: If the filter parses hs_parm, you can pass a string of values to the filter. 10. Press End to return to the 3270/LU0 Script Criteria screen. Monitoring and Managing Existing Requests After you create a Global Recording request, the Monitor Requests option displays a screen that lists the existing requests. Active requests are highlighted. Use this screen to: • Stop recording • Add, delete, or update a request Global Recording Requests and Scripts 10-13 • Force a request • Restart an inactive request • Disable a request to prevent it from automatically restarting • View the sessions being captured • Switch the repository segment so that you can review captured activity without interrupting recording 1. To access the Global Recording - Monitor Requests screen (Figure 10-9), type 1 on the Option line of the Global Recording menu (Figure 10-2 on page 10-2) and press Enter. 2. Position the cursor in the S column next to the desired request. 3. Type the appropriate line command and press Enter. Figure 10-9. Global Recording - Monitor Requests Screen Hiperstation ------- Global Recording - Monitor Requests ---------- Row 1 of 1 Command ===> Scroll ===> PAGE Line commands are: (C)ancel, (F)orce, (P)Stop, (R)estart, (D)isable, (S)elect, (U)pdate, (1)Add 3270, (2)Add APPC, or (9)Switch repositories LU Side-A/ Side-B/ Repository S Type Applid Terminal Userid Dataset Users - ---- -------- -------- -------- ------------------------------------- ---- 3270 H* * !USER* *USER25.R750.ACICS.NOTUSER.REPOS001 0 3270 H* * USER* *USER25.R750.ACICS.USER.REPOS001 0 3270 L1:I/INCICS *USER25.R750.ATEST.CICS.REPOS001 0 3270 L1:I/INCICS L2:E/EXVPTST *USER25.R750.ATEST.CICSEXVP.REPOS001 0 ******************************* BOTTOM OF DATA ******************************** Line Commands (C)ancel Cancels and deletes the request and all buffered information. This may result in partially recorded business transactions. To avoid losing important data, first STOP the request. Wait for recording to terminate before issuing the CANCEL command. Use ISPF file management tools to delete any repository or repository segments created by the request. (F)orce Terminates all sessions, which includes any in-flight session processing. However, the ECSA buffers will be flushed to ensure that all activity captured prior to issuing the (F)orce command will be recorded appropriately. If script criteria is specified within the request, script creation begins immediately. Note: If the request specifies segmented repositories, the Force command will cause an automatic switch to a new segment. (P) Stop Stops capture of new sessions and deactivates the request. Global Recording continues to capture all sessions that are in flight at the time STOP is issued. (R)estart Restarts the request. The request becomes active as soon as the time frame specified within the request is met. Use this option to activate an inactive request. 10-14 Hiperstation for VTAM User Guide Note: If the request contained a start date and time and/or an end date and time, the request will not become active if the current time is not within the start or end dates and times originally specified in the request. (D)isable Disables the request. All requests, except disabled requests, are restarted when the Global Recording started task is brought up. An asterisk (*) appears to the left of the repository dataset indicating that the request is disabled. STOP or FORCE the request and wait for the request to terminate prior to disabling it. (S)elect Displays the Active Sessions screen (Figure 10-10), which lists all 3270/LU0 sessions being recorded. (U)pdate Displays request information for update. Recording must be terminated and the request must be inactive. Issue STOP or FORCE to terminate recording and deactivate the request. After you finish editing, issue RESTART to reactivate the request. (1) Add 3270 Adds a new 3270 or LU0 Global Recording request. See “Creating a Global Recording Request” on page 10-2 for more information. (2) Add APPC Adds a new APPC Global Recording request. This option is explained in the Hiperstation for Mainframe Servers User Guide. (9) Switch Repositories Closes the repository segment that is currently being written and opens the next segment. If you did not specify a wildcard character in the Repository Dataset field, this option is not available. This command will fail if the current repository has not yet been opened. View Active Sessions The Global Recording * Active Sessions screen (Figure 10-10) shows a list of all sessions currently being recorded for a given request. 1. To access this screen, type S (select) next to the appropriate request on the Monitor Requests screen and press Enter. 2. Press End to return to the Monitor Requests screen. Figure 10-10. Global Recording - Active Sessions Screen ---------------------- Global Recording * Active Sessions --------- Row 1 of 2 COMMAND ===> SCROLL ===> PAGE Terminal Appl Userid Start Time Last Update Trans Lost TCW00095 A01TSO04 USER25 09/07 18:12:05 09/07 18:13:29 0167 0000 CW010002 A01TSO02 VPTST20 09/07 18:04:33 09/07 18:13:48 5275 0000 ******************************* BOTTOM OF DATA ******************************** The information that appears on this screen includes: – The Terminal ID of the terminal associated with the given session. – The Application ID of the application associated with the given session. – The Userid ID of the user being recorded. Global Recording Requests and Scripts 10-15 – The time that the user logged on or the time the first transaction was recorded for the given session. This does not represent statistics for the archive record request. It represents statistics for the VTAM session across all archive and global recording requests. – The last time Global Recording flushed and processed the captured information from the ECSA buffers. This indicates the age of the counts displayed in the Trans and Lost fields. This does not represent statistics for the archive record request. It represents statistics for the VTAM session across all archive and global recording requests. Note: If this field indicates a significant lag, or sessions are being recorded that do not appear on this screen, contact your MVS Systems Programmer. The Hiperstation Installation Guide provides instructions for optimizing Global Recording performance. – The Trans column shows the number of inbound and outbound VTAM data streams (transactions) that were recorded for the given session. This does not represent statistics for the archive record request. It represents statistics for the VTAM session across all archive and global recording requests. – The Lost column shows the number of transactions (PIUs) lost. Slow processing or full buffers can result in lost messages. This does not represent statistics for the archive record request. It represents statistics for the VTAM session across all archive and global recording requests. Note: If this field reports lost messages, your MVS Systems Programmer may need to adjust the Global Recording buffers to optimize performance as described in the Hiperstation Installation Guide. Reviewing Repositories and Creating Scripts You can use the Review Repository option to review the sessions captured in a given repository and to generate scripts. You can create scripts from selected sessions or from all sessions in the repository. To use the Review Repository option: 1. On the Option line of the Global Recording Menu (Figure 10-2 on page 10-2), type 2 for Review Repository and press Enter. The Review Repository - Dataset List screen appears (Figure 10-11 on page 10-16). 2. Type the name of the repository dataset from which you want to review or create scripts in the corresponding field if the desired repository dataset does not appear in the dataset list or if you want to apply temporary script creation criteria. Otherwise, select it from the list. If you enter the repository name in this field, as opposed to selecting it from the list, the script criteria you provide is discarded after script creation. If you select it from the list, the script criteria is saved in the associated Global Recording request. – On the Repository dataset field, type the dataset name. • If the dataset name includes wildcard characters, enter the first and last wildcard value to use for selecting the applicable segments and press Enter. For example, entering MY.DATASET.CAP?? with values 1 and 5, selects segments CAP01 through CAP05. Note: The First and last number fields are required if you specify a repository name containing wildcard characters in the Repository dataset field. 10-16 Hiperstation for VTAM User Guide • If the dataset name does not include wildcard characters, press Enter. – To select the dataset name from the list, use one of the following options: • UP and DOWN keys to scroll the list. • FIND primary command. The cursor moves to the first instance containing the specified FIND string. Press the RFIND key to find the next instance. • Type S next to the selected repository and press Enter. Note: You can select multiple repositories. Review Repository displays the appropriate screens for each selection. The Review Repository - Processing Options prompt appears (Figure 10-12 on page 10-17). 3. Select the type of script to generate or review: – Type 1 to generate 3270 or LU0 scripts for all of the sessions captured in the selected repository. See “Generate Scripts from a Selected Repository” on page 10-17 for information. – Type 2 to generate APPC scripts for all of the sessions captured in the selected repository. Refer to the Hiperstation for Mainframe Servers User Guide for information on this option. – Leave the selection field blank to display a list of all sessions captured in the selected repository. Use this option to review repository contents, generate scripts from selected sessions, and review or modify script creation criteria. See “Generate Scripts from Selected Sessions” on page 10-18 for information. 4. Press Enter to continue. Note: To review or modify existing script creation criteria, leave the field blank even if you intend to generate scripts from all of the captured sessions. The Session List screen allows you to review and modify script criteria. Figure 10-11. Review Repository - Dataset List Screen Hiperstation ------- Review Repository - Dataset List ------------- Row 1 of 3 Command ===> Scroll ===> PAGE Specify a repository dataset name or select a repository from the list below and press ENTER to process it, or END to return. Repository dataset . . . First and last number. . (If wildcard in dataset) Line commands are: (S)elect S Repository datasets Volser Referred Type Owner - -------------------------------------------- ------ -------- ---- -------- USER25.#3270.CAP01.WOUTSCRT PRD979 09/08/06 3270 USER25 USER25.#3270.CAP01.WSCRPT PRD997 09/08/06 3270 USER25 USER25.APPC.CPTALL.REP?? MIGRAT APPC USER25 ******************************* BOTTOM OF DATA ******************************** The Repository datasets list is a list of all of the 3270/LU0 and APPC repositories you have created. In administrator mode, the list shows repositories created by all users on the system. If you select a repository from the list, any script creation criteria you supply is saved in the associated Global Recording request if you own the repository. Volser is the serial number of the volume on which the given repository is stored. This field shows MIGRAT for migrated datasets. Referred is the MVS reference date associated with the repository dataset indicating the last time the dataset was modified. Global Recording Requests and Scripts 10-17 Type specifies the repository dataset type (3270 or APPC). Owner is the ID of the user who created the request associated with the repository dataset. This field primarily supports administrator access to Global Recording. See “Accessing Global Recording Administration” on page 10-22. Generate Scripts from a Selected Repository This section describes the screens that appear if you select 1. Record ALL 3270 sessions (Figure 10-12). Figure 10-12. Review Repository - Processing Options Prompt Hiperstation --------- Review Repository - Dataset List ----------------------- C +-----------------------------------------------------------------+ ==> PAGE | ----------- Review Repository - Processing Options ----------- | S | Command ===> | b | | | You specified a repository dataset or selected one from the | R | dataset list to process. Press ENTER to review the sessions | F | captured to this repository, or select an option below and | | press ENTER to create scripts for all sessions of that type | L | from this repository, or END to return. | | | S | Script creation option: (Enter number to select) | wner - | 1. Record ALL 3270 sessions | ------- | 2. Record ALL APPC sessions | SER25 | | SER25 +-----------------------------------------------------------------+ SER25 s USER25.#3270.CAP01.WSCRPT PRD997 09/09/06 3270 USER25 USER25.APPC.CPTALL.REP?? MIGRAT APPC USER25 ******************************* BOTTOM OF DATA ******************************** The 3270/LU0 - Script Criteria screen appears (Figure 10-6 on page 10-8) if: • No script creation criteria is defined. If you selected the repository dataset name from the list on the Review Repository - Dataset List screen (Figure 10-11 on page 10-16), the criteria you specified is saved in the associated Global Recording request. • You entered a repository dataset name in the corresponding field on the Review Repository - Dataset List screen (Figure 10-11 on page 10-16). The script criteria you specified is discarded after the scripts are generated. See “Define Script Creation Criteria” on page 10-7. Otherwise, the Script Processing screen appears (Figure 10-13). The cursor starts in the Select processing option field. Figure 10-13. Script Processing Screen Hiperstation --------------- Script Processing -----------------------------Command ===> Select the way you want the script creation process to run. Press ENTER to create your scripts, or END to return, or enter CANCEL to exit. Select processing option: 2 1. Submit batch job 2. TSO (Enter number to select) Job statement information for batch job: ===> //JOBNAME JOB (ACCOUNT),'NAME' ===> //* ===> //* ===> //* 10-18 Hiperstation for VTAM User Guide 1. Enter 1 for background processing or 2 for foreground processing. The cursor automatically advances to the job statement area of the screen. 2. If you selected background processing, enter job statement information and press Enter. If you selected foreground processing, messages are sent to your TSO session. Depending on your selection, Review Repository either submits the job or initiates processing. 3. Press Enter to clear the messages and return to the Review Repository - Dataset List screen. Generate Scripts from Selected Sessions This section describes the screens that appear if you choose to review the sessions captured in the repository and generate scripts from selected sessions. Review Repository processes the repository dataset to create the list of sessions. It displays a processing status message that disappears when processing is complete. The length of time the message displays depends on the repository size. You can interrupt session processing by pressing the ATTN key. After the processing message disappears, the Review Repository - Session List screen appears (Figure 10-14). Figure 10-14. Review Repository - Session List Screen Review Repository - Session List ---------- Row 1 of 39 Scroll ===> PAGE Select a session and press ENTER to process it, or END to return. Repository dataset . . : USER25.#3270.CAP01.WSCRPT Script creation option: (Enter "/" to select) Review script create criteria Line commands are: (R)ecord S LU Type Applid/Side-A Termid/Side-B Userid Start Date Start Time - ------- ------------- ------------- -------- ---------- --------- 3270 A01TSO04 CW010001 USER20 09/08/06 14:25:28 3270 H01AC020 TCW01620 USER25 09/08/06 14:21:45 3270 A01TSO04 CW010001 USER20 09/08/06 14:26:28 3270 A01TSO20 TCW01776 USER15 09/08/06 14:19:17 3270 A01TSO20 TCW00817 USER10 09/08/06 14:27:19 Hiperstation--------Command ===> See the online help for a description of the primary commands available on this screen. 1. If you want to review the script criteria before generating a script, enter a slash in the Review script create criteria field. The Script Criteria screen appears showing the existing script creation criteria. Note: If you entered the repository dataset name in the corresponding field on the Dataset List screen (Figure 10-11 on page 10-16), your script criteria changes are discarded after the scripts are created. If you selected it from the list, your changes are saved in the associated Global Recording request. 2. The (R)ecord line command generates a script from the selected session. In the S column, enter an R next to the sessions you want to script. Sessions selected for recording will be highlighted when scrolling the Session list. The lower portion of this screen shows the LU Type (3270 or APPC), Applid/Side-A, Termid/Side-B (LU name of the terminal accessing the application), Userid (an asterisk (*) to the left of the user ID indicates that multiple users signed on to this Global Recording Requests and Scripts 10-19 particular session while the session was logged on to VTAM), and Start Date and Time (date and time that Global Recording started capturing this session). 3. After you finish selecting sessions, press Enter. Review Repository displays the 3270/LU0 - Script Criteria screen if: – No script creation criteria is defined within the associated Global Recording request. – You entered the repository dataset name in the corresponding field on the Dataset List screen (Figure 10-12 on page 10-17). – You selected the Review script create criteria field on the Session List screen. See “Define Script Creation Criteria” on page 10-7. Note: The criteria you specify may be saved in the associated Global Recording request depending on how you selected the repository on the Dataset List screen (Figure 10-12 on page 10-17). If you entered it at the top of the screen, the criteria is discarded after script creation is complete. If you selected it from the list, it is saved in the associated Global Recording request. If none of the above are true, the Script Processing screen appears (Figure 10-13 on page 10-17). The cursor starts in the Select processing option field. 4. Enter 1 for background processing or 2 for foreground processing. The cursor automatically advances to the job statement area of the screen. 5. If you selected background processing, enter job statement information. 6. Press Enter. Depending on your selection, Review Repository either submits the job or initiates processing. If you selected foreground processing, messages are sent to your TSO session. 7. Press Enter to clear the messages and return to the Review Repository screen. Defining Global Recording Manager Lists Within a Global Recording request, you either specify the terminals, applications, and user IDs to capture, or you specify a Global Recording Manager List. A Global Recording Manager List defines the terminals, applications, and user IDs to record or exclude from recording. Use Global Recording Manager Lists to save time and work. For example, if the users you need to record do not have similar user IDs, you can either create a separate request for each user ID or you can define a Global Recording Manager List and create a request that uses that list. The Global Recording Manager List screen displays lists created by all users on the system. You can use or copy any existing list, but you can edit and delete only the lists you create unless you have Global Recording administrator authority. To use the Global Recording Manager: 1. On the Option line of the Global Recording menu (Figure 10-15), type 3 to select the Global Record Manager option and press Enter. 10-20 Hiperstation for VTAM User Guide Figure 10-15. Global Recording Menu Hiperstation ---------------- Global Recording -------------------------------- Option ===> 1 SNA (3270, LU0, APPC) 1 Monitor Requests Add, Review or Update your requests 2 Review Repository Review your captured sessions 3 Global Record Manager Manage Include/Exclude filter lists TCP/IP 6 Monitor TCP/IP Requests Add/Review your TCP/IP recording requests 7 Create TCP/IP Scripts Create TCP/IP scripts from a repository Enter END command to return to Hiperstation Main Menu. 2. The Global Record Manager * Include/Exclude Lists screen appears (Figure 10-16 on page 10-20). It displays a list of existing Include/Exclude lists. Figure 10-16. Global Record Manager * Include/Exclude Lists Screen ---------------- Global Record Manager * Include/Exclude Lists ---- Row 1 of 6 COMMAND ===> SCROLL ===> PAGE Line Commands: A - Add B - Browse C - Copy D - Delete E- Edit Name Type Description Creator CAPTURE2 IN USER25 CHRISP IN CHRIS P. INCLUDE LIST HDACCP0 CHRISP2 EX THIS CAPTURES EVERYTHING BUT MY ID HDACCP0 DANMIC IN LIST FRANCE BFRMXA0 DDDDDDDD EX USER25 FEDEX1 IN GLOBALLY RECORD ONLY 5 USERS BY USERID HDACCP0 3. To create a new list, position the cursor in the selection column on any of the existing list entries. Type A (add) and press Enter. See “Create a New Global Recording Manager List” on page 10-21 for more information. 4. To browse, copy, edit, or delete a list, type the applicable line command in the selection column of the appropriate list and press Enter. Use primary commands to locate the desired list. – (A)dd displays the Add List screen. See “Create a New Global Recording Manager List” on page 10-21 for more information. – (B)rowse displays the include/exclude list for browsing. – (C)opy displays the Copy List screen. See“Copy an Existing Global Recording Manager List” on page 10-22 for more information. – (D)elete deletes the selected list. You can delete any list that you created as long as it is not currently in use by an active Global Recording request. Global Recording Manager prompts you for confirmation. Press End to delete the selected list. To exit the screen without deleting the list, type CANCEL on the command line and press Enter. – (E)dit displays the Edit List screen. This screen contains the same fields as the Add List screen. Modify any field except List Name, List Type, and Description, which are display-only fields. You can edit any list you create. If you edit a list that is currently in use by an active Global Recording request, the request is not affected. It continues to capture with the parameters of the original list. Stop and restart the request to apply your changes to an active request. Global Recording Requests and Scripts 10-21 Type specifies the type of list. IN indicates an include list. EX indicates an exclude list. Creator contains the TSO ID of the user who created the list. Create a New Global Recording Manager List The Add List screen (Figure 10-17) appears after you issue the A (add) line command on the Global Record Manager * Include/Exclude List screen. Figure 10-17. Global Record Manager * Add List Screen ---------------------- Global Record Manager * Add List -- Row 1 to 12 of 200 COMMAND ===> SCROLL ===> PAGE List Name ===> QAGROUP2 List Type ===> IN (INclude/EXclude) Description ===> INCLUDE LIST FOR QAGROUP2 Term Appl Userid * H01AC013 USER25 * H01AC013 USER23 * H01AC013 RDMSOL2 * H01AC013 BKGJRS0 1. Type the List Name of the Global Recording Manager List. Enter up to eight characters. 2. Specify the Global Recording Manager List Type (include or exclude). Enter IN to capture only the specified terminals, applications, and/or users. Enter EX to capture all activity except the specified terminals, applications, and/or users. 3. Enter an optional Description for the list. Enter up to 55 characters. 4. Term is the logical unit name of the terminal to record or exclude from recording. Enter one of the following: – A specific terminal ID. – An asterisk (*) to select all terminals. – A terminal prefix followed by an asterisk to select a group of terminals. For example, H8606* selects all terminals beginning with H8606. If you leave this field empty, but supply a value in the Appl or Userid fields on the same line, Global Record Manager inserts an asterisk when you save the list. This field holds eight characters. Press Tab to advance to the next field. 5. Appl is the ID of the application to record or exclude from recording. Enter one of the following: – A specific application ID. – An asterisk (*) to select all applications. – An application name prefix followed by an asterisk to select a group of similar applications. For example, to select all applications that have names beginning with CICS, enter CICS*. If you leave this field empty, but supply a value in the Term or Userid fields on the same line, Global Record Manager inserts an asterisk when you save the list. This field holds eight characters. Press Tab to advance to the next field. 6. Userid is the ID of the user to record or exclude from recording. Enter one of the following: – A specific user ID. – An asterisk (*) to select all users. 10-22 Hiperstation for VTAM User Guide – A user ID prefix followed by an asterisk to select a group of users. For example, USER* selects all user IDs beginning with USER. If you leave this field empty, but supply a value in the Term or Appl fields on the same line, Global Record Manager inserts an asterisk when you save the list. This field holds eight characters. Press Tab to advance the cursor. 7. Press END to continue or type CANCEL on the Command line and press Enter to exit the screen without saving the list. Copy an Existing Global Recording Manager List Copy an existing list to save time when creating a new list and to ensure full control over the lists you use. Although you can use Global Recording Manager Lists created by other users, you cannot edit or delete lists created by another user. 1. The Copy List screen (Figure 10-18) appears after you issue the C (copy) line command on the Global Record Manager * Include/Exclude List screen. Figure 10-18. Global Record Manager * Copy List Screen ---------------------- Global Record Manager * Copy List ---------------------- COMMAND ===> From Name QAGROUP1 From Type IN From Description INCLUDE LIST_FOR QAGROUP1 To Name QAGROUP2 To Type IN To Description INCLUDE LIST_FOR QAGROUP2 Press END to copy and exit, CANCEL to exit without copying From Name, From Type (IN indicates an include list and EX indicates an exclude list), and From Description are prefilled with the name, type, and description of the list being copied. 2. Enter a name for the new list, in the To Name field. This field holds up to eight characters. 3. Enter the type for the new list (IN or EX) in the To Type field. Enter IN to record the terminal, applications, and user IDs specified within the list. Enter EX to record all activity except for the terminals, applications, and user IDs specified within the list. 4. Enter a description, up to 55 characters, for the new list. 5. Press End to continue or type CANCEL on the Command line and press Enter to exit the screen without saving the list. Accessing Global Recording Administration Global Recording Administration provides: • Access to all recording requests on the system • Access to all capture repositories created by the requests on the system • Authority to edit and delete any Global Recording Manager list Global Recording Requests and Scripts 10-23 To access Global Recording Administration, type ADMIN on the Option line of the Global Recording Menu (Figure 10-2 on page 10-2) and press Enter. The word “Administration” appears after the menu title. Note: Access to Global Recording Administration requires the proper authority. If you receive a security error, contact your Hiperstation installer or security administrator. The Global Recording options behave the same in administration mode, except the Monitor Request screen shows all of the requests on the system, the Review Repository option lists the repositories created by all of the requests on the system, and the Global Recording Manager allows you to edit and delete lists created by any user on the system. Using the Global Recording Batch Interface Hiperstation for VTAM provides a batch interface for Global Recording. Use it with a job scheduler to automate capture initiation and termination. For example, to initiate recording every morning at 8:00 AM and terminate it at 5:00 PM, create a job to RESTART the request and a job to STOP the request. Use a job scheduler to submit the jobs at the appropriate times. The Global Recording batch interface also provides a script creation function. Set up the recording request to initiate script creation when the request ends or suspend script creation and schedule it to run at a later time. For example, if you are recording large volumes of traffic, schedule a job to create scripts in the evening when more system resources are available. Notes for using the online and batch interfaces together: • Create a recording request with the online interface, then manage it with scheduled jobs. • Initiate recording with the batch interface, then use the Monitor Requests option to view a list of sessions being captured. • Warning: Using the CANCEL command does not work for managing requests when using both the online and batch interfaces. • DCI does not support the UPDATE command, ISPF does. • DCI produces real return codes, as opposed to always returning a zero value. This allows you to determine whether global record or archive record requests started. It also allows JCL creation where job steps may or may not be executed based on whether the DCI request succeeded. Create a Global Recording Request Global Recording writes captured activity to a specified dataset or range of datasets called a capture file or a repository. Testing scripts are generated from the capture repository. Global Recording can initiate script creation at the end of the recording request or you can initiate it later with a separate job (see “Create Scripts” on page 10-43) or with the Review Repository option in the online interface see (“Reviewing Repositories and Creating Scripts” on page 10-15). For example, capture an entire day’s activity and generate scripts in the evening when more system resources are available, or use Review Repository to generate scripts from selected sessions. To capture activity, create a recording request. If you specify a time frame for the request, it becomes active at the designated start time. If you do not specify a time frame, it becomes active immediately. Capture begins when all of the criteria for an active request are met. Note: Global Recording does not support VTAM compressed data streams. 10-24 Hiperstation for VTAM User Guide Creating a Global Recording request with the batch interface involves defining the request parameters. Parameters are defined in extensible markup language (XML). The batch interface’s XML parser provides limited syntax support. Review “Global Recording Request Parameter Syntax” on page 10-25 prior to writing or modifying parameters. To create a Global Recording request with the batch interface: 1. Define the Global Recording request parameters. See “Global Recording Request Parameters” on page 10-26. 2. Use SQQFSAMP member DCIJCL (Figure 10-19 on page 10-25) to execute the ADD request function. a. Insert job statement information at the top of the sample. b. Ensure the UPROCS statement points to the procedures library that contains DCIPROC. c. After the request is created, the batch interface returns a request key that contains information about the request. Use the request key as input for request management jobs (see “Manage Existing Requests” on page 10-40). The key is written to the location specified on the FEEDBACK DD. To save the key in your personal library, specify a sequential dataset, PDS(E) and member, or a generation data group (GDG). Note: Allocate the dataset or GDG with a fixed-block record format and an 80byte record length. d. On the SYSTSIN DD statement, specify ADD on the PARM keyword. Note: Archive requests are not supported for the ADD command. e. On the SYSIN DD statement, either supply the name of the dataset containing the request parameters or enter the parameters in-line. Note: In-stream parameters cannot exceed 80 bytes. If you edit the parameters on a PC and copy them back to a dataset that now exceeds 80 bytes, point the DD to the dataset rather than pasting the parameters into the job. 3. Schedule or submit the job. Global Recording Requests and Scripts 10-25 Figure 10-19. DCIJCL — Sample JCL to Add or Manage Requests ********************************* Top of Data ********************************** //* INSERT JOB CARD HERE............................................... /*JOBPARM SYSAFF=sysn //********************************************************************* //* JCL TO ADD OR MODIFY 3270, APPC, TCP/IP, OR WEBSPHERE MQ GLOBAL * //* RECORD REQUESTS. * //* * //* UPROCS: DATASET THAT CONTAINS THE DCIPROC. * //* * //* FEEDBACK: OUTPUT XML THAT MAY BE USED AS INPUT TO SUBSEQUENT * //* STEPS. * //* * //* SYSTSIN: TSO BACKGROUND INPUT STREAM. * //* ISPSTART PGM(QACDCIP) - EXECUTE THE GLOBAL RECORD * //* BATCH INTERFACE (GRBI) * //* PARM(command) - IS THE COMMAND PASSED TO THE GRBI * //* * //* SYSIN: XML INPUT. * //* * //********************************************************************* //UPROCS JCLLIB ORDER=('COMPWARE.QQF800.SQQFSAMP') <-REVIEW //DCI EXEC PROC=DCIPROC //FEEDBACK DD * //SYSTSIN DD * ISPSTART PGM(QACDCIP) PARM(ADD) <-REVIEW /* //SYSIN DD DISP=SHR,DSN=COMPWARE.QQF800.SQQFSAMP(DCIADDL2) <-REVIEW ******************************** Bottom of Data ******************************** Global Recording Request Parameter Syntax Global Recording request parameters are defined in XML. Write the parameters from scratch, or start with a sample or generated parameter set. Store the parameters in a dataset or paste them right into the JCL. Use a standard file editing tool to modify the parameters. Note: The batch interface contains a proprietary XML parser that supports a limited set of XML elements. It recognizes only the syntax described in this section. Most recording request XML parameters are comprised of an opening tag, followed by a value and a closing tag. Opening and closing tags must be contained in angle brackets. The closing tag must be proceeded by a backslash inside the angle brackets. For example: <Terminal> '*' </Terminal> If the parameter’s value contains spaces, it must be placed in single quotation marks. In the samples and generated parameter sets, the parameter values always appear inside single quotes. Some parameters require a format indicator followed by a value supplied in single quotation marks. For example, the Request ID tag accepts a hexadecimal or character value. Indicate the format of the value by placing an X or a C before the value, outside of the quotation marks. <Request_ID> C'QA_REQ'</Request_ID> The batch interface ignores spaces between the tag and the tag’s value. For example, the following parameter is interpreted the same way as the previous terminal parameter example: <Terminal> </Terminal> '*' To make the samples and generated parameter sets easier to read, most parameters are formatted with the opening tag and value on one line and the closing tag on the following line. 10-26 Hiperstation for VTAM User Guide XML parameters are hierarchal. That is, some parameters have a group of related subparameters. For example, the Start_Time, End_Time, Start_Date and End_Date are subparameters of the Scheduled_Capture parameter. Subparameters must be nested within opening and closing parent parameter tags. For example: <Scheduled_Capture> <Start_Date> '00/00/0000' </Start_Date> <Start_Time> '00:00:00' </Start_Time> <End_Date> '00/00/0000' </End_Date> <End_Time> '00:00:00' </End_Time> </Scheduled_Capture> Depending on the request you are creating, there may be several levels of nesting. For example, all of the 3270 Global Recording request parameters are subparameters of the <LU2> protocol parameter. The start and end time and date parameters are subparameters of Scheduled_Capture, which is a subparameter of the <LU2> protocol parameter. For example: <LU2> <Request_ID> C'MY_REQ' </Request_ID> <Scheduled_Capture> <Start_Date> '00/00/0000' </Start_Date> <Start_Time> '00:00:00' </Start_Time> </Scheduled_Capture> </LU2> Note: The previous examples show tag nesting. They are not a complete set of request parameters. Indenting nested tags is not necessary; however, it makes editing much easier. In the samples and generated parameter sets, each nesting level is indented one space. Finally, an XML stream can contain comments that the batch interface ignores. Comment text must be prefixed with an opening angle bracket, an exclamation point, and two dashes. They must be followed by two dashes and a closing angle bracket. For example: <!--This is an XML comment. --> Global Recording Request Parameters Global Recording request parameters are defined in XML. For syntax rules, see “Global Recording Request Parameter Syntax” on page 10-25. Start with one of the following: • The parameters from an existing request. See “Retrieve the Parameters of an Existing Request” on page 10-42. • A parameters skeleton. See “Generate a Request Parameters Skeleton” on page 10-43. • SQQFSAMP member DCIADXL2: Contains all available 3270/LU0 Global Recording request parameters. • SQQFSAMP member DCIADDL2: Contains a subset of commonly used 3270/LU0 recording request parameters. Global Recording Requests and Scripts 10-27 Store the parameters in a sequential dataset or a PDS member in your personal library or write them directly in the JCL. Use a standard file editing tool such as ISPF Edit to write or modify the parameters. Notes: 1. XML tags are case sensitive. Set the ISPF CAPS function to OFF when editing parameters. Type CAPS OFF on the command line and press Enter. 2. To work with a parameters file on the PC: – Use the IBM utility IEBGENER to copy the dataset into an HFS file. – FTP the file to the PC. To avoid EBCDIC to ASCII translation issues, transfer the file as 'text'. Use an XML editor, such as Notepad, to edit the tags. Pay attention to syntax interpretation. The Global Recording batch interface may not recognize tags that have been reformatted based on the viewer’s interpretation. For example, some editors format tags that have no values, such as <tag/>. Enclose blank values in single quotes to avoid this particular interpretation issue. All tags must conform to the syntax rules described in “Global Recording Request Parameter Syntax” on page 10-25. To avoid record truncation when transferring the parameters back to the mainframe, copy them into a fixed block dataset with a logical record length that supports the longest record. 3. Archive requests are not supported for the ADD command. Sample DCIADXL2 This section provides an illustration of sample DCIADXL2 and defines all available 3270 /LU0 Global Recording request parameters. Parameter hierarchy is defined within the parameter definitions. Protocol Parameter Tag and General Request Parameter Tags ********************************* Top of Data ********************************** <LU2> <Request_ID> X'000000000000' </Request_ID> <Terminal> '*' </Terminal> <Application> ' ' </Application> <User_ID> ' ' </User_ID> <GR_Manager_List> ' ' </GR_Manager_List> <GR_Manager_List_2> ' ' </GR_Manager_List_2> LU2 Identifies the type of Global Recording request to add. Also use this parameter for non-standard 3270 requests, such as LU0 requests. This is a parent tag to all other parameters described in this section. Begin and end the XML input stream with opening and closing LU2 tags (<LU2> and </LU2>). Request ID The ID of the Global Recording request. To assign a request ID, supply a six-byte hexadecimal or character value in single quotes. Place a format indicator in front of the value outside of the quotation marks. X indicates hexadecimal values and C indicates character values. For example: – <Request_ID> X'010203040506' </Request_ID> 10-28 Hiperstation for VTAM User Guide – <Request_ID> C'QAREQ1'</Request_ID> The batch interface pads hexadecimal values that are less than six bytes with zeros and character values that are less than six bytes with spaces. This tag is optional. If you do not supply a request ID, the system assigns one when the request is created. Terminal The logical unit name of the terminal to record. Supply one of the following: – A specific terminal ID, up to eight characters. – An asterisk (*) to select all terminals. – A terminal prefix followed by an asterisk (*) to select a group of terminals. For example, H8606* selects all terminals beginning with H8606. You must supply a Terminal, User_ID, or GR_Manager_List tag with a value other than blank. Application The ID of the application to record. Supply one of the following: – A specific application’s ID, up to eight characters. – An asterisk (*) to select all applications. – An application name prefix followed by an asterisk (*) to select a group of applications. For example, CICS* selects all applications with names that begin with CICS. This tag is optional. If you do not specify an application ID, all applications accessed by the specified terminal and/or user ID are recorded. User_ID The ID of the user to record. Enter one of the following: – A specific user ID, up to eight characters. – An asterisk (*) to select all users. – A user ID prefix followed by an asterisk (*) to select a group of users. For example, USER* selects all user IDs beginning with USER. You must supply a Terminal, User_ID, or GR_Manager_List tag with a value other than blank. GR_Manager_List The name of the Global Recording Manager list to use for this request. Save time by creating Global Recording Manager lists that specify terminals, applications, and user IDs to include or exclude from capture. See “Defining Global Recording Manager Lists” on page 10-19. You must supply a Terminal, User_ID, or GR_Manager_List tag with a value other than blank. If you supply a GR_Manager_List tag, omit the Terminal, Application, and User_ID tags. GR_Manager_List_2 The name of the Global Recording Manager list to use as the second filter for this request. If this list is specified, GR_Manager_List must also be specified. The list can be either an Include or Exclude list. If GR_Manager_List and GR_Manager_List_2 are the same, logically they are equivalent to one list. If they are different, GR_Manager_List_2 will be applied to the result of GR_Manager_List. Global Recording Requests and Scripts 10-29 Scheduled Capture Parameter Tags <Scheduled_Capture> <Start_Date> </Start_Date> <Start_Time> </Start_Time> <End_Date> </End_Date> <End_Time> </End_Time> </Scheduled_Capture> '00/00/0000' '00:00:00' '00/00/0000' '00:00:00' Scheduled_Capture Sets a start time and duration for the request. The request activates at the defined start time and date and remains active until the specified end time and date unless the capture repository fills up and the Reuse_Capture_File tag is set to 'NO'. Omit the entire block of tags if you want capture to begin immediately and remain active indefinitely. The following parameters are Scheduled_Capture subparameters. Supply the applicable parameters between the opening and closing Scheduled_Capture tags. Start_Date The date to activate the request. Specify a two-digit month, two-digit day, and four-digit year separated by slashes: 'MM/DD/YYYY'. If you specify a start date with no time, the request activates at the beginning of the given day — that is, midnight (00:00:00). Start_Time The time to activate the request. Specify a two-digit hour, two-digit minute, and two-digit second separated by colons: 'HH:MM:SS'. If you specify a start time, a start date is required. If you do not specify a start time or date, the request activates immediately. End_Date The month, day, and year to deactivate the request. Specify a two-digit month, two-digit day, and four-digit year separated by slashes: 'MM/DD/YYYY'. If you specify an end date with no time, the request deactivates at the end of the given day — that is, midnight (24:00:00). If you set the Force_At_End_Time recording option to 'Y', an end time and date are required. End_Time The time to deactivate the request. Specify a two-digit hour, two-digit minute, and two-digit second separated by colons: 'HH:MM:SS'. If you do not specify an end time or date, the request remains active until you STOP, FORCE or CANCEL it or until the repository is full if the Reuse_Capture_File tag to set to 'NO'. If you specify an end time, an end date is required. If you set the Force_At_End_Time recording option to 'YES', an end time and date are required. 10-30 Hiperstation for VTAM User Guide Capture File Parameter Tags <Capture_File> <Dataset> 'COMPWARE.SAMPLE.CAPTURE.FILE*' </Dataset> <First_Number> '1' </First_Number> <Last_Number> '10' <!--Valid 'Initial_Disposition' values are APPEND or OVERWRITE --> </Last_Number> <Initial_Disposition> 'APPEND' </Initial_Disposition> <Allocation> <Management_Class> </Management_Class> <Storage_Class> </Storage_Class> <Volume_Serial> </Volume_Serial> <Device_Type> </Device_Type> <Data_Class> </Data_Class> <Space_Units> </Space_Units> <Primary_Quantity> </Primary_Quantity> <Secondary_Quantity> </Secondary_Quantity> <Block_Size> </Block_Size> </Allocation> </Capture_File> '' '' '' 'SYSDA' '' 'TRKS' '10' '5' '9004' Capture_File Defines the dataset to use for storing the captured data. The following parameters are Capture_File subparameters. Supply the applicable parameters between the opening and closing Capture_File tags. Dataset Specifies the dataset name to use for storing captured information. This is a required parameter. To create a segmented capture file, use either the asterisk (*) or question mark (?) wildcard characters in the dataset name. Define a range for the wildcard characters with the First_Number and Last_Number tags: • Asterisk (*): Inserts an incremental value into the dataset name qualifier in which the asterisk appears. This wildcard pads the incremental value with enough zeros to ensure an eight-character qualifier. For example, USER.#3270.REC* with first=1 and last=3 creates capture datasets: USER.#3270.REC00001 USER.#3270.REC00002 USER.#3270.REC00003 • Question mark (?): Inserts the incremental value into the qualifier where the question marks appear. Enter at least one question mark for each digit of the value supplied on the Last_Number tag. For example, USER.#3270.REC?? with first=9 and last=11 creates capture datasets: USER.#3270.REC09 USER.#3270.REC10 USER.#3270.REC11 Note: Begin each dataset name segment with an alpha character (A-Z) or @#$ including segments with wildcard characters. First_Number Global Recording Requests and Scripts 10-31 Defines the first value to use for wildcard characters specified on the Dataset tag. If you did not use a wildcard, do not include this tag. Last_Number Defines the last value to use for wildcard characters specified on the Dataset tag. If you did not use a wildcard, do not include this tag. Initial Disposition Indicates whether to append or overwrite data contained in the specified dataset. Valid values are 'APPEND' or 'OVERWRITE'. This tag is unnecessary if the specified dataset does not exist. If the specified dataset does exist, and you do not provide an initial disposition value, the batch interface appends the new data to the existing data. Note: The dataset is overwritten when Global Recording captures and processes activity that matches the request criteria. If no activity matches the request criteria, the dataset is not overwritten. Allocation Defines allocation parameters for the capture file dataset. If you do not supply allocation parameters and the specified dataset does not exist, the batch interface allocates it with default values set by the installer. Generally, the default values are appropriate. However, you can override any or all of the default parameters by using the following Allocation subparameters. Supply the applicable parameters between the opening and closing Allocation tags. Management_Class The management class to apply to the new dataset. Your storage administration defines Management classes. Storage_Class The storage class to apply to the new dataset. Your storage administration defines Storage classes. Use this tag to override the default value. Volume_Serial The serial number of the volume on which the dataset will be stored. Device_Type The type of device on which the dataset will be stored. It can be a generic unit such as 'SYSDA'. Data_Class The data class to apply to the new dataset. Your storage administrator defines data classes. Space_Units The type of units used to store the data. Valid values are: TRKS (Tracks), CYLS (Cylinders), BLKS (Blocks), BYTES, KB (kilobytes), or MB (megabytes). Space units combined with the primary and secondary quantities define the amount of space allocated for the dataset. Primary_Quantity The number of space units to allocate initially. After Global Recording fills the primary quantity, it allocates the secondary quantity. Secondary_Quantity The number of space units to allocate after the primary quantity is full. Block_Size 10-32 Hiperstation for VTAM User Guide The maximum length, in bytes, of the blocks of data that the system reads in as it processes a dataset. Recording Option Parameter Tags <Recording_Options> <Suspend_Script_Create> 'NO' </Suspend_Script_Create> <Reuse_Capture_File> 'NO' </Reuse_Capture_File> <Force_At_End_Time> 'NO' </Force_At_End_Time> <!-- Valid 'Event_Notification' values are YES, NONE, or ERROR --> <Event_Notification> 'YES' </Event_Notification> <Record_From_Logon_Only> 'YES' </Record_From_Logon_Only> </Recording_Options> Recording_Options Defines recording request actions. The following parameters are Recording_Options subparameters. Supply the applicable parameters between the opening and closing Recording_Options tags. Suspend_Script_Create Suspends script creation. Supply this tag with a value of: • 'YES' to create scripts later. • 'NO' to automatically initiate script creation when the recording request ends. Be sure to supply script creation criteria. If you omit this tag, the batch interface suspends script creation. Reuse_Capture_File This parameter applies only to segmented capture files. It causes Global Recording to continue capturing activity after the capture file segments are full. After the last segment fills, Global Recording begins writing to the first segment again, replacing the oldest captured activity. To enable this option, supply this tag with a value of 'YES'. If you omit this tag or supply it with a value of 'NO', recording terminates after the last segment is full. Force_At_End_Time Issues a FORCE command at the end time specified in the request. FORCE terminates all recording sessions including in-flight sessions. Script creation begins immediately, unless you chose to suspend script creation. Be aware that you may lose buffered data resulting in partially recorded sessions. To enable this option, supply this tag with a value of 'YES'. Be sure to supply a Scheduled_Capture tag with End_Time and End_Date values. If you omit this tag or supply it with a value of 'NO', Global Recording issues a STOP command at the request’s specified end time. It stops recording new sessions, but continues to record all in-flight sessions. After all in-flight sessions end, recording terminates and script creation begins unless you chose to suspend script creation. This option ensures complete session captures, but it may delay script creation. Event_Notification Defines the type of messages sent to your TSO session. Supply a value of: • 'ERROR' to receive error messages only. • 'YES' to receive status and error messages. Global Recording Requests and Scripts 10-33 • 'NONE' to disable event notification. If you are recording a large number of sessions, consider disabling this option or selecting error notification to reduce the number of messages you receive. If you omit this tag, Global Recording sends all recording and script creation messages. Note: To see the messages that the batch interface produces, such as parameter verification messages or the return code for the request creation job, review the PRGLOG DD in the JES job log. See “Troubleshoot Failed Jobs” on page 10-48. Record_From_Logon_Only Begins recording upon logon if all other request criteria are met. If you specify a time frame for the request, recording begins only if the logon occurs during the specified time frame. This option is enabled by default. Supply this tag with a value of 'NO' to initiate recording as soon as the request criteria are met. Since recording can begin while sessions are in flight, you may need to edit the scripts to delete any partially recorded business transactions. Note: Devices using non-3270 data streams, such as LU0, are typically acquired when powered up. If you omit this tag or supply it with a value of 'YES', capture begins only if the terminals are cycled within the time frame of the recording request. General Script Criteria Tags <Script_Criteria> <Description> </Description> 'Compuware Global Record Batch Interface' If you supply the Suspend_Script_Create tag with a value of 'NO', script creation criteria is required. Script_Criteria Defines script creation parameters. The rest of the parameters described in the section (Description, Script_File, and Script_Create_Options) are all subparameters of this tag. Supply the applicable parameters between opening and closing Script_Criteria tags. Description A string of up to 55 characters that appears in the header section of the script. 10-34 Hiperstation for VTAM User Guide Script File Tags <Script_File> <Dataset> </Dataset> <Member_Prefix> </Member_Prefix> <Member_Suffix> </Member_Suffix> <Replace_Members> </Replace_Members> <Session_Log_Member> </Session_Log_Member> 'COMPWARE.SAMPLE.SCRIPTS' 'SCR' '1' 'NO' 'LOG' <Allocation> <Management_Class> '' </Management_Class> <Storage_Class> '' </Storage_Class> <Volume_Serial> '' </Volume_Serial> <Device_Type> 'SYSDA' </Device_Type> <Data_Class> '' </Data_Class> <Space_Units> 'TRKS' </Space_Units> <Primary_Quantity> '10' </Primary_Quantity> <Secondary_Quantity> '5' </Secondary_Quantity> <Directory_Blocks> '25' </Directory_Blocks> <Block_Size> '9004' </Block_Size> <Record_Length> '256' </Record_Length> <!-- Valid 'Dataset_Name_Type' values are PDS or LIBRARY' <Dataset_Name_Type> 'PDS' </Dataset_Name_Type> </Allocation> </Script_File> Script_File The batch interface writes each script to a separate member of a PDS or PDSE. This block of tags defines the attributes of the PDS(E). The following parameters are Script_File subparameters. Supply the applicable parameters between the opening and closing Script_File tags. Dataset The PDS(E) to contain the scripts. This is a required parameter. It accepts up to 44 characters. Member_Prefix A one- to six-character prefix that, in conjunction with the member suffix, forms the member name for each script created. This is a required parameter. Member_Suffix A numeric value that, in conjunction with the member prefix, forms the member name for each script created. The batch interface increments this value each time it creates a new script. Supply a suffix that in combination with the prefix equals eight characters. • If you supply a suffix that is too short, the batch interface pads the suffix with zeros to the left. For example, if the prefix is OES and the suffix is 10, the first script member name is OES00010, and the next member is OES00011. • If you supply a suffix that is too long, the batch interface truncates the digits on the left. For example, if you enter SCRIPT for the prefix and 1234 for the Global Recording Requests and Scripts 10-35 suffix, the first script member is SCRIPT34, and the next member is SCRIPT35. This is a required parameter. It accepts up to seven digits. Replace_Members Overwrites existing members that have the same names as specified with the Dataset, Member_Prefix and Member_Suffix tags. To enable this option, supply this tag with a value of 'YES'. If you omit this tag or supply it with a value of 'NO', the batch interface does not overwrite existing members. Session_Log_Member A one- to eight-character member name to hold the session log. A session log contains an entry for each session, thus each script, created. Session logs contain the bulk of the input required for an Unattended Playback job. Save time preparing the job by starting with the session log. See Chapter 7, “Unattended Playback, Dubbing, and Comparison for 3270 and LU0 Scripts” to learn about playback statements you may need to add or modify. Omit this tag if you do not need a session log. Allocation Defines allocation parameters for the script file dataset. If you do not supply allocation parameters and the specified dataset does not exist, the batch interface allocates it with default values set by the installer. Generally, the default values are appropriate. However, you can override any or all of the default parameters by using the following Allocation subparameters. Supply the applicable parameters between the opening and closing Allocation tags. Management_Class The management class to apply to the new dataset. Your storage administrator defines Management classes. Storage_Class The storage class to apply to the new dataset. Your storage administrator defines Storage classes. Volume_Serial The serial number of the volume on which the dataset will be stored. Device_Type The type of device on which the dataset will be stored. Can be a generic unit such as 'SYSDA'. Data_Class The data class to apply to the new dataset. Your storage administrator defines Data classes. Space_Units The type of units used to store the data. Valid values are: TRKS (Tracks), CYLS (Cylinders), BLKS (Blocks), BYTES, KB (kilobytes), or MB (megabytes). Space units combined with the primary and secondary quantities define the amount of space allocated for the dataset. Primary_Quantity The number of space units to allocate initially. After Global Recording fills the primary quantity, it allocates the secondary quantity. Secondary_Quantity 10-36 Hiperstation for VTAM User Guide The number of space units to allocate after the primary quantity is full. Directory_Blocks The number of blocks to use for a PDS directory. If the dataset is a PDSE, the batch interface ignores this value. Block_Size The maximum length, in bytes, of the blocks of data that the system reads in as it processes a dataset. Record_Length The maximum length, in bytes, provided for each record in the dataset. Script datasets must be minimally 256 bytes. The record length must be at least four less than the block size. Dataset_Name_Type The type of dataset to contain the scripts. Supply this tag with a value of 'PDS' or 'LIBRARY' (PDSE). If you omit this tag, the batch interface allocates the script file as a PDS. Script Create Option Tags <Script_Create_Options> <Format_The_Recording> 'YES' </Format_The_Recording> <Record_Inputs_Only> 'NO' </Record_Inputs_Only> <Row_Column_Format> 'NO' </Row_Column_Format> <Use_Message_Filters> 'YES' </Use_Message_Filters> Script_Create_Options Defines the format and contents of the scripts. The following are Script_Create_Options subparameters. Supply the applicable parameters between the opening and closing Script_Create_Options tags. Format_The_Recording Applies a human-readable format to the scripts. Unformatted scripts contain hexadecimal data streams. If you are working with non-standard 3270 data streams, such as LU0, supply this tag with a value of 'NO'. If you omit this tag or supply it with a value of 'YES', the scripts are formatted. Record_Inputs_Only Creates scripts that contain only user input keystrokes. This option primarily supports stress testing, where recorded and actual output screen comparison is not required. You can also use it to create scripts for dubbing baseline scripts. For example, play back an inputs only script, with dubbing active, against the production version of the software to create a baseline script. Then play back the baseline script against the application you are testing to validate its responses. To enable this option, supply this tag with a value of 'YES'. If you omit this tag, the batch interface generates the scripts with both the user input keystrokes and the resulting output screen images. Row_Column_Format Creates scripts containing input tags in (row,column) format as opposed to the standard relative input format. For example, in standard format the first input tag is: Global Recording Requests and Scripts 10-37 <I01> “data” In row,column format, the same input tag contains the position of the input field: <I(07,28)>”data” Correlating input data with the fields on the screen images contained in the script is easier if the input tag provides coordinates. Consider selecting this option if you intend to review the script for debugging or audit purposes. However, scripts in this format are not compatible with the Hiperstation for VTAM’s script processors. To enable this option, supply this tag with a value of 'YES'. If you omit this tag, the batch interface generates the scripts in standard relative input format. Use_Message_Filters Enables the use of message filters when creating scripts. Supply this tag with a value of 'YES', then use the Message_Filters block of tags to designate one or more filters. Note: Create filters prior to generating scripts. Use the Message Filtering option in the online interface or code them manually and store them in PDS members. Chapter 19, “Unattended Message Filters” explains both methods. Message Filter Tags <Filter Record="1"> <!-- Valid 'Type’ values are INCLUDE or EXCLUDE --> <Type> 'INCLUDE' </Type> <Name> 'MEMBER' </Name> <Parameters> 'PARMS' </Parameters> </Filter> </Message_Filters> </Script_Create_Options> </Script_Criteria> </LU2> ******************************** Bottom of Data ******************************** <Message_Filters> <!-- Valid 'Default’ values are INCLUDE or EXCLUDE --> <Default> 'INCLUDE' </Default> <!-- Valid 'Comments' values are YES, NO, or CLEAR --> <Comments> 'NO' </Comments> <REXX_Dataset> 'COMPWARE.SAMPLE.REXX' </REXX_Dataset> <Report_Log_Dataset> 'COMPWARE.SAMPLE.REPORT' </Report_Log_Dataset> <Report_Log_Member> 'RPTLOG' </Report_Log_Member> Message_Filters Designates the message filters to use for script creation and defines how to handle excluded messages. The following parameters are Message_Filters subparameters. Supply the applicable parameters between the opening and closing Message_Filters tags. Default Defines the action to take for messages that do not match any of the specified filters. If you supply a Message_Filters tag, this parameter is required. Valid values are 'INCLUDE' or 'EXCLUDE'. 10-38 Hiperstation for VTAM User Guide Each captured message is compared to all of the specified filters. The action defined by the Type of the last matching filter is taken. For example, the first filter is an “INCLUDE” filter and the second is an “EXCLUDE” filter. A message that matches both filters is excluded from the script. If a message does not match any of the defined filters, the Default action is taken for that message. For example, to create scripts containing only output screens with PLAF on the first line, create the following filter. Set the filter type to INCLUDE. Set the Default to EXCLUDE. IF (hs_exittype = 'OUTPUT') & (POS('PLAF',hs_output.1) > 0) THEN hs_match = 1 ELSE hs_match = 0 To include all messages except output screens with PLAF on the first line, use the same filter, but set the filter type to EXCLUDE and the Default to INCLUDE. Comments Defines if and how excluded messages appear in the script. Supply this tag with a value of: • 'YES' to change the excluded messages to comment lines. To include a specific transaction that was initially excluded, remove the comment indicator before playback. • 'NO' to replace the excluded messages with a single comment line that indicates the message type, the name of the filter applied, and the date and time that filtering occurred. For example, * INPUT group excluded by PLAF 02/23/07 at 11:52:44 • 'CLEAR' to exclude the messages altogether. If you omit this tag, the unwanted messages are replaced with a single comment line. REXX_Dataset The dataset containing the REXX filter members. Supply a fully qualified dataset name, but do not include a member name. If you supply a Message_Filters tag, this tag is required. Report_Log_Dataset The fully qualified sequential dataset or PDS(E) in which the batch interface writes a filtering summary report. If you supply a PDS(E), specify a member with the Report_Log_Member tag. If the specified dataset: • exists, the batch interface overwrites any information it contains. • does not exist, the batch interface allocates it at report creation time. If you do not want a summary report, omit this tag. Report_Log_Member The member in which the batch interfaces writes a summary report. This tag is required if you supply a PDS on the Report_Log_Dataset tag. Filter Record="x" Designates a filter to use for script creation. Supply the tag with a filter number enclosed in double quotation marks. For example, <Filter Record="1">. The last matching filter takes precedence, so list the filters from least to greatest priority. For example, if the first filter is an “include” filter and the second filter is an “exclude” filter, a message matching both filters is excluded from the script. Global Recording Requests and Scripts 10-39 Provide this block of parameters for each filter designation. The following parameters are Filter Record="x" subparameters. Nest the applicable subparameters between an opening <Filter Record="x"> tag and a closing </Filter> tag. Type The action to take when a message matches the filter. Supply a value of 'INCLUDE' or 'EXCLUDE'. This tag is required. See the description of the Default parameter on page 10-37 for more details. Name The name of the member containing the filter code. This tag is required. Parameters The value assigned to the hs_parm variable within the REXX filter code. This tag is required only if the REXX filter code includes hs_parm. Note: If the filter parses hs_parm, you can pass a string of values to the filter. Check the Status of Existing Requests Use the KEYS function to: • Check the status of a specific Global Recording request. • Generate status information for all of your existing Global Recording requests. You can also use this feature to locate a forgotten request ID. Each request has an associated request key that consists of the following information: • Protocol — The protocol of the activity that the request will record. LU2 indicates a 3270 or LU0 recording request. • Status — The status of the request (Stopped, Active, or Disabled). • Request ID — The six-byte ID assigned to the request. • Capture File — The name of the capture file (also known as Repository Dataset). This is the same information that the batch interface returns when you create a request. In fact, if you are checking the status of a specific request, use the returned request key as the input for the KEYS function. Use SQQFSAMP member DCIJCL (Figure 10-19 on page 10-25) to execute the KEYS function. 1. Insert job statement information at the top of the sample. 2. Ensure the UPROCS statement points to the procedures library that contains DCIPROC. 3. Keys are written to the location defined by the FEEDBACK DD statement. To save the keys in your personal library, specify a sequential dataset, PDS(E) and member, or a generation data group (GDG). Note: Allocate the GDG with a fixed block record format and an 80-byte record length. 4. On the SYSTSIN DD statement, specify KEYS on the PARM keyword. 5. KEYS function parameters are also defined in XML. The parameters required differ depending on the information you need to produce. – To check the status of a specific request, the KEYS function requires the protocol, request ID, and capture file associated with the request. On the SYSIN DD 10-40 Hiperstation for VTAM User Guide statement, either supply the name of the dataset containing the request key or enter the parameters in-line. For example: // SYSIN DD * <LU2> <Request_ID> C'QA_REQ’ </Request_ID> <Capture_File> <Dataset> ‘USER25.#3270.QA.REC??’ </Dataset> </Capture_File> </LU2> If the ADD request FEEDBACK went to SYSOUT, copy and paste the request key from the JES job log. – To generate status information for all existing 3270 and LU0 requests that you created, the KEYS function requires the protocol parameter. For example: // SYSIN DD * <LU2> </LU2> 6. Submit the job. Manage Existing Requests Use the batch interface request management functions to: • Stop recording • Cancels and deletes a request • Force a request • Restart a deactivated request • Disable a request to prevent it from automatically restarting • Switch the capture file segment to review captured activity without interrupting recording All of these functions require information found in the request key that the batch interface returns when you create a request. If you do not have the request key but you know the request ID and capture file name, write the parameters directly into the job. If you do not know this information, use the KEYS function to produce a list of existing requests. See “Check the Status of Existing Requests” on page 10-39. Use SQQFSAMP member DCIJCL (Figure 10-19 on page 10-25) to execute request management functions. Note: DCIJCL contains the FEEDBACK DD statement that supports request creation. Request management functions do not write output to this DD. To see request modification messages, review the PRGLOG DD in the JES job log. 1. Insert job statement information at the top of the sample. 2. Ensure the UPROCS statement points to the procedures library that contains DCIPROC. 3. On the SYSTSIN DD statement, specify one of the following request management functions on the PARM keyword: CANCEL Cancels and deletes the request. All buffered information is also deleted, which may result in partially recorded business transactions. To avoid losing important Global Recording Requests and Scripts 10-41 data, STOP the request first. Wait until the request terminates before issuing the CANCEL command. Use ISPF file management tools to delete any repository or repository segments created by the request. FORCE Terminates recording immediately and deactivates the request. This option may result in partially recorded business transactions. To terminate capture of new sessions, but allow capture to finish in-flight sessions, use STOP instead. If a request contains script criteria and the suspend script creation option is not selected, script creation begins immediately. Note: If the request specifies segmented repositories, the Force command will cause an automatic switch to a new segment. STOP Stops capture of new sessions and deactivates the request. Global Recording continues to capture all sessions that are in-flight at the time STOP is issued. RESTART Restarts the request. On requests with a start/end time, the request becomes active as soon as the time frame specified within the request is met. Use this option to activate an inactive request. Note: The initial option selected when the request was added, to either OVERWRITE or APPEND, will be used for the restart on the repository file. DISABLE Disables the request. When the Global Recording started task is brought up, all requests, except disabled requests, are restarted. Note: STOP or FORCE the request prior to disabling it. SWITCH Closes the capture file segment that is currently being written and opens the next segment. This option is available only if the capture file dataset name contains a wildcard character (* or ?). 4. The request management functions require the protocol, request ID, and capture file associated with the request. On the SYSIN DD statement, either supply the name of the dataset containing the request key or enter the parameters in-line. For example: // SYSIN DD * <LU2> <Request_ID> C'QA_REQ’ </Request_ID> <Capture_File> <Dataset> ‘USER25.#3270.QA.REC??’ </Dataset> </Capture_File> </LU2> 5. Submit the job. Note: The batch interface does not supply an update function. Use a combination of other functions to modify a request. 10-42 Hiperstation for VTAM User Guide a. Use the VIEW function to retrieve the parameters from the request. See “Retrieve the Parameters of an Existing Request” on page 10-42. Note: While the VIEW command functions for archive requests, it does not show commands that are specific to archive requests. b. Modify the parameters. See “Global Recording Request Parameters” on page 10-26 for parameter definitions. c. Use STOP, FORCE, or CANCEL to stop recording. d. If you use STOP or FORCE to stop recording, wait for recording to terminate, then use CANCEL to delete the request. e. Use the ADD function to create a new request using the modified parameters. Execute steps c-e as separate jobs or separate steps within a single job. Retrieve the Parameters of an Existing Request The VIEW function writes the parameters from a specified request to a location you define. Use it to: • Review or validate a request’s parameters. • Save time adding a new request. Rather than writing Global Recording request parameters from scratch, retrieve the parameters from a similar request and modify them to meet your needs. • Update a request. – – – – – Note: Retrieve the parameters from the request to be updated. Modify the parameters. STOP the request. CANCEL the request. ADD a new request using the modified parameters. If there are no existing requests, you do not specify a request ID, or the specified request ID does not exist, the VIEW function produces a request parameters skeleton containing a complete set of parameters with default values. Use SQQFSAMP member DCIJCL (Figure 10-19 on page 10-25) to execute the VIEW function. 1. Insert job statement information at the top of the sample. 2. Ensure the UPROCS statement points to the procedures library that contains DCIPROC. 3. The batch interface writes VIEW function output to the location specified on the FEEDBACK DD. To save the VIEW output in your personal library, specify a sequential dataset, PDS(E) and member, or a generation data group (GDG). Note: Allocate the GDG with a fixed block record format and an 80-byte record length. 4. On the SYSTSIN DD statement, specify VIEW on the PARM keyword. Note: While the VIEW command functions for archive requests, it does not show commands that are specific to archive requests. 5. When retrieving parameters from a specific request, the VIEW function requires the protocol, request ID, and capture file associated with the request. On the SYSIN DD statement, either supply the name of the dataset containing the request key or enter the parameters in-line. For example: Global Recording Requests and Scripts 10-43 // SYSIN DD * <LU2> <Request_ID> C'QA_REQ’ </Request_ID> <Capture_File> <Dataset> ‘USER25.#3270.QA.REC??’ </Dataset> </Capture_File> </LU2> 6. Submit the job. Generate a Request Parameters Skeleton If there are no existing requests, you do not specify a request ID, or the specified request ID is not found, the VIEW function produces a request parameters skeleton containing a complete set of Global Recording parameters with default values. Generate a skeleton to: • Save time creating a new request. • See all of the available parameters. • Reference the syntax of a particular tag. Use SQQFSAMP member DCIJCL (Figure 10-19 on page 10-25) to execute the VIEW function. 1. Insert job statement information at the top of the sample. 2. Ensure the UPROCS statement points to the procedures library that contains DCIPROC. 3. The batch interface writes VIEW function output to the location specified on the FEEDBACK DD. To save the VIEW output in your personal library, specify a sequential dataset, PDS(E) and member, or a generation data group (GDG). Note: Allocate the GDG with a fixed block record format and an 80-byte record length. 4. On the SYSTSIN DD statement, specify VIEW on the PARM keyword. Note: While the VIEW command functions for archive requests, it does not show commands that are specific to archive requests. 5. On the SYSIN DD statement, supply the opening and closing protocol tags for the type of request you want to create. For 3270 or LU0 requests: // SYSIN DD * <LU2> </LU2> Create Scripts To maximize flexibility, the batch interface provides script create function. • Generate scripts at any time. For example, if you are unsure of script creation criteria when you create the recording request, suspend script creation and run it later. • Schedule script creation to run when maximum system resources are available. For example, if you are recording large volumes of traffic, schedule a script creation job to run in the evening. • Create scripts with parameters other than those specified in the recording request. For example, the script criteria in the recording request are set up to generate stress 10-44 Hiperstation for VTAM User Guide testing scripts. However, you also need to generate unit-testing scripts. Run an independent script create with the appropriate criteria. • Create scripts before recording ends if the capture file is segmented. For example, to create a script for a recently recorded session, SWITCH repository segments and run a script creation job against the closed segments. To create scripts with the batch interface: 1. Define the script creation parameters. See “Script Creation Parameters” on page 10-44. 2. Use SQQFSAMP member SCJCL (Figure 10-20) to execute the SCRIPTS function. a. Insert job statement information at the top of the sample. b. Ensure the UPROCS statement points to the Hiperstation samples library SQQFSAMP at your installation. c. On the SYSTSIN DD statement, specify SCRIPTS on the PARM keyword. d. On the SYSIN DD statement, either supply the name of the dataset containing the script creation parameters or enter the parameters in-stream. Notes: 1. In-stream parameters cannot exceed 80 bytes. If you edit the parameters on a PC and copy them back to a dataset that now exceeds 80 bytes, point the DD to the dataset rather than pasting the parameters into the job. 2. If you plan to submit the job with a REXX queue command, put the parameters in an external file and remove all blank lines. Otherwise, parameter values are converted to uppercase and you may receive error messages. 3. Script create requires the availability of the LE runtime libraries for execution. 3. Schedule or submit the job. Figure 10-20. SQQFSAMP Member SCJCL — Sample JCL to Create Scripts ********************************* Top of Data ********************************** //* INSERT JOB CARD HERE............................................... /*JOBPARM SYSAFF=sysn //********************************************************************* //* JCL TO CREATE 3270 OR APPC SCRIPTS INDEPENDENT FROM THE USER * //* INTERFACE. * //* * //* UPROCS: DATASET THAT CONTAINS THE DCIPROC. * //* * //* * //* SYSTSIN: TSO BACKGROUND INPUT STREAM. * //* ISPSTART PGM(QACDCIP) - EXECUTE THE DCI PROGRAM * //* PARM(command) - IS THE COMMAND PASSED TO THE DCI * //* * //* SYSIN: XML INPUT. * //* * //********************************************************************* //UPROCS JCLLIB ORDER=('COMPWARE.QQF800.SQQFSAMP') <-REVIEW //DCI EXEC PROC=DCIPROC //SYSTSIN DD * ISPSTART PGM(QACDCIP) PARM(SCRIPTS) /* //SYSIN DD DISP=SHR,DSN=COMPWARE.QQF800.SQQFSAMP(SCLU2) <-REVIEW ******************************** Bottom of Data ******************************** Script Creation Parameters Like Global Recording request parameters, Script Creation parameters are defined in XML. For syntax rules, see “Global Recording Request Parameter Syntax” on page 10-25. Global Recording Requests and Scripts 10-45 A script creation job requires a protocol parameter, capture file specification parameters, and script criteria parameters. Recording requests contain all of these parameters. You can use the parameters from an existing recording request as the input for a script creation job. For example, if script criteria was specified in the recording request, but script creation was suspended, use the VIEW function to retrieve the parameters (see “Retrieve the Parameters of an Existing Request” on page 10-42). Then use the output from the VIEW as the input for the script creation job. The script create function ignores irrelevant parameters. If you intend to modify the script criteria or the request does not contain script criteria, start with sample SCLU2 located in SQQFSAMP. Store the parameters in a sequential dataset or a PDS member in your personal library or write them directly in the JCL. Use a standard file-editing tool such as ISPF Edit to write or modify the parameters. Notes: 1. XML tags are case sensitive. Set the ISPF CAPS function to OFF when editing parameters. Type CAPS OFF on the command line and press Enter. 2. To work with a parameters file on the PC: – Use the IBM utility IEBGENER to copy the dataset into an HFS file. – FTP the file to the PC. To avoid EBCDIC to ASCII translation issues, transfer the file as 'text'. Use an XML editor, such as Notepad, to edit the tags. Pay attention to syntax interpretation. The Global Recording batch interface may not recognize tags that have been reformatted based on the viewer’s interpretation. For example, some editors format tags that have no values, such as <tag/>. Enclose blank values in single quotes to avoid this particular interpretation issue. All tags must conform to the syntax rules described in “Global Recording Request Parameter Syntax” on page 10-25. To avoid record truncation when transferring the parameters back to the mainframe, copy them into a fixed block dataset with a logical record length that supports the longest record. SQQFSAMP Member SCLU2 — Script Creation Parameters This section provides an illustration of sample SCLU2 and defines all of the available script creation parameters. Parameter hierarchy is defined within the parameter definitions. Protocol Parameter Tag and Capture File Specification Tags <LU2> <Capture_File> <Dataset> </Dataset> <First_Number> </First_Number> <Last_Number> </Last_Number> </Capture_File> 'COMPWARE.SAMPLE.CAPTURE.FILE*' '1' '20' LU2 Identifies the type of scripts to create. This is a parent tag to all other parameters described in this section. Begin and end the XML input stream with opening and closing LU2 tags (<LU2> and </LU2>). Capture_File Specifies the dataset containing the captured information. 10-46 Hiperstation for VTAM User Guide The following parameters are Capture_File subparameters. Supply the applicable parameters between the opening and closing Capture_File tags. Dataset The name of the dataset that contains the captured information. This is a required parameter. If the capture file is segmented, supply a First_Number and Last_Number tag. First_Number The first value to use for resolving the wildcard characters specified on the Dataset tag. If the dataset name does not contain a wildcard character, this tag is unnecessary. Last_Number The last value to use for resolving wildcard characters specified on the Dataset tag. If the dataset name does not contain a wildcard character, this tag is unnecessary. Event Notification Tags <Recording_Options> <!-- Valid “Event_Notification' values are YES, NONE, or ERROR --> <Event_Notification> 'NONE' </Event_Notification> </Recording_Options> Recording_Options Provides the Event_Notification setting. This function uses the same event notification feature as the recording request ADD function. This is why the Event_Notification tag is nested within opening and closing Recording_Options tags. If you omit this block of tags, the batch interface sends all script creation messages to your TSO session. Event_Notification Defines the type of script creation messages sent to your TSO session. Supply a value of: • 'ERROR' to receive error messages only. • 'YES' to receive script creation status and error messages. • 'NONE' to disable event notification. If you are generating a large number of scripts, consider disabling this option or selecting error notification to reduce the number of messages you receive. Regardless of this setting, the batch interface sends a copy of all script creation messages to the JESMSGLG DD in the JES Job Log. The SYSPRINT DD summarizes script creation job messages. Note: To see the messages that the batch interface produces, such as parameter verification messages or the return code for the script creation job, review the PRGLOG DD in the JES job log. See “Troubleshoot Failed Jobs” on page 10-48. Global Recording Requests and Scripts 10-47 Script Criteria Tags <Script_Criteria> <Description> </Description> <Script_File> <Dataset> </Dataset> <Member_Prefix> </Member_Prefix> <Member_Suffix> </Member_Suffix> <Replace_Members> </Replace_Members> <Session_Log_Member> </Session_Log_Member> 'Compuware Independent Script Create' 'COMPWARE.SAMPLE.SCRIPTS' 'SCR' '1' 'NO' 'LOG' <Allocation> <!-- ONLY REQUIRED TO ALLOCATE NEW SCRIPT FILE --> <Management_Class> '' </Management_Class> <Storage_Class> '' </Storage_Class> <Volume_Serial> '' </Volume_Serial> <Device_Type> 'SYSDA' </Device_Type> <Data_Class> '' </Data_Class> <Space_Units> 'TRKS' </Space_Units> <Primary_Quantity> '10' </Primary_Quantity> <Secondary_Quantity> '5' </Secondary_Quantity> <Directory_Blocks> '25' </Directory_Blocks> <Block_Size> '9004' </Block_Size> <Record_Length> ‘256’ </Record_Length> <!-- Valid 'Dataset_Name_Type' values are PDS or LIBRARY --> <Dataset_Name_Type> ‘PDS' </Dataset_Name_Type> </Allocation> </Script_File> Defines script creation parameters. These are the same parameters as the script criteria parameters described in “Global Recording Request Parameters”. See “General Script 10-48 Hiperstation for VTAM User Guide Criteria Tags” on page 10-33 through “Message Filter Tags” on page 10-37. <Script_Create_Options> <Format_The_Recording> </Format_The_Recording> <Record_Inputs_Only> </Record_Inputs_Only> <Row_Column_Format> </Row_Column_Format> <Use_Message_Filters> </Use_Message_Filters> 'YES' 'NO' 'NO' 'NO' <Message_Filters> <!-- Valid 'Default' values are INCLUDE or EXCLUDE --> <Default> 'INCLUDE' </Default> <!-- Valid 'Comments' values are YES, NO or CLEAR --> <Comments> 'NO' </Comments> <REXX_Dataset> </REXX_Dataset> <Report_Log_Dataset> </Report_Log_Dataset> <Report_Log_Member> </Report_Log_Member> 'COMPWARE.SAMPLE.REXX' 'COMPWARE.SAMPLE.REPORT' 'RPTLOG' <Filter Record="1"> <!-- Valid 'Type' Values are INCLUDE or EXCLUDE --> <Type> 'INCLUDE' </Type> <Name> 'MEMBER' </Name> <Parameters> 'PARMS' </Parameters> </Filter> <Filter Record="2"> <Type> </Type> <Name> </Name> <Parameters> </Parameters> </Filter> </Message_Filters> </Script_Create_Options> </Script_Criteria> </LU2> 'INCLUDE' 'MEMBER' 'PARMS' /* Troubleshoot Failed Jobs An ISPF background task initiates and terminates the Global Recording batch interface. ISPF issues a return code for the background task. Do not confuse this return code with the Global Recording batch interface’s return code. The batch interface writes its return code to the PRGLOG DD. If your installer accepted the default, PRGLOG resides in the JES job log. The rest of this section provides information to help you troubleshoot recording request and script create errors. Recording Request Errors The Global Recording batch interface adds and modifies recording requests based on the parameters you supply. The Global Recording started task executes the requests. The batch interface reports status and error messages pertaining to request creation or modification while the started task reports status and error messages pertaining to recording. Global Recording Requests and Scripts 10-49 By default, the batch interface reports its status and error messages to the PRGLOG in the JES job log. Note: If the messages do not appear in this location, consult your installer. The started task writes recording error and status message in its JES job log and SYSTEM log. However, the logs contain messages from all recording requests. To see the message pertaining to your requests, set the recording request Event_Notification parameter, discussed on page 10-32, to 'YES' or 'ERROR'. Global Recording sends the applicable messages to your TSO session. Script Create Errors The Global Recording batch interface initiates the script create function. If it cannot initiate script creation, it writes errors to the PRGLOG (for example, if a required parameter is missing or the parameter’s syntax is incorrect). Otherwise, it writes a single message to the PRGLOG indicating that script create completed with or without errors. If the message indicates that it completed with errors, review: • JESMSGLG in the JES job log to see script creation status and error messages. • SYSPRINT in the JES job log to see a script creation summary. Generating a Capture Segment Summary The Capture Segment Summary report indicates when recording began and ended for each segment of one or more specified capture repositories. Use it to help you identify the information contained in each segment. For example, generate this report to script activity that was captured on Monday morning from 8:00 am to 12:00 pm when you are not sure which repository segment contains the information. Import the report into a spreadsheet or database for easy manipulation. For example, generate the report against every repository on the system, import it into a spreadsheet, and use it as an index. Sort the spreadsheet by repository name or dates. To generate a Capture Summary Report: 1. Locate sample member MCSREPT (Figure 10-21 on page 10-50) in the Hiperstation samples library, SQQFSAMP, or in your site’s JCL library. 2. Insert job statement information at the top of the sample. 3. Ensure the STEPLIB DD statement points to the Hiperstation load library at your installation. 4. To write the report to a new or existing dataset, replace SYSOUT=* on the CAPSUM DD statement with the appropriate dataset information. The logical record length of the dataset must be at least 132 bytes. 5. Supply report creation parameters after the SYSIN DD * statement. Put each parameter on a separate line. Parameter definitions follow Figure 10-21. 6. Submit the job. 10-50 Hiperstation for VTAM User Guide Figure 10-21. SQQFSAMP Member MCSREPT ********************************* Top of Data ********************************** //*....... JOB ...PLACE YOUR INSTALLATION'S JOBCARD HERE... //******************************************************************** //*---------------------------------------------------------------- * //* * //* HIPERSTATION MANAGE CAPTURE SEGMENTS REPORT EXECUTION * //* * //*---------------------------------------------------------------- * //******************************************************************** //* * //* THE FOLLOWING ITEM MUST BE CHANGED FOR SITE SPECIFICS: * //* * //* NOTE 1: NAME OF THE HIPERSTATION LOAD LIBRARY. * //* * //* SYSIN DD IS USED TO PROVIDE REPORT PARAMETERS * //* * //* NOTE 2: LIST THE REPORT PARAMETERS INCLUDING * //* THE REPOSITORY OR REPOSITORIES YOU WISH TO REPORT ON * //* * //******************************************************************** //REPORT EXEC PGM=MCSREPT //STEPLIB DD DISP=SHR,DSN=COMPWARE.QQF800.SQQFLOAD <== NOTE 1 //SYSPRINT DD SYSOUT=* //CAPSUM DD SYSOUT=* //SYSIN DD * <== NOTE 2 GMT DSN=USERID.TEST.MULTSEG.REPOSIT* FIRST=1 LAST=3 DSN=USERID.TEST.REPOSITX ******************************** Bottom of Data ******************************** Report Generation Parameters NORECALL Prevents recall of migrated datasets for report creation. This parameter, if specified, must precede all dataset name parameters. GMT Reports time stamps in Greenwich Mean Time (GMT). This is an optional parameter. If omitted, Hiperstation reports the time values based on the system’s local time. If you are reporting on repositories captured on systems in different time zones, include the GMT parameter to avoid confusion about time adjustment. For example, a repository that was captured at 8:00 AM EST is sent to an office in California. If they run the report without the GMT parameter, the start time shows 05:00:00 due to adjustment for the three-hour difference in time zones. With the GMT parameter, the report shows 13:00:00 regardless of the system on which the report is generated. This parameter, if specified, must precede all dataset name parameters. DSN The name of the capture repository. To report on multiple segments of a given repository, specify the dataset name with the same wildcard characters as specified in the Global Recording request. Then supply the FIRST and LAST parameters. To report on multiple repositories, include a DSN parameter, and if applicable a FIRST and LAST parameter, for each repository. The FIRST and LAST parameters must follow the DSN to which they apply. For example, DSN=USER25.MQ.REPOS?? FIRST=01 LAST=10 DSN=USER25.TCPIP.REPOS08 DSN=USER25.3270.REPOS?? FIRST=01 LAST=05 Global Recording Requests and Scripts 10-51 FIRST The first value used to resolve the wildcards in the repository name specified on the preceding DSN parameter. LAST The last value used to resolve the wildcards in the repository name specified on the preceding DSN parameter. Review the Report Review the report with a file browsing tool such as ISPF Browse. If the report is large, consider importing it into a spreadsheet or database application for easy manipulation. For example, import it into a spreadsheet and sort by start time. If you include the GMT parameter on the report creation job, ‘ALL TIMES GMT’ appears at the top of the start date and time column. Figure 10-22. Capture Summary Report HIPERSTATION - CAPTURE SEGMENT SUMMARY USER25.TEST1.REPOS01 USER25.TEST1.REPOS02 USER25.TEST1.REPOS03 Note: ALL TIMES GMT 12/21/06 20:08:23 12/21/06 20:10:39 12/21/06 20:23:18 12/21/06 20:10:14 12/21/06 20:23:14 12/21/06 20:31:35 The reported timestamps reflect when the first and last records were written to each repository dataset. Records are written to a repository dataset when Global Recording flushes and processes the captured information from the ECSA buffers. Depending on the size of the buffers and the volume of traffic on your system, there may be a minor difference between the timestamps shown in the report and the actual transaction times shown in the scripts. If there is a significant difference, contact your Global Recording administrator or your installer. The Hiperstation Installation Guide provides instructions for tuning your buffer to optimize Global Recording performance. In addition, a recorded session may span multiple segments. If the activity you need to script is near the beginning or end of a given repository segment, script the neighboring segment as well. 10-52 Hiperstation for VTAM User Guide 11-1 Chapter 11. Archive Functions Chap 11 Introducing the Archive Function Hiperstation is a zSeries automated testing solution that enables systems and applications programmers and quality assurance personnel to streamline the testing process and improve the quality of their applications. In addition to automated testing, Hiperstation can address other business issues as well, specifically, security monitoring. Using Hiperstation as a Security Monitoring Tool Today's mainframe application organizations use two standard facilities for managing security. First, security systems prevent unauthorized users from logging on and then controlling access privileges of authorized users. Second, monitoring facilities, such as System Management Facilities (SMF), log a variety of activities performed by the user, including opening datasets and logging off. Most organizations have programs that postprocess their SMF records to produce audit reports. Hiperstation can provide what these facilities lack, which is an in-depth record of the detail on each screen the user accessed on their terminal. Hiperstation's Auditing Archive Recording feature allows you to record all users of a given application that you want to monitor, select users across all of the applications that they use, and for VTAM, document each keystroke and screen that the user sees. Hiperstation can be likened to an electronic security camera installed directly behind the user. The user is not aware that the recording is taking place unless the security team chooses to disclose this information. Hiperstation is the watchdog for users who are able to gain access to the mainframe and are able to navigate throughout the system. Rather than relying only on security violations and SMF records, the Hiperstation script is a true picture of what the user saw and did. Implementing Hiperstation for VTAM as a Security Monitoring Tool Implementing Hiperstation as a security-monitoring tool requires analysis and agreement between management and the system implementation team. You need to decide: • Whether to monitor all mainframe users or just a selected group of users • Whether to record groups or users in separate recordings or all together in one. • Whether to record continuously • Who will be responsible for administering the recording • Where to store the recorded data and scripts in secured files • Who will be accountable for the web reports • How long to store the recorded data • How to analyze the web reports 11-2 Hiperstation for VTAM User Guide After you decide what to do about these issues, an implementation plan can be developed. Although the details will vary slightly, the general task list includes the following items: • Set up and start Global Recording. Compuware recommends that you integrate the Global Recording Started Task into the IPL process. This allows data capture to begin immediately with any IPL. • Implement your Archive Audit Request scheme (for example, how many requests record which users, terminals or applications). Use the Name and Description fields to help convey the probable contents of each Archive Audit Request to the users. • Train your Search users to use the tool effectively (for example, restricting date/time of searches to save processing time and DASD space consumption). • Ensure that users who plan to execute the Search Tool against the Archive Audit Requests understand the Archive Audit Request schemes. • Ensure RACF controls are in place to provide proper access protection to the Archive Audit Repositories. • Encourage Search users to build a repository of shared search criteria wherever possible. • Set goals for report management (for example, cleanup and final disposition of Web Reports) by the Search users. Summary Hiperstation can provide an organization with a comprehensive audit trail of online user activity. Unlike other auditing processes that require looking at security logs and SMF records, Hiperstation provides a complete audit trail of what the user executed on their terminal with the application in question. The Archive Search Web Report capability gives the auditor the ability to step through each screen the user viewed. The auditor will see all traffic for that user from logon to logoff. The benefit of using Hiperstation for security monitoring can be summed up in two words: maximum accountability. By combining the analysis potential of Hiperstation scripts with existing security tools, the security auditor is able to analyze and quantify the impact of all security breaches. Figure 11-1. Hiperstation Archive Recording Setup Screen Hiperstation ------------Command ===> 3270 - Archive Criteria ------------------------ Press ENTER to continue, or PF1 for help, or CANCEL to exit. Name . . . . . . . . CICSPROD Description. . . . . Capture All Data for Region CICSPROD Repository Registry Dataset. . . ‘CICSPROD.ALLDATA’ Terminal . . . . . . . . . Application. . . . . . . . Userid . . . . . . . . . . OR Global Record Manager List . . * Use an asterisk for wildcarding . . CICSPROD the Terminal, Application or Userid . . * fields. . . MM / DD / YYYY Start Date . . . 00 / 00 / 0000 End Date . . . . 00 / 00 / 0000 Second filter GRM List . . HH : MM : SS Start Time . . . 00 : 00 : 00 End Time . . . . 00 : 00 : 00 (Optional) (Optional) Figure 11-1 shows the Archive Criteria setup screen. In this example, we are capturing all of the activity for our CICSPROD region, regardless of terminal ID or user ID. Notice that Archive Functions 11-3 there is no specified start or end date or time. Therefore, our recording will continue 24x7 as long as the Global Recording Started Task is running. We have specified a meaningful NAME and DESCRIPTION for the request. We have also specified a Repository Registry Dataset of CICSPROD.ALLDATA. This name will be used to generate the Registry Dataset (VSAM file containing date/time indexes to the created repository segments). The Repository Registry Dataset name will also be used to generate the dataset names of the repository segments by adding a sequence number to it (for example, #0000001, #0000002, etc.). Searches can be performed automatically against any repository segment that has filled up and switched, or has been switched manually, with an e-mail notification being sent to the owner of the request. Note: E-mail notification is set up using Hiperstation profiles. See the Hiperstation Installation Guide for details. Using the Archive Function The Archive/Search function provides the following options: • Archive Requests — creates archive recording requests allowing you to create search reports. • Create Search Reports — provides IT auditors and help desk personnel with the ability to easily locate and extract data from the repository. • Search Report Management — manages your requests and frees up space by deleting requests that are no longer needed. • Global Record Manager — builds lists of applications, terminals, and user IDs to include or exclude from recording. Global Record Manager Lists provide greater flexibility in defining Global Recording requests. • Global Search Manager — provides IT auditors and help desk personnel with the ability to easily locate and extract data from the repository. This function provides global search reports that can be used by any user with GRADMIN authority. For complete details on how to use the Archive Function, see the Hiperstation Auditor User Guide. 11-4 Hiperstation for VTAM User Guide 12-1 Chapter 12. Customizing Scripts with the REXX Script Processor Note: Chap 12 Hiperstation for VTAM determines century dates based on the LOW_YEAR and HIGH_YEAR parameters set by the installer. For more information, see the Hiperstation Installation Guide. The REXX script processor automates writing REXX routines in Hiperstation scripts and helps you create “smart” scripts. The REXX script processor modifies previously recorded scripts and inserts REXX instructions and routines into them. REXX provides logic in the scripts to enhance playback. The logic in these processed scripts automatically handles common obstacles that occur when testing applications such as SAP. This chapter describes the REXX script processor functions, how to run the processor, the structure of processed scripts, and tips for troubleshooting problems that may occur. REXX Script Processor Features The REXX script processor can perform: • Data Replacement — When a recorded Hiperstation script contains an applicationgenerated output field on a screen (document number, invoice number, etc.) that is later typed as input, the data replacement function replaces the user-typed field with the new field value that is generated by the application when the script is played back. For more information see “Data Replacement” on page 12-5. • Date Recalculation — When a recorded Hiperstation script contains user-typed date input fields (such as a due date or delivery date), the date recalculation function replaces the date input fields with a new date when the script is played back. The new date is the original input date recalculated relative to the date when you run playback. The date recalculation function can also recalculate dates that appear on recorded script output screens. For more information see “Date Recalculation” on page 12-10. • Multi-Field Date Recalculation — The multi-field date recalculation function allows you to recalculate input and output dates that span fields, such as when the month, day, and year are contained in different fields. For more information see “Multi-Field Date Recalculation” on page 12-15. • List Processing — When a recorded Hiperstation script contains a screen that provides rows that can be selected (such as a directory), the list processing function causes playback to select the same row that was selected when the script was recorded. The list processing function selects the same row even if the row has changed its location in the list. The row can even be on a different list page. For more information see “List Processing” on page 12-20. • Synchronization — When unexpected application messages appear randomly during the recording or playback of a Hiperstation script, playback may get out of sync with the application being tested. The synchronization function detects messages (such as ‘...Processing’) in the recorded script and when they appear during playback. It takes the appropriate action to handle the message and to keep the playback synchronized with the application. For more information see “Synchronization” on page 12-25. Note: After making changes using any of these script processors, run the script processor (as described in “Running the REXX Script Processor” on page 12-30) to save your work. 12-2 Hiperstation for VTAM User Guide Using the REXX Script Processor Select option 1 REXX Processor on the Script Processors screen and press Enter. The REXX Script Processor * Primary Options screen appears (Figure 12-1). Figure 12-1. REXX Script Processor Primary Options Screen Hiperstation --------- REXX Script Processor * Primary Options -------------- Option ===> 1 Data Replacement 3 List Processing 2 Date Recalculation 4 Synchronization Go Begin Execution 5 Multi-Field Date Recalculation C Convert Control File Specify the name of the control file below, then press Enter key Project . . . ETRMCPRJ Group . . . . ETRMCGRP Type . . . . ETRMCTYP Member. . . . ETRMCMEM Other Data Set Name: Data Set Name . . . ETRMCDSN REXX Script Processor Control File The REXX script processor stores user-entered information in a control file. When you run the REXX script processor, it reads each input script and creates a new script containing the REXX logic. The control file is also read in by the script processor. The information in the control file tells the script processor how to write the REXX logic. For example, for the REXX script processor to write a date recalculation routine into a script, you must first create a date recalculation entry. This entry is stored in the control file. The date recalculation entry contains information such as the format of the dates to be recalculated and where the date fields are located. The script processor reads in that information and matches it against the input script. Then it creates a new script containing the REXX routines necessary to recalculate the selected dates. These REXX routines execute when the script is played. Each Hiperstation site can share a single control file or many control files. The control file entered on the REXX Script Processor * Primary Options screen is the one used by the script processor. Each entry in the control file creates more work for the script processor to perform. Therefore, the script processor takes longer to run if the control file contains many entries. The control file can be a sequential file or a member of a partitioned dataset (PDS). There are no specific requirements for the record length, record format, or block size of the control file. However, fixed block record format with an 80-byte record length is recommended. If the chosen control file does not exist when you start the REXX script processor, the Allocate Control File pop-up window (Figure 12-2) appears to prompt you to allocate a new control file. Customizing Scripts with the REXX Script Processor 12-3 Figure 12-2. Allocate Control File Pop-up Window ------------ Hiperstation REXX Script Processor * Primary Options ---------- Option ===> 1 +------------------------ Allocate Control File -------------------------+ | Command ===> | | | Spe | Press ENTER to allocate Control file, END to exit | | | | Data Set Name . . . : ’CWX0001.CONTROL.FILE(CNTL1)’ | | | | Volume Serial . . . . | | Space Units . . . . . TRKS (TRKS or CYLS) | | Primary Quantity. . . 3 (In above units) | Oth | Secondary Quantity. . 1 (In above units) | | Directory Blocks. . . 5 (Zero for sequential data set) | | Record Format . . . . FB | | Record Length . . . . 80 | | Block Size. . . . . . 800 | | | +------------------------------------------------------------------------+ Control File Conversion Utility Both single field date recalculation and multi-field date recalculation control file entries used by releases of Hiperstation prior to 6.1.0 need to be converted before they can be used with Hiperstation release 6.1.0 or more current. Note: This applies only to single field date recalculation and multi-field date recalculation functions. Control files used by all other functions can be used with Hiperstation release 6.1.0 or more current without any conversion. The Control File Conversion utility converts control files used by prior releases of Hiperstation’s REXX script processor to the format required by Hiperstation release 6.1.0 or more current. If the control file is a dataset, you can convert all members inside the dataset at the same time or perform a selective conversion. Also, Hiperstation can process either in the foreground or background (batch). The Control File Conversion utility does not validate control file entries. Any unknown keywords found in the control file are written as they are to the output file. Starting the Control File Conversion Utility 1. Type C Convert Control File on the REXX Script Processor * Primary Options screen (Figure 12-1 on page 12-2) command line and press Enter to display the Control File Conversion Utility screen (Figure 12-3). 12-4 Hiperstation for VTAM User Guide Figure 12-3. Control File Conversion Utility Screen Hiperstation --------- Control File Conversion Utility --------------- OPTION ===> F Initiate Processing In Foreground. B Initiate Processing In Background. Specify Input Control File Name: Dataset name ===>CNTL.FILE.OLD Member name/pattern===> (For PDS only) Display Member List===>Y (For PDS only) Y Yes,N No Specify Output Control File Name: Dataset name ===>CNTL.FILE.NEW 2. Enter the Input Control File Name: – Dataset Name is the dataset containing the control file entries to be converted. It can be either a PDS or sequential dataset. Do not enter a member name. – Member Name/Pattern: If the input control file is a PDS, you can enter a valid member name pattern to limit member selection. – Display Member List: Y displays the member selection list so you can choose members for conversion. N indicates that the member selection list is not required. In this case, Hiperstation processes all members matching the pattern. 3. Enter the Output Control File Name: – Dataset Name is the dataset where you want to save the converted entries. If this dataset does not already exist, Hiperstation creates it using the attributes of the input control file. If this dataset already exists, it must have the same DSORG as the input control file. You cannot change the member name for the output control file (the same member names from the input control file are always used). 4. Enter the F primary command to convert the control file in TSO foreground or the B primary command to convert the control file in TSO background (batch) mode. 5. After filling in the required information, press ENTER. If you requested a member selection list, a screen appears from which you can choose members for conversion (Figure 12-4). Figure 12-4. Control File Conversion Utility, Member Selection List MEMBER LIST -- USER25.CNTL.FILE -------------------------ROW 00001 COMMAND ===> SCROLL END End and process selection CANcel End without processing Line Cmds: S Select member B Browse member Name VV MM Created Changed Size Init Mod ALL ALLB 01.00 07/05/15 07/05/15 15:06 182 182 0 DOC DOCMF INP MC NOSEP OPTN2 R600 SET 01.00 07/05/15 07/05/15 15:06 182 182 0 T1 **End** OF 00011 ===>PAGE PF PF Customizing Scripts with the REXX Script Processor 12-5 6. Press END to process your selection or CANCEL to exit without processing your selection. Valid line commands include S(earch) and B(rowse). See the online help for a description of these commands. Data Replacement Note: After making changes using the data replacement script processor, you must run the script processor as described in “Running the REXX Script Processor” on page 12-30. Use the data replacement script processor when the recorded script performs an action that causes an application to show a unique output field on a screen that is later typed in as input to that application. The selected value from the output field is then used to replace matching input fields further along in the script. Note: The replacement data must be in output fields generated by an application, not input fields. Data replacement can be demonstrated with the following scenario. A user records a script of the activities required to create a document number, and later inquires on that document number. When the document is created, the application shows the new document number in an output field on line 24 (Figure 12-5). Figure 12-5. Create the Document Number during the Recording YSHP Shipments Selected Listing 05/10/07 15:30:17 ------------------------------------------------------------------------------- Shipment Schedule ------ Consignee ------ Carr T Number Ship Dte Name Reference SCAC M Material Name Vehicle Id ------------------------------------------------------------------------------- 00407654 05/17/07 COMPUWARE 9999 XXXX T YYYYYYYYYYYYY ZZZZZZZZZZ . . . OK _ I012 Document created under number 49012345 01/01 A few screens later, the application prompts for the document number (Figure 12-6). Figure 12-6. Application’s Display Document Screen TB03-Display Document 05/10/07 ------------------------------------------------------------------------------- Doc.No....... ? Company Code. ? . . . OK _ 1 -42170 Type the document number as input on the Display Document screen (Figure 12-7). 12-6 Hiperstation for VTAM User Guide Figure 12-7. Document Number Entered as Input During Recording TB03-Display Document 05/10/07 ------------------------------------------------------------------------------- Doc.No....... 49012345 Company Code. 6 . . . OK _ 1 -42170 When this recorded script is played back, the application creates a new unique document number. But when the document number is entered as input on the Display Document screen, the original document number (49012345) is used. The data replacement function solves this problem by replacing the input document number in the output field on the Display Document screen with a REXX variable. The value of this REXX variable is the document number that the application generates during playback. Figure 12-8 through Figure 12-10 show the data replacement logic taking effect. During playback, a new document number is created (49055512). This new number replaces 49012345 on the Display Document screen (Figure 12-10). The data replacement logic handles situations where the application-generated field is typed into only one input field or into many fields throughout the script. Figure 12-8. New Document Number Created During Playback YSHP Shipments Selected Listing 05/10/07 09:11:05 ------------------------------------------------------------------------------- Shipment Schedule ------ Consignee ------ Carr T Number Ship Dte Name Reference SCAC M Material Name Vehicle Id ------------------------------------------------------------------------------- 00407654 05/16/07 COMPUWARE 9999 XXXX T YYYYYYYYYYYYY ZZZZZZZZZZ . . . OK _ I012 Document created under number 49055512 01/01 Figure 12-9. Application’s Display Document Screen TB03-Display Document 05/10/07 ------------------------------------------------------------------------------- Doc.No....... ? Company Code. ? . . . OK _ 1 -42170 Customizing Scripts with the REXX Script Processor 12-7 Figure 12-10. Original Document Number Being Replaced During Playback TB03-Display Document 05/10/07 ------------------------------------------------------------------------------- Doc.No....... 49055512 Company Code. 6 . . . OK _ 1 -42170 Starting Data Replacement Select option 1 Data Replacement from the REXX Script Processor * Primary Options screen (Figure 12-1 on page 12-2) to display the REXX Script Processor * Data Replacement screen (Figure 12-11). Use this screen to prepare the script processor to write data replacement REXX logic into your scripts. Figure 12-11. REXX Script Processor Data Replacement Screen ----------- Hiperstation REXX Script Processor * Data Replacement ----------- Option ===> Scroll ===> CSR Add Create New Data Replacement Entries Line Cmds: U Update D Delete B Browse Field Field Screen ID Location Length Description ------------------------------------------------------------------------------- Document create (24,46) 08 Handle document number Shipment create (24,46) 08 Handle shipment number ******************************* BOTTOM OF DATA ******************************** If the control file already contains data replacement entries, they are listed on the REXX Script Processor * Data Replacement screen. Otherwise, ** NONE ** appears under Screen ID. The Add primary command displays the Hiperstation REXX Script Processor * Data Replacement ADD screen (Figure 12-12 on page 12-8) where you can create new data replacement entries. You can also update, delete, and browse data replacement entries on this screen. The Screen ID lists the application screen where an application-generated field appears. Field Location indicates the Row and column location where the application-generated field appears on the screen. Field Length specifies the number of characters that make up the length of the application-generated field. Adding a Data Replacement Entry 1. Type A (Add) on the REXX Script Processor * Data Replacement screen (Figure 12-11) and press Enter to display the REXX Script Processor * Data Replacement ADD screen (Figure 12-12). For the REXX script processor to handle our document number scenario, a data replacement entry (such as that shown in Figure 12-12) must be added to the control file. 12-8 Hiperstation for VTAM User Guide Figure 12-12. Data Replacement: ADD Screen Hiperstation --------------- Data Replacement: ADD ---------------------------- Command ===> ENTER Add item END End with save of added items CANcel End without save of added items Enter optional data replacement entry description: Description . . . Handle document number Describe where the Screen ID . . . ID Location . . Field Location. Field Length. . system generated field is displayed: . Document created under number . ** , *** (Row,Col) . 24 , 46 (Row,Col) . 08 Enter exact match only option: Replace Exact Matches Only . . . N (Y/N) 2. Enter an optional data replacement entry description to describe the data replacement entry. 3. Describe where the system-generated field is displayed: – Screen ID is the screen where an application-generated field appears. This field is case sensitive — the uppercase and lowercase characters must match the screen ID in the script exactly. Wildcards are not allowed. The wildcard character is treated as the actual screen ID. – ID Location specifies the screen row and column location of the Screen ID text. Enter ** (asterisks) as wildcards in the row field and *** in the column field to indicate that the screen ID text can be found anywhere on the screen. If a row and column are entered into the screen ID location fields, the row and column must be the screen row and column position where the text starts, not the position in front of the text. Do not make any adjustments to account for attribute bytes. For example, if the screen ID text is located in the upper left corner of the screen, the position of that text may not be row 1, column 1. There may be an attribute character in position (1,1) with the text beginning at (1,2). The column position must be the screen column where the first character of the screen ID text is located. If the screen ID is an * (asterisk), the ID location must be **,***. If the screen ID location is incorrect, the script processor will not recognize the screens that must be processed, and no script processing will occur for this entry. – Field Location is the location of the data to be replaced. It is the screen row and column location of the application-generated field when it appears on the screen set on the screen ID field. You cannot use asterisks (**) as wildcards. The column of the field location must be the screen column position where the field text starts, not the position in front of the text. Use care when typing these values. If the field location is incorrect, no script processing occurs for this entry. – Field Length is the number of characters that make up the application-generated field. 4. Enter Y or N to specify whether to Replace Exact Matches Only. The REXX script processor replaces input fields in the script that have text that match an applicationgenerated field. Sometimes the text does not match exactly when comparing the application-generated field with the input field. Characters in the fields may vary between uppercase and lowercase. For example, the application generated an order number of T1034. But when the user typed it, the order number was recorded as t1034. Leading zeros may not match. For example, the application-generated document number 0000123T8. But when the user typed it later, it was recorded as 123T8. Customizing Scripts with the REXX Script Processor 12-9 Input field filler characters may have been recorded. For example, the applicationgenerated document number is 0000123T8. But when the user typed it later, the input field was prefilled with dashes (----------). Thus, the input field recorded in the script appears as <I01>123T8-----. Note that only special characters (such as: - % . #) are considered to be field filler characters. Valid values in this field include: – N — (No) The script processor uses the length from the control file as the length for the comparison between the recorded data and the generated data. This handles situations with leading zeros and similar conditions as described in the example above. – Y — (Yes) The script processor uses the length of the recorded data input field for the comparison. In this case, the data replacement REXX is written only in places where the input field exactly matches the corresponding application-generated field, in both value and length. The data replacement function replaces all input fields in the script that match the system-generated or application-generated field. 5. Press Enter to add the data replacement entry and remain on the current screen to add more entries. Enter END to return to the REXX Script Processor * Data Replacement screen and save all added entries in the control file. Enter CANcel to return to the REXX Script Processor * Data Replacement screen without saving added entries. Updating a Data Replacement Entry 1. Type U next to the desired item on the REXX Script Processor Data Replacement Screen (Figure 12-11 on page 12-7) and press Enter to display the REXX Script Processor * Data Replacement UPDATE screen (Figure 12-13). Figure 12-13. REXX Script Processor Data Replacement UPDATE Screen --------- Hiperstation REXX Script Processor * Data Replacement UPDATE -------- Command ===> Cancel End Update Without Save END Update Entry Update optional data replacement entry description: Description . . . Handle shipment number Update where the system generated field is displayed: Screen ID . . . . Shipment created under number ID Location . . . 24 , 16 (Row,Col) Field Location. . 24 , 46 (Row,Col) Field Length. . . 08 Update exact match only option: Replace Exact Matches Only . . . Y (Y/N) 2. Enter END to update the information in the control file for the selected data replacement entry and return to the REXX Script Processor * Data Replacement screen. Enter CANcel to return to the REXX Script Processor * Data Replacement screen without updating the entry. Deleting a Data Replacement Entry 1. Type D next to the desired item on the REXX Script Processor Data Replacement Screen (Figure 12-11 on page 12-7) and press Enter to display the Confirm Delete pop-up window. 2. Press Enter to delete the information from the control file for the selected data replacement entry and return to the REXX Script Processor * Data Replacement 12-10 Hiperstation for VTAM User Guide screen or END to return to the REXX Script Processor * Data Replacement screen without deleting the entry. Browsing Data Replacement Entries 1. Type B next to the desired item REXX Script Processor Data Replacement Screen (Figure 12-11 on page 12-7) and press Enter to display the REXX Script Processor * Data Replacement BROWSE screen (Figure 12-14). Figure 12-14. REXX Script Processor * Data Replacement BROWSE Screen -------- Hiperstation REXX Script Processor * Data Replacement BROWSE ------- Command ===> END End Browse Next Browse Next Entry Prev Browse Previous Entry The information in the data replacement entry is shown below: Description . . . HANDLE DOCUMENT NUMBER Screen ID . . . . DOCUMENT CREATED UNDER NUMBER ID Location . . . ** , ** (Row,Col) Field Location. . 24 , 46 (Row,Col) Field Length. . . 08 Replace exact matches only . . . N (Y/N) The Next and Prev primary commands show the next and previous data replacement entries in the control file. 2. After you have finished reviewing the replacement entries, press END to return to the REXX Script Processor Data Replacement screen. Note: To run the script processor, see “Running the REXX Script Processor” on page 12-30. Date Recalculation Note: After making changes using the date recalculation script processor, you must run the script processor (see “Running the REXX Script Processor” on page 12-30). The REXX script processor date recalculation function handles situations where a script has dates that vary based on the date of the script playback. When this happens, the recorded date may not be valid when the script is played back, so the date recalculation function will replace the specified dates with new dates. Figure 12-15 and Figure 12-16 demonstrate a date recalculation scenario for an order entry application. On May 1, 2007, a user records the entry of a new order (Figure 12-15). During order entry, the user types 051207 in the Requested Delivery Date field. Customizing Scripts with the REXX Script Processor 12-11 Figure 12-15. Application’s Order Entry Screen — Delivery Date Input Field CRT IDT/Non-SAP Plsnt ------------------------------- Order Type........... TN Company Code......... 06 Business Area........ 00 Requested Deliv. Date 051207 Plant in Chg. xx Unloading Pt _ Delivering Company... 06 Deliv. Plant 01 Consignee............ 2992 Carrier.............. _ Cust. non-pref. carr. _ Ind. Manual Cons.Addr _ Ind.Man Carrier Addr. _ Ind. Cust. pick-up... _ External Document No. _ OK _ PF: 12=Fast input 1 -12102 Two weeks later, the user plays back that script. The current date is May 15, 2007, but the requested delivery date is still entered as 051207, just as it was recorded. This date is in the past, and the application rejects it causing playback to fail. The date recalculation function solves this problem by replacing the recorded date with a REXX variable that is recalculated when the script is played back. The new date is recalculated relative to the playback date. Thus, when this script is played back on 5/15/07, the delivery date field is entered as 052607 (Figure 12-16). Figure 12-16. Application’s Order Entry Screen — Playback Input Screen CRT IDT/Non-SAP Plsnt ------------------------------- Order Type........... TN Company Code......... 06 Business Area........ 00 Requested Deliv. Date 052607 Plant in Chg. xx Unloading Pt _ Delivering Company... 06 Deliv. Plant 01 Setting a User-Defined Current Date The date recalculation function can also set a user-defined “current date.” The date recalculation function determines the difference between the date on which the script was created and the input date field in the recorded script. It then adds this difference to the current date in calculating the new input date. See “User-Defined Current Date Recalculation REXX” on page 12-36 for an example REXX routine. You can also use the date recalculation function to recalculate dates that appear on recorded script output screens. Note: Using date recalculation to age dates appearing on output screens in recorded scripts has the potential to change the output screens. Aging output dates can minimize miscompares during playback. Be aware, however, of the following: • When you recalculate very large numbers of dates, it can take a long time to start playback because Hiperstation must resolve all date references before loading the script for resolution. • Any data found on the output screen that matches the control file entries is recalculated, no matter what they mean to the application. There is no consideration for date-like fields that are not really dates (such as invoice, part, or serial numbers). 12-12 Hiperstation for VTAM User Guide • Make control file entries as specific as possible to prevent unwanted changes. • To speed up the script processor run, avoid generic screen IDs and generic date locations. Starting Date Recalculation 1. Type 2 Date Recalculation on the REXX Script Processor * Primary Option screen (Figure 12-1 on page 12-2) and press Enter to display the Date Recalculation Item List screen (Figure 12-17). This screen lets you prepare the script processor to write date recalculation REXX logic into your scripts. Figure 12-17. Date Recalculation Item List Screen Hiperstation ----------- Date Recalculation Item List ------------------------- Option ===> Scroll ===> PAGE Add Create New Date Recalculation Items Line Cmds: U Update D Delete B Browse Inp fld Inp Dt Date Out Dt Wkday Screen ID no/locn format sep locn Only Description ------------------------------------------------------------------------------- Following (***) 09 / (18,047) Y Input date ******************************* BOTTOM OF DATA ******************************** If the control file already contains date recalculation entries, they are listed on this screen. 2. Issue the Add primary command or one of the line commands (U)pdate, (D)elete, or (B)rowse. – The Add primary command displays the Date Recalculation: ADD screen (Figure 12-18 on page 12-13) where you can create new date recalculation entries. See “Adding a Date Recalculation Entry” on page 12-12 for details. – The (U)pdate line command displays the Date Recalculation: UPDATE screen (Figure 12-19 on page 12-14). See “Updating a Date Recalculation Entry” on page 12-14 for details. – The (D)elete line command displays the Confirm Delete screen. See “Deleting a Date Recalculation Entry” on page 12-15 for details. – The (B)rowse line command displays the Date Recalculation: BROWSE screen (Figure 12-20 on page 12-15). See “Browsing a Date Recalculation Entry” on page 12-15 for details. Adding a Date Recalculation Entry 1. Type ADD on the Date Recalculation Item List screen (Figure 12-17 on page 12-12) and press Enter to display the Date Recalculation: ADD screen (Figure 12-18). For the REXX script processor to handle the delivery date scenario, a date recalculation entry (such as that shown in Figure 12-18) must be added to the control file. Customizing Scripts with the REXX Script Processor 12-13 Figure 12-18. Example Date Recalculation Entry to Handle Delivery Date Hiperstation ------------- Date Recalculation: ADD -------------------------- Command ===> ENTER Add item END End with save of added items CANcel End without save of added items Enter optional description . . . . Describe the location of the date field: Screen ID. . . . . . . . . . . . ID Location. . . . . . . . . . . ** , *** (Row,Col) Input field number/locn of date. *** (For input dates only) Output location of date. . . . . , (Row,Col). For output dates only. Overlay output area. . . . . . . (Y/N). For output dates only. Enter other date recalculation options: Date Separator Character . . . . (Enter N for no date separator) Weekdays Only. . . . . . . . . . Y (Y/S/N) Input Script Date Format . 1 (1-15) Output Script Date Format . 1 (1-15) 1. MMDDYY 5. MMDDYYYY 9. DDMONYY 13. YYYYMON 2. DDMMYY 6. DDMMYYYY 10. DDMONYYYY 14. MMYYYY 3. YYMMDD 7. YYYYMMDD 11. YYMON 15. MMDDY 4. YYDDD 8. YYYYDDD 12. MMYY Note: To process only input dates, leave the fields associated with output date recalculation blank. 2. Enter an optional description to describe the date recalculation entry. 3. Enter the application Screen ID that contains a date input/output field. This field is case sensitive — the uppercase and lowercase characters must match the screen ID in the script exactly. Type * in this field to find the date on any screen. 4. Enter the screen row and column ID location of the screen ID text. Valid row numbers are between 1 and 43. Valid column numbers are between 1 and 132. Enter ** (asterisks) in the row field and *** in the column field to indicate that the screen ID can be found anywhere on the screen. If the Screen ID is an * (asterisk), the ID Location must be **,***. The column of the screen ID location must be the screen column position where the text starts, not the position in front of the text. Use care when typing these values. If the screen ID location is incorrect, no script processing occurs for this entry. 5. In the Input field number/locn of date field, enter the Input field number, or if the script is recorded in row,column format, the row and column (for example, 3,3) of the input to the screen set on the Screen ID entry. You can use this field in combination with the Screen ID field to tell the script processor to recalculate only certain dates in the script. Enter asterisks (***) to indicate that any input field number can contain a date to recalculate. Enter blanks in this field to prevent recalculation of any input dates. 6. In the Output Location of Date field, enter the row and column location of the output date that requires date recalculation. Valid row numbers are between 1 and 43. Valid column numbers are between 1 and 132. Enter** for row and *** for column for dates anywhere on the screen. Enter blanks in this field to prevent recalculation of any output dates. 7. In the Overlay output area field, specify whether to overlay the screen area if it contains attribute bytes when placing the new date on the screen. Enter Y if the screen area can be overlaid irrespective of its contents. Enter N to reject the request if the output field is not large enough to accept the recalculated date. 8. In the Date Separator Character field, specify the character that separates the month, day, and year of the date. For example, for a date of 05/16/07, the date separator character is a slash (/). Enter an asterisk (*) to indicate that the date 12-14 Hiperstation for VTAM User Guide separator character can vary. If an asterisk is used, the date recalculation function automatically detects the date separator character. Enter N to indicate that no date separator character is used in the date field. 9. Specify whether to use Weekdays Only. – Enter Y to require the recalculated date to be a weekday. If the recalculated date is a Saturday or Sunday, Hiperstation changes it to the following Monday. – Enter N to allow the date to be a weekday or weekend date. – Enter S if the recalculated date will include Saturday as a weekday (MONDAY through SATURDAY). The weekend date will move ahead to the next Monday. 10. Select an Input Script Date Format. Valid input date formats are 1 through 15 (see Figure 12-18 on page 12-13). The format you select describes the format of the input date field to be recalculated specifying the order of the day, month, and year date components, and whether the year is two or four characters. 11. Select an Output Script Date Format. Valid output date formats are 1 through 15 (see Figure 12-18 on page 12-13). The format you select describes the format of the recalculated date field, and specifies the format of the date used as input during playback. For example, if the original script had date input fields with two-digit years (as in format 1), but the application was changed to use four-digit years (as in format 5), enter the input date format as 1 and the output date format as 5. This automatically handles the application change from two-digit to four-digit years. 12. Press Enter to add the date recalculation entry and remain on the current screen to add more entries. Press END to return to the REXX Script Processor Item List screen and save all added entries in the control file, or press Cancel to return without saving any added entries. Updating a Date Recalculation Entry 1. To update a date recalculation entry, type U next to the desired item on the Date Recalculation Item List screen (Figure 12-17 on page 12-12) and press Enter. The Date Recalculation: UPDATE screen appears (Figure 12-19). Figure 12-19. Date Recalculation: UPDATE Screen Hiperstation ------------ Date Recalculation: UPDATE -------------------------- Command ===> END End with save CANcel End without save Update optional description . . . Update the location of the date field: Screen ID. . . . . . . . . . . . Following ID Location. . . . . . . . . . . ** , *** (Row,Col) Input field number/locn of date. 001 For input dates only Output location of date. . . . . 18 , 047 (Row,Col). For output dates only Overlay output area. . . . . . . Y (Y/N). For output dates only Update other date recalculation options: Date Separator Character . . . . (Enter N for no date separator) Weekdays Only. . . . . . . . . . S (Y/S/N) Input Script Date Format . 1 (1-15) Output Script Date Format . 1 (1-15) 1. MMDDYY 5. MMDDYYYY 9. DDMONYY 13. YYYYMON 2. DDMMYY 6. DDMMYYYY 10. DDMONYYYY 14. MMYYYY 3. YYMMDD 7. YYYYMMDD 11. YYMON 15. MMDDY 4. YYDDD 8. YYYYDDD 12. MMYY 2. Press END to update the information in the control file for the selected date recalculation entry and return to the REXX Script Processor Item List screen. Press Cancel to return to the REXX Script Processor Item List screen without updating the entry. Customizing Scripts with the REXX Script Processor 12-15 Deleting a Date Recalculation Entry 1. Type D next to the desired item on the Date Recalculation Item List (Figure 12-17 on page 12-12) screen and press Enter to display the Confirm Delete pop-up window (). Use this screen to delete the selected entry. 2. Press Enter to delete the information from the control file for the selected date recalculation entry and return to the REXX Script Processor Item List screen. Issue the END primary command to return to the REXX Script Processor Item List screen without deleting the entry. Browsing a Date Recalculation Entry 1. Type B next to the desired item on the Date Recalculation Item List screen (Figure 1217 on page 12-12) and press Enter to display the Date Recalculation BROWSE screen (Figure 12-20). Use this screen to browse the selected entry. Figure 12-20. Date Recalculation BROWSE Screen Hiperstation ------- Date Recalculation BROWSE ----------------- Command ===> END End Browse Next Browse Next Entry Prev Browse Previous Entry The information in this date recalculation entry is shown below: Description. . . . . . . . . . Screen ID. . . . . . . . . . . ID Location. . . . . . . . . . Input Date flf number/location Output date location . . . . . Overlay output area. . . . . . Date Separator Character . . . Weekdays Only. . . . . . . . . Input Script Date Format . . . Output Script Date Format. . . Output Date Recalc * ** , *** (Row,Col) *** ** , *** (Row,Col) Y / N (Y/S/N) 1 (1-15) 1 (1-15) 2. Press END to return to the REXX Script Processor Item List screen, Next to navigate to the next date recalculation entry in the control file, or Prev to navigate to the previous date recalculation entry in the control file. Note: To run the script processor, see “Running the REXX Script Processor” on page 12-30. Multi-Field Date Recalculation Note: After making changes using the multi-field date recalculation script processor, you must run the script processor (see “Running the REXX Script Processor” on page 12-30). The multi-field date recalculation function allows you to recalculate input and output dates that span fields, such as when the month, day, and year are contained in different fields. This function is option 5 Multi-Field Date Recalculation on the REXX Script Processor * Primary Options screen (Figure 12-1 on page 12-2). Option 5 displays a list of the currently defined multi-field date control entries. The multi-field date recalculation function Add, Update, Browse and Delete options work similarly to the REXX date recalculation options. To use these options, enter the name and location of the screen. Asterisks (***) are allowed as wildcards in the location fields, indicating that the screen name can appear anywhere on the output screen. 12-16 Hiperstation for VTAM User Guide In addition, you must enter the location of the month field for both input and output dates and the location of at least one, or optionally both, of the day and year fields. This function supports the formats of MM YYYY or MM DD. The format of the month (for example, numeric 1–12 or alphabetic JAN or FEB) and year (two-digit or four-digit) is derived from the value in the script. The Weekday field ensures that the calculated date is a weekday. On some screens, the position of the date can vary. When a field contains an error, it is possible that only that data field is sent to the terminal for validation. When your application performs validation in this manner, the relative input numbers of the date location (month, day, year) can vary based on the previous input. To compensate for this, reformat your script using row,column format and enter the row and column of the input field, or use multiple entries on the same screen. For example, if the same input date (for month, day, year) can occur in fields 4, 5, and 6 or 5, 6, and 7, all that is required is the creation of two control file entries. One control file searches fields 4, 5 and 6 and the other searches 5, 6, and 7 for input date fields. Note: Using multi-field date recalculation to age dates appearing on output screens in recorded scripts has the potential to change the output screens. Aging output dates can minimize miscompares during playback. Be aware, however, of the following: • When you recalculate very large numbers of dates, it can take a long time to start playback because Hiperstation must resolve all date references before loading the script. • Any data found on the output screen that matches control file entries is recalculated, no matter what they mean to the application. There is no consideration for date-like fields that are not really dates (such as invoice, part, or serial numbers). • Make control file entries as specific as possible to eliminate unwanted changes. • To speed up the script processor run, avoid generic screen IDs and generic date locations. Starting Multi-Field Date Recalculation 1. Select option 5 Multi-Field Date Recalculation from the REXX Script Processor * Primary Options screen (Figure 12-1 on page 12-2) and press Enter to display the Multi-Field Date Recalculation Item List screen (Figure 12-21). This screen shows a list of the existing multi-field date entries stored in the control file. If no entries exist, the message (** none **) appears. Figure 12-21. Multi-Field Date Recalculation Item List Screen Hiperstation---- Multi-Field Date Recalculation Item List --------------------- Option ===> Scroll ===> CSR Add Create New Multi-Field Date Items Line Cmds: U Update D Delete B Browse Month Day Year Month Day Year ScreenID Input Input Input Output Output Output Description ------------------------------------------------------ * 002 003 004 Input date cal * 002 003 005 01,001 02,001 03,001 Inp and Out da ******************************* BOTTOM OF DATA ******************************* 2. Issue the Add primary command or one of the line commands (U)pdate, (D)elete, or (B)rowse. Customizing Scripts with the REXX Script Processor 12-17 – The Add primary command displays the Multi-Field Date: ADD screen (Figure 1222 on page 12-17) where you can create new multi-field date entries. If entries already exist, they are listed on this screen. See “Adding a Multi-Field Date Entry” on page 12-17 for details. – The (U)pdate line command displays the Multi-Field Date: UPDATE screen (Figure 12-23 on page 12-19). See “Updating a Multi-Field Date Entry” on page 12-18 for details. – The (D)elete line command displays the Confirm Delete screen. See “Deleting a Date Recalculation Entry” on page 12-15 for details. – The (B)rowse line command displays the Multi-Field Date: BROWSE screen (Figure 12-24 on page 12-19). See “Browsing a Multi-Field Date Entry” on page 12-19 for details. Adding a Multi-Field Date Entry 1. Type ADD on the Multi-Field Date Recalculation Item List screen (Figure 12-21) and press Enter to display the Multi-Field Date: ADD screen (Figure 12-22). Figure 12-22. Multi-Field Date: ADD Screen Hiperstation --------------- Multi-Field Date: ADD ----------------------------- Command ===> ENTER Add item END End with save of added items CANcel End without save of added items Enter Description . Describe the message and where it is displayed. Screen ID . . . . * ID Location . . . 01 , 01 (Row,Col) Describe Multi-field input date (Required when processing input dates): Month Position. . Input field number or location ('000' for julian) Day Position . . Input field number or location Year Position . . Input field number or location Describe Multi-field output date (Required when processing output dates): Month location. . , (Row,Col) (Enter 00,000 for Julian) Day location. . . , (Row,Col) Year location . . , (Row,Col) Weekday?. . . . . Y (yes) / N (no) 2. Enter an optional Description of the multi-field date entry. 3. Enter the Screen ID for the screen where the multi-field date is input or shown. This field is case sensitive — the uppercase and lowercase characters must match the screen ID in the script exactly. Wildcards are not allowed. A wildcard character is treated as the actual screen ID. 4. Enter the screen ID Location (screen row and column of the screen ID). Valid row numbers are between 1 and 43. Valid column numbers are between 1 and 132. Enter ** (asterisks) in the row field and *** in the column field to indicate that the screen ID can be found anywhere on the screen. If a row and column are entered into the screen ID location fields, the row and column must be the screen row and column position where the text starts. Do not make any adjustments to account for attribute bytes. For example, if the screen ID is located in the upper left corner of the screen, the position of that text may not be row 1, column 1. There may be an attribute character in position (1,1) with the text beginning at (1,2). In this case, specify 1,2 for the screen ID location fields. 12-18 Hiperstation for VTAM User Guide If the screen ID is an * (asterisk), the ID location must be **,***. If the screen ID location is incorrect, the script processor will not recognize the screens to be processed, and no script processing will occur for this entry. 5. Enter the Input dates. The Month Position is required. Either the Day Position or the Year Position is also required, or you can use both if desired. – Month Position is the field number or row and column location where the month is entered on the input screen. Valid row numbers are between 1 and 43. Valid column numbers are between 1 and 132. Enter 000 to recalculate Julian dates. This field is mandatory when processing input dates. – Day Position is the field number or row and column location where the day is entered on the input screen. Valid row numbers are between 1 and 43. Valid column numbers are between 1 and 132. Leave input day fields blank if you do not want them processed. This field is optional if the Year Position field is used. – Year Position is the field number or row and column location where the year is entered on the input screen. Valid row numbers are between 1 and 43. Valid column numbers are between 1 and 132. Leave input year fields blank if you do not want them processed. This field is optional if the Day Location field is used. 6. Enter the Output dates. The Month Location is required. Either the Day Location or the Year Location is also required, or you can use both if desired. Note: To process only input dates, leave the output date fields blank and Hiperstation will not perform any output recalculation. – Month Location is the field number or row and column location where the month is entered on the output screen. Valid row numbers are between 1 and 43. Valid column numbers are between 1 and 132. Wildcards are not allowed in this field. Enter 00 for row and 000 column numbers to process Julian dates. This field is mandatory when processing output dates. – Day Location is the field number or row and column location where the day is entered on the output screen. Valid row numbers are between 1 and 43. Valid column numbers are between 1 and 132. Wildcards are not allowed in this field. This field is optional if the Year Location field is used. – Year Position is the field number or row and column location where the year is entered on the output screen. Valid row numbers are between 1 and 43. Valid column numbers are between 1 and 132. Wildcards are not allowed in this field. This field is optional if the Day Location field is used. 7. Specify whether the recalculated date must be a Weekday. Y requires the recalculated date to be a weekday. If the recalculated date is a Saturday or Sunday, Hiperstation changes it to the following Monday. N allows the date to be either a weekday or weekend date. 8. Press Enter to save the entry, which is stored in the control file when the END key is pressed. 9. Press END to exit the ADD screen and save the new entries in the control file or CANCEL to exit the ADD screen without saving new entries. Updating a Multi-Field Date Entry 1. Type U next to the desired item on the Multi-Field Date Recalculation Item List screen (Figure 12-21 on page 12-16) and press Enter to display the Multi-Field Date: UPDATE screen (Figure 12-23). Customizing Scripts with the REXX Script Processor 12-19 Figure 12-23. Multi-Field Date: Update Screen Hiperstation ------------ Multi-Field Date: UPDATE ------------------ Command ===> END End with save CANcel End without save Optional Description . MF date Update screenid and location: Screen ID . . . . * ID Location . . . ** , *** (Row,Col) Update Multi-field input date info: Month Position. . Input field number or location (’000’ for Julian) Day Position . . Input field number or location Year Position . . Input field number or location Update Multi-field output date info: Month location. . 10 , 017 (Row,Col) (Enter 00,000 for Julian) Day location. . . 11 , 017 (Row,Col) Year location . . 12 , 017 (Row,Col) Weekday?. . . . . N Y (yes) / N (no) 2. Change the existing multi-field date entries as desired and press Enter. 3. Issue the END command to exit the UPDATE screen and save your changes or CANCEL to exit without saving your changes. The field definitions are the same as those described in “Adding a Multi-Field Date Entry” on page 12-17. Browsing a Multi-Field Date Entry 1. Type B next to the desired item on the Multi-Field Date Recalculation Item List screen (Figure 12-21 on page 12-16) and press Enter to display the Multi-Field Date BROWSE screen (Figure 12-24). This screen is for viewing only, field information cannot be changed. Figure 12-24. Multi-Field Date BROWSE Screen Hiperstation ------------- Multi-Field Date: BROWSE -------------------------- Command ===> END End Browse Next Browse Next Item Prev Browse Previous Item The information in this multi-field date entry is shown below: Description. . . . . . . Input date calc Screen ID. . . . . . . . * ID Location. . . . . . . ** , *** (Row,Col) Month input num/locn . . 002 Day input num/locn . . . 003 Year input num/locn. . . 004 Month output locn. . . . Day output locn. . . . . Year output locn . . . . Input number or location Input number or location Input number or location , , , (Row,Col) (Row,Col) (Row,Col) Weekday? . . . . . . . . N 2. Issue the END command to exit the BROWSE screen, NEXT to view the next date entry in the control file, or PREV to view the previous date entry in the control file. 12-20 Hiperstation for VTAM User Guide Deleting a Multi-Field Date Entry 1. Type D next to the desired item on the Multi-Field Date Recalculation Item List screen (Figure 12-21 on page 12-16) and press Enter to display the Multi-Field Date Confirm Delete pop-up window. 2. Press Enter to delete the entry and remove it from the control file, or press END to exit the Confirm Delete pop-up window without deleting the entry from the control file. Note: To run the script processor, see “Running the REXX Script Processor” on page 12-30. List Processing Note: After making changes using list processing, you must run the script processor as shown in “Running the REXX Script Processor” on page 12-30. The REXX script processor list processing function handles situations where the application being tested presents a screen containing a list of rows from which the user can select. The row originally selected during the recording may move to a different location in the list before playback. When this happens, you can use the list processing function to enhance playback so that the script always selects the original row, even if it has moved within the list. Sample List Processing Scenario Figure 12-25 and Figure 12-26 provide a sample list processing scenario. During the recording, the user selects member H01AC069 from the application’s ISPF member list screen (Figure 12-25) by typing an S line command and pressing Enter. Figure 12-25. List Row Selected Menu Functions Utilities Help ------------------------------------------------------------------------------ EDIT CWX0001.RYAN.JCL Row 00024 of 00089 Command ===> Scroll ===> CSR Name VV MM Created Changed Size Init Mod ID . EXPAND 01.00 06/11/14 06/11/14 17:23 14 14 0 CWX0001 . FILE501 01.01 05/10/13 06/02/01 10:47 177 177 0 CWX9990 . FILE51 01.00 06/01/27 06/01/27 09:30 177 177 0 CWX0001 . GENERATE 01.01 05/11/17 06/01/23 16:30 55 55 0 CWX0001 . GENMASK 01.00 05/10/20 05/10/20 08:44 3 3 0 CWX0001 . GOOD . GOOD2 . GTFPRINT 01.03 07/03/12 07/03/27 14:11 18 19 0 CWX0001 . HIPERDC2 01.00 05/09/19 05/09/19 13:26 160 160 0 CWX0001 . HIPERDOC 01.15 05/09/09 05/09/14 10:24 284 194 0 CWX0001 S H01AC069 01.02 05/02/23 07/04/04 11:08 110 76 110 CWX0001 . H01AC139 01.08 06/02/03 07/04/04 12:43 95 102 0 CWX0001 . IDCAMS 01.01 05/08/30 05/08/30 10:56 46 32 0 CWX0001 . IDCAM3 01.06 06/04/04 06/06/13 16:08 20 19 0 CWX0001 However, when this script is later played back, the rows in the member listing screen may have changed. New members may have been added while other members may have been deleted. The script could select a different member from the listing because H01AC069 has moved (Figure 12-26). Customizing Scripts with the REXX Script Processor 12-21 Figure 12-26. Wrong Row Selected During Playback Menu Functions Utilities Help ------------------------------------------------------------------------------ EDIT CWX0001.RYAN.JCL Row 00024 of 00089 Command ===> Scroll ===> CSR Name VV MM Created Changed Size Init Mod ID . EXPAND 01.00 06/11/14 06/11/14 17:23 14 14 0 CWX0001 . FILE501 01.01 05/10/13 06/02/01 10:47 177 177 0 CWX9990 . FILE51 01.00 06/01/27 06/01/27 09:30 177 177 0 CWX0001 . GENERATE 01.01 05/11/17 06/01/23 16:30 55 55 0 CWX0001 . GENMASK 01.00 05/10/20 05/10/20 08:44 3 3 0 CWX0001 . GTFPRINT 01.03 07/03/12 07/03/27 14:11 18 19 0 CWX0001 . HIPERDC2 01.00 05/09/19 05/09/19 13:26 160 160 0 CWX0001 . HIPERDOC 01.15 05/09/09 05/09/14 10:24 284 194 0 CWX0001 . H01AC069 01.02 05/02/23 07/04/04 11:08 110 76 110 CWX0001 . H01AC139 01.08 06/02/03 07/04/04 12:43 95 102 0 CWX0001 S IDCAMS 01.01 05/08/30 05/08/30 10:56 46 32 0 CWX0001 . IDCAM3 01.06 06/04/04 06/06/13 16:08 20 19 0 CWX0001 . IEBCOPY 01.32 05/08/30 07/09/26 15:00 27 53 0 CWX0001 . IEBGENER 01.62 05/04/29 07/09/09 15:31 14 12 0 CWX0001 The list processing function adds logic to the script so that when it is played back, Hiperstation looks through the list rows for the original row. The script processor does this by looking at each row in the listing and matching it with what was originally selected. If the original row is not found on the page, the list processing logic scrolls to the next page and continues searching. If the original row is not found anywhere in the list, the script shows an error message and playback stops. Starting List Processing 1. Type 3 on the REXX Script Processor * Primary Options screen (Figure 12-1 on page 12-2) and press Enter to display the Hiperstation REXX Script Processor * List Processing screen (Figure 12-27). This screen prepares the script processor to write list processing REXX logic into scripts. If the control file already contains list processing entries, they appear on this screen. Figure 12-27. Hiperstation REXX Script Processor * List Processing Screen ------------- Hiperstation REXX Script Processor * List Processing ------------ Option ===> Scroll ===> CSR Add Create New List Processing Entries Line Cmds: U Update D Delete B Browse List Key Key Screen ID Type Column Length Description ------------------------------------------------------------------------------- PLAD1 Line C 07 31 Playback Script Directory EDIT Line C 04 08 ISPF EDIT ******************************* BOTTOM OF DATA ******************************** The Key Column is the screen column location of the key. The key is the data in the list row that uniquely marks each row. Key Length is the Number of characters that make up the key. 2. Issue the Add primary command or one of the line commands (U)pdate, (D)elete, or (B)rowse. – The Add primary command displays the List Processing: ADD screen (Figure 1228 on page 12-22) where you can create new list processing entries. See “Adding a List Processing Entry” on page 12-22 for details. – The (U)pdate line command displays the Hiperstation REXX Script Processor * List Processing UPDATE screen. See “Updating a List Processing Entry” on page 12-23 for details. 12-22 Hiperstation for VTAM User Guide – The (D)elete line command displays the Confirm Delete screen. See “Deleting a List Processing Entry” on page 12-24 for details. – The (B)rowse line command displays the Hiperstation REXX Script Processor * List Processing BROWSE screen. See “Browsing a List Processing Entry” on page 12-24 for details. Adding a List Processing Entry 1. Type ADD on the REXX Script Processor * List Processing screen command line (Figure 12-27 on page 12-21) and press Enter to display the List Processing: ADD screen (Figure 12-28) and add a new list processing entry. Figure 12-28. List Processing: ADD Screen Hiperstation -------------- List Processing: ADD ---------------------------- Command ===> ENTER Add item END End with save of added items CANcel End without save of added items Enter optional list processing entry description: Description . . . List Processing test entry Describe the list screen: Screen ID . . . . LISTPROC ID Location . . . ** , ** (Row,Column) List Location . . 10 , 20 (Top Row,Bottom Row) Scroll Pfkeys . . PF8 , PF9 (Up,Down) Selection Pfkey . enter Key Location. . . +7 , 20 (Column,Length) List Type . . . . 1 (1-2) 1. Cursor Select 2. Line Command Select End of List ID. . 3 (1-4) 1. Scrolling Stops 2. Blank Key 3. NN/NN (Current Page/Total Pages) 4. End Of List Text Enter processing parameters for End of List ID = 3: SAP format N (Y/N) Current page Row __ Col __ Len __ Total page Row __ Col __ Len __ 2. Enter an optional Description to describe the list processing entry. 3. Enter the Screen ID for the application screen that contains the list. This field is case sensitive — the uppercase and lowercase characters must match the screen ID in the script exactly. Wildcards are not allowed. The wildcard character is treated as the actual screen ID. 4. Enter the ID Location. This is the screen row and column location of the screen ID text. Enter ** (asterisks) as wildcards in the row and column fields to indicate that the screen ID text can be found anywhere on the screen. If a row and column are entered into the screen ID location fields, the row and column must be the screen row and column position where the text starts. Do not make any adjustments to account for attribute bytes. For example, if the screen ID is located in the upper left corner of the screen, the position of that text may not be row 1, column 1. There may be an attribute character in position (1,1) with the text beginning at (1,2). In this case, specify 1,2 for the screen ID location fields. If the screen ID is an * (asterisk), the ID location must be **,***. If the screen ID location is incorrect, the script processor will not recognize the screens to be processed, and no script processing will occur for this entry. 5. Enter the List Location on the screen where the list rows appear. The two list location fields are the top row and bottom row fields. Enter the row number of the first row in the list in the top row field and the row number of the last row in the list in the bottom row field. 6. Enter the Scroll PFkeys that you want to use to page up/back and down/forward through the list. Type the PF key used to scroll backward in the Up field, and type the PF key used to scroll forward in the Down field. Customizing Scripts with the REXX Script Processor 12-23 7. Enter the Selection Pfkey you will use when selecting a row from the list. For example, if you select a row by typing S and pressing Enter, then Enter is the selection PF key. 8. Enter the Key Location. The key is the data in the list row that uniquely marks each row. Type the screen column location of the key in the key column field, and the number of characters in the key in the key length field. For example, the key used for the member listing scenario is the member name itself. The member name appears starting in column 4 with a length of 8. The key location can be entered as an absolute number (01 to 99) or as a relative number (+1 to +9). The relative number represents the relative position from the selected command position to the key, and can be used for multiple-column key lists. 9. Enter the End Of List ID (the number of one of the four following options) to specify what happens when the end of the list is reached when scrolling forward: – 1. Scrolling Stops: When you reach the end of the list, scrolling forward repeatedly shows the same screen. – 2. Blank Key: The end of the list can be determined when the “key” is empty (a blank row). – 3. NN/NN: The end of the list is a current page/total page counter. This is commonly found on list screens in SAP applications. If you use this option, review the current page and total page parameters in the SPPARMS member. These parameters are described in the Hiperstation Installation Guide. If the specification for these parameters is not SAP format, they can be entered on this screen. – 4. End-of-List Text: The end of the list is when you reach the text typed in the End-of-List Text field. Be sure to correctly match the uppercase and lowercase characters. 10. Enter the type of lists that can be handled by the script processor: – Cursor Select: Select the row by placing the cursor on the desired row and pressing a PF key. – Line Command Select: Select the row by placing data in an input field on the desired row. For example, type S in a field to select the row. The list processing function does not handle multiple line commands. If you type S in lines 9, 10, and 13 to select all three rows, the list processing function selects only the first row. 11. Leave the command line blank and press Enter to add the list processing entry and remain on the current screen to add additional entries. Press END to return to the Hiperstation REXX Script Processor * List Processing screen and save all added entries in the control file. Press Cancel to return to the Hiperstation REXX Script Processor * List Processing screen without saving added entries. Updating a List Processing Entry 1. Type U next to the desired item on the Hiperstation REXX Script Processor * List Processing screen (Figure 12-27 on page 12-21) and press Enter to display the Hiperstation REXX Script Processor * List Processing UPDATE screen (Figure 12-29) and update the selected entry. 12-24 Hiperstation for VTAM User Guide Figure 12-29. Hiperstation REXX Script Processor * List Processing UPDATE Screen --------- Hiperstation REXX Script Processor * List Processing UPDATE -------- Command ===> Cancel End Update Without Save END Update Entry Update optional list processing entry description: Description . . . List Processing test entry Update the list screen description: Screen ID . . . . LISTPROC ID Location . . . ** , ** (Row,Column) List Location . . 10 , 20 (Top Row,Bottom Row) Scroll Pfkeys . . PF8 , PF9 (Up,Down) Selection Pfkey . ENTER Key Location. . . +7 , 20 (Column,Length) List Type . . . . 1 (1-2) 1. Cursor Select 2. Line Command Select End of List ID. . 3 (1-4) 1. Scrolling Stops 2. Blank Key 3. NN/NN (Current Page/Total Pages) 4. End Of List Text Update processing parameters for End of List ID = 3: SAP format N (Y/N) Current page Row 10 Col 11 Len 23 Total page Row 23 Col 22 Len 20 2. Press END to update the information in the control file for the selected list processing entry and return to the Hiperstation REXX Script Processor * List Processing screen or Cancel to return to the Hiperstation REXX Script Processor * List Processing screen without updating the entry. Deleting a List Processing Entry 1. Type D next to the desired item on the Hiperstation REXX Script Processor * List Processing screen (Figure 12-27 on page 12-21) and press Enter to display the Confirm Delete pop-up window. 2. Press Enter to delete the information from the control file for the selected list processing entry and return to the Hiperstation REXX Script Processor * List Processing screen or END to return to the Hiperstation REXX Script Processor * List Processing screen without deleting the entry. Browsing a List Processing Entry 1. Type B next to the desired item on the Hiperstation REXX Script Processor * List Processing screen (Figure 12-27 on page 12-21) and press Enter to display the Hiperstation REXX Script Processor *List Processing BROWSE screen (Figure 12-30). Field information can only be viewed, not changed, on the Browse screen. Customizing Scripts with the REXX Script Processor 12-25 Figure 12-30. REXX Script Processor List Processing BROWSE Screen --------- Hiperstation REXX Script Processor * List Processing BROWSE -------- Command ===> END End Browse Next Browse Next Entry Prev Browse Previous Entry The information in this list processing entry is shown below: Description . . . . . . TESTING LIST PROCESSING Screen ID . . . . . . . LISTPROC ID Location . . . . . . ** , ** (Row,Col) List Location . . . . . 10 , 20 (Top Row,Bottom Row) Scroll Pfkeys . . . . . PF7 , PF8 (Up,Down) Selection Pfkey . . . . ENTER Key Location. . . . . . +7 , 20 (Col,Length) End Of List ID. . . . . 1 (1-4) End Of List Text. . . . NN/NN Specification . .SAP -- Current Page / Total Pages - List Type . . . . . . . LINE COMMAND SELECT 2. Use the END, Next, or Prev primary command to view another processing entry or return to the REXX Script Processor * List Processing screen. – END returns to the Hiperstation REXX Script Processor * List Processing screen. – Next shows the next list processing entry in the control file. – Prev shows the previous list processing entry in the control file. Note: To run the script processor, see “Running the REXX Script Processor” on page 12-30. Synchronization Note: After making changes using synchronization, you must run the script processor as shown in “Running the REXX Script Processor” on page 12-30. The REXX script processor notes situations where the application being tested unexpectedly generates messages (such as ‘Processing...’) that say it is busy or blocked. If these messages appear during recording and not during playback, or vice versa, playback can get out of sync with the application. The REXX script processor notes these messages in the recorded script and as playback runs. When such a message is encountered, the script takes the appropriate action to handle the message and stay in sync with the application being tested. For example, a user records herself doing an inquiry. When the application processes the inquiry, if the response time is good the next screen appears immediately. But if the system is busy, the application responds with the message PLEASE WAIT, as shown at the bottom of Figure 12-31, and the user’s terminal is free for input. Continue to press Enter until the PLEASE WAIT message disappears and the inquiry is complete. 12-26 Hiperstation for VTAM User Guide Figure 12-31. PLEASE WAIT Message PLDB INQ 11111 - ENTER FUNCTION CODE - ENTER EMPLOYEE NUMBER (OPTIONAL FOR BROWSE) *** COMPUWARE CORPORATION *** CICS PLAYBACK/FX DB2 SAMPLE TRANSACTION VALID FUNCTIONS CODES ARE: INQ (INQUIRE), UPD (UPDATE), ADD (ADD), DEL (DELETE), BRO (BROWSE) SOME VALID EMPLOYEE NUMBERS ARE: 11111, 22222, 33333, 44444, 55555 DATE: 07.235 TIME: 11:08:58 MSG100 - PLEASE WAIT WHILE PROCESSING INQUIRY If the message appears during inquiry processing, you may have to press Enter five times before the inquiry is complete. Or, you may press Enter nine times but the message may never appear at all. When the recorded script differs from the script that is played back, playback can easily get out of sync. The synchronization function solves this problem by first removing the “extra” Enter keys from the recording, and then inserting REXX code into the script to handle the Enter keys in case the message appears during playback. Starting Synchronization 1. Select option 4 Synchronization on the REXX Script Processor * Primary Options screen (Figure 12-1 on page 12-2), and press Enter to display the REXX Script Processor * Synchronization screen (Figure 12-32). On this screen you can set up the script processor for writing synchronization REXX logic into your scripts. If the control file already contains synchronization entries, they appear on the REXX Script Processor * Synchronization screen. The REXX code to perform the synchronization is added to the output script. The code is constantly executed during playback. Use caution when creating synchronization entries. More entries in the control file create more REXX code in the output script. Unnecessary synchronization entries in the control file create unnecessary CPU usage when the script is played back. Figure 12-32. REXX Script Processor Synchronization Screen ------------ Hiperstation REXX Script Processor * Synchronization ----------- Option ===> Scroll ===> PAGE Add Create New Synchronization Entries Perform synchronization prior to each input message Line Cmds: U Update D Delete B Browse Message Message Text Location Action Description ------------------------------------------------------------------------------- ** NONE ** ******************************* BOTTOM OF DATA ******************************** 2. Issue the Add primary command or one of the line commands (U)pdate, (D)elete, or (B)rowse. – The Add primary command displays the Hiperstation REXX Script Processor * Synchronization screen (Figure 12-33 on page 12-27) where you can create new Customizing Scripts with the REXX Script Processor 12-27 synchronization entries. See “Adding a Synchronization Entry” on page 12-27 for details. – The (U)pdate line command displays the Hiperstation REXX Script Processor * Synchronization UPDATE screen (Figure 12-34 on page 12-29). See “Updating a Synchronization Entry” on page 12-28 for details. – The (D)elete line command displays the Confirm Delete screen. See “Deleting a Synchronization Entry” on page 12-29 for details. – The (B)rowse line command displays the Hiperstation REXX Script Processor * Synchronization BROWSE screen (Figure 12-35 on page 12-29). See “Browsing a Synchronization Entry” on page 12-29 for details. 3. When you select Perform synchronization prior to each input message, the script processor places an <ADDCALL> statement at the beginning of the script, forcing synchronization processing to be performed prior to each input message. This is useful for applications like SAP where the point of synchronization is not known until script execution time. When this option is not selected, the script processor adds synchronization calls to the script based on the synchronization entries. Type a slash to select this option. Adding a Synchronization Entry 1. Type ADD on the Option line on the Hiperstation REXX Script Processor * Synchronization screen (Figure 12-32 on page 12-26) and press Enter to display the Synchronization: ADD screen (Figure 12-33). For the script processor to handle the PLEASE WAIT scenario, you must add a synchronization entry (such as the one shown below) to the control file. Figure 12-33. REXX Script Processor Synchronization ADD Screen Hiperstation -------------- Synchronization: ADD ------------------------------ Command ===> ENTER Add item END End with save of added items CANcel End without save of added items Enter optional synchronization entry description: Description . . . . Describe the message and where it is displayed: Screen ID . . . . . * ID Location . . . . ** , ** (Row,Col) Message Text. . . . PLEASE WAIT Message Location. . ** , ** (Row,Col) Describe the action to take when the message is displayed: Action To Take. . . . . ENTER Max Times To Repeat . . 025 Delay Time Amount . . . 00 : 10 (mm:ss) 2. Enter an optional Description to describe the synchronization entry. 3. Enter a Screen ID if you want the script processor to respond to a message only when it appears on a specific screen. This field is case sensitive — the uppercase and lowercase characters must match the screen ID in the script exactly. 4. Enter the ID Location (screen row and column) of the screen ID text. Enter asterisks (**) as wildcards in the row and column fields to indicate that the screen ID text can be found anywhere on the screen. If a row and column are entered into the screen ID location fields, the row and column must be the screen row and column position where the text starts. Do not make any adjustments to account for attribute bytes. For example, if the screen ID is located in the upper left corner of the screen, the position of that text may not be 12-28 Hiperstation for VTAM User Guide row 1, column 1. There may be an attribute character in position (1,1) with the text beginning at (1,2). In this case, specify 1,2 for the screen ID location fields. If the screen ID is an * (asterisk), the ID location must be **,***. If the screen ID location is incorrect, the script processor will not recognize the screens to be processed, and no script processing will occur for this entry. 5. Enter the Message Text indicating that the system is busy or blocked. The message text is case sensitive, so match the uppercase and lowercase characters with the characters generated in the application message. 6. Enter the Message Location (screen row and column) of the message text. The column of the message location must be the screen column position where the text starts. Do not make any adjustments to account for attribute bytes. Use care when typing these values. If the message location is incorrect, no script processing occurs for this entry. Enter asterisks (**) in the row and column fields to indicate that the message text can be found anywhere on the screen. 7. Enter the Action To Take when the message is encountered. Valid options include: – AID Key: If the action is to press an AID key such as Enter, Clear, or PF6, type the AID key in the Action To Take field. – WAIT: If the action is to wait for a set amount of time without pressing a key, type WAIT in the Action To Take field. – REPEAT: If the action is to repeat the previous AID key, type REPEAT in the Action To Take field. 8. Enter the maximum number of times to repeat the action if the message is encountered during playback in the Max Times To Repeat field. The Action To Take repeats until the message is gone. Entering 0 in this field sets no limit to the number of times the action is repeated. 9. Set a Delay Time Amount for when the value in the Action To Take field is WAIT. This sets how long playback waits when the message is encountered. If the action is REPEAT or an AID key, you can use the delay time to pause before taking the action. For example, if the Delay Time amount is 00,15, playback pauses for 15 seconds before the action is taken. 10. Press Enter to add the synchronization entry and remain on the current screen to add more entries or END to return to the REXX Script Processor * Synchronization screen and save all added entries in the control file. Enter CANcel to return to the REXX Script Processor * Synchronization screen without saving any added entries. Updating a Synchronization Entry 1. Type U next to the desired item on the REXX Script Processor * Synchronization screen (Figure 12-32 on page 12-26), and press Enter to display the Hiperstation REXX Script Processor * Synchronization UPDATE screen (Figure 12-34). Customizing Scripts with the REXX Script Processor 12-29 Figure 12-34. REXX Script Processor Synchronization UPDATE Screen --------- Hiperstation REXX Script Processor * Synchronization UPDATE --------- Command ===> Cancel End Update Without Save END Update Entry Update optional synchronization entry description: Description . . . . Handle Processing... condition Update the message and Screen ID . . . . . ID Location . . . . Message Text. . . . Message Location. . where it is displayed: * ** , ** (Row,Col) Processing... 24 , 05 (Row,Col) Update the action to take when the message is displayed: Action To Take. . . . . ENTER Max Times To Repeat . . 010 Delay Time Amount . . . 00 : 15 (mm:ss) 2. Enter END to update the information in the control file for the selected synchronization entry and return to the Hiperstation REXX Script Processor * Synchronization screen. Enter Cancel to return to the Hiperstation REXX Script Processor * Synchronization screen without updating the entry. The field definitions for this screen are the same as those for the Synchronization: ADD screen (see Figure 12-33 on page 12-27). Deleting a Synchronization Entry 1. To delete an entry, type D next to the desired item on the Hiperstation REXX Script Processor * Synchronization screen (Figure 12-32 on page 12-26). The Confirm Delete pop-up window will appear. 2. Press Enter to delete the information from the control file for the selected synchronization entry and return to the Hiperstation REXX Script Processor * Synchronization screen or END to return to the Hiperstation REXX Script Processor * Synchronization screen without deleting the entry. Browsing a Synchronization Entry 1. To browse a synchronization entry, type B next to the desired item on the Hiperstation REXX Script Processor * Synchronization screen (Figure 12-32 on page 12-26), and press Enter to display the Hiperstation REXX Script Processor * Synchronization BROWSE screen (Figure 12-35). Figure 12-35. REXX Script Processor Synchronization BROWSE Screen --------- Hiperstation REXX Script Processor * Synchronization BROWSE --------- Command ===> END End Browse Next Browse Next Entry Prev Browse Previous Entry The information in this synchronization entry is shown below: Description . . . . Screen ID . . . . . ID Location . . . . Message Text. . . . Message Location. . Action To Take. . . Max Times To Repeat Delay Time Amount . . . . . . . . . . . . . . . . . HANDLE PROCESSING... CONDITION * ** , ** (Row,Col) PROCESSING... 24 , 05 (Row,Col) ENTER 010 00 : 30 (mm:ss) 12-30 Hiperstation for VTAM User Guide 2. Press END to return to the Hiperstation REXX Script Processor * Synchronization screen. Press Next to show the next synchronization entry in the control file. Press Prev to show the previous synchronization entry in the control file. Note: To run the script processor, see the next section, “Running the REXX Script Processor”. Running the REXX Script Processor After a script is recorded and the appropriate entries are made and saved in the control file, you are ready to run the REXX script processor. 1. Enter GO on the Option line on the REXX Script Processor * Primary Options screen (Figure 12-1 on page 12-2). The Hiperstation Script Processor * Execution screen appears (Figure 12-36). Figure 12-36. Hiperstation Script Processor * Execution Screen ------------------ Hiperstation Script Processor * Execution ------------------ Command ===> blank Continue Type the names of the script data sets below, then press Enter key Do not specify the script/member name Input Script Project . Group . . Type . . Data Set: . . CWX0001 . . HIPER . . SCRIPTS Other Partitioned Data Set: Data Set Name . . . Output Script Data Set: Project . . . CWX0001 Group . . . . HIPER Type . . . . SCRIPTS Other Partitioned Data Set: Data Set Name . . . 2. Enter the name of the dataset (not including the member) that contains your recorded Hiperstation scripts in the Input Script Data Set field. 3. Enter the name of the dataset (not including the member) used to store the new “processed” scripts in the Output Script Dataset field. Note: The input and output datasets can be the same or different. 4. Press Enter to continue. The Hiperstation Script Processor * Execution screen appears (Figure 12-37). Customizing Scripts with the REXX Script Processor 12-31 Figure 12-37. List Script Names for Processing ----------------- Hiperstation Script Processor * Execution ----------------- Option ===> F B Initiate Processing In Foreground. Initiate Processing In Background. Input Script Data Set: ’CWX0001.HIPER.SCRIPTS’ Output Script Data Set: ’CWX0001.HIPER.SCRIPTS’ INPUT SCRIPT NAME TEST1 TEST2 OUTPUT SCRIPT NAME TESTOUT1 TESTOUT2 Replace Existing Members . . . Y (Y/N) The input and output script dataset names are prefilled from the previous screen and cannot be changed. 5. Enter the member names of the recorded Hiperstation scripts to process in the Input Script Name column. Enter an asterisk (*) as the script name to process all members in the dataset. 6. Enter the member names of the new scripts to be created by the script processor in the Output Script Name column. There must be an output script name for every input script name. If you use the same name for both the input and output scripts, the script processor will overwrite the original script. If you enter an asterisk (*) as the input script name, you must also use an asterisk as the output script name. 7. Specify whether to Replace Existing Members if an output script already exists. Enter Y to overwrite existing scripts. 8. Enter F or B on the Option line and press Enter to begin. F starts the script processor in TSO foreground. B runs the script processor in the background (batch) freeing your terminal while the script processor runs. Background (Batch) Execution 1. Type B on the Hiperstation Script Processor * Execution screen (Figure 12-36 on page 12-30), and press Enter. The Hiperstation Script Processor * Background Execution screen appears (Figure 12-38). Figure 12-38. Script Processor Background Execution Screen ------------ Hiperstation Script Processor * Background Execution ------------ Command ===> Go To generate and display the JCL End To exit without submitting Specify jobcard information: //ACMJET0A JOB (’AHPBAS5.2.0MNT’,45),’JOE E. TESTER’, // NOTIFY=ACMJET0,CLASS=A,MSGCLASS=R // // // Sysout Class For Output Messages . . . * You must supply the script processor with JCL job statements for it to run in background mode. 2. Type the job statements in the jobcard information area and enter the Go command. This displays the JCL in edit mode. 12-32 Hiperstation for VTAM User Guide 3. To submit the JCL immediately, enter SUB on the command line. Background processing starts and the Hiperstation Script Processors screen reappears. When the script processor builds the background job JCL, it obtains information from SPPARMS. SPPARMS is a member in the EXEC library of the script processor. It is a program that contains only parameters. Refer to the Hiperstation Installation Guide for information on the SPPARMS parameters. 4. Enter the Sysout Class For Output Messages. The script processor generates some messages to describe the successful execution and/or errors encountered during script processing. The messages are written to the SYSOUT queue listed by this field. 5. Press END to exit the Script Processor * Background Execution screen without submitting the JCL. Processed Script REXX Structures The REXX script processor produces Hiperstation output scripts that contain REXX code. This section describes the layout of the various REXX instructions and routines that can be imbedded in the output script. CAUTION: You can easily modify the REXX code placed in the output scripts using the script processor, but you do so AT YOUR OWN RISK. Data Replacement REXX There are two parts to data replacement. The first part obtains the data from the systemgenerated field on the chosen application screen. The second part uses that data as input later in the script. The data generated during playback replaces the original input data. When a data replacement entry is created, you define the screen where the systemgenerated field appears. When the REXX script processor runs and finds this “from” screen, it inserts REXX instructions after it in the output script. Basically, the REXX instructions get the data in the system-generated field off the screen and store it in an array variable called SYSTEM_FIELD. Figure 12-39 provides a REXX example that stores a “from” field in the variable SYSTEM_FIELD.1. Figure 12-39. Data Replacement REXX Storing “From” Field <S16>......Net(H01AD02T).Rel. . <S17>. .Ter(EP03) .Pri(.000.).Pag.Ins.Ati.Tti. . <S18>......Net(H01AD03T).Rel. . <S19>.+.Ter(EP04) .Pri(.000.).Pag.Ins.Ati.Tti. . <S20>......Net(H01AD04T).Rel. . <S21> <S22>......................................................SYSID=C054.APPLID=H01 <S23>...RESPONSE:.NORMAL.............................TIME: 10.59.50 DATE: 05.2 <S24>.PF.1.HELP.......3.END....................7.SBH.8.SFH.9.MSG.10.SB.11.SF. </OUTPUT> /*********************************************************/ /* Data replacement REXX inserted 10 May 2007-13:15:12 */ /*********************************************************/ row = 23 col = 56 len = 08 system_field.1 = SUBSTR(screen,(row-1)*80+col,len) <INPUT>0000007 <THINK>01.57.331 AT 00:02:20.421 When the REXX script processor finds an input field value that matches the original “from” field value, it replaces that input with the matching variable name (Figure 12-40). Customizing Scripts with the REXX Script Processor 12-33 Figure 12-40. Data Replacement REXX, Replaced Input Field </OUTPUT> <INPUT>0000012 <THINK>00.07.960 AT 00:02:51.723 <KEY>ENTER <CURSOR>10,32 <I01>system_field.1 <I02>"000.00" <I03>"000.00" </INPUT> Date Recalculation REXX When the REXX script processor produces a script that contains date recalculation REXX, REXX instructions are inserted in several places. REXX is first added in the beginning of the script where the variable SCRIPT_BASE initializes. This variable contains a date base (number of days elapsed since 01/01/0001) that represents the date the original script was recorded. Figure 12-41. Variable Script_Base ******************************************************************** * CREATED BY USER: USER25 TPF: TSO TIME: 11:26 DATE: 01/15/07 * DESC: ******************************************************************** <VERSION>7 /******************************************************************* /* Date recalculation REXX inserted 15 Jan 2007 09:16:30 /******************************************************************* script_base = 729769 REXX instructions are also added where an input and/or output date field is found in the original script. The original date value is replaced with a REXX variable that is recalculated during playback. Prior to using the out_date variable, the REXX statements to call the date recalculation routine (SPDTCALC) are added to the script. Figure 12-42. SPDTCALC - Date Recalculation Function /******************************************************************* /* Date recalculation REXX inserted 22 Jan 2007 16:25:21 /******************************************************************* out_date = SPDTCALC(’DATE’,’5’,’N’,’1’,’/’) <I01>out_date <I02>"John smith" <I03>"000.00" </INPUT> The SPDTCALC function uses the following information to calculate a new date in the requested format. A brief description of each follows. • • • • • Return type Difference Weekday only indicator Date format Date separator character 12-34 Hiperstation for VTAM User Guide Return Type Tells the SPDTCALC function what to return. Format Description DATE Return date in the chosen format MM Return 2 digit numeric month (01 through 12) DD Return 2 digit day (01 through 31) YY Return 2 digit year (01 through 99) MON Return 3 character alpha month (JAN, FEB,…DEC) DDD Return 3 digit julian day (001 through 366) CCYY Return 4 digit year (0001 through 9999) Difference This is the number of days between the script creation date and the actual date being recalculated. SPDTCALC applies this difference to the current date to get the new date. Weekday only indicator Indicator Description Y The returned date must be a weekday (Monday through Friday). Weekend date moves ahead to the next Monday. N The returned date need not be a weekday. In this case, the returned date could be any day (Sunday through Saturday). Date format Determines the format for the returned date. This is required only for DATE type. Date separator character The character that separates year, month, and day for the returned date. It is required only for DATE type. Finally, the script processor creates the external REXX function SPDTCALC. It is placed in the same dataset where the output script is created. Note: The SPDTCALC member is not created if it already exists in the output script dataset. Do not delete or modify this member. Figure 12-43. Sample Input Date Recalculation REXX Code </OUTPUT> <BASETIME>09/18/06 11:26:51.888 <INPUT>0000002 <THINK>00.03.229 AT 00:00:00.000 <KEY>ENTER <CURSOR>03,14 /******************************************************************* /* Date recalculation REXX inserted 22 Jan 2007 16:25:21 /******************************************************************* out_date = SPDTCALC(’DATE’,’5’,’N’,’1’,’/’) <I01>out_date </INPUT> As you can see in Figure 12-43, the script processor replaces the actual date in the input field with a REXX variable (for example, out_date). This variable is initialized and creates a new date value during playback by invoking the SPDTCALC REXX function. Customizing Scripts with the REXX Script Processor 12-35 Figure 12-44. Sample Output Date Recalculation REXX Code /******************************************************************* /* Date recalculation REXX inserted 22 Jan 2007 16:56:04 /******************************************************************* DV1=SPDTCALC(’DATE’,’15’,’N’,’1’,’/’) /* Date=01/31/07 Col=01 S07=’<S07> Date: ’||, DV1||, ’ Date of shipment’ <OUTPUT>0000001 <RESPONSE>00.00.346 <S01> <S02> <S03> <S04> <S05> Name: John Smith <S06> <ALTER>S07 <S07> Date: 01/31/07 Date of shipment <S08> <S00> <S11> <S12> <S13> Month: 01 Month of shipment <S14> <S15> Day : 31 Day of shipment <S16> <S17> Year : 07 Year of shipment <S18> <S10> <S20> <S21> <S22> <S23> <S24> </OUTPUT> When the REXX script processor produces a script that contains output from date recalculation, REXX instructions are inserted in several places: • Just before the <OUTPUT> card, the following REXX statements, that contains dates selected for recalculation, are added: – One REXX variable is set up for every date value found in a screen row. This REXX variable is defined to run the SPDTCALC function and return the new date during playback. Note that the original date and its starting column number are placed as a comment at the end for easy reference. – One REXX assignment statement is inserted for every screen row that contains dates for recalculation. This assignment statement builds a string from the original screen row by replacing all date values with REXX variables. Note that the screen row is broken into multiple lines at date positions. • Just before the screen row that contains a date, an <ALTER> card selected for recalculation is inserted. During playback, the <ALTER> card replaces the original screen row with the contents of the variable shown on the <ALTER> card. Figure 12-45 shows the contents of the SPDTCALC REXX function. 12-36 Hiperstation for VTAM User Guide Figure 12-45. Contents of the SPDTCALC REXX Function /******************* REXX ***********************************/ /* Member : SPDTCALC */ /* Created on: 19 Jan 2007 */ /* Created by: Hiperstation Script Processor */ /* */ /* DESCRIPTION: */ /* */ /* This member is a REXX program used to perform date */ /* recalculation. It is called by the Hiperstation */ /* Script processor. It utilizes the following REXX */ /* functions supplied by Hiperstation: */ /* */ /* 1. SPBASE - returns base for a given date */ /* 2. SPDATE - returns date for a given base */ /* */ /* DIRECTIONS: */ /* */ /* DO NOT modify the contents of this REXX program. */ /************************************************************/ ARG date_type,difference,wkday_only,date_format,date_sep UPPER date_type wkday_only CALL dateset /* Get today’s date*/ PARSE VAR result day ’/’ month ’/’ year /* Break it down */ today_base = SPBASE(year,month,day) /* Convert to base */ new_base = today_base + difference /* Add difference */ /* Call SPDATE function to convert new base to date */ SELECT WHEN date_type = ’DATE’ THEN /* get date */ ret_value = SPDATE(new_base,wkday_only,date_format,date_sep) WHEN date_type = ’MM’ THEN /* get numeric month */ ret_value = SPDATE(new_base,wkday_only,’28’,’N’) WHEN date_type = ’MON’ THEN /* get alpha month */ ret_value = SPDATE(new_base,wkday_only,’29’,’N’) WHEN date_type = ’DD’ THEN /* get 2 digit day */ ret_value = SPDATE(new_base,wkday_only,’31’,’N’) WHEN date_type = ’DDD’ THEN /* get julian day */ ret_value = SPDATE(new_base,wkday_only,’32’,’N’) WHEN date_type = ’YY’ THEN /* get 2 digit year */ ret_value = SPDATE(new_base,wkday_only,’27’,’N’) WHEN date_type = ’CCYY’ THEN /* get 4 digit year */ ret_value = SPDATE(new_base,wkday_only,’26’,’N’) OTHERWISE DO SAY ’Incorrect call to routine SPDTCALC’ EXIT END END RETURN ret_value User-Defined Current Date Recalculation REXX Hiperstation writes a DATESET script to your script dataset in addition to the scripts processed using the REXX script processor. The DATESET script is a REXX routine that returns the system date, if no modifications are made, but allows you to set the current date by setting the MONTH, DAY, and YEAR variables in it. An example is shown in Figure 12-46. Customizing Scripts with the REXX Script Processor 12-37 Figure 12-46. Date Recalculation REXX, Example DATASET Routine /***********************************************/ /* NOTE: There is no validation performed on */ /* the date values you enter. Make sure you */ /* enter a valid date. */ /***********************************************/ MONTH = ’01’ DAY = ’15’ YEAR = ’2007’ /******************************************/ /* DO NOT MODIFY ANYTHING BELOW THIS LINE */ /******************************************/ IF MONTH = ’’ THEN DO dt_string = DATE(’S’) YEAR = SUBSTR(dt_string,1,4) MONTH = SUBSTR(dt_string,5,2) DAY = SUBSTR(dt_string,7,2) END RETURN_VALUE = day||’/’||month||’/’||year In Figure 12-46, the DATESET routine returns 01/15/2007 as the current date. If the values for MONTH, DAY, and YEAR are not set, the system date is returned. Note: In addition to the DATASET script, Hiperstation also writes a GETBASE script to your script dataset. Do not delete these scripts from your script dataset. List Processing REXX When the REXX script processor processes a list processing entry, it takes two actions. First, it removes the original screens associated with the list from the script. It then fills that gap with a REXX instruction that calls a routine to perform the list selection. The script processor inserts a call statement at the place in the script where the original list selection was made during the recording. The call instruction passes the REXX list processor key, which marks the row originally selected. Figure 12-47 is an example of the list processing REXX. This example shows a list of members listed by ISPF when editing a dataset. The key is the member name, ‘H01AC069’. Figure 12-47. List Processing REXX, Call to List Routine </INPUT> /*********************************************************/ /* List Processing REXX inserted 10 May 2007-17:22:27 */ /*********************************************************/ CALL process_list1 ’H01AC069’ <OUTPUT>0000004 <RESPONSE>00.00.660 The script processor then adds the list selection routines at the end of the script (Figure 12-48). The code in this routine vary depending on the information in the list processing entry. 12-38 Hiperstation for VTAM User Guide Figure 12-48. List Processing REXX, Example List Selection Routine EXIT /*********************************************************/ /* List Processing REXX inserted 10 May 2007-17:22:27 */ /*********************************************************/ process_list1: ARG match_key top_row = ’6’ bottom_row = ’24’ row_ctr = top_row - 1 DO FOREVER CALL format_the_screen row_ctr = row_ctr + 1 row_text=SUBSTR(the_screen,(row_ctr-1)*columns+1,columns) key = SUBSTR(row_text,04,08) IF key = match_key THEN DO row_ctr = row_ctr + 1 LEAVE END IF row_ctr >= bottom_row THEN DO liststart = (top_row - 1) * columns + 1 listend = bottom_row * columns curr_list=SUBSTR(the_screen,liststart,listend-liststart) IF curr_list = prev_list THEN DO SAY ’ERROR: Original list selection not found’ SAY ’ Original row was ’||match_key EXIT END ELSE DO row_ctr = top_row - 1 prev_list = curr_list <INPUT> <KEY>PF8 </INPUT> END END END line_cmd = "s" <INPUT>0000009 <EXECUTE>"<I("||row_ctr||",2)>"line_cmd <KEY>ENTER </INPUT> RETURN format_the_screen: the_screen = ’’ DO text_ctr = 1 TO LENGTH(screen) char = SUBSTR(screen,text_ctr,1) IF char < ’40’x THEN char = ’ ’ the_screen = the_screen||char END RETURN Synchronization REXX When the REXX script processor processes a synchronization entry, it must handle occurrences of the application message in the recording and during playback. The script processor handles occurrences of the message that appeared during the recording by deleting those “extra” sections. If the original script shows a user pressing Enter repeatedly because of a particular application message, the script processor deletes those input and output sections in the output script. In case the application message appears during playback, REXX code is imbedded in the output script to handle it. This is achieved by inserting an <ADDCALL> statement in the beginning of the output script (Figure 12-49). This <ADDCALL> statement continuously runs a routine called SYNCH_HANDLE during playback. Customizing Scripts with the REXX Script Processor 12-39 Figure 12-49. Synchronization REXX, <ADDCALL> Statement ************************************************************************ * CREATED BY USER: CWX0001 TPF: H01AC054 TIME: 10:58 DATE: 05/01/07 * * DESC: * ************************************************************************ <VERSION>7 /*********************************************************/ /* Synchronization REXX inserted 10 May 2007-13:15:12 */ /*********************************************************/ synch_handle_ctr1 = 0 <ADDCALL>synch_handle <OUTPUT>0000001 <RESPONSE>00.00.020 SYNCH_HANDLE is a REXX routine located at the end of the script, generated by the synchronization script processor. It contains the logic to correctly identify the message if it appears, and takes the appropriate action to get past it and stay in sync with the application being tested. Figure 12-50 is an example routine that looks for the message “PROCESSING.....” If the routine finds this message anywhere on the screen, then it sends the Enter command until the message no longer appears. Figure 12-50. Synchronization REXX, Example SYNCH_HANDLE Routing /*********************************************************/ /* Synchronization REXX inserted 1 May 2007-13:15:12 */ /*********************************************************/ EXIT synch_handle: CALL format_the_screen max_synch_handle_ctr1 = 025 IF POS(’PROCESSING...’,the_screen) > 0 THEN DO IF synch_handle_ctr1 > max_synch_handle_ctr1 THEN DO SAY ’REACHED MAX REPEAT COUNTER’ RETURN END synch_handle_ctr1 = synch_handle_ctr1 + 1 <WAIT> 00,0 <DELCALL> <INPUT> <KEY>ENTER </INPUT> <OUTPUT> </OUTPUT> CALL synch_handle RETURN END synch_handle_ctr1 = 0 RETURN format_the_screen: the_screen = ’’ DO text_ctr = 1 TO LENGTH(screen) char = SUBSTR(screen,text_ctr,1) IF char < ’40’x THEN char = ’ ’ the_screen = the_screen||char END RETURN Troubleshooting REXX Script Processor Problems The following examples document some problems that can occur when using the REXX script processor and their resolutions. Data Replacement If data replacement processing results in the message: 12-40 Hiperstation for VTAM User Guide SPHPR020 TOTAL DATA REPLACEMENTS MADE: 0 then the following items can help determine why nothing happened. Screen ID Text This field is case sensitive — the uppercase and lowercase characters must match the screen ID in the script exactly. If the text does not match exactly, the script processor will not recognize the screens that require processing. Wildcards are not allowed. The wildcard character is treated as the actual screen ID. Screen ID Location Screen row and column location of the screen ID text. Enter asterisks (**) as wildcards in the row and column fields to indicate that the screen ID text can be found anywhere on the screen. If a row and column are entered into the screen ID location fields, the row and column must be the screen row and column position where the text starts, not the position in front of the text. Do not make any adjustments to account for attribute bytes. For example, if the screen ID text is located in the upper left corner of the screen, the position of that text may not be row 1, column 1. There may be an attribute character in position (1,1) with the text beginning at (1,2). The column position must be the screen column where the first character of the screen ID text is located. If the screen ID is an * (asterisk), the ID location must be **,***. If the screen ID location is incorrect, the script processor will not recognize the screens that must be processed, and no script processing will occur for this entry. Note: If you determine the column of the screen ID by browsing the recorded script, column 1 starts in the first position immediately following the <Snn>. Field Location Follow the same guidelines as documented for the Screen ID Location field. Replace Exact Matches Only Data replacement processing involves finding a system-generated field on an output screen, and finding where the text of that field is defined as input later in the script. This is a matching process. If an input field matches the system-generated field, it is replaced. If none of the input fields match the system-generated field, no data replacement occurs. In some cases, the input field may not match the system-generated field. Leading zeros may not match or the input field may contain extra field-filler characters. Enter N in the Replace Exact Matches Only field to tell the script processor to handle these conditions and still make the match. If you enter Y, the system-generated field and the input field must match exactly or the input field is not replaced. Date Recalculation If date recalculation processing results in the following message: SPHPR050 TOTAL DATES RECALCULATED: 0 then the following items can help determine why nothing happened. Screen ID Text This field is case sensitive — the uppercase and lowercase characters must match the screen ID in the script exactly. If the text does not match exactly, the script processor will not recognize the screens that require processing. Wildcards are not allowed. The wildcard character is treated as the actual screen ID. Customizing Scripts with the REXX Script Processor 12-41 Screen ID Location Screen row and column location of the screen ID text. Enter asterisks (**) as wildcards in the row and column fields to indicate that the screen ID text can be found anywhere on the screen. If a row and column are entered into the screen ID location fields, the row and column must be the screen row and column position where the text starts, not the position in front of the text. Do not make any adjustments to account for attribute bytes. For example, if the screen ID text is located in the upper left corner of the screen, the position of that text may not be row 1, column 1. There may be an attribute character in position (1,1) with the text beginning at (1,2). The column position must be the screen column where the first character of the screen ID text is located. If the screen ID is an * (asterisk), the ID location must be **,***. If the screen ID location is incorrect, the script processor will not recognize the screens that must be processed, and no script processing will occur for this entry. Note: If you determine the column of the screen ID by browsing the recorded script, column 1 starts in the first position immediately following the <Snn>. Is the Field a Date? As the date recalculation component processes a script, it analyzes input fields to determine if the field is a date. If the input field is not a valid date, then it does not recalculate. The script processor uses the date separator character field and input date format field from the date recalculation entry to help make this determination. It also analyzes the day, month, and year portions of the date field to see if they make up a valid date. The parameters LOW_YEAR and HIGH_YEAR are used when determining the validity of a two-digit year field. These parameters are documented in the Hiperstation Installation Guide. List Processing If a list processing run results in the following message: SPHPR350 TOTAL LIST SCREENS HANDLED: 0 then the following items can help determine why nothing happened. Screen ID Text This field is case sensitive — the uppercase and lowercase characters must match the screen ID in the script exactly. If the text does not match exactly, the script processor will not recognize the screens that require processing. Wildcards are not allowed. The wildcard character is treated as the actual screen ID. Screen ID Location Screen row and column location of the screen ID text. Enter asterisks (**) as wildcards in the row and column fields to indicate that the screen ID text can be found anywhere on the screen. If a row and column are entered into the screen ID location fields, the row and column must be the screen row and column position where the text starts, not the position in front of the text. Do not make any adjustments to account for attribute bytes. For example, if the screen ID text is located in the upper left corner of the screen, the position of that text may not be row 1, column 1. There may be an attribute character in position (1,1) with the text beginning at (1,2). The column position must be the screen column where the first character of the screen ID text is located. If the screen ID is an * (asterisk), the ID location must be **,***. If the screen ID location is incorrect, the script processor will not recognize the screens that must be processed, and no script processing will occur for this entry. 12-42 Hiperstation for VTAM User Guide Note: If you determine the column of the screen ID by browsing the recorded script, column 1 starts in the first position immediately following the <Snn>. Was a Selection Made from the List? When the list processing logic finds the list screen, it checks to see whether an item was selected from the list. For example, it is possible that when the script was being recorded the user brought up the list screen, scrolled forward a couple of times, but then simply exited from the screen. Since the user did not select a row from the list, no list processing REXX is inserted for this scenario. The list processing function determines whether an item was selected by first analyzing the <KEY>. If the key does not match the selection PF key field, or either of the scroll PF key fields from the list processing entry, then it is assumed that a selection was not made. If the key matches the selection key, list processing analyzes the entered input. – If the list type is cursor select, the cursor location is checked using <CURSOR> statement information, by comparing the row position where the cursor was with the list location top and bottom row fields in the list processing entry. If the cursor was on a row within the list, the list processing function assumes a valid selection was made and the REXX is inserted. If the cursor position was not within the list, list processing assumes that an item was not selected. – If the list type is line command select, the list processing function checks whether a list item was selected by looking for data entered in an input field located within the list. For example, if the list processing function finds <I06>"s", and the location of input field number 6 is within the top and bottom rows of the list, it assumes that a valid list selection was made and the REXX is inserted. If nothing was entered in any of the input fields, or if the input fields that had data in them were not located in the list, the list processing function assumes that a selection was not made. Synchronization Normally, if something was entered incorrectly in a data replacement, date recalculation, or list processing entry, the REXX code is not inserted and nothing happens. For synchronization processing, the REXX is always inserted — even if the entry is incorrect. However, if the entry contained an error, the REXX code may not work correctly when it starts during playback. This makes it more difficult to recognize that an error occurred. Here are some items to check if it appears that the synchronization REXX routine is not working properly. Screen ID Text This field is case sensitive — the uppercase and lowercase characters must match the screen ID in the script exactly. If the text does not match exactly, the script processor will not recognize the screens that require synchronization processing. Wildcards are not allowed. The wildcard character is treated as the actual screen ID. Screen ID Location Screen row and column location of the screen ID text. Enter asterisks (**) as wildcards in the row and column fields to indicate that the screen ID text can be found anywhere on the screen. If a row and column are entered into the screen ID location fields, the row and column must be the screen row and column position where the text starts, not the position in front of the text. Do not make any adjustments to account for attribute bytes. For example, if the screen ID text is located in the upper left corner of the screen, the position of that text may not be row 1, column 1. There may be an attribute character in position (1,1) with the text beginning at (1,2). The column position must be the screen column where the first character of the screen ID text is located. Customizing Scripts with the REXX Script Processor 12-43 If the screen ID is an * (asterisk), the ID location must be **,***. If the screen ID location is incorrect, the script processor will not recognize the screens that must be processed, and no script processing will occur for this entry. Note: If you determine the column of the screen ID by browsing the recorded script, column 1 starts in the first position immediately following the <Snn>. Message Text The same rules apply to the Message Text field as documented above for the Screen ID Text field. If the message text is incorrect, the REXX logic will not detect that the message appeared during the playback, and the synchronization logic is never started. Message Location The same rules apply to the message location field as documented above for the Screen ID Location field. If the message location is incorrect, the REXX logic never detects that the message appeared during the playback, and the synchronization logic is never started. 12-44 Hiperstation for VTAM User Guide 13-1 Chapter 13. Date Change and Date Find Script Processors Chap 13 The Date Change and Date Find script processors search through Hiperstation for VTAM scripts and find or change date fields. Note: Hiperstation determines century dates based on the LOW_YEAR and HIGH_YEAR parameters set by the installer. For more information about these parameters, refer to the Hiperstation Installation Guide. Date Change Script Processor The date change script processor allows you to move dates forward in baseline Hiperstation scripts. The date change script processor finds date input and output fields (such as a delivery date) in recorded scripts, then transforms the year portion of the date from a two-digit to a four-digit number. For example, if a recorded delivery date field is <I01>"05/30/07", the date change script processor automatically changes it to <I01>"05/30/2007". The change is stored in a new output script created by the script processor. 1. Select option 2 Date Change on the Script Processors screen (Figure 13-1) to use the Date Change Script Processor. Figure 13-1. Script Processors Menu Hiperstation --------------- Script Processors -------------------------------- Option ===> 1 REXX Processor Create "Smart" Script(s) 2 Date Change Change Year Formats for Date Testing 3 Date Find Report Location(s) of Date Field(s) 4 Input Field Formats Change Input Fields to Row/Column Format 5 MultiChange Processor Update Scripts to Reflect Application Changes 6 Security Script Processor Locate and Modify Passwords 7 Euro Euro Script Utility 8 GST GST Testing Utility 9 Message Filtering Message Filtering Utility The Hiperstation Script Processor * Date Change Options screen appears (Figure 132). 13-2 Hiperstation for VTAM User Guide Figure 13-2. Hiperstation Script Processor * Date Change Options Screen ------------- Hiperstation Script Processor * Date Change Options ------------- Option ===> 1 Single Field Dates Dates with separators 2 Multi-Field Dates Month, Day and Year contained in separate fields 3 Embedded Dates Manipulation of Month, Day and Year Fields separately Userid . user25 Date . . 07/09/25 Time . . 13:16 Enter END command to return to Hiperstation Script Processor Menu. 2. Select one of the following date change options: – 1 Single Field Dates — converts year values to four-digit format as described in “Single Field Dates” on page 13-2. – 2 Multi-Field Dates — converts year values to four-digit format for dates split into more than one field as described in “Multi-Field Dates” on page 13-3. – 3 Embedded Dates — replaces the data for a date as described in “Embedded Dates” on page 13-5. 3. Press END to exit the date change script processor and return to the Script Processors menu. Single Field Dates 1. Select option 1 Single Field Dates to use the Single Field Date Script Processor. The Single Field Date Change screen appears (Figure 13-3). Figure 13-3. Single Field Date Change Screen Hiperstation ------------- Single Field Date Change --------------- Command ===> Go Begin Date Change Execution END Return to Hiperstation Script Processor Primary Option Panel Identify the Screen to process: Screen ID . . . .* ID Location . . .**,*** (Row,Col) Describe Input Dates to Change: Date Separator Character. / (Enter N for no date separator) Date Format . . . . . . . 1 (1-8 or * for all formats) Describe Output Dates to Change: Date Separator Character. / (Enter N for no date separator) Date Format . . . . . . . 5 (1-7) Date Location . . . . . . **,*** (Row,Col) Allow ATR Overlay . . . . N (Y/N) Valid Date Formats are: 1. MMDDYY 3. YYMMDD 5. DDMONYY 7. MMYY 2. DDMMYY 4. YYDDD 6. YYMON 8. YY Use this screen to change two-digit years to four-digit format for dates stored in single fields. 2. Identify the screen to process by entering the Screen ID for the screen where the multi-field date is input or shown. This field is case sensitive — the uppercase and lowercase characters must match the screen ID in the script exactly. If the text does not match exactly, the script processor will not recognize the screens that require Date Change and Date Find Script Processors 13-3 synchronization processing. Wildcards are not allowed. The wildcard character is treated as the actual screen ID. 3. Enter the ID Location (screen row and column location) of the screen ID text. Valid row numbers are between 1 and 43. Valid column numbers are between 1 and 132. Enter ** (asterisks) as wildcards in the row field and *** in the column field to indicate that the screen ID text can be found anywhere on the screen. If a row and column are entered into the screen ID location fields, the row and column must be the screen row and column position where the text starts. Do not make any adjustments to account for attribute bytes. For example, if the screen ID is located in the upper left corner of the screen, the position of that text may not be row 1, column 1. There may be an attribute character in position (1,1) with the text beginning at (1,2). In this case, specify 1,2 for the screen ID location fields. If the screen ID is an * (asterisk), the ID location must be **,***. If the screen ID location is incorrect, the script processor will not recognize the screens to be processed, and no script processing will occur for this entry. 4. Fill in the Describe Input Dates to Change and/or Output Dates to Change to change only input fields, only output fields, or both input and output fields. – Input Date Separator Character — divides the month, day, and year of the date. For example, for a date of 06/01/07, the date separator character is a slash (/). Enter an asterisk (*) to indicate that the date separator character can vary. Enter N to indicate that no date separator character is used in the date fields. – Input Date Format — describes the arrangement of the day, month, and year date components. Valid values are 1 through 8, or an asterisk (*). Enter an asterisk (*) to have the script processor handle all eight date formats. Note: Input date change information is optional when output date change information is entered. – Output Date Separator Character — divides the month, day, and year of the date. For example, for a date of 06/01/07, the date separator character is a slash (/). Wildcards are not allowed in this field. – Output Date Format — describes the arrangement of the day, month, and year date components. Valid values are 1 through 7. Wildcards are not allowed in this field. – Date Location — specifies the row and column location of the date on the output screen. Row numbers must be between 1 and 43, and column numbers must be between 1 and 132. To process dates appearing anywhere on the screen, enter ** for row number and *** for column number. – Allow ATR overlay — specifies whether to overlay the screen area with the expanded year if it contains attribute bytes. Enter Y to indicate that the screen area can be overlaid irrespective of its content. Enter N to reject the request when the screen area contains attribute bytes. 5. Type Go and press Enter to begin date change execution or END to exit the date change script processor and return to the Hiperstation Script Processor * Date Change Options screen. 6. When you press Enter, the Script Processor Execution screen appears (Figure 13-6 on page 13-6). This screen allows you to enter the datasets used in script processing as described in “Running the Date Change Script Processor” on page 13-6. Multi-Field Dates 1. To use the Multi-Field Date Script Processor, select option 2 Multi-Field Dates. The Multi-Field Date Change screen appears (Figure 13-4). 13-4 Hiperstation for VTAM User Guide Figure 13-4. Multi-Field Date Change Screen Hiperstation -------------- Multi-Field Date Change --------------------------- Command ===> Go Begin Date Change Execution RESet Initialize input fields END Return to Hiperstation Date Change Options Panel Identify the Screen to process: Screen ID . . . . *CRNID ID Location . . . ** , *** (Row,Col) Enter Input Date Change Information: Month . . . . . . Input field number or Location row,col Day . . . . . . . Input field number or Location row,col Year. . . . . . . Input field number or Location row,col Enter Output Date Change Information: Month . . . . . . , (Row,Col) Day . . . . . . . , (Row,Col) Year. . . . . . . , (Row,Col) Allow ATR overlay (Y-Yes, N-No) You can use this screen to change dates contained in multiple input fields on an application screen from two-digit years to four-digit years. 2. Enter the Screen ID where the multi-field date is input or shown. This field is case sensitive — the uppercase and lowercase characters must match the screen ID in the script exactly. If the text does not match exactly, the script processor will not recognize the screens that require synchronization processing. Wildcards are not allowed. The wildcard character is treated as the actual screen ID. 3. Enter the ID Location (screen row and column location) of the screen ID text. Valid row numbers are between 1 and 43. Valid column numbers are between 1 and 132. Enter ** (asterisks) as wildcards in the row field and *** in the column field to indicate that the screen ID text can be found anywhere on the screen. If a row and column are entered into the screen ID location fields, the row and column must be the screen row and column position where the text starts. Do not make any adjustments to account for attribute bytes. For example, if the screen ID is located in the upper left corner of the screen, the position of that text may not be row 1, column 1. There may be an attribute character in position (1,1) with the text beginning at (1,2). In this case, specify 1,2 for the screen ID location fields. If the screen ID is an * (asterisk), the ID location must be **,***. If the screen ID location is incorrect, the script processor will not recognize the screens to be processed, and no script processing will occur for this entry. 4. For the input and output Month, Year, and optionally Day, specify a field number between 1 and 999 OR its position on the screen (row number between 1 and 43 and column number between 1 and 132, separated by a comma). Hiperstation scripts mark input fields with the eye catcher <Ixx>, where xx is the number of the input when specifying a field number and <I(rr,ccc)>, where rr,ccc is the row and column number when specifying a row,column format. Enter either the relative input numbers or the row and column numbers (when the script locates Input by row and column position) of the year, month, and optionally the day. 5. Specify whether to Allow ATR overlay. Y indicates that the screen area can be overlaid with the expanded year irrespective of its content even if it contains attribute bytes (not recommended). N indicates that the request should be rejected when the screen area contains attribute bytes (recommended). 6. Issue one of the primary commands to continue: – GO begins the date change script processor. When you press Enter, the Script Processor Execution screen appears (Figure 13-6 on page 13-6). This screen allows you to enter the datasets used in script processing as described in “Running the Date Change Script Processor” on page 13-6. Date Change and Date Find Script Processors 13-5 – RESET changes all values on this screen to blanks. – END exits the date change script processor and returns to the Hiperstation Script Processor * Date Change Options screen. Embedded Dates 1. To use the Embedded Date Script Processor, select option 3 Embedded Dates. The Embedded Dates Change screen appears (Figure 13-5). Figure 13-5. Embedded Dates Change Screen Hiperstation --------------- Embedded Dates Change ---------------------------- Command ===> Go Begin Date Change Execution RESet Initialize input fields END Return to Hiperstation Date Change Options Panel Identify the Screen to process: Screen ID . . . . * ID Location . . . ** , *** (Row,Col) Enter date change information: Date Field Input number or Location of Month ______ Day ______ Year ______ Position in Input Field of. Month ___ Day ___ Year ___ For a Length of . . . . . . Month _ Day _ Year _ Change To . . . . . . . . . Month ___ Day __ Year ____ Move To Position. . . . . . Month ___ Day ___ Year __ Use this screen to process the Month, Day, and Year as separate integers embedded within a single input field. This function is only available for input dates. 2. Enter the Screen ID whose input dates are to be changed. This field is case sensitive — the uppercase and lowercase characters must match the screen ID in the script exactly. If the text does not match exactly, the script processor will not recognize the screens that require synchronization processing. Enter an asterisk (*) to process all screens. 3. Enter the ID Location (screen row and column location) of the screen ID text. Valid row numbers are between 1 and 43. Valid column numbers are between 1 and 132. Enter ** (asterisks) as wildcards in the row field and *** in the column field to indicate that the screen ID text can be found anywhere on the screen. Note: For the date fields, the valid inputs for Month, Day, and Year include input field number between 1 and 999 or row number between 1 and 43 and column number between 1 and 132 separated by a comma (,). 4. In the Input number or location of field, specify the number of the input field in which the value is contained. In the script, input fields are designated by <Inn> or <I(rr,ccc)> where nn is the input number and rr,ccc are the row and column positions. For example, if the script had <I01>"Dec", <I06>"25", and <I11>"2006", enter 1 in the Month row, 6 in the Day row, and/or 11 in the Year row. In the Input Number column, you must enter a value in each row for which you want to replace data. This field is required. 5. Specify the Position in Input Field. This is the relative position of the data within the input field. For example, if the script had <I01>"ACME 25DEC2006" enter 8 in the Month row, 6 in the Day row, and/or 11 in the Year row. You do not need to enter a value in this column if the corresponding month, day, or year data begins in the first position of the input field. This field is optional. 6. In the For a Length Of field, specify the length of the data to be replaced. For example, if the script had <I01>"ACME 25DEC2006" enter 3 in the Month row, 2 in 13-6 Hiperstation for VTAM User Guide the Day row, and/or 4 in the Year row. This field is mandatory only when the Position field is greater than 1. 7. In the Change To field, specify the value that will replace the existing data. Entries are checked for valid day, month, or year values. In the Change To column, you must enter a value in each row for which you want to replace data. 8. Specify the Move to Position. This is the relative position of the replacement data within the input field. Normally, this column is used only if the length of the Month, Day, or Year data is being changed in the For a Length Of column. 9. Issue one of the primary commands to continue: – GO begins the date change script processor. When you press Enter, the Script Processor Execution screen appears (Figure 13-6 on page 13-6). This screen allows you to enter the datasets used in script processing as described in “Running the Date Change Script Processor” on page 13-6. – RESET changes all values on this screen to blanks. – END exits the date change script processor and returns to the Hiperstation Script Processor * Date Change Options screen. Running the Date Change Script Processor 1. After entering date change requirements on one of the Hiperstation Script Processor * Date Change screens, type GO on the command line and press Enter to continue. The Hiperstation Script Processor * Execution screen appears (Figure 13-6). Figure 13-6. Enter the Name of the Script Partitioned Dataset ------------------ Hiperstation Script Processor * Execution ---------- -------- Command ===> blank Continue Type the names of the script data sets below, then press Enter key Do not specify the script/member name Input Script Project . Group . . Type . . Data Set: . . CWX0001 . . HIPER . . SCRIPTS Other Partitioned Data Set: Data Set Name . . . Output Script Data Set: Project . . . CWX0001 Group . . . . HIPER Type . . . . SCRIPTS Other Partitioned Data Set: Data Set Name . . . 2. Enter the name of the dataset (not including the member) that contains the recorded scripts to be processed and the name of the dataset (not including the member) to use for storing the processed scripts and press Enter. The Hiperstation Script Processor * Execution screen appears (Figure 13-7). Date Change and Date Find Script Processors 13-7 Figure 13-7. List Script Names for Processing ----------------- Hiperstation Script Processor * Execution ----------------- Option ===> F B Initiate Processing In Foreground. Initiate Processing In Background. Input Script Data Set: ’CWX0001.HIPER.SCRIPTS’ Output Script Data Set: ’CWX0001.HIPER.SCRIPTS’ INPUT SCRIPT NAME TEST1 TEST2 OUTPUT SCRIPT NAME TESTOUT1 TESTOUT2 Replace Existing Members . . . Y (Y/N) The input and output script datasets are prefilled from the previous screen and cannot be changed. 3. Type the names of the recorded input scripts to be processed and the names of the corresponding new output scripts to be created by the script processor. – The input scripts are members of the dataset listed in the Input Script Data Set field. Enter an asterisk (*) in this field to process all members in the dataset. – The output scripts are members of the dataset listed in the Output Script Data Set field. There must be an output script name for every input script name. The same script can be both the input script and the output script. In this case, the script processor will overwrite the original script. If you enter an asterisk (*) for the input script name, you must also use an asterisk for the output script name. 4. Specify whether to Replace Existing Members. If an output script already exists, this field determines whether to overwrite it. Enter Y to overwrite existing scripts. 5. Type F or B on the Option line. F initiates the script processor in TSO foreground. B allows the script processor to run in the background (batch). Background mode frees your terminal while the script processor runs. Date Find Script Processor The Date Find Script Processor is designed to assist testing applications where dates are important. The date find script processor searches through the output screens of recorded Hiperstation scripts and finds date fields. The date fields that it finds are listed in a report. Figure 13-8 shows a sample Date Find Location Report. 13-8 Hiperstation for VTAM User Guide Figure 13-8. Sample Date Find Script Processor Report ********************************************************************** ****** HIPERSTATION SCRIPT PROCESSOR DATE FIELD LOCATION REPORT ****** ********************************************************************** SCRIPT NAME: ’CWX0001.HIPERPRO.SCRIPTS(DATECH)’ DATE FORMAT: 1 DATE SEPARATOR: / SCRIPT MESSAGE NUMBER DATE LOCATION (ROW,COL) DATE FOUND ---------------------------------------------------------------------- 1. <OUTPUT>0000001 (05,30) 08/28/07 2. ** SAME ** (13,39) 8/22/07 3. ** SAME ** (15,60) 5/13/07 4. <OUTPUT>0000005 (01,01) 09/25/07 5. ** SAME ** (23,12) 08/28/07 6. <OUTPUT>0000007 (01,01) 01/01/07 7. ** SAME ** (23,12) 08/28/07 ********************************************************************** ****** HIPERSTATION SCRIPT PROCESSOR DATE FIELD LOCATION REPORT ****** ********************************************************************** SCRIPT NAME: ’CWX0001.HIPERPRO.SCRIPTS(DATECH2)’ DATE FORMAT: 1 DATE SEPARATOR: / SCRIPT MESSAGE NUMBER DATE LOCATION (ROW,COL) DATE FOUND ---------------------------------------------------------------------- 1. <OUTPUT>0000001 (05,30) 08/28/07 2. ** SAME ** (13,39) 8/22/07 Using the Date Find Script Processor 1. Select option 3 Date Find on the Script Processor menu. The Hiperstation Script Processor *Date Find screen appears (Figure 13-9). Figure 13-9. Hiperstation Script Processor * Date Find Screen ----------------- Hiperstation Script Processor * Date Find ----------------- Command ===> Go Begin Date Find Execution END Return to Hiperstation Script Processor Primary Option Panel Enter date find information: Date Separator Character. . / (Enter N for no date separator) Input Date Format . . . . . 1 (1-14) 1. MMDDYY 5. MMDDYYYY 9. DDMONYY 13. YYYYMON 2. DDMMYY 6. DDMMYYYY 10. DDMONYYYY 14. MMYYYY 3. YYMMDD 7. YYYYMMDD 11. YYMON 4. YYDDD 8. YYYYDDD 12. MMYY Specify the date find report file name: Project . . . CWX0001 Group . . . . HIPERPRO Type . . . . SAMPLIB Member . . . DFREPORT Other Data Set Name: Data Set Name . . . 2. Specify the Date Separator Character. This character divides the month, day, and year of the date. For example, for a date of 05/01/07, the date separator character is a slash (/). The date separator is required when the date format is 1 through 8. If the date format is 9 through 14, the script processor automatically determines the date separator character (if there one). Enter N to indicate that no date separator character is used in the date fields. 3. Select a Date Format to describe the arrangement of the day, month, and year date parts. Valid date formats are 1 through 14 (see Figure 13-9). 4. Specify the date find report file name. This is the name of the dataset used to store the Date Find Location Report. If the file does not exist, you are prompted to provide one with a dataset allocation screen. The dataset must be a dataset member or a Date Change and Date Find Script Processors 13-9 sequential file. The recommended record format is fixed block with 80-byte record length. 5. Issue one of the primary commands to continue: – GO begins running the scripts through the date find script processor. – END exits the date find script processor and returns to the Script Processors menu. Running the Date Find Script Processor 1. After entering the date separator, the date format, and the report file name on the Hiperstation Script Processor * Date Find screen, type GO on the command line and press Enter to continue. The Hiperstation Script Processor * Execution screen appears (Figure 13-10). Figure 13-10. Enter the Name of the Script Partitioned Dataset File ----------------- Hiperstation Script Processor * Execution ----------------- Command ===> blank Continue Type the names of the script data set below, then press Enter key Do not specify the script/member name Input Script Project . Group . . Type . . Data Set: . . CWX0001 . . HIPER . . SCRIPTS Other Partitioned Data Set: Data Set Name . . . 2. Enter the name of the dataset (not including the member/script names) containing the recorded scripts to be processed and press Enter. The Hiperstation Script Processor * Execution screen appears (Figure 13-11). Figure 13-11. List Script Names For Processing ----------------- Hiperstation Script Processor * Execution ----------------- Option ===> F B Initiate Processing In Foreground. Initiate Processing In Background. Input Script Data Set: ’CWX0001.HIPERPRO.SCRIPTS’ Report File Data Set : ’CWX0001.HIPERPRO.SAMPLIB(DFREPORT)’ INPUT SCRIPT NAME TEST1 TEST2 TEST3 The Input Script Data Set and Report File Data Set fields are prefilled and cannot be changed on this screen. The Report File Dataset is the file where the Date Find Location Report will be stored. 3. Enter the name of the recorded scripts to be processed in the Input Script Name field. The scripts are members of the dataset listed in the Input Script Data Set field. Enter an asterisk (*) as the script name to process all members in the dataset. 4. To begin processing, type F or B on the Option line and press Enter. F Initiates the script processor in TSO foreground. B allows the script processor to run in the background (batch). Background processing frees your terminal while the script processor runs. 13-10 Hiperstation for VTAM User Guide 14-1 Chapter 14. Input Field Reformat Script Processor Chap 14 The Input Field Reformat Script Processor changes input field formats in Hiperstation for VTAM scripts from the relative sequence number format, <Inn>, to the row and column location format, <I(rr,cc)>. Example reformat: BEFORE <INPUT>0000004 <THINK>00.07.922 AT 00:00:12.557 <KEY>ENTER <CURSOR>00,04 <I01>"cemt" </INPUT> AFTER <INPUT>0000004 <THINK>00.07.922 AT 00:00:12.557 <KEY>ENTER <CURSOR>00,04 <I(1,1)>"cemt" </INPUT> Each format type has advantages and disadvantages. For example, the <Inn> format makes it easy for scripts to play back correctly, even if the application input fields have a different location on the screen, as long as the fields remain in the original sequence. The <I(rr,cc)> format makes it easy for scripts to play back correctly, even if new input fields are added to the application screens. 1. Select option 4 Input Field Formats from the Script Processor menu (Figure 14-1). Figure 14-1. Script Processors Menu Hiperstation --------------- Script Processors -------------------------------- Option ===> 1 REXX Processor Create "Smart" Script(s) 2 Date Change Change Year Formats for Date Testing 3 Date Find Report Location(s) of Date Field(s) 4 Input Field Formats Change Input Fields to Row/Column Format 5 MultiChange Processor Update Scripts to Reflect Application Changes 6 Security Script Processor Locate and Modify Passwords 7 Euro Euro Script Utility 8 GST GST Testing Utility 9 Message Filtering Message Filtering Utility The Hiperstation Script Processor * Change Input Field Formats screen appears (Figure 14-2). 14-2 Hiperstation for VTAM User Guide Figure 14-2. Hiperstation Script Processor * Change Input Field Formats Screen ---------- Hiperstation Script Processor * Change Input Field Formats --------- Command ===> Go Begin Input Field Reformat Processing END Return to Hiperstation Script Processor Primary Option Panel Type the names of the script data sets below, then press Enter key Do not specify the script/member name Input Script Data Set: Project . . . CWX0001 Group . . . . HIPER Type . . . . SCRIPTS Other Partitioned Data Set: Data Set Name . . . Output Script Data Set: Project . . . CWX0001 Group . . . . HIPER Type . . . . SCRIPTS Other Partitioned Data Set: Data Set Name . . . 2. Type the name of the dataset containing the scripts to be processed and the dataset name to use for storing processed scripts. Enter only file names, not member/script names. 3. Enter one of the primary commands: – GO processes the change request and displays the Hiperstation Script Processor * Execution Screen (Figure 14-3). – END exits the input field reformat script processor and returns to the Script Processors screen. Figure 14-3. Hiperstation Script Processor * Execution Screen ----------------- Hiperstation Script Processor * Execution ----------------- Option ===> F B Initiate Processing In Foreground. Initiate Processing In Background. Input Script Data Set: ’CWX0001.HIPER.SCRIPTS’ Output Script Data Set: ’CWX0001.HIPER.SCRIPTS’ INPUT SCRIPT NAME TEST1 TEST2 OUTPUT SCRIPT NAME TESTOUT1 TESTOUT2 Replace Existing Members . . . Y (Y/N) The input and output script dataset names are prefilled from the previous screen and cannot be changed on this screen. 4. Enter the names of the recorded Hiperstation scripts to be processed in the Input Script Name fields. The scripts are members of the dataset listed in the Input Script Dataset field. Enter an asterisk (*) as the script name to process all members in the dataset. 5. Enter the names of the new scripts to be created by the script processor in the Output Script Name fields. There must be an output script name for every input script name. If you use the same name for the input script and the output script, the script processor will overwrite the original script. If you enter an asterisk as the input script name, you must also use an asterisk for the output script name. Input Field Reformat Script Processor 14-3 6. Specify whether to Replace Existing Members. Enter Y to overwrite existing scripts if an output script already exists. 7. Type F or B on the Option line and press Enter to begin processing. F initiates the script processor in TSO foreground. B runs the script processor in background (batch) mode to free your terminal while the script processor runs. 14-4 Hiperstation for VTAM User Guide 15-1 Chapter 15. MultiChange Script Processor Chap 15 The Multichange Script Processor helps prepare scripts for playback. It allows you to change scripts to reflect application changes without re-creating those scripts. This script processor creates and maintains these modification requests and runs them in background or foreground mode. Note: Hiperstation for VTAM determines century dates based on the LOW_YEAR and HIGH_YEAR parameters set by the installer. For more information, refer to the Hiperstation Installation Guide. 1. To use the Multichange Script Processor, select option 5 MultiChange Processor on the Script Processors menu (Figure 15-1) and press Enter. Figure 15-1. Script Processors Menu Hiperstation --------------- Script Processors -------------------------------- Option ===> 1 REXX Processor Create "Smart" Script(s) 2 Date Change Change Year Formats for Date Testing 3 Date Find Report Location(s) of Date Field(s) 4 Input Field Formats Change Input Fields to Row/Column Format 5 MultiChange Processor Update Scripts to Reflect Application Changes 6 Security Script Processor Locate and Modify Passwords 7 Euro Euro Script Utility 8 GST GST Testing Utility 9 Message Filtering Message Filtering Utility The Multichange Script Facility Primary Options screen appears (Figure 15-2). Figure 15-2. MultiChange Script Facility Primary Options Screen Hiperstation --- Multichange Script Facility Primary Options ----- Option ===> 1 Maintain Input Fields Values 3 Add Script 2 Modify Output Screen 4 Erase Interaction Go Process Requests Specify the name of the control file below, then press Enter key Project . . .TSO0001 Group . . . .SP Type . . . .CNTL Member. . . .REENT Other Data Set Name: Data Set Name . . . 2. Enter the name of the script processor control file. The MultiChange Script Processor stores user-entered information in the control file. For example, in order for the MultiChange Script Processor to change input field values recorded in a script, an appropriate Maintain Input Field Value entry must be created and will be saved in the control file. 15-2 Hiperstation for VTAM User Guide The control file can be a PDS member or a sequential file. Although there are no specific requirements for the record length and record format of the control file, a fixed block record format and a record length of 80 bytes is recommended. 3. Select one of the following options: – 1. Maintain Input Fields Values: Use this function to add, replace, delete and move input field values recorded in the script. See “Maintain Input Field Values” on page 15-2. – 2. Modify Output Screen: Use this function to add new input/output fields, delete existing input/output fields, and change screen constants. See “Modify Output Screen” on page 15-4. – 3. Add Script: Use this function to insert a script at existing locations within another script. See “Add Script” on page 15-9. – 4. Erase Interaction: An Interaction is an output from the domain destination (business system or application) and the subsequent input from the user. Use this function to remove specific interactions from a script (for example, a signon screen and the subsequent user ID and password). See “Erase Interaction” on page 15-10. – Type GO on the Option line and press Enter to begin execution. See “Executing MultiChange Script Processor Requests” on page 15-11. Maintain Input Field Values 1. Select option 1 Maintain Input Fields Values on the MultiChange Script Facility Primary Options screen (Figure 15-2 on page 15-1). The Maintain Input Field Value Item List screen appears (Figure 15-3). Figure 15-3. Maintain Input Field Values Screen Hiperstation ------ Maintain Input Field Value Item List Option ===> -------------------- Scroll ===> PAGE ADD Create New Items Line Cmds: U Update D Delete B Browse SCREENID LOCATION OPERATION INPUT-VALUE TO-VALUE ------------------------------------------------------------------------------- Payroll (01,004) A 10 ******************************* BOTTOM OF DATA ********************************* If the control file already contains Maintain Input Field Value items, they appear on the screen. If no entries exist, the message ** none ** appears. 2. Enter the ADD primary command to create a new item or use one of the line commands to (U)pdate, (D)elete, or (B)rowse an item. The ADD command displays the Maintain Input Field Request Types screen (Figure 15-4). MultiChange Script Processor 15-3 Figure 15-4. Maintain Input Field Request Types Screen Hiperstation -------- Maintain Input Field Request Types ---------------------- Command===> Select one of the options below and press ENTER: 1 Add Input field value 2 Replace Input field value 3 Delete Input field value 4 Move Input field value 3. Select one of the following options based on the type of operation to be performed on the script: 1. Add Input Field Value: Requests the insertion of an input field within an input group. 2. Replace Input Field Value: Requests the change to values of existing input within a script. 3. Delete Input Field Value: Requests the removal of an input from a script. 4. Move Input Field Value: Requests the repositioning of input fields within an input group. The field-level operations are used to operate on specific inputs within a script. The fields on all four screens are the same. 4. When you request a field-level operation (add, replace, delete, or move, the corresponding Input Field Value Item screen appears (Figure 15-5). Figure 15-5. Add Input Field Value Item Screen Hiperstation ----- ADD Command ===> ------------------- END End with save Cancel End without save Enter Add Entry Enter the Screen ID whose input will be modified: Screen ID . . . . . Row,Column , Enter the input value and location: Input Value . . . . Input Number Row,Column , Enter the modified value: Change To . . . . . To Input Number Row,Column , All input designations (row,column or number) must be consistent for all requests (i.e. if one request specifies input number all must). Note: Add Input Field Value Item All input designations (row, column, or number) must be consistent for all requests. For example, if in one request you enter row,column numbers you must enter row,column locations for all requests. 5. Enter the Screen ID of the output screen that contains the field to be manipulated. The value is case sensitive. 6. Enter the Row,Column location of the screen ID on the output screen. Be sure that the row and column values specify the exact location on the application screen, not the script location. 7. Enter the Input Value. For an add field request, this is the data contained in or to be added to the input group, which is required. For other requests, this optional entry provides a validating value that the existing value must match before the operation is performed. 15-4 Hiperstation for VTAM User Guide 8. Enter either the Input Number or Row,Column. – Input Number is the location of the input field to be manipulated. – Row,Column is the physical screen location of the input field to be manipulated. Note: The Input Number and Row,Column fields are mutually exclusive, and one or the other is required. The location must be consistent for all requests in the control file, that is, one or the other field’s value must be used for all requests. 9. Enter the Change To value to which the input will be changed. For a Replace Field request, this is the new data for the input and is a required field. For any other operation, any value in this field is invalid. 10. Enter the To Input Number or Row,Column when using the Change To field. Input Number is the relative location of the field in the input group where the new value input will be placed. Row,Column is the actual location where the change value is placed. Note: The To Input Number and Row,Column fields are mutually exclusive, and one or the other is required. The location must be consistent for all requests in the control file, that is, one or the other field’s value must be used for all requests. Modify Output Screen 1. Select option 2 Modify Output Screen on the MultiChange Script Facility Primary Options screen (Figure 15-2 on page 15-1) to display the Modify Output Screen Item List screen (Figure 15-6). Figure 15-6. Modify Output Screen Item List Hiperstation -------- Modify Output Screen Item List ------------------- Option ===> Scroll ===>PAGE ADD Create New Items Line Cmds: U Update D Delete B Browse ScreenID Location Operation Description ----------------------------------------------------------------------- Payroll (01,004) AF Add new input field ******************************* BOTTOM OF DATA ************************ If the control file already contains Modify Output Screen entries, they are listed on the screen. If no entries exist, ** none ** appears. 2. Enter the ADD primary command to create a new item or use one of the line commands to (U)pdate, (D)elete, or (B)rowse an item. The ADD command displays the Modify Output Screen Item Types screen (Figure 15-7). MultiChange Script Processor 15-5 Figure 15-7. Modify Output Screen Item Types Screen Hiperstation--------- Modify Output Screen Item Types ----------- Command===> Select of the the following options and press Enter: 1 Add field to screen 2 Delete field from screen 3 Modify screen constant 3. Select one of the following options: – 1. Add field to screen: This option allows you to put new input or output fields to any specified <OUTPUT> section (output screen) within a recorded script. See “Add Field To Screen” on page 15-5 for details. – 2. Delete field from screen: This option allows you to remove existing input or output fields from any specified <OUTPUT> section (output screen) within a recorded script. See “Delete Field From Screen” on page 15-7 for details. – 3. Modify screen constant: This option allows you to modify screen constants appearing anywhere in a specified <OUTPUT> section (output screen) within a recorded script. See “Modify Screen Constant” on page 15-8 for details. Add Field To Screen 1. Select option 1 Add field to screen on the Modify Output Screen Item Types screen (Figure 15-7) and press Enter. The Add Field To Screen Item screen appears (Figure 158). Figure 15-8. Add Field to Screen Item Screen Hiperstation --------------ADD Add Field To Screen Item -------------------- Command ===> END End with save CANcel End without save Enter Add Entry Description. . .Add new input field Identify the screen to add field: Screen ID. . . Payroll ID location. . 01,004 (Row,Col) Describe the field to be added: Field type . . I I-Input, O-Output Location . . . 06,019 (Row,Col) Length . . . . 05 Maximum 60 Characters Field value. . Describe field attributes (Atr byte occupies 1 position just before the field): Intensity. . . H N-Normal, H-High, D-Dark End of Fld Marker?. Y Y/N Numeric? . . . Y Y/N/blank Auto skip?. . . . . N Y/N/blank Set MDT? . . . Y Y/N Allow Fld overlap?. N Y/N 2. Enter an optional Description of the add field entry. 3. Enter a Screen ID. This is the text that identifies the screen in the recorded script in which the new field will be added. Wildcards are not allowed. They are treated as the actual screen ID. 4. Enter an ID Location (row and column location of the Screen ID text). Enter ** in the row and *** in the column field to specify that the screen ID text can appear anywhere on the screen. 5. Enter the Field Type for the field being added. Enter I to add an input field and O to add an output field. 15-6 Hiperstation for VTAM User Guide 6. Specify the Location (row and column location on the screen where the new field will be added). Rows must be numbers between 1 and 43 and columns must be numbers between 1 and 132. Do not include the attribute byte when counting the field location. The attribute byte occupies an additional column position just before the field on the screen. For example, if you enter the field location as 10,20 (10th row and 20th column), then the attribute byte is placed at column 19, followed by the actual field at column 20. 7. Specify the Length of the new field being added. The length must be numeric and cannot exceed 60 characters. Do not count the attribute byte as part of the length. If you enter the field length as 10, the new field will occupy 11 positions on the screen (one extra position for attribute byte). 8. Enter the Field Value. This is the initial value to be placed as field filler when adding output fields. For input fields, binary zeros are always used. Hiperstation appends blanks if the value is shorter than the field length. 9. Specify the Intensity of the field being added. Enter N for normal intensity, H for high intensity, and D for non-display. 10. In the Numeric field, enter Y to enable the keyword numeric feature. Otherwise, enter N. When set to Y, any attempt to enter non-numeric data in this field results in keyboard lock on supported keyboards. Applicable only for input fields — cannot be used for output fields. 11. Enter Y to set MDT on or N to set MDT off. 12. Specify an End of Fld Marker. The End-of-field marker is a one-byte attribute byte that marks the end of the field being added. It is placed just after the field and occupies an additional position on the screen. – Y specifies that an end-of-field marker is required. – N specifies that an end-of-field marker is not required. In this case, the new field attribute continues (even beyond the field length) until another attribute character is encountered. 13. Specify whether you want to use Autoskip. Enter Y to enable. This causes the cursor to jump to the next input field on the screen automatically when data is entered in the last field position. Autoskip is applicable only for input fields; it cannot be used for output fields. Note: To use Autoskip, the End of Fld Marker field must be Y. 14. Specify whether to Allow Fld Overlap. This specifies whether to process or reject the request during execution if the new field overlays any existing attribute bytes/input fields on the screen. – Y adds the field to the screen no matter what the screen area contains. In this case, any attribute bytes lost (buried) during the process are ignored. No attempt is made to adjust the extended attribute buckets (when processing scripts containing extended attribute bytes). – N adds the field only if the following conditions are satisfied: • The screen area where the new field will be placed is free of attribute bytes. • The new field does not overlay any other existing input field on the same screen row. Note: Any script records that exist between the affected row and the next will not be retained in the new script. This includes <MASK>, comments, etc. 15. Press Enter to add the entry without exiting the Add Field to Screen Item field. After all entries have been added, press END to save new entries into the control file or use CANCEL to exit without saving the entries. MultiChange Script Processor 15-7 Delete Field From Screen 1. Select option 2 Delete field from screen on the Modify Output Screen Item Types screen (Figure 15-7 on page 15-5) and press Enter. The ADD Delete Field From Screen Item screen (Figure 15-9) appears. Figure 15-9. Delete Field From Screen Item Hiperstation ---------- ADD Delete Field From Screen Item ----------------- Command ===> END End with save CANcel End without save Enter Add Item Enter optional description: Description . . . . Add new input field Identify the screen to delete field: Screen ID. . . . . . Payroll ID location. . . . . 01,004 (Row,Col) Describe the field to be deleted: Location . . . . . . 06,019 (Row,Col) Length . . . . . . . 05 Field filler data. . Field Stopper? . . . Y Y-Yes, N-No Overlay ATR bytes? . N Y-Yes, N-No 2. Enter an optional Description of the delete field entry. 3. Enter a Screen ID. This is the text that identifies the screen in the recorded script from which the field will be modified. This field is case sensitive — the uppercase and lowercase characters must match the screen ID in the script exactly. Wildcards are not allowed. The wildcard character is treated as the actual screen ID. 4. Enter an ID Location (row and column location of the Screen ID text). Enter ** in the row field and *** in the column field to specify that the screen ID text can appear anywhere on the screen. 5. Specify the Location (row and column location of the field to be deleted from the screen). Rows must be numbers between 1 and 43 and columns must be numbers between 1 and 132. Do not include the attribute byte when counting the field location. If your field attribute starts at column 19, and is followed by the actual field, you must enter the column number as 20. Note: There must be an attribute byte on the screen just before the field location or Hiperstation rejects the request. 6. Specify the Length of the field being deleted. Field length must be numeric and cannot exceed 60 characters. Do not count the attribute byte as part of the length. 7. Enter the Field Filler Data. This is the data value to be used to fill the field area on the screen after the field is removed. The default value is binary zeros. If the value is shorter than the field length, Hiperstation appends blanks. 8. Specify whether to delete any Field Stopper? field (if any) found at the end of the field being deleted. Enter Y or N. 9. Specify whether to overlay attribute types (Overlay ATR bytes?) regardless of the field contents. Enter Y to continue delete operation or N to reject the delete request if attribute bytes are found within the screen area specified. Note: Any script records that exist between the affected row and the next will not be retained in the new script. This includes <MASK>, comments, etc. 15-8 Hiperstation for VTAM User Guide 10. Press Enter to add the entry without exiting the Delete Field from Screen Item screen. After all entries have been added, press END to save new entries into the control file or use CANCEL to exit without saving the entries. Modify Screen Constant 1. Select option 3 Modify screen constant on the Modify Output Screen Item Types screen (Figure 15-7 on page 15-5) and press Enter to display the ADD Modify Screen Constant Item screen (Figure 15-10). Figure 15-10. Modify Screen Constant Screen Hiperstation ---------- ADD Modify Screen Constant Item --------- Command ===> END End with save CANcel End without Save Enter Add Item Enter optional description: Description. . . . . . Modify Screen Constant Identify the screen where the constant is located: Screen ID. . . . . . . Payroll ID Location. . . . . . 01,004 (Row,Col) Describe Constant to be modified: Constant Location. . . 06,019 (Row,Col) Constant Length. . . . 11 Change FROM Value. . . Employee ID Change TO Value. . . . Employee NO 2. Enter an optional Description of the modify field entry. 3. Enter a Screen ID. This is the text that identifies the screen in the recorded script from which the field will be modified. Wildcards are not allowed. The wildcard character is treated as the actual screen ID. 4. Enter an ID Location (row and column location of the Screen ID text). Enter ** in the row field and *** in the column field to specify that the screen ID text can appear anywhere on the screen. 5. Specify the Constant Location (row and column location on the screen area where the constant starts). Row numbers must be between 1 and 43 and column numbers must be between 1 and 132. 6. Enter a Constant Length (the length of the constant being modified). The constant length must be numeric and cannot exceed 60 characters. 7. Specify the Change From Value. If you leave this field blank, any data found in that location is replaced with the new value. The length of this field cannot exceed the Constant Length value. If the length of this field is shorter than the Constant Length value, Hiperstation appends blanks. 8. Specify the Change To Value (the new value to replace the screen area). The length of this field cannot exceed the Constant Length value. If the length of this field is shorter than the Constant Length value, Hiperstation appends blanks. Note: The screen area being modified must be free of attribute bytes or Hiperstation rejects the request. 9. Press Enter to add the entry without exiting the Modify Screen Constant Item screen. After all entries have been added, press END to save new entries into the control file or use CANCEL to exit without saving the entries. MultiChange Script Processor 15-9 Add Script 1. Select option 3 Add Script on the MultiChange Script Facility Primary Options screen (Figure 15-2 on page 15-1) to display the Add Script Item List screen (Figure 15-11). Figure 15-11. Add Script Item List Screen Hiperstation ------ ------- Add Script Item List ------- --------------------- Option ===> Scroll ===> PAGE ADD Create New Items Line Cmds: U Update D Delete B Browse ScreenID Location Operation Script Name ------------------------------------------------------------------------ ** NONE ** ******************************* BOTTOM OF DATA ************************* The Add Script request inserts a script at existing locations within another script. 2. Enter the ADD primary command to create a new item or use one of the line commands to (U)pdate, (D)elete, or (B)rowse an item. The ADD command displays the ADD - Add Script Item screen (Figure 15-12). Figure 15-12. Add Script Item Screen Hiperstation -------------- ADD Add Script Item ------------------------- Command ===> END End with save CANcel End without save Enter Add Item Enter the Screen ID and location (the script will be inserted after this screen): Screen ID . . . . . Row,Column 00 , 000 Enter the script to be added: Add Script. . . . . 3. Enter a Screen ID. This field specifies a screen after which the script will be inserted. This field is case sensitive — the uppercase and lowercase characters must match the screen ID in the script exactly. Wildcards are not allowed. The wildcard character is treated as the actual screen ID. 4. Enter the location (Row,Column) of the screen ID on the output screen. The Screen ID and Row,Column entries identify the screen where the input values will be manipulated. For example, you might wish to add a script following the Order Entry screen. Screen ID and Row,Column would be used to identify the Order Entry screen. 5. In the Add Script field, specify the dataset and script name to be inserted. 6. Press Enter to add the entry without exiting the Add Script Item screen. After all entries have been added, use END to exit the Add Script Item screen and save the new entries in the control file or use CANCEL to exit without saving the entries. 15-10 Hiperstation for VTAM User Guide Erase Interaction An interaction is an output from the TPF and the subsequent input from the user. Use the erase interaction request to remove specific interactions from a script (for example, a signon screen and the subsequent user ID and password). 1. Select option 4 Erase Interaction on the MultiChange Script Facility Primary Options screen (Figure 15-2 on page 15-1) to display the Erase Interaction screen (Figure 15-13). Figure 15-13. Erase Interaction Screen Hiperstation ------ --------- Erase Interaction -------Option ===> -------------------- Scroll ===> PAGE ADD Create New Items Line Cmds: U Update D Delete B Browse SCREENID LOCATION OPERATION DATAID DATAID-LOC ------------------------------------------------------------------------------- ** NONE ** ******************************* BOTTOM OF DATA ******************************** 2. Enter the ADD primary command to create a new item or use one of the line commands to (U)pdate, (D)elete, or (B)rowse an item. The ADD command displays the Erase Interaction Request: ADD/Update screen (Figure 15-14). Figure 15-14. Erase Interaction Request: ADD/UPDATE Screen Hiperstation ------- Erase Interaction Request: ADD/UPDATE -------------------- Command ===> END End with save CANcel End Without save Enter Add Entry Enter the Screen ID and location (optional): Screen ID . . . . . TEST Row,Column. . . 01 , 001 Enter the Data ID and location (required): Data ID. . . . . . Row,Column. . . , Insert a PAUSE statement? Erase OUTPUT only? Pause?. . . . . . . N Output Only?. . N 3. Enter a Screen ID for the screen for which you want to create an erase interaction request. This field is case sensitive — the uppercase and lowercase characters must match the screen ID in the script exactly. Wildcards are not allowed. The wildcard character is treated as the actual screen ID. 4. Enter the position (Row,Column) of the Screen ID on the output screen. Note: The Screen ID and Row,Column are optional for this request. If entered, only those interactions beginning with an output group containing the specified screen ID in that row and column are considered for deletion. 5. Enter the Data ID (data that further identifies the output screen). 6. Enter the position (Row,Column) of the data on the output screen. Note: The Data ID and Row,Column fields are required. Output screens and their subsequent inputs are deleted when they contain the specified data ID in that row and column. MultiChange Script Processor 15-11 7. Specify whether to insert a Pause statement. Enter Y to replace the interaction being removed with a <PAUSE> statement. 8. Specify whether to erase Output Only. Enter Y only if you want to remove the output screens. Executing MultiChange Script Processor Requests 1. Enter GO from the MultiChange Script Facility Primary Options screen (Figure 15-2 on page 15-1). The initial Hiperstation Script Processor * MultiChange Execution screen appears (Figure 15-15). Figure 15-15. Initial Script Processor MultiChange Execution Screen ------------ Hiperstation Script Processor * MultiChange Execution ---------- Command ===> Enter to continue Specify the dataset which contains the scripts: Project . . . TSO0001 Group . . . . TEST Type . . . . SCRIPTS Other Data Set Name: Data Set Name . . . Specify the dataset to which the modified scripts will be written: Project . . . TSO0001 Group . . . . RESULT Type . . . . SCRIPTS Other Data Set Name: Data Set Name . . . Enter only the file names on this screen, not the script/member names. The input and output datasets can be the same file or different files. 2. Enter the name of the dataset containing the existing scripts (Project, Group, Type). Use Other Dataset Name if your dataset name does not follow standard ISPF naming conventions. This input dataset must exist. 3. Enter the name of the dataset to which the modified scripts will be written (Project, Group, Type). Use Other Dataset Name if your dataset name does not follow standard ISPF naming conventions. If this output dataset does not exist, an allocation screen will appear when you press Enter to continue. 4. Press Enter. A second Multichange Execution screen appears (Figure 15-16). Figure 15-16. Hiperstation Script Processor * MultiChange Execution Screen ----------- Hiperstation Script Processor * MultiChange Execution ---- ------ Command===> F Initiate Processing In Foreground. B Initiate Processing In Background. Input Script Data Set: TSO0001.TEST.SCRIPTS Output Script Data Set: TSO0001.RESULT.SCRIPTS Input Script Name Output Script Name ORDERS1 Replace Existing Members . . . Y (Y/N) 15-12 Hiperstation for VTAM User Guide 5. Enter the Input Script Name (the scripts from the input dataset to be processed). Enter an asterisk (*) to process all members in the dataset. 6. Enter the Output Script Name (the names of the modified scripts stored in the output dataset). If no name is entered, the modified script is stored under the same name as the input script. 7. Specify whether you want to Replace Existing Members. Enter Y to overwrite an existing script. 8. Use one of the primary commands (F or B) to select the type of processing. Select F to process the script or scripts in TSO foreground. Select B to process the script or scripts in TSO background (batch). Background Processing 1. When you select B (Background Processing), the Script Processor MultiChange Background Execution screen (Figure 15-17) appears. This screen contains job statement information, region size, message class, and script processor library dataset prior to generating the JCL. You can confirm or modify this information, then enter the GO command to generate the JCL for this background process. Figure 15-17. MultiChange Script Processor Screen Script Processor ------------- ------- Go To generate and display the JCL End To terminate background processing Job Statement Information: //XXXXXXXA JOB ('ACCOUNT',5M-0000),'HIPERSTN', // CLASS=L,MSGCLASS=R,NOTIFY=&SYSUID /* JOBPARM ROOM='DTW 5TH FLOOR MONROE' //PRINTER OUTPUT ROOM='DTW 5TH FLOOR MONROE' Region Size. . . . . . . . . 4096K Sysout Class . . . . . . . . * Script Processor Library . . 'VP.TECH.QQF800.SQQFEXEC' Hiperstation ------------- MultiChange Command ===> 2. Enter the Job Statement Information JCL for the job run. 3. Enter the Region Size for the job. 4. Enter the Sysout Class for background processing messages. 5. Enter the Script Processor Library that contains your multichange script processor programs. 16-1 Chapter 16. Security Script Processor Chap 16 As scripts age, the passwords they contain can become invalid when users change their passwords. If a script contains obsolete passwords, you cannot play them back without user intervention, and you cannot play them back in unattended mode. To correct this, use the Security Script Processor to search for and update obsolete passwords. 1. Select option 6 Security Script Processor on the Script Processors menu (Figure 161). Figure 16-1. Script Processors Menu Hiperstation --------------- Script Processors -------------------------------- Option ===> 1 REXX Processor Create "Smart" Script(s) 2 Date Change Change Year Formats for Date Testing 3 Date Find Report Location(s) of Date Field(s) 4 Input Field Formats Change Input Fields to Row/Column Format 5 MultiChange Processor Update Scripts to Reflect Application Changes 6 Security Script Processor Locate and Modify Passwords 7 Euro Euro Script Utility 8 GST GST Testing Utility 9 Message Filtering Message Filtering Utility The Security Script Processor screen appears (Figure 16-2). Figure 16-2. Security Script Processor Screen Hiperstation - - - - - - - Security Script Processor - - - - - - - - - - - Command ===> Enter to continue Specify the dataset which contains the scripts: Project . . . . . . USER2312 Group . . . . . . . TEST Type . . . . . . . SCRIPTS Other DSN. . . . . . Member. . . . . . . (Blank or ’*’ to process all members or pattern for member selection list) Specify the dataset to which the modified scripts will be written: Project . . . USER2312 Group . . . . RESULTS Type . . . . SCRIPTS Other DSN . . 2. Enter one or more of the following on this screen: – Names of the source scripts whose passwords have expired – Script or script name pattern (for example, MYSCR*) – Name of the dataset where Hiperstation stores the scripts 3. Press Enter. If all entries are valid, the Security Password Modification screen appears (Figure 16-3). 16-2 Hiperstation for VTAM User Guide Figure 16-3. Security Password Modification Screen ------------- Security Password Modification --- Row 1 to 7 of 813 F Process in Foreground ALL Select all the scripts B Process in Background END Return to the previous screen Script Datasets: Replace Existing Members. N (Y/N) Input Script Data Set. VP.AT.COMMON.PROCESS.SCRIPT Output Script Data Set VP.AT.COMMON.PROCESS.SCRIPT User ID/Password Information: User ID USER25 Old Password New Password In Script Out Script Changed ID CICS 06/11/10 11:47 USER25 CICSLOFF 07/03/21 15:34 USER15 CICSOFF1 06/08/29 10:16 USER24 CICSOLD 06/07/02 13:38 USER15 CICSX 06/12/21 08:11 USER25 CICS1 06/08/29 10:16 USER24 GETPSWD 07/05/10 08:27 USER25 ISPFLMSG 06/08/22 18:33 USER24 Hiperstation Command ===> The Input Script Dataset and Output Script Dataset are preset from the previous screen and cannot be changed on this screen. All of the scripts from the Input Script Dataset are listed in the In Script column. 4. Specify whether to Replace Existing Members. Enter Y to overwrite an existing script. 5. Enter the User ID. The User ID is initially set to the user ID from the current TSO session. 6. Enter the Password contained in the script and the New Password to replace the current password. These fields are required. 7. Select the scripts to process in the In Script column by typing an S or a slash (/) in the Action column. The following primary commands help you locate the desired scripts: – ALL selects all of the listed scripts. – DOWN displays the next page of scripts. – UP displays the previous page of scripts. You can select more than one script to process at one time. 8. In the Out Script column, specify the names of the modified scripts to store in the output dataset. If you do not enter a name, Hiperstation stores the modified script with the same name as the input script. 9. Issue one of the following primary commands on the Command line to continue: – Type F and press Enter for foreground script processing – Type B and press Enter for background script processing. If you issue B, the Security Script Processor background processing screen appears (Figure 16-4). – END cancels password modification and returns to the Security Script Processor screen. 10. Verify the password by retyping it and pressing Enter. After the password is successfully verified, processing begins. Security Script Processor 16-3 11. When processing is complete, Hiperstation places an asterisk (*) in the Action column next to the processed scripts. If Hiperstation did not find the old password in a selected script, the message **No match found** appears. If you chose to process in the background, Figure 16-4 appears. Figure 16-4. Security Script Processor Background Processing Hiperstation ------------------ Security Script Processor ------------------ Command ===> Go To generate and display the JCL End To terminate background processing Job Statement Information: //JOBJAH0G JOB (’OVPBAS7.0.0DEV’,84),’J.HARTMAN’,MSGCLASS=R, // REGION=2048K,CLASS=P,NOTIFY=USR2503 Region Size. . . . . . . . . 4096K Sysout Class . . . . . . . . * Script Processor Library . . ’VP.TECH.QQF800.SQQFEXEC’ 12. Modify the job statement information to your site standards. 13. Type GO on the command line and press Enter to generate and display the JCL. 14. Submit the JCL for processing. 16-4 Hiperstation for VTAM User Guide 17-1 Chapter 17. Hiperstation for VTAM EURO Script Utility Chap 17 The Euro script utility is an optional feature. If you are not licensed for the Euro script utility, you will not be able to access it. The EURO script utility is a feature that allows you to change Hiperstation for VTAM 3270 formatted scripts. It searches selected scripts for any user-defined currencies and, if desired, makes the conversion from one currency to another. This utility enables you to add, delete, alter, copy, and move fields within a screen. The fields can be part of an OUTPUT or INPUT message. The utility is able to add new screens as well. The EURO script utility presents a series of ISPF screens in a preset sequence. These screens are used to set up the following: • • • • Input Hiperstation script Output Hiperstation script Control cards Currency cards Note: If no Hiperstation output script is present, the EURO script utility runs in report mode. Report mode executes all of the control cards given, but does not save any changes to the scripts. After setting up these items, you can run the utility in TSO foreground or background (batch) mode. Using the EURO Script Utility 1. Select option 7 Euro from the Script Processors menu (Figure 17-1). Figure 17-1. Script Processors Screen Hiperstation --------------- Script Processors -------------------------------- Option ===> 1 REXX Processor Create "Smart" Script(s) 2 Date Change Change Year Formats for Date Testing 3 Date Find Report Location(s) of Date Field(s) 4 Input Field Formats Change Input Fields to Row/Column Format 5 MultiChange Processor Update Scripts to Reflect Application Changes 6 Security Script Processor Locate and Modify Passwords 7 Euro Euro Script Utility 8 GST GST Testing Utility 9 Message Filtering Message Filtering Utility The EURO Script Utility screen appears (Figure 17-2). 17-2 Hiperstation for VTAM User Guide Figure 17-2. EURO Script Utility Screen Hiperstation ------------ EURO Script Utility ------------------------- Command ===> Input Script: Data Set Name . . . ’USER25.TEST.SCRIPTS’ Member Name . . . (Blank or pattern for member selection list, "*" for all members) Output Script: Data Set Name . . . ’USER25.RESULT.SCRIPTS’ Control File: Data Set Name . . . ’USER25.EURO.CNTL’ Member Name . . . CVRTEUR Currency File: Data Set Name . . . Member Name . . . _ Replace Like Script Member(s) _ Update control file only _ Update currency file only 2. Enter the Input Script Data Set Name (the script dataset that the EURO script utility will use as input). This dataset must be a PDS or PDSE. Enter the Member Name of the desired input script. If you enter a mask or leave this field blank, a selection list appears. You can use this selection list to limit the scripts to be processed. 3. Enter Output Script Data Set Name (the script dataset where you want the EURO script utility to write scripts). This dataset must be a preallocated PDS or PDSE. If this field is left blank or errors occur, a message informs you that the utility will run in report mode and no changes are saved. 4. Enter the Control File Data Set Name. This optional dataset contains the EURO script utility control and currency cards. It can be a PDS, PDSE, or sequential file. If the currency file and control file are different datasets, they must have the same record format, record length, and blocksize. Enter the Member Name of the desired control file dataset. If no dataset and member are entered, the control cards generated will not be saved. Note: LRECL must be 80 characters. Do not put the control file member in the same PDS as the scripts. 5. Enter the Currency File Data Set Name. This optional dataset contains the EURO script utility currency cards. It can be a PDS, PDSE, or sequential file. If the currency file and control file are different datasets, they must have the same record format, record length, and blocksize. Enter the Member Name of the desired currency file dataset. If no dataset and member are entered, but a control file is entered above, the currency cards save to that control file. If both currency and control file fields are left blank, the currency cards generated will not be saved. Note: LRECL must be 80 characters. Do not put the currency file member in the same PDS as the scripts. 6. To select the following options, type a slash in the Action column: – Replace Like Script Member(s): Replaces a script if a script with the same name currently exists in the output script file. If you do not select this option, the EURO script utility prompts you to enter a new name for the duplicate script at the time the member list is presented. Hiperstation for VTAM EURO Script Utility 17-3 – Update control File only: Performs updates to the control file. If the control file contains currency cards, they can also be updated at that time. – Update currency file only: Performs updates to the currency file. Using Member Lists The Script Selection List screen (Figure 17-3) appears when you press Enter on the EURO Script Utility screen and one of the following conditions exists: • The Input Script Member Name field is left blank or contains a mask. • A duplicate script is found, and Replace Like Script Member(s) was not selected. Note: If neither condition exists, the EURO script utility displays the Control File Item List screen (Figure 17-6 on page 17-5). See “Using Control Files” on page 17-4 for details. Figure 17-3. Script Selection List Screen Hiperstation -------------- Script Selection List --------------------------- Command ===> _ Scroll ===> PAGE Row 00001 of 00132 Input Script . . : ’USER2312.TEST.SCRIPTS’ Output Script . . : Enter END to process selections or CANCEL to exit member list. Name New Name VV MM Created Changed Size Init Mod ID _ ADD054 00.00 07/04/12 07/04/12 09:19 5 0 0 USER2312 _ ADD055 00.00 07/04/09 07/04/09 12:09 5 0 0 USER2312 _ APPCSTRT 01.00 07/02/03 07/02/03 07:45 30 30 0 USER2312 _ APPCTERM 01.00 07/02/03 07/02/03 07:45 20 20 0 USER2312 _ APP00000 00.00 07/05/31 07/05/31 16:19 116 3 0 HPR0055 _ APP00001 00.00 07/05/31 07/05/31 16:56 95 3 0 HPR0055 _ BETA600 00.00 07/06/09 07/06/09 12:16 646 16 0 USER2312 _ BETA600K 00.00 07/06/09 07/06/09 12:20 642 16 0 USER2312 _ BPNBETA 01.00 07/07/13 07/07/13 07:44 306 306 0 USER2312 _ CDRT0034 00.00 07/02/10 07/02/10 10:45 418 14 0 TACN109 _ CICSCLR 00.00 07/02/12 07/02/12 12:30 405 12 0 USER2312 _ CICSCLR2 00.00 07/03/01 07/03/01 09:25 290 6 0 USER2312 _ CONTINUE 00.00 07/01/21 07/01/21 11:56 257 8 0 USER2312 _ DEMOCONV 01.00 07/07/14 07/07/14 14:05 234 234 0 USER2312 The Input Script field displays the input dataset name, and the Output Script field displays the output dataset name. If no output dataset name was entered on the EURO Script Utility screen, the Output Script field is blank. On this screen, you can select which scripts to process. If a duplicate script is found (Figure 17-4), you can choose a new member name for your script. 17-4 Hiperstation for VTAM User Guide Figure 17-4. Member List Screen with Duplicate Member Names Hiperstation -------------- Script Selection List --------------------------- Command ===> Scroll ===> PAGE Row 00001 of 00132 Input Script . . : ’USER2312.TEST.SCRIPTS’ Output Script . . : ’USER2312.RESULT.SCRIPTS’ Enter END to process selections or CANCEL to exit member list. Name New Name VV MM Created Changed Size Init Mod ID _ ADD054 <==Duplicate Member Name Located 7 0 0 USER2312 _ ADD055 00.00 07/04/09 07/04/09 12:09 5 0 0 USER2312 _ APPCSTRT 01.00 07/02/03 07/02/03 07:45 30 30 0 USER2312 _ APPCTERM 01.00 07/02/03 07/02/03 07:45 20 20 0 USER2312 _ APP00000 00.00 07/05/31 07/05/31 16:19 116 3 0 HPR0055 _ APP00001 00.00 07/05/31 07/05/31 16:56 95 3 0 HPR0055 _ BETA600 00.00 07/06/09 07/06/09 12:16 646 16 0 USER2312 _ BETA600K 00.00 07/06/09 07/06/09 12:20 642 16 0 USER2312 _ BPNBETA 01.00 07/07/13 07/07/13 07:44 306 306 0 USER2312 _ CDRT0034 00.00 07/02/10 07/02/10 10:45 418 14 0 TACN109 _ CICSCLR 00.00 07/02/12 07/02/12 12:30 405 12 0 USER2312 _ CICSCLR2 00.00 07/03/01 07/03/01 09:25 290 6 0 USER2312 _ CONTINUE 00.00 07/01/21 07/01/21 11:56 257 8 0 USER2312 _ DEMOCONV 01.00 07/07/14 07/07/14 14:05 234 234 0 USER2312 To change your script name, type S (Select) next to the duplicate name identified on this screen, then press Tab to advance to the New Name column. Type your new script name and press Enter. The screen updates to show that the change has been accepted (Figure 17-5). Figure 17-5. Member List Screen with Changed Member Name Hiperstation -------------- Script Selection List --------------------------- Command ===> Scroll ===> PAGE Row 00001 of 00132 Input Script . . : ’USER2312.TEST.SCRIPTS’ Output Script . . : ’USER2312.RESULT.SCRIPTS’ Enter END to process selections or CANCEL to exit member list. Name New Name VV MM Created Changed Size Init Mod ID _ ADD054 <==Duplicate Member Name Located 7 0 0 USER2312 _ ADD055 00.00 07/04/09 07/04/09 12:09 5 0 0 USER2312 _ APPCSTRT 01.00 07/02/03 07/02/03 07:45 30 30 0 USER2312 _ APPCTERM 01.00 07/02/03 07/02/03 07:45 20 20 0 USER2312 _ APP00000 00.00 07/05/31 07/05/31 16:19 116 3 0 HPR0055 _ APP00001 00.00 07/05/31 07/05/31 16:56 95 3 0 HPR0055 _ BETA600 Selected - New Name: PROD600 12:16 646 16 0 USER2312 _ BETA600K 00.00 07/06/09 07/06/09 12:20 642 16 0 USER2312 _ BPNBETA 01.00 07/07/13 07/07/13 07:44 306 306 0 USER2312 _ CDRT0034 00.00 07/02/10 07/02/10 10:45 418 14 0 TACN109 _ CICSCLR 00.00 07/02/12 07/02/12 12:30 405 12 0 USER2312 _ CICSCLR2 00.00 07/03/01 07/03/01 09:25 290 6 0 USER2312 _ CONTINUE 00.00 07/01/21 07/01/21 11:56 257 8 0 USER2312 _ DEMOCONV 01.00 07/07/14 07/07/14 14:05 234 234 0 USER2312 Using Control Files The Control File Item List screen (Figure 17-6) appears immediately when you press Enter on the EURO Script Utility screen (Figure 17-2 on page 17-2) or after any required changes have been made on the Script Selection List screen (Figure 17-3 on page 17-3). The Control File Item List screen lists the control items currently defined for the session. Defined control items include those read in from the control dataset and those you add. Hiperstation for VTAM EURO Script Utility 17-5 Figure 17-6. Control File Item List Screen Hiperstation ------------- Control File Item List --------------------------- Command ===> Scroll ===> PAGE USERID1.EURO.CNTL(CVRTEUR ) Row 00001 of 00001 Select Action or Enter "/" to Display Action List Item Script Number Type Msg Type Action Description _ 00001 3270 OUTPUT X Convert in place to EURO *************************** Bottom of Control File *************************** The ADD primary command adds a new control item. CURRENCY displays a list of EURO script utility currencies. The (A)dd, (B)rowse, (D)elete, (R)epeat, (U)pdate, and / (slash) line commands are valid on this screen. The A, B, and D commands display the Maintain Control File Item screen (Figure 17-7 on page 17-5) in the specified mode. R displays the Maintain Control File Item screen in Add mode. This command is similar to the A line command, but Hiperstation fills in data from the control item where the command was entered. U updates the entry. / displays a screen showing these commands. Control Items The Maintain Control File Item screen (Figure 17-7) appears when you type an A, B, D, R, or U line command next to a control item on the Control File Item List screen (Figure 176) and press Enter. Figure 17-7. Maintain Control File Item Screen Hiperstation - Update Control File Item ------------------------------------- Command ===> Message Type . . . OUTPUT Operation . . . . . X Description . . . . Convert in place to EURO Screen Identification Text . . . . . . ’Ac’ (Row, Column) . . 2 , * Rows (1-43) Columns (1-132) From Text . . . . . . Currency . . . . FRF (Row, Column) . . 9 , 29 Rows (1-43) Columns (1-132) To Text . . . . . . Currency . . . . EUR (Row, Column) . . 9 , 29 Rows (1-43) Columns (1-132) The Update Control File Item screen allows you to add, browse, update, or delete control cards. The current operating mode is indicated in the upper left corner of the screen. Field Definitions Message Type The type of messages against which control operations are performed. Valid message types are INPUT, OUTPUT, and BOTH (INPUT and OUTPUT). Operation The operation the utility will perform. All operations affect a single screen. To move a field to a different screen you must delete the field from the currency screen, then 17-6 Hiperstation for VTAM User Guide insert the field on the new screen. To display a list of valid operations, leave this field blank and press Enter. Valid operations include: D: Delete a field from a screen I: Insert a field in a screen IS: Insert a new screen A: Alter a field on a screen C: Copy a field on a screen CX: Copy a field on a screen and convert it to a chosen currency M: Move a field on a screen MX: Move a field on a screen and convert it to a chosen currency X: Convert a field on a screen to a chosen currency. Description A brief description of what the control card does. Screen Identification Group of fields that defines the screen against which the utility performs the operation. Designate a screen for the INSERT (I) and INSERT SCREEN (IS) operations. If you enter a string in the Text field, you must also enter values in the (Row, Column) field. – Text: Used to enter a description of the screen literal. Note: If text is entered in this field, a case-sensitive process identifies which screens match this control entry. For example, if the screen in the <OUTPUT> group in the script is identified by My screen in row 4, column 4, then entering MY SCREEN in this field will not select that screen for processing. – (Row, Column): Used to enter on the EURO script utility the location of the screen literal in the Text field. You can use an asterisk (*) as a wildcard character in either field. From Group of fields that defines the data to be altered, copied, converted, deleted, or moved. Values must be entered for any of the following operations: D: Delete a field from a screen A: Alter a field on a screen C: Copy a field on a screen CX: Copy a field on a screen and convert it to a chosen currency M: Move a field on a screen MX: Move a field on a screen and convert it to a chosen currency X: Convert a field on a screen to a chosen currency. Text: Contains the data used by the EURO script utility to verify the location before performing the chosen operation. This field is ignored for the MX (move and convert field currency) and X (convert field currency) operations. Currency: Used to choose the currency to be copied, moved, and/or converted. You can use an asterisk (*) as a wildcard character in either field. To display a selection list of defined currencies, type ? in the Currency field and press Enter. Hiperstation for VTAM EURO Script Utility 17-7 (Row, Column): Used to choose the location of the data on the screen. For the X (convert field currency) operation, an asterisk (*) wildcard character can be used in these fields. To Group of fields that defines where the new or copied data will be placed. Values must be entered for any of the following operations: A: Alter a field on a screen C: Copy a field on a screen CX: Copy a field on a screen and convert it to a chosen currency M: Move a field on a screen MX: Move a field on a screen and convert it to a chosen currency X: Convert a field on a screen to a chosen currency. Text: Define the data that the EURO script utility replaces with the data defined by the From fields. This field is ignored for the CX, MX, and X operations. Currency: Define the currency to which the EURO script utility will convert the currency defined in the From fields. (Row, Column): Define the location on the screen in which the EURO script utility will place the data. Using Currency Cards The EURO Currency Card List screen (Figure 17-8) is the next screen displayed when you press Enter on the Maintain Control File Item screen (Figure 17-7 on page 17-5). The EURO Currency Card List screen lists the currency cards currently defined for the session. Defined currency cards include those read in from the control and/or currency datasets and those you add. Figure 17-8. EURO Currency Card List Screen Hiperstation ------------- EURO Currency Card List -------------------------- Command ===> Scroll ===> PAGE ACMJET0.EURO.CURRENCY(DEMO2 ) Row 00001 of 00016 Select Action or Enter "/" to Display Action List Rounding Decimal Conversion Name Symbol P Format Factor Position Value _ EUR $$ P . , 4 3 1.000000 _ FRF $$$ S . , 4 2 0.222200 _ GBR # S . , 4 3 2.220000 _ TNT ))) P . , 4 3 0.200000 _ DC1 >>> P . , 4 1 1.000000 _ DEC ))) P . , 4 2 10.000000 _ USA $ P . , 6 2 0.950000 _ RM1 %% P . , 1 4 0.400000 _ RM2 %% P . , 2 4 0.400000 _ RM3 P . , 3 4 0.400000 _ RM4 && P . , 4 4 0.400000 _ RM5 ** P . , 5 4 0.400000 Note: The high-lighted symbol is the default symbol The ADD primary command adds a new currency. The A(dd), D(elete), R(epeat), S(elect), U(pdate) and / (slash) line commands are valid on this screen. 17-8 Hiperstation for VTAM User Guide A adds a currency card and displays the Maintain EURO Currency Card screen in Add mode (Figure 17-9 on page 17-8). D deletes a currency card and displays the Maintain EURO Currency Card screen in Delete mode. R repeats a currency card and displays the Maintain EURO Currency Card screen in Add mode. This command is similar to the A line command, but Hiperstation fills in data from the currency card where the command was entered. S selects a currency card. This command is available only when updating a EURO control item. U updates a currency card and displays the Maintain EURO Currency Card screen in Update mode. / displays a screen showing these commands. Individual Currency Cards The Maintain EURO Currency Card screen (Figure 17-9) appears when you type an A, B, D, R, or U line command next to a currency card on the EURO Currency Card List screen (Figure 17-8 on page 17-7) and press Enter. Figure 17-9. Maintain EURO Currency Card Screen Hiperstation - Add EURO Currency Card ------------------------------------ Command ===> Currency Name . . . . . DEC Currency Symbol . . . . ))) Symbol Position . . . . P P Prefix S Suffix Format Characters Decimal . . . . . . . . Grouping . . . . . . , Rounding Factor . . . . 4 1 Nearest whole number 2 Least whole number 3 Highest whole number 4 Nearest decimal number 5 Least decimal number 6 Highest decimal number Decimal Positions . . . 2 Conversion Value . . . 10 Default Currency This screen allows you to add, browse, update, or delete individual currency cards. The current operating mode is indicated in the upper left corner of the screen. Field Definitions Currency Name Three-character field used to enter a name for the currency. Currency Symbol Three-character field used to enter a symbol for the currency. Symbol Position The positioning of the currency symbol. Valid values are: P: Prefix. The symbol is located before the numerics. S: Suffix. The symbol is located after the numerics. Note: If a number is matched with a symbol, the utility ignores the decimal position checking. Format Characters Characters for formatting numbers. Hiperstation for VTAM EURO Script Utility 17-9 Decimal: Character used to enter decimal position within a number. Examples are a period (.) or a comma (,). Grouping: Character used to separate groupings of numbers, such as the commas (,) in 1,000,000 or the space in 10 000. Rounding Factor The type of rounding the utility will perform on a number. For example, the number 12.3416 with 3 decimal positions is rounded as follows for each of the six available options: • • • • • • Nearest whole number: 12.000 Least whole number: 12.000 Highest whole number: 13.000 Nearest decimal number: 12.342 Least decimal number: 12.341 Highest decimal number: 12.342 Decimal Positions The maximum number of decimal positions to display for a number. Note: The number of decimal positions is used as a condition for locating a currency field when the currency symbol is not defined. If the currency symbol is not found, the number of decimal positions in the field (contained in the script) must match the number of decimal positions in this field to be considered a valid currency field. Conversion Value The value the utility multiplies by during conversion from one currency to the EURO. Ensure that this number is in relationship to the currency from which you are converting. For example, if 1 EURO = 0.630000 pounds, the conversion value to go from pounds to EUROs is 0.630000. Note: Conversion from one currency to another is performed with no rounding of intermediate results. The calculation is performed as follows: (From Currency Amount / From Currency Conversion Value) To Conversion Value = To Currency Amount Default Currency Select this option by entering a slash (/) next to it. The utility considers any number that does not have a symbol as a match. The number still needs to qualify as a match based on formatting characters and number of decimals. Note: You do not need to enter a default currency if currency fields are explicitly identified in the script by row and column coordinates. The Default Currency option identifies currency fields when you enter an asterisk (*) or generic location in the From Currency field on the Maintain Control File Item screen (Figure 17-7 on page 17-5). If intermediate result rounding is required, then define two conversion operations as follows: 1. Define an intermediate currency (for example, INT) with a conversion value of 1 and the number of decimals you want to round the intermediate result. 2. Define a conversion (for example, create a control file entry) from the currency entered on the input script to the INT currency. 3. Define a conversion from the Intermediate (INT) currency to the target currency. 17-10 Hiperstation for VTAM User Guide Submitting EURO Script Utility Jobs To submit a Euro Script Utility job, press Enter on the Maintain EURO Currency Card screen (Figure 17-9 on page 17-8). The Euro Script Utility Execution screen (Figure 17-10) appears allowing you to choose whether to run the utility in TSO foreground or TSO background (batch) mode. Figure 17-10. EURO Script Utility Execution Screen Hiperstation ---------- EURO Script Utility Execution ----------------------- Command ===> Press ENTER to continue submit / Execute Script Utility in foreground Report Information: SYSOUT Class . . . DEST ID . . . . . Data Set Name . . ’SYS2.CONVERSN.REPORT’ Job Statement Information: ===> //* ===> //* ===> //* ===> //* ===> //* Hiperstation Load Library Information: ===> SYS2.COMPWARE.QVP700.LOADLIB Field Definitions Execute Script Utility in foreground If you enter / in front of this option, the EURO script utility executes in TSO foreground. Report Information Use these fields to choose the destination for the EURO script utility report. You must choose either a SYSOUT class or a dataset name. If you choose a dataset, it must have a record length of 133 and formatting of Variable Blocked ASCII (LRECL=133, RECFM=VBA). If the dataset does not exist, the EURO script utility allocates it. SYSOUT Class: Enter the SYSOUT class to which you want the report written. This field is not used if you enter a value in the Data Set Name field. DEST ID: Enter the printer ID where you want the report to print. This field is optional and is not used if you enter a value in the Data Set Name field. Data Set Name: Enter the name of the report dataset. This field is optional, but any value entered must be a valid dataset name. Job Statement Information Use this area to enter jobcard information for submitting batch jobs. If the option Execute Script Processor in foreground is selected, the jobcard information is ignored. Hiperstation Load Library Information Displays load library in which program SPEURO resides. Modify this field if the library displayed is not the library in which the EURO script utility is installed. If the option Execute Script Processor in foreground is selected, the load library information is ignored. Hiperstation for VTAM EURO Script Utility 17-11 EURO Script Utility Currency Location and Conversion When a EURO script utility job that includes a control file request for currency conversion is run, the currency is located and converted each time all three of the following conditions are met: 1. Any screen identification entered on the Maintain Control File Item screen is found (Figure 17-7 on page 17-5). 2. The desired currency is located, based on at least one of the following conditions: – The currency symbol is found with a numeric value in the currency field – The number of decimal positions in a row and column location matches the set value – The number of decimal positions in a generic location (for example, if you entered an asterisk (*) for row or column) matches the set value and the default currency option was selected on the Maintain EURO Currency Card screen (Figure 17-9 on page 17-8). 3. The field containing the currency is large enough to hold the converted currency value. Control Cards The EURO script utility uses the control cards described in this section. <CURR-xxx> Currency card defining a currency to the EURO script utility. The format is <CURR-aaa>bcccdefg h i where: – aaa is the currency name – b indicates whether this is the default currency (Y=yes) – ccc is the currency symbol – d indicates whether the symbol is a prefix (P) or suffix (S) to the numerics – e is the decimal character – f is the grouping character – g is the rounding factor where: • • • • • • 1 2 3 4 5 6 is is is is is is nearest whole number least whole number highest whole number nearest decimal number least decimal number highest decimal number. – h is the number of decimal places – i is the conversion value. <CONTROL>, </CONTROL> Control cards that define the start and end of another control card. <DESC> Description card that provides a short description of the operation this control card performs. 17-12 Hiperstation for VTAM User Guide <SCRTYPE> Screen Type card that lists the Hiperstation for VTAM scripts on which the operation will be performed. The format is <SCRTYPE>a where a is 3270. <MSGTYPE> Message Type card that lists the messages on which the operation will be performed. The format is <MSGTYPE>a where a is INPUT, OUTPUT, or BOTH. <OPER> Operation card that specifies what operation to perform. The format is <OPER>a where a is one of the following: D: Delete a field from a screen I: Add a field into the screen IS: Add a new screen A: Alter a field within a screen C: Copy a field CX: Copy a field and convert to requested currency M: Move a field MX: Move a field and convert to requested currency X: Convert a field to requested currency <SCRID> Screen ID card that limits the screens against which the operation is performed. <SCRPOS> Screen Position card that specifies where on the screen to look for the screen ID. <SCROFF> Screen Offset card that specifies where on the screen to look for the screen ID. This is reserved for future use. <FROMVAL> From Value card containing text describing the field for the operation. <FROMCURR> From Currency card that describes the currency from which the conversion is being performed. <FROMPOS> From Position card that specifies where on the screen to find the field for the operation. <TOVAL> To Value card that conveys the new data for the field. <TOCURR> To Currency card that describes the currency on which the conversion is being performed. <TOPOS> To Position card that specifies where on the screen to place the new field. 18-1 Chapter 18. GST (Goods and Services Tax) Testing Utility Note: Chap 18 The GST Testing Utility is an optional feature. If you are not licensed for the GST Testing Utility, you will not be able to access it. The GST Testing Utility locates up to five fields that you specify on output screens and makes them available for use in REXX routines that you write. The fields include an item code, three user-defined fields, and an actual result. The GST Testing Utility also allows you to read a VSAM file in a REXX routine. The VSAM read command, HSCMDS "GETVSAMR", allows random access of an external VSAM file. 1. To start the GST testing utility, select option 8 GST from the Script Processors menu (Figure 18-1). Figure 18-1. GST Testing Utility Main Options Screen Hiperstation --------------- Script Processors -------------------------------- Option ===> 1 REXX Processor Create "Smart" Script(s) 2 Date Change Change Year Formats for Date Testing 3 Date Find Report Location(s) of Date Field(s) 4 Input Field Formats Change Input Fields to Row/Column Format 5 MultiChange Processor Update Scripts to Reflect Application Changes 6 Security Script Processor Locate and Modify Passwords 7 Euro Euro Script Utility 8 GST GST Testing Utility 9 Message Filtering Message Filtering Utility The REXX Script Processor * GST Testing Utility screen appears (Figure 18-2). Figure 18-2. GST Testing Utility Main Options Screen Hiperstation --- REXX Script Processor * GST Testing Utility --- ------------ Option ===> 1 GST Testing Utility Go Begin Execution Specify the name of the control file below, then press Enter key Project Group . Type . Member. . . . . . . . . . . . . USER25 HIPER CONTROL GST0001 Other Data Set Name: Data Set Name . . . Execution Parameters: GST VSAM DATASET NAME . . . (full name) User GST Proc Name . . . (Default: GSTPROC) 2. Enter a GST VSAM Dataset Name — the VSAM dataset the new script will retrieve. If you do not provide this name, Hiperstation inserts ‘xxxxxxxx.xxxxxxxx.xxxxxxxx’. 18-2 Hiperstation for VTAM User Guide 3. Enter a User GST Proc Name — the REXX routine name and member name of the output script dataset to call from the new script. If you do not provide this name, Hiperstation uses GSTPROC. 4. Select whether you want to execute an existing request or go to an entry screen to create or update GST requests. – 1 accesses the Hiperstation REXX Script Processor - GST screen (Figure 18-3), where you can add, update, delete, or browse GST requests. – GO executes the GST request. This creates a new script containing the information specified in the GST request. Figure 18-3. Hiperstation REXX Script Processor * GST Screen -------------------- Hiperstation REXX Script Processor * GST ----------------- Option ===> Scroll ===> PAGE Add Create New GST Entries Line Cmds: U Update D Delete B Browse Message Variables Message Text Location in LIST Description ------------------------------------------------------------------------------- ** NONE ** ******************************* BOTTOM OF DATA ******************************** 5. Select whether to Add, Update, Delete, or Browse the GST request. Add a Request The Hiperstation REXX Script Processor * GST screen (Figure 18-3 on page 18-2) displays existing GST entries stored in the control file. If no entries exist, ** NONE ** is displayed. 1. To add a new entry, type ADD on the command line and press Enter. The Hiperstation REXX Script Processor * GST ADD screen appears (Figure 18-4). If you have an existing request, the new request will carry over the old request’s information. If not, all of the fields will be blank. Figure 18-4. GST Add New Entry Screen ----------------- Hiperstation REXX Script Processor * GST ADD ---------------- Command ===> ENTER Add item END End with save of added items CANcel End without save of added items Enter optional GST entry description: Description . . . . Describe the GST screen id and Message text: Screen ID . . . . . * ID Location . . . . ** , ** (Row,Col) Message Text. . . . Message Location. . ** , ** (Row,Col) Describe the GST variables: Are the variables in a list? . . . N (Y or N) If Yes: Top Row . . Bottom Row . . GST Item Location . . . , (Row,Col) GST Item Length . . . Value A Location . . . , (Row,Col) Value A Length . . . Value B Location . . . , (Row,Col) Value B Length . . . Value C Location . . . , (Row,Col) Value C Length . . . Result Location . . . , (Row,Col) Result Length . . . GST (Goods and Services Tax) Testing Utility 18-3 2. Enter a brief Description of the GST request. This field is optional. 3. Enter the name of the screen where the information is located in the Screen ID field. This field is case sensitive — the uppercase and lowercase characters must match the screen ID in the script exactly. Wildcards are not allowed. The wildcard character is treated as an actual screen ID. 4. In the ID Location field, specify where the Screen ID name is found on the screen, in row,column format. 5. Enter the Message Text you want to find. 6. In the Message Location field, specify where the message text is located on the screen, in row,column format. 7. Enter Y or N in the Are the Variables in a List? field. – If all of the items you are looking for are in a list, enter Y. If you enter Y, also include the top and bottom row of the list. You will be prompted to include this information if you do not add it before pressing Enter. In addition, if you enter Y, Hiperstation will clear all information in the Row area of the locations at the bottom of this screen. – If the items you are looking for are not in a list, enter N. 8. Enter the row and column location of the items you want to find in the Location fields. You do not need to use all five variables — you can use any combination of the five. 9. Enter the length of the items you want to find in the Length fields. 10. Press Enter to add the request. Hiperstation will prompt you for any missing information. 11. Press End to save all changes and return to the Hiperstation REXX Script processor * GST screen (Figure 18-3 on page 18-2), or press Cancel to leave the screen without saving your changes. Update a Request The Hiperstation REXX Script Processor * GST screen (Figure 18-3 on page 18-2) displays existing GST entries stored in the control file. If no entries exist, ** NONE ** is displayed. 1. To update a request, type U next to the request and press Enter. The Hiperstation REXX Script Processor * GST UPDATE screen appears (Figure 18-5) allowing you to change any of the specified information and resave the request. 18-4 Hiperstation for VTAM User Guide Figure 18-5. GST Update Screen -------------- Hiperstation REXX Script Processor * GST UPDATE -------------- Command ===> Cancel End Update Without Save END Update Entry Enter optional GST entry description: Description . . . . GST test entry Describe the GST screen id and Message text: Screen ID . . . . . GST1 ID Location . . . . 01 , 01 (Row,Col) Message Text. . . . GST Method 1 Message Location. . 05 , 01 (Row,Col) Describe the GST variables: Are the variables in a list? . . . N (Y or N) If Yes: Top Row . . Bottom Row . . GST Item Value A Value B Value C Result Location Location Location Location Location . . . . . . . . . . . 06 , 07 . 06 , 15 . , . , . 06 , 30 (Row,Col) (Row,Col) (Row,Col) (Row,Col) (Row,Col) GST Item Value A Value B Value C Result Length Length Length Length Length . . . . . . . . . . . 05 . 07 . . . 07 2. Enter a brief Description of the GST request. This field is optional. 3. Enter the name of the screen where the information is located in the Screen ID field. Together, the screen ID and message text determine the output screen where the (up to) five fields you selected are. This field is case sensitive — the uppercase and lowercase characters must match the screen ID in the script exactly. Wildcards are not allowed. The wildcard character is treated as an actual screen ID. 4. In the ID Location field, specify where the Screen ID name is found on the screen, in row,column format. 5. Enter the Message Text you want to find. Together, the screen ID and message text determine the output screen where the (up to) five fields you selected are. 6. In the Message Location field, specify where the message text is located on the screen, in row,column format. 7. Enter Y or N in the Are the Variables in a List? field. – If all of the items you are looking for are in a list, enter Y. If you enter Y, also include the top and bottom row of the list. You will be prompted to include this information if you do not add it before pressing Enter. In addition, if you enter Y, Hiperstation will clear all information in the Row area of the locations at the bottom of this screen. – If the items you are looking for are not in a list, enter N. 8. Enter the row and column location of the items you want to find in the Location fields. You do not need to use all five variables — you can use any combination of the five. 9. Enter the length of the items you want to find in the Length fields. 10. Press Enter to update the request. Hiperstation will prompt you for any missing information. 11. Press End to save all changes and return to the Hiperstation REXX Script processor * GST screen (Figure 18-3 on page 18-2), or press Cancel to leave the screen without saving your changes. GST (Goods and Services Tax) Testing Utility 18-5 Browse a Request The Hiperstation REXX Script Processor * GST screen (Figure 18-3 on page 18-2) displays existing GST entries stored in the control file. If no entries exist, ** NONE ** is displayed. 1. To browse a request, type B next to the request and press Enter. The Hiperstation REXX Script Processor * GST BROWSE screen appears (Figure 18-6) allowing you to view all of the information pertaining to a request. You cannot change any of the information on this screen. Figure 18-6. GST Browse Screen --------------- Hiperstation REXX Script Processor * GST BROWSE --------------- Command ===> END End Browse Next Browse Next Entry Prev Browse Previous Entry The information in this GST entry is shown below: Description . . . . . . GST TEST WITH PLAS Screen ID . . . . . . . PLAS ID Location . . . . . . 01 , 02 (Row,Col) Message Text. . . . . . EXECUTING Message Location. . . . 10 , 05 (Row,Col) Variables in a List . . N Top Row of the List . . Bottom Row of the List . . GST item Location . . . 06 , 22 (Row,Col) Length . . 05 Value A Location . . . 07 , 22 (Row,Col) Length . . 15 Value B Location . . . 08 , 26 (Row,Col) Length . . 04 Value C Location . . . 09 , 26 (Row,Col) Length . . 07 Result Location . . . 10 , 26 (Row,Col) Length . . 07 2. Press NEXT to view the next GST request, press PREV to view the previous GST request, or press End to return to the GST Entry Listing screen. Delete a Request The Hiperstation REXX Script Processor * GST screen (Figure 18-3 on page 18-2) displays existing GST entries stored in the control file. If no entries exist, ** NONE ** is displayed. 1. To delete a request, type D next to the request and press Enter. The Confirm Delete screen appears. 2. Press End to cancel the delete and return to the previous screen, or leave the command line blank and press Enter, to delete the request. Execute the Requests When you execute the GST utility, Hiperstation runs all existing requests. If you do not want to run a specific request, you must delete it before you execute the utility. 1. To execute the GST utility, on the Hiperstation REXX Script Processor * GST screen (Figure 18-3 on page 18-2), type GO on the command line and press Enter. The GST Execution screen (Figure 18-7) appears. 18-6 Hiperstation for VTAM User Guide Figure 18-7. Hiperstation Script Processor * Execution Screen ------------------ Hiperstation Script Processor * Execution ------------------ Command ===> blank Continue Type the names of the script data sets below, then press Enter key Do not specify the script/member name Input Script Data Set: Project . . . USER25 Group . . . . TRAINING Type . . . . SCRIPTS Other Partitioned Data Set: Data Set Name . . . Output Script Data Set: Project . . . USER25 Group . . . . TRAINING Type . . . . SCRIPTSX Other Partitioned Data Set: Data Set Name . . . 2. Enter the Input Script Data Set (PDS containing the recorded script), Other Partitioned Data Set, and Output Script Data Set (PDS to contain the processed output script. Do not specify the script/member name. 3. Press Enter to continue. The Hiperstation Script Processor * Execution Processing screen (Figure 18-8) appears. Figure 18-8. Hiperstation Script Processor * Execution Processing Screen ------------------ Hiperstation Script Processor * Execution ------------------ Option ===> F Initiate Processing In Foreground. B Initiate Processing In Background. Input Script Data Set: 'USER25.TRAINING.SCRIPTS' Output Script Data Set: 'USER25.TRAINING.SCRIPTSX' INPUT SCRIPT NAME OUTPUT SCRIPT NAME PLAS PLAS Replace Existing Members . . . Y (Y/N) 4. The Input Script Data Set field specifies the script from the input PDS to be processed. Enter an asterisk (*) to process all members in the PDS. 5. The Output Script Data Set field specifies the processed output script name to be stored in the output PDS. If an * is specified as the input script, then you must also specify an * in the output script name field. 6. Enter Y in the Replace Existing Members field to overwrite an existing member. 7. When you are ready to begin processing, type F on the command line and press Enter to process the script in TSO foreground, or type B to process the script in TSO background. GST (Goods and Services Tax) Testing Utility 18-7 Examples Following are examples of an original script, a script processed using the GST utility, and a userproc created by the GST utility. Figure 18-9. Original Script ************************************************************************ * CREATED BY USER: USER25 TPF: H01AC054 TIME: 14:35 DATE: 02/16/07 * * DESC: GST utility demo script using plas transaction * ************************************************************************ * LU: CW010002 TPF: H01AC054 LOGMODE: SNX32702 * ************************************************************************ <VERSION>7 <IMSUNLOK>N <OUTPUT>0000001 <RESPONSE>00.00.011 <S01> <S02> <S03> <S04> <S05> <S06> <S07> <S08> <S09> <S10> <S11> <S12> <S13> <S14> <S15> <S16> <S17> <S18> <S19> <S20> <S21> <S22> <S23> <S24> </OUTPUT> <BASETIME>02/16/07 14:35:54.677 <INPUT>0000002 <THINK>00.04.238 AT 00:00:00.000 <KEY>ENTER <CURSOR>00,04 <I01>"plas " </INPUT> <OUTPUT>0000002 <RESPONSE>00.00.605 <S01>PLAS_____- ENTER EMPLOYEE NUMBER <S02> <S03> *** COMPUWARE CORPORATION *** <S04> CICS PLAYBACK SAMPLE TRANSACTION <S05> <S06> ENTER DESIRED EMPLOYEE NUMBER ABOVE: <S07> VALID EMPLOYEE NUMBERS ARE: <S08> 11111 <S09> 22222 <S10> 33333 <S11> 44444 <S12> 55555 <S13> <S14> <S15> <S16> <S17> DATE: 02/17/07 <S18> TIME: 14:35:55 <S19> <S20> <S21> <S22> <S23> <S24> COPYRIGHT (C) 2007 COMPUWARE CORP. ALL RIGHTS RESERVED </OUTPUT> 18-8 Hiperstation for VTAM User Guide <INPUT>0000011 <THINK>00.02.312 AT 00:00:45.583 <KEY>ENTER <CURSOR>00,06 <I01>"55555" </INPUT> <OUTPUT>0000011 <RESPONSE>00.00.125 <S01>PLAS <S02> <S03> ***COMPUWARE CORPORATION *** <S04> CICS PLAYBACK SAMPLE TRANSACTION <S05> <S06> EMPLOYEE NUMBER: 55555 <S07> EMPLOYEE NAME: MR. JOE GREEN <S08> HOURS WORKED: 50 <S09> HOURLY RATE: 9.50 <S10> GROSS PAY: 475.00 <S11> <S12> <S13> <S14> <S15> <S16> <S17> DATE: 02/16/07 <S18> TIME: 14:36:41 <S19> <S20> <S21> *** TRANSACTION COMPLETE *** <S22> PRESS ENTER TO CONTINUE <S23> OR CLEAR TO END <S24> </OUTPUT> <INPUT>0000013 <THINK>00.04.318 AT 00:00:52.490 <KEY>CLEAR </INPUT> GST (Goods and Services Tax) Testing Utility Figure 18-10. Script Processed Using GST Utility * DATE: 05/29/07 TIME:10:26:08 VERSION: 01 * * THIS SCRIPT HAS BEEN MODIFIED BY THE HIPERSTATION SCRIPT PROCESSOR * ************************************************************************ ************************************************************************ * CREATED BY USER: USER25 TPF: H01AC054 TIME: 14:35 DATE: 02/17/07 * * DESC: GST utility demo script using plas transaction * ************************************************************************ * LU: CW010002 TPF: H01AC054 LOGMODE: SNX32702 * ************************************************************************ <VERSION>7 /**********************************************************************/ /* GST Processing REXX inserted 29 Jun 2007 10:26:07 */ /**********************************************************************/ CALL gst_handle_init <IMSUNLOK>N <OUTPUT>0000001 <RESPONSE>00.00.011 <S01> <S02> <S03> <S04> <S05> <S06> <S07> <S08> <S09> <S10> <S11> <S12> <S13> <S14> <S15> <S16> <S17> <S18> <S19> <S20> <S21> <S22> <S23> <S24> </OUTPUT> <BASETIME>02/17/07 14:35:54.677 <INPUT>0000002 <THINK>00.04.238 AT 00:00:00.000 <KEY>ENTER <CURSOR>00,04 <I01>"plas " </INPUT> <OUTPUT>0000002 <RESPONSE>00.00.605 <S01>PLAS_____- ENTER EMPLOYEE NUMBER <S02> <S03> *** COMPUWARE CORPORATION *** <S04> CICS PLAYBACK SAMPLE TRANSACTION <S05> <S06> ENTER DESIRED EMPLOYEE NUMBER ABOVE: <S07> VALID EMPLOYEE NUMBERS ARE: <S08> 11111 <S09> 22222 <S10> 33333 <S11> 44444 <S12> 55555 <S13> <S14> <S15> <S16> <S17> DATE: 02/17/07 <S18> TIME: 14:35:55 <S19> <S20> <S21> <S22> <S23> <S24> COPYRIGHT (C) 2007 COMPUWARE CORP. ALL RIGHTS RESERVED 18-9 18-10 Hiperstation for VTAM User Guide </OUTPUT> <INPUT>0000003 <THINK>00.02.312 AT 00:00:45.583 <KEY>ENTER <CURSOR>00,06 <IO1>”55555” </INPUT> <OUTPUT>0000003 <RESPONSE>00.00.125 <S01>PLAS <S02> <S03> ** COMPUWARE CORPORATION *** <SO4> CICS PLAYBACK SAMPLE TRANSACTION <S05> <S06> EMPLOYE NUMBER: 55555 <S07> EMPLOYE NAME: MR. JOE GREEN <S08> HOURS WORKED: 50 <S09> HOURLY RATE: 9.50 <S10> GROSS PAY: 475.00 <S11> <S12> <S13> <S14> <S15> <S16> <S17> DATE: 02/16/07 <S18> TIME: 14:36:41 <S19> <S20> <S21> *** TRANSACTION COMPLETE *** <S22> PRESS ENTER TO CONTINUE <S23> OR CLEAR TO END <S24> </OUTPUT> CALL gst handle <INPUT>0000004 <THINK>00.04.318 AT 00:00:52.490 <KEY>CLEAR </INPUT> /*************************************************************** /* GST Processing REXX inserted 29 Jun 2007 10:26:07 * /*************************************************************** gst_handle_exit: /*GST VSAM file will be freed with ddname GSTVSAM.*/ ADDRESS HSCMDS “FREE F(GSTVSAM)” EXIT gst_handle_init: /* GST VSAM file will be allocated with ddname GSTVSAM.*/ /*Verify and correct VSAM dataset name */ ADDRESS HSCMDS “ALLOC F(GSTVSAM) DA(USER25.TRAINING.GSTKSDS) SHR REUSE” HS_VSAM_DD=’GSTVSAM’ RETURN gst_handle: IF TPFNAME = '' THEN RETURN /* Session Demo */ CALL format_the_screen IF SUBSTR(the_screen,(01-1)*columns+02,4) = 'PLAS' &, SUBSTR(the_screen,(10-1)*columns+05,5) = 'GROSS' THEN DO CALL gst_process_1 RETURN END IF SUBSTR(the_screen,(01-1)*columns+02,4) = 'PLAS' &, SUBSTR(the_screen,(10-1)*columns+05,5) = 'GROSS' THEN DO CALL gst_process_2 RETURN END RETURN GST (Goods and Services Tax) Testing Utility gst_process_1: /*Assigning GST variables */ gst_process_id = 1 gst_list_proc = ‘N’ item_no = SUBST(the_screen.(06-1)*columns+22.05) value_a = SUBST(the_screen.(07-1)*columns+22.15) value_b = SUBST(the_screen.(08-1)*columns+26.04) value_c = SUBST(the_screen.(09-1)*columns+26.07) value_r = SUBST(the_screen.(10-1)*columns+26.07) IF item_no <> ‘ ‘ THEN CALL process_a_gst_item RETURN gst_process_2: /* Assigning GST variables */ gst_process_id = 2 gst_list_proc = 'Y' gst_top_row = 10 gst_bottom_row = 18 DO gi = gst_top_row to gst_bottom_row item_no = SUBSTR(the_screen,(gi-1)*columns+22,05) value_a = SUBSTR(the_screen,(gi-1)*columns+22,15) value_b = SUBSTR(the_screen,(gi-1)*columns+26,04) value_c = SUBSTR(the_screen,(gi-1)*columns+26,07) value_r = SUBSTR(the_screen,(gi-1)*columns+26,07) IF item_no = ' ' THEN LEAVE CALL process_a_gst_item END RETURN process_a_gst_item: /*************************************************/ /* Now set parm to call PLASPROC . */ /* PLASPROC is first generated by the GST feature */ /* in the OUTPUT script dataset and */ /* may be modified by the client */ /*************************************************/ parm = item_no||'~'||value_a||'~'||value_b||'~'|| , value_c||'~'||value_r||'~'|| , gst_process_id||'~'||OUTPUTNUM||'~' , gst_list_proc||'~'||gi||'~' CALL PLASPROC parm RETURN format_the_screen: the_screen = TRANSLATE(screen,,XRANGE('00'x,'3F'x)) RETURN 18-11 18-12 Hiperstation for VTAM User Guide Figure 18-11. USERPROC Created by the GST Utility /********************* REXX ********************/ /* MEMBER: PLASPROC */ /* CREATED: 29 JUN 2007 */ /* DESCRIPTION: This member is a REXX program */ /* used to process GST related information. */ PLASPROC PARSE ARG arg_parm PARSE VAR arg_parm item_no ‘~’ value_a ‘~’ value_b ‘~’, value_c ‘~’ value_r ‘~’. gst_process_id ‘~’ OUTPUTNUM ‘~’, gst_list_proc ‘~’ gi ‘~’ /*now process a gst item */ say ‘ ******* GST variables ******************’ say ‘ gst_process_id = ‘gst_process_id say ‘ get_list_proc = ‘gest_list_proc say ‘ gi (row) = ‘gi say ‘ Variables Length Data ‘ say ‘ ---------------' say ‘ item_no : LENGTH(item_no) ‘ ‘ item_no say ‘ value_a : LENGTH(value_a) ‘ ‘ value_a say ‘ value_b : LENGTH(value_b) ‘ ‘ value_b say ‘ value_c : LENGTH(value_c) ‘ ‘ value_c say ‘ value_r : LENGTH(value_r) ‘ ‘ value_r say ‘*****************************************’ HS_VSAM_DD = ‘GSTVSAM’ HS_VSAM_KEY = item_no HS_VSAM_RC = 9999 /* set as bad return code */ ADDRESS HSCMDS “GETVSAMR” /*****************************************/ /* HS_VSAM_RC : Notes */ /* 0 ; Successful */ /* 4 ; No record found */ /* 8 ; HS_VSAM_DD problem */ /* 12 ; HS_VSAM_KEY problem */ /* 16 ; HS_VSAM_REC problem */ /* 20 ; HS_VSAM_DD OPEN error */ /* 24 ; Not licensed */ /*****************************************/ IF HS_VSAM_RC <> 0 then DO say ‘ Non-zero HS_VSAM_RC received : ‘HS_VSAM_RC say ‘ Return code of 4 means NO RECORD FOUND.’ END say “HS_VSAM_REC : ‘HS_VSAM_REC /*add the code to use HS-VSAM REC here */ RETURN_VALUE = 0 RETURN RETURN_VALUE 19-1 Chapter 19. Unattended Message Filters Chap 19 Hiperstation for VTAM’s Unattended Message Filtering function creates new scripts by taking existing scripts and removing certain messages. This function determines which messages to include and which to exclude. You can use this function to: • Simplify testing by producing scripts that contain a single message allowing you to test one message at a time • Remove messages that contain confidential data • Reduce script size by eliminating messages of no interest To filter a script, choose the messages to include or exclude by describing the screens in those messages. You do not have to describe the screens exactly, and you do not have to describe every screen. Often, you can describe just the first and last screens of a message, and Hiperstation includes or excludes everything in between. In addition to filtering based on screen descriptions, you can filter based on the user input contained in the script, such as pressed function keys and typed data. For example, If you know that a message starts when the user types PAYR and presses Enter, you can have Hiperstation start including screens from the script when those conditions are met. The message filter function can also filter unformatted scripts. These types of scripts are usually produced for sessions involving LU0 devices, such as financial terminals. In these cases, there are no recorded screens. You choose the start and end of the messages by describing the content of the unformatted data streams. How the Message Filter Works The message filter program (EHSFLTR) starts with a source script dataset containing already-recorded scripts. It processes this dataset and produces a target script dataset that contains the new scripts. You can select a single member of a source dataset, a list of members, or all members in the dataset for processing. Tell Hiperstation how to process the scripts by supplying: • A list of the messages to be included or excluded in the filter process • A small REXX exit program for each message (you can either use interactive panels to create the program or write your own). The REXX exit program examines screen images in the scripts to decide if they match the list of “filter” messages. Hiperstation for VTAM calls each exit for every input and output contained in the source script, and then passes information on the current screen contents to your exit program. The exit then decides whether the current screen is a match for your filter message. Hiperstation uses the results of your exit program to decide if the series of inputs and outputs should be included or excluded from your target script dataset. A description of an example message filtering batch job is provided in “Sample Message Filtering Job” on page 19-23. 19-2 Hiperstation for VTAM User Guide REXX Exit Processing Every time Hiperstation sees an <INPUT> or <OUTPUT> group of script tags, it calls your exit programs, one at a time, in the same order as you listed them in the SYSIN data. Each exit looks at every piece of <INPUT> and <OUTPUT> data. You supply the exit program with several REXX variables that it uses to decide if the current screen (or input) matches something of interest. REXX variables are special names that contain data from the Hiperstation script. You can type the variable names in lowercase or uppercase. However, the case of the data contained in the variables may be important. Your exit program determines whether the current screen or input matches one of your messages by setting the HS_MATCH variable. If the current screen or input is a match, set HS_MATCH = 1. If not, set HS_MATCH = 0. After all of your exit programs have run for a particular screen or user input, Hiperstation looks at each HS_MATCH value set by each of your exits (the INCLUDE and EXCLUDE statements). It stops as soon as HS_MATCH = 1 is found. Hiperstation starts with the bottom exit in your list and works towards the top exit. If HS_MATCH = 1 is not found, Hiperstation includes the screen or user input by default and copies it to your target script dataset. You can change this default to exclude rather than include by changing it to “CONTROL DEFAULT=EXCLUDE”. If HS_MATCH = 1 is found, Hiperstation includes or excludes the screen or user input, based on whether an INCLUDE or EXCLUDE exit is set on HS_MATCH. If you supply more than one exit, the results from each exit (to include or exclude a screen) may conflict. One exit might say INCLUDE a screen while another exit might say EXCLUDE. Hiperstation resolves these conflicts with this rule: the exit closest to the bottom that decides a screen is a match is the one that is used. For an EXCLUDE exit, the screen is not copied to the target script dataset. For an INCLUDE exit, the screen is copied to the target script dataset. Deciding What Screens Are in a Message You have probably already thought of a message to focus on from your collection of scripts, perhaps to simplify testing you are about to perform. For example, you would like to produce a new set of scripts that contain only the single message you have in mind. After you have located the script dataset containing those scripts, the next step is to decide what features in those scripts mark the start and end of your message. Here are some guidelines for identifying the start of your message: • If your message is always started with a unique command typed on the screen, you can use an HS_INPUT.n variable in your REXX exit program to test for the command. When you see the command, set HS_MATCH = 1. • If your message is always started by typing a selection value from a menu, you can look for that value in an HS_INPUT.n variable while also checking that the screen contents (a title, for example) are what you expect (with an HS_OUTPUT.n variable). • If your message is started by placing your cursor on a menu item and pressing Enter or a PF key, you can test both of those items in your exit. Test the cursor location with the HS_ROW and HS_COLUMN variables and test the key pressed with HS_KEY. Also check that the screen contents (a title, for example) are what you expect (with an HS_OUTPUT.n variable). • If your message is started by pressing a PF key, test the HS_KEY variable in your exit. Here are some guidelines for identifying the end of your message: Unattended Message Filters 19-3 • If your message always includes screens that have a unique title or identification label, you can look for that set of characters in your exit with an HS_OUTPUT.n variable. As soon as you do not see that special set of characters, you can set HS_MATCH = 0 as the signal to Hiperstation that the message is over. • If your message always includes screens that have one of several identification labels, you can put code in your exit that looks for any of those labels. Your exit contains a list of the possible labels that are part of your message. You can use a REXX “DO loop” to see if the current screen contains any of those labels. If your “DO loop” never finds a match, you know that your message has ended and you let Hiperstation know by setting HS_MATCH = 0. • If your message ends when the user presses a unique PF key, you can test for that key (with the HS_KEY variable) in your exit. The most important part about deciding where your message starts and ends is knowing what the screens look like in your message. The technique that you decide to use depends on the nature and appearance of your message’s screens. You can use Hiperstation’s session demo from ISPF to review the screens in your scripts. Session demo helps you visualize the screen features that are good test items in your REXX exit programs. There are two ways to filter Hiperstation messages. Use interactive forms to guide you through the process, or write your own REXX exit program. Whichever method you choose, the message filter works in the same way. Interactive Message Filtering With interactive message filtering, you fill in forms that help you write a REXX exit program that filters the messages (see previous sections). It also gives you the option of running in foreground or background mode. 1. To access message filtering, select Script Processors from the Hiperstation - Main Menu. Then select option 9 Message Filtering on the Script Processors screen and press Enter. The Message Filtering * Primary Options screen appears (Figure 19-1). Figure 19-1. Message Filtering * Primary Options Screen Hiperstation ----------- Message Filtering * Primary Options ------------------- Option ===> Enter Filter dataset name and select option, then press ENTER Filter dataset . . GMF.FILTERS 1 Generate Message Filtering REXX exit for Formatted Scripts 2 Generate Message Filtering REXX exit for Unformatted Scripts 3 Execute Message Filtering 4 Override Defaults 2. Enter the name of a PDS to hold the filters in the Filter dataset field. 3. Select the option you wish to use, and press Enter. If the dataset name you have entered does not exist, the Allocate Filter Dataset screen appears (Figure 19-2). The filter dataset is the dataset that will contain the REXX exit programs you will use to filter your scripts. 19-4 Hiperstation for VTAM User Guide Figure 19-2. Allocate Filter Dataset Screen Hiperstation ----------- Message Filtering * Primary Options ---------------- Option ===> 1 Ent ------------------------ Allocate Filter Dataset ------------------------+------------------------------------------------------------------------+ | Command ===> | | | 1 | Press Enter to allocate the dataset, END to exit | 2 | | 3 | Data Set Name . . . : 'USER25.SE2.FILTERS' | 4 | | | Volume Serial . . . . | | Space Units . . . . . TRKS (TRKS or CYLS) | | Primary Quantity. . . 5 (In above units) | | Secondary Quantity. . 5 (In above units) | | Directory Blocks. . . 20 (Zero for sequential data set) | | Record Format . . . . FB | | Record Length . . . . 80 | | Block Size. . . . . . 6160 | | | | | +------------------------------------------------------------------------+ 4. Enter the volume serial, space units, primary and secondary quantities, directory blocks, record format, record length, and block size. 5. Press Enter to allocate the dataset, or use END to exit this screen without saving the information. Note: Specifications (the information you type or select on the various message filtering forms) are contained in a control script located in a member with the same name as your message/transaction, prefixed by a # sign. For example, if your message/transaction is named test1, the control script for this dataset is named #test1. These scripts are created when you use the GO primary command to create the REXX exit program that will filter your scripts. If this control script already exists, Hiperstation reads it when you enter the Message/Transaction name you supply in the next step, and will display the specifications on all subsequent screens for you to view or change. The Message Filter Primary Options screen reappears. 6. Type one of the following option numbers on the Option line and press Enter: – Option 1: See “Generate Message Filtering REXX Exit for Formatted Scripts” on page 19-4 for details. – Option 2: See “Generate Message Filtering REXX Exit for Unformatted Scripts” on page 19-7 for details. – Option 3: See “Message Filtering Execution” on page 19-9 for details. – Option 4: See “Override Defaults” on page 19-11 for details. Generate Message Filtering REXX Exit for Formatted Scripts Type 1 on the Option line of the Message Filtering * Primary Options screen (Figure 19-1 on page 19-3) and press Enter to filter formatted scripts. The Describe Start of Message for Formatted Scripts screen appears (Figure 19-3). Describe Start of Message for Formatted Scripts Use this screen to specify how the formatted script messages you are looking for begin. Unattended Message Filters 19-5 Figure 19-3. Describe Start of Message for Formatted Scripts Screen Hiperstation --------- Describe Start of Message for Formatted Scripts--------- Command ===> Describe the first screen of the transaction or message. When completed, enter OK to proceed to the End of Message procedure Other commands: DEFAULT, RESET, EDIT, CANCEL and GO(generate the REXX exit) Name for Message/Transaction: Filter dataset . . SES.FILTERS Message or Transaction name . . Replace . . (Y,N) Description: Output: Edit more than two output lines? N (Y,N) AND/OR EQ/NE Row Col Output Text Input: Edit more than two input lines? N (Y,N) AND EQ Input Cursor Field /OR /NE Key Row Col No Input Text 1. Enter the Message/Transaction Filter dataset member name. This field accepts a maximum of seven characters. 2. Specify whether to Replace an output script member of the same name. Enter Y to replace the member or N to keep the member. 3. Enter an optional Description that is written into the script. 4. Specify whether to edit more than two output lines. – Enter N to use only the two lines that appear on this screen. – Enter Y if you have more than two Boolean operations to perform. When you press Enter, a multi-line screen appears where you can enter more than two Boolean operations. 5. Enter your output: – Enter your AND/OR boolean operator. – Enter EQ to filter script text that is the same as the entered text or NE to filter script text that is not the same as the entered text. – Enter the row and column location of the output text. Shortcuts are R for right, and B for bottom. – Enter the Output Text you want to match. This field accepts characters and hex (‘....’x). Leading and trailing blanks are removed unless used within quotes (‘). 6. Enter your input: – Enter your AND/OR boolean operator. – Enter EQ to filter script text that is the same as the entered text or NE to filter script text that is not the same as the entered text. – Enter the Input Key (valid 3270 attention keys). – Enter the Cursor Row,Col location of the input text. Valid 3270 input cursor numbers begin at 0. – Enter the Input Field Number. Non-numeric is any wildcard. Field numbers begin at 1. – Enter the Input Text you want to match. This field accepts characters and hex (‘....’x). Leading and trailing blanks are removed unless used within quotes (‘). 7. Perform one of the following actions to continue: – Press Enter to verify the fields and remain on the current screen. 19-6 Hiperstation for VTAM User Guide – Type OK on the command line and press Enter to advance to the Describe End of Message for Formatted Scripts screen (Figure 19-4). – Type GO and press Enter to create the REXX exit program and control script. The Start of Message screen appears. – Type Default and press Enter to advance to the Override Defaults screen. – Type Edit and press Enter to invoke the ISPF editor for the specified REXX exit program. – Type Reset and press Enter to reset the ISPF variables. – Type Cancel and press Enter to exit this screen and return to the Message Filtering * Primary Options screen without saving your changes. – Press END to return to the previous screen. Describe End of Message for Formatted Scripts Use this screen to specify how the formatted script messages you are looking for end. Figure 19-4. Describe End of Message for Formatted Scripts Screen Hiperstation --------- Describe End of Message for Formatted Scripts--------- Command ===> Describe the last screen of the transaction or message. When completed, enter GO to generate the REXX exit Other commands: DEFAULT, RESET, EDIT, CANCEL and END(Start of Message) Name for Message/Transaction: Filter dataset . . SES.FILTERS Message or Transaction name . . TEST2 Description: Replace . . Y Input: AND EQ /OR /NE Edit more than two input lines? Input Cursor Field Key Row Col No Input Text Output: AND/OR EQ/NE Edit more than two output lines? Row Col Output Text N (Y,N) N (Y,N) The fields on this screen are the same as those on the Describe Start of Message for Formatted Scripts. 1. See “Describe Start of Message for Formatted Scripts” on page 19-4 for the steps to follow to fill in this screen. 2. After you have entered all of the information you need on this screen, type GO on the command line and press Enter. Hiperstation runs the JCL to create the REXX exit program, and returns messages similar to those below. 13:50:55 13:50:56 13:50:56 13:50:56 13:50:57 13:50:57 13:50:57 *** SPGMF035 WRITING CONTROL INFO: 'USER25.SES.FILTERS(#TEST1)' SPGMF036 CONTROL INFO WRITE COMPLETE SPGMF030 BEGINNING MESSAGE FILTER CREATION PROCESS SPGMF031 WRITING REXX EXIT: 'USER25.SES.FILTERS(TEST1)' SPGMF034 REXX EXIT WRITE COMPLETE SPGMF035 REXX EXIT CREATION FINISHED. RETURN CODE = 0 3. After these messages appear, press Enter. The previous screen appears and the message “REXX exit created” appears on the screen. 4. Press End until you return to the primary message filtering screen. At this point, you can create additional REXX exit programs by repeating this process, or choose option Unattended Message Filters 19-7 3 Execute Message Filtering to run the REXX exit program you just created (see “Message Filtering Execution” on page 19-9). Note: The DEFAULT, RESET, EDIT, CANCEL, AND END primary commands work the same as those on the Describe Start of Message for Formatted Scripts. See step 7 on page 19-5 for details. Generate Message Filtering REXX Exit for Unformatted Scripts Type 2 on the Option line of the Message Filtering * Primary Options screen (Figure 19-1 on page 19-3) and press Enter to filter unformatted scripts. The Describe Start of Message for Unformatted Scripts screen appears (Figure 19-5). Describe Start of Message for Unformatted Scripts Use this screen to specify how the unformatted script messages you are looking for begin. Figure 19-5. Describe Start of Message for Unformatted Scripts Screen Hiperstation -------- Describe Start of Message for Unformatted Scripts-------- Command ===> Describe the first screen of the transaction or message. When completed, enter OK to proceed to the End of Message procedure Other commands: DEFAULT, RESET, EDIT, CANCEL and GO(generate the REXX exit) Name for Message/Transaction: Filter dataset . . SES.FILTERS Message or Transaction name . . Replace . . (Y,N) Description: Output: Edit more than two output lines? N (Y,N) AND/OR EQ/NE Offset Output Text Input: Edit more than two input lines? N (Y,N) AND/OR EQ/NE Offset Input Text 1. Enter the Message/Transaction Filter dataset member name. This field accepts a maximum of seven characters. 2. Specify whether to Replace an output script member of the same name. Enter Y to replace the member or N to keep the member. 3. Enter an optional Description that is written into the script. 4. Specify whether to edit more than two output lines. – Enter N to use only the two lines that appear on this screen. – Enter Y if you have more than two Boolean operations to perform. When you press Enter, a multi-line screen appears where you can enter more than two Boolean operations. 5. Enter your input and output: – Enter your AND/OR boolean operator. – Enter EQ to filter script text that is the same as the entered text or NE to filter script text that is not the same as the entered text. – Enter the start position (Offset) of the target text, with numbering beginning at 1. Use a blank space as a wildcard, indicating any offset. – Enter the Input Text and Output Text you want to match. This field accepts characters and hex (‘....’x). Leading and trailing blanks are removed unless used within quotes (‘). 19-8 Hiperstation for VTAM User Guide 6. Perform one of the following actions to continue: – Press Enter to verify the fields and remain on the current screen. – Type OK on the command line and press Enter to advance to the Describe End of Message for Unformatted Scripts screen (Figure 19-6). – Type GO and press Enter to create the REXX exit program and control script. The Start of Message screen appears. – Type Default and press Enter to advance to the override Defaults screen. – Type Edit and press Enter to invoke the ISPF editor for the specified REXX exit program. – Type Reset and press Enter to reset the ISPF variables. – Type Cancel and press Enter to exit this screen and return to the Message Filtering * Primary Options screen without saving your changes. – Press END to return to the previous screen. Describe End of Message for Unformatted Scripts Use this screen to specify how the formatted script messages you are looking for end. Figure 19-6. Describe End of Message for Unformatted Scripts Screen Hiperstation -------- Describe End of Message for Unformatted Scripts-------- Command ===> Describe the last screen of the transaction or message. When completed, enter GO to generate the REXX exit Other commands: DEFAULT, RESET, EDIT, CANCEL and END(Start of Message) Name for Message/Transaction: Filter dataset . . SES.FILTERS Message or Transaction name . . TEST1 Description: Replace . . Y Input: AND/OR Edit more than two input lines? Offset Input Text N (Y,N) EQ/NE Output: AND/OR Edit more than two output lines? Offset Output Text N (Y,N) EQ/NE The fields on this screen are the same as those on the Describe Start of Message for Unformatted Scripts screen. 1. See “Describe Start of Message for Unformatted Scripts” on page 19-7 for the steps to follow to fill in this screen. Then proceed to the next step. 2. Type GO on the command line and press Enter. Hiperstation runs the JCL to create the REXX exit program, and returns a message similar to the one below. 13:50:55 13:50:56 13:50:56 13:50:56 13:50:57 13:50:57 13:50:57 *** SPGMF035 WRITING CONTROL INFO: 'USER25.SES.FILTERS(#TEST1)' SPGMF036 CONTROL INFO WRITE COMPLETE SPGMF030 BEGINNING MESSAGE FILTER CREATION PROCESS SPGMF031 WRITING REXX EXIT: 'USER25.SES.FILTERS(TEST1)' SPGMF034 REXX EXIT WRITE COMPLETE SPGMF035 REXX EXIT CREATION FINISHED. RETURN CODE = 0 3. After these messages appear, press Enter. The previous screen appears and the message “REXX exit created” appears on the screen. Unattended Message Filters 19-9 4. Press End until you return to the primary message filtering screen. At this point, you can create additional REXX exit programs by repeating this process, or choose option 3 Execute Message Filtering to run the REXX exit program you just created (see “Message Filtering Execution” on page 19-9). Note: The DEFAULT, RESET, EDIT, CANCEL, and END primary commands work the same as those on the Describe Start of Message for Formatted Scripts. See step 7 on page 19-5 for details. Message Filtering Execution 1. Type 3 Execute Message Filtering on the Option line of the Message Filtering * Primary Options screen (Figure 19-1 on page 19-3) and press Enter to run the REXX exit program created from the information you entered in earlier screens. The Hiperstation Message Filtering * Execution screen appears (Figure 19-7). Figure 19-7. Message Filtering Execution Screen 1 ----------------- Hiperstation Message Filtering * Execution ---------------- Command ===> blank Continue Type the names of the script data sets below, then press Enter key Do not specify the script/member name Input Script Project . Group . . Type . . Data Set: . . USER25 . . GMF . . SCRIPTS Other Partitioned Data Set: Data Set Name . . . Output Script Data Set: Project . . . USER25 Group . . . . GMFOUT Type . . . . SCRIPTS Other Partitioned Data Set: Data Set Name . . . 2. Enter the name of the PDS containing the recorded scripts to be processed, and the name of the PDS to use for storing the output scripts created by message filtering. Do not enter script or member names on this screen, only file names. The input PDS and the output PDS can be the same file, but must already exist, and must be PDSs. If you enter an invalid PDS, an error message appears when you press Enter. Press PF1 for a more detailed explanation of the error, including which PDS is invalid. 3. Press Enter to continue. Figure 19-8 appears. 19-10 Hiperstation for VTAM User Guide Figure 19-8. Message Filtering Execution Screen 2 ----------------- Hiperstation Message Filtering * Execution ---------------- Option ===> F B Initiate Processing In Foreground. Initiate Processing In Background. CONTROL DEFAULT REPLACE COMMENT . . . . INCLUDE . . . . NO . . . . NO Report File ... * Input Script Data Set: 'USER25.GMF.SCRIPTS' Output Script Data Set: 'USER25.GMFOUT.SCRIPTS' Select the Scripts to be processed (* for entire Dataset) Message filters TYPE NAME PARM If you entered the same dataset name for both the input and output script datasets and did not change the REPLACE field to YES, an error message appears when you select either F (process the scripts in TSO foreground) or B (process the scripts in TSO background) and press Enter. The error message, OUTPUT SCRIPT EXISTS, can be cleared by: • Returning to the original execution screen (Figure 19-7 on page 19-9) and changing one of the dataset names to another dataset that exists and is a PDS, OR • Changing the REPLACE field to YES. The original input script dataset is then overwritten by the output script dataset. 1. Enter the Control Default information. This setting controls the first step in message filtering — either to include everything in the script or to exclude everything in the script. – INCLUDE retains all of the information from the original script. – EXCLUDE discards all of the information in the original script. See Message filters below if you want to retain or exclude only a portion of the information from the original script. 2. Enter the Control Replace information. Y replaces existing scripts with the same name in the target dataset. N keeps existing scripts with the same name. 3. Enter the Control Comments information. Y converts screens and inputs into comments within your scripts. N removes screens and inputs while leaving a single comment line. 4. Enter the Report File name. This dataset must be preallocated. Enter an * to use SYSOUT or terminal. 5. Enter the Input Script and Output Script dataset names from the input PDS to process. Enter * to process all members in the PDS. 6. Type INCLUDE or EXCLUDE in the Message Filters TYPE column. You will always use the INCLUDE Message filter with the EXCLUDE Default parameter. You will always use the EXCLUDE Message filter with the INCLUDE Default parameter. If you use INCLUDE for both, or EXCLUDE for both, they will cancel each other out, and filtering will either include everything in the original script or nothing. For example, if you want a new script to include only the information that matches the filter, specify EXCLUDE in the Default parameter (to exclude everything) and specify INCLUDE in Message filters to include the information set by the filter. The Unattended Message Filters 19-11 end result is that only the information from the INCLUDE filter is included in the new script — nothing from the original script is included. If you want a new script to include everything except what matches the filter, specify INCLUDE in the Default parameter (to include everything) and specify EXCLUDE in Message filters to exclude the information set by the filter. The end result is that everything from the original script is included except the information set in the EXCLUDE filter. 7. Type the REXX program name in the Message Filters NAME column. See “Example 2: Find Only Output Screens” on page 19-13 for a sample REXX program. 8. Fill in the PARM column with any constant data needed by your REXX program. 9. Type either an F (foreground) or B (background) on the option line and press Enter to generate the REXX program. – In foreground execution, the message filtering program EHSFLTR generates a summary report and messages that appear on your screen during execution. – In background execution, the Message Filtering Background Execution screen appears (Figure 19-9). Figure 19-9. Message Filtering Background Execution Screen ----------- Hiperstation Message Filtering * Background Execution ----------- Command ===> Go To generate and display the JCL End To Exit without submitting Specify jobcard information: // USER25 JOB (ACCT#) // // // // Sysout Class For Output Messages . . . * 10. Enter the JCL jobcard information to use for the background message filtering job on this screen. 11. Enter the Sysout Class for Output Messages. The message filtering program EHSFLTR generates a summary report and some messages. This field specifies the SYSOUT class to store these outputs. These outputs appear on the user’s screen during foreground execution. 12. Type GO on the option line to build and display the JCL for execution. Override Defaults To override defaults set for message filtering, specify option 4 Override Defaults on the Option line of the Message Filtering Primary Option screen. You can also access these defaults by typing DEFAULT on the command line of any message filtering screen and pressing Enter. The Override Defaults screen appears (Figure 19-10). 19-12 Hiperstation for VTAM User Guide Figure 19-10. Override Defaults Screen with Sample Settings Hiperstation ------------------------ Override Defaults------------------------ Command ===> Review and modify the defaults that determine which inputs and outputs will be included in your filtered message. Press PF3 to save and exit. Type RESET to restore default values. Press PF1 for an explanation of the settings. Filter Definition Default Start of message is described by outputs only PREVIOUS Start of message is described by inputs only CURRENT Start of message is described by outputs and inputs CURRENT End of message is described by outputs only CURRENT End of message is described by inputs only PREVIOUS End of message is described by inputs and outputs CURRENT Output text is Case Sensitive Y Output text attribute sensitive Y Input text is Case Sensitive N In REXX exit processing, there are three important values — HS_EXITTYPE, HS_MATCH, and HS_WHICH. Hiperstation assumes that a series starts with an input and a series finishes with an output. The default value of HS_WHICH is set to follow these rules.You can override this value by entering either CURRENT, PREVIOUS, or, NEXT. These values are dependent on the values for HS_EXITTYPE shown below. For: Enter: Start of message is described by outputs only PREVIOUS Start of message is described by inputs only CURRENT Start of message is described by outputs and inputs CURRENT End of message is described by outputs only CURRENT End of message is described by inputs only PREVIOUS End of message is described by outputs and inputs CURRENT In addition to HS_EXITTYPE, HS_MATCH, and HS_WHICH, you can also override defaults for: For: Enter: Output text is case sensitive Y or N (Default is Y) Output text is attribute sensitive Y or N (Default is Y) Input text is case sensitive Y or N (Default is N) HS_EXITTYPE is assigned based on how you describe start of message and the end of message. This value is fixed (you cannot change these values) as shown below: For: Enter: Start of message is described by outputs only OUTPUT Start of message is described by inputs only INPUT Start of message is described by outputs and inputs INPUT End of message is described by outputs only OUTPUT End of message is described by inputs only INPUT End of message is described by outputs and inputs OUTPUT Unattended Message Filters 19-13 HS_MATCH=1 for start of message and HS_MATCH=0 for end of message, based on how you described the start and end of messages. Manual Message Filtering - Coding Examples REXX has powerful features that save you time and effort. This section provides examples of REXX exit programs for use by the Message Filtering Utility. These examples demonstrate some REXX coding techniques that can help you write your own exits. For a complete description of the REXX language, see the IBM REXX manuals. Tips • REXX provides the TRACE statement to help you understand and debug your exit programs. To see information about your exits and the data they are manipulating, add a TRACE R statement to the beginning of your exit programs. • You cannot call any other routines from within your exit program. In addition, you cannot put any labels (name followed by a colon) in your exit program. The REXX INTERPRET statement runs your exit statement. For details, see the description of the INTERPRET statement in the REXX manuals. • Your exit program is not called as a subroutine. You do not need to issue a PARSE ARG statement in your exit program to access the variables provided by Hiperstation. • You cannot have a label or a PROCEDURE statement within your exit. • Continue lines within your exit by using the REXX continuation character, which is a comma (,). If you want to continue lines, the comma must be the last non-blank character on the line. You cannot put any comments (/* … */) after the comma if you want the comma interpreted as the continuation character. Note: This convention differs from normal REXX code. Example 1: Find All Screens with a Common Eyecatcher We want to find all screens in our scripts that have a certain “eyecatcher” (a set of characters that help you recognize a screen) on the top left corner. The example shown in Figure 19-11 looks for the eye catcher: EDIT. Figure 19-11. Look for a Common Eyecatcher /* Hiperstation 3270 filter: All screens with the eye catcher ’EDIT’ */ if hs_exittype = ’OUTPUT’ then do if SUBSTR(hs_output.1,1,4) = ’EDIT’ then hs_match = 1 end else hs_match = 0 Example 2: Find Only Output Screens The code in Figure 19-12 finds only output screens that contain PLAF on the first line. Then set Default to EXCLUDE and set the filter type to INCLUDE. To include all messages except output screens that contain PLAT on the first line, use the same filter, but set Default to INCLUDE and the filter type to EXCLUDE. See Figure 19-8 on page 19-10 and the description of the Default and Message Filters field definitions on page 19-10 for detailed information on how to use the Default parameter and the INCLUDE and EXCLUDE filters. 19-14 Hiperstation for VTAM User Guide Figure 19-12. Find Only Output Screens that Contain PLAF on the First Line IF (hs_exittype = 'OUTPUT') & (POS('PLAF',hs_output.1) > 0) THEN hs_match = 1 ELSE hs_match = 0 Example 3: Find All Screens from a List The code in Figure 19-13 finds all screens in our scripts that have an eye catcher on row 24 that matches a list of known words. Figure 19-13. Look for a Set of Screens /* Hiperstation 3270 filter: All screens in a list */ mine.0 = 5 mine.1 = ’ISD011’ mine.2 = ’ISD023’ mine.3 = ’ISD042’ mine.4 = ’ISD043’ mine.5 = ’ISD049’ if hs_exittype = ’OUTPUT’ then do hs_match = 0 do i = 1 to mine.0 while hs_match = 0 eyecatcher = mine.i if SUBSTR(hs_output.24,1,6) = eyecatcher then hs_match = 1 end end else hs_match = 0 Example 4: Convert a Script to Inputs Only Figure 19-14 converts a script from its standard form of inputs and outputs into a new script containing only inputs. An “inputs only” script is useful for stress testing if you are not concerned with data comparisons at playback time. Eliminating the outputs saves space in the script dataset. Figure 19-14. Convert to Inputs Only /* Hiperstation 3270 filter: Inputs only */ if hs_exittype = ’INPUT’ then hs_match = 1 else do hs_match = 0 hs_which = ’Previous’ end Example 5: Check for a Combination of Screen Items Figure 19-15 keeps a message that starts with a screen containing several specific eye catchers. This ensures that we do not get any screens that look similar but are not exactly right. Unattended Message Filters 19-15 Figure 19-15. Look at Several Areas on the Screen /* Hiperstation 3270 filter: Look at several areas on the screen */ if hs_exittype = ’OUTPUT’ then do row_count = hs_output.0 /* Number of rows on screen col_count = length(hs_output.1) /* Number of cols on screen upper_left = substr(hs_output.1,2,4) /* 2: 5 upper_right = substr(hs_output.1,col_count-3,3) /* 77:79 lower_left = substr(hs_output.row_count,2,6) /* 2: 7 lower_right = substr(hs_output.row_count,col_count-7,8) /* 73:80 if upper_left = ’EDIT’ &, upper_right = ’072’ &, lower_left = ’******’ &, lower_right = ’********’ then hs_match = 1 end else hs_match = 0 */ */ */ */ */ */ Message Filter REXX Variables This section describes the message filter REXX variables available for exit programs. Note: The variable names are not case sensitive. You can type them in lowercase or uppercase. HS_MATCH HS_MATACH defines whether screens (and inputs) are part of the messages that you want to filter. When your exit is called the first time for a particular script, HS_MATCH contains the value 0. Before your exit returns, you set HS_MATCH to a value of 1 if the current input or output is a match for your message. You set it to a value of 0 if the current input or output does not match your message. If your exit cannot tell if the current input or output matches your message, leave HS_MATCH set at its value on entry. On each subsequent entry to your REXX exit program, HS_MATCH contains the last value (0 or 1) set by you. The value of HS_MATCH, by itself, does not indicate inclusion or exclusion. This value indicates only whether an input or output matches a message that you want to process further. Deciding what to do with a matching message depends on whether your exit is named on an INCLUDE or EXCLUDE statement. Hiperstation tries to create a script that can be played back successfully. By default, Hiperstation starts a series with an input and finishes a series with an output. • If you start a series (HS_MATCH = 1) on an input, that input is the first in your series. • If you start a series (HS_MATCH = 1) on an output, the previous input (or output) is the first in your series. • If you finish a series (HS_MATCH = 0) on an output, that output is the last in your series. • If you finish a series (HS_MATCH = 0) on an input, the previous output (or input) is the last in your series. Hiperstation takes these default actions in an attempt to group an entire message, which is defined as an initial input, any number of intervening outputs and inputs, and then a final output. The value of HS_MATCH is the indication that a series of inputs and outputs is starting or finishing. The details of whether the current or previous input or output is part of that 19-16 Hiperstation for VTAM User Guide series is handled as described above. There might be some circumstances where you want a series of inputs and outputs to follow a different behavior than the default. You can change the default action for a series of inputs and outputs by setting the HS_WHICH variable in your exit, as described below. HS_WHICH HS_WHICH is set by your exit if you want to change the default behavior of Hiperstation when starting or finishing a series of inputs and outputs. HS_WHICH is the null string when passed to your exit. You can set HS_WHICH to a value of “Previous”, “Current”, or “Next” to change the default action that Hiperstation takes when you are starting or finishing a series of inputs and outputs. HS_WHICH = “Previous” makes the previous input or output a part of the series. HS_WHICH = “Current” makes the current input or output a part of the series. HS_WHICH = “Next” makes the next input or output a part of the series. • If you start a series (HS_MATCH = 1) on an input, HS_WHICH = "Current" is the default action. • If you start a series (HS_MATCH = 1) on an output, HS_WHICH = "Previous" is the default action. • If you finish a series (HS_MATCH = 0) on an output, HS_WHICH = "Current" is the default action. • If you finish a series (HS_MATCH = 0) on an input, HS_WHICH = "Previous" is the default action. You need to supply only the first character for the HS_WHICH value in either lowercase or uppercase (HS_WHICH = “C”, etc.). If you want Hiperstation to use its default action, leave the HS_WHICH variable set to the null string. HS_EXITTYPE Contains either the word INPUT or the word OUTPUT, in uppercase. If HS_EXITTYPE is INPUT, then your exit is being called because Hiperstation saw an <INPUT> group in the current script. If HS_EXITTYPE is OUTPUT, then your exit is being called because Hiperstation saw an <OUTPUT> group in the current script. HS_KEY Contains the name of the key the user pressed that caused the <INPUT>. HS_KEY contains one of the following values, in uppercase: ENTER, PF1, …, PF24, PA1, PA2, PA3, CLEAR. If HS_EXITTYPE is INPUT, then HS_KEY is for the current <INPUT>. If HS_EXITTYPE is OUTPUT, then HS_KEY is for the previous <INPUT>. If there has been no previous <INPUT> in the script, HS_KEY is set to the null string (a string length of 0, for example, HS_KEY = ‘’). If the script is unformatted, HS_KEY is the null string. HS_ROW Contains the row number where the terminal cursor is located. For the cursor location, this row number begins at 0. If HS_EXITTYPE is INPUT, then HS_ROW is for the current <INPUT>. If HS_EXITTYPE is OUTPUT, then HS_ROW is for the previous <INPUT>. If there has been no previous <INPUT> in the script, HS_ROW is set to the null string. Unattended Message Filters 19-17 If the script is unformatted, HS_ROW is the null string. HS_COLUMN Contains the column number where the terminal cursor is located. For the cursor location, this column number begins at 0. If HS_EXITTYPE is INPUT, then HS_COLUMN is for the current <INPUT>. If HS_EXITTYPE is OUTPUT, then HS_COLUMN is for the previous <INPUT>. If there has been no previous <INPUT> in the script, HS_COLUMN is set to the null string. If the script is unformatted, HS_COLUMN is the null string. HS_INPUT.0 Contains the number of the last input field on the screen that the user changed. This value can be from 0 to the total number of input fields on the screen (not necessarily the number of fields on the screen that the user changed). For example, if the screen contains 20 input fields and the user typed in two fields, numbered 5 and 10, then HS_INPUT.0 is set to 10. If HS_EXITTYPE is INPUT, then HS_INPUT.0 is for the current <INPUT>. If HS_EXITTYPE is OUTPUT, then HS_INPUT.0 is for the previous <INPUT>. If there has been no previous <INPUT> in the script, HS_INPUT.0 is set to 0. If the script is unformatted, HS_INPUT.0 is set to 0. HS_INPUT.n Contains the data the user typed in input field number “n” on the screen. The data the user typed can be a mixture of lowercase and uppercase. The part of the variable name after the dot can be from 1 to the number of the last input field on the screen. These variable names are HS_INPUT.1, HS_INPUT.2, and so forth. Each variable name represents a different input field on the screen. If the user did not change any data in the input field, the value is the null string. If the user cleared the input field with the Erase to End-of-Field (Erase EOF) key, the value is the null string. If HS_EXITTYPE is INPUT, then HS_INPUT.n is for the current <INPUT>. If HS_EXITTYPE is OUTPUT, then HS_INPUT.n is for the previous <INPUT>. If there has been no previous <INPUT> in the script, HS_INPUT.n is the null string. If the script is unformatted, HS_INPUT.n is the null string. HS_OUTPUT.0 Contains the number of rows on the screen. For example, with a Model 2 terminal that contains 24 rows and 80 columns, HS_OUTPUT.0 is 24. If HS_EXITTYPE is OUTPUT, then HS_OUTPUT.0 is for the current <OUTPUT>. If HS_EXITTYPE is INPUT, then HS_OUTPUT.0 is for the previous <OUTPUT>. If there has been no previous <OUTPUT> in the script, HS_OUTPUT.0 is set to 0. If the script is unformatted, HS_OUTPUT.0 is set to 0. 19-18 Hiperstation for VTAM User Guide HS_OUTPUT.n Contains the content of row number “n” on the screen. The data in this variable can be a mixture of lowercase, uppercase, special characters, blanks (‘40’x), nulls (‘00’x), and 3270 field attribute bytes. If a byte is ‘02’x, it represents a 3270 field attribute value of ‘00’x. It is shown as ‘02’x rather than ‘00’x so you can distinguish between a null character and a zero-valued attribute byte. All attribute bytes have their upper two bits set to 0 (bits 0 and 1). Therefore, a byte might be an attribute if its value is less than ‘40’x, but not ‘00’x. Some characters that are not attribute bytes can appear in the screen image with a value less than ‘40’x, such as the SUB character (‘3F’x). The part of the variable name after the dot can be from 1 to the value in the HS_OUTPUT.0 variable. These variable names are HS_OUTPUT.1, HS_OUTPUT.2, etc. Each variable name represents a different row on the screen. If HS_EXITTYPE is OUTPUT, then HS_OUTPUT.n is for the current <OUTPUT>. If HS_EXITTYPE is INPUT, then HS_OUTPUT.n is for the previous <OUTPUT>. If there has been no previous <OUTPUT> in the script, HS_OUTPUT.n is the null string. If the script is unformatted, HS_OUTPUT.n is the null string. HS_PARM Contains the value supplied on the INCLUDE or EXCLUDE statement with the PARM keyword. This value can contain any characters other than blanks (‘40’x), commas (‘6B’x), and parentheses (‘4D’x and ‘5D’x). HS_SCRIPT Contains the name, in uppercase, of the script currently being processed. HS_FORMAT Contains the value 1 if the script is formatted or the value 0 if the script is unformatted (contains the <HEX> tag). If HS_FORMAT is 1, then HS_INPUT.n and HS_OUTPUT.n contain relevant values and HS_INPUT_STREAM and HS_OUTPUT_STREAM are set to the null string. If HS_FORMAT is 0, then HS_INPUT.n and HS_OUTPUT.n do not contain relevant values but HS_INPUT_STREAM and HS_OUTPUT_STREAM do. HS_INPUT_SEQUENCE Contains a number that shows how many <INPUT> groups have been seen in the script so far. This value starts at 0. This value is not necessarily the same as the value on the <INPUT> tag. HS_OUTPUT_SEQUENCE Contains a number that shows how many <OUTPUT> groups have been seen in the script so far. This value starts at 0. This value is not necessarily the same as the value on the <OUTPUT> tag. Unattended Message Filters 19-19 HS_INPUT_STREAM Contains the contents of the unformatted data stream for the most recent <INPUT>. The value is the true binary contents of the <HEX> tag, not the human readable translation. For example, you might test its contents like this: if hs_input_stream = ’610101’x then ... If the script is formatted, HS_FORMAT is set to 1 and HS_INPUT_STREAM is the null string. HS_OUTPUT_STREAM Contains the contents of the unformatted data stream for the most recent <OUTPUT>. The value is the true binary contents of the <HEX> tag, not the human readable translation. For example, you might test its contents like this: if hs_output_stream = ’610101’x then ... If the script is formatted, HS_FORMAT is set to 1 and HS_OUTPUT_STREAM is the null string. Message Filter Statements Following is a complete list of the statements you can choose as the SYSIN input to the filter program. Syntax Rules The syntax rules for message filter statements are: • Enter statements beginning in any column. • If an asterisk (*) is the first non-blank character in a statement, that statement is a comment and is not interpreted. • You can continue statements, including comment statements, on subsequent lines by supplying a comma as the last non-blank character on the line. • Any place you can use a blank, you can also use a comma instead. • The statement name must be separated from the first keyword by one or more blanks. • You can use a keyword only once on a statement. • Exactly one equal sign (=) must separate a keyword from its value. You can put any number of blanks on either side of the equal sign. • If a keyword is permitted to have several values, supply those values surrounded by parentheses and separated by any number of blanks on either side of the parentheses. If this is the last keyword on the statement, you can omit the closing parenthesis. • Subsequent keywords on the same statement must be separated from the values of the previous keyword by one or more blanks. • The value for a keyword cannot contain any blanks, commas, or parentheses since these are used to delimit statement names, keywords, and values. • Single and double quotation marks do not have any special significance. If they are supplied as part of a keyword’s value, they are interpreted as part of the value. 19-20 Hiperstation for VTAM User Guide CONTROL Statement Use this statement to set options for the filter program. This statement is optional, and can be supplied only once. DEFAULT=INCLUDE|EXCLUDE Indicates whether to include or exclude source script screens and user inputs from the target script dataset if no exit program makes that decision. If you do not supply a DEFAULT keyword, DEFAULT=INCLUDE is used. All screens and user inputs are included in the target script dataset. REPLACE=NO|YES Indicates whether existing scripts are replaced in the target script dataset. If you do not supply a REPLACE keyword, REPLACE=NO is used. Existing scripts in the target script dataset are not replaced. COMMENT=NO|YES Indicates whether excluded lines in a script are changed into comments in the target script dataset. If you do not supply a COMMENT keyword, COMMENT=NO is used. Excluded lines are removed from the target script dataset rather than changed into comments. Enter COMMENT=YES if you want to see all of the script lines that Hiperstation has excluded because of your message filtering requests. The excluded lines all start with the Hiperstation script comment character, which is the asterisk (*). INDD=input_script_ddname The JCL ddname of the source script dataset. This is where your original scripts are located. If you do not supply an INDD keyword, INDD=INPUT is used. OUTDD=output_script_ddname The JCL ddname of the target script dataset. This is where the new scripts are written. If you do not supply an OUTDD keyword, OUTDD=OUTPUT is used. REXXDD=rexx_exit_ddname The JCL ddname of the dataset containing your REXX exit programs. If you do not supply a REXXDD keyword, REXXDD=REXX is used. REPORTDD=report_ddname The JCL ddname of the sequential file (DASD or SYSOUT) where Hiperstation will write the summary report. The summary report specifies which scripts were processed and the number of <INPUT> and <OUTPUT> tags excluded from each script. If you do not supply a REPORTDD keyword, Hiperstation uses REPORTDD=SYSPRINT. Unattended Message Filters 19-21 SELECT Statement Use this statement to select the scripts from the source script dataset to process. This statement is optional, and can be supplied only once. If you do not supply a SELECT statement, the entire source script dataset is used. SCRIPT=(member_1 member_n) Supplies the list of scripts to be processed. If you want to process a single script, enclosing it in parentheses is optional. If you want to process a list of scripts, you must enclose the list in parentheses. Separate each member with a blank. INCLUDE Statement Use this statement to choose screens and user inputs to include in the target script dataset. At least one INCLUDE or EXCLUDE statement must be supplied. You can supply this statement any number of times. TRAN=name Supplies the name of the REXX exit program, which you have written, that decides what screens and user inputs are copied to the target script dataset. Since “name” is a member in a dataset, it must conform to the naming requirements for dataset members. This keyword is required. You can process a list of messages on a single INCLUDE statement by enclosing the list of names in parentheses. Separate each name with a blank. PARM=exitparm Supplies a value that can be used by the exit program you have written. You can supply any value that does not contain blanks, commas, or parentheses. The PARM keyword is optional. You might use the PARM keyword if you have written a general purpose REXX exit program, and the exit needs special control information passed to it. If you want to supply a value that is made up of several logical parts, you can use a character such as a slash (/) to delimit the parts. For example: INCLUDE TRAN=X@FIND PARM=/dick/jane/bill/sally/ Your exit must do any “parsing” necessary to handle pieces of the PARM value. EXCLUDE Statement Use this statement to exclude screens and user inputs from the target script dataset. At least one EXCLUDE or INCLUDE statement must be supplied. You can supply this statement any number of times. 19-22 Hiperstation for VTAM User Guide TRAN=name Supplies the name of the REXX exit program, which you have written, that decides what screens and user inputs are excluded from the target script dataset. Since “name” is a member in a dataset, it must conform to the naming requirements for dataset members. This keyword is required. You can process a list of messages on a single EXCLUDE statement by enclosing the list of names in parentheses. Separate each name with a blank. PARM=exitparm Supplies a value that can be used by the exit program you have written. You can supply any value that does not contain blanks, commas, or parentheses. The PARM keyword is optional. Running the Message Filter Program The message filter program is run as a TSO command processor, normally in a batch job. The input to the program is a set of control statements and a set of DD statements. The control statements are pointed to by the SYSIN DD statement. If you wish, you can use a different ddname. To use a different ddname, supply that ddname as the first parameter to the EHSFLTR program, as follows: 000400 //IEFPROC … 001400 //MYCNTL EXEC PGM=IKJEFT01,PARM=’EHSFLTR MYCNTL’ DD * (<--- instead of SYSIN) The program IKJEFT01 is IBM’s TSO terminal monitor program for MVS. By submitting a batch job that runs IKJEFT01, you are running TSO as a batch job. The EHSFLTR program supplied by Compuware uses features that are available only under TSO. TSO is necessary to run the EHSFLTR program. The three DD statements in the JCL list the source script dataset, the target script dataset, and the REXX dataset containing your exit programs. By default, the DD names for these three datasets are INPUT, OUTPUT, and REXX, respectively. The message filter program does not support multiple dataset names per ddname. Each DD statement you supply must name a single dataset, not a concatenation of datasets. Message Filter Summary Report The message filter program produces a summary report that shows the names of all of the processed scripts, how many <INPUT> and <OUTPUT> groups were in each script, and how many of those groups were excluded from the target script dataset. The last column in the report indicates whether Hiperstation detected any REXX code within the script (Y = Yes, blank = No). If your script contains REXX code, that REXX code can have dependencies on the INPUT and OUTPUT groups within the script. Excluding lines from such a script with the message filter function can produce an invalid script. You must carefully review each script in the target script dataset for validity if that script contains REXX code. Unattended Message Filters 19-23 Figure 19-16. Message Filter Summary Report Hiperstation Message Filtering Script Name -------A CICS01 CICS02 FOREIGN HEX01 TEST01 TSO01 -------Total ----- Inputs ----Excluded Total -------- -------0 10 0 14 6 15 3 7 0 9 2 11 0 10 -------- -------11 76 ----- Outputs ---Excluded Total -------- -------11 11 18 18 13 15 9 9 0 9 3 12 11 11 -------- -------65 85 REXX in script? -------- Y Y Y -------- Sample Message Filtering Job The message filter job shown in Figure 19-17 is designed to eliminate all screens from a script except those that are part of the PAYROLL message. While in the PAYROLL message, all SALARY screens must be excluded because they contain confidential data. You submit a batch job that runs the EHSFLTR filter program using JCL like that shown in Figure 19-17. The job statements are described below. The EHSFLTR program is a REXX EXEC contained in the SQQFSAMP sample dataset. JCL to run the message filtering job is in the SAMPLIB member EHSFLTRJ. Figure 19-17. Sample JCL for Message Filter Program File Edit Confirm Menu Utilities Compilers Test Help ------------------------------------------------------------------------------- EDIT USRJXG0.H.CNTL(EHSFLTR) - 01.26 Columns 00001 00072 Command ===> Scroll ===> CSR ****** ***************************** Top of Data ****************************** 000100 //USRJXG0A JOB (’OVPBAS5.4DEV’,66),’GALT, JOHN’,NOTIFY=USRJXG0, 000200 // MSGCLASS=X,CLASS=L 000300 //* ------------------------------------------------------------------- 000400 //IEFPROC EXEC PGM=IKJEFT01,PARM=’EHSFLTR’ 000500 //SYSPROC DD DISP=SHR,DSN=COMPWARE.QVP700.SQVPSAMP <--- HS SAMPLE LIBRARY 000600 //* 000700 //INPUT DD DISP=SHR,DSN=USRJXG0.HS.INPUT <--- INPUT SCRIPT PDS 000800 //OUTPUT DD DISP=SHR,DSN=USRJXG0.HS.OUTPUT <--- OUTPUT SCRIPT PDS 000900 //REXX DD DISP=SHR,DSN=USRJXG0.HS.EXEC <--- USER REXX LIBRARY 001000 //* 001100 //SYSTSIN DD DUMMY 001200 //SYSTSPRT DD SYSOUT=* <--- MESSAGES 001300 //SYSPRINT DD SYSOUT=* <--- HS SUMMARY REPORT 001400 //SYSIN DD * <--- HS CONTROL PARMS 001500 CONTROL DEFAULT=EXCLUDE 001600 SELECT SCRIPT=TEST001 001700 INCLUDE TRAN=PAYROLL 001800 EXCLUDE TRAN=SALARY 001900 /* ****** **************************** Bottom of Data **************************** • The INPUT DD statement on line 700 lists the source script dataset. • The OUTPUT DD statement on line 800 lists the target script dataset that contains the filtering results. • The REXX DD statement on line 900 lists the library that contains the REXX exit programs. • The CONTROL statement on line 1500 excludes screens from the target script dataset unless included by subsequent INCLUDE exits. 19-24 Hiperstation for VTAM User Guide • The SELECT statement on line 1600 lists the scripts you want to process from the source script dataset. Here, we are processing a single script. You can also process a list of several scripts or the entire dataset. • The INCLUDE statement on line 1700 lists a message to be included in the target script dataset (kept). TRAN=PAYROLL names the REXX exit program that performs the filtering. • The EXCLUDE statement on line 1800 is similar to the INCLUDE statement. The difference is that screens matching the filtering criteria are excluded from the target script dataset (discarded). The values supplied on the TRAN keyword of the INCLUDE and EXCLUDE statements are the names of REXX exit programs that you write modeled on templates supplied by Compuware. This example shows two exits, PAYROLL and SALARY, that identify the first and last screens in the PAYROLL and SALARY messages. Multiple INCLUDE and EXCLUDE statements can appear, indicating each of the messages to be included or excluded. Because you control what the exits do, you can write a single exit that makes filtering decisions for several messages, not just one. The PAYROLL exit might look like that shown in Figure 19-18. Figure 19-18. PAYROLL Exit Program /* Hiperstation 3270 filter: All PAYROLL messages */ if hs_exittype = ’INPUT’ then do if hs_key = ’ENTER’ & TRANSLATE(SUBSTR(hs_input.1,1,4)) = ’PAYR’ then hs_match = 1 end else do if SUBSTR(hs_output.2,12,13) = ’SESSION ENDED’ then hs_match = 0 end This PAYROLL exit is called for each <INPUT> and <OUTPUT> group in a script. You have determined that the PAYROLL message starts whenever the user types the PAYR message code and presses Enter. By setting HS_MATCH = 1, this exit signals Hiperstation that this is the start of the PAYROLL message. Hiperstation begins including screens in the target script dataset. The next lines of this exit look at the second row of each screen for a message created by the PAYROLL message when it is finished. When this message is seen on a screen, HS_MATCH = 0 is the signal to Hiperstation that the PAYROLL message finishes. Hiperstation begins excluding screens from the target script dataset. • TRANSLATE is a REXX function that converts a character string to all uppercase letters. You can use TRANSLATE when you are looking for words on a screen and you do not care if the letters are uppercase or lowercase. • SUBSTR is a REXX function that examines a portion of a longer character string. It is useful for looking at only a small part of the screen. The SALARY exit shown in Figure 19-19 is also called for each <INPUT> and <OUTPUT> group in a script. Unattended Message Filters 19-25 Figure 19-19. SALARY Exit Program /* Hiperstation 3270 filter: All SALARY screens */ if hs_exittype = ’OUTPUT’ then do if TRANSLATE(SUBSTR(hs_output.1,1,3)) = ’SAL’ then hs_match = 1 else hs_match = 0 end You have determined that all of the SALARY screens in the PAYROLL message have an eyecatcher of SAL at row 1, column 1. By setting HS_MATCH = 1, this exit specifies that this is the first of the set of SALARY screens, and to exclude the screens. If the eyecatcher does not appear on the current screen, the SALARY screens are finished, which you specify by setting HS_MATCH = 0. The result of these two exits and the SYSIN parameters is to create scripts in the target script dataset that contain only user input and screens for the PAYROLL message. Any screens within the PAYROLL message that pertain to SALARY information are excluded. 19-26 Hiperstation for VTAM User Guide 20-1 Chapter 20. 3270 Reporting Chap 20 This chapter describes Hiperstation for VTAM reporting options: • Transaction journal • Reports — Automated documentation and summary reports • Logs — Comparison, exception, and REXX logs These utilities provide a method of tracking test scripts and testing data. “Print” datasets in Hiperstation for VTAM are the comparison log, exception log, transaction journal, REXX log, summary report, AutoDoc, and trace. Hiperstation can write print data as members of a Partitioned Data Set Extended (PDSE) or as a sequential dataset. If you want your print datasets to be members of a partitioned dataset, you must use PDSEs rather than PDSs. Using members of a PDSE allows you to group related output within a single dataset, simplifying the management of printed output. If you supply the same dataset and member prefix across several GROUP statements, or across several keywords within one GROUP statement, what is contained in the overlapping members is undefined. This situation is not flagged as an error. Choose dataset and member names so that such an overlap does not occur. Sequential datasets are deleted and reallocated if REUSE=NO is set in the Hiperstation defaults table. Sequential datasets are overwritten if REUSE=YES is set. PDSEs used for print files are never deleted by Hiperstation, regardless of the REUSE value contained in the Hiperstation for VTAM defaults table. Hiperstation creates a PDSE if it does not already exist. Members created by Hiperstation that already exist within a dataset are overwritten and no warning message is issued. If you want an existing PDSE to contain only members from the current execution of Hiperstation, you must empty the PDSE before running Hiperstation. Transaction Journal The transaction journal produces an audit trail of all transactions entered into the system and the responses received while the journal is active. The transaction journal produces two screen images per transaction. The first screen image shows the output from the previous interaction. The second image has the user input mapped into the output screen image. The JOURNAL command starts and stops the transaction journal. OFF stops the current transaction journal. The Transaction Journal screen allows you to start or stop the transaction journal. 20-2 Hiperstation for VTAM User Guide The transaction journal records all inputs and outputs of a user’s session. The journal shows the inputs and outputs in screen image format for easy reference. It also shows the user’s think time, the system’s response time, and the session’s elapsed time. The journal is recorded on DASD for online review or subsequent printing. Figure 20-3 on page 20-3 shows a sample transaction journal report. Start the Transaction Journal To start the transaction journal, connect to the domain destination, type J on the command line, and press Enter. The Transaction Journal Setup screen appears (Figure 201). Change the transaction journal dataset name by typing over the name in the DATA SET NAME field. Standard TSO prefixing is performed. Figure 20-1. Transaction Journal Setup ----------------- Hiperstation - TRANSACTION JOURNAL SETUP ----------------- OPTION ===> JOURNAL OUTPUT DATA SET NAME (may be sequential or PDSE): DATA SET NAME ===> HIPERJRN.LIST STOP Journaling ===> N Press ENTER to begin journaling, (Y - Yes, N - No) END to cancel setup. Stop the Transaction Journal The transaction journal is automatically stopped at the end of each domain traveler session, that is, every time you are returned to the Domain Traveler Setup screen. Move the cursor to the STOP Journaling field, type a Y, and press Enter to stop journaling. You can also stop the transaction journal at any time by entering the J OFF or JOURNAL OFF primary command on the Domain Traveler screen. Figure 20-2. Stop the Transaction Journal ----------------- Hiperstation - TRANSACTION JOURNAL SETUP ----------------- OPTION ===> JOURNAL OUTPUT DATA SET NAME (may be sequential or PDSE): DATA SET NAME ===> HIPERJRN.LIST STOP Journaling ===> Y Press ENTER to begin journaling, (Y - Yes, N - No) END to cancel setup. Transaction Journal Report The transaction journal report shown in Figure 20-3 provides you with a record of screen inputs and outputs. 3270 Reporting 20-3 Figure 20-3. Transaction Journal Sample Report -- COMPUWARE CORPORATION -- TRANSACTION JOURNAL TERMINAL ID: EHPR0004 TPF NAME: CICS41A TIME: 09:19 :35 DATE: 07/06/27 OUTPUT SCREEN IMAGE RESPONSE TIME: 00.00.008 ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 CEBR TS QUEUE CEBRH104 RECORD 1 OF 0 COL 1 OF 0 ENTER COMMAND ===> These commands are available to you (abbreviations in UPPER CASE): Find /string/ - Keyword optional. Final delimiter optional if string has no blanks. Any other delimiter is OK. Line line-number Column column-number Top Bottom TERMinal terminal-id - Browse temp. storage queue for another terminal. Queue temp-stg-queue - Browse a named temp. storage queue (name may be in hex - e.g., X’C134’) Put transient-data-queue - Copy current queue into a transient data queue. Get transient-data-queue - Fetch a transient data queue for browsing. PURGE - Destroy the current queue. ************************** TOP OF QUEUE ******************************* ************************* BOTTOM OF QUEUE ***************************** TEMPORARY STORAGE QUEUE CEBRH104 IS EMPTY PF1 : HELP PF2 : SWITCH HEX/CHAR PF3 : TERMINATE BROWSE PF4 : VIEW TOP PF5 : VIEW BOTTOM PF6 : REPEAT LAST FIND PF7 : SCROLL BACK HALF PF8 : SCROLL FORWARD HALF PF9 : UNDEFINED PF10: SCROLL BACK FULL PF11: SCROLL FORWARD FULL PF12: UNDEFINED ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 USER INPUT AND PREVIOUS OUTPUT MERGED THINK TIME: 00.03.216 ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 CEBR TS QUEUE CEBRH104 RECORD 1 OF 0 COL 1 OF 0 ENTER COMMAND ===> These commands are available to you (abbreviations in UPPER CASE): Find /string/ - Keyword optional. Final delimiter optional if string has no blanks. Any other delimiter is OK. Line line-number Column column-number Top Bottom TERMinal terminal-id - Browse temp. storage queue for another terminal. Queue temp-stg-queue - Browse a named temp. storage queue (name may be in hex - e.g., X’C134’) Put transient-data-queue - Copy current queue into a transient data queue. Get transient-data-queue - Fetch a transient data queue for browsing. PURGE - Destroy the current queue. ************************** TOP OF QUEUE ******************************* ************************* BOTTOM OF QUEUE ***************************** TEMPORARY STORAGE QUEUE CEBRH104 IS EMPTY PF1 : HELP PF2 : SWITCH HEX/CHAR PF3 : TERMINATE BROWSE PF4 : VIEW TOP PF5 : VIEW BOTTOM PF6 : REPEAT LAST FIND PF7 : SCROLL BACK HALF PF8 : SCROLL FORWARD HALF PF9 : UNDEFINED PF10: SCROLL BACK FULL PF11: SCROLL FORWARD FULL PF12: UNDEFINED ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 INPUT FIELDS DEFINED: 13 INPUT FIELDS MODIFIED: 0 TEXT FIELDS DEFINED: 43 TEXT FIELDS MODIFIED: 0 ATTENTION IDENTIFIER: PF3 ELAPSED TIME : 00.31.653 Transaction Journal Report Field Definitions This section defines the highlighted fields at the bottom of Figure 20-3 Input/Text Fields — Number of unprotected and protected fields as defined by 3270 SF and SFE orders, and those where the modified data tag bit is set to one. Attention Identifier — The key that the user pressed to transmit the input. Elapsed Time — Elapsed clock time since session was started. Note: The journal does not reflect a script name until Hiperstation encounters an input. 20-4 Hiperstation for VTAM User Guide Reports Automated Documentation Automated Documentation greatly assists in the production of documentation for online systems. AutoDoc can automatically create document skeletons or boilerplates consisting of document format characters, a running title, screen images, user input data, and short titles leading to the screen’s description. It can be: • Printed on an impact or laser printer • Used as input to DCF or SCRIPT • Transferred to a PC and used as input to a word processing program such as Microsoft Word or WordPerfect. When AutoDoc begins, it records all of the screen images and places them, one per page, in the designated output dataset. The AutoDoc output can be created while a script is running or manually while you are interacting with the domain destination. Figure 20-5 on page 20-6 shows a sample AutoDoc report. Start AutoDoc AutoDoc is controlled by the DOC command, which can be issued from the Domain Traveler screen. OFF closes the current AutoDoc dataset. Auto Documentation Setup Screen 1. To set up Auto Documentation, enter the DOC command after connecting to the domain destination. The Auto Documentation Setup screen (Figure 20-4) appears. This screen lets you start, stop, and set options for AutoDoc, or terminate any documentation in progress. Figure 20-4. Auto Documentation Setup Screen ---------------------- Hiperstation * Auto Documentation Setup ---------------- COMMAND ===> FILE FORMAT ===> 3 1 Printer Control Characters 2 DCF (Script) Tags 3 None RECORD ===> 2 1 Output screens 2 Input data with output 3 Both Screens "boxed" ===> Y (Y-yes, N-no) Running Title ===> AUTO DOCUMENTATION OUTPUT DATA SET NAME (may be sequential or PDSE): DATA SET NAME ===> HIPERDOC.LIST STOP Documentation ===> N (Y - Yes, N - No) Press ENTER to begin logging, END to cancel setup. 2. Specify a FILE FORMAT. This determines how the AutoDoc output is generated. Valid entries include: 3270 Reporting 20-5 – 1 Printer Control Characters: AutoDoc output is generated for direct printing. Carriage control characters are generated to ensure proper page ejects. The format is also compatible with Waterloo SCRIPT. – 2 DCF (Script) Tags: AutoDoc output is generated for use by IBM’s Document Composition Facility (DCF), or SCRIPT. – 3 None: No data, other than the screen images, is placed in the output dataset. This format is most useful as input to a PC word processing program. 3. Select the information to be recorded. Valid entries include: – 1 Output screens: Only output from the domain destination is recorded. – 2 Input data with output: Only the domain destination output screen image with the data input from the user is recorded. – 3 Both: Both output and output/input merged screens are recorded, one per page. 4. Select whether you want boxes around the screens. Enter Y or N. – Y (Yes): A ruled box is placed around the screen image – N (No): The screen image is output with no surrounding box. 5. Enter the Running Title that will appear at the head of each page. The title can contain up to 57 characters. 6. Enter the AUTO DOCUMENTATION OUTPUT DATA SET NAME. This is the sequential dataset or PDSE and member that will contain the output. – If you specify a dataset that already exists, it must be the correct record format for the selected FILE FORMAT option. If you select option 1, the dataset must be VBA. Otherwise, it must be VB. – If you specify a dataset name that does not already exist, Hiperstation allocates it as a sequential dataset with either a VB or VBA record format, depending on the FILE FORMAT selection. 7. Specify whether to STOP Documentation. Enter Y or N. – Y (Yes): Terminates any documentation in process. – N (No): Begins the documentation process when you press Enter. AutoDoc Report The AutoDoc report is shown in Figure 20-5. 20-6 Hiperstation for VTAM User Guide Figure 20-5. Sample AutoDoc Report THIS IS THE USER DEFINED TITLE ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 CEBR TS QUEUE CEBRH104 RECORD 1 OF 0 COL 1 OF 0 ENTER COMMAND ===> These commands are available to you (abbreviations in UPPER CASE): Find /string/ - Keyword optional. Final delimiter optional if string has no blanks. Any other delimiter is OK. Line line-number Column column-number Top Bottom TERMinal terminal-id - Browse temp. storage queue for another terminal. Queue temp-stg-queue - Browse a named temp. storage queue (name may be in hex - e.g., X’C134’) Put transient-data-queue - Copy current queue into a transient data queue. Get transient-data-queue - Fetch a transient data queue for browsing. PURGE - Destroy the current queue. ************************** TOP OF QUEUE ******************************* ************************* BOTTOM OF QUEUE ***************************** TEMPORARY STORAGE QUEUE CEBRH104 IS EMPTY PF1 : HELP PF2 : SWITCH HEX/CHAR PF3 : TERMINATE BROWSE PF4 : VIEW TOP PF5 : VIEW BOTTOM PF6 : REPEAT LAST FIND PF7 : SCROLL BACK HALF PF8 : SCROLL FORWARD HALF PF9 : UNDEFINED PF10: SCROLL BACK FULL PF11: SCROLL FORWARD FULL PF12: UNDEFINED ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 DESCRIPTION OF OPTIONS AND FUNCTIONS: 3270 Summary Report The 3270 summary report, such as the example in Figure 20-6, displays performance and mismatch information from running 3270 scripts using unattended playback. This report summarizes the activities by script and virtual terminal within a group. Figure 20-6. 3270 Summary Report For information on the parameters that activate the summary report, refer to the SUMMARY keyword under “Unattended Mode Statements” on page 7-3. An explanation of the report fields are given below. 3270 Reporting ******************************** Top of Data ******************************************************************************************** COMPUWARE CORPORATION HIPERSTATION - SUMMARY REPORT TERMINAL ID: ** NA ** TPF NAME: CICS41A TIME: 10:32:24 DATE: 07/25/07 PAGE: 0001 COMPARISON CHECKS SCRIPT PORT TERM-ID TRANS. MIN RESP AVG RESP MAX RESP AVG THINK ELAPSED TRANS/SEC SCREENS CHARS MASKED ----------------------------------------------------------------------------------------------------------------------------------------- CICSON 5 CW010009 3 00:00.127 00:00.487 00:01.108 00:01.000 00:00:04.727 0 5 1,623 8000004 CICSON 4 CW010008 4 00:00.058 00:00.395 00:01.029 00:00.750 00:00:05.938 0 1 5 1000005 CICSON 3 CW010007 4 00:00.083 00:00.400 00:00.975 00:00.751 00:00:06.156 0 1 5 1000006 CICSON 2 CW010006 3 00:00.132 00:00.485 00:01.102 00:01.000 00:00:05.354 0 5 1,623 8000005 CICSON 1 CW010005 4 00:00.073 00:00.399 00:01.007 00:00.750 00:00:10.452 0 1 5 1000010 *SCR-TOT 18 00:00.058 00:00.427 00:01.108 00:00.834 00:00:32.627 0 13 3,261 19000032 CICSCEBR 4 CW010008 28 00:00.000 00:00.079 00:01.035 00:01.024 00:00:34.823 0 24 185 0000034 CICSCEBR 1 CW010005 28 00:00.000 00:00.079 00:01.055 00:01.019 00:00:34.403 0 24 185 0000034 CICSCEBR 3 CW010007 28 00:00.000 00:00.078 00:01.078 00:01.024 00:00:34.426 0 24 185 0000034 CICSCEBR 5 CW010009 28 00:00.000 00:00.039 00:00.202 00:01.026 00:00:32.046 0 27 25,676 160000032 CICSCEBR 2 CW010006 28 00:00.000 00:00.036 00:00.191 00:01.032 00:00:32.060 0 27 25,676 160000032 *SCR-TOT 140 00:00.000 00:00.062 00:01.078 00:01.025 00:02:47.758 0 126 51,907 320000247 CICSCEMT 4 CW010008 24 00:00.000 00:00.010 00:00.085 00:01.009 00:00:26.044 0 22 132 0000026 CICSCEMT 3 CW010007 24 00:00.000 00:00.011 00:00.086 00:01.013 00:00:26.223 0 22 132 0000026 CICSCEMT 1 CW010005 24 00:00.000 00:00.006 00:00.059 00:01.007 00:00:26.510 0 22 132 0000026 CICSCEMT 2 CW010006 24 00:00.000 00:00.001 00:00.010 00:01.033 00:00:27.064 0 23 24,631 184000027 CICSCEMT 5 CW010009 24 00:00.000 00:00.001 00:00.009 00:01.027 00:00:27.008 0 23 24,631 184000027 *SCR-TOT 120 00:00.000 00:00.006 00:00.086 00:01.018 00:02:12.849 0 112 49,658 368000212 CICSCEBR 3 CW010007 28 00:00.000 00:00.005 00:00.023 00:01.008 00:00:29.442 0 24 188 0000029 CICSCEBR 1 CW010005 28 00:00.000 00:00.007 00:00.079 00:01.008 00:00:29.402 0 24 188 0000029 CICSCEBR 4 CW010008 28 00:00.000 00:00.005 00:00.017 00:01.008 00:00:29.445 0 24 188 0000029 CICSCEBR 2 CW010006 28 00:00.000 00:00.002 00:00.014 00:01.009 00:00:29.041 0 26 24,889 208000029 CICSCEBR 5 CW010009 28 00:00.000 00:00.002 00:00.029 00:01.002 00:00:29.115 0 26 24,889 208000029 *SCR-TOT 140 00:00.000 00:00.004 00:00.079 00:01.007 00:02:26.445 0 124 50,342 416000226 CICSOFF 3 CW010007 1 00:00.021 00:00.021 00:00.021 00:01.000 00:00:01.165 0 0 0 0000001 CICSOFF 4 CW010008 1 00:00.000 00:00.000 00:00.000 00:01.001 00:00:01.073 0 0 0 0000001 CICSOFF 1 CW010005 1 00:00.000 00:00.000 00:00.000 00:01.002 00:00:01.046 0 0 0 0000001 CICSOFF 5 CW010009 1 00:00.048 00:00.048 00:00.048 00:01.018 00:00:01.175 0 0 0 0000001 CICSOFF 2 CW010006 1 00:00.023 00:00.023 00:00.023 00:01.015 00:00:01.182 0 0 0 0000001 *SCR-TOT 5 00:00.000 00:00.018 00:00.048 00:01.007 00:00:05.641 0 0 0 0000005 *GRP-TOT 423 00:00.000 00:00.042 00:01.108 00:01.009 00:08:05.320 0 375 155,168 1,123000805 ******************************* Bottom of Data ***************************************************************************************** 20-7 20-8 Hiperstation for VTAM User Guide Note: On the header line of Figure 20-6, the Terminal ID is listed as ** NA ** because multiple terminals are listed in the report. The terminal IDs are listed individually in the TERM-ID column. General Information Script The script being run. Two special script names, *SCR-TOT and *GRP-TOT, denote script and group totals, respectively. Port Each terminal is assigned a port ID. A port ID is associated with the script. Term-ID The terminal ID associated with the terminal or port. Performance Information Trans Transaction count - defined as the number of inputs (Enter, PF, PA, or Clear key) processed by the terminal for the script. Min Resp Minimum response time for this transaction and terminal within the script. Avg Resp Average response time is calculated from the sum of all terminal response time, divided by the total number of terminal transactions. Max Resp Maximum response time for this transaction and terminal within the script. Avg Think Average think time is calculated from the sum of all terminal think times, divided by the terminal’s total number of transactions. Elapsed Elapsed time is calculated based on the total amount of time it took the terminal nd the application to process the total number of transactions. For *SCR-TOT, this is the maximum elapsed time of the individual scripts. For *GRPTOT, this is the sum of the *SCR-TOT elapsed times. Tran/Sec Transaction per second rate is calculated by dividing the number of terminal transactions by the total elapsed time for the terminal. Note: The *SCR-TOT appears only for reports generated from multiple terminal simulation. The ports within a script group are listed in the order in which Hiperstation processed the port. This gives you additional information about script processing. Comparison Check Information Screens Number of screens with at least one comparison check. Chars Total number of comparison check bytes. 3270 Reporting 20-9 Masked The number of masked comparison check bytes. Note: The comparison check information fields do not appear in the report shown in Figure 20-6 on page 20-7. Logs The comparison log can be activated during script playback to show, in hardcopy format, each of the received and expected screens. The exception log can be activated during playback to show, in hardcopy format, only those received and expected screens that had mismatches. The received screen is the screen that came from the domain destination. The expected screen is the screen recorded in the script. Note: The comparison and exception logs are mutually exclusive. Only one can be active at a time. Any comparison differences are shown on the log. The log is written to a DASD dataset. It can be reviewed online using ISPF browse, or the log can be printed using ISPF option 3.6 (initiate hardcopy output) or equivalent. Comparison Log Start the Comparison Log The comparison log is activated through the Domain Traveler screen. Figure 20-7. Domain Traveler Screen - Bring Up the Comparison Log Setup Screen ZOOM:PF23 ---------------------- Hiperstation ------------------- LINE 1 OF 24 COMMAND ===> CL SCROLL ===> HALF Record OFF Play OFF Journal OFF Compare Log OFF autoDoc OFF 1. Type CL on the command line and press Enter to display the Comparison Log Setup screen (Figure 20-8). 2. On the Setup screen, enter the name of the dataset to which you want to write the comparison log output. This dataset can be either a sequential dataset or a PDSE. From this screen, you can also stop any comparison in progress. The default dataset name for the comparison log is HIPERLOG.LIST. 20-10 Hiperstation for VTAM User Guide Figure 20-8. Activate the Comparison Log ------------------------ Hiperstation - Comparison Log Setup ------------------ OPTION ===> COMPARISON LOG OUTPUT DATA SET NAME (may be sequential or PDSE): DATA SET NAME ===> HIPERLOG.LIST STOP Compare Log ===> N Press ENTER to begin logging, (Y - Yes, N - No) END to cancel setup. 3. To activate the comparison log, press Enter. You will return to the Domain Traveler entry screen. The status line shows that the comparison log is active and the total number of pages written. Stop the Comparison Log The comparison log is automatically stopped at the end of each Domain Traveler session, that is, each time you return to the Domain Traveler Setup screen. From the Setup screen, move the cursor to the STOP Compare Log field, type Y, and press Enter to stop the log. You can also stop the comparison log at any time by typing CL OFF on the command line on the Domain Traveler screen and pressing Enter. Comparison Log Report The comparison log report shown in Figure 20-9 provides you with a view of the actual screen that was received and the expected screen that was recorded. Both screens appear even if no comparison mismatches are present. 3270 Reporting 20-11 Figure 20-9. Comparison Log Report -- COMPUWARE CORPORATION -- TRANSACTION COMPARISON LOG TERMINAL ID: EHPR0001 TPF NAME: CICS41A TIME: 12:26:25 DATE: 07/06/27 ACTUAL RECEIVED SCREEN #:0000003 SCRIPT: CICSCEBR ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 CEBR TS QUEUE CEBRH101 RECORD 1 OF 0 COL 1 OF 0 ENTER COMMAND ===> These commands are available to you (abbreviations in UPPER CASE): Find /string/ - Keyword optional. Final delimiter optional if string has no blanks. Any other delimiter is OK. Line line-number Column column-number Top Bottom TERMinal terminal-id - Browse temp. storage queue for another terminal. Queue temp-stg-queue - Browse a named temp. storage queue (name may be in hex - e.g., X’C134’) Put transient-data-queue - Copy current queue into a transient data queue. Get transient-data-queue - Fetch a transient data queue for browsing. PURGE - Destroy the current queue. ************************** TOP OF QUEUE ******************************* ************************* BOTTOM OF QUEUE ***************************** TEMPORARY STORAGE QUEUE CEBRH101 IS EMPTY PF1 : HELP PF2 : SWITCH HEX/CHAR PF3 : TERMINATE BROWSE PF4 : VIEW TOP PF5 : VIEW BOTTOM PF6 : REPEAT LAST FIND PF7 : SCROLL BACK HALF PF8 : SCROLL FORWARD HALF PF9 : UNDEFINED PF10: SCROLL BACK FULL PF11: SCROLL FORWARD FULL PF12: UNDEFINED ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 EXPECTED SCREEN #:0000003 SCRIPT: CICSCEBR ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 CEBR TS QUEUE CEBRH103 RECORD 1 OF 0 COL 1 OF 0 ENTER COMMAND ===> These commands are available to you (abbreviations in UPPER CASE): Find /string/ - Keyword optional. Final delimiter optional if string has no blanks. Any other delimiter is OK. Line line-number Column column-number Top Bottom TERMinal terminal-id - Browse temp. storage queue for another terminal. Queue temp-stg-queue - Browse a named temp. storage queue (name may be in hex - e.g., X’C134’) Put transient-data-queue - Copy current queue into a transient data queue. Get transient-data-queue - Fetch a transient data queue for browsing. PURGE - Destroy the current queue. ************************** TOP OF QUEUE ******************************* ************************* BOTTOM OF QUEUE ***************************** TEMPORARY STORAGE QUEUE CEBRH103 IS EMPTY PF1 : HELP PF2 : SWITCH HEX/CHAR PF3 : TERMINATE BROWSE PF4 : VIEW TOP PF5 : VIEW BOTTOM PF6 : REPEAT LAST FIND PF7 : SCROLL BACK HALF PF8 : SCROLL FORWARD HALF PF9 : UNDEFINED PF10: SCROLL BACK FULL PF11: SCROLL FORWARD FULL PF12: UNDEFINED ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 ATTENTION IDENTIFIER: PF1 The Attention Identifier is the key that the user pressed to which the domain destination responded. Note: Screen lines with mismatches are flagged with an asterisk (*) on the right side of the screen box. Asterisks within the body of the screen denote differences in attribute bytes. Exception Log Start the Exception Log The exception log is activated through the Domain Traveler screen and only lists miscompares. 20-12 Hiperstation for VTAM User Guide Figure 20-10. Domain Traveler Screen - Bring Up the Comparison Log Setup Screen ZOOM:PF23 ---------------------- Hiperstation ------------------- LINE 1 OF 24 COMMAND ===> XL SCROLL ===> HALF Record OFF Play OFF Journal OFF Compare Log OFF Autodoc OFF 1. Type XL on the command line and press Enter to display the Comparison Log Setup screen (Figure 20-11). Figure 20-11. Activate the Exception Log ------------------- Hiperstation - Comparison Log setup ------------------- OPTION ===> COMPARISON LOG OUTPUT DATA SET NAME (may be sequential or PDSE): DATA SET NAME ===> HIPERLOG.LIST STOP Compare Log ===> N Press ENTER to begin logging, (Y - Yes, N - No) END to cancel setup. 2. Enter the name of the dataset to which you want to write the comparison log output. From here, you can also stop any comparison in progress. The default dataset name for the exception log is HIPERLOG.LIST. 3. To activate the log, press Enter. You return to the Domain Traveler screen. The status line shows that the exception log is active and the total number of pages written. Stop the Exception Log The exception log automatically stops at the end of each domain traveler session, that is, every time you return to the Domain Traveler Setup screen. From the Setup screen, move the cursor to the STOP Compare Log field, type Y, and press Enter to stop the log. You can also stop the exception log at any time by typing XL OFF on the command line on the Domain Traveler screen and pressing Enter. REXX Log The REXX log records the text of REXX SAY statements. These statements can track script progress. 1. Enter the RLOG command on the Domain Traveler screen. Hiperstation displays the REXX Output Setup screen (Figure 20-12). 3270 Reporting 20-13 Figure 20-12. REXX Output Setup Screen --------------------- Hiperstation - REXX OUTPUT SETUP -------------------- COMMAND ===> DATA SET TO BE CREATED (may be sequential or PDSE): DATA SET NAME ===> _ OR SYSOUT CLASS: SYSOUT CLASS ===> * Note: An asterisk ’*’ allocates the terminal. If both data set name and SYSOUT class are specified, the SYSOUT class will take precedence. Press ENTER to create environment, END to cancel setup. Use this screen to choose a dataset or SYSOUT class that acts as the repository for any REXX SAY statements you inserted into a script. You can enter the RLOG command only when you are connected from a domain traveler session to a domain destination, such as TSO, CICS, or IMS. 2. To designate the REXX log location, choose one of the following options: – Enter an asterisk (*) to list log data on the terminal (default). – Enter a dataset name – Enter a SYSOUT class for the log 3. After you make a selection, press Enter. Hiperstation allocates the dataset you selected or creates the appropriate SYSOUT. Pressing Enter also initiates the logging process. 20-14 Hiperstation for VTAM User Guide 21-1 Chapter 21. Text-to-Web Compare and Exception Log Converter Chap 21 Convert Comparison Logs, Exception Logs, and Onelogs to interactive Web-based reports. Note: For the remainder of the chapter, “compare log” refers to Compare, Exception or Onelogs. Converting Logs Hiperstation for VTAM provides sample JCL to run the conversion as a batch job. Just open the sample member, modify the necessary DD statements and input parameters, and submit the job. To convert log datasets to Web-based reports: 1. In an ISPF Edit session, open member CLOGGEN (Figure 21-1), located in the system-level reporting library or the samples library (SQQFSAMP). 2. Insert a job card at the top and provide the necessary DD statements and input parameters. 3. Submit the job. 21-2 Hiperstation for VTAM User Guide Figure 21-1. CLOGGEN JCL Sample //*....... JOB ...PLACE YOUR INSTALLATION'S JOBCARD HERE... //* //CLOGGEN EXEC PGM=IKJEFT01,PARM='CLOGGEN' //SYSEXEC DD DISP=SHR,DSN=COMPWARE.QQF800.SQQFEXEC <- QAC REXX LIBRARY //SYSPRINT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSTSIN DD DUMMY //********************************************************************* //* DESCRIPTION OF DD STATEMENTS: * //* SYSEXEC = Change this to the location of your REXX library. * //* DESCRIPTION OF INPUT PARMS: * //* Required: * //* CLOG = Fully qualified dataset name of compare log, no quotes* //* Dataset can be sequential or PDSE(member). Rightmost * //* * wildcard can be used i.e. HIPER.CLOGPDSE(A01*) * //* CLOGDIR = Path/directory to store compare log reports. You may * //* add one new node to an existing path to be created. * //* Optional: * 00011005 00020001 00030000 00031005 00040005 //* TRANS = Row, column, and length of trans id displayed. * //* LISTVIEW = How to present data in screen summary page. Values: * //* SCREENS (default) - Listed with screens numbered * //* TRANS - Listed with trans id. * //* BOTH - listed with trans id AND screen number. * //* LISTMAX = maximum number of screens to list on one summary page.* //* DELETE = Delete web compare log specified in CLOGDIR. * //* REPLACE = YES|NO to replace common subdirectory. NO is default. * //* SEARCH = Code SEARCH(NO) if CGI search facility not installed. * //* RESPONSE = Set a percent for allowable actual response times * //* when compared to original response times in the * //* script. For example, to identify response times that * //* are more than 10% longer that original, specify: * //* RESPONSE(10), for 20% use RESPONSE(20), and so on. * //* The default is to ignore response times. * //********************************************************************* //PARMS DD * 00042005 CLOG(COMPWARE.HIPER.CLOG) 00043007 CLOGDIR(/u/HIPERSTATION/log) 00044008 TRANS(1,9,20) 00044008 LISTVIEW(BOTH) 00044008 LISTMAX(300) 00044008 /* CLOGGEN DD Statements and Input Parameters PARM on CLOGGEN EXEC Statement Identifies the program to use for conversion. Hiperstation provides both a compiled and an interpreted version of the REXX program. Complete the PARM= clause with: – 'CLOGGEN' to use the interpreted REXX version. Use this version if you do not have the REXX on zSeries compiler. – 'CLOGGENX' to use the compiled version, which executes much more quickly. SYSEXEC DD Identifies the dataset containing the CLOGGEN program. Point it to your Hiperstation REXX library. CLOG(dsn) Identifies the log dataset to be converted. Specify a fully qualified sequential dataset or PDSE. Place the PDSE member in parentheses. To convert multiple logs, enter the first part of the dataset or member name followed by an asterisk (*). For example, USR2503.SYNC* converts all log datasets beginning with USR2503.SYNC and USR2503.SYNCH.CLOG(P*) converts all members in USR2503.SYNCH.CLOG that begin with the letter “P”. The conversion program ignores datasets or members that do not contain a Compare, Exception, or Onelog. Text-to-Web Compare and Exception Log Converter Note: 21-3 Do not use the asterisk wildcard if you specify the DELETE parameter. CLOGDIR(HFSpath) Identifies a location for the output files. Complete this parameter with the desired HFS path and directory. Note: You must have authorization to create HFS files. TRANS(row,column,length) Optional parameter that assigns an area of the screen for CLOGGEN to use to create transaction identifiers. For example, create transaction IDs from the application’s screen titles or from certain fields on the screen to help you easily detect when and where the application returned an unexpected value. Specify the screen row and column where the transaction ID is located and supply the length of the value to return. For example, TRANS(1,4,10) returns 10 characters from row one, beginning at column four. Use it to generate a Transaction Summary at the beginning of the report. If the view option is set to TRANS or BOTH, transaction IDs also appear in the navigation pane on the left side of the detail screens. LISTVIEW(view options) Optional parameter that determines what information to display in the navigation pane. The view options are: – SCREENS presents the list of compared screens with the screen numbers. – TRANS presents the list of compared screens with the transaction IDs found on those screens. – BOTH presents the list of compared screen with both the screen number and transaction ID. CLOGGEN generates the reports in SCREENS view if LISTVIEW is not specified. LISTMAX(number) Optional parameter that controls the maximum number of screens listed on a single summary page. Smaller values reduce the amount of time it takes for the browser to load the summary page but may result in multiple summary pages. CLOGGEN generates additional pages if there are more screens than the LISTMAX value. If LISTMAX is not specified, CLOGGEN uses 300. DELETE Deletes a specified Web-based compare log. Use the CLOG parameter to identify the sequential dataset or PDSE and member of the originating log file and the CLOGDIR parameter to identify the HFS path and directory containing the Web-based report to delete. CLOGGEN deletes the associated HTML files. Note: Do not wildcard the DSN or PDSE member name when using DELETE. REPLACE(YES|NO) Replaces the common directory containing HTML files that are shared by all compare logs. The common directory is built during the first conversion and typically does not require rebuilding. If you experience navigation/display issues, or suspect file corruption, specify REPLACE(YES) to rebuild the common directory. REPLACE(NO) is the default. SEARCH(NO) Disables the report’s “search” feature. Specify SEARCH(NO) to prevent the search field from appearing on the Summary page. 21-4 Hiperstation for VTAM User Guide RESPONSE Set a percent for allowable actual response times when compared to original response times in the script. For example, to identify response times that are more than 10% longer that original, specify: RESPONSE(10), for 20% use RESPONSE(20), and so on. The default is to ignore response times. Accessing Reports To access the Web-based Compare or Exception Log: 1. Open a supported Web browser. 2. In the address bar at the top, type: http://<URL of mainframe><directory path specified on CLOGDIR parm>/index.html 3. Press Enter. The browser displays an index (Figure 21-2) of all Compare Logs, Exception Logs, and Onelogs found in the specified directory. Figure 21-2. Compare Log Index Page 4. Click the desired log, or in the case of a Onelog, the desired terminal. The summary page for the selected log/terminal appears. See the next section for navigation instructions and a detailed description of each page in the report. Reading and Navigating Web-Based Reports The Web-based Compare Log initially displays a summary page. Access comparison detail from links on the summary page. Access the search feature from either the summary or detail pages. Report Summary The Web-based Compare Log Report initially displays a Summary page (Figure 21-3). • Click Return to return to the list of available reports. • Click View all screen to access comparison detail. To learn about the search feature, see “Search and Find Features” on page 21-8. If you used the TRANS parameter, the Transaction Summary tables provides a list of all transaction IDs found in the log dataset. • Click Sequence (column header) to sort the table by transaction sequence. • Click Transaction ID (column header) to sort the table alphabetically and numerically by transaction ID. Text-to-Web Compare and Exception Log Converter 21-5 • Click the transaction ID text in the table to view the first screen containing the given transaction ID. Figure 21-3. Web-based Compare/Exception Report Summary Compare Log Summary Fields Original Compare Log Dataset Displays the selected sequential dataset or PDSE member used to generate the report. Date Created Displays the date that the original log dataset was created. Total Mismatches Displays the number of mismatches found in the given log dataset or PDSE member. Total Screens Displays the total number of screens in the given log dataset or PDSE member. Total Transactions Displays the total number of unique transaction IDs found in the given log dataset or PDSE member. If the TRANS parameter was not used during report conversion, this field shows zero. TPF Displays the region name (VTAM LU name) of the transaction processing facility against which the script was played back. Transaction Summary Fields Sequence Displays the sequence in which the unique transaction IDs were captured. CLOGGEN processes the log file from beginning to end. It looks at the screen location specified on the TRANS parameters and increments the sequence number when that location contains unique information. If all screens contained the same information in the specified location, only one transaction would be listed. Transaction ID Displays the unique transaction ID found in the specified screen location. Total Screens Displays the total number of screens containing the specified transaction ID. 21-6 Hiperstation for VTAM User Guide Total Mismatches Displays the total number of mismatches for the given transaction ID. Report Detail Access comparison detail (Figure 21-4) from the Compare Log Summary page. The detail screen is comprised of two panes: • The navigation pane on the left side of the screen (see Figure 21-4). • The detail pane that shows the “actual” and “expected” screens for the currently selected comparison entry (see Figure 21-5 on page 21-7). Figure 21-4. Compare Log Navigation and Detail Panes Navigation Pane This pane provides information about the selected comparison entries and easy access to the selected comparison screens. If you access detail via a transaction ID link, the navigation pane lists all screens containing the given transaction ID. If you access detail via the View all screens link, it shows all screens in the log. Text-to-Web Compare and Exception Log Converter 21-7 Figure 21-5. Compare Log Detail Navigation Pane The navigation pane can contain any or all of the following comparison entry information and links: • << (back) and >> (forward) move you through the listed comparisons (actual/expected screen pairs). • return returns you to the summary page. • find initiates the find feature. See “Search and Find Features” on page 21-8. • +script name (x/y) is an expandable/collapsible list of all actual and expected screens for the given script. x is the number of mismatched screens and y is the total number of screens pairs from the given script. Click the plus sign (+) to view or hide the list of screen pairs belonging to the given script. • +NE indicates the selected actual/expected screens do not match. It is followed by the screen number, the transaction ID, or both depending on the LISTVIEW value supplied during conversion. – If you specified SCREENS on the LISTVIEW parameter or you did not specify the LISTVIEW parameter, NE is followed by the screen number. – If you specified TRANS, it is either followed by the transaction ID or “unknown” if nothing is in the defined screen location. – If you specified BOTH, it is followed by both the screen number and transaction ID. Click the plus sign to view or hide the following detail information and links: – trans id field displays the transaction ID for the given screen pair. – key field displays the input function key, if any, used to generate the screen during recording and playback. – actual and expected links position the detail window to the actual or expected screen for the given comparison. • +EQ indicates the selected actual/expected screens match. This plus sign link (+) behaves the same way and displays the same information as NE. • continue appears at the bottom of the list if there are more screens in the log dataset than the LISTMAX parameter value. Click continue to go to the next set of screens. Once there, the previous link appears at the top of the list. Use it to return to the previous set of screens. Detail Pane The detail pane shows the set of “actual” and “expected” screens for the selected comparison entry (Figure 21-4 on page 21-6). By default, the report highlights differences 21-8 Hiperstation for VTAM User Guide in the screens. The screen number displays in the upper left corner of each screen and the script dataset appears across the top. The >> (forward) and << (back) links that appear in the upper right corner of the screen title bars toggle the view from the “actual” screen to the “expected” screen and vice versa. The same links appear above the screens. However, they move you through all of the screens in the log. Figure 21-6. Top of Compare Log Detail Pane • Click change settings to change the color scheme and font size of the report. See “Customizing Report Presentation” on page 21-9. • Click highlight on/off to turn difference highlighting on and off. This is useful for viewing screens that have many differences. • Click print to print the current page. The ATTENTION IDENTIFIER that appears at the bottom of the comparison entry detail (see Figure 21-4 on page 21-6) lists the input function key, if any, used to generate the screen during recording and playback. Search and Find Features Web-based Compare Logs offer the Search and Find features. • Search appears on the summary page if you did not specify SEARCH(NO) in the conversion JCL. Use it to search all of the screens in the selected log. • Find appears at the top and bottom of the list of comparison entries in the report detail navigation pane. Use it to find specified text in the comparison entries. Following are instructions for using each of these features. To search all screens in the log: 1. On the Compare Log Summary page, enter the desired text in the Search field and click Search. The Search Results page (Figure 21-7) appears and, if applicable, provides a list of all screens containing the specified text. Text-to-Web Compare and Exception Log Converter 21-9 Figure 21-7. Compare Log Search Results 2. Click a screen number. The actual and expected screens appear. 3. To return to the Search Results page, click the browser’s back button. Repeat screen selection as needed. 4. Click Return at the top of the Search Results page to return to the Compare Log Summary page. To find specified text in the comparison entries: 1. From the report detail, click find, which is located at the top or bottom of the comparison entries in the navigation pane. The Find Text dialog appears (Figure 218). Figure 21-8. Find Text Dialog Box 2. Enter the text you wish to find. This feature is case sensitive. If there is a continue link at the bottom of the comparison entries list, check the Continue find to next page without prompting box to search the rest of the comparison entries in the file without interruption. Otherwise, the browser prompts for confirmation each time it opens the next list. To search a previous list, start the search from the beginning of that list. 3. Close the dialog by clicking the X button in the upper right corner. Customizing Report Presentation This section discusses the change settings feature that allows you to customize the presentation of the comparison screens. It also provides system-setting information for optimizing report viewing. 21-10 Hiperstation for VTAM User Guide Report Settings Web-based Compare Logs offer the following options for changing the appearance of the reports: • change settings to change the screen color, the highlighting color, and the screen text color and size. • highlight on/off to turn screen difference highlighting on and off. When you exit the report, the browser saves your settings as cookies. Each report has its own set of cookies to allow you to create different settings for each report. To change the appearance of a report: 1. Navigate to the report detail screen. 2. Click change settings, which is above the “Actual” screen in the detail pane (Figure 21-4 on page 21-6). The Change Settings dialog appears. Figure 21-9. Change Settings Dialog Box 3. Click the desired color button for the screen, text, and highlighting. Click the down arrow to choose text size from a list. Changes take effect immediately. 4. To exit the dialog, click close or the X button in the upper right corner. 5. To turn difference highlighting on or off, click the highlight on/off link located above the “Actual” screen in the detail pane. System Display Settings View Web-based Compare Logs at any display resolution. However, lower resolutions result in a larger display of the report. If scrolling up and down to see the “actual” and “expected” screens is too tedious, consider: • Increasing screen resolution to 1280 X1024 pixels. Refer to your operating system help to learn how to adjust the display resolution. • Maximize the browser window by clicking the middle button on the upper right corner of the browser window. • Reduce the screen text size using either the browser settings or the report settings. Browser settings affect all text displayed in the browser window. Report settings affect only the text that appears on the comparison screens. 22-1 Chapter 22. Hiperstation for VTAM Profile Defaults Chap 22 Domain Traveler Profile Defaults Domain Traveler provides an interactive connection from ISPF to the application or subsystem you are testing. Use it to record your activity, play back recorded scripts, compare recorded scripts to live activity, and dub new testing scripts. 1. Select option 1 Domain Traveler from the Hiperstation Profile screen (Figure 22-1). Figure 22-1. Hiperstation Profile Screen Hiperstation OPTION ===> -------------- Hiperstation Profile ---------------------------- More: + Primary commands: menu-number, ALL, CANCEL Line commands: S or / to select options. Active Profile: Dataset ===> 'USER2312.HIPER.PROFILE' Member ===> HIPER Description ===> changed description _ 1 Domain Traveler Recording and Playback defaults _ 2 APPC Global Record and Script Create settings _ 3 3270/LU0 Global Record and Script Create settings _ 4 WebSphere MQ Global Record and Script Create settings _ 5 TCP/IP Global Record and Script Create settings _ 6 Auditing 3270 Auditing defaults for 3270 _ 7 Auditing MQ Auditing defaults for WebSphere MQ _ 8 Auditing TCP/IP Auditing defaults for TCP/IP _ 9 Playback MQ MQ Playback parameter defaults _ 10 Playback TCP TCP Playback parameter defaults _ 11 ATV Manager Test Vehicle defaults Should changes made elsewhere to Profile values be saved? Profile Autosave ===> Y (Y = YES, N = NO OR A = ASK) Should changes made elsewhere to dataset names be saved? DSN Autosave ===> Y (Y = YES, N = NO) Email address: _______________________________________________________________ Codepage: ISO8859-1 Job statement information for batch jobs: ===> //XXXXXXXA JOB ('ACCOUNT',5M-0000),'HIPERSTN', ===> // CLASS=Q,MSGCLASS=R,NOTIFY=&SYSUID ===> //* > //* The Domain Traveler Defaults screen appears (Figure 22-2). Note: For easier display, the initial Profile screens have been combined. Figure 22-1 shows the profile selection screen. The Domain Traveler screens in this section have been combined. Figure 22-2 on page 22-2 shows the Session Options and PF key translations settings. Figure 22-3 on page 22-3 shows the remainder of the Domain Traveler settings. On your actual screen, press FORWARD (PF8) or BACKWARD (PF7) to view all of the fields. 22-2 Hiperstation for VTAM User Guide Figure 22-2. Domain Traveler Defaults - Session Options and PF Key Translations More: + Default Domain ===> TSO (Recording Domain) Session Options Logon data ===> LOGON DATA ZOOM mode ===> N (Y=yes, N=No) ZOOM key ===> PF23 LU name ===> ________ (Terminal name used to login to application) Logmode ===> ________ (Overrides model, SNA and Queriable options) 3270 model ===> 5 (1=12x40, 2=24x80, 3=32x80, 4=43x80, 5=27x132) SNA ===> Y (Y=yes, N=no) Queriable ===> Y (Y=yes, N=no) Trailing Blanks ===> 1 (1 = Single, Y = keep all, N = keep none) Infirst ===> Y (Y = No Welcome Screen From Domain Dest.) DBCS ===> N (Y = support DBCS) Edit Application Profiling ===> _ (/ to edit Application Profiling) The following PF key translations apply to the Domain Destination when in non-Zoom mode: PF01 = F1 PF04 = F4 PF07 = F7 PF10 = F10 PA1 = _____ PF02 = F2 PF05 = F5 PF08 = F8 PF11 = F11 PA2 = _____ PF03 = F3 PF06 = F6 PF09 = F9 PF12 = F12 CLEAR= _____ Hiperstation ------------ Domain Traveler Defaults Profile: HIPER Profile Dataset: 'USER2312.HIPER.PROFILE' OPTION ===> _________________________________________________ 2. Default Domain allows you to stay within ISPF and access Domain Destinations such as CICS, IMS/DC regions, etc. under which your business applications are run. Enter the desired default domain. 3. The Domain Traveler Session Options are fairly straightforward. Fill in or change the desired fields. – Logon data, if entered, will be supplied to the Domain Destination with your connection request. – ZOOM MODE. In non-Zoom mode, ISPF fills all fields with trailing blanks. Enter Y to initiate session in ZOOM mode and save all trailing blanks, N to initiate session in ISPF mode and remove all trailing blanks, or 1 to remove all but one trailing blank. – ZOOM Key specifies the key that will toggle between ZOOM and ISPF modes. – LU name is the LU (terminal name) used when establishing a session with the application. – Logmode describes the characteristics of the terminal (for example, rows and columns) when establishing a session with the Domain Destination. This entry must be defined to VTAM. – 3270 model describes the type of 3270 device. – SNA specifies whether Hiperstation is emulating an SNA device. – Queriable specifies whether Hiperstation is emulating a queriable device. – Trailing Blanks specifies whether Hiperstation will save or remove trailing blanks. Y will keep all trailing blanks, N will remove all trailing blanks, and 1 will keep one trailing blank. – Infirst specifies whether to provide a welcome screen from the domain destination. Y prevents the welcome screen from appearing. – DBCS. Select Y to support double byte character sets. – Edit Application Profiling. Enter a (/) to view or modify your Edit Application Profiling settings. Application Profiling examines components of each datastream received from the application and compares it against previously received datastreams to better anticipate the next action the application will take (for example, to send more data or wait for input). Hiperstation for VTAM Profile Defaults 4. The default PF key translations apply to the Domain Destination when in nonZoom mode. Make changes if desired. PF01 = F1 PF02 = F2 PF03 = F3 PF04 = F4 PF05 = F5 PF06 = F6 PF07 = F7 PF08 = F8 PF09 = F9 PF10 = F10 PF11 = F11 PF12 = F12 PA1 = PA2 = CLEAR= Figure 22-3. Remainder of Domain Traveler Defaults Hiperstation ------------ Domain Traveler Defaults -------------------------- Profile: HIPER Profile Dataset: USER2312.HIPER.PROFILE OPTION ===> _______________________________________________ More: - + Recording Parameters: __________________________________________________ Script dataset ===> Replace Members? ===> Y (Y=Yes, N=No) Format Recording ===> Y (Y=Yes, N=No) Record Inputs Only? ===> N (Y=Yes, N=No) Script Recovery ===> Y (Y=Yes, N=No) Input fields ===> N (in row,column format? Y or N) Playback Parameters: Repetition Count ===> 1 (1 to 999) Zoom Mode ===> N (Y)es, (N)o, (R)esume Dubbing ===> N (Y)es, (N)o, (C)hange Suppress Play Screen(s) ===> _ (Y=Yes, N=No) Stop Play ===> _ (Y=Yes, N=No) Play/Think Time ===> 1 ( 1. Play interactively, 2. Play at full speed, 3. Play at think time recorded on script, 4. Play at user specified think time) Identify inputs whose processing should be delayed: ===> __________________________________________________ Think Time Seconds ===> 11 (If Play/Think Time Hundreths ===> 50 option 4 selected) Percentage ===> 100 (If Play/Think Time is 3 or 4) Comparison Options: Stop/mark ===> 1 (1. any compare check 2. alpha character differences 3. field number mismatches 4. Ignore all compare differences) Initial mismatch ===> ______ (ACTUAL,DIFFER, or DELTA) Ignore numeric differences ===> N (Y=Yes, N=No) Compare Last Image Only ===> N (Y=Yes, N=No) Dub encrypted masks as character masks ===> Y (Y=Yes, N=No) Use encrypted masks during Compare ===> Y (Y=Yes, N=No) Identify outputs whose compare processing should be bypassed: ===> __________________________________________________ Auto Documentation Parameters: Dataset name ===> ____________________________________________ File Format ===> _ (1 = Printer Control Characters 2 = DCF (Script) Tags 3 = None) Record ===> _ (1 = Output screens 2 = Input data with output 3 = Both) Screens "boxed" ===> _ (Y-yes, N-no) Running Title ===> ______________________________________________________ Other Datasets: Journal Dataset ===> HIPERJRN.LIST Log Dataset ===> HIPERLOG.LIST 5. Fill in or change the Recording Parameters fields. 22-3 22-4 Hiperstation for VTAM User Guide – Script dataset specifies where you want to store created scripts on DASD. This must be a fully qualified dataset name up to 44 characters and defined as a PDS or PDSE. If the dataset does not exist, you will be prompted to allocate it. – Replace Members? Enter Y to replace existing scripts with dubbed scripts. – Format Recording specifies whether to create a formatted script. Enter a Y to create a formatted script. – Record Inputs Only? Enter a Y to record only the input entries. If selected, screen images will not be recorded. Enter an N to also record screen images. – Script Recovery specifies whether to use script recovery. Enter a Y to use script recovery. – Input fields specifies whether to record the physical row and column of the input rather than the relative input number. Enter a Y to record the physical row and column. 6. Fill in or change the Playback Options fields. – Repetition Count specifies the number of times to repeat. Enter 1 to 999. – Zoom Mode specifies whether the script will play in zoom or non-zoom mode. Enter Y for zoom mode, N for non-zoom mode, and R to play the script in zoom mode, but return to non-zoom mode when the script is finished. – Dubbing allows you to record a new script during the play process. • Enter Y to invoke the Standard Recording Setup screen. This activates the normal recording mode. The status line will change to indicate that recording is active. or • Enter C to invoke the change-only Recording Setup screen during execution setup. This activates a background recording that is only saved if the original script encounters a comparison check. The status line is not changed. – Suppress Play Screens: • Enter Y to invoke the standard Recording Setup screen. This will activate the normal recording mode. The status line will change to indicate that recording is active. • Enter C to invoke the change-only Recording Setup screen. This will activate a background recording that will only be saved if the original script encounters a comparison check. The status line is not changed. – Stop Play: enter Y to halt activity during playback. – Play/Think Time specifies the think time to be used during playback. The options include: 1. Play interactively: Playback pauses before each screen of data is sent to the Domain Destination. 2. Play at full speed: Transactions are played back as fast as the system can execute them. 3. Play at Think Time recorded on script: Think time is simulated using the time recorded on the script. 4. Play at user specified think time: Think time for all transactions will be the time specified in the “Time (ss th)=>” field. Identify inputs whose processing should be delayed: Enter a range of <INPUT> groups whose playback should be delayed. Use this option when the application takes an unusually long time to build the screen into which the <INPUT> group is placed. Only use this field if prior playbacks failed because Hiperstation processed these particular <INPUT> groups too quickly. Hiperstation for VTAM Profile Defaults 22-5 • Think Time (when option 4 is selected): The Think Time for each transaction specified in seconds, tenths, and hundredths of a second. For example, “00 75" specifies 3/4 of a second think time. • Percentage applies a percentage figure to the Think Time. This option is applicable when the Play/Think Time is set to 3 or 4. For example to play back a script with half the original think time, enter Play/Think Time ===> 3 and Percentage ===> 50. 7. Fill in or change the Comparison Options fields. – The Stop/Mark Comparison Option (COPT) specifies an unattended comparison option that is effective only when used in conjunction with the LOG or XLOG parameters. Choices include: 1. Any compare check: Mark all comparison checks in the log. 2. Alpha character differences: Mark only alpha character differences. Ignore differences in screen attribute bytes. 3. Field number mismatches: Mark comparison checks only if there is a difference in the number of fields on the received and expected screens. 4. Ignore all compare differences: Ignore all comparison checks. – Initial mismatch specifies which screen is to be placed when a mismatch is detected. • ACTUAL$: The ACTUAL screen displays the contents of the buffer that Hiperstation received from the application. • DELTA $: The DELTA screen displays an overlay of the position that is different from the actual screen versus the expected screen. • DIFFER$: The DIFFER screen displays an overlay of the differences between the actual screen versus the expected screen. This overlay is on top on the ACTUAL screen. – Ignore numeric differences (IGND) specifies that numeric values will not be considered when testing for comparison checks. The IGND keyword is only in effect when used in conjunction with the LOG or XLOG parameters. Hiperstation considers the following conditions as matching: • Actual character and expected character are both numeric. • Actual character is numeric and the expected character is blank or null. • Actual character is blank or null and the expected character is numeric. All other conditions are mismatches. – Compare last image only compares the scripted screen image and the screen image received from the application only after the application has sent all data required to build the final screen. For example, many applications send a map filled with data followed by a map containing only a message. Enter a slash (/) in this field to eliminate comparison of the first data only map but to allow comparison when the full screen image is built from both the data and the message maps. – Dub encrypted masks as character masks dubs encrypted masks (<MSK>NNN tags) in the script being played back to the new script as both encrypted masks and as an additional record of “I” character masks when you select Y. Select N to prevent additional character masks from being added to your dubbed script. – Use encrypted masks during compare to prevent miscompares on dark fields. Deselect this option to disable encrypted masks and allow identification of miscompares within dark fields. Deselecting this option does not cause data within dark fields to appear on Actual/Expected screens. This option affects only encrypted masks. All other forms of masking are still valid and in effect for dark fields. 22-6 Hiperstation for VTAM User Guide – Identify inputs whose compare processing should be bypassed bypasses compare processing for <OUTPUT> groups that fall within the specified range. For example, enter 1-3,6,77 to bypass compare processing for <OUTPUT> groups 0000001, 0000002, 0000003, 0000006, and 0000077. 8. Fill in or change the Auto Documentation Parameters fields. – Dataset name specifies whether the output generated by the AutoDoc facility is directed to a SYSOUT class or DASD dataset. If you enter a single character, the documentation produced by the AutoDoc feature is allocated to a SYSOUT class. If you enter more than one character, the documentation is allocated to a dataset file. – File Format specifies the AutoDoc format that will be generated in standard print formatting and carriage control (PCC), Document Composition Facility script (DCF), or neither of these formats. Enter 1 (PCC), 2 (DCF), or 3 (NONE). – Record can produce AutoDoc documentation for the output images, screen images with the entered input, or both. Enter 1 (output screens), 2 (input data with output), or 3 (both). – Screens “boxed” produces documentation with or without borders. Enter Y to produce documentation with borders or N for no borders. – Running Title specifies the title that will appear at the top of each page. You can use up to 57 characters. 9. Fill in or change the Other Datasets fields. – Journal Dataset specifies that a transaction journal will be generated for the 3270 group. If the specified value is a single character, the journal is allocated to a SYSOUT class. The SYSOUT goes to the class specified by that character. If the value is more than one character, the transaction journal is allocated to a permanent file with that dataset name. By default, no transaction journal report is produced. – Log Dataset specifies that a comparison log for each terminal in the group will be allocated. If the specified value is a single character, the comparison log is allocated to a SYSOUT dataset. The SYSOUT dataset is in the class specified by that character. If the value is more than one character, the comparison log is allocated to a permanent file with the name: dataset.Pnnnn, where nnnn is the port number assigned to the terminal. Wild cards (* or ?) can be used for the port number (nnnn). A member can also be supplied. 3270/LU0 Profile Defaults The 3270/LU0 - Record and Script Create Defaults screen specifies the Terminal LU, Applid, and/or User ID you want to record. 1. Select option 3 3270/LU0 from the Hiperstation Profile screen (Figure 22-4). Hiperstation for VTAM Profile Defaults 22-7 Figure 22-4. Hiperstation Profile Screen Hiperstation OPTION ===> -------------- Hiperstation Profile ---------------------------- More: + Primary commands: menu-number, ALL, CANCEL Line commands: S or / to select options. Active Profile: Dataset ===> 'USER2312.HIPER.PROFILE' Member ===> HIPER Description ===> changed description _ 1 Domain Traveler Recording and Playback defaults _ 2 APPC Global Record and Script Create settings _ 3 3270/LU0 Global Record and Script Create settings _ 4 WebSphere MQ Global Record and Script Create settings _ 5 TCP/IP Global Record and Script Create settings _ 6 Auditing 3270 Auditing defaults for 3270 _ 7 Auditing MQ Auditing defaults for WebSphere MQ _ 8 Auditing TCP/IP Auditing defaults for TCP/IP _ 9 Playback MQ MQ Playback parameter defaults _ 10 Playback TCP TCP Playback parameter defaults _ 11 ATV Manager Test Vehicle defaults Should changes made elsewhere to Profile values be saved? Profile Autosave ===> Y (Y = YES, N = NO OR A = ASK) Should changes made elsewhere to dataset names be saved? DSN Autosave ===> Y (Y = YES, N = NO) Email address: _______________________________________________________________ Codepage: ISO8859-1 Job statement information for batch jobs: ===> //XXXXXXXA JOB ('ACCOUNT',5M-0000),'HIPERSTN', ===> // CLASS=Q,MSGCLASS=R,NOTIFY=&SYSUID ===> //* > //* The 3270/LU0 Record and Script Create Defaults screen appears (Figure 22-5). Note: For easier display, the initial Profile screens have been combined. Figure 22-4 shows the profile selection screen. The 3270/LU0 screens in this section have been combined. Figure 22-5 shows all of the 3270/LU0 Record and Script Create Defaults settings. On your actual screen, press FORWARD (PF8) or BACKWARD (PF7) to view all of the fields. 22-8 Hiperstation for VTAM User Guide Figure 22-5. 3270/LU0 Record and Script Create Defaults Screen Hiperstation ---- 3270/LU0 Record and Script Create Defaults ------------------ Profile: HIPER Profile Dataset: 'USER2312.HIPER.PROFILE' OPTION ===> More: + --------------------------------Record Settings-------------------------------- _ Message Filters (/ for Filter panel) Capture Criteria: Terminal ===> *_______ Use an asterisk for wildcarding Application ===> *_______ the Terminal, Application or Userid User ID ===> *_______ fields. OR Global Record Manager List ===> ________ _ select to edit list Second Filter GRM List ===> ________ _ select to edit list Start and End Times: Date and Time HH : MM : SS MM / DD / YY Start Time ===> 00 : 00 : 00 Start Date 00 / 00 / 00 End Time ===> 00 : 00 : 00 End Date 00 / 00 / 00 Repository Dataset: Dataset Name ===> 'USER2312.HIPER.REPOSIT' First Number ===> _______ (if wildcard in dataset) Last Number ===> _______ (if wildcard in dataset) Replace or Append ===> _ (1 = Replace, 2 = Append) Recording Options: (Enter "/" to select) _ Suspend Script Creation _ Reuse Repositories _ FORCE Request at 'End Time' _ Normal Event Notification _ Error Event Notification _ Record From LOGON Only -----------------------------Script Create Settings---------------------------- Script Dataset: Dataset Name ===> 'USER2312.HIPER.SCRIPT' Description ===> ____________________________________________________ Member Prefix ===> ______ (1 - 6 character prefix) Member Suffix ===> _______ (2 - 7 numeric suffix) Session Log ===> ________ (1 - 8 character member name) Replace? ===> _ (/ = Yes, Blank = No) Script Format Options: (Enter "/" to select) _ Generate Formatted Script Blank to generate unformatted _ Input Only Blank to capture input and output _ Input Field Formats Change Input Fields to Row/Column Format Message Filtering Options: (Enter "/" to select) _ Use Message Filters (Use REXX Script(s)) _ Filter Default (I = Include, E = Exclude) Script Create Execution Options: Select Processing Option: (Enter number to select) _ 1. Submit Batch Job 2. TSO 2. Entering a slash (/) to select Message Filters displays the 3270/LU0 - Message Filters screen. See the Hiperstation for VTAM User Guide or the online help for information about creating these filters. 3. The Capture Criteria fields specify what you want to capture. Fill in the Terminal, Application, and/or User ID fields or the Global Record Manager List field. – Terminal specifies the logical unit (LU) name of the VTAM terminal to record. – Application specifies the ID of the VTAM application to record. – User ID specifies the mainframe User ID to capture. For Terminal and Application, you can enter a fully qualified 8-character name. For User IDs you can enter a fully qualified 7-character name. You can also use a wildcard (*) to capture all terminals, Applids, and User IDs or you can specify a group of terminals, Applids, and User IDs starting with the same prefix (for example, TEST*). Hiperstation for VTAM Profile Defaults 22-9 If you prefer, you can specify a Global Record Manager List and, optionally, a Second filter GRM List instead of the Terminal, Application and User ID fields. These fields can only be specified if the Terminal, Application and User ID fields are left blank. – Global Record Manager List and Second Filter GRM List specify the name of a Global Record Manager INCLUDE or EXCLUDE list. If you specify a list that does not exist, when the user reaches this point in the record process, the Global Record Manager * Add List screen will appear to allow the user to create the list before the capture criteria is accepted. To use the Second Filter GRM List, you must first have specified the Global Record Manager List. The second filter will be applied to the result of the first filter. 4. Start and End Date and Time are optional fields that specify the date and time of day that you want the capture request to be started or stopped. If you enter a Start Time you must enter a Start Date. If you enter an End Time you must enter an End Date. 5. Repository Dataset specifies the name of the dataset where captured data will be stored on DASD. You can enter a fully qualified dataset name up to 44 characters in this field to allocate a fixed repository. You can also enter a dataset name with a wildcard of “*” or “?” that will result in the allocation of a repository set. This set is defined by a range of numbers entered in the First and Last number fields. Enter the dataset name and First Number and Last Number fields, if required. – Asterisk (*): Inserts an incremented value into the dataset name qualifier in which the asterisk appears. This wildcard pads the incremented value with enough zeros to ensure an eight-character qualifier. For example, USER.#3270.REC* with first=1 and last=3 creates capture the following repositories: USER.#3270.REC00001 USER.#3270.REC00002 USER.#3270.REC00003 – Question mark (?): Inserts the incremented value into the dataset name qualifier where the question marks appear. Enter at least one question mark for each digit of the greatest value in the range fields. For example, USER.#3270.REC?? with first=9 and last=11 creates the following capture repositories: USER.#3270.REC09 USER.#3270.REC10 USER.#3270.REC11 Note: Begin each segment of the dataset name with an alpha character (A-Z) or @#$ including segments with wildcard characters. – First Number and Last Number define the range for wildcard characters entered in the Repository Dataset field. You can enter any range from 0 to 9999999. These fields are required only if you enter a wildcard in the repository dataset name. – Replace or Append specifies whether the captured data will be appended to a dataset of the same name or replace it. Enter 1 to replace or 2 to append. 6. Recording Options control the way your capture request will generate scripts, process the repository, stop your requests, send normal and/or error messages, and capture in flight session data. Enter a slash (/) to select an option. – Suspend Script Creation controls automatic script creation. To prevent script creation at the end of the recording request, enter a slash (/) in this field and press Enter. It also defers the entry of script creation criteria to a later time. If you leave this field blank you will be guided through the script creation criteria 22-10 Hiperstation for VTAM User Guide screens prior to your capture request being activated. This will also cause automatic script creation to execute when your capture request is stopped. – Re-use Repositories controls whether repository sets will be reused when the last dataset in the sequence is filled. Enter a slash (/) to reuse your repository sets. For example, if you enter a First and Last number of 0000001 through 0000010, when segment number 10 is full, the data recorder will close segment 10 and reopen segment 1 replacing the oldest captured activity with the newest. Leave this field blank to terminate recording when the last segment is full. – FORCE Request at 'End Time' controls whether your capture request will be forced rather then stopped when it reaches the End Time you specified in your request. FORCE terminates recording of all sessions including in-flight sessions. Script creation begins immediately unless the Suspend script creation option is selected. Be aware that you may lose buffered data resulting in partially recorded sessions. If you do not select this option, a STOP command is issued at the request’s specified end time. It stops recording new sessions but continues to record any active sessions. After all in-flight sessions end, recording terminates and script creation begins unless the Suspend script creation option is selected. Although this ensures complete session captures, it may delay script creation. Note: This field can only be selected if you entered an End Time in your request. Enter a slash (/) to select. – Normal Event Notification and Error Event Notification control whether normal and error event messages are generated and sent to your TSO session. If you are recording a large number of sessions, consider disabling Normal event notification to reduce the number of messages you receive. Enter a slash (/) to receive these messages at your terminal or leave blank to disable sending messages. – Record From LOGON Only controls whether to start capturing sessions that are already in flight when the request is started. If you leave this field blank, then your capture request will start capturing data for sessions that have already been logged on and meet your capture filter criteria. If you enter a slash (/), then your request will only capture sessions that logon after the request is started. 7. Specify the Script Create Settings. – Script Dataset Name, Member Prefix, and Member Suffix specify the fully qualified dataset and member names where you want to store your scripts. Enter a 1-6 character prefix and/or a 2-7 numeric suffix. Enter a Description if desired. – Session Log specifies the name of the log file for this session. Enter a 1-8 character member name. – Replace? specifies whether the script dataset will replace a dataset of the same name. A slash (/) = yes and blank = no. 8. Specify the Script Format Options. – Generate Formatted Script specifies whether formatted or unformatted scripts will be generated. Enter a slash (/) to generate formatted scripts or leave blank to generate unformatted scripts. – Input Only specifies whether to capture input only or input and output. Enter a slash (/) to capture input only or leave blank to capture input and output. – Input Field Formats allows you to change input fields to a row/column format. Enter a slash (/) to select. 9. Specify the Message Filtering Options. Message Filtering lets you filter the data in your 3270 or LU0 sessions so that only the inputs and outputs you are interested in Hiperstation for VTAM Profile Defaults 22-11 are stored in the script. You typically use Message Filtering to limit the size of your scripts and to create scripts containing only specific messages or transactions. You write short programs in REXX to tell Hiperstation the parts of a session to keep and parts to ignore. REXX programs that you write can examine the screen images and user input that flow during a session. You then set indicators in your REXX programs to identify the screen images and user input Hiperstation should keep or ignore. Enter a slash (/) to select. – Use Message Filters controls the formatting of your scripts. Enter a slash (/) to apply message filters to your captured data during script creation. Leave blank, and message filters will not be used during script creation even if you specified them in the 3270/LU0 - Message Filters screen. – Filter default. Enter I to include or E to Exclude. 10. Script Create Execution Options specifies whether you want background (batch) or foreground processing to be your default. Sample JCL is provided for a batch job, which you can change if desired. Select one of the following: – 1 Submit Batch Job (background). If you select this option, you must specify a valid OS JCL jobcard in the Job statement information for batch job field. – 2 TSO (foreground). This option will execute script creation as a foreground task under your TOS session. Your session will remain locked until script creation processing completes. Auditing 3270 Profile Defaults The “Auditing Defaults for 3270 Screen” specifies the terminal LU, APPLID, and/or User ID you want to search. 1. Select option 6 Auditing 3270 from the “Hiperstation Profile Screen” (Figure 22-6). 22-12 Hiperstation for VTAM User Guide Figure 22-6. Hiperstation Profile Screen Hiperstation OPTION ===> -------------- Hiperstation Profile ---------------------------- More: + Primary commands: menu-number, ALL, CANCEL Line commands: S or / to select options. Active Profile: Dataset ===> 'USER2312.HIPER.PROFILE' Member ===> HIPER Description ===> changed description _ 1 Domain Traveler Recording and Playback defaults _ 2 APPC Global Record and Script Create settings _ 3 3270/LU0 Global Record and Script Create settings _ 4 WebSphere MQ Global Record and Script Create settings _ 5 TCP/IP Global Record and Script Create settings _ 6 Auditing 3270 Auditing defaults for 3270 _ 7 Auditing MQ Auditing defaults for WebSphere MQ _ 8 Auditing TCP/IP Auditing defaults for TCP/IP _ 9 Playback MQ MQ Playback parameter defaults _ 10 Playback TCP TCP Playback parameter defaults _ 11 ATV Manager Test Vehicle defaults Should changes made elsewhere to Profile values be saved? Profile Autosave ===> Y (Y = YES, N = NO OR A = ASK) Should changes made elsewhere to dataset names be saved? DSN Autosave ===> Y (Y = YES, N = NO) Email address: _______________________________________________________________ Codepage: ISO8859-1 Job statement information for batch jobs: ===> //XXXXXXXA JOB ('ACCOUNT',5M-0000),'HIPERSTN', ===> // CLASS=Q,MSGCLASS=R,NOTIFY=&SYSUID ===> //* > //* The “Auditing Defaults for 3270 Screen” appears (Figure 22-7). Note: For easier display, the initial Profile screens have been combined. Figure 22-6 shows the profile selection screen. The Auditing screens in this section have been combined. Figure 22-7 shows all of the Auditing profile settings. On your actual screen, press FORWARD (PF8) or BACKWARD (PF7) to view all of the fields. Hiperstation for VTAM Profile Defaults 22-13 Figure 22-7. Auditing Defaults for 3270 Screen Hiperstation ----------- Auditing Defaults for 3270 ------------------------- Profile: HIPER Profile Dataset: 'USER2312.HIPER.PROFILE' OPTION ===> _________________________________________________ More: + Datasets: Registry DSN ===> ______________________________________________ Description ===> __________________________________________ Replace Existing Repositories? ===> _ 1 = Yes, 2 = Terminate Archive Request Criteria: Terminal ===> ________ Use an asterisk for wildcarding Application ===> ________ the Terminal, Application or Userid User ID ===> ________ fields. OR Global Record Manager List ===> ________ Second GRM List ===> ________ Recording Date and Time HH : MM : SS (Optional) MM / DD / YYYY Start Time ===> __ : __ : __ Start Date __ / __ / ____ End Time ===> __ : __ : __ End Date __ / __ / ____ ____ Search Request Information: Terminal ===> ________ Use an asterisk for wildcarding Application ===> ________ the Terminal, Application or Userid Userid ===> ________ fields. Search Date and Time HH : MM : SS (Optional) MM / DD / YYYY Start Time ===> __ : __ : __ Start Date __ / __ / ____ End Time ===> __ : __ : __ End Date __ / __ / ____ 2. Specify your Datasets information. – Registry DSN specifies the name of the dataset that contains the index to this archive recording request. You can enter a fully qualified dataset name up to 35 characters in length to allocate the repository registry. Repositories created by this archive record request will be based on the repository registry dataset name (i.e. a repository registry dataset of A.B.C would result in repositories being created from A.B.C.#0000001 to A.B.C.#9999999). – Description is an optional field that describes the archive record request. This description will be provided to the user when the user specifies an archive record request in the Create Search Reports function. – Replace Existing Repositories? specifies what should occur when archive record attempts to switch to a new repository segment and a dataset already exists that matches that repository segment dataset name. Select 1 or 2. 1. Yes deletes the existing dataset and creates a new dataset with the same name that is allocated with the same options as the initial repository dataset segment. Specify this option if it is imperative that the archive record request remain active. 2. Terminate terminates the archive record request. The archive record request will not start if any datasets exist that match the repository dataset specification. 3. Archive Request Criteria specifies the terminal LU, APPLID and User ID for which you want to create an audit record request. – Terminal is the logical unit name of the VTAM terminal to record. – Application specifies the VTAM Application ID to record. – User ID specifies the mainframe User ID to capture. For Terminal, Application, and User ID, you can specify one of the following: • A specific terminal or application up to eight characters or user ID up to seven characters. 22-14 Hiperstation for VTAM User Guide • An asterisk (*) to select all terminals, applications, or user IDs. • A terminal, application, or user ID prefix followed by an asterisk to select a group. For example, H8606* selects all terminals beginning with H8606. 4. Global Record Manager List and Second GRM List specify the name of a Global Record Manager INCLUDE or EXCLUDE list. If the specified name does not exist, the user will be presented with the “Global Record Manager * Add List Screen” to create the list before the search criteria is accepted. These fields can only be specified if the Terminal, Application and Userid fields are left blank. 5. The Recording Start and End Date and Time fields are optional. For a user profile, leaving the date and time blank is most useful. When a user specifies a time frame for the request, it becomes active at the designated start time. If no time frame is specified, it becomes active immediately. Capture begins when all of the criteria for an active request are met. If you enter a Start Time, you must enter a Start Date. If you enter an End Time, you must enter an End Date. Times are entered in a 24-hour clock. The range of acceptable year values is 2000 to 2040, and the end date and time must be later than the start date and time. 6. Search Request Information allows you to subset the Archive Search to either an individual session or a specific group of sessions, rather than the thousands of sessions a long-running archive might potentially contain. The three filter criteria provided match those available on the originating archive capture request. They are: – Terminal - The VTAM LU name of the terminal session. – Application - The VTAM LU name of the in-session application associated with a terminal session. – Userid - The signed on user ID of the user associated with a session. The user ID tracking facility of Global Recording must be active for user IDs to be captured in an Archive. All filter criteria can be completely wildcarded by specifying just an asterisk (*). Criteria can also be partially wildcarded by using an asterisk suffix (for example, Application: H01AC* selects those application names beginning with H01AC). 7. The Search Start and End Date and Time fields are optional. See step 5 above. For more details, see the online help. A-1 Appendix A. Customer Support Diagnostics Appendix A. App A The Customer Support Diagnostic Report produces a list of PTFs that have been applied to your installation. Customer Support may ask you to generate the report to aid in diagnosing an issue. Note: Generating this report requires READ access to the SMP/E datasets. Consult with your Security Administrator if you do not have the proper authority. To generate the Customer Support Diagnostic: 1. On the Hiperstation Product Menu, type PTFS on the Option Line and press Enter. The “Hiperstation - Diagnostics Screen” appears (Figure A-1). Figure A-1. Hiperstation - Diagnostics Screen ---------------------- Hiperstation - Diagnostics ------------------Command ===> Specify the install and output datasets, then press ENTER to continue. Input datasets to use: Global CSI dataset . . 'COMPWARE.QQF800.GLOBAL.CSI' Target Zone . . . . . . QQF800 Output datasets to use: PTF output list . . . . 'JSMITH.PTFS.REPORT' Job statement information for batch job: ===> //USER05 JOB ('ACCOUNT',99),'J.SMITH',REGION=0M, ===> // NOTIFY=&SYSUID,CLASS=A,MSGCLASS=R,USER=JSMITH ===> //* ===> //* The Global CSI dataset is the SMP/E Global CSI dataset. The Target Zone is the SMP/E Target Zone. These fields default to the dataset name and target zone established by your installer. The PTF output list is the sequential dataset to contain the report. 2. Complete the PTF output list field, insert a job card, and press Enter. Hiperstation submits the job. 3. Once the job has completed, view the report with ISPF. Figure A-2 shows a sample report. A-2 Hiperstation for VTAM User Guide Figure A-2. Customer Support Diagnostic Report ********************************* Top of Data ********************************** +---------------------------------------------------------------+ | Hiperstation PTF list 05/10/07 15:32:08 | | Loadlib: SYS2.HIPER.SQQFLOAD | +---------------------------------------------------------------+ QF43181 QF44415 QF45463 QF46350 QF47331 QF47364 QF47687 QF47857 QF48238 QF48264 QF48286 QF48302 QF48428 QF48749 QF48753 QF48864 QF48915 QF48950 QF48953 QF49143 QF49175 QF49197 QF49312 QF49420 QF49423 QF49451 QF49580 QF49647 QF50149 QF50220 QF50276 QF50354 QF50457 QF50731 ******************************** Bottom of Data ******************************** B-1 Appendix B. Hiperstation Script Tags Appendix A. App B Script File Format For ease of use and data manipulation, script data is recorded in a dataset. Some terminal control characters are recorded in the dataset. During edit, these control characters can cause a caution message to appear, which states that the data contains invalid (nondisplay) characters. Ignore this message. All records in a script begin with a script tag except comments, which begin with an asterisk (*). Script tags consist of a left bracket (<), a right bracket (>), and the characters between the brackets. These tags specify the type of data that follows. Data in the recorded script falls into three basic categories: control, input, and output. Use the following script tags to divide categories of data: <INPUT> and </INPUT> Specify the beginning and ending of the current input data group. <OUTPUT> and </OUTPUT> Indicate the beginning and ending of the current output data group. Within the input and output data groups, script tags indicate which PF key was used, the data entered, and in what field it was entered. In the output groups, the data recorded includes the response time and the screen output data. Control Script Tags * (asterisk) Comment tag. The remainder of the record is ignored. <ADDCALL> Adds a call to a REXX exec before each subsequent <INPUT> section. The user inserts this tag. For example, to call a routine CHECKER that takes an argument — SCREEN — type <ADDCALL>CHECKER SCREEN. If the REXX exec needs multiple arguments, concatenate them into one argument, pass the argument to the REXX exec, then parse the argument into its separate variables in the REXX exec. Note: Only one exec can be active at a time. If another <ADDCALL> occurs before a <DELCALL>, the routine it specifies replaces the first <ADDCALL>. <DELCALL> Removes a REXX exec added with <ADDCALL>. The user inserts this tag. <LOGICAL> Indicates that the script contains one <OUTPUT> group for a set of transmissions from the application rather than several <OUTPUT> groups per set of transmissions. This is inserted in your script by Hiperstation if you set option ETRMLOGI equal to Y. Note: The LOGICAL setting causes Hiperstation for VTAM to unlock the keyboard. B-2 Hiperstation for VTAM User Guide <VERSION> Identifies the version of the Hiperstation for VTAM script creation program that created the script. For example: The VERSION tag appears only once in a script. Notes: a. Do not modify the version tag value. Doing so can cause unpredictable results during playback. b. The version number may be different than the product release number. <IMSUNLOK>c Specifies whether special keyboard unlock processing will be performed. This processing is generally (but not always) associated with IMS. Valid values for c are Y (Yes) or N (No). <BASETIME> Specifies the date and time of the first input. <BASETIME> is used by the TIMESYNC parameter in unattended mode processing. <PAUSE> Temporarily stops or pauses the script during playback. Playback continues when you issue the RESUME command. The user inserts the <PAUSE> tag between an output and input group in the script: </OUTPUT> <PAUSE> <INPUT> <PAUSEI> Temporarily stops or pauses the script during playback. The pause takes place for only one interaction. The user inserts this tag to temporarily stop playback to insert sensitive or changing data, such as a password. Insert the <PAUSEI> tag between an output and input group in the script: </OUTPUT> <PAUSEI> <INPUT> <WAIT> Allows a script to be paused in batch. Optionally, you can send a message to the operator console. The user inserts this tag. A <WAIT> script tag causes a script to pause for a number of minutes and seconds. The tag can be placed anywhere in the script, but the WAIT is issued following the next OUTPUT group and before the next input is sent to the domain destination. Additionally, you can choose to send a message to either the batch session log, the MVS console operator, or both. Hiperstation Script Tags B-3 The amount of time Hiperstation for VTAM waits is the sum of the minutes and seconds specified on the WAIT statement. If the WAIT tag is in the script without a wait time, messages are still issued but without waiting. Use the text operand with the WTO or LOG operand, or both. If WTO or LOG is specified without a message text, Hiperstation for VTAM uses the message: EHSB142I: SCRIPT PAUSED BY USER REQUEST. Operand Description mmmm Specifies a number of minutes to wait. A valid range is 0 through 9999. ss Specifies a number of seconds to wait. A valid range is 00 through 60. WTO Indicates a message will be sent to the operator’s console. LOG Indicates a message will be sent to the batch session log. This operand is ignored during an online script playback. text Specifies the message text that will be sent to the operator’s console and the session log depending on the specification of the WTO or LOG operands. The message text must appear in quotes (single or double quotes), and the maximum length of the message text is 79 characters. WAIT examples include: <WAIT> <WAIT> <WAIT> 00,30 WTO "WE ARE PAUSED FOR 30 SECONDS" 5 WTO LOG "NOW WAITING" 5 WTO LOG "Now waiting for 5 minutes" <MASK> Allows specification of one or more generic or picture masks as described in “Masking Script Information” on page 5-16. The user inserts this tag. Comments are optional. The syntax elements are described below. Note: If neither row nor col are specified, the values default to all rows or columns. If present, the (row,col) identifier must begin in column 1 or be placed immediately after the <MASK> tag with no intervening space. row A specific row, or asterisk (*) for any row. col A specific column, or asterisk (*) for any column. literal Text enclosed in single or double quotes. picture-string A string of characters that represent data to be isolated. “Generic Masking Examples” on page 5-20 shows sample picture-string masks. Picture-string fields can begin in any column. IGNORE B-4 Hiperstation for VTAM User Guide (Optional). Specifies that if a mismatch occurs in the area that matches the literal/picture at the specified row and column, Hiperstation ignores the mismatch. IGNORE is the default. SKIP (Optional). Specifies that if the text on the actual screen matches the literal/picture at the specified row and column, Hiperstation will skip this screen during comparison. AND (Optional). Specifies that additional masking conditions exist on the next mask statement. These additional conditions must be true for the first mask tag to take effect. The syntax for these additional masking conditions does not include the IGNORE and SKIP parameters: Input Script Tags <INPUT> Indicates the beginning of the input data. <THINK> User’s think time in minutes, seconds, and thousandths of a second. The format of the tag’s value is MM.SS.TTT, where TTT is thousandths of a second. <CURSOR> The row and column position of the cursor when an attention key (such as Enter) was pressed. The row and column are relative to zero. <ICURSOR> Inserts data at the cursor. Its initial position is specified by the <CURSOR> script tag. <HOME> Moves the cursor to the first unprotected screen field. The user inserts this script tag. <TAB> Moves the cursor to the next unprotected screen field. The user inserts this script tag. <BACKTAB> Moves the cursor to the previous unprotected screen field. The user inserts this script tag. <KEY> Indicates the Attention Identifier (AID) key sent to the domain destination. <Inn> Places data in an unprotected field. The nn designates the input field number on the screen, relative to one (1). <I(row,col)> Places data in an unprotected field at the specified row and column. The row and column are relative to one. The user inserts this script tag. Hiperstation Script Tags B-5 <Cnn> A continuation of the previous input field (<Inn>). <C(row,col)> Places data in an unprotected field. Indicates that a continuation of the previous input data be placed at the specified row and column. The row and column are relative to one. The user inserts this script tag. <Nnn> Places Hiperstation encrypted data in an unprotected field. The nn designates the field number on the screen, relative to one (1). <N(row,col)> Places Hiperstation encrypted data in an unprotected field. Specifies that the encrypted input data be placed at the specified row and column. The row and column are relative to one (1). The user inserts this script tag. <Pnn> Places Hiperstation encrypted data in an unprotected field. The nn designates the input field number on the screen, relative to one (1). Input fields are recorded in this manner only when they are modified using the light pen or the Hiperstation PEN command and the cursor is used to select the data. <P(row,col)> Places Hiperstation encrypted data in an unprotected field. Indicates that the encrypted input data be placed at the specified row and column. The row and column are relative to one (1). Input fields are recorded in this manner only when they are modified using the light pen or the Hiperstation PEN command and the cursor is used to select the data. The user inserts this script tag. </INPUT> Indicates the end of the current input data group. Output Script Tags <OUTPUT> Shows the beginning of the output data. <SECOND> Placed between consecutive output screens. Indicates that even though the previous output from the application specified keyboard unlock, the application sent another output. There are 3 requirements that must be met in order for the <SECOND> tag to be produced. They are: Requirement 1: The output message is followed by another output message instead of an input message. Requirement 2: When the first output message is sent, at least one of these three events must happen: 1. The message itself has a bit turned on, which means to restore the keyboard. 2. VTAM is in conversation mode and is using bracketing, and the end bracket bit is turned on. 3. VTAM has issued a change of direction. B-6 Hiperstation for VTAM User Guide Note: When the “KB RESTORE ACTION” (In Domain Traveler, 'Change Session Options, on the 'Application Profile Settings' panel) is set to “2”, then only events (2) and (3) are checked. Requirement 3: Hiperstation has waited at least a certain amount of time, per timing settings in Domain Traveler or parameter keywords in Unattended Playback if dubbing is specified, without detecting the next output message. <RESPONSE> Shows the domain destination’s response time in minutes, seconds, and thousandths of a second. <Snn> An output screen line record. The nn designates the row number of the screen, relative to one (1). <Cnn> A continuation of the previous output line (<Snn>). The nn designates the row number of the screen, relative to one (1). <HEX> An input or output line represented in hexadecimal format. These lines represent the true image of the application data stream. Each <HEX> tag includes a character representation of the data stream as a comment ( /*...*/ ). <MSK> Encrypted mask positions in the previous line. This is used with the <Nnn> input script tag to indicate encrypted positions. I<Snn> An output screen line record. The I prefix indicates that line nn on this screen will be ignored during comparison. See “Using Row Masks” on page 5-16 for more information. Note: Hiperstation provides this at record time. However, it can be edited out of the script to modify playback control. G<Snn> An output screen line record. The G prefix ignores the line nn on this and all following screens during comparison. See “Using Row Masks” on page 5-16 for more information. Note: Hiperstation provides this tag at record time. However, it can be edited out of the script to modify playback control. X<Snn> An output screen line record. The X prefix removes or resets any previous global masking (G) for this line (nn). See “Using Row Masks” on page 5-16 for more information. Note: Hiperstation provides this tag at record time. However, it can be edited out of the script to modify playback control. </OUTPUT> Indicates the end of the current output data group. Hiperstation Script Tags B-7 Individual Character Mask Script Tag The individual character mask script tag is another masking tag that contains no prefix. It consists of the letter I, which is placed in the rows immediately below those characters to be masked. This mask tag specifies which characters on the immediately preceding record of the output screen to ignore during comparison. See “Mask Individual Characters” on page 5-18 for more information. Edit Function Commands Edit function commands include SCUT and SPASTE described below. SCUT 1|nn Screen Cut places one or more screen images on an ISPF clipboard for later use by the SPASTE command. ‘nn’ indicates the number of screen images to place on the clipboard. The default is 1. When more than one screen is cut, they are gathered from the previous screens to the one currently displayed. For example, SCUT 5 places five screen images on the clipboard. If you are currently displaying screen number 17 and enter SCUT 3, screens 15, 16, and 17 are cut. BOX draws a box around the screen image. SPASTE Screen Paste copies one or more screen images from the ISPF clipboard and places them in the current Edit session. The screen images are then deleted from the clipboard. Note: The SPASTE command is available only in ISPF Edit. DELETE Deletes the screens from the clipboard after they are copied. The default is DELETE. KEEP Keeps the screens on the clipboard after they are copied. Script Initialization Compuware added the <INIT SECTION> tag to the end of the script to accommodate application profiling. <INIT SECTION> contains control information that is gathered during recording, and is useful during playback. <INIT SECTION> currently includes query reply (<QREPLY>) buffers. Do not modify <INIT SECTION>. B-8 Hiperstation for VTAM User Guide Note: <INIT SECTION> is optional. It is not required for playing back scripts that do not use application profiling. G-1 Glossary job must be processed to completion before the following job can begin execution. Batch is the converse of an interactive or online task. This glossary gives a brief description of Hiperstation for VTAM terms, and other related terms referred to in this document. capture segment summary report. A report that indicates when recording began and ended for each segment of one or more specified capture repositories. You can use it to help you identify the information contained in each segment. For example, generate this report to script activity that was captured on Monday morning from 8:00 am to 12:00 pm if you are unsure which repository segment contains the information. You can import the report into a spreadsheet or database for easy manipulation. 3270 script. A series of input and output groups. The input group represents the actions taken at the terminal by the user. It records the data entered in each of the input fields and the PF key that was pressed to transmit the data. The output group records the output from the transaction. This data includes the output screen images and the response time of the transaction. 3270 summary report. A report that details performance and mismatch information from running 3270 scripts using unattended playback. This report summarizes the activities by script and virtual terminal within a group. abend. ABnormal END of task. The termination of a job, prior to normal completion, due to an unresolved error condition. APPC. Advanced Program-to-Program Communications. A protocol in a distributed environment that allows programs to talk to each other and interconnected systems to communicate and share the processing of programs. APPC conversation. The activity that occurs between ALLOCATE and DEALLOCATE. archive/search function. A Hiperstation option that allows you to create archive record requests. A request is started and repositories are generated based on filter criteria. The registry dataset contains entries that indicate the date and time ranges of each generated repository segment so that the Archive/Search function can locate specific datasets by date and time. autodoc. Automated Documentation. A feature that helps you produce documentation for online systems. Autodoc automatically creates document skeletons or boilerplates consisting of document format characters, a running title, screen images, user input data, and short titles leading to the screen’s description. You can print autodoc-created datasets or transfer them to a PC for use as word-processing input. batch. Processing in which jobs are submitted and processed in the background. The jobs run unattended and are executed sequentially. Each CICS. Customer Information Control System. An IBM-licensed program that enables transactions entered at remote terminals to be processed concurrently by user-written application programs. It includes facilities for building, using, and maintaining databases. CNOS. Change Number of Sessions. command. Request from a terminal to execute an operation or program. COMMAND field. Field in which you enter commands to execute an operation or program. comparison log. A log that is activated during script playback to show, in hardcopy format, each of the received and expected screens as well as identifying miscompares. control file conversion utility. A utility to convert control files used by prior releases of Hiperstation for VTAM’s REXX script processor to the format required by Hiperstation for VTAM 6.1 and more current releases. If the control file is a dataset, you can convert all members inside the dataset at the same time, or perform a selective conversion. Also, Hiperstation for VTAM can process either in the foreground or background (batch). The Control File Conversion utility does not validate control file entries. CPIC. Common Programming Interface for Communications. customer support diagnostics report. A report that produces a list of PTFs that have been applied to your installation. Customer Support may ask you to generate the report to aid in diagnosing an issue. G-2 Hiperstation for VTAM User Guide CSV. Comma Separated Value. A report format that is available for custom Playback reports. Some basic reports support only HTML while others support TEXT and HTML. DASD. Direct Access Storage Device. Any peripheral device that is directly addressable, such as a disk or drum. data replacement. A script processor to be used when the recorded script performs an action that causes an application to show a unique output field on a screen that is later used as input to that application. The selected value from the output field is then used to replace matching input fields further in the script. The data to be replaced must be in output fields generated by an application, not input fields. dataset. Refers to files stored on an IBM mainframe computer. Datasets can be organized in various ways, such as logical record and block structures. date change script processor. A date change script processor that allows you to move dates forward in baseline Hiperstation for VTAM scripts. The date change script processor finds date input and output fields (such as a delivery date) in recorded scripts, then transforms the year portion of the date from a two-digit to a four-digit number. date find script processor. A script processor that is designed to assist testing applications where dates are important. The date find script processor searches through the output screens of recorded Hiperstation for VTAM scripts and finds date fields. The date fields that it finds are listed in a report. date recalculation function. A function of the REXX script processor that handles situations where a script has dates that vary based on the date of the script playback. When this happens, the recorded date may not be valid when the script is played back. See also, multi-field date recalculation. DB2. DATABASE 2. IBM’s database management system that provides a relational model of data. DB2 runs as a subsystem of MVS and on other platforms. DBCS. Double Byte Character Set. Used primarily to display Japanese Kanji characters during 3270 testing. domain destination. A software application or subsystem designed to facilitate interactive transactions. Domain Traveler. Provides an interactive connection to the application or subsystem you are testing. Use it to record your activity, play back recorded scripts, compare recorded scripts to live activity, and dub new testing scripts. dubbing. A Hiperstation for VTAM feature that allows you to create new test scripts using previously recorded sessions. This is useful when adding new transactions to an existing script or rerecording screen images to a new script. Hiperstation for VTAM can be set to automatically record the new script while playing back the existing script. You can also instruct Hiperstation for VTAM to record the new script only when a mismatch occurs. Dubbing provides many ways for you to customize scripts, allowing you to combine multiple scripts into a single script, update an existing script with new screen images, append transactions to the middle or end of a script, update an existing script with new or additional input, and update masked data. dump. Hexadecimal representation of storage that may contain data useful for diagnosing an error. end-user recording. An option that automates capture of end-user activity and allows individuals with no knowledge of TSO to create recordings or scripts for later use in regression testing. Enterprise Common Components (ECC). The shared components of mainframe Compuware products, that provide Compuware License Management System. ESDS. Entry-Sequenced Dataset. VSAM dataset whose records are loaded in sequence. Unlike a normal sequential dataset, ESDS records can be accessed randomly by their addresses. EURO script utility. A utility that allows you to change Hiperstation for VTAM 3270 formatted scripts. It searches selected scripts for any currencies defined by the user and, if desired, makes the conversion from one currency to another. This utility enables you to add, delete, alter, copy, and move fields within a screen. The fields can be part of an OUTPUT or INPUT message. The utility is able to add new screens as well. The Euro script utility is an optional feature that requires a license to access it. exception. (1) An abnormal situation that may occur during a program’s execution that may cause a deviation from the normal execution sequence, and for which facilities exist in the programming language to define, recognize, ignore, or handle it. (2) An abnormal condition such as an I/O error encountered in processing a dataset or file. G-3 exception log. A log that is activated during playback to show, in hardcopy format, only those received and expected screens that had mismatches. It is activated through the Domain Traveler screen. explicit dubbing. Records a new script while playing back another script. Using explicit dubbing, you start a record, then start your playback. file. Set of related records that are organized and treated as a unit. GDG. Generation Data Group. generic masks. A parsed string that allows you to make conditional masking decisions based on screen content. global masking. A technique for masking each screen in a script. Often, fields such as userID, terminal ID, or date and time appear in the same area of the screen. Global masking allows you to mask the fields in the beginning of the playback script. Hiperstation for VTAM retains the masked status of the screen area throughout playback. global record manager. A Hiperstation for VTAM function that builds lists of applications, terminals, and user IDs to include or exclude from recording. Global Record Manager Lists provide greater flexibility in defining Global Recording requests. global recording. An option that captures the activity of one or more users. This option writes the activity to a repository that generates testing scripts. It records LU0 and3270 traffic to generate stress tests or to archive activity for audit purposes. It also captures LU6.2, TCP/IP and MQ data. You can record while groups of users perform their daily routines and choose the exact terminals, applications, and time frames to record. You can choose to include or exclude certain messages from recording based on a predefined list of messages. Message filtering provides a script that contains a subset of the messages from the 3270 session. You can also create and reuse lists of user IDs, logical unit (LU) names, or applications that can be included or excluded from a session. implicit dubbing. Creates a new version of an existing script. You can add transactions to the new script, change the inputs, and update the masks. Implicit dubbing does not allow you to combine multiple scripts into one because the dubbing ends when the script ends. Using implicit dubbing, you start playback and set dubbing=y. IMS. Information Management System. IBM’s hierarchical database information management system and transaction processor capable of managing complex databases and networks. input field reformat script processor. A processor to change input field formats in Hiperstation for VTAM scripts from the relative sequence number format, <Inn> to the row and column location format <I(rr,cc)>. interactive playback. Stops at each screen to let you review the input and output data. In interactive mode, input data can be changed allowing you to modify playback activity without having to rerecord the script. interactive recording. Hiperstation for VTAM’s recording option (in Domain Traveler) that captures single-user activity on a keystroke-by-keystroke basis during a session and stores it in a script as a dataset member. You can start and stop recording at any time during the session. ISPF screen mode. An interactive screen mode. The screen image from the domain destination appears in an ISPF window. With a domain destination in an ISPF window, you can use the same physical 3270 for both your ISPF session and your domain destination session. Normal SPLIT and SWAP keys let you go back and forth between sessions. The ISPF print command allows domain destination screens to be recorded in the ISPF list dataset. All of the functions of a 3270 terminal are available in ISPF mode. JCL. Job control language. A job or task control language that describes how a job or task will be executed. All non-operating system tasks (batch or online) use JCL to execute in MVS/JES2. line command. Command that is typed directly on the line to be processed. GMT. Greenwich Mean Time. GST utility. Goods and Services Tax Utility. An optional script processor option that requires a license for access. The GST utility locates up to five fields that you specify on output screens and makes them available for use in REXX routines that you write. The GST utility also lets you read a VSAM file in a REXX routine. IGND. Ignore Numeric Differences. list processing function. A function of the REXX script processor that handles situations where the application being tested presents a screen containing a list of rows from which the user can select. It is possible that the row originally selected during the recording moves to a different location in the list before playback. When this happens, you can use the list processing function to enhance playback so the script always selects the original row, even if it has moved within the list. G-4 Hiperstation for VTAM User Guide LU type. Logical Unit type. Choices for Hiperstation for VTAM include 3270 or APPC. masking. A function that instructs Hiperstation for VTAM to ignore certain screen information, such as date and time fields, during comparison. Hiperstation for VTAM can also generically mask selected alphanumeric characters on a screen. You can mask when recording or dubbing a script or with ISPF edit. You can also globally mask out screen information for the entire script. There are two basic mask types: row masks and generic masks. message filtering. A function that allows you to create a new script by taking an existing script and removing certain transactions or messages. Using REXX code, you choose which messages to include and exclude in the new script. You can filter messages from Global Record or from the unattended (batch) message filter program. With message filtering, you can simplify testing by producing scripts that contain a single message for testing one message at a time, remove messages that contain confidential data, reduce script size by eliminating messages of no interest. monitor requests. An option for creating, managing, and monitoring Global Recording requests. You can record all of the APPC, 3270, or LU0 traffic on the system or specify the logical unit names, network IDs, logmodes, TP names, terminals, applications, or user IDs to record. You can set up the recording request to initiate script creation when the recording request ends or suspend script creation and generate scripts later. Monitor requests is also an option for creating, managing, and monitoring TCP/IP data that passes through this MVS system. multichange script processor. A script processor that allows you to change scripts to reflect application changes without re-creating those scripts. This script processor creates and maintains these modification requests and runs them in background or foreground mode. multi-field date recalculation. A REXX script processor function that allows you to recalculate input and output dates that span fields, such as when the month, day, and year are contained in different fields. The multi-field date recalculation function has Add, Update, Browse and Delete options that work similarly to the REXX date recalculation options. See also date recalculation function. MVS. Multiple Virtual Storage. The primary operating system used on large IBM mainframe computers. It is packaged as the operating system component of OS/390 and z/OS. It was packaged separately as MVS/XA (eXtended Architecture), MVS/ESA (Enterprise Systems Architecture), and OS/MVS. Through its evolution, the core operating system has remained fundamentally the same. Most programs written for MVS can run on z/OS without modification. non-stop playback mode. You see each screen as it occurs in the script. The keyboard is locked to prevent data input. Three non-stop playback options are provided: • Full Speed: Transactions are replayed as quickly as the system can play them. • Recorded Think Time: Think time, the amount of time between each recorded user action, is simulated using the think-time value recorded in the script. • Chosen Think Time: You set a think-time value for each transaction — in seconds or as a percentage of the recorded value. When Hiperstation for VTAM encounters a mismatch, script playback stops. When you resume playback, it continues in non-stop mode. In this mode, you see screens only when a mismatch occurs. This eliminates the need to review screens that have not changed. offset. A relative location or position within a data area. operating system. Software that controls the execution of jobs. It may provide resource allocation and scheduling. operation exception. An operation exception occurs when the CPU attempts to execute an instruction with an invalid operation code. The operation code may be unassigned, or the instruction with that operation code may not be installed on the CPU. OS. Operating System. PIU. Path Information Units. PDS. Partitioned Dataset. PDSE. Partitioned Dataset Extended. PF keys. Program Function keys. ISPF uses PF keys for many commonly used functions such as <End>, <Repeat Find>, and <Scroll>. For example, pressing the PF3 key in ISPF usually sends the <End> command to the application. Most terminals have 24 PF keys. PF key mapping. A method for assigning functions to your PF keys. If your terminal has 24 PF keys, you can assign some of them to the domain destination. ISPF uses the rest of the keys. Gener- G-5 ally, PF1 through PF12 are mapped to PF1 through PF12 for the domain destination, and PF13 through PF24 are seen directly by ISPF. This map correspondence is established on the Session Options screen. PIU. VTAM Path Information Units. PLU. Primary Logical Unit. The logical unit that is being accessed by the SLU. See SLU. primary command. Command that provides a general function and is entered in the COMMAND field. playback. A function that allows you to play back scripts online in either interactive or batch mode without manually rekeying transactions. Online playback allows you to play back previously recorded scripts in interactive or non-stop (full-speed) modes. In addition, you can play back scripts in a batch environment using unattended playback. quick play. Initiates interactive playback without accessing Domain Traveler. Quick Play can display a list of all scripts in a selected dataset if you are unsure of the name of the script you wish play. You can also browse or edit scripts from Quick Play. recorded think time. A non-stop playback option. Think time, the amount of time between each recorded user action, is simulated using the think-time value recorded in the script. review repository. An option for viewing a list of the sessions captured in a given recording. You can generate scripts from selected sessions or for entire capture repositories. You can save the specified script creation criteria in the affiliated recording request or discard it after script creation. REXX log. A log that records the text of REXX SAY statements. These statements can be used to track script progress. REXX script processor. A processor that automates writing REXX routines in Hiperstation for VTAM scripts. It helps you create “smart” scripts. The REXX script processor modifies previously recorded scripts and inserts REXX instructions and routines into them. REXX provides logic in the scripts to enhance the playback process. The logic in these processed scripts automatically handles common obstacles presented when testing applications such as SAP. row masks. Characters inserted into a script to mask an entire screen row or selected columns within the row. script association. An association between a File Manager item and a Hiperstation for VTAM script. script association version. An association between a single script and more than one piece of JCL to access multiple sources of information (such as multiple databases) before recording. This is helpful during regression testing. script language tokens. Consist of variable names, arithmetic operators, constants, and other language constructs. script tags. Tags that specify the type of data that follows. Script tags consist of characters between a left bracket < and a right bracket >. Data in a recorded script falls into three basic categories: control, input, and output. security script processor. A processor that searches for and updates obsolete passwords in scripts. As scripts age, the passwords they contain can become invalid if users change their passwords. If a script contains obsolete passwords, you cannot play them back without user intervention, and you cannot play them back in unattended mode. session demo. A script demonstration tool that plays 3270 scripts without initiating the application from which the scripts were derived. Use it for inspecting a script’s contents, training personnel, demonstrating the screen flows of application prototypes. Session Demo supports interactive and non-interactive demonstration. Use Session Demo commands to move backward and forward through the screens in the script, locate a specific screen, and copy and paste screen images into an ISPF Edit session. STIME. Start time. STIME indicates the date and time when a script was originally recorded. STIME is used on the GROUP statement in the 3270 session log by Global Record. STIME is used in conjunction with USESTIME. storage. A functional unit into which data can be placed and from which it can be retrieved. subtask. Task initiated and terminated by a higher order task. suppress play screens. A function that allows you to play a script in a pseudo-background mode. The screens from the domain destination will not be displayed on your physical terminal. Your keyboard will remain locked and a message will appear on your screen indicating that play is in progress. synchronization. A situation where the application being tested unexpectedly generates messages G-6 Hiperstation for VTAM User Guide saying that it is busy or blocked (such as ‘Processing...’). If these messages appear during the recording and not the playback, or vice versa, the playback can get out of sync with the application. The REXX script processor notes these messages in the recorded script and as the playback runs. When such a message is encountered, the script takes the appropriate action to get past the message without getting out of sync with the application. This is a REXX script processor option. TCP/IP. Transmission Control Protocol/Internet Protocol. Communication protocols on which the Internet and most commercial networks run. terminal input substitution. A method for substituting or assigning constants and variables to the input of a Hiperstation for VTAM script. In stress testing, where multiple terminal sessions are involved, systems often require unique user ID and password data for each session. Hiperstation for VTAM’s table processing and variable substitution allows a table of users to be read in and substituted based on criteria such as the session’s terminal ID or port number. think time. The amount of time between each recorded user action. THOPT. Think option. A playback parameter that forces the group to play back at approximately the same speed as it was recorded. THOPT in APPC is used on the ALLOCATE/ACCEPT statements. THOPT in TCP/IP is used on the CONTROL statement and/or the SOCKET statement. trace. Record of the execution of a computer program; it exhibits the sequences in which the instructions were executed. transaction. A unit of processing, which consists of one or more application programs, begun by a single request (usually from a terminal). transaction journal. A Hiperstation for VTAM feature that produces an audit trail of all transactions entered into the system and the responses received while the journal is active. It records all inputs and outputs of a user session in screenimage format for easy reference. It shows the user’s think time, the system’s response time, and the session’s elapsed time. The journal is recorded on DASD for online review or subsequent printing. unattended comparison. An unattended batch comparison program that compares two scripts with the same name, one in the DUBLIB (actual), one in the SYSLIB (expected). Unattended comparison reports are then produced by this batch program, which is called ETRMCMPR. unattended dubbing. A feature that allows you to dub scripts during unattended playback. With unattended dubbing, you can combine all scripts for a group into one script or create a dubbed script for each script within a group. unattended message filtering function. An option in the script processor that creates new scripts by taking existing scripts and including or excluding certain messages. This function simplifies testing by producing scripts that contain a single message allowing you to test one message at a time, removing messages that contain confidential data, and reducing script size by eliminating messages of no interest. unattended mode statements. Input control statements for Hiperstation for VTAM’s unattended playback, dubbing, and comparison functions. It includes statements for LU0 or 3270 processing. The statements control variables such as domain destination selection, the number of terminals, and the scripts to run. unattended playback. A function that allows you to play back scripts containing the recorded activity using JCL in a batch environment. Unattended playback can play back multiple scripts on one or more virtual terminals. These virtual terminals can be signed on to one or more VTAM-based domain destinations. Unattended playback eliminates the need for weekend and after-hours testing. By running a batch job, you can perform regression, concurrency, and stress tests. You can also perform tests with multiple online regions for capacity planning and performance tuning. If your script contains REXX logic, you can use data from an external file to generate additional input data to populate your database. USESTIME. Use Start Time. A playback CONTROL statement parameter that forces playback of the groups relative to each group’s STIME (a parameter that indicates when that first transaction in the group began). Apply the USESTIME parameter and modify the STIME to stagger playback. USESTIME is on the CONTROL STATEMENT for APPC and on the CONTROL and/or SOCKET statement for TCP/IP. VSAM. Virtual Storage Access Method. An access method for direct or sequential processing of fixed and variable length records on direct access devices. VTAM. Virtual Telecommunications Access Method. Set of programs that control communication between terminals and application programs. Web-based compare log. A compare log that initially presents a summary page. You can then access comparison detail from links on the sum- G-7 mary page. Access the search feature from either the summary or detail pages. WebSphere MQ. An IBM network communication technology that is part of a suite of WebSphere products. It provides the ability for independent programs on a distributed system to communicate with each other. Formerly called MQSeries. XLN. Exchange Log Name. XML. Extensible Markup Language. A language that is capable of describing many different kinds of data. The XML file can contain the data as well as the data description or structure. Its purpose is to share data across different systems. z/OS. IBM enterprise mainframe suite of product components, one of which is the MVS operating system. It is used to build and deploy Internet and Java-enabled applications, providing a comprehensive and diverse application execution environment. Zoom mode. An alternate to ISPF screen mode. When in Zoom mode, all PF keys are passed through to the domain destination, so no PF key mapping is necessary. In addition, because Zoom mode takes over the whole screen, the entire screen shows so you do not need to scroll. To toggle back and forth between the ISPF and Zoom modes, press the Zoom key, PF23. You can use Zoom mode at any time while interacting with the domain destination. From Zoom mode, press PF23 to return to ISPF mode. G-8 Hiperstation for VTAM User Guide I-1 Index Numerics 3270 application testing, 5-1 generate statements, 6-2 recording scripts, 5-1 reporting, 20-1 summary report, 20-6 unattended processing, 6-1 3270/LU0 capture criteria, 10-4 A accessibility, xxiii font and font size, xxiv keyboard shortcuts, xxv windows accessibility features, xxiv active sessions, view, 10-14 add data replacement entry, 12-7 date recalculation entry, 12-12 dubbing to end of a script, 5-22 Global Record Manager list screen, 10-21 Global Recording request, 10-3, 10-14 GST request, 18-2 list processing entry, 12-22 multi-field date recalculation, 12-17 synchronization entry, 12-27 <ADDCALL> control script tag, B-1 <ADDCALL> statement, 12-27, 12-38 Adobe Reader, xix AID key, 7-12 allocate comparison log, 7-15 REXX log, 7-17 REXX script processor control file, 12-2 script dataset, 2-1–2-2 trace, 7-19 transaction journal, 7-14 <ALTER> card, 12-35 application profile, 7-12 settings, 3-4 archive function, 11-1 overview, 1-2 requests, 1-2, 11-3 archive/search, 1-2 assets reusability, 4-1 ATTENTION key interrupt non-stop/screen suppression modes, 5-10 ATV copy, 4-1 ATV Manager, 1-2, 4-1 overview, 4-1 auto display mode, session demo, 9-4 auto documentation parameters, 22-6 AutoDoc facility, 22-6 automated documentation, 1-7, 20-4 autodoc setup, 20-4 automated documentation utility, 9-3 output dataset name, 20-5 sample report, 20-5 start, 20-4 Automated Testing Vehicle (ATV) Manager, 1-2 B background execution REXX script processor, 12-31 <BACKTAB> input script tag, B-4 <BASETIME> control script tag, B-2 batch message filter, unattended, 19-1 XML parser, 10-24 batch jobs, 22-11 bind wait time interval, 7-7 browse data replacement entry, 12-10 date recalculation entry, 12-15 GST request, 18-5 list processing entry, 12-24 multi-field date recalculation, 12-19 reports, 10-51 synchronization entry, 12-29 build JCL, unattended processing, 6-11 C CACHE EXCLUDE statement parameters, 6-9 CACHE INCLUDE statement parameters, 6-9 CACHEXCL statement, 7-4 CACHINCL statement, 7-4 cancel Domain Traveler session, 3-7 Global Recording request, 10-13, 10-40 recording, 5-4 capture criteria, 3270/LU0, 10-4 capture file parameter tags, 10-30 capture file specification tags, 10-45 Capture Segment Summary Report, 10-49 CLOGGEN DD statements, 21-2 column key lists, 12-23 comment control script tag, B-1 COMPANY statement, 7-4 parameters, 6-9 compare last image only, 7-15 compare log index, 21-4 navigation pane, 21-6 system display settings, 21-10 compare log summary report detail, 21-6 COMPARE statement, 7-4 parameters, 6-8 compare test results, 1-4 I-2 Hiperstation for VTAM User Guide comparison and exception logs, 20-9 allocate comparison log, 7-15 comparison log, 7-5 convert to HTML reports, 21-1 log report, 20-10 start, 20-11 start comparison log, 20-9 stop, 20-10, 20-12 comparison check, 20-8 comparison function, 5-11 mask screen areas, 5-16 mismatch condition, 5-11 option settings, 5-12 comparison options, 5-12 control file conversion utility, 12-3 input control file name, 12-4 output control file name, 12-4 start, 12-3 control file, REXX script processor, 12-2 CONTROL statement, 7-7 LU0, 7-31 message filter parameters, 19-20 parameters, 6-3 CONTROL TRACE keyword, 7-22 create Global Recording request, 10-2 Global Recording scripts, 10-43 scripts, 10-15 search reports, 1-2, 11-3 currency file, Euro, 17-2 current date, user-defined, 12-11 <CURSOR> input script tag, B-4 <CURSOR> statement, 12-42 customer support, xxvi Customer Support Diagnostic Report, G-1 diagnostic report, A-1 customize scripts, 1-5 D data replacement add entry, 12-7 browse entry, 12-10 delete entry, 12-9 REXX script processor, 12-5 start, 12-7 troubleshoot, 12-39 update entry, 12-9 datasets manage script dataset allocation, 2-1 recover migrated, 2-2 reuse, 2-2 store captured information, 10-5 date format, 7-10 start and end, 10-29 user-defined, 12-11 date change script processor, 13-1 run, 13-6 date find script processor, 13-7 use, 13-8 date recalculation, 12-10 add entry, 12-12 browse entry, 12-15 delete entry, 12-15 multi-field, 12-15 start, 12-12 troubleshoot, 12-40 update entry, 12-14 user-defined current date, 12-36 DBCS support, 1-7 DCIADXL2 sample, 10-27 DCIJCL check status of requests, 10-39 create Global Recording request, 10-24 generate parameters skeleton, 10-43 manage Global Recording requests, 10-40 VIEW function, 10-42 <DELCALL> control script tag, B-1 delete data replacement entry, 12-9 date recalculation entry, 12-15 GST request, 18-5 list processing entry, 12-24 multi-field date recalculation entry, 12-20 multichange script processor field, 15-7 repository, 10-13 repository datasets, 10-41 synchronization entry, 12-29 delta screen mismatches, 5-14 demonstrate scripts with session demo, 9-1 Differences screen mismatches, 5-15 disable Global Recording request, 10-14, 10-41 DLOG, 7-13 documentation master index, xix domain destination communicate with, 3-5 contact from Hiperstation for VTAM, 3-2 send data to, 3-7 Domain Traveler, 3-2 application profile settings, 3-5 cancel session, 3-7 Destination Entry screen, 5-1 domain destination, 3-2, 3-5 end a session, 3-7 entry screen, ISPF mode, 3-6 screen, 3-3 send data to the domain destination, 3-6 session options, 3-3 session status area, 3-6 status line, 3-6 virtual terminal display, 3-7 virtual terminal presentation space, 3-6 dubbing, 1-5, 22-4 add to the end of a script, 5-22 exclude scripts from dubbing, 7-25 explicit dubbing, 5-22 function commands, 5-27 GROUP statement parameters, 6-7 implicit dubbing, 5-26 insert in the middle of a script, 5-23 log, 7-13 scripts, 5-22 unattended, 7-1 unattended playback, 7-1 unattended processing, 1-5 DUBTITLE statement, 7-10 parameters, 6-9 I-3 E edit function, 5-28 <WAIT> script tag, B-2 commands, B-7 PDS file format, 5-28, B-1 script initialization, B-7 edit scripts, 1-4 EHSB074I message, 7-10, 7-19 EHSB075I message, 7-7, 7-17, 7-21 EHSB098I message, 7-29 EHSB142I message, B-3 EHSBATCH unattended mode program, 7-1, 7-4 EHSDFLT parameters, 2-2, 2-4 EHSFLTR message filter program, 19-1, 19-11, 19-22– 19-23 EHSSRCVY script recovery utility, 2-3 embedded dates, 13-5 EMTRM051 message, 7-8, 7-14 EMTRM054 message, 7-8, 7-14 end date and time, 10-29 end of message formatted scripts, 19-6 unformatted scripts, 19-8 end-user recording, 1-3 error event notification Global Recording, 10-6 errors recording request, 10-48 script create, 10-49 ETRMCMPR batch program, 7-1 ETRMLOGI option, B-1 ETRMSPAR member, 3-4 ETRMSPAR screen, 7-9 Euro script processor, 17-1 control card descriptions, 17-11 control files, 17-4 currency cards, 17-7 currency conversion, 17-11 member lists, 17-3 submit script utility job, 17-10 update control file item, 17-5 use, 17-1 Euro script selection list, 17-3 event notification, 10-32, 22-10 tags, 10-46 exception log, 7-19, 20-9 start, 20-11 stop, 20-12 exception log converter sample JCL, 21-1 text-to-Web compare, 21-1 EXCLUDE statement message filter parameters, 19-21 exit processing REXX message filter, 19-2 Expected screen, 5-15 explicit dubbing, 5-22 F FEEDBACK DD request keys, 10-39 VIEW, 10-42–10-43 filter messages, 19-1 filters, script creation, 10-11 first number 3270/LU0, 22-9 font and font size, accessibility, xxiv force at end time option, 10-29, 10-32 Global Recording request, 10-5–10-6, 10-13, 10-41 report consolidation, 7-7 FORCE request, 22-10 foreground execution REXX script processor, 12-31 formatted scripts end of message, 19-6 start of message, 19-4 FrontLine, xx support Web site, xxvi full-screen (zoom) mode, 1-8 G general script criteria tags, 10-33 GETVSAMR, 18-1 global CSI dataset, A-1 global masking, 5-18 global record manager, 1-2, 10-1, 11-3 add list screen, 10-21 copy an include/exclude list, 10-22 copy list screen, 10-22 define lists, 10-19 include/exclude lists, 10-20 list, 10-4, 10-19 new list, 10-21 Global Recording, 1-3 access, 10-1 add request, 10-3, 10-14, 10-23 administrator access, 10-22 batch interface, 10-23 begin capture, 10-2 cancel request, 10-13, 10-40 Capture Segment Summary Report, 10-49 check status of request, 10-39 create request, 10-2, 10-23 create scripts, 10-43 define script creation criteria, 10-7 disable request, 10-14, 10-41 error event notification, 10-6 force request, 10-13, 10-41 generate request parameters skeleton, 10-43 include/exclude lists, 10-19, 10-21 KEYS function, 10-39 lost transactions, 10-15 manage requests, 10-40 message filters, 10-9 monitor requests, 10-1, 10-3, 10-12 parameter syntax, 10-25 protocol parameter, 10-27 request parameters, 10-26 requests, 10-1 restart request, 10-13, 10-41 retrieve parameters from existing request, 10-42 review repository, 10-1 script create parameters, 10-44 session log, 10-10 stop request, 10-13, 10-41 I-4 Hiperstation for VTAM User Guide switch segments, 10-14, 10-41 troubleshoot failed jobs, 10-48 update request, 10-14, 10-41 VIEW, 10-42 view active sessions, 10-14 view sessions being captured, 10-14 global search manager, 11-3 GMT (Greenwich Mean Time), 10-50 GROUP statement, 7-11 LU0, 7-32 GROUP statement parameters, 6-4 connection, 6-5 documentation, 6-5 dubbing, 6-7 timing, 6-6 GST (Goods and Services Tax) utility, 18-1 add request, 18-2 browse request, 18-5 delete request, 18-5 examples, 18-7 execute request, 18-5 update request, 18-3 H help Hiperstation customer support, xxvi online information, 1-7 <HEX> output script tag, B-6 <HEX> records, 5-18 <HEX> script tag, 5-18 <HEX> tag, 19-18 Hiperstation for VTAM access, 3-1 end session, 3-7 features overview, 1-1 ISPF mode, 1-7 main menu, 3-2 overview, 1-1–1-9 product conventions, 1-7 product overview, 1-1 using PF keys, 1-8 zoom mode, 1-8 <HOME> input script tag, B-4 HPERPMSK, 5-20, 7-3 HS_COLUMN REXX variable, 19-17 HS_EXITTYPE REXX variable, 19-16 HS_FORMAT REXX variable, 19-18 HS_INPUT_SEQUENCE REXX variable, 19-18 HS_INPUT_STREAM REXX variable, 19-19 HS_INPUT.0 REXX variable, 19-17 HS_INPUT.n REXX variable, 19-17 HS_KEY REXX variable, 19-16 HS_MATCH REXX variable, 19-15 HS_OUTPUT_SEQUENCE REXX variable, 19-18 HS_OUTPUT_STREAM REXX variable, 19-19 HS_OUTPUT.0 REXX variable, 19-17 HS_OUTPUT.n REXX variable, 19-18 HS_PARM REXX variable, 19-18 HS_ROW REXX variable, 19-16 HS_SCRIPT REXX variable, 19-18 HS_WHICH REXX variable, 19-16 HSCMDS, 18-1 HSSCREAT script create procedure, 10-7 HTML documentation files, xx I <ICURSOR> input script tag, B-4 implicit dubbing, 5-26 <IMSUNLOK> control script tag, B-2 INCLUDE statement message filter parameters, 19-21 include/exclude lists Global Recording, 10-19 index, master, xix input field reformat script processor, 14-1 <INPUT> group, 19-16 <INPUT> groups, 7-21 <INPUT> script tag, B-4 <INPUT> tag, 5-29, B-1 interactive display mode, 1-7 interactive message filter, 19-3 execution, 19-9 override defaults, 19-11 REXX exit, formatted scripts, 19-4, 19-7, 19-9 REXX exit, unformatted scripts, 19-7 interactive playback, 1-3, 5-9, 5-25 initiate, 8-1 interactive recording, 1-2 ISPF display mode, 1-7 J JCL background message filtering, 19-11 background processing, 12-31, 15-12, 16-3 batch processing, 21-1 build unattended statements, 6-10 CLOGGEN sample, 21-2 compare all specified scripts in group, 7-26 compare multiple groups, 7-27 create Global Recording scripts, 10-44 create REXX exit program, 19-6 dub all scripts in group, 7-25 dub and combine scripts, 7-26 dub multiple groups, 7-26 exclude scripts from dubbing, 7-25 Global Recording requests, 10-25 message filter program, 19-23 play back and compare scripts, 7-25 play back multiple scripts, single terminal, 7-23 play back multiple scripts, terminals, transaction processing, 7-24 play back single script, single terminal, 7-23 prepare, 7-2 run unattended statements, 6-1, 6-11 script datasets, 19-22 script recovery, 2-3 unattended comparison, 7-1, 7-8, 7-14 unattended processing samples, 7-23 JOURNAL command, 20-1 jump function, 1-8 K Kanji DBCS support, 1-7 I-5 <KEY> input script tag, B-4 key lists multiple column, 12-23 keyboard shortcuts, accessibility, xxv keyboard unlock, 3-4 keyboard-restore flag, 7-15 KEYS command, 10-39 L last number 3270/LU0, 22-9 list processing add entry, 12-22 browse entry, 12-24 delete entry, 12-24 REXX script processor, 12-20, 12-37 start, 12-21 troubleshoot, 12-41 update entry, 12-23 log, REXX, 20-12 <LOGICAL> control script tag, B-1 logs convert to HTML reports, 21-1 See comparison and exception logs lost transactions, 10-15 LU0, 7-31 capture criteria, 10-4 considerations, 7-32 CONTROL statement, 7-31 GROUP statement, 7-32 <LU2> protocol parameter, 10-26, 10-45 LU2 protocol parameter, 10-27 M manage datasets, 2-1 management features, 1-6 masking, 5-16, 7-3, 7-13 encrypted, 7-7 examples, 5-20 generic masking, 1-5, 5-20 GENMASK member in ISPPLIB, 5-20 global masking, 5-18 hexadecimal characters, 5-18 HPERPMSK DD, 5-20 individual characters, 5-18, 7-8, B-7 <MASK> control script tag, B-3 mask entire line, 5-17 reset all masks, 5-19 row masks, 5-16, 5-19 screen information, 1-4 masks, 22-5 MCSREPT, 10-49 message filter, 1-5, 10-9 CONTROL, 19-20 EXCLUDE, 19-21 execution, 19-9 INCLUDE, 19-21 INCLUDE/EXCLUDE, 19-10 interactive, 19-3 override defaults, 19-11 REXX exit, formatted scripts, 19-4 REXX exit, processing, 19-2 REXX exit, program examples, 19-13 REXX exit, unformatted scripts, 19-7 REXX variables, 19-15 run the program, 19-22 sample job, 19-23 screen filter decisions, 19-2 SELECT, 19-21 statements, 19-19 summary report, 19-22 syntax rules, 19-19 tags, 10-37 unattended, 19-1 message filtering options, 22-10 message filters, 22-8 messages EHSB074I, 7-10, 7-19 EHSB075I, 7-7, 7-17, 7-21 EHSB098I, 7-29 EHSB142I, B-3 EMTRM051, 7-8, 7-14 EMTRM054, 7-8, 7-14 migrated datasets recover, 2-2 mismatch, 5-13 delta screen, 5-14 differences screen, 5-15 expected screen, 5-15 modular scripts, create, 1-6 monitor requests, 10-3, 10-12 <MSK> output script tag, B-6 multi-field date recalculation, 12-15 add, 12-17 browse, 12-19 delete, 12-20 REXX script processor, 12-15 start, 12-16 update, 12-18 multi-field dates, 13-3 multichange script processor, 15-1 add field to screen entry, 15-5 add scripts, 15-9 background processing, 15-12 delete field from screen entry, 15-7 erase interaction, 15-10 field-level operations, 15-3 maintain input field values, 15-2 modify output screen entries, 15-4 modify screen constant entry, 15-8 run requests, 15-11 multiple-column key lists, 12-23 N non-stop mode, interrupt, 5-10 non-stop playback, 1-3 notation conventions, screens and commands, xxi notification, 22-10 numeric differences, ignore, 7-5 O online help, 1-7 <OUTPUT> group, 17-6, 19-16 <OUTPUT> groups, 5-13, 7-21 I-6 Hiperstation for VTAM User Guide OUTPUT SCRIPT EXISTS error message, 19-10 <OUTPUT> script tag, 19-2, B-5 <OUTPUT> tag, 5-29, B-1 <OUTPUT> groups, 9-3 P PA1 key interrupt non-stop and screen suppression modes, 5-10 parameters capture file parameter tags, 10-30 general request parameter tags, 10-27 generate Global Recording request skeleton, 10-43 Global Recording request syntax, 10-25 protocol parameter tag, 10-27, 10-45 recording option parameter tags, 10-32 report generation, 10-50 retrieve parameters from Global Recording request, 10-42 scheduled capture parameter tags, 10-29 script creation, 10-44 wait time, 3-4 pause a script, B-2 <PAUSE> control script tag, B-2 <PAUSE> statement, 15-11 <PAUSEI> control script tag, B-2 PDS members, 7-8 performance testing, 4-1 PF keys, 22-3 map, 1-8 simulate, 1-9 PLAY command, 5-5 play/think time, 22-4 playback function, 1-3 commands, 5-10 interactive playback, 5-9 mismatch, 5-13 non-stop playback, 5-9 play back scripts, 5-5 play setup, 5-5 playback modes, 5-9 run a playback, 5-7 screen suppression, 5-10 terminate playback, 5-10 unattended playback, 7-1 playback options, 22-4 <POP> record, 9-3 PRGLOG DD, 10-48 print file naming conventions, 7-22 protocol parameter tag, 10-27, 10-45 PTFS, A-1 Q Quick Play, 8-1 script dataset screen, 8-1 R record ALL 3270 sessions, 10-17 recording, 5-2 recording function, 1-2 cancel a recording, 5-4 commands, 5-4 recording option parameter tags, 10-32 recording options, 5-2, 5-6 recording process screen, 5-3 recover recordings ended in error, 2-3 script recovery, 5-2 set up recording, 5-1 recording options, 22-9 recording parameters, 22-3 recording request errors, 10-48 regression testing, 4-1 Reports 3270 Summary Report, 20-6 Autodoc Report, 20-5 Capture Segment Summary, 10-49 Capture Summary Report, 10-49 Comparison Log Report, 20-10 Date Find Location Report, 13-7 Date Find Script Processor Report, 13-8 Message Filter Summary Report, 19-22 Transaction Journal Report, 20-2 Web-based Compare Log, 21-4 Web-based Compare/Exception Report Summary, 21-5 reports 3270, 20-1 accessing, 21-4 archive search, 1-2, 11-3 browse, 10-51 consolidation, 7-7 convert compare, exception, and onelogs to HTML, 21-1 create script reports, 1-6 create with SAY statement, 1-6 Customer Support Diagnostic Report, A-1 customizing presentation, 21-9 report generation parameters, 10-50 report settings, 21-10 report summary, 21-4 review, 10-51 web-based, 21-4 repositories reuse, 22-10 repository delete, 10-13 repository datasets delete, 10-41 segment the repository, 10-5 switch segments, 10-14, 10-41 view session list, 10-15 request key, 10-39 <RESPONSE> output script tag, B-6 restart Global Recording request, 10-13, 10-41 return codes unattended mode 3270 processing, 7-29 unattended playback, 7-30 reuse dataset screen, 2-3 review repository, 10-15 session list, 10-18 REXX exit formatted scripts, 19-4 message filter, unformatted scripts, 19-7 program, 19-1 REXX exit program examples check for combination of screen items, 19-14 I-7 convert a script to inputs only, 19-14 find all screens from a list, 19-14 find all screens with common eyecatcher, 19-13 find only output screens, 19-13 REXX functions SUBSTR, 19-24 TRANSLATE, 19-24 REXX log, 20-12 allocate, 7-17 REXX message filter variables, 19-15 REXX script processor access, 12-2 advanced testing, 1-6 background execution, 12-31 control file, 12-2 control file conversion utility, 12-3 data replacement, 12-1, 12-5 date recalculation, 12-1, 12-10 facilities overview, 12-1 foreground execution, 12-31 list processing, 12-1, 12-20 multi-field date recalculation, 12-1, 12-15 processed script REXX structures, 12-32 run, 12-30 start data replacement, 12-7 synchronization, 12-1, 12-25 troubleshoot problems, 12-39 REXX statements INTERPRET, 19-13 SAY, 1-6, 20-12 REXX structures, processed scripts, 12-32 data replacement REXX, 12-32 date recalculation REXX, 12-33 list processing REXX, 12-37 synchronization REXX, 12-38 row masks, 1-5, 5-16 row,column format, 10-36, 12-13, 12-16, 18-3 run REXX script processor, 12-30 S sample jobs compare all specified scripts in a group, 7-26 compare multiple groups, 7-27 dub all scripts in group, 7-25 dub and combine scripts, single group, 7-25 dub multiple groups, 7-26 exclude scripts from dubbing, 7-25 LU0 script, 7-27 play back a single script, single terminal, 7-23 play back and compare all scripts in group, 7-24 play back multiple scripts, multiple terminals, 7-24 play back multiple scripts, multiple terminals, domain destinations, 7-24 play back multiple scripts, single terminal, 7-23 SAY statement, 1-6, 20-12 scheduled capture, 10-29 SCJCL - execute SCRIPTS function, 10-44 screen suppression in playback, 5-10 suppression mode, interrupt, 5-10 script allocate dataset, 2-2 bad dataset screen, 2-3 comparison function, 5-11 create, 10-43 creation parameters, 10-44 criteria tags, 10-47 define creation criteria, 10-7 editing, 5-28 PDS file format, 5-28, B-1 script tags (record types), 5-29, B-1 formatted, 22-10 generate, 10-16–10-17 generate from selected sessions, 10-18 initialize, B-7 message filter REXX exits, 19-2, 19-13 message filters, 10-11 pause a script, B-2 processing screen, 10-17 recover migrated datasets, 2-2 recovery, 5-2 recovery JCL, 2-3 script create errors, 10-49 script datasets, 2-3 script file tags, 10-34 script recovery utility, 2-3 unformatted, 19-7, 22-10 script create execution options 3270/LU0, 22-11 fails, 10-9 HSSCREAT, 10-7 script create option tags, 10-36 settings, 22-10 suspend, 22-9 script format options, 22-10 script processors, 1-5 data replacement, 12-5 date change, 13-6 date change script processor, 13-1 date find script processor, 13-7 date recalculation, 12-10 date separator character, 13-3, 13-8 embedded dates, 13-5 Euro script processor, 17-1 input field reformat, 14-1 list processing, 12-20 multi-field dates, 13-3 multichange script processor, 15-1 processed script REXX structures, 12-32 REXX script processor, 12-1 run date find, 13-9 run REXX script processor, 12-30 script processors menu, 13-1 single field dates, 13-2 synchronization, 12-25 SCRIPT statement, 7-20 parameters, 6-7 script tags control script tags, B-1 <HEX> script tag, 5-18 individual character mask script tag, B-7 <INIT SECTION>, B-7 <INPUT>, 5-29, 19-2, B-1 input script tags, B-4 <MASK>, 5-20, B-3 <MASK> examples, 5-21 <OUTPUT>, 5-29, 19-2, B-1 output script tags, B-5 SCUT command, 9-5, B-7 search report management, 1-2, 11-3 search reports, 1-2, 11-3 I-8 Hiperstation for VTAM User Guide <SECOND> output script tag, B-5 security monitoring, 11-1 audit trail, 11-2 security script processor **no match found** message, 16-3 password modification, 16-2 passwords, 16-1 SELECT statement message filter parameters, 19-21 sequence number, <INPUT> and <OUTPUT> tags, 5-29 session demo, 1-7, 9-1 access, 9-1 auto display mode, 9-4 automated documentation utility, 9-3 commands, 9-4 pop-up window guidelines, 9-3 pop-ups, 9-3 setup, 9-2 think time, 9-2 session list review repository, 10-18 session log, 10-8, 10-10 session log for global recording, 10-9 session options modify, 3-3 single field dates, 13-2 SMP/E global CSI dataset, A-1 target zone, A-1 SPASTE command, 9-5, B-7 SPDTCALC function, 12-34 SPPARMS parameters, 12-32 SQQFSAMP, 10-45 SQVPPENU library, 3-4 stall detection timer, 7-16 start date and time, 7-17, 10-29 date recalculation, 12-12 list processing, 12-21 multi-field date recalculation, 12-16 synchronization, 12-26 start and end date and time, 22-9 start of message, formatted scripts, 19-4 statements, unattended mode 3270 testing CACHEXCL, 7-4 CACHINCL, 7-4 COMPANY, 7-4 COMPARE, 7-4 CONTROL, 7-7 DUBTITLE, 7-10 GROUP, 7-11 SCRIPT, 7-20 message filter CONTROL, 19-20 EXCLUDE, 19-21 INCLUDE, 19-21 SELECT, 19-21 stop Global Recording request, 10-13, 10-41 STOP command, 10-6 summary reports, 3270, 20-6 generate, 7-18 suspend script creation, 10-7 switch Global Recording request segments, 10-41 synchronization add entry, 12-27 browse entry, 12-29 delete entry, 12-29 REXX, 12-38 REXX script processor, 12-25 start, 12-26 troubleshoot, 12-42 update entry, 12-28 syntax conventions, xxii diagrams, xxii T <TAB> input script tag, B-4 tags capture file parameter, 10-30 capture file specification, 10-45 event notification, 10-46 general request parameter, 10-27 general script criteria, 10-33 message filter, 10-37 protocol parameter, 10-27 recording option parameter, 10-32 scheduled capture parameter, 10-29 script create option, 10-36 script criteria, 10-47 script file, 10-34 terminal input, substitution, 1-6 test cases, 4-1 testing 3270 applications, 5-1 using REXX, 1-6 text-to-Web compare exception log converter, 21-1 <THINK> input script tag, B-4 think time, 22-5 options, 7-18 percentage, 7-18 playback options, 5-7 session demo, 9-2 set, 7-18 time start and end, 10-29 trace, allocate, 7-19 transaction journal, 1-7, 20-1 allocate, 7-14 elapsed time, 20-3 start, 20-2 stop, 20-2 transaction journal report, 20-2 troubleshoot data replacement, 12-39 date recalculation, 12-40 Global Recording batch jobs, 10-48 list processing problems, 12-41 REXX script processor problems, 12-39 synchronization, 12-42 TSO jump function, 1-8 U unattended comparison, 7-4 unattended message filters See message filter, unattended unattended mode 3270 processing I-9 comparison overview, 7-1 dubbing overview, 7-1 identify domain destination, 7-2 identify scripts to run, 7-2 playback overview, 7-1 prepare JCL, 7-2 prepare scripts, 7-2 procedures for use, 7-2 return codes, 7-29 sample jobs, 7-23 script playback, dubbing, and comparison, 7-1 statement sequencing, 7-3 statements CACHEXCL, 7-4 CACHINCL, 7-4 COMPANY, 7-4 COMPARE, 7-4 CONTROL, 7-7 DUBTITLE, 7-10 GROUP, 7-11 SCRIPT, 7-20 storage requirements, 7-2 unattended processing build unattended statements and JCL, 6-10 define statement parameters, 6-3 dubbing, 1-5 playback, 1-4 restrict script datasets, 6-12 starting, 6-1 statement parameters CACHE INCLUDE/EXCLUDE, 6-9 COMPANY, 6-9 COMPARE, 6-8 connection GROUP, 6-5 CONTROL, 6-3 define unattended, 6-3 documentation GROUP, 6-5 dubbing GROUP, 6-7 DUBTITLE, 6-9 GROUP, 6-4 SCRIPT, 6-7 timing GROUP, 6-6 unattended comparison, 1-4 unattended statements, generate, 6-2 unformatted scripts, end of message, 19-8 unlock time interval, 7-8 update date recalculation entry, 12-14 Global Recording request, 10-14 list processing entry, 12-23 multi-field date recalculation, 12-18 synchronization entry, 12-28 V <VERSION> control script tag, B-2 VIEW function, 10-42–10-43 virtual terminal display, 3-7 W <WAIT> control script tag, B-2 wait time, 7-17 interval, 7-8 parameters, 3-4, 7-13 wildcard characters segment a repository, 10-5, 22-9 X XTRMPRFX variable, 7-9 Z zoom mode, 1-8 I-10 Hiperstation for VTAM User Guide