438
SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

  • Upload
    hakhanh

  • View
    223

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

SERENA

COMPAREX 8.7 for z/OSUser’s Guide

Serena Proprietary and Confidential Information

Page 2: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

CopyrightCopyright © 2001–2011 Serena Software, Inc. All rights reserved.This document, as well as the software described in it, is furnished under license and may be used or copied only in accordance with the terms of such license. Except as permitted by such license, no part of this publication may be reproduced, photocopied, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, recording, or otherwise, without the prior written permission of Serena. Any reproduction of such software product user documentation, regardless of whether the documentation is reproduced in whole or in part, must be accompanied by this copyright statement in its entirety, without modification.This document contains proprietary and confidential information, and no reproduction or dissemination of any information contained herein is allowed without the express permission of Serena Software.The content of this document is furnished for informational use only, is subject to change without notice, and should not be construed as a commitment by Serena. Serena assumes no responsibility or liability for any errors or inaccuracies that may appear in this document.

TrademarksSerena, TeamTrack, StarTool, PVCS, Collage, Comparex, Dimensions, Serena Dimensions, Mashup Composer, Mashup Exchange, Prototype Composer, Mariner and ChangeMan are registered trademarks of Serena Software, Inc. The Serena logo, Version Manager, Meritage and Mover are trademarks of Serena Software, Inc. All other products or company names are used for identification purposes only, and may be trademarks of their respective owners.

U.S. Government RightsAny Software product acquired by Licensee under this Agreement for or on behalf of the U.S. Government, its agencies and instrumentalities is "commercial software" as defined by the FAR. Use, duplication, and disclosure by the U.S. Government is subject to the restrictions set forth in the license under which the Software was acquired. The manufacturer is Serena Software, Inc., 1900 Seaport Boulevard, 2nd Floor, Redwood City, California 94063-5587.

Publication date: April 2011 (updated 17 June 2011)

Page 3: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

CONTENTS

About This Book 17

Audience 17Code Conventions 17Legend 18Related Documents 19

Chapter 1: IntroductionIn This Chapter 21Comparex Overview 22Types of Files You Can Compare 22Running Comparex: All-Defaults or Keywords 23

All-Defaults 23Keywords 24

DATA or TEXT File Comparison 24DATA 24TEXT 24

Environment Definitions 26

Chapter 2: Major Processing StepsProcessing Steps 29Comparex with No Keywords 30

Comparex Defaults 31Comparex with Keywords 33

Processing of SYSPRINT 34Files Opened 34Reading of Records 35Comparison of Records - DATA 35Comparison of Records - TEXT 36Writing of SYSUT3 36Writing of SYSUT3x 36Writing of SYSPRINT 37End-of-Job Processing 38

Keyword General Comments 39Sample Run 41

3

Page 4: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

4

Contents

Chapter 3: TEXT KeywordsWhat Is TEXT? 43TEXT Processing Keywords 44What Is TEXT Comparison Logic? 45

TEXT Examples 47Keywords Not Available with TEXT 50

DUMMY File 50KEYs 50SEGMENTs 50DATA 50IDENTITYs 50Fields 51DESENs 51MASKs 51FLDSONLY 51LINE 51LINELIM 51NIBBLE 51PRINTs 52

Advantages of TEXT 52Disadvantages of TEXT 53Decisions About DATA and TEXT 53End-of-Job Counts 53TEXT Keywords 53

BUFF 54FRAME 55MLC 55PRINT 56SQUEEZE 56TEXT 56

Chapter 4: DATA KeywordsDATA File Synchronization Keywords 63What Is DATA? 64What Is DATA Comparison Logic? 64DUMMY Files 64KEY Synchronization 65SEGMENT Synchronization 67Physical-Record-Number Synchronization 71Keywords Not Available with DATA 73Advantages of DATA 73

Page 5: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

Disadvantage of DATA 74Decisions About DATA and TEXT 74End-of-Job Counts 74

CPX74I - Bytes Underscored 74CPX73I - COPYSPLIT Record Counts 74CPX75I - Record Counts 75CPX76I - Unusable Fields, IDENTITYs, SEGMENTs, DESENs 75CPX78I - Member Counts 75

DATA Keywords 75 KEY, KEY1, and KEY2 Keywords 75KEY1 77KEY2 77SEGMENT 77

Chapter 5: Input Processing KeywordsList of Keywords 81Comparex Keyword Input 84

Comments 84HELP 84Incorrect Keywords 85Correct Keywords 85Correct and Incorrect Keywords on Same SYSIN Record 85End of Data on SYSIN 85

SYSUT1, SYSUT2, and SYSUT3 or SYSUT3x Opened 85SYSUT1 and SYSUT2 Opened 85SKIPUT1 and SKIPUT2 86SYSUT3 Opened 86SYSUT3x Opened 86

SYSUT1 and SYSUT2 Read 86STOPAFT 87CONTINUE 87Displacement 87

Selecting Records for Comparison 87Keywords 88Form of Keywords 88Inclusive Keywords 89Exclusive Keywords 89

Pairing Records for Comparison 90Types of DATA Synchronization 90TEXT 91Comparing Only on Specific Fields 91

5

Page 6: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

6

Contents

FIELD 91MASK 92IDENTITY 92

Keywords for Input Processing 93CCSID1 and CCSID2 93CONTINUE 95CPXEXIT 95CPXIFACE 96DATA 96CSECT Parsing Enhancements 98DESEN 99DESEN1 100DESEN2 100DIRECTORY 100END 103FIELD, FIELD1, and FIELD2 Keywords 104FIELD1 108FIELD2 108FILTERIN 108FILTEROUT 110FILTORIN 110FILTOROUT 111IDENTITY 111A-IDENTITY 113IGNORSIN 114MASK 114MASK1 115MASK2 116MODE 116SCAN 117SKIPUT1 118SKIPUT2 118STOPAFT 119SYSUT1 119SYSUT2 122WILDCARD 122

Chapter 6: Display Processing KeywordsPrinting the Comparison Results 125Display Processing Keywords 125All-Defaults Difference Report 128

Page 7: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

All-Defaults Difference Report with DATA 128Modifying the Difference Report 129

ASCII 129CASE 130DASH 131DECIMAL 131EBCDIC 132FLDSONLY 132FORMAT 133Smart Fields 136GENFLDS 137HALT 137HEX 138IGNORSIN 138INTERLEAVE 139KEYSONLY 139KILLECHO 139KILLRC 140KILLSPIE 140LINE 140LINELIM 141MAXDIFF 141MAXMATCH 142MBRHDR 142NIBBLE 143PAGE 144PLUS 144PRINT 145UNICODE 146

Chapter 7: Copyfile to Output FilesCopyfile Keywords 147Output Definition SYSUT3 148Output Definitions SYSUT3A Through SYSUT3E 149Copying Differing Records 150

Identifying Differing Records 150COPYDIFF 152COPYDIFF Format Options 153ChangeMan ZMF (TEXT), GEM, Panvalet, or Librarian Format Types 154

Generating Delta Deck Control Cards 156INSERT 157

7

Page 8: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

8

Contents

DELETE 157REPLACE 158

Delta Deck Examples 159Copying Matching Records 161

COPYSAME 161End-of-Job Record Count 161

Copying Matching and Differing Records Concurrently 162COPYSPLIT 162End-of-Job Record Count 163

Chapter 8: Using Comparex InteractivelyISPF Interface 165Accessing Interactive Comparex Functions 165

Comparex Primary Menu 165Interactive Workflow 167Keyword Support 167

Using Option Profiles 168Save an Option Profile 168Load a Previously Saved Option Profile 169

Example ISPF Sessions 170DATA Comparison in Foreground 170TEXT Comparison Via Short Cut 176Comparing z/OS Unix Directories 178Comparing a Panvalet Directory to a PDS Using an Edited Batch Job 179Parsing Copybooks 180

Chapter 9: Copybook and Copylib Assisted ComparisonsCopybook and Copylib Parser 183

Chapter 10: DB2 Comparisons in ISPF and BatchAdvanced DB2 Support 197

Interfaces 197Performance 198Requirements 198

Interactive DB2 Table Comparisons in ISPF 198Selecting the DB2 Tables to Compare 199Specifying Columns for Selection and Comparison 202Viewing and Editing SQL Statements 205Assessing the Results of the Comparison 206

Batch DB2 Table Comparisons with Rexx 206Sample Rexx Program DB2SMPL 206

Page 9: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

Source Code to Establish DB2 Connection 207Source Code to Create Comparex Input Parameters 208Source Code to Write DB2 Data to a Flat File 209Error Diagnostics 210Batch JCL to Run DB2SMPL 210Batch JCL to Execute Comparex 211Assessing the Results of the Comparison 212

Limitations of Comparison in DB2 Environments 212

Chapter 11: CPXIFACE Integration with External Data ManagersPanvalet, Librarian, and GEM 213

Panvalet 213Librarian 215GEM 216

All DBMS Products 218ADABAS 218CINCOM 223Condor CAMLIB 224DATACOM 226DB2 (Legacy Interface) 227DL/1 233DMS: DASD Management System 236FOCUS 237IAM 239IDMS 240ORACLE 245OWL - Online Without Limits 247RAMIS II 248ROSCOE 250WYLBUR 251Roll Your Own 252Synchronizing Databases 254

Chapter 12: Delta Deck OptionDelta Deck Option 259

Panvalet Format 259Librarian Format 260ChangeMan ZMF Format 262 PDS Versus Proprietary Structure 263Relative Line Numbers in ChangeMan ZMF Format 263Update Directive 263

9

Page 10: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

10

Contents

Line Directives 264Execution JCL 265 File Attributes 265Multiple Decks 266Integrity 266Directory Statistics 266Sample Report 267Explanation 267Error Messages 269

Appendix A: Examples 305

SCENARIO 1 - Scanning for Date Fields 305SCENARIO 2 - Comparing Source Code to Detect Changes 306SCENARIO 3 - Detecting Missing Source or Load Modules 308SCENARIO 4 - Generating Test Data 309SCENARIO 5 - Verifying Field Modifications 310SCENARIO 6 - Validating Database Conversions 314Select One Account - FILTERIN 317Select Two Accounts - FILTORINs 317Exclusive Filters 317Filter Out One Record 318Filter Out All But Certain Records 318Filter Out and Filter In 318Disregard Inserted Records 318Complex Filtering 319IDENTITYs and FIELDs 319COBOL Source Code Changes 319Filters with TEXT 319Audit PDS Libraries 320Compare JCL Libraries 321Regression Test in Database Environment 321Compare to Backup 321Find Latest Versions 322IEBUPDTE Formatting of Audit Trail 322Delta Deck in ChangeMan ZMF Format Audit Trail 323Desensitize Live Production Data 324Reverse Delta Deck 325

Appendix B: Effective Testing 327

Some Effective Testing Flowcharts 328Checking a Single Program (Unit Testing) 328Checking a Single Program in a Database Environment 329

Page 11: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

Checking a Program Modification (Systems Testing) 330Checking a System in a Database Environment 331

Managing the Testing Function 331Set Down Requirements in Writing 332Develop a Test Plan 332Approval for the Test Plan 332Generating Test Data 333Functional Department Approval 334Expected Results Are Met 334Expected Results Are Not Met 334Specifications Are Wrong 335

Appendix C: Sample COBOL Code 337

COBOL1 - Before Change 337COBOL1 - After Change 339

Appendix D: Messages 343

Messages Issued During Job Initialization 343CPX00I 343CPX01I 344CPX02A 345CPX03I 345CPX04I 346CPX05I 346CPX06I 347CPX07I 347CPX08I 348CPX09I 349CPX10I 349CPX11I 350CPX12I 350CPX13I 352CPX14I 352CPX15I 352CPX15I - COPYSAME or COPYSPLIT 354CPX16A - COPYSAME or COPYSPLIT 354CPX16I 355CPX18I 356CPX19I 356CPX20I 356CPX21I 357CPX22I 358

11

Page 12: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

12

Contents

CPX23I 359CPX24A 359CPX25I 360CPX26I 361CPX27I 361CPX28I 362CPX30A 362CPX31A 362

Messages During Processing and End of Job 363CPX35A 363CPX36A 363CPX37A 364CPX39A 364CPX40A 365CPX41I 365CPX42I 365CPX45A 366CPX50I 366CPX51I 366CPX52I 367CPX55I 368CPX56I 368CPX57I 368CPX61I 369CPX62I 369CPX64I 370CPX65I 370CPX66A 370CPX67I 371CPX69I 371CPX71I 372CPX72I 372CPX73I 374CPX74I 374CPX75I 374CPX76I 376CPX77I 377CPX78I 377CPX80I 378CPX90A 379CPX91A 380CPX92A 380

Page 13: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

CPX93A 380CPX94A 381CPX97A 381CPX99A 383CPX001 383CPX002 383CPX201 384CPX203 384CPX205 385CPX206 385CPX207 385CPX301 385CPX303 386CPX304 386CPX401 386CPX403 387CPX404 387CPX501 387CPX502 387CPX503 388CPX504 388CPX601 388CPX602 389CPX603 389CPX604 389CPX605 389CPX606 390CPX701 390CPX702 390CPX703 391CPX704 391CPX705 391CPX706 391CPX707 392CPX708 392CPX801 392CPX802 393CPX803 393CPX804 393CPX805 394CPX806 394CPX807 394

13

Page 14: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

14

Contents

CPX810 394CPX811 395CPX812 395CPX813 395CPX814 396CPX815 396CPX816 396CPX817 397CPX818 397CPX819 397CPX820 397CPX821 398CPX822 398CPX823 398CPX824 399CPX825 399CPX826 399CPX827 400CPX828 400CPX829 400CPX830 400CPX831 401CPX832 401CPX834 402CPX836 402CPX837 402CPX839 402CPX840 403CPX841 403CPX842 403CPX843 403CPX844 404CPX845 404CPX846 404CPX847 405CPX848 405CPX850 405CPX851 406CPX852 406CPX853 406CPX900 407CPX901 407

Page 15: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

CPX902 407CPX903 407CPX904 407CPX905 407CPX906 407CPX907 408CPX908 408CPX909 408CPX910 408CPX911 408CPX912 408CPX913 408CPX914 409CPX915 409CPX916 409CPX917 409CPX918 409CPX918A 409CPX919 409CPX920 410CPX921 410CPX922 410CPX923 410CPX924 410CPX925 410CPX926 411

Common Abends 411User Abends and Reason Codes 413

Appendix E: Glossary 415

15

Page 16: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

16

Contents

Page 17: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

ABOUT THIS BOOK

This document describes how to use Serena® Comparex® version8.7 and guides you through some commonly used comparisons. It contrasts DATA and TEXT comparison logic and also describes the components of difference reports.

Step-by-step instructions show you how to:

• Compare files as a submitted batch job

• Compare files in the foreground using the ISPF Interface

This book also shows you how to:

• Run a DATA comparison with keys

• Run a DATA comparison without keys

• Run a TEXT comparison

• Understand the printed output of each comparison type

AUDIENCE

This guide is intended for the professional programmer experienced with file structures and organizations, utilities, and testing practices. You also need to have a working knowledge of your operating environment.

CODE CONVENTIONS

This legend describes the symbols and abbreviations used in the descriptions of the Comparex keywords.

Symbol Meaning

[ ] Brackets enclose an optional entry.

( ) Parentheses must be coded as shown in the examples.

{ } Braces indicate a required entry if more than one selection is available.

CAPS Uppercase letters indicate a keyword, name, or field to be coded as shown.

17

Page 18: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

18

About This Book

LEGEND

This legend describes the symbols and abbreviations used in the descriptions of the Comparex keywords in the chapters that follow. These symbols and abbreviations are used in this same way in the Comparex Getting Started Guide and Comparex Quick Reference .

lowercase Lowercase letters indicate that variable information is to be supplied.

underscore Underscores indicate the default value.

ddd Relative displacement from the first position of the input record.

If MODE=SYSTEM, displacements are relative to 0, and values range from 0 to 32767.

If MODE=APPLICATION, displacements are relative to 1, and values range from 1 to 32767.

len Length, in bytes. Values range from 1 to 32767. (For KEY and KEY1, values range from 1 to 256.)

t Type. Values are X for hexadecimal and C for character.

vvvv Literal value between apostrophes. For example, t‘vv’ could be X‘5B’.

N= Descriptive phrase for display on Comparex report. Maximum length is 32 bytes.

Applies to a DATA comparison.

Applies to a TEXT comparison.

Applies to a DIRECTORY comparison.

Symbol Meaning

[ ] Brackets enclose an optional entry.

( ) Parentheses must be coded as shown in the examples.

{ } Braces indicate a required entry if more than one selection is available.

CAPS Uppercase letters indicate a keyword, name, or field to be coded as shown.

Symbol Meaning

Page 19: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

RELATED DOCUMENTS

The following related manuals are included on the Comparex software distribution CD. They are also available through the Download Center on the Serena Support self-service Web site:

lowercase Lowercase letters indicate that variable information is to be supplied.

underscore Underscores indicate the default value.

ddd Displacement into the record. Both ddd and len must be in decimal.

len Length, in bytes. Values range from 1 to 32767, or the word ‘END’ to indicate through the end of the record. (For KEY, KEY1, and KEY2, values range from 1 to 256.)

t Type. Values are ‘X’ for hexadecimal and ‘C’ for character.

vvvv Literal value between apostrophes. For example, t‘vv’ could be X‘5B’.

N= Descriptive phrase for display on Comparex report. Maximum length is 32 bytes.

Book Description

Serena® Comparex® for z/OS Installation Guide

Installation requirements and instructions for installing the product under z/OS.

Serena® Comparex® z/OS Getting Started Guide

Information to begin using Comparex.

Serena® Comparex® Quick Reference

Format and description of each keyword.

Symbol Meaning

19

Page 20: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

20

About This Book

Page 21: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

INTRODUCTION

1 Comparex is a utility designed to compare two files and print a report showing the records that are different. It helps you check the accuracy of maintenance changes before implementation and it facilitates effective unit, system, and regression testing for new development. This utility performs specific field comparisons, highlights the differences, and generates a report that underscores those differences. You can perform DATA, TEXT, and DIRECTORY compares.

Note

DATA comparison is the default.

IN THIS CHAPTER

This chapter describes the general flow of Comparex. We suggest you read this chapter before running the scenarios presented in the following chapters.

This chapter covers the following topics:

• “Comparex Overview” on page 22• “Types of Files You Can Compare” on page 22• “Running Comparex: All-Defaults or Keywords” on page 23• “DATA or TEXT File Comparison” on page 24• “Environment Definitions” on page 26

With This Kind of Compare... You Can Compare...

DATA Virtually all databases, CSECTs, master/transaction files, load modules

TEXT Source code, JCL, reports, documentation

DIRECTORY Library Management systems: directories

21

Page 22: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

22

Chapter 1: Introduction

COMPAREX OVERVIEW

If a change is introduced into a system, Comparex compares files produced before the change with files produced after the change. The difference report is printed, allowing you to see precisely which bytes differ between the two files, record by record. The results will confirm your expected changes and, more importantly, expose any unexpected changes.

An effective Comparex job can be run in all-defaults mode, with no keywords. Comparex reads two files, comparing a record number from the first file with the same record number from a second file. It then prints both records if it finds one or more differing bytes. In all-defaults mode, Comparex reads to the end of each file, printing all the pairs of differing records and all the extra records from the longer input file.

The most frequently requested options are implemented as the Comparex defaults. The all-defaults mode can be significantly modified. Using extensive optional keywords, you can modify input processing, record pairing, and printing routines in Comparex. In a keywords job, you specify free-form keywords to change the default parameters, so a file of any organization can be read, synchronization can be done by logical keys, and the format of the report can be customized. In addition, keywords can be used to tell Comparex to create an output file of selected records.

TYPES OF FILES YOU CAN COMPARE

Comparex can compare any two files of almost any structure or organization. Comparex can directly process the following types of files:

• Program

— Source Code

— Object Code

— Executable Load Modules

• CSECT Parsing or Undefined Block to Block

• Job Control Language (JCL)

• CLIST

• System Master Files

— Sequential

— QSAM

— ISAM

— VSAM

• System Intermediate Files

• System Transaction Files

• Directories, Selected Members, Ranges of Members, or All Members

Page 23: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

— CA-Panvalet

— CA-Librarian

— FUJITSU/FACOM’s GEM

— Partitioned Data Set (PDS/PDSE)

— OWL

— CA-ROSCOE

— WYLBUR

• Most Database Management Systems (DBMS)

— ADABAS/NATURAL

— DL/1

— IMS, IMS/FASTPATH

— CICS

— DB2

— FOCUS

— IDMS (5.7) or IDMS/R (10.0)

— CA-RAMIS II

— CA-DATACOM/DB

— CINCOM MANTIS

— Others to be developed in the future, including ORACLE

• Formatted Screens (PANELS) for ISPF sessions

• Control Card Images

• Reports

• Documentation

RUNNING COMPAREX: ALL-DEFAULTS OR KEYWORDS

All-Defaults

Comparex can run in “all-defaults” mode. In this mode, Comparex reads two files, comparing a record from the first file with the same number record from a second file. It then prints both records if it finds one or more differing bytes.

Note

In this mode, Comparex compares records from a DATA file without attempting to match on keys.

23

Page 24: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

24

Chapter 1: Introduction

Keywords

You can modify any of the defaults with Comparex keywords. Using these keywords, you can tell Comparex to read a file of any organization, synchronize by logical keys, choose records and fields to compare, customize the report format, and create an output file of selected records.

Note

The examples that follow this chapter are very simple, using a minimum number of keywords. We recommend that you experiment with these samples before customizing Comparex with the wide range of keywords available.

DATA OR TEXT FILE COMPARISON

Comparex recognizes two file categories: DATA and TEXT. Each category uses different programming logic because the type of synchronization differs. If neither category is specified, Comparex defaults to DATA.

DATA

To Comparex, a DATA file contains formatted records. DATA files have fields in fixed positions in each record. DATA records are generally sequenced (usually defined by a key field). Comparex compares DATA files by pairing physical records and then comparing these records field by field, using key-, segment-, or record-number to record-number synchronization.

Examples of DATA files are:

• Master files

• Intermediate files

• Transaction files

• Databases

• Load modules

TEXT

To Comparex, TEXT is any file where no specific format exists in the record. TEXT files do not have bytes and fields in fixed positions. TEXT records can contain blanks and might be entirely free-form. Rather than pairing records by record number or key, TEXT synchronization matches records by content to find blocks of matching text and isolate differences.

Examples of TEXT files are:

• Program source code

Page 25: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

• JCL

• Reports

• Documentation

Which to Use: DATA or TEXT

Run a DATA comparison under the following situations:

• If files have keys, use DATA with KEY synchronization

• If files are databases, use DATA with KEY or SEGMENT synchronization

• If files are object code, use DATA without a key

• If data sets are load modules, use the CSECT Parsing option:

Use TEXT if none of these situations apply. Maximize the buffering area required for look-ahead logic and minimize the number of records that must match “exactly,” until you obtain the desired results.

Note

If TEXT has neither been specified nor been nullified because of inconsistencies, Comparex uses DATA comparison logic. When Comparex performs DATA comparison logic, it cannot also perform TEXT comparison logic in the same run. The two logic routines are mutually exclusive.

25

Page 26: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

26

Chapter 1: Introduction

ENVIRONMENT DEFINITIONS

To compare files on the mainframe, Comparex supports the three major IBM operating systems:

• z/OS (z/OS, OS/390, XA, ESA)

• z/VSE - (VSE/ESA, SP 2.1 System Package, and pre-2.1)

• z/VM (VM/CMS)

In addition, Comparex runs under the following operating systems:

• MVT/VSE from Software Pursuits

• OSIV/F4 (MSP) from FUJITSU/FACOM

• Nixdorf NIDOS

Page 27: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

27

Page 28: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

28

Chapter 1: Introduction

Page 29: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

MAJOR PROCESSING STEPS

2 What you will find in this chapter:

• “Processing Steps” on page 29• “Comparex with No Keywords” on page 30• “Comparex with Keywords” on page 33

PROCESSING STEPS

INPUT FILES

Three files are used:

• SYSIN contains any keywords to modify the all-defaults mode. If SYSIN is not able to be opened or if SYSIN is empty, Comparex processes without any keywords, taking all defaults. If SYSIN is not empty, Comparex modifies its default processing with the given keywords.

• SYSUT1 is the first file of the two to be compared. This is the original file. If program source code is being compared, this is the unmodified version.

• SYSUT2 is the second file of the two to be compared. This is the modified file. If program source code is being compared, this is the updated version.

OUTPUT FILES

Two files are generated:

• SYSPRINT contains a listing of the results of the comparison, called the difference report. It also contains a list of the defaults and keywords used, and it shows end-of-job statistics lines. You can also specify a list of the Comparex keywords and a visual representation of each record type identified.

• SYSUT3 is an optional file. Comparex can be used as a test file generator by the specification of COPYDIFF or COPYSAME (keywords that direct Comparex to write file

29

Page 30: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

30

Chapter 2: Major Processing Steps

SYSUT3). Unless otherwise specified, SYSUT3 is assumed to be an existing file. DISP=SHR is the default.

Note

You can also specify up to 5 different output files in place of SYSUT3. See “Copying Matching and Differing Records Concurrently” on page 162 for more information.

COMPAREX WITH NO KEYWORDS

If no keywords are specified, this is the order of the utility’s processing:

• SYSPRINT is opened. If the open is not successful, Comparex abends. with a user completion code of 0005.Comparex displays license information similar to the example shown below on SYSPRINT:

• As delivered, Comparex has installation defaults which can override the normal defaults as described in this manual. Your installation may have changed them to fit your shop’s needs. Refer to “Installation Defaults” below for the delivered installation defaults.

CPX00I - **************************************************CPX00I - *** I N S T A L L A T I O N D E F A U L T S ***CPX00I - **************************************************CPX00I - HALT=COND /* STOP EXECUTION IF SYNTAX ERRORS FOUND */CPX00I - ************************************CPX00I - *** END-OF-INSTALLATION DEFAULTS ***CPX00I - ************************************

Comparex attempts to open SYSIN. If this open is not successful, Comparex issues warning message CPX02A. If SYSIN is able to be opened but is empty (since no Comparex keywords are being specified for this no-keywords job), Comparex continues to process without issuing a warning message.

• Comparex displays on SYSPRINT the defaults it will use. A sample default message follows:

SERENA COMPAREX (MVS-8.6.0-2006/105) Saturday APRIL 15, 2006 (2006/105) 15:59:59 PAGE 1

PROPRIETARY SOFTWARE PRODUCT OF SERENA Software PHONE: (650)522-6600 OR FAX (650)522-6699

LICENSED TO: your corporate name your city/state/zip

ALL OTHER RIGHTS RESERVED - USE OF THIS SOFTWARE PRODUCT BY UNAUTHORIZED PERSONS IS PROHIBITED.

Page 31: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

CPX03I - EXECUTION OF TS972.CPX.SC4098 - VALUES EXTRACTED/DEFAULTED:CPX04I - MAXDIFF=999999999999,STOPAFT=999999999999CPX05I - PRINT=(MATCH,MISMATCH),MBRHDR=YES,HALT=CONDCPX06I - WILDCARD=C'.',MODE=APPLICATIONS (ALL DISPLACEMENTS RELATIVE TO ONE)CPX08I - DECIMAL,EBCDIC,CASE=MIXED,LINE=(32,HORIZONTAL),PAGE=58CPX11I - DASH=C'-',PLUS=C'+'CPX03I - EXECUTION OF TS972.CPX.SC4098 - VALUES EXTRACTED/DEFAULTED:CPX21I - SYSUT1=SERE001.X1.SEGMENTS DCB=(DSORG=PS,RECFM=F,BLKSIZE=80)CPX22I - SYSUT2=SERE001.X2.SEGMENTS DCB=(DSORG=PS,RECFM=F,BLKSIZE=80)CPX25I - DATA,FORMAT=02,INTERLEAVE=0 (FORMAT EXPLANATION: FULL SYSUT1 FOLLOWED BY DIFFERING LINES OF SYSUT2)

Comparex Defaults

Here is a complete list of the defaults Comparex takes:

Input Processing

• CONTINUE is not in effect

• DATA file comparison logic is in effect

• Fields are not used

• Filters are not used

• IDENTITYs are not used

• MASKs are not used

• MODE=APPLICATIONS is in effect

• SKIPUT1 - no records are bypassed on SYSUT1

• SKIPUT2 - no records are bypassed on SYSUT2

• STOPAFT=999999999999 is in effect

• SYSUT1 is specified by JCL

• SYSUT2 is specified by JCL

• WILDCARD is not used

DATA Files Synchronization

• KEYs are not used

• SEGMENTs are not used

TEXT File Processing

• Under the no-keywords job, TEXT file processing is not done; TEXT file keywords (BUFF, FRAME, MLC, PRINT=FULL, SQUEEZE, and TEXT) are not used.

31

Page 32: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

32

Chapter 2: Major Processing Steps

Output Processing

Under the no-keywords job, output processing is not done; output processing keywords (COPYDIFF, COPYSAME, and SYSUT3) are not used.

Display Processing

• EBCDIC character encoding is in effect; ASCII and UNICODE are not

• CASE=MIXED is in effect

• DASH=C‘-’ is in effect

• DECIMAL is in effect

• EBCDIC is in effect

• FLDSONLY is not in effect

• FORMAT=02 is in effect

• No GENFLDS are generated

• HALT=NO is in effect

• No HELP listing is produced

• HEX is not in effect; DECIMAL is in effect

• INTERLEAVE=0 is in effect

• LINE=(32,HORIZONTAL) is in effect

• LINELIM=0 is in effect

• MAXDIFF=999999999999 is in effect

• MBRHDR=YES is in effect

• NIBBLE is not in effect

• PLUS=C‘+’ is in effect

• PRINT=MATCH and PRINT=MISMATCH are in effect

— Unless HALT=YES has been specified, Comparex opens SYSUT1. If the open is not successful, Comparex terminates, issuing message CPX90A and a return code of 16.

— Unless HALT=YES has been specified, Comparex opens SYSUT2. If the open is not successful, Comparex issues a warning with message CPX90A, and unless HALT=COND has been specified, Comparex functions as a print utility, printing all records of SYSUT1 onto SYSPRINT.

— Comparex reads SYSUT1 and SYSUT2 sequentially. It compares each SYSUT1 record with the same numbered record on SYSUT2 (that is, record number 1 on SYSUT1 is compared with record number 1 on SYSUT2 and record number 1001 on SYSUT1 is compared with record number 1001 on SYSUT2).

Page 33: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

— If Comparex finds that compared records do not match exactly (all bits in all bytes are not equal), prints both records on SYSPRINT and underscores the differences. The example below shows how two differing records might look on the difference report (modified to fit on page).

• If SYSUT1 has come to end of file and SYSUT2 has not come to end of file, Comparex prints all SYSUT2’s records on SYSPRINT until SYSUT2’s end of file has been reached.

• Likewise, if SYSUT2 has come to end of file and SYSUT1 has not come to end of file, Comparex prints all SYSUT1’s records on SYSPRINT until SYSUT1’s end of file has been reached.

• Comparex writes statistics to SYSPRINT. The following is an example of end of job messages.

CPX67I - MAXDIFF INVOKED, CONTINUING WITHOUT PRINTING BY REQUESTCPX71I - END OF DATA ON FILE SYSUT1CPX72I - END OF DATA ON FILE SYSUT2CPX74I - BYTES UNDERSCORED(15)CPX75I - RECORDS PROCESSED: SYSUT1(28)/SYSUT2(34),DIFFERENCES(3,1,7)

EXPLANATION - 3 RECORDS DIFFER THAT SYNCHRONIZED TOGETHER 1 RECORD WAS CONSIDERED INSERTED ON SYSUT1 7 RECORDS WERE CONSIDERED INSERTED ON SYSUT2

CPX80I - TIME OF DAY AT END OF JOB: 23:57:02 - CONDITION CODE ON EXIT: 4

Comparex closes all files.

COMPAREX WITH KEYWORDS

Comparex accepts a complete set of keywords to modify the no-keywords processing. If Comparex is able to open SYSIN and the utility finds one or more valid keywords in SYSIN, then the following is the order of the utility’s processing.

CPX61I - KEY SYNCHRONIZATION MISMATCH - RECORD 1 ON FILE SYSUT1

000000 F0F0F0F4 F5F6F7F9 00000000 0045679C 0000B26F C4C1E3C1 ... *00045679...........?DATA-SYSUT1 * O N E000020 F0F1F2F3 F4F50000 00000012 345C0000 30394040 40E3C8C9 ... *012345.......*.... THIS IS THE* O N E000040 40C4C1E3 C140C6D6 D940E2E8 E2E4E3F1 40606060 60606040 ... * DATA FOR SYSUT1 ------ * O N E000060 40404040 40404040 40404040 40404040 40404040 40404040 ... * * O N E

CPX51I - RECORD NUMBER 2 ON FILE SYSUT1CPX52I - RECORD NUMBER 1 ON FILE SYSUT2

000000 F0F0F0F4 F5F6F8F8 00000000 0045688C 0000B278 C4C1E3C1 ... *00045688............DATA-SYSUT1 * O N E000000 F0F0F0F4 F5F6F8F8 00000000 0045688C EA00B278 C4C1E3C1 ... *00045688............DATA-SYSUT2 * T W O -- - - -DIFFERENCE+000020 F0F1F2F3 F4F50000 00000012 345C0000 30394040 40E3C8C9 ... *012345.......*.... THIS IS THE* O N E000040 40C4C1E3 C140C6D6 D940E2E8 E2E4E3F1 40606060 60606040 ... * DATA FOR SYSUT1 ------ * O N E000040 40C4C1E3 C140C6D6 D940E2E8 E2E4E3F2 40606060 60606040 ... * DATA FOR SYSUT2 ------ * T W O - - -DIFFERENCE+000060 40404040 40404040 40404040 40404040 40404040 40404040 ... * * O N E000060 40404040 40404040 40404040 40404040 40404040 40404040 ... * * T W O ++++++++ -DIFFERENCE+

33

Page 34: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

34

Chapter 2: Major Processing Steps

Processing of SYSPRINT

SYSPRINT file is opened and the license information is displayed on SYSPRINT, exactly as described in Comparex with no keywords.

Comparex opens SYSIN, and the utility looks at each SYSIN record to find its keywords. Each SYSIN record is listed on SYSPRINT, to the right of message CPX00I. If the first character of the SYSIN record is an asterisk, Comparex considers the entire SYSIN record to be a comment, and the utility does not search for keywords on that record. Additional comments may be placed to the right of keywords by preceding them with a slash-asterisk “/*” or slash-slash, “//”. (Do not begin “/*” or “//” in column 1). If Comparex finds information on a SYSIN record that cannot be recognized as a valid keyword, the utility underscores the characters and displays the literal “ERROR?” in the right-hand column.

Comparex uses the valid keywords from the SYSIN file to modify the defaults, and the utility displays messages CPX03I through CPX12I to show these processing parameters.

Each SYSIN record is read and translated to uppercase as CASE=RAISE is normally in effect for SYSIN records. This allows keywords and parameters to be entered in any case. (Character strings of the form C’vv’ are not translated.) A CASE= keyword found specifies what sort of translating is to be used; however, implementation of this choice is delayed until keyword processing is finished and comparison processing is ready to begin.

If it is desired to have CASE=MONO in effect for keyword processing this can be done; see the section on Programmable Options in the Install Guide.

Files Opened

Comparex interrogates the system for the SYSUT1, SYSUT2, SYSUT3 and SYSUT3x file attributes. Data set organization and data set attributes under z/OS are taken from the operating system but may be overridden by the user.

If COPYDIFF, COPYSAME or COPYSPLIT was specified, Comparex opens the SYSUT3 or SYSUT3x files. Message CPX16I shows the data set organization and attributes.

If SYSUT1=DUMMY was not specified and HALT=YES was not specified, Comparex opens file SYSUT1. Message CPX21I shows the data set organization and attributes.

If SYSUT2=DUMMY was not specified and HALT=YES was not specified, Comparex opens file SYSUT2. Message CPX22I shows the data set organization and attributes.

If TEXT processing is specified and Comparex has not nullified TEXT because of other keywords, the utility issues message CPX25I, showing the TEXT file keywords in effect for the run.

If TEXT processing is not being done for the run, Comparex issues message CPX25I, showing that DATA file synchronization is in effect.

If either SKIPUT1 or SKIPUT2 was specified, Comparex skips over the specified number of records on the input.

Page 35: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

Reading of Records

If the STOPAFT keyword has been specified, Comparex reads records until that keyword’s number has been reached. Otherwise, Comparex does not stop reading records after a specific number has been reached.

If MAXDIFF has been specified, and the maximum number of differences specified with the MAXDIFF keyword have been printed on the difference report, then Comparex continues to read records (if CONTINUE has been specified) or it goes to its end-of-processing routines (if CONTINUE has not been specified).

Comparex considers all record displacements on keywords to be relative to one (the first column is column 1) unless the MODE=SYSTEMS keyword has been entered to change displacements to be relative to zero (the first column is column zero).

Comparex reads records and pairs them for comparison. If TEXT comparison logic is in effect, Comparex uses buffers and look-ahead logic to pair records and to isolate differing blocks. Under TEXT processing, keywords may be entered to control the size of the look-ahead logic buffer (BUFF), the back-in-synchronization matching line count (MLC), the characters to be deleted (SQUEEZE), and the format of the difference report (FRAME and PRINT=FULL). If DATA comparison logic is in effect, Comparex pairs records based on KEYs, SEGMENTs, or same physical-record-number synchronization.

Comparex uses any filtering keywords, along with the WILDCARD value, to determine which records are sent to the comparison routines.

Comparison of Records - DATA

At the point where Comparex compares records, the default processing (essentially, the comparison of all bytes) can be changed by keywords.

The comparison of DATA is described here. DATA is used if files have an inter-record relationship. TEXT file comparison is also done by Comparex, and is described below. DATA is the default.

If a record has been sent to the comparison routines alone, identified as a key synchronization mismatch, a segmenting synchronization mismatch, or an extra record, the utility sends this record to the difference report without doing any comparison.

If no IDENTITY, FIELD, or MASK keywords have been specified, Comparex compares all bytes of the two records. If any one byte is different or if one record is longer than the other, Comparex identifies this pair as different and sends the pair of records to the difference report. If all bytes in the two records are equal, Comparex does not send this pair to the difference report.

35

Page 36: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

36

Chapter 2: Major Processing Steps

If IDENTITY, FIELD, or MASK keywords have been specified, Comparex uses these keywords to compare the various parts of the record. IDENTITY keywords test for a value on the SYSUT1 record so that the following fields and MASKs can apply to that record type only. FIELD keywords specify bytes to be compared, and MASK keywords specify bytes that are to be ignored. If any bytes in fields are unequal, Comparex identifies this pair as different and sends them to the difference report, noting which IDENTITY and FIELD uncovered the first difference.

Comparison of Records - TEXT

If TEXT comparison has been specified, Comparex changes its comparison routines to try to match up records by the values in the records. TEXT comparison is used for program source code, JCL, and documentation.

No KEY or SEGMENT can be specified for synchronization. Comparex synchronizes records by attempting to find records where all positions of the record are equal. Inserted records are identified as being those between matched records.

Any character can be removed from the record prior to the comparison with the SQUEEZE keyword. The BUFF keyword directs the storage size for buffering, and the MLC keyword tells Comparex how many equal compares to make before identifying a back-in-synchronization condition. The PRINT=FULL keyword can be used with TEXT to print all records on SYSUT1, whether they are unmatched or not, and the FRAME keyword is used to surround blocks of records on the difference report.

Under TEXT comparison, both input files must be present. IDENTITYs, FIELDs, and MASKs are not used.

If TEXT comparison is specified, Comparex identifies only differing records on the difference report. Differing bytes are not underscored.

Writing of SYSUT3

If COPYDIFF or COPYSAME was specified, and if SYSUT3 was successfully opened, the utility writes any record from file SYSUT2 that it identified as differing from SYSUT1 onto file SYSUT3. These differing records include matched records where some difference in data is found and records that are considered inserted on SYSUT2 (i.e., exist on SYSUT2 but not SYSUT1).

Note

Records considered inserted on SYSUT1 do not go to SYSUT3.

Writing of SYSUT3x

If COPYSPLIT was specified, and if the SYSUT3x files were successfully opened, the utility writes:

• Matching records to SYSUT3A

Page 37: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

• Differing SYSUT1 records to SYSUT3B

• Differing SYSUT2 records to SYSUT3C

• Inserted SYSUT1 records to SYSUT3D

• Inserted SYSUT2 records to SYSUT3E

Writing of SYSPRINT

The difference report shows the differing records. The format of the difference report is modified by the specified display processing keywords. The input file and the associated logical record number on that input file are shown with each record printed, and the message on the difference report also shows why the record was identified as differing.

Many keywords are available to direct Comparex to modify the default parameters for the printing of the difference report.

The PRINT keyword directs Comparex to print synchronized matched records or mismatched records.

Comparex translates the input to characters for printing using its EBCDIC translate table. You may specify that Comparex use an ASCII or UNICODE translate table instead.

The MAXDIFF keyword specifies the maximum number of differing records, mismatched records, and extra records to print on the difference report. A MAXDIFF keyword should be included in every Comparex job to avoid large printouts if the expected results do not occur. Comparex shows each line’s relative displacement in decimal. You may specify that Comparex show the relative displacement in hexadecimal instead, by using the HEX keyword.

The GENFLDS statement causes Comparex to print out a handy visual representation of each record type, as identified by IDENTITYs, FIELDs, and MASKs. These sheets can be made into clear plastic overlays on a copying machine and used in a review of the difference report.

The LINE keyword changes the number of bytes shown on each line of the difference report, the PAGE keyword changes the number of print lines on each page, and the FORMAT keyword specifies formatting characteristics on how differences are displayed and permits INTERLEAVEing of displayed lines. The LINELIM keyword indicates how many lines to print for each record.

Comparex underscores each differing byte with a dash. You can change this to any other character by the use of the DASH keyword. Comparex underscores excess bytes on the record from file SYSUT2 with a plus “+” sign. You can change this to any other character by the use of the PLUS keyword.

When using dump (horizontal hex) format, Comparex underscores both the character printout (on the right) and both half-bytes of the hex printout (on the left). However, if the NIBBLE keyword is specified, each half-byte is compared separately, and only those half bytes that compare unequal are underscored. Comparex will underscore all differing bytes, even those bytes considered MASKed out unless FLDSONLY is specified also.

37

Page 38: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

38

Chapter 2: Major Processing Steps

The HELP keyword causes Comparex to print a listing of valid keywords and their descriptions on the difference report.

Note: on the HELP keyword, braces { } indicate a required entry where more than one selection is available. Within the braces, individual options are separated with a broken vertical bar. One of the indicated choices must be selected.

Brackets [ ] indicate optional entries, and may show one or more choices. One of the choices may be made, or the entry may be eliminated altogether. If you are using JES2, the brackets may not display, being replaced by spaces. This can be remedied by supplying a custom translation table via JES2 installation exit 15. See also PRINTDEF TRANS= in the JES Installation and Tuning Reference.

End-of-Job Processing

If the input files contain an embedded directory such as a Partitioned Data Set (PDS), Panvalet master, or Librarian master, Comparex issues an end-of-DATA or end-of-TEXT message at the end of each member, unless DIRECTORY processing was requested. Also, with directory-embedded files, an end-of-DIRECTORY message is issued when each directory is exhausted. If the input files are not directory-embedded, Comparex issues an end-of-DATA or end-of-TEXT message at the end of each input file.

If keywords have been used, Comparex modifies the default processing to show additional counters.

The statistics line, message CPX75I, shows the number of records written onto SYSUT3, if COPYDIFF or COPYSAME was specified. Message CPX73I, shows the number of records written onto SYSUT3A, SYSUT3B, SYSUT3C, SYSUT3D, and SYSUTE if COPYSPLIT was specified.

If KEY or SEGMENT synchronization is used, Comparex shows, next to ‘DIFFERENCES,’ as the left-hand figure, the number of pairs of records which were synchronized by KEY or SEGMENT and some difference was found; as the middle figure, the number of records from file SYSUT1 that were not synchronized to any SYSUT2 record; and, as the right-hand figure, the number of records from file SYSUT2 that were not synchronized to any SYSUT1 record.

If FIELDs, SEGMENTs, IDENTITYs, or DESENs are specified, then message CPX76I shows how many of these specified positions went beyond the length of the record.

If filtering keywords are used, Comparex will show, with message CPX77I, the number of records that were not passed to the comparison routines due to filtering tests.

The clock time at the end of the job is shown, and the condition (return) code is displayed. The return codes are:

0 - normal completion - all records compared equal

4 - normal completion - at least one difference found

8 - error - Comparex output may still be useful

Page 39: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

16 - serious error - Comparex processing is halted immediately; look for a CPXnnA message to describe the reason.

Comparex closes all files.

KEYWORD GENERAL COMMENTS

Comparex keywords are free-form, and they can appear in any order.

Here, however, are some rules:

1. All displacements are relative to one (unless you specify MODE=SYSTEMS to set displacements relative to zero). These displacements occur in FIELD, FILTER, IDENTITY, MASK, KEY, DESEN, and SEGMENT statements. This means that the first byte of a record is byte number one. For example, if a key in the file is the account number and it occurs in the first four bytes of the record, the KEY statement would look like:

KEY=(1,4)

2. No spaces are allowed in a keyword and its associated data, but a space may be used to separate keywords on the SYSIN record.

3. Displacement and length values greater than 32767 are set to 32767.

4. If a file is variable length (RECFM=V, VB, or VBS), the LLBB (or RDW) cannot be accessed unless MODE=SYSTEMS has been specified.

5. Commas and decimal points cannot be used in numbers in keywords. Values, displacements, and lengths are given in numeric characters only.

6. Numeric expressions are specified with one to eight numeric characters only. Leading zeroes are acceptable, but are not redisplayed in acknowledgment messages.

7. If the first position of a SYSIN record is an asterisk, Comparex considers the entire record to be a comment and does not search for keywords on that record.

8. As many keywords as possible may be coded on one record, or, each SYSIN record may have only one keyword.

9. You may enter as many of each of the following keywords as desired, but Comparex will use only the last one of each specified. If multiple STOPAFT= keywords are encountered, the one with the lowest value will be used.

BUFFCOPYDIFFCOPYSAMECOPYSPLITDASHDELETEFORMAT

39

Page 40: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

40

Chapter 2: Major Processing Steps

HALTIGNORSININSERTKILLRCLINELINELIMMAXDIFFMAXMATCHMBRHDRMLCMODEPAGEPLUSREPLACESKIPUT1SKIPUT2STOPAFTSYSUT1SYSUT2SYSUT3SYSUT3ASYSUT3BSYSUT3CSYSUT3DSYSUT3ETEXTWILDCARD

10. Some keyword pairs or triplets are mutually exclusive. If more than one is specified, only the last one entered is used. These keyword sets are:

a) DATA versus TEXT versus DIRECTORY

b) DECIMAL versus HEX

c) EBCDIC versus ASCII versus UNICODE

d) MODE=APPLICATIONS versus MODE=SYSTEMS

e) PRINT=MATCH versus PRINT=NOMATCH

f) PRINT=MISMATCH versus PRINT=NOMISMATCH

g) LINE versus FORMAT

11. Some keywords are cumulative. Comparex will use as many as you enter, up to some limit. These keywords are:

a) Up to 800 IDENTITYs, FIELDs, MASKs, and DESENs are used together by Comparex. Each FIELD1 and FIELD2 pair counts as one field, and each MASK1 and MASK2 pair counts as one MASK.

Page 41: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

In addition, Comparex allows for a table of 8200 bytes to hold all IDENTITYs and DESENs. If you are entering more than 60 IDENTITY-DESEN combination keywords, read the information on the calculation of the IDENTITY table space in “Input Processing Keywords” on page 81.

b) Comparex allows for a table of 64K bytes to hold all filters.

c) Up to 40 KEY statements may be used. Each KEY1 and KEY2 pair counts as one KEY statement.

d) Comparex allows for a table of 6000 bytes to hold all SEGMENT keywords. If you are entering more than 160 SEGMENT keywords, read the information on the calculation of the SEGMENT table space in “DATA Keywords” on page 63.

e) Up to 40 SQUEEZE statements may be entered.

12. If you misspell a keyword or incorrectly supply a variable, Comparex underscores the entry with the DASH character and displays the literal “ERROR?” to the right of the underscores on the difference report. See message CPX00I in the “Messages” chapter for more information about correcting keywords.

13. Comparex will determine the data set organizations of the files to be processed. The SYSUT1, SYSUT2, and SYSUT3 keywords entered can override the data set organization determined by accessing control blocks through the operating system, but we do not recommend it.

14. For several keywords, such as FILTER and FIELD, you may see an optional parameter, N=keyword-name. N= lets you specify a descriptive phrase about the keyword which then appears on the report and improves the readability of the report. N= attaches a significant name to a piece of data that appears in the report; it does not alter the input or output characteristics of the compare. For example:

If you are using many FIELD statements, and FORMAT=FIELD to show only the specified fields in the report, you can more easily identify what the data in the field corresponds to by using N=copylib-variable-name.

Example report display:

CPX51I - RECORD NUMBER 1 ON FILE SYSUT1CPX52I - RECORD NUMBER 1 ON FILE SYSUT2 FIELD:

1 FIELD1=(1,11,C,N=DATA-SUBSCRIBER-OLD),FIELD2=(3,11,C,N=DATA-SUBSCRIBER-NEW) 00001ABCDEF

3 001ABCDEFGH ---------

SAMPLE RUN

Sample run JCL is shown in “Sample Batch JCL” following.

41

Page 42: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

42

Chapter 2: Major Processing Steps

Sample Batch JCL

//OS$JOB JOB ...//JOBLIB DD DISP=SHR,DSN=...//*//COMPARE PROC//COMPAREX EXEC PGM=COMPAREX,// REGION=200K//SYSPRINT DD SYSOUT=*// PEND//*//EXAMPL01 EXEC COMPARE//SYSUT1 DD DISP=SHR,DSN=...//SYSUT2 DD DISP=SHR,DSN=...//* Optional //SYSUT3 goes here//SYSIN DD **** COMPAREX keywords go here/*

“Sample Foreground CLIST” shown following illustrates a foreground run through a TSOCLIST. TSO users will probably prefer to use the ISPF interface.

Sample Foreground CLIST

PROC 2 DSNSYSUT1 DSNSYSUT2 FREE FI(SYSUT1,SYSUT2,SYSPRINT,SYSIN) ALLOC FI(SYSPRINT) DA(*) ALLOC FI(SYSUT1) DA(&DSNSYSUT1) SHR ALLOC FI(SYSUT2) DA(&DSNSYSUT2) SHR WRITE ******************************************** WRITE * PREPARE TO CREATE SYSIN INPUT TO * WRITE * PROGRAM COMPAREX. TERMINATE * WRITE * SYSIN WITH A /* (SLASH-ASTERISK). * WRITE * KEY IN HELP FOR ASSISTANCE. * WRITE ******************************************** ALLOC FI(SYSIN) DA(*) CALL ‘somnode.COMPAREX.LOAD(COMPAREX)’ Sample Foreground CLIST

For access to Panvalet, Librarian, and other proprietary file structures, exit information must be provided to the Comparex interface (CPXIFACE) using the SYSUT1 and SYSUT2 keywords.

Page 43: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

TEXT KEYWORDS

3 What you will find in this chapter:

• “What Is TEXT?” on page 43• “TEXT Processing Keywords” on page 44• “What Is TEXT Comparison Logic?” on page 45• “Keywords Not Available with TEXT” on page 50• “Advantages of TEXT” on page 52• “Disadvantages of TEXT” on page 53• “Decisions About DATA and TEXT” on page 53• “End-of-Job Counts” on page 53• “TEXT Keywords” on page 53

Comparex recognizes two categories of files (DATA and TEXT) and has separate comparison logic routines for each. This chapter describes TEXT files and the TEXT comparison logic routines.

If Comparex finds the TEXT keyword and the utility has not nullified TEXT because of other keywords, Comparex uses its TEXT comparison logic routines to compare the two input files.

If Comparex performs TEXT comparison logic, it cannot also perform DATA comparison logic in the same run. For this reason, the TEXT keyword and the DATA keyword are mutually exclusive; you cannot enter both. If both keywords are entered, Comparex will use the last one specified.

WHAT IS TEXT?

In Comparex, TEXT is defined as any file where there is not a known inter-record relationship. TEXT files may not have bytes or fields in any fixed relationship between records. The records can contain blanks, and they can be entirely free-form.

Examples of TEXT files are application program source code, job control language (JCL), reports, and documentation.

43

Page 44: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

44

Chapter 3: TEXT Keywords

TEXT PROCESSING KEYWORDS

Keywords Descriptions Pages

BUFF Specifies the buffer size used for TEXT comparison processing or DATA comparisons with Random KEYs.

Compare types: Data, Text

54

FRAME Specifies that the DASH and PLUS characters are used to frame differing blocks of text records.

Compare type: Text

55

MLC Specifies how many consecutive records must match after a mismatch to determine if the original and modified files are once again synchronized.

Compare type: Text

55

PRINT For TEXT comparisons, determines which original file (SYSUT1) records will be printed.

Compare type: Text

52, 56

SQUEEZE | SQZ For TEXT comparisons, determines which characters will be ignored during comparison. Depending on the text language you define, you can ignore up to 40 characters.

Compare type: Text

56

TEXT Tells Comparex that a TEXT comparison is to be performed. Also specifies the language format of the text records. Specifying a language impacts the characters you can ignore, SQUEEZE, during a comparison.

Compare type: Text

56

Page 45: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

WHAT IS TEXT COMPARISON LOGIC?

Under TEXT comparison logic, Comparex attempts to match records by looking ahead on each file if the record on SYSUT2 does not match the record on SYSUT1.

The order of TEXT processing is as follows:

1. Comparex reads and deletes squeeze characters from each record. If you have specified some option to TEXT (such as TEXT=JCL), Comparex will replace groups of specific characters (for JCL the character is space) with one such character, moving other characters to the left.

For TEXT=COBOL, the squeeze characters are space and comma. In some countries, squeezing out commas from COBOL is not appropriate (see “Programmable Options” in the Install Guide for information on how to disable it).

If TEXT is specified without any modifier, you can use the SQUEEZE keyword to specify up to 40 different squeeze characters.

If TEXT=$xxxx is specified (for example, TEXT=$COBOL), then all squeezing is disabled. The use of the dollar sign is recommended if you know in advance that there are no records that will be equal only after squeezing (that is, they are either exactly the same or totally different).

2. Comparex checks to see if the current SYSUT2 record exactly matches the current SYSUT1 record. If the two records are equal, Comparex reads a new record on each file’s buffer. If the two records are not equal, Comparex reads to the end of the buffer for file SYSUT2 to find a match. If a match is found, Comparex identifies all intervening SYSUT2 records as differing records and the utility writes these records onto the difference report.

If a match is not found, Comparex identifies the SYSUT1 record as a differing record and the utility writes this record onto the difference report. When records are written onto the difference report, Comparex moves the remaining buffer records to the beginning of the buffer area and reads new records from the input files into the end of the buffer area.

3. If you have specified PRINT=FULL, Comparex writes all records from file SYSUT1 onto the difference report, identifying those that are not matched on file SYSUT2.

4. If you have specified PRINT=MLC, Comparex fades into the differences by writing MLC (the number) lines before and fades out by writing MLC (the number) lines after the differences. An ellipsis (...) indicates where the missing identical lines exist.

5. You can determine how Comparex will know if a match is made by the use of the MLC keyword. The default value is five; this number means that Comparex will not determine that a match has been made until five records in a row exactly match.

If TEXT=JCL is specified and no MLC keyword is specified, Comparex sets the MLC value to 2.

If TEXT=REPORT is specified and no MLC keyword is specified, Comparex sets the MLC value to 3. If you find that this number did not create an acceptable report, you can override the value for subsequent runs.

45

Page 46: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

46

Chapter 3: TEXT Keywords

6. You can determine the size of the buffering area Comparex works with by using the BUFF keyword. Comparex uses a buffer of 60 kilobytes as the default. You can change this by entering any value between 32 (for 32K) and 1024 (for 1M). If you set MODE=SYSTEMS, you can specify up to 16 megabytes.

In general, the larger the buffer size, the more CPU time Comparex will use for the run. A small buffer could be used for small text records (such as 8 to 40 bytes) and a large buffer could be used for large text records (such as 500 bytes to 32000 bytes).

7. Comparex manipulates its buffers, and compares records until an end of file is detected on either file. It identifies extra records from the file that is not at end of file, and then moves these extra records to the difference report as differing records.

8. Comparex writes the difference report, under TEXT comparison logic, to identify differing records (rather than differing fields). For this reason, the entire record is displayed without underscoring of differing bytes, half-bytes, or excess bytes. By using PRINT=FULL and the FRAME keyword, you can show text records in several ways:

a) The default is to show only the differing records from the two files. Those records from file SYSUT1 that are not matched to any record from file SYSUT2 are identified, on the right-hand side of the report, with the designation DIF O N E; and those records from file SYSUT2 that are not matched to any record from file SYSUT1 are identified with the designation DIF T W O. To the far right, the logical record number is shown.

If a pair of records that are exactly equal (after any SQUEEZE characters are removed) occurs in the blocks, those records are not designated with the DIF literal on the right-hand side of the report. The DIF literal designates only records that are differing.

b) If PRINT=FULL is specified, the default report is modified so that all records from file SYSUT1 are shown in context. If records are framed (because an option to TEXT was specified, or because you entered the FRAME keyword), the SYSUT1 records that have been matched to a SYSUT2 record are not listed inside a frame (they are not surrounded by the dash character and the plus character on the difference report).

Those SYSUT1 records that have been matched to a SYSUT2 record do not show the designation DIF on the right-hand side of the report. The “TEXT=COBOL and PRINT=FULL” example on page 49 shows the use of PRINT=FULL and FRAME. Note that every record from file SYSUT1 is printed.

c) PRINT=MLC is a variation on PRINT=FULL. Only a few (MLC) lines are shown before and after the highlighted differences. Refer to “TEXT=COBOL and PRINT=MLC” on page 47 for an example. Note the fade-in, fade-out, and ellipsis.

d) If FRAME is specified, or if any option to TEXT except for TEXT=REPORT is specified, blocks of differing records are surrounded by the dash and plus characters on the difference report. Note the < and > characters on the FRAME that signify the bounds of the field that was used in the TEXT comparison.

Refer to “TEXT=COBOL” on page 47 for an example that shows TEXT, but without PRINT=FULL.

Page 47: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

9. In general, if the differences between SYSUT1 and SYSUT2 exceed 40%, the usefulness of the difference report is questionable. At that rate of difference, the changes are major; you should increase the BUFF size (try BUFF=500) and lower MLC (try MLC=4) to get satisfactory results.

TEXT Examples

The following examples show comparisons of two versions of the same COBOL program (which is shown in Appendix A).

TEXT=COBOL

++++++++|+++.+<++1++++.++++2++++.++++3++++.++++4++++.++++5++++.++++6++++.++++7+>++.++++8+++++++++++++++++++ D 002100 02 ONLY-REST-OF-REC PIC X(100). 00002100 DIF O N E 21 + --------|---.----1----.----2----.----3----.----4----.----5----.----6----.----7----.----8----------------- I 002100 02 ONLY-REST-OF-REC. 00002100 DIF T W O 21 + I 002200 05 ONLY-DISP PIC XXX. 00002200 DIF T W O 22 + I 002300 05 ONLY-UNIT PIC X(8). 00002300 DIF T W O 23 + I 002400 05 ONLY-VOL PIC X(6). 00002400 DIF T W O 24 + I 002500 05 FILLER PIC X(83). 00002500 DIF T W O 25 + ++++++++|+++.+<++1++++.++++2++++.++++3++++.++++4++++.++++5++++.++++6++++.++++7+>++.++++8+++++++++++++++++++ ++++++++|+++.+<++1++++.++++2++++.++++3++++.++++4++++.++++5++++.++++6++++.++++7+>++.++++8+++++++++++++++++++ D 003800 ELSE IF UPDATE-REQUEST PERFORM DO-THE-UPDATE 00003800 DIF O N E 38 + ++++++++|+++.+<++1++++.++++2++++.++++3++++.++++4++++.++++5++++.++++6++++.++++7+>++.++++8+++++++++++++++++++ ++++++++|+++.+<++1++++.++++2++++.++++3++++.++++4++++.++++5++++.++++6++++.++++7+>++.++++8+++++++++++++++++++ D 004600 MOVE 0 TO RETURN-CODE 00004600 DIF O N E 46 + --------|---.----1----.----2----.----3----.----4----.----5----.----6----.----7----.----8----------------- I 004900 MOVE ZERO TO RETURN-CODE 00004900 DIF T W O 49 + ++++++++|+++.+<++1++++.++++2++++.++++3++++.++++4++++.++++5++++.++++6++++.++++7+>++.++++8+++++++++++++++++++ CPX71I - END OF TEXT ON FILE SYSUT1 CPX72I - END OF TEXT ON FILE SYSUT2 CPX75I - RECORDS PROCESSED: SYSUT1(60)/SYSUT2(63),DIFFERENCES(2,1,4) EXPLANATION - 2 RECORDS DIFFER THAT SYNCHRONIZED TOGETHER 1 RECORD WAS CONSIDERED INSERTED ON SYSUT1 4 RECORDS WERE CONSIDERED INSERTED ON SYSUT2 CPX80I - TIME OF DAY AT END OF JOB: 10:27:37 - CONDITION CODE ON EXIT: 4

TEXT=COBOL and PRINT=MLC

. . . 001600 02 ONLY-KEY. 00001600 O N E 16 001700 03 ONLY-ACCOUNT PIC X(10). 00001700 O N E 17 001800 03 ONLY-TYPE PIC XX. 00001800 O N E 18 001900 03 ONLY-DSN PIC X(44) OCCURS 2. 00001900 O N E 19 002000 03 ONLY-MEMBER PIC X(10) OCCURS 2. 00002000 O N E 20++++++++|+++.+<++1++++.++++2++++.++++3++++.++++4++++.++++5++++.++++6++++.++++7+>++.++++8+++++++++++++++++++ D 002100 02 ONLY-REST-OF-REC PIC X(100). 00002100 DIF O N E 21 +--------|---.----1----.----2----.----3----.----4----.----5----.----6----.----7----.----8------------------- I 002100 02 ONLY-REST-OF-REC. 00002100 DIF T W O 21 + I 002200 05 ONLY-DISP PIC XXX. 00002200 DIF T W O 22 + I 002300 05 ONLY-UNIT PIC X(8). 00002300 DIF T W O 23 + I 002400 05 ONLY-VOL PIC X(6). 00002400 DIF T W O 24 + I 002500 05 FILLER PIC X(83). 00002500 DIF T W O 25 +++++++++|+++.+<++1++++.++++2++++.++++3++++.++++4++++.++++5++++.++++6++++.++++7+>++.++++8+++++++++++++++++++ 002200 WORKING-STORAGE SECTION. 00002200 O N E 22 002300 77 ONLY-FILE-STAT PIC XX. 00002300 O N E 23 002400 01 SWITCHES. 00002400 O N E 24 002500 02 END-OF-ONLY-FILE-SW PIC X. 00002500 O N E 25 002600 88 END-OF-ONLY-FILE VALUE 'Y'. 00002600 O N E 26. . . 003300 EJECT 00003300 O N E 33 003400 PROCEDURE DIVISION USING LS-FUNCTION, LS-ONLY-REC. 00003400 O N E 34 003500 MAIN-LINE. 00003500 O N E 35 003600 IF OPEN-REQUEST PERFORM DO-THE-OPEN 00003600 O N E 36 003700 ELSE IF READSEQ-REQUEST PERFORM DO-THE-SEQ-READ 00003700 O N E 37

47

Page 48: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

48

Chapter 3: TEXT Keywords

++++++++|+++.+<++1++++.++++2++++.++++3++++.++++4++++.++++5++++.++++6++++.++++7+>++.++++8+++++++++++++++++++ D 003800 ELSE IF UPDATE-REQUEST PERFORM DO-THE-UPDATE 00003800 DIF O N E 38 +++++++++|+++.+<++1++++.++++2++++.++++3++++.++++4++++.++++5++++.++++6++++.++++7+>++.++++8+++++++++++++++++++ 003900 ELSE IF CLOSE-REQUEST PERFORM DO-THE-CLOSE 00003900 O N E 39 004000 ELSE DISPLAY 'INVALID I/O FUNCTION REQUESTED' 00004000 O N E 40 004100 MOVE 12 TO RETURN-CODE. 00004100 O N E 41 004200 GOBACK. 00004200 O N E 42 004300 DO-THE-OPEN. 00004300 O N E 43 004400 OPEN I-O ONLY-FILE. 00004400 O N E 44 004500 IF ONLY-FILE-STAT = '00' 00004500 O N E 45++++++++|+++.+<++1++++.++++2++++.++++3++++.++++4++++.++++5++++.++++6++++.++++7+>++.++++8+++++++++++++++++++ D 004600 MOVE 0 TO RETURN-CODE 00004600 DIF O N E 46 +--------|---.----1----.----2----.----3----.----4----.----5----.----6----.----7----.----8------------------- I 004900 MOVE ZERO TO RETURN-CODE 00004900 DIF T W O 49 +++++++++|+++.+<++1++++.++++2++++.++++3++++.++++4++++.++++5++++.++++6++++.++++7+>++.++++8+++++++++++++++++++ 004700 ELSE 00004700 O N E 47 004800 EXHIBIT NAMED ONLY-FILE-STAT 00004800 O N E 48 004900 DISPLAY 'OPEN FAILED' 00004900 O N E 49 005000 MOVE 8 TO RETURN-CODE. 00005000 O N E 50 005100 DO-THE-SEQ-READ. 00005100 O N E 51 CPX71I - END OF TEXT ON FILE SYSUT1 CPX72I - END OF TEXT ON FILE SYSUT2 CPX75I - RECORDS PROCESSED: SYSUT1(60)/SYSUT2(63),DIFFERENCES(2,1,4) EXPLANATION - 2 RECORDS DIFFER THAT SYNCHRONIZED TOGETHER 1 RECORD WAS CONSIDERED INSERTED ON SYSUT1 4 RECORDS WERE CONSIDERED INSERTED ON SYSUT2 CPX80I - TIME OF DAY AT END OF JOB: 10:27:42 - CONDITION CODE ON EXIT: 4

Page 49: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

TEXT=COBOL and PRINT=FULL

000100 IDENTIFICATION DIVISION. 00000100 O N E 1 000200 PROGRAM-ID. COBOL01. 00000200 O N E 2 000300 ENVIRONMENT DIVISION. 00000300 O N E 3 000400 INPUT-OUTPUT SECTION. 00000400 O N E 4 000500 FILE-CONTROL. 00000500 O N E 5 000600 SELECT ONLY-FILE, 00000600 O N E 6 000700 ASSIGN VSAMFILE, 00000700 O N E 7 000800 ORGANIZATION IS INDEXED, 00000800 O N E 8 000900 ACCESS DYNAMIC, 00000900 O N E 9 001000 RECORD KEY IS ONLY-KEY, 00001000 O N E 10 001100 FILE STATUS IS ONLY-FILE-STAT. 00001100 O N E 11 001200 DATA DIVISION. 00001200 O N E 12 001300 FILE SECTION. 00001300 O N E 13 001400 FD ONLY-FILE. 00001400 O N E 14 001500 01 ONLY-REC. 00001500 O N E 15 001600 02 ONLY-KEY. 00001600 O N E 16 001700 03 ONLY-ACCOUNT PIC X(10). 00001700 O N E 17 001800 03 ONLY-TYPE PIC XX. 00001800 O N E 18 001900 03 ONLY-DSN PIC X(44) OCCURS 2. 00001900 O N E 19 002000 03 ONLY-MEMBER PIC X(10) OCCURS 2. 00002000 O N E 20 ++++++++|+++.+<++1++++.++++2++++.++++3++++.++++4++++.++++5++++.++++6++++.++++7+>++.++++8+++++++++++++++++++ D 002100 02 ONLY-REST-OF-REC PIC X(100). 00002100 DIF O N E 21 +--------|---.----1----.----2----.----3----.----4----.----5----.----6----.----7----.----8------------------- I 002100 02 ONLY-REST-OF-REC. 00002100 DIF T W O 21 + I 002200 05 ONLY-DISP PIC XXX. 00002200 DIF T W O 22 + I 002300 05 ONLY-UNIT PIC X(8). 00002300 DIF T W O 23 + I 002400 05 ONLY-VOL PIC X(6). 00002400 DIF T W O 24 + I 002500 05 FILLER PIC X(83). 00002500 DIF T W O 25 +++++++++|+++.+<++1++++.++++2++++.++++3++++.++++4++++.++++5++++.++++6++++.++++7+>++.++++8+++++++++++++++++++ 002200 WORKING-STORAGE SECTION. 00002200 O N E 22 002300 77 ONLY-FILE-STAT PIC XX. 00002300 O N E 23 002400 01 SWITCHES. 00002400 O N E 24 002500 02 END-OF-ONLY-FILE-SW PIC X. 00002500 O N E 25 002600 88 END-OF-ONLY-FILE VALUE 'Y'. 00002600 O N E 26 002700 LINKAGE SECTION. 00002700 O N E 27 002800 01 LS-FUNCTION PIC X(8). 00002800 O N E 28 002900 88 OPEN-REQUEST VALUE 'OPEN'. 00002900 O N E 29 003000 88 READSEQ-REQUEST VALUE 'READSEQ'. 00003000 O N E 30 003100 88 CLOSE-REQUEST VALUE 'CLOSE'. 00003100 O N E 31 003200 01 LS-ONLY-REC PIC X(220). 00003200 O N E 32 003300 EJECT 00003300 O N E 33 003400 PROCEDURE DIVISION USING LS-FUNCTION, LS-ONLY-REC. 00003400 O N E 34 003500 MAIN-LINE. 00003500 O N E 35 003600 IF OPEN-REQUEST PERFORM DO-THE-OPEN 00003600 O N E 36 003700 ELSE IF READSEQ-REQUEST PERFORM DO-THE-SEQ-READ 00003700 O N E 37++++++++|+++.+<++1++++.++++2++++.++++3++++.++++4++++.++++5++++.++++6++++.++++7+>++.++++8+++++++++++++++++++ D 003800 ELSE IF UPDATE-REQUEST PERFORM DO-THE-UPDATE 00003800 DIF O N E 38 +++++++++|+++.+<++1++++.++++2++++.++++3++++.++++4++++.++++5++++.++++6++++.++++7+>++.++++8+++++++++++++++++++ 003900 ELSE IF CLOSE-REQUEST PERFORM DO-THE-CLOSE 00003900 O N E 39 004000 ELSE DISPLAY 'INVALID I/O FUNCTION REQUESTED' 00004000 O N E 40 004100 MOVE 12 TO RETURN-CODE. 00004100 O N E 41 004200 GOBACK. 00004200 O N E 42 004300 DO-THE-OPEN. 00004300 O N E 43 004400 OPEN I-O ONLY-FILE. 00004400 O N E 44 004500 IF ONLY-FILE-STAT = '00' 00004500 O N E 45++++++++|+++.+<++1++++.++++2++++.++++3++++.++++4++++.++++5++++.++++6++++.++++7+>++.++++8+++++++++++++++++++ D 004600 MOVE 0 TO RETURN-CODE 00004600 DIF O N E 46 +--------|---.----1----.----2----.----3----.----4----.----5----.----6----.----7----.----8------------------- I 004900 MOVE ZERO TO RETURN-CODE 00004900 DIF T W O 49 +++++++++|+++.+<++1++++.++++2++++.++++3++++.++++4++++.++++5++++.++++6++++.++++7+>++.++++8+++++++++++++++++++ 004700 ELSE 00004700 O N E 47 004800 EXHIBIT NAMED ONLY-FILE-STAT 00004800 O N E 48 004900 DISPLAY 'OPEN FAILED' 00004900 O N E 49 005000 MOVE 8 TO RETURN-CODE. 00005000 O N E 50 005100 DO-THE-SEQ-READ. 00005100 O N E 51 005200 READ ONLY-FILE NEXT, AT END MOVE 8 TO RETURN-CODE. 00005200 O N E 52 005300 IF ONLY-FILE-STAT = '00' 00005300 O N E 53 005400 MOVE ONLY-REC TO LS-ONLY-REC 00005400 O N E 54 005500 MOVE 'N' TO END-OF-ONLY-FILE-SW 00005500 O N E 55 005600 ELSE 00005600 O N E 56 005700 MOVE 'Y' TO END-OF-ONLY-FILE-SW 00005700 O N E 57 005800 MOVE 8 TO RETURN-CODE. 00005800 O N E 58 005900 DO-THE-CLOSE. 00005900 O N E 59

49

Page 50: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

50

Chapter 3: TEXT Keywords

006000 CLOSE ONLY-FILE. 00006000 O N E 60 CPX71I - END OF TEXT ON FILE SYSUT1 CPX72I - END OF TEXT ON FILE SYSUT2 CPX75I - RECORDS PROCESSED: SYSUT1(60)/SYSUT2(63),DIFFERENCES(2,1,4) EXPLANATION - 2 RECORDS DIFFER THAT SYNCHRONIZED TOGETHER 1 RECORD WAS CONSIDERED INSERTED ON SYSUT1 4 RECORDS WERE CONSIDERED INSERTED ON SYSUT2 CPX80I - TIME OF DAY AT END OF JOB: 10:27:42 - CONDITION CODE ON EXIT: 4

KEYWORDS NOT AVAILABLE WITH TEXT

Certain keywords cannot be used with TEXT comparison logic; they are described in the following sections.

DUMMY File

SYSUT2=DUMMY cannot be specified with TEXT. To do a TEXT comparison, Comparex needs a valid file as SYSUT2. If you specify TEXT and SYSUT2=DUMMY, Comparex issues message CPX24A and continues to process, ignoring the TEXT keyword and using DATA comparison logic for the run.

KEYs

KEY keywords (and KEY1 and KEY2 pairs) cannot be specified with TEXT. Comparex does not synchronize on KEY keywords with TEXT. If you specify any KEY keyword and TEXT, Comparex issues message CPX24A and continues to process, ignoring the TEXT keyword and using DATA comparison logic for the run, synchronizing by key.

SEGMENTs

SEGMENT keywords cannot be specified with TEXT. Comparex does not synchronize on segments with TEXT. If you specify any segment and TEXT, Comparex issues message CPX24A and continues to process, ignoring the TEXT keyword and using DATA comparison logic for the run, synchronizing by segment.

DATA

DATA cannot be specified with TEXT; the two are mutually exclusive. If both keywords are specified, Comparex will use the last one.

IDENTITYs

IDENTITY keywords cannot be specified with TEXT. TEXT comparison logic does not use identity tests. If you specify any IDENTITY keyword and TEXT, Comparex issues message CPX24A and continues to process, ignoring the TEXT keyword and using DATA comparison logic for the run.

Page 51: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

Fields

Multiple FIELD keywords (or a FIELD1, FIELD2 pair) cannot be specified with TEXT. If any option to TEXT has been specified (such as TEXT=COBOL or TEXT=JCL), no FIELD keyword can be entered because Comparex creates a field when it processes with an option to TEXT. Comparex creates FIELD=(7,66) for TEXT=COBOL, and FIELD=(1,72) for TEXT=JCL (relative to one). If you enter more than one FIELD keyword with TEXT, Comparex issues message CPX24A and continues to process, ignoring the TEXT keyword and using DATA comparison logic.

DESENs

The desensitizing keywords (DESEN, DESEN1, and DESEN2) cannot be used with TEXT. They will be ignored if entered.

MASKs

If a MASK keyword generates only one FIELD, it can be used with TEXT. If more than one FIELD is generated, Comparex ignores the TEXT keyword. See “Input Processing Keywords” on page 81 for information about how Comparex generates fields from masks.

FLDSONLY

FLDSONLY cannot be specified with TEXT. Comparex does not underscore any bytes on the difference report with TEXT. Comparex will ignore this keyword if TEXT comparison logic is in effect.

LINE

If any option to TEXT processing except for TEXT=REPORT is specified (such as TEXT=COBOL or TEXT=JCL), Comparex sets the value of LINE to (80,ALPHA) and any LINE keyword entered by you will be ignored.

If TEXT=REPORT is specified, Comparex sets the value of LINE to (133,ALPHA). If no option to TEXT processing is specified, Comparex defaults the value of LINE to (32,HORIZONTAL); you can modify this by specifying any other legitimate value for LINE.

LINELIM

LINELIM is not used with TEXT.

NIBBLE

NIBBLE cannot be specified with TEXT. Comparex does not underscore the difference report with TEXT. Comparex will ignore this keyword if TEXT comparison logic is in effect.

51

Page 52: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

52

Chapter 3: TEXT Keywords

PRINTs

PRINT=MATCH, PRINT=NOMATCH, PRINT=MISMATCH, and PRINT=NOMISMATCH cannot be specified with TEXT. Comparex will ignore these keywords if TEXT comparison logic is in effect.

PRINT=FULL or PRINT=MLC are the only PRINT keywords that can be entered with TEXT; these specify that Comparex will print some or all of the records from file SYSUT1 along with all differing records from file SYSUT2 on the difference report.

ADVANTAGES OF TEXT

TEXT comparison logic has the advantages (over DATA comparison logic) of comparing only the significant data, determining differences in context with the rest of the file, and providing synchronization if no KEY is clear.

Comparing Only on the Significant Data

Before any comparison takes place under TEXT processing, Comparex removes insignificant characters through its squeeze process. What is left is the significant data, and only this data enters the comparison process.

An example would be the common practice of columnar indentation in COBOL programs. This columnar indentation creates spaces in the input file, and Comparex removes these spaces before comparison. In this way, if TEXT=COBOL were specified, Comparex would find these two records to be equal:

010100 IF SORT-RETURN IS NOT EQUAL TO ZERO, 010111 IF SORT-RETURN IS NOT EQUAL TO ZERO

Comparex would remove all spaces and commas, and it would compare only positions 7 through 72 (relative to one).

Determining Differences in Context with the Rest of the File

By specifying PRINT=FULL, you can inspect all inserted, deleted, and modified records while examining the rest of the file. This way, some errors, which would not be detected by viewing only the differing records, can be seen more clearly.

Providing Synchronization If No KEY Is Clear

For files without a specific synchronization key (as is the case with TEXT compares), TEXT comparison can be used to identify inserted, deleted, or changed records. TEXT comparison logic provides you with a way to match up records according to data values if the files cannot be synchronized by key.

Page 53: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

DISADVANTAGES OF TEXT

Inefficiencies

• TEXT comparison logic requires more CPU time than DATA comparison logic because it squeezes out specific characters, and searches the entire buffer for two records that match.

• It may access its buffer areas many times during the comparison of one record.

• It manipulates its buffer areas to move records into lower storage if new records are added to the buffer.

• TEXT produces a difference report showing the full record, but differing bytes, half-bytes, and excess bytes are not underscored.

DECISIONS ABOUT DATA AND TEXT

If you are uncertain which comparison logic to use (DATA or TEXT), these suggestions can help:

1. Decide if the files have a key. If a key is available for synchronization, DATA comparison logic will probably produce a more useful difference report.

2. If the files are databases or previously unloaded versions (flat files), use DATA comparison logic with SEGMENT keywords.

3. If the files are load modules, use DATA comparison logic, specifying no key.

4. If the size of the record is large (greater than 2000 bytes), and if internal blocking is used (such as VSAM-ESDS IMS databases), use DATA comparison logic with no key and set MAXDIFF to a low number to prevent a runaway comparison.

5. Otherwise, use TEXT, increasing BUFF and lowering MLC until the desired results are obtained.

END-OF-JOB COUNTS

At the end of the TEXT processing, Comparex shows the message CPX75I the number of records read from the input files and written to any SYSUT3 file.

In addition, the number of differences are shown with message CPX75I.

TEXT KEYWORDS

The BUFF, FRAME, MLC, SQUEEZE, TEXT, PRINT=MLC, and PRINT=FULL keywords are used to specify TEXT comparison logic and to direct the matching, buffering, and printing routines.

53

Page 54: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

54

Chapter 3: TEXT Keywords

BUFF

Specifies the number of kilobytes for buffering records.

Keyword Format

BUFF={60} {nn}

nn can range from 32 to 1024 under MODE=APPLICATIONS, and as high as 16384 under MODE=SYSTEMS.

There is no limit to the size of the buffer. Twenty megabyte (BUFF=20000) buffers are possible without fear of abending. These GETMAINed areas are obtained above the 16 MB storage line. The default value for TEXT processing, or DATA with Random KEYs, is 60.

For CSECT parsing (DATA=CSECT), the default buffer size is 256K. You should specify a much larger buffer if the load modules to be compared are sizable.

For example:

MODE=SYS /* Temporarily set SYStems mode */ BUFF=5000 /* Five megabyte buffer - if possible */ MODE=APL /* Reset back to Applications */

Setting the size of the buffer in these keywords does not necessarily mean that the GETMAIN to obtain the storage will be satisfied. If the region is not large enough to handle such a large request, the task can abend or receive the following message:

CPX99A - INSUFFICIENT VIRTUAL STORAGE - FUNCTION TERMINATED

and terminate immediately.

Some TEXT type files (files that are processed using TEXT logic) need this larger buffer because of their large record size. 4000-byte (4 K) records will fill up a 60K buffer very quickly.

The specification of a very large value (such as 1024) should be done only when processing a very large text record (a record exceeding 1,000 bytes), or if a large number of clustered inserts are included in either file. In general, the larger the buffer, the more time Comparex takes processing.

Internally, this buffer is split in half. One half of the buffer holds records from SYSUT1, and the other half holds records from SYSUT2.

Keyword Examples

BUFF=512 BUFF=1024 /* One megabyte

Page 55: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

FRAME

FRAME specifies that blocks of differing records are surrounded by the plus (+) character and the dash (-) character on the difference report.

If any option to TEXT is specified (except for TEXT=REPORT), the blocks of differing records are automatically framed with FRAME=NUM on the difference report.

FRAME=YES and FRAME are logically equivalent and indicate that the frame is composed solely of pluses and dashes.

FRAME=NUM intersperses numerics into the frame to show relative displacements.

FRAME=NO overrides any other specification or defaults, and effectively nullifies the frame construction.

Keyword Format

FRAME[={YES}] [ {NO}] [ {NUM} ]

Keyword Examples

FRAME FRAME=NO FRAME=(NUM)

MLC

MLC specifies matching line count.

Keyword Format:

MLC={5} {nn}

nn can be a value between 1 and 40. This value specifies how many records Comparex must match consecutively after a mismatch to determine if the files are back in synchronization.

Specification of a very large value, such as 40, should be done only if you are certain that there are very few differences. In general, the larger the matching line count, the more processing time Comparex will take.

If TEXT=JCL is specified and no MLC is specified, Comparex sets the MLC value to 2.

If TEXT=REPORT is specified and no MLC keyword is entered, Comparex sets the MLC value to 3. Otherwise, if no MLC keyword is entered, Comparex sets the MLC value to 5.

55

Page 56: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

56

Chapter 3: TEXT Keywords

Keyword Examples

MLC=10 MLC=(005)

PRINT

PRINT specifies printing a certain number of records from file SYSUT1 in context with the differing records from file SYSUT2.

Keyword Format

PRINT={FULL} {MLC}

FULL specifies that all records should be printed.

MLC specifies that a few (MLC) records should be printed before and after the highlighted differences.

PRINT=MLC is referred to as “fade-in, fade-out”.

SQUEEZE

SQUEEZE allows you to specify the character(s) to be taken out from each TEXT record before comparison. The specified characters are removed, and the remaining text is moved to the left in the record. All instances of the characters are taken out.

Up to 40 different SQUEEZE characters can be specified. The character is specified as X‘vv’ or C‘v’.

You cannot specify a SQUEEZE keyword if any option to TEXT is specified. If an option to TEXT is specified (such as TEXT=COBOL), any SQUEEZE keywords will be ignored.

Keyword Format

SQUEEZE=t'vv'(or SQZ)

Keyword Examples:

SQUEEZE=C' ' SQUEEZE=X'EA' SQZ=C'?'

TEXT

TEXT specifies that files have no inter-record relationship (such as program source code).

Page 57: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

Inserted, deleted, and modified records are isolated in the difference report, but differing bytes are not underscored.

If any option to TEXT processing is specified (except for TEXT=REPORT or TEXT=SCRIPT), LINE is set to LINE=(80,ALPHA). This gives a difference report in character format, not the hexadecimal dump format.

It is not necessary to specify an option (programming language). If the TEXT keyword is used without an option, Comparex will squeeze out only those characters specified by the SQUEEZE keyword, and it will compare the entire record (unless a FIELD is specified).

None of the DATA files synchronization keywords (KEY, KEY1, KEY2, and SEGMENT) can be used with TEXT processing.

Keyword Format

TEXT[=[$]{ALC} ] [ {BAL} ] [ {C} ] [ {CLIST} ] [ {COBOL} ] [ {FORTRAN}] [ {HTML} ] [ {JCL} ] [ {NATURAL}] /* ADABAS Natural */ [ {PANEL} ] [ {PASCAL} ] [ {PL1} ] [ {PL/1} ] [ {PL/1} ] [ {PL1} ] [ {REPORT} ] [ {REXX} ] [ {RPG} ] [ {SCRIPT} ] [ {XML} ] [ {.} ] <=== Whatever WILDCARD is set to

The options for the TEXT keyword are described in the following table.

Option Description

$ As a prefix to any of the TEXT options, such as TEXT=$COBOL, nullifies any potential SQUEEZEing.

If possible, use $ to reduce the processor time needed.

57

Page 58: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

58

Chapter 3: TEXT Keywords

ALC, BAL, C, JCL, or PASCAL

Comparex will squeeze out spaces.

In the default, MODE=APPLICATIONS (displacement relative to one), the utility will compare only on positions 1 through 72 of the record.

If you specify MODE=SYSTEMS (displacement relative to zero), the utility will compare only on positions 0 through 71.

If JCL is specified and you did not enter an MLC keyword, MLC is set to 2.

CLIST Comparex will squeeze out spaces.

This option assumes that the files to be compared are variable length CLISTs. Fixed length CLISTs should be compared using TEXT=BAL.

In default mode (displacement relative to one), the utility will compare on position 9 through the end of the record.

If you specify MODE=SYSTEMS (displacement relative to zero), the utility will compare on positions 12 through the end of the record, displaying the LLbb and 8-digit sequence number.

COBOL Comparex will squeeze out spaces and commas. You can bypass the squeezing out of commas if appropriate for your installation; see the section on “Programmable Options” in the Install Guide.

Under the default, MODE=APPLICATIONS (displacement relative to one), the utility will compare only on positions 7 through 72 of the record.

If you specify MODE=SYSTEMS (displacement relative to zero), the utility will compare only on positions 6 through 71.

The first apostrophe or quotation mark in any line of the COBOL program will temporarily suspend the squeezing of blanks until the next apostrophe or quotation mark is encountered, at which point squeezing is reinstated.

FORTRAN, PL/1, PL/I, PL1, or PLI

Comparex will squeeze out spaces.

Under the default, MODE=APPLICATIONS (displacement relative to one), the utility will compare only on positions 2 through 72 of the record.

If you specify MODE=SYSTEMS (displacement relative to zero), the utility will compare only on positions 1 through 71.

Option Description

Page 59: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

HTML Comparex will squeeze out spaces and x’05’ horizontal tab characters.

LINE is set to (133,ALPHA); Comparex displays bytes in excess of 133 only if one or more of the excess bytes are not spaces.

If you do not enter an MLC keyword, MLC is set to 3.

NATURAL Comparex will squeeze out spaces.

All bytes in all records are compared.

PANEL Comparex will not squeeze out any characters (TEXT=$PANEL is redundant).

All bytes in all records are compared.

REPORT Comparex will not squeeze out any characters. It will compare the entire record.

LINE is set to (133,ALPHA); Comparex displays bytes in excess of 133 only if one or more of the excess bytes are not spaces.

If you do not enter an MLC keyword, MLC is set to 3.

REXX Comparex will squeeze out spaces.

The first apostrophe or quotation mark in any line of the REXX program will temporarily suspend the squeezing of blanks until the next apostrophe or quotation mark is encountered, at which point squeezing is reinstated.

All bytes in all records are compared.

RPG Comparex will squeeze out spaces.

Under the default MODE=APPLICATIONS (displacement relative to one), the utility will compare only positions 2 through 66 of the record.

If you specify MODE=SYSTEMS (displacement relative to zero), the utility will compare only positions 1 through 65.

SCRIPT Comparex will squeeze out spaces.

LINE is set to (133,ALPHA); Comparex displays bytes in excess of 133 only if one or more of the excess bytes are not spaces.

If you do not enter an MLC keyword, MLC is set to 3.

Option Description

59

Page 60: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

60

Chapter 3: TEXT Keywords

Wildcard (.) Comparex will read the first 40 records from file SYSUT1 and determine what kind of TEXT compare should be run (this is not foolproof, but most kinds of program source code can be determined, and the appropriate FIELD deduced).

For example, if the first record in SYSUT1 starts with <?xml,then Comparex will execute a TEXT=XML compare.

XML Comparex will compare element tag contents within subsections of the documents in SYSUT1 and SYSUT2. The tags can appear in a different order within their subsection. Comparex will use the MLC value to determine what tag records to match within each subsection.

Note

Comparex uses the default MLC value of 5 if no MLC keyword is entered. You must set the MLC to a higher value if you need to have a larger matching line count within your document subsections.

Comparex will squeeze out spaces and x’05’ horizontal tab characters.

Example:

<doc> <doc> <tag1>red</tag1> <tag2>dog</tag2> <tag2>dog</tag2> <tag1>red</tag1></doc> </doc>

will compare equal because all the subsection tags are present in the other document even though their order is reversed.

Example:

<stuff></stuff> <stuff/>

will compare equal, as Comparex recognizes empty XML tags.

Note

You can use TEXT=SCRIPT if you prefer to compare text differences regardless of the document structure.

Option Description

Page 61: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

Keyword Examples:

TEXT TEXT=$COBOL TEXT=($BAL) TEXT=C TEXT=. TEXT=XML

61

Page 62: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

62

Chapter 3: TEXT Keywords

Page 63: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

DATA KEYWORDS

4 What you will find in this chapter:

• “DATA File Synchronization Keywords” on page 63• “What Is DATA?” on page 64• “What Is DATA Comparison Logic?” on page 64• “DUMMY Files” on page 64• “KEY Synchronization” on page 65• “SEGMENT Synchronization” on page 67• “Physical-Record-Number Synchronization” on page 71• “Keywords Not Available with DATA” on page 73• “Advantages of DATA” on page 73• “Disadvantage of DATA” on page 74• “Decisions About DATA and TEXT” on page 74• “End-of-Job Counts” on page 74• “DATA Keywords” on page 75

Comparex recognizes two categories of files (DATA and TEXT) and the utility has a comparison logic routine for each. This chapter describes DATA files and the DATA comparison logic routines; refer to “TEXT Keywords” on page 43 for information on TEXT files and the TEXT comparison logic routines.

If TEXT is not specified, or if it has been nullified because of inconsistencies, Comparex uses its DATA comparison logic routines to compare the two input files.

When Comparex performs DATA comparison logic, it cannot simultaneously perform TEXT comparison logic in the same run. For this reason, the DATA keyword and the TEXT keyword are mutually exclusive; you cannot enter them both in the same run. However, if both keywords are entered in the same run, Comparex will use the last one on the file. DATA is the default.

DATA FILE SYNCHRONIZATION KEYWORDS

These keywords are for DATA comparisons only. They do not apply to TEXT or DIRECTORY comparisons.

63

Page 64: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

64

Chapter 4: DATA Keywords

WHAT IS DATA?

In Comparex, DATA is defined as any file where there is a known inter-record relationship. DATA files have bytes and fields in fixed relationships on their records.

Examples of DATA files are system master files, system intermediate files, system transaction files, load modules, and databases.

WHAT IS DATA COMPARISON LOGIC?

Under DATA comparison logic, the Comparex input processing routines attempt to match records (one record from each input file) to send to the compare routines. The types of matching are: KEY synchronization, SEGMENT synchronization, and physical-record-number to physical-record-number (no) synchronization.

DUMMY FILES

If you specify SYSUT1=DUMMY or SYSUT2=DUMMY, these DATA compare routines are not used. Instead, the input processing routines send the records from the non-DUMMY file directly to the difference report. Records from SYSUT2 are sent to the print routines if COPYDIFF has been specified; this can be used to create an unloaded copy of a database file.

Keywords Descriptions Pages

KEY

KEY1

KEY2

For KEY, specifies a control field to use for file synchronization. The field position, length, and format are the same for both SYSUT1 and SYSUT2.

If field position, length, or format are different in SYSUT1 and SYSUT2 files, then KEY1 and KEY2 designate the field’s position, length, and format in SYSUT1 and SYSUT2, respectively.

65, 75, 77

SEGMENT Specifies a control field if the input files are databases.

77

Page 65: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

KEY SYNCHRONIZATION

If you specify one or more KEY keywords, Comparex uses KEY synchronization to pair records to send to the compare routines. In addition, if no KEY was specified, and if the SYSUT1 file organization uses a key (such as ISAM or VSAM-KSDS), Comparex will use the file’s defined key as a default for synchronization.

KEYs are file control fields. Up to 40 KEYs (or KEY1 and KEY2 pairs) may be specified in each Comparex run. The first KEY keyword specified is the most significant KEY on the file; the last KEY keyword specified is the least significant KEY on the file.

An example of the use of KEYs would be for a customer file. The most significant KEY would be for the customer number field; an intermediate KEY would be for invoice number; and the least significant KEY would be for transaction date/time stamp. The KEY keywords could look like this:

KEY=(3,7) KEY=(11,4,P,D) KEY=(31,6,,R)

The KEY synchronization processing is described in the following sections.

File Out of Sequence

If, while reading records from either SYSUT1 or SYSUT2, Comparex finds that a KEY or SEGMENT control field is not in the sequence that has been specified (ascending or descending), then message CPX36A will be issued, followed by the offending record.

For example, if a file consists of records with KEYs 1, 5, 10, 3, and 20; the record with KEY 3 is out-of-synch (ascending assumed) with the rest. It would be noted with message CPX36A and printed, but any future “out-of-synch” situations would not be flagged (only the first violation would be flagged).

If it is known in advance that data records are not in ascending or descending sequence, then random KEYs should be considered.

Duplicate KEY on the Same File

If there are duplicate keys on one or both input files, then the first record with that key on SYSUT1 will be paired with the first record with that same key on SYSUT2, and sent to the comparison routines. Each file is then advanced to the next record, and the matching process starts all over again.

Equal KEYs, then, cause no problems with synchronization, except that if only one record for that KEY exists on the other file, it will be paired for comparison to the first record on the file with the duplicate KEY. The second record on the file with the duplicate KEY will be identified as a KEY synchronization mismatch, showing on the difference report after message CPX61I (for records from file SYSUT1), or CPX62I (for records from file SYSUT2).

65

Page 66: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

66

Chapter 4: DATA Keywords

KEY Goes Beyond Record

If any position of any KEY goes beyond the end of the record, Comparex will terminate immediately, issuing message CPX35A.

End of Data on SYSUT1

If file SYSUT1 has come to end of file and file SYSUT2 has not, Comparex sends all extra records from file SYSUT2 to the difference report, showing them as extra records with message CPX62I. If COPYDIFF is in effect, Comparex sends the SYSUT2 records to the output processing routines for writing to file SYSUT3.

End of Data on SYSUT2

If file SYSUT2 has come to end of file and file SYSUT1 has not, Comparex sends all extra records from file SYSUT1 to the difference report, showing them as extra records with message CPX61I.

Records Matched on KEY

If the compare routines find that a set of KEYs on a record from file SYSUT1 is equal to a set of KEYs on a record from file SYSUT2 (the pair has been sent together to the compare routines synchronized by KEY), Comparex compares the data values in the records.

Records Are Equal

If all bytes in the two records compare equal, Comparex bypasses the records. The utility does not send the records to the difference report, and it does not send the SYSUT2 record to the output processing routines for writing to file SYSUT3 (unless COPYSAME has been specified).

Using Fields

If fields have been specified, or if fields have been compiled from MASK statements, Comparex compares only the bytes defined by FIELD keywords.

Fields Compare Equal

If all bytes in these fields compare equal, Comparex bypasses the records. The utility does not send the records to the difference report. It also does not send the SYSUT2 record to the output processing routines for writing to file SYSUT3 unless COPYSAME has been specified.

Records Compare Unequal

If:

• all bytes in these fields do not compare equal,

Page 67: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

• or if no fields have been specified, and the records do not compare equal,

• or if no fields have been specified, and one record is longer than the other record,

then Comparex sends both records to the difference report, showing the SYSUT1 record with message CPX51I, and showing the SYSUT2 record with message CPX52I.

If COPYDIFF is in effect, Comparex sends the SYSUT2 record to the output processing routines for writing to file SYSUT3.

No Match on KEY for SYSUT1

If the KEY is an ascending KEY (the default) and the compare routines find a set of KEYs on a record from file SYSUT1 that is lower than the next set of KEYs on a record from file SYSUT2, Comparex sends the SYSUT1 record to the difference report, showing it as a KEY synchronization mismatch with message CPX61I.

If the KEY is a descending KEY (shown with the ,,D option on the KEY or KEY1 keyword) and the compare routines find a set of KEYs on a record from file SYSUT1 that is higher than the next set of KEYs on a record from file SYSUT2, Comparex sends the SYSUT1 record to the difference report, showing it as a KEY synchronization mismatch with message CPX61I.

No Match on KEY for SYSUT2

If the KEY is an ascending KEY (default), and the compare routines find a set of KEYs on a record from file SYSUT2 that is lower than the next set of KEYs on a record from file SYSUT1, Comparex sends the SYSUT2 record to the difference report, showing it as a KEY synchronization mismatch with message CPX62I.

If COPYDIFF is in effect, Comparex sends the SYSUT2 record to the output processing routines for writing to file SYSUT3.

If the KEY is a descending KEY (shown with the ,,D option on the KEY or KEY1 keyword), and the compare routines find a set of KEYs on a record from file SYSUT2 that is higher than the next set of KEYs on a record from file SYSUT1, Comparex sends the SYSUT2 record to the difference report, showing it as a KEY synchronization mismatch with message CPX62I.

If COPYDIFF is in effect, Comparex sends the SYSUT2 record to the output processing routines for writing to file SYSUT3.

SEGMENT SYNCHRONIZATION

If you specified one or more SEGMENT keywords and Comparex found no KEY keywords, Comparex uses SEGMENT synchronization to pair records to send to the compare routines.

If both SEGMENT and KEY keywords have been specified, Comparex issues message CPX18I and continues to process, using only the KEY keywords.

67

Page 68: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

68

Chapter 4: DATA Keywords

Compare SEGMENTs are much like KEYs, except that the input files, with SEGMENTs, are expected to be databases. The matching process is much the same, and the details are repeated here.

SEGMENTs are file control fields. The first part of the information in the SEGMENT keyword tells Comparex how to identify the SEGMENT by specifying a logical test. If a control field is associated with the SEGMENT, it is identified in the second part of the SEGMENT keyword.

An example of the use of SEGMENTs would be for a customer database. The first SEGMENT would define the customer header record, the second SEGMENT would be for the invoice records associated with that customer, and the third SEGMENT would be for the transactions associated with each invoice.

The SEGMENT keywords could resemble the following:

SEGMENT=(1,EQ,C'CUSTHDR',(R,9,5)) SEGMENT=(1,EQ,C'INVOICE',(D,14,4)) SEGMENT=(1,EQ,C'TRANS',(A,18,6))

The SEGMENT synchronization processing is described in the following sections.

Database Out of Sequence

If, while reading records from either SYSUT1 or SYSUT2, Comparex finds that a KEY or SEGMENT control field is not in the sequence that has been specified (ascending or descending), then message CPX36A will be issued, followed by the offending record.

For example, if the SEGMENT control fields are 1, 5, 10, 3, and 20 in a group of records with a common SEGMENT identifier, the record with SEGMENT control field 3 is out-of-sync (ascending assumed) with the rest. It would be noted with message CPX36A and printed, but any subsequent out-of-sync situations would not be flagged (only the first violation is flagged).

If it is known in advance that data records are not in proper ascending or descending sequence, then Random KEYs or SEGMENT control fields should be considered.

Duplicate SEGMENT on Same File

If the compare routines find that a SEGMENT with a control field is equal to the last SEGMENTs control field from that file, Comparex attempts to match this SEGMENT to a SEGMENT from the other file. Equal SEGMENTs cause no problems with synchronization, except that if only one SEGMENT for that control field exists on the other file, it will be paired for comparison to the first of the duplicate SEGMENTs, and the second record on the file with the duplicate SEGMENT will be identified as a Segmenting Synchronization mismatch. The mismatch is shown on the difference report after message CPX64I (for records from file SYSUT1) or CPX65I (for records from file SYSUT2).

Page 69: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

SEGMENT Starts Beyond Segment Length

If the starting position of any SEGMENT control field goes beyond the end of the record, Comparex will terminate immediately, issuing message CPX37A with a return code of 16.

End of Data on SYSUT1

If file SYSUT1 has come to end of file, and file SYSUT2 has not come to end of file, Comparex sends all extra segments from file SYSUT2 to the difference report, showing them as extra records with message CPX57I.

If COPYDIFF is in effect, Comparex sends the SYSUT2 records to the output processing routines for writing to file SYSUT3.

End of Data on SYSUT2

If file SYSUT2 has come to end of file and file SYSUT1 has not come to end of file, Comparex sends all extra segments from file SYSUT1 to the difference report, showing them as extra records with message CPX56I.

Records Matched

If the compare routines find that a SEGMENT (and its control field, if any) on a record from file SYSUT1 is equal to a SEGMENT on a record from file SYSUT2 (the pair has been sent together to the compare routines, synchronized by SEGMENT), Comparex compares the data values in the record.

Records Are Equal

If all bytes in the two records compare equal, Comparex bypasses the records. The utility does not send the records to the difference report, and it does not send the SYSUT2 record to the output processing routines for writing to file SYSUT3.

Using Fields

If fields have been specified, or if fields have been compiled from MASK statements, Comparex compares only the bytes defined by FIELD keywords.

Fields Compare Equal

If all bytes in these fields compare equal, Comparex bypasses the records.

If COPYSAME has not been specified, the utility neither sends the records to the difference report, nor does it send the SYSUT2 record to the output processing routines for writing to file SYSUT3.

69

Page 70: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

70

Chapter 4: DATA Keywords

Records Compare Unequal

If:

• all bytes in these fields do not compare equal,

• or if no fields have been specified and the records do not compare equal,

• or if no fields have been specified and one record is longer than the other record,

Comparex sends both records to the difference report, showing the SYSUT1 record with message CPX51I and showing the SYSUT2 record with message CPX52I.

If COPYDIFF is in effect, Comparex sends the SYSUT2 record to the output processing routines for writing to file SYSUT3.

Match on SEGMENT, Mismatch on Control Field

If the compare routines find that a SEGMENT on a record from file SYSUT1 is equal to a SEGMENT on a record from file SYSUT2, but the control fields (as specified by the optional second part of the information in the SEGMENT keyword) are not equal, Comparex examines the control fields.

Ascending Control Field, SYSUT1 Low

If the control field is an ascending control field, and if the control field on the SYSUT1 record is lower than the control field on the SYSUT2 record, Comparex sends the SYSUT1 record to the difference report, showing it as a Segmenting Synchronization Mismatch with message CPX64I.

Descending Control Field, SYSUT1 Low

If the control field is a descending control field, and if the control field on the SYSUT1 record is lower than the control field on the SYSUT2 record, Comparex sends the SYSUT2 record to the difference report, showing it as a Segmenting Synchronization Mismatch with message CPX65I.

If COPYDIFF is in effect, Comparex sends the SYSUT2 record to the output processing routines for writing to file SYSUT3.

Ascending Control Field, SYSUT2 Low

If the control field is an ascending control field, and if the control field on the SYSUT2 record is lower than the control field on the SYSUT1 record, Comparex sends the SYSUT2 record to the difference report, showing it as a Segmenting Synchronization Mismatch with message CPX65I.

If COPYDIFF is in effect, Comparex sends the SYSUT2 record to the output processing routines for writing to file SYSUT3.

Page 71: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

Descending Control Field, SYSUT2 Low

If the control field is a descending control field, and if the control field on the SYSUT2 record is lower than the control field on the SYSUT1 record, Comparex sends the SYSUT1 record to the difference report, showing it as a Segmenting Synchronization Mismatch with message CPX64I.

No Match on Segment for SYSUT1

If the synchronization routines find a SEGMENT from file SYSUT1 that is not equal to any SEGMENT from file SYSUT2, Comparex sends the SYSUT1 record to the difference report, showing it as a Segmenting Synchronization Mismatch with message CPX64I.

No Match on SEGMENT for SYSUT2

If the synchronization routines find a SEGMENT from file SYSUT2 that is not equal to any SEGMENT from file SYSUT1, Comparex sends the SYSUT2 record to the difference report, showing it as a Segmenting Synchronization Mismatch with message CPX65I.

If COPYDIFF is in effect, Comparex sends the SYSUT2 record to the output processing routines for writing to file SYSUT3.

PHYSICAL-RECORD-NUMBER SYNCHRONIZATION

If you specified no KEY keywords and no SEGMENT keywords, and if the SYSUT1 file organization is not ISAM or VSAM-KSDS, Comparex uses same-physical-record-number synchronization to pair records to send to the compare routines.

This means that Comparex compares each SYSUT1 record with the same-numbered record on SYSUT2. Record number 1 on SYSUT1 is compared to record number 1 on SYSUT2, and record number 1001 on SYSUT1 is compared to record number 1001 on SYSUT2.

If one file is longer than the other, the extra records are sent to the print routines alone.

If filters have been specified with same-physical-record-number synchronization, Comparex changes its procedure for sending records to the compare routines. Under same-physical-record-number synchronization, Comparex sends pairs of records to the compare routines unless one file is at end of file. If a record is filtered out, Comparex processes that records file until the utility finds a record that is filtered in; then, it sends a pair of records to the compare routines.

Messages CPX51I and CPX52I show the actual input sequence record number, not the sequence number of records sent to the compare routines.

In the following example, if the two input files had ten records each, and if the filter keywords filtered out records 2, 4, 6, 8, and 10 from SYSUT1, Comparex would send pairs of records to the compare routines.

71

Page 72: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

72

Chapter 4: DATA Keywords

Synchronization After Filtering - No KEY

SYSUT1 SYSUT2 1 paired with 1 3 paired with 2 5 paired with 3 7 paired with 4 9 paired with 5 6 extra record 7 extra record 8 extra record 9 extra record 10 extra record

End of Data on SYSUT1

If file SYSUT1 has come to end of file, and file SYSUT2 has not, Comparex sends all extra records from file SYSUT2 to the difference report, showing them as extra records with message CPX57I.

If COPYDIFF is in effect, Comparex sends the SYSUT2 record to the output processing routines for writing to file SYSUT3.

End of Data on SYSUT2

If file SYSUT2 has come to end of file and file SYSUT1 has not, Comparex sends all extra records from file SYSUT1 to the difference report, showing them as extra records with message CPX56I.

Records Compare Equal

If the compare routines have received a record from both input files, and all bytes in the two records compare equal, Comparex bypasses the records. The utility does not send the records to the difference report. It also does not send the SYSUT2 record to the output processing routines for writing to file SYSUT3, unless COPYSAME has been specified.

Using Fields

If fields have been specified, or if fields have been compiled from MASK statements, Comparex compares just the bytes defined by FIELD keywords.

Fields Compare Equal

If all bytes in these fields compare equal, Comparex bypasses the records. The utility does not send the records to the difference report. It also does not send the SYSUT2 record to the output processing routines for writing to file SYSUT3, unless COPYSAME has been specified.

Page 73: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

Records Compare Unequal

If:

• all bytes in these fields do not compare equal,

• or if no fields have been specified and the records do not compare equal,

• or if no fields have been specified and one record is longer than the other record,

Comparex sends both records to the difference report, showing the SYSUT1 record with message CPX51I and showing the SYSUT2 record with message CPX52I.

If COPYDIFF is in effect, Comparex sends the SYSUT2 record to the output processing routines for writing to file SYSUT3.

KEYWORDS NOT AVAILABLE WITH DATA

Certain keywords may not be used with DATA comparison logic.

• FRAME is not used with DATA comparison logic because single records rather than blocks of records are identified as differing.

• MLC has no meaning with DATA comparison logic because DATA comparison logic synchronizes on record number or KEY values. If MLC is specified, it will be ignored.

• SQUEEZE has no meaning with DATA comparison logic because no characters are deleted from records prior to the comparison. If certain fields are to be ignored in the comparison, MASK keywords can be used. If SQUEEZE is specified, it will be ignored.

• TEXT and DATA are mutually exclusive; TEXT is not used if DATA comparison logic is needed.

ADVANTAGES OF DATA

DATA comparison logic has the advantages over TEXT comparison logic of being more efficient (unless Random KEYs are specified), and of pointing out differences at the byte or nibble level.

More Efficient

DATA comparison logic takes less CPU time than TEXT comparison logic because it does not squeeze out characters, and unless Random KEYs are specified, it does not search through buffer areas for matches, or move records around in buffer areas.

Points Out Differing Bytes

DATA comparison logic shows the bytes where differences occur by underscoring those bytes on the difference report. You can easily locate the differences. In addition, you can specify that differing nibbles (half-bytes) be identified on the difference report.

73

Page 74: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

74

Chapter 4: DATA Keywords

DISADVANTAGE OF DATA

If there is no way to synchronize files, DATA comparison logic does not produce a useful difference report.

For example, if a JCL file, with no sequence numbers and many insertions, was to be compared to the previous version of that JCL file, DATA comparison logic could not match the records in a way that would help you identify the changes.

DECISIONS ABOUT DATA AND TEXT

If you are undecided about whether to run a Comparex job using DATA comparison logic or one using TEXT comparison logic, these suggestions may help.

1. Decide if the files have a KEY. If a KEY is available for synchronization, DATA comparison logic will probably produce a more useful difference report.

2. If the files are databases, use DATA comparison logic with SEGMENT keywords.

3. If the files are load modules, use DATA comparison logic, specifying no KEY.

4. If the size of the record is large (greater than 2000 bytes), and if internal blocking is used (such as VSAM-ESDS IMS databases), use DATA comparison logic with no KEY and set MAXDIFF to a low number to prevent a runaway comparison.

5. Otherwise, use TEXT, increasing BUFF and lowering MLC until the desired results are obtained.

END-OF-JOB COUNTS

At the end of the DATA comparison logic run, Comparex shows counts of its processing.

CPX74I - Bytes Underscored

Message CPX74I shows the number of bytes underscored on the difference report as the left-hand number.

If any SYSUT2 record was longer than the SYSUT1 record to which it was paired, then message CPX74I shows the number of excess bytes underscored with the PLUS on the difference report as the right-hand number.

CPX73I - COPYSPLIT Record Counts

If COPYSPLIT is specified, message CPX73I shows the number of records written to the SYSUT3x files.

Page 75: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

CPX75I - Record Counts

Message CPX75I shows the number of records read from the input files and written to any SYSUT3 file.

In addition, the number of differences is shown with an explanation.

If nothing is extracted from the file or database, there are no counts, and a CPX75I message is not produced.

CPX76I - Unusable Fields, IDENTITYs, SEGMENTs, DESENs

If the length of any field, IDENTITY, SEGMENT, or DESEN went beyond the length of any associated input record, message CPX76I shows a count of these occurrences.

CPX78I - Member Counts

Message CPX78I shows the number of members read from the input files. In addition, the number of differences is shown with an explanation.

DATA KEYWORDS

The KEY, KEY1, KEY2, and SEGMENT keywords are used to direct the matching of records.

KEY, KEY1, and KEY2 Keywords

KEY specifies a control field used for file synchronization and to determine out-of-synch conditions. Up to forty KEYs (or KEY1 and KEY2 pairs) may be specified.

The most important key on the file is specified on the first KEY (or KEY1 and KEY2 pair); KEYs are used as necessary until the least important key on the file is specified on the last KEY (or KEY1 and KEY2 pair).

Keyword Format

KEY=(ddd,len[,C] [,A][,N=key_name]) [,Z] [,D] [,P] [,R] [,B] [,UP] [,UB]

75

Page 76: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

76

Chapter 4: DATA Keywords

where:

If no KEY has been specified (or if all KEY statements have been incorrect), and if the file organization for SYSUT1 uses a key (such as ISAM or VSAM-KSDS), Comparex will take that key for synchronization.

If KEYs (or KEY1 and KEY2 pairs) are specified, SEGMENT keywords may not be specified.

You should not specify Zoned, Signed or Unsigned Packed, or Binary in keys unless there is a logical reason to do so. The reasons for this are:

1. If you specify Zoned or Packed for a key that is not of that format, Comparex will abend when attempting to compare it to its counterpart in the other file. To maintain speed, there are no format consistency checks.

2. If a numeric (Z, P, B, UP or UB) specification is not made, the default is Character. These comparisons (internally done as CLC) are faster and as accurate in determining synchronism.

Keyword Examples

KEY=(3,19,N=IRS_DATA_SSN) KEY=(21,3,P,A),KEY=(29,9) /* Multiple keys */ KEY=(000024,0003,B,D)

Parameter Description

C Default. - Character; maximum length = 256.

Z Zoned; maximum length = 15,

P Packed; maximum length = 8,

B Binary; maximum length = 8,

UB Unsigned Binary; maximum length = 8.

UP ; maximum length =

A Default. Ascending sequence.

D Descending sequence.

R Random sequence.

N=key_name optional name of the key; usually associated with specifying FORMAT=FIELD.

The maximum length for key_name is 32 bytes.

Page 77: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

KEY1

KEY1 specifies a control field used for file synchronization, and to determine out-of-sync conditions. The KEY1 keyword is used to show the relative position, length, and format of the field on SYSUT1, and the KEY2 keyword is used to show its counterpart on SYSUT2. The KEY2 usually follows the KEY1 keyword. If Comparex cannot find a paired KEY2, it changes the KEY1 to a key.

In all other respects, KEY1 is like KEY.

Keyword Format

Same syntax as KEY.

Keyword Examples

KEY1=(3,19,N=IRS_DATA_SSN) KEY1=(21,3,P,A) KEY1=(000024,0003,B,D)

KEY2

KEY2 specifies a control field used for file synchronization, and to determine out-of-sync conditions. The key may differ in displacement, length, and format versus its associated KEY1. See KEY1 for further information about the KEY2 keyword.

Keyword Format

Same syntax as KEY.

Keyword Examples

KEY1=(3,19),KEY2=5 KEY1=(21,3,P,A),KEY2=(45,3,P) KEY1=(3,19,N=IRS_DATA_SSN),KEY2=(7,19,N=IRS_SSN_MOVED) KEY1=(000024,0003,B,D),KEY2=(2,4,B)

SEGMENT

Specifies a control field if the input files are databases. The KEY keywords (and KEY1 and KEY2 pairs) are generally not used if Comparex is to process databases.

Keyword Format

SEGMENT=(ddd,EQ,t'vvvv'[,({A},ddd,len)])(or SEG) {D}

{R}

77

Page 78: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

78

Chapter 4: DATA Keywords

If a SEGMENT keyword is specified, KEY keywords may not be specified. The order of the SEGMENT keywords tells Comparex about the hierarchical structure of the database. The first SEGMENT keyword describes the highest ranking segment type. For example, on a payroll database, the highest ranking segment type might be for employee identification data, and the control field on this segment might be employee number.

The next SEGMENT keyword describes the second highest ranking segment type. For example, on a payroll database, the second highest ranking segment type might be for departmental information, with each employee having one or more departments that he or she reports time to.

Then, the last SEGMENT keyword describes the lowest ranking segment type. For example, on a payroll database, the lowest ranking segment type might be for the weekly time card information.

The three SEGMENT keywords for this payroll example could be entered in this order:

SEGMENT=(1,EQ,C'EMPL') SEGMENT=(1,EQ,C'DEPT') SEG=(1,EQ,C'TIME',(D,50,3))

The first part of the variable information in the keyword (ddd,EQ,t‘vvvv’) tells Comparex how to identify a segment type.

The second part of the variable information in the keyword (A, D, or R, and ddd,len) is optional; it specifies the control field that is associated with the segment type. In this second part, A (default) specifies ascending, D specifies descending, and R specifies random.

Comparex provides a table area of 6000 bytes for SEGMENT keywords. Each SEGMENT keyword requires thirteen bytes, plus the length of the value in the first part of the variable information (double if a wildcard is used).

If a control field is also specified, add four more bytes.

If the type of the value is character, each byte of the value between the apostrophes takes up one byte of the table; if the type of the value is hexadecimal, each byte of the value between the apostrophes takes up one half-byte of the table (an odd number of bytes is rounded up).

For example:

SEGMENT=(1,EQ,C'SEG01',(A,71,3)) SEG=(1,EQ,C'CHILDREN')

uses 43 of the table’s 6000 bytes (13 for each of the two SEGMENT keywords, 4 for the control field, 5 and 8 respectively for the SEGMENT identifiers).

Page 79: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

The following illustration shows the hierarchical structure of two databases with three segment types. A reorganizational unload of each of them would result in a similar flat file, reading top to bottom and left to right. However, the concatenated key for the STEMS segment would be different.

If the database is in a hierarchical structure in which ROOT has an ascending control field, APPLES has no control field, and STEMS has a random control field, then these statements:

SEG=(1,EQ,C'ROOT',(A,09,5)) SEGMENT=(1,EQ,C'APPLES') SEG=(1,EQ,C'STEMS',(R,68,4))

could synchronize the two versions of these databases.

Random segments are not recommended.

See “CPXIFACE Integration with External Data Managers” on page 213 for more information on using Comparex with databases.

ROOT

APPLES STEMS

ROOT

APPLES

STEMS

79

Page 80: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

80

Chapter 4: DATA Keywords

Page 81: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

INPUT PROCESSING KEYWORDS

5

The input processing routines set up the non-default parameters for the execution (based on the keywords). They open the SYSUT1, SYSUT2, and possibly the SYSUT3 or SYSUT3x files. They read the input file records, select records to send to the comparison routines, and they pair records for comparison.

What you will find in this chapter:

• “List of Keywords” on page 81• “Comparex Keyword Input” on page 84• “SYSUT1, SYSUT2, and SYSUT3 or SYSUT3x Opened” on page 85• “SYSUT1 and SYSUT2 Read” on page 86• “Selecting Records for Comparison” on page 87• “Pairing Records for Comparison” on page 90• “Keywords for Input Processing” on page 93

LIST OF KEYWORDS

Keywords Descriptions Pages

CONTINUE Causes processing to continue beyond MAXDIFF without displaying additional records.

Compare types: Data, Text, Directory

87

CPXIFACE

CPXIFACE1

CPXIFACE2

CPXIFACE specifies the interface module name for SYSUT1 and SYSUT2. If the original and modified files have different interface modules, CPXIFACE1 and CPXIFACE2 specify the interface module names for processing SYSUT1 and SYSUT2, respectively.

Compare types: Data, Text, Directory

96

DATA Signifies that records are formatted, and that fields may have different data formats.

Compare type: Data

96

81

Page 82: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

82

Chapter 5: Input Processing Keywords

DESEN

DESEN1

DESEN2

Identifies both the record fields that should not be printed or displayed, and the text that will be overlaid in the corresponding output field.

For DESEN, the desensitizing parameters for SYSUT1 and SYSUT2 are the same. If the desensitizing parameters are different for SYSUT1 and SYSUT2, DESEN1 and DESEN2 specify the desensitizing parameters for SYSUT1 and SYSUT2, respectively.

Compare type: Data

99, 100

DIRECTORY Specifies that Comparex will compare only the directory entries for the type of library specified.

Compare type: Directory

100

END Identifies a condition that, if found in a record, will stop Comparex processing.

Compare types: Data, Text

103

FIELD

FIELD1

FIELD2

Defines a specific field to be compared rather than all fields. You can specify multiple fields during a DATA comparison, but only one field during a TEXT comparison.

For FIELD, the position and format are the same for SYSUT1 and SYSUT2. If the field is in a different position or has a different format in the original and modified files, FIELD1 and FIELD2 designate the field’s position and format in SYSUT1 and SYSUT2, respectively.

Compare types: Data, Text*

* For TEXT comparisons, only one field may be specified.

104

FILTERIN / FIN Specifies which records will be included in the comparison processing. The record being processed must pass all FILTERIN specifications to be included in further processing. (AND logic)

Compare types: Data, Text, Directory

108

FILTEROUT / FOUT Specifies which records will be excluded from comparison processing. The record being processed must pass all FILTEROUT specifications to be excluded from further processing. (AND logic)

Compare types: Data, Text, Directory

110

Keywords Descriptions Pages

Page 83: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

FILTORIN / FORIN Specifies which records will be included in the comparison processing. The record being processed must pass any FILTORIN specification to be included in further processing. (OR logic)

Compare types: Data, Text, Directory

110

FILTOROUT / FOROUT

Specifies which records will be excluded from comparison processing. The record being processed must pass any FILTOROUT specification to be excluded from further processing. (OR logic)

Compare types: Data, Text, Directory

111

IDENTITY Identifies a record type on SYSUT1 that activates the processing of the FIELD and MASK statements that follow the IDENTITY. These FIELD and MASK statements are in effect until the next IDENTITY is encountered.

Compare type: Data

92, 111

MASK

MASK1

MASK2

Identifies a field to be excluded from comparison processing. You can specify multiple MASKs during a DATA comparison, but only one or two MASKs (equivalent to a single FIELD) during a TEXT comparison.

For MASK, the field position, length, and format are the same for both SYSUT1 and SYSUT2. If field position or length are different in SYSUT1 and SYSUT2, then MASK1 and MASK2 designate the field’s position and length in SYSUT1 and SYSUT2, respectively.

Compare types: Data, Text

92

MODE Specifies how relative displacements and variable-length records are handled.

MODE=APPLICATIONS: the first position in the record is position 1, not counting the record descriptor word (RDW) for variable-length records.

MODE=SYSTEMS: the first position is position 0; for variable length records, this is the beginning of the RDW.

Compare types: Data, Text, Directory

116

SCAN Causes Comparex to process only the original file (SYSUT1) displaying any records that meet the filtering criteria.

Compare types: Data, Text

117

Keywords Descriptions Pages

83

Page 84: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

84

Chapter 5: Input Processing Keywords

COMPAREX KEYWORD INPUT

Comparex opens SYSIN reads until the end of file is reached, and examines each record for keywords.

Comments

If a SYSIN record has an asterisk in the first position, Comparex considers the entire record to be a comment, and it does not search for keywords on that record. Comparex prints the record on SYSPRINT, to the right of message number CPX00I. Additional comments may be placed to the right of legitimate keywords by starting them with a slash-asterisk or double slash. Everything to the right of the slash-asterisk delimiter is considered a comment. For example:

* This is a comment MAXDIFF=10,CONTINUE /* This is also a comment */

//This too; but do not begin slash-asterisk or slash-slash in column one.

HELP

If a SYSIN record contains the HELP keyword, Comparex prints the HELP canned response.

SKIPUT1

SKIPUT2

Bypasses the specified number of records in the input files.

Compare types: Data, Text

86, 118

STOPAFT Specifies the maximum number of records to be read from either of the input files.

Compare types: Data, Text, Directory

87,

119

SYSUT1

SYSUT2

As SYSIN free-format keywords, these override the SYSUT1 and SYSUT2 DD statements specified in JCL. Used to link SYSUT1 and SYSUT2 to library manager or database files integrated with Comparex through the CPXIFACE interface. Also used optionally with z/OS Unix Hierarchical File System (HFS) or PDS directories.

Compare types: Data, Text, Directory

85, 119, 122

WILDCARD Specifies the character used to indicate that any value passes the logical test in FILTER, IDENTITY, and SEGMENT keywords.

Compare types: Data, Text, Directory

122

Keywords Descriptions Pages

Page 85: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

Incorrect Keywords

Comparex examines each SYSIN record for the correctness of keywords. If Comparex finds an incorrect keyword or an incorrect parameter, the utility prints the SYSIN record on SYSPRINT, to the right of message number CPX00I, and Comparex underscores the incorrect characters and prints the literal ERROR? on the right.

Correct Keywords

If Comparex finds a correct keyword with its associated parameters, the utility prints the SYSIN record on SYSPRINT, to the right of message number CPX00I, but Comparex does not underscore any characters. It uses these correct keywords to modify its default processing parameters.

Correct and Incorrect Keywords on Same SYSIN Record

On some SYSIN records, Comparex may find correct keywords as well as incorrect keywords. The incorrect keywords are underscored, and the correct keywords are used to modify Comparex default processing parameters.

End of Data on SYSIN

When Comparex comes to the end of the SYSIN file, the utility issues messages CPX03I through CPX19I. These messages are described in Chapter 11.

SYSUT1, SYSUT2, AND SYSUT3 OR SYSUT3X OPENED

After SYSIN is processed and HALT=YES has not been specified, Comparex opens SYSUT1, SYSUT2, and possibly SYSUT3 or SYSUT3x files.

Note

If you specify PAN, LIB, or OTH in the SYSUT1 or SYSUT2 keywords, then the Comparex interface (CPXIFACE) handles opening, searching, reading, and closing those files. The DDNAME used is dependent on the file type, and can be overridden by the DDNAME subkeyword of SYSUT1 and SYSUT2.

SYSUT1 and SYSUT2 Opened

Comparex determines data set organization and data set attributes from the JCL.

Comparex uses the SYSUT1 and SYSUT2 keywords to determine the data set organization and data set attributes for its files. Comparex supports PDS and PDSE datasets, sequential and ISAM and VSAM indexed files, and z/OS Unix Hierarchical File System files in JCL.

85

Page 86: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

86

Chapter 5: Input Processing Keywords

For HFS files, long file names are supported for a total path length up to 256 bytes in JCL. An HFS file name must be preceded by an initial slash and must be specified relative to the root directory.

1. If SYSUT1=DUMMY has not been specified, or if the JCL does not point to a null file, Comparex opens SYSUT1. If the open is not successful, Comparex terminates with a condition code of 16. After file SYSUT1 has been successfully opened, Comparex issues message CPX21I to show the data set name and the data set attributes.

2. If SYSUT2=DUMMY has not been specified, or if the JCL does not point to a null file, Comparex opens SYSUT2. If the open is not successful, Comparex processes as a print utility, printing onto SYSPRINT any SYSUT1 record that passes filtering tests. After file SYSUT2 has been successfully opened, Comparex issues message CPX22I to show the data set name and the data set attributes.

3. If SYSUT1=DUMMY and SYSUT2=DUMMY have both been specified, Comparex issues its end-of-processing messages and terminates.

SKIPUT1 and SKIPUT2

Next, Comparex skips over any input records, according to the values specified by the SKIPUT1 and SKIPUT2 keywords. If the SKIPUT1 parameter, as displayed with message CPX09I, is not zero, Comparex reads and discards this number of records on SYSUT1. If the SKIPUT2 parameter is not zero, Comparex reads and discards this number of records on SYSUT2. Then, Comparex displays message CPX26I to show how many records were skipped. If Comparex processes an end of file on either file while skipping records, Comparex issues message CPX71I to show the end of the file and continues to process.

When skipping records, any filtering that was requested is temporarily turned off. In effect, any records that would have gotten filtered out count towards the skip count.

SYSUT3 Opened

If COPYDIFF or COPYSAME was specified, the utility opens output file SYSUT3 and Comparex issues message CPX16I to show the data set attributes.

SYSUT3x Opened

If COPYSPLIT was specified, the utility opens the SYSUT3x output files. Comparex issues message CPX16I for each SYSUT3x file to show the data set attributes.

SYSUT1 AND SYSUT2 READ

Comparex reads SYSUT1 until it finds a record eligible for comparison. Then Comparex reads SYSUT2 until it finds a record eligible for comparison.

Page 87: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

STOPAFT

Comparex uses the value of the STOPAFT keyword to determine the maximum number of records to be read from either file. The default value is STOPAFT=999999999999 (effectively, infinity).

CONTINUE

If MAXDIFF was specified and the number of differences specified by that keyword have been displayed on the difference report, then Comparex prints message CPX67I and it writes no more input records on the difference report. If CONTINUE was specified, the utility prints a second line with message CPX67I to say that Comparex will continue without printing.

If CONTINUE was not specified, the utility issues message CPX67I, then issues its end-of-job counts and closes its files.

If CONTINUE was specified, Comparex continues to read files, selects records for comparison, compares records, and writes any SYSUT3 file. The end-of-job counters show the total input count and the total number of differences found.

To see how many differences are found without seeing the records, you could specify:

/* Job to See Statistics Only */

MAXDIFF=0,CONTINUE

Displacement

Comparex uses FIELD, FILTER, IDENTITY, MASK, KEY, and SEGMENT keywords to process input. These keywords contain displacement values. These displacement values tell Comparex where the data on each keyword starts in the record.

Some users like to think that the first position of any record is position 1; other users like to think that the first position of any record is position 0. Comparex defaults to assume that the first position of each record is position 1 (MODE=APPLICATION).

If you call the first position of each record position 0, change the MODE by entering MODE=SYSTEMS. If you enter the MODE=SYSTEMS keyword, Comparex will process all displacements on other keywords as if the first position of each record is position 0.

If you specify MODE=SYSTEMS for variable-length records, then position 0 is the first byte of the Record Descriptor Word (RDW).

SELECTING RECORDS FOR COMPARISON

After reading a record, Comparex uses any filtering specifications to determine if a record is eligible for further processing. The filtering keywords provide Comparex with a powerful facility to perform logical tests for record selection.

87

Page 88: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

88

Chapter 5: Input Processing Keywords

Keywords

The filtering keywords are FILTERIN, FILTEROUT, FILTORIN, and FILTOROUT. Each filtering keyword has an abbreviated version:

FILTERIN FIN FILTEROUT FOUT FILTORIN FORIN FILTOROUT FOROUT

You may enter either the full spelling of the keyword or its abbreviation. In the description that follows, only the full spelling of the keyword is used.

Note

The filtering functions may not be used with Unicode character encoding.

Form of Keywords

All filtering keywords take the form:

keywordname=([{MEMBER,}]d1[-d2],op,t'vvvv') [{M,} ] [{CSECT,} ]

where keywordname is FILTERIN, FILTEROUT, FILTORIN, or FILTOROUT.

If the filter is to include or exclude certain members of a directory-embedded data set such as a PDS, the MEMBER (or M option) is used.

d1 is the displacement, relative to one or zero, of the first (left-most) position of the field on which Comparex is to perform the logical test. If MODE=SYSTEMS is specified, the displacement is relative to zero.

A range may be specified on the displacement by specifying a dash and a second displacement (d1-d2). Any value that starts in this inclusive range satisfies (passes) the filter criteria.

op is the operation to be performed with the test. The values for op are:

LT - less thanLE - less than or equalEQ - equalNE - not equalGE - greater than or equalGT - greater than

t is the type for value vvvv.

If t is C, vvvv represents alphanumeric characters, where each position of vvvv represents one byte. The value may be any character.

Page 89: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

If t is X, vvvv represents hexadecimal values, where two positions of vvvv represent one byte. The value may be composed of numeric values, and the letters A through F.

vvvv is the value to be tested.

The WILDCARD value can be used in any positions of the value to be tested to indicate that any input data in those positions passes the filter test.

When skipping records, any filtering that was requested is temporarily turned off. In effect, any records that would have gotten filtered out, count towards the skip count.

Inclusive Keywords

The two inclusive filtering keywords are FILTERIN and FILTORIN. The two inclusive keywords end in the letters ‘IN’. These keywords direct Comparex to include the record that passes the test in further tests or in further processing.

AND Logic

The inclusive filter that uses AND logic is FILTERIN. AND logic is defined as one or more tests where the data being tested must pass all such tests to be eligible for further processing. Comparex converts the last filter keyword to an AND logic filter.

OR Logic

The inclusive filter that uses OR logic is FILTORIN. OR logic is defined as one or more tests where the data being tested must pass at least one test to be eligible for further processing.

Exclusive Keywords

The two exclusive filtering keywords are FILTEROUT and FILTOROUT. The two exclusive keywords end in the letters OUT. These keywords direct Comparex to exclude the record that passes the test from further processing.

AND Logic

The exclusive filter that uses AND logic is FILTEROUT. AND logic is defined as one or more tests where the data being tested must pass all such tests to be excluded from further processing.

OR Logic

The exclusive filter that uses OR logic is FILTOROUT. OR logic is defined as one or more tests where the data being tested must pass at least one test to be excluded from further processing.

89

Page 90: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

90

Chapter 5: Input Processing Keywords

PAIRING RECORDS FOR COMPARISON

Comparex decides how to send records to the comparison routines based on the type of synchronization being done. In addition, Comparex uses IDENTITY, FIELD, and MASK keywords to pick out specific fields for comparison.

Types of DATA Synchronization

If TEXT has not been specified, or if Comparex has nullified TEXT comparison because of inconsistencies (see message CPX24A in the Messages chapter to find which keywords nullify TEXT processing), Comparex uses DATA comparison logic to compare its input files. The types of synchronization available for DATA comparison logic are:

• KEY Synchronization

If KEYs have been specified, or if SYSUT1 is either an ISAM or VSAM/KSDS file, then KEY synchronization is used. This means that Comparex matches records by KEY. Comparex sends records to the comparison routines paired by KEY or, if a KEY from one file is unmatched on the other file, sends them alone. The records sent alone are identified as key synchronization mismatches. For more information about KEY synchronization, see “DATA File Synchronization Keywords” on page 63.

• SEGMENT Synchronization

If SEGMENTs have been specified, SEGMENT synchronization is used. This means that Comparex processes databases and matches segments by SEGMENT. Comparex sends records to the comparison routines paired by SEGMENT, or if a SEGMENT from one file is unmatched on the other file, sends them alone. The records sent alone are identified as segmenting synchronization mismatches. For more information about SEGMENT synchronization, see “SEGMENT Synchronization” on page 67.

• Same-Physical-Record-Number Synchronization

If neither KEY nor SEGMENT specifications have been made, the same-physical-record-number synchronization is used. Comparex sends each SYSUT1 record to the comparison routines paired to the same numbered record on SYSUT2 (that is, record number 1 on SYSUT1 is compared to record number 1 on SYSUT2 and record number 1001 on SYSUT1 is compared to record number 1001 on SYSUT2). If one file contains more records than the other file, the extra records from the longer file are sent to the print routines alone.

If filters have been specified with same-physical-record-number synchronization, Comparex changes its procedure for sending records to the compare routines. If a record is filtered out, Comparex processes that record’s file until the utility finds a record that is filtered in; then, it sends a pair of records to the compare routines.

• CSECT parsing of load modules

Once invoked, CSECT parsing logic extracts information about the load module from the ESD (External Symbol Dictionary) entries on the front of the load module and determines where each subsequent CSECT starts and ends. The IDR (IDentification Record) and SYM (Symbol record) entries are ignored , and only full text blocks are buffered.

Page 91: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

Differences are underscored, CSECT name to CSECT name. Date and time stamps are underscored, as well as uninitialized data areas (DS versus DC). CSECTs that are different because of different source code will be dramatically different, but CSECTs that are the same such as transient modules (COBOL has a lot of ILBOxxxx modules) will show as identical.

TEXT

If TEXT processing is being done, the input processing routines do not pair records for comparison. Instead, the TEXT processing routines synchronize records based on record-to-record compares. For information about TEXT processing, see “DATA File Synchronization Keywords” on page 63.

Comparing Only on Specific Fields

You can direct Comparex to compare only certain bytes (instead of the entire record) by using the IDENTITY, FIELD, and MASK keywords. Up to 4096 400 IDENTITY, FIELD, MASK, and DESEN keywords can be used together in any Comparex run. Each FIELD1 and FIELD2 pair counts as one FIELD statement, and each MASK1 and MASK2 pair counts as one MASK statement.

In addition, Comparex allows for a table of 8200 bytes to hold all IDENTITYs and DESENs. See page 112 for information about the calculation of the IDENTITY table space.

If Comparex has found any IDENTITY, FIELD (or FIELD1 and FIELD2 pair), MASK (or MASK1 and MASK2 pair), or DESEN (also DESEN1 and DESEN2) specifications, the utility will issue message CPX12I after SYSIN has been read. This message shows the IDENTITYs, FIELDs, MASKs, and DESENs that Comparex will use for the run. If GENFLDS has been specified, this message gives the relative number for each field on the GENFLDS printout.

FIELD

You can specify that Comparex compare only certain positions of the records. If fields are used, Comparex does not compare on the positions of the record that are not specified by FIELD keywords. If fields and MASKs are not used, Comparex compares on all positions of the record. Under TEXT processing, only one FIELD keyword may be specified. See“TEXT Processing Keywords” on page 44 for more information about specifying a field with TEXT.

If the positions to be compared are in the same places on both input records, the FIELD keyword is used. If the positions to be compared are in different displacements, or the field lengths differ, or the field types differ, then the FIELD1 and FIELD2 keywords are used. For example:

/* JOB to Compare on Certain Fields */ MAXDIFF=100,CONTINUE /* Set MAXimum DIFFerences */ FIELD=(1,10) /* Compare bytes 1 thru 10 */ FIELD1=(20,7,P),FIELD2=(27,4,B) /* Compare Packed to Binary */ FIELD1=(40,8,Z),FIELD2=(31,5,P) /* Compare Zoned to Packed */

91

Page 92: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

92

Chapter 5: Input Processing Keywords

MASK

You may specify that Comparex ignore certain positions of the records when comparing. If MASKs are used, Comparex does not compare on the positions of the records specified by the MASK keywords. If the positions to be ignored are in the same places on both input records, the MASK keyword is used. If the positions to be ignored are in different places on the two input records, MASK1 and MASK2 pairs of keywords are used.

Comparex creates fields from MASKs. This means that if you entered only a MASK specifying that positions 17 through 20 were to be ignored, then

MASK=(17,4)

would generate:

FIELD=(1,16,C)

FIELD=(21,END)

If one or more MASK keywords generate only one field, it may be used with TEXT processing.

IDENTITY

You may specify that Comparex compare different fields on different record types. The IDENTITY keyword specifies a logical test, to be made on the record from file SYSUT1, that identifies the record type; the FIELD and MASK keywords that come after that IDENTITY keyword and before the next IDENTITY keyword are used to process any record that passes the IDENTITY test.

Note

The IDENTITY function may not be used with Unicode character encoding.

The WILDCARD value may be used in any position of the value to be tested to indicate that any input data in those positions passes the IDENTITY test.

Here is a simple example. The customer file has two record types; if position 8 is C, the record type is a customer header record. If position 8 is I, the record type is a customer invoice record. The keywords might look like the following:

* JOB to Compare Customer File MAXDIFF=1000,CONTINUE /* Limit the Difference Report */ IDENTITY=(8,EQ,C'C') /* Customer Header */ FIELD=(1,3) /* Customer data */ FIELD=(13,47) /* Customer name */ FIELD=(72,END) /* Rest of Customer record */ MASK=(81,3) /* Except time stamp */ IDENTITY=(8,EQ,C'I') /* Customer Invoice */ FIELD=(1,7) /* Invoice number */ FIELD=(22,8) /* Invoice cross-reference */

Page 93: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

FIELD=(72,END) /* Rest of Invoice record */ MASK=(81,3) /* Except time stamp */

The sample job would test the record from file SYSUT1 for the two record types, and if a customer header were found, Comparex would compare only on positions 1 through 3, 13 through 59, 72 through 80, and 84 through the end of the record. Then, if a customer invoice record were found, Comparex would compare only on positions 1 through 7, 22 through 29, 72 through 80, and 84 through the end of the record. If some record were found that passed neither of the IDENTITY tests (a customer payment record, perhaps, with P in position 8), Comparex would compare on all positions of that record.

If at least one IDENTITY is specified, Comparex generates a final IDENTITY with message CPX12I to show that all records that do not pass the user’s IDENTITY tests will be handled like this:

IDENTITY=(CATCH-ALL)

FIELD=(1,END)

Under TEXT processing, no IDENTITY statement may be used. If a record from file SYSUT2 is selected to be printed on the difference report, the sequence number from message CPX12I for any IDENTITY associated with the record is shown with the record, to the right of message number CPX52I.

KEYWORDS FOR INPUT PROCESSING

The input processing keywords modify the default input processing routines.

CCSID1 and CCSID2

The CCSIDx keywords allow you to associate a specific character encoding with all fields in an input file at once and to define different character encodings for different files in a comparison. CCSID1 defines the character encoding to be used with SYSUT1. CCSID2 defines the character encoding for SYSUT2. The expected keyword value is a numeric IBM Coded Character Set Identifier (CCSID).

The CCSIDx keywords determine how the file comparison is performed. Both input files are normalized to the format specified for SYSUT1 prior to the comparison. In this way, files in two different character encodings, such as EBCDIC and ASCII or ASCII and UNICODE, can be checked for similarity in their displayed characters rather than the binary encoding for those displayed characters. EBCDIC, ASCII, and UNICODE code pages are supported.

For example:

CCSID1=00037

assigns IBM CCSID 00037 (for EBCDIC encoding of US English) to SYSUT1.

93

Page 94: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

94

Chapter 5: Input Processing Keywords

Comparex uses IBM’s OS-internal character translation support and therefore works with any character encoding supported by z/OS. Common character encoding CCSIDs are:

The values in the table are provides for customer convenience only. It is the user’s responsibility to choose the correct CCSIDs for their installation.

Character Encoding DescriptionIBMCCSID

ASCII - ANSI X3.4 standard 00367

ASCII - IBM PC ASCII (8-bit with MS-DOS special characters) 00437

EBCDIC - English and Portuguese with dollar currency symbol 00037

EBCDIC - English and Portuguese with dollar and euro currency symbols 01140

EBCDIC - English with pound currency symbol 00285

EBCDIC - English with pound and euro currency symbols 01146

EBCDIC - Latin 1 01047

EBCDIC - Latin 2 00870

EBCDIC - Latin 2 with euro 01153

EBCDIC - Latin 9 with euro 00924

EBCDIC - Swiss and Belgian German/Italian/French 00500

EBCDIC - Swiss and Belgian German/Italian/French with euro 01148

EBCDIC - German with euro 01141

EBCDIC - Italian with euro 01144

EBCDIC - Spanish with euro 01145

EBCDIC - Japanese (Katakana) 00930

EBCDIC - Japanese (Latin) 00939

EBCDIC - Korean 00933

EBCDIC - Simplified Chinese 00935

EBCDIC - Traditional Chinese 00937

UNICODE - UTF-8 with IBM mainframe special characters 01208

UNICODE - UTF-16 Big Endian with IBM mainframe special characters 01200

UNICODE - UTF-16 Little Endian with IBM mainframe special characters 01202

Page 95: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

CONTINUE

Lets you continue processing beyond the limit set in MAXDIFF. The input files are read, the input processing keywords operate on the input, the files are compared according to the instructions in the DATA files synchronization keywords, any SYSUT3 file continues to be written, and records are counted for the end-of-job statistics line. The difference report shows only the number of differences specified by the MAXDIFF keyword, but the end-of-job statistics line shows the total number of records on the input files and the total number of differences.

Keyword Examples

CONTINUE CONTINUE=NO

CONTINUE=(YES)

CPXEXIT

Specifies the load module name for the Comparex exit. Sample source code for this exit is provided. If this exit is invoked, the field EXT$RC contains an exit number and gives the reason for the call:

• If 1, a SYSUT1 record has just been read - the exit may inspect the record and build a “formatted fragment” of up to 64 bytes which will be printed with the next DATA record or TEXT frame printed.

If this is a TEXT compare, the formatted fragment is displayed in the top framing line of any difference report. For example,

++++++|+++.++++1++++.++++2++++.++++3++++.++++4++++.++++5++++.++++6++++.++++7++++. D 002100 02 ONLY-REST-OF-REC PIC X(100). 00002100 DIF O N E 21 ------|---.----1----.----2----.----3----.----4----.----5----.----6----.----7--- I 002100 02 ONLY-REST-OF-REC. 00002100 DIF T W O 21 ++++++|+++.++++1++++.++++2++++.++++3++++.++++4++++.++++5++++.++++6++++.++++7++++.

If this is a DATA compare, the formatted fragment is displayed in message CPX51I which details the record that follows. For example:

CPX51I - RECORD NUMBER 1657 ON FILE SYSUT1 CPXEXIT=Formatted fragment

• If 2, a SYSUT2 record has just been read and the exit may build a formatted fragment the same as for SYSUT1

• If 5, a DATA line is about to be printed - the exit may alter the print image

Note that exit 1 is the traditional Comparex exit from release 8.3 and earlier. A Comparex exit coded for 8.3 and earlier will not run on 8.4 without modification; at the very least, the reason for call in EXT$RC must be tested, and if not a 1, the exit must return control to Comparex right away.

95

Page 96: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

96

Chapter 5: Input Processing Keywords

A Comparex exit coded with the initial EXT$RC test will not run on Comparex 8.2 and earlier, however, Comparex 8.3 will run with either style of exit. If Comparex 8.3 calls the new style exit, EXT$RC will always be 1.

See associated messages CPX28I and CPX51I in Chapter 11.

CPXIFACE

Keyword Format

CPXIFACE=xxxxxxxxCPXIFACE1=xxxxxxxxCPXIFACE2=xxxxxxxx

Specifies the load module name for the Comparex interface. The source code for this exit module is provided. Unless otherwise specified by this keyword the default is CPXIFACE=CPXIFACE. See “CPXIFACE Integration with External Data Managers” on page 213 for a description of what interfaces have been developed.

The alternate forms (CPXIFACE1 and CPXIFACE2) are used if it is desired to have separate modules for SYSUT1 and SYSUT2. The most common time for this is when comparing two different interfaces, each of which is generated under the &OTH global variable.

Keyword Examples

CPXIFACE=CPXIFACE CPXIFACE=USEREXIT CPXIFACE1=CPXADABS,CPXIFACE2=CPXRAMIS

DATA

Keyword Format

DATA[=CSECT[,ADCON={YES}]] {NO}

Specifies that the files have an inter-record relationship and that they are not TEXT. A master file would be an example of a DATA file. DATA is the default. DATA file comparison logic can involve same-physical-record-number synchronization (a record is compared to the same numbered record on the other input file), KEY, or SEGMENT synchronization (see “DATA File Synchronization Keywords” on page 63 for more information).

With DATA logic, Comparex can highlight differences at the byte or nibble (half-byte) level. In addition, the synchronization logic is more efficient than with TEXT processing, unless Random KEYs (or SEGMENTs) have been specified.

Comparex can compare load modules (RECFM=U) in two ways:

• As straight DATA

• CSECT Parsing (DATA=CSECT)

Page 97: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

If a load module from one library is copied to another library and then the two load modules are compared, they are equal. However, if identical source code is compiled and link-edited into one library, and the same process is done into another library before comparison, there will be differences.

In most cases, the differences will be in a few IDR records, any date/time stamp that the compiler puts in, and any uninitialized data areas. However, if the block sizes of the two libraries are different, or if the order of CSECTs link edited in are different, major differences are noted.

CSECT parsing can be invoked by specifying:

DATA=CSECT

Once invoked, CSECT parsing logic extracts information about the load module from the ESD (External Symbol Dictionary) entries on the front of the load module, and determines where each subsequent CSECT starts and ends. The IDR (IDentification Records) are ignored, and only full text blocks are buffered.

The normal default buffer size is 60K for TEXT processing or DATA with random keys. For CSECT parsing, the default BUFFer size is 256K. You may override it larger or smaller, but you should not lower this from 256K. You should make BUFF go as large as possible (perhaps BUFF=1024). Differences are underscored, CSECT name to CSECT name.

Date and time stamps are underscored as well as uninitialized data areas (DS versus DC). CSECTs that are different because of different source code will be dramatically different, but CSECTs that are the same such as transient modules (COBOL has a lot of ILBOxxxx modules) will show as identical.

If one CSECT changed slightly, it sometimes happens that the V-type address (ADCON) constants are all that change in the rest of the CSECTs. You may or may not be interested in seeing the differences in the address constants.

You can specify:

DATA=(CSECT,ADCON=NO)

to have each address constant (A-type and V-type) nullified to binary zeroes before any comparison is done. The default is ADCON=YES, implying that address constants are to be left alone. ADCON=NO should result in a shorter difference report.

If the load module has been link-edited with the scatter attribute (PARM= ‘SCTR’), Comparex cannot parse the CSECTs at all. Generally, this is only used in the z/OS Nucleus or some special load modules such as assembled IMS MFS modules.

Likewise, Comparex cannot parse a load module that has been link-edited with the Overlay attribute (PARM=‘OVLY’).

97

Page 98: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

98

Chapter 5: Input Processing Keywords

CSECT Parsing Enhancements

When comparing load modules using DATA=CSECT, the count of logical CSECTs is displayed as part of the statistics. The count of physical records and differences in CSECTs is displayed in message CPX75I, as well as the number of CSECTs compared. For example:

CPX75I - RECORDS PROCESSED: SYSUT1(n1)/SYSUT2(n2), ...

CSECTS PROCESSED: SYSUT1(c1)/SYSUT2(c2)

Large load modules can be compared. The dynamic area set aside for the External Symbol Dictionary (ESD entries) is 128K. This translates into the ability to compare load modules comprised of 4095 CSECTs each.

If a CSECT name is blank, it is tagged with the literal *SPACES* and compared. The following illustration shows two load modules, each with member name ‘MEMBER1’.

The following example shows execution JCL and keywords to compare the two load modules.

//COMPAREX EXEC PGM=COMPAREX,REGION=0M//SYSPRINT DD SYSOUT=*//SYSUT1 DD DISP=SHR,DSN=PDS1//SYSUT2 DD DISP=SHR,DSN=PDS2//SYSIN DD * DATA=CSECT /* Invoke CSECT Parsing

SYSUT1

PDS1

(Member

SYSUT2

PDS2

(Member 1)

CSECT10(identical)

CSECT20(shorter)

CSECT30 (identical)

CSECT40 (inserted)

CSECT10 (identical)

CSECT20(longer)

CSECT25(inserted)

CSECT30(identical)

Sample Load Modules Composed of CSECTs

Page 99: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

BUFF=500 /* Get more than the 256K default FORMAT=06 /* Interleave differing lines MODE=SYSTEMS /* Displacements relative to zero MAXDIFF=50,CONTINUE /* Generally advised */ FIN=(M,0,EQ,C'MEMBER1') /* Just compare 'MEMBER1'

//* EOJ

The following example shows a sample difference report when comparing MEMBER1 in the two PDSs with these JCL and keywords.

CPX00I - DATA=CSECT /* Invoke CSECT Parsing CPX00I - BUFF=500 /* Get more than the 256K default CPX00I - FORMAT=06 /* Interleave differing lines CPX00I - MODE=SYSTEMS /* Displacements relative to zero CPX00I - MAXDIFF=50,CONTINUE /* Generally advised */ CPX00I - FIN=(M,0,EQ,C'MEMBER1') /* Just compare 'MEMBER1' ... CPX25I - DATA=CSECT,BUFF=500,FORMAT=06,INTERLEAVE=1 ... C O M P A R E X (MVS-8.6.0 - 2006/105) SYSUT1=PDS1(MEMBER1),SYSUT2=PDS2(MEMBER1) CPX51I - CSECT=CSECT20 CPX52I - CSECT=CSECT20 00A0 4DF9F1F6 5DF4F4F1 60F7F2F3 F440 ... O N E 00A0 4DF9F1F6 5DF6F3F5 60F5F5F3 F540 ... T W O ------ ---- -- -DIFFERENCE+ 7760 00540200 08001900 ... O N E 7760 00540200 08001900 01180000 00007FFF ... T W O ++++++++ ++++++++ -DIFFERENCE+ CPX41I - CSECT=CSECT40 DIF O N E CPX42I - CSECT=CSECT25 DIF T W O

DESEN

Keyword Format

DESEN=(ddd,t'vvvv'[,N=desen_name])

Specifies that Comparex is to desensitize (clobber) a portion of both records (SYSUT1 and SYSUT2). The displacement of the field is given in ddd and the length of the field is what it takes to contain t‘vvvv’. For example, C‘ABCD’ is four bytes, while X‘ABCD’ is two bytes. Specifying a name for the field (N=desen_name) is optional. The maximum length for desen_name is 32 bytes.

Note

The DESEN function may not be used with Unicode character encoding.

99

Page 100: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

10

Chapter 5: Input Processing Keywords

If IDENTITYs are present, the desensitizer can be under it along with FIELDs and MASKs. The order of invocation is the order specified. If you want certain fields to be desensitized before comparing (and, hence, displaying the inequalities) then they must be specified chronologically ahead of the fields.

For an example of how DESEN (DESEN1 and DESEN2 also) fit into the IDENTITY, FIELD, and MASK picture, see “IDENTITY, FIELD, MASK, and DESEN Messages” on page 113.

Keyword Examples

DESEN=(12,C'FORMER NAME FIELD ',N=DDA.SENSITIVE.NAME)

DESEN=(0042,X'0000000C')

DESEN1

Keyword Format

Same syntax as DESEN.

Specifies that Comparex is to desensitize (clobber) a portion of a record on SYSUT1. In general, it is used if displacements differ between like data in the two files. In all other respects, it is the same as DESEN. DESEN1 can be used without a corresponding DESEN2.

DESEN2

Keyword Format

Same syntax as DESEN.

Specifies that Comparex is to desensitize (clobber) a portion of a record on SYSUT2. In general, it is used if displacements differ between like data in the two files. In all other respects, it is the same as DESEN. DESEN2 can be used without a corresponding DESEN1.

Keyword Examples

DESEN1=(12,C'FORMER NAME FIELD ',N=PAY.SYSTEM.90Q1) DESEN2=(14,C'FORMER NAME FIELD ',N=PAY.SYSTEM.90Q4)

DESEN2=(0042,X'0000000C')

DIRECTORY

Keyword Format

DIRECTORY[={USER}](or DIR) [ {HFS} ] [ {LOAD}] [ {PDF} ]

0

Page 101: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

[ {SPF} ]

Specifies that Comparex is to read and compare only the directories of the following types of files in any combination:

• Partitioned Data Sets (PDSs or PDSEs)

• z/OS Unix Hierarchical File System (HFS) files

• CA-Panvalet masters through CPXIFACE interface

• CA-Librarian masters through CPXIFACE interface

• GEM masters through CPXIFACE interface

• OTHER proprietary masters through CPXIFACE interface

It is not necessary to specify an option to DIRECTORY. If no option is specified, Comparex processes only the member name. It will indicate an ALIAS if appropriate, but no other data is used.

If DIRECTORY=USER is specified, Comparex will compare the user data in like-named members. It is displayed in hexadecimal format on the difference report.

If DIRECTORY=SPF is specified, the user data is compared as in DIRECTORY=USER, but it is displayed on the difference report under special headings with proper formats. This happens only if Partitioned data sets that were created and maintained by TSO/SPF or ISPF/PDF if STATS are on are involved, or if simulated by the Comparex interface in retrieving Panvalet, Librarian, or GEM members.

If DIRECTORY=PDF is specified, Comparex formats exactly as with DIRECTORY=SPF, except that the dates (created and last modified) are presented in Gregorian order (yyyymmdd) instead of Julian. If IBM changes the PDF format in the future, this option will provide different headings and formats on the difference report.

If DIRECTORY=HFS is specified:

• Comparex looks for z/OS Unix-formated directories on which to perform the comparison. At least one input file must be identified as HFS files using the FILE=HFS subkeyword, and a complete path to the top-level directories to be compared must be identified using the PATH subkeyword.

• An optional EXPAND keyword may be added to SYSIN to specify that all HFS subdirectories within the named directories should be expanded recursively and their catalog information be included in the comparison.

• HFS directories may be compared against each other or against PDS libraries.

If DIRECTORY=LOAD is specified:

• Comparex assumes that load module libraries are being processed and produces headings accordingly. See “DIRECTORY Compare in LOAD Format” on page 103.

• If a load module has the TEST attribute on, the Link Date will be displayed as question marks.

101

Page 102: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

10

Chapter 5: Input Processing Keywords

When comparing two directory-embedded data sets, the difference report can be large. Some of the ways to trim it down, unless of course you want to see it all, are to:

• Filter (in or out) by member (generic) name

• Set MAXDIFF lower

• Set STOPAFT lower.

Sometimes you are only interested in finding out what member names match between two libraries or, conversely, finding out what members do not match on member name. The PRINT keyword logic applies to member names for displaying. In all cases, PRINT=FULL is the only way of displaying member names that match in name and are also identical in directory data.

In the following example, two libraries (LIB1 and LIB2) have as members:

LIB1 LIB2 A ABC C D

E E

If a DIRECTORY compare were made of these two libraries, with PRINT=FULL, the report would resemble this:

A O N E 1B DIF O N E 2C O N E 3D DIF T W O 3

E O N E 4

If PRINT=NOMATCH (or leaving off PRINT=FULL) was specified, the report would resemble this:

B DIF O N E 2

D DIF T W O 3

If PRINT=NOMISMATCH and PRINT=FULL was specified, the report would resemble this:

A O N E 1C O N E 3

E O N E 4

The sub-keyword options to DIRECTORY such as USER, SPF, and PDF would alter the display, particularly if there are differences in the DIRECTORY data.

2

Page 103: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

Keyword Examples

DIRECTORY=(PDF) DIR=SPF or (DIR)

You should use DIR=PDF when comparing libraries for directory entries. Below is an example of a DIRECTORY compare in PDF format with PRINT=FULL.

NAME VV.MM CREATED LAST MODIFIED SIZE INIT MOD IDCDF$ISPF 21.00 20050617 20050617 15:47 5639 5639 0 SERENA DIF T W O 1CDF$SPF3 01.11 20050725 20050903 13:17 6847 6824 0 USERID DIF T W O 2CDFBATCH 21.01 20050617 20050730 04:50 3308 3307 0 USERID DIF T W O 3CDFBILD2 21.01 20050617 20050626 12:13 12993 12992 0 USERID DIF T W O 4CDFBILD3 01.01 20050905 20050905 10:11 14115 14109 0 USERID DIF T W O 5CDFBUILD 21.00 20050617 20050617 15:47 12926 12926 0 SERENA DIF T W O 6CDFPANEL 21.00 20050617 20050617 15:47 8696 8696 0 SERENA DIF T W O 7CDFPANL3 21.02 20050617 20050724 13:27 8694 8696 0 USERID DIF T W O 8CDFSPY 21.00 20050617 20050617 15:47 14 14 0 SERENA DIF T W O 9HPSSTART 01.01 20050122 20050122 14:14 163 163 0 USERID O N E 1HPSSTART 21.00 20050617 20050617 15:47 163 163 0 SERENA T W O 10 - - --- --- - -- ------ -DIFFERENCE+PDSTOOLS 01.07 20050518 20050529 13:26 611 580 0 USERID O N E 2PDSTOOLS 21.00 20050617 20050617 15:47 610 610 0 SERENA T W O 11 - - - - --- - -- - -- ------ -DIFFERENCE+SERALLOC 01.04 20050122 20050502 11:57 539 533 0 USERID O N E 3SERALLOC 21.00 20050617 20050617 15:47 539 539 0 SERENA T W O 12 - - --- --- - - - ------ -DIFFERENCE+SERBSAM 01.07 20050122 20050502 11:56 2845 2827 0 USERID O N E 4SERBSAM 21.00 20050617 20050617 15:47 2845 2845 0 SERENA T W O 13 - - --- --- - -- -- ------ -DIFFERENCE+

Note the headings (VV.MM, CREATED, SIZE), which give information about the member, such as when it was created, time stamp, size, and responsible party. Dates are in the yyyymmdd style for Year 2000 and beyond. Not every member contains PDF-formatted information; and for those, the information is missing. With those interfaces (SYSUT1=PAN) that support member searches, the PDF format is simulated such that this report is possible.

DIRECTORY Compare in LOAD Format

NAME SIZE LINKDATE ALIAS-OF AC <HEX>---- ATTRIBUTES --------- SETSSI RMODE/AMODECDF$ISPF 004190 19960131 00 C2E3 RN RU RF 24/ANY DIF O N E 1SERALLOC 0008F8 19960502 00 C2E3 RN RU RF ANY/31 O N E 2SERBSAM 002468 19960612 00 C2E3 RN RU RF 24/31 O N E 3SERCMPAR 00CE08 19960401 00 C2E3 RN RU RF 24/31 O N E 4SERCMPAR 00CEF8 19960831 00 C2E3 RN RU RF 24/31 T W O 3 - -- -DIFFERENCE+SERCOPY 002FB8 19960502 01 C2E3 RN RU RF 24/31 O N E 5SERCOPY 002F10 19960830 01 C2E3 RN RU RF 24/31 T W O 4 -- --- -DIFFERENCE+SERDATES 0008E0 19960502 00 C2E3 RN RU RF ANY/31 O N E 6SERDB2CA 000830 19960502 00 C2E3 RN RU RF ANY/31 O N E 7XTESTMOD 0016A0 ???????? 00 12E6 TS 24/24 DIF O N E 8ZAP$ 006A50 ZAPMAIN DIF T W O 7

END

Keyword Format

END=(ddd,op,t'vvvv')

103

Page 104: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

10

Chapter 5: Input Processing Keywords

Identifies a record on either SYSUT1 or SYSUT2 such that if the condition is satisfied, processing terminates. It is applicable to both DATA and TEXT, but is probably more useful with DATA.

ddd is the displacement, relative to one, of the first position (leftmost or high-order) of the field on which Comparex is to perform the logical test. If MODE=SYSTEMS is specified, the displacement is relative to zero.

Values of op are:

LT - less thanLE - less than or equalEQ - equalNE - not equalGE - greater than or equalGT - greater than

Messages CPX14I and CPX69I in Chapter 11 are applicable to this keyword.

Keyword Examples

END=(7,EQ,C'ZANZIBAR') END=(098,GE,X'0092001C')

FIELD, FIELD1, and FIELD2 Keywords

FIELD specifies comparison of a portion of a record. The field occurs in the same relative position on both input files. If a FIELD keyword is given, Comparex compares only those fields (or FIELD1s and FIELD2s); it ignores the rest of the record during the comparison.

Bytes not specified by FIELD keywords will be underscored, unless FLDSONLY is also specified.

Up to 800 IDENTITYs, FIELDs, MASKs, and DESENs can be used in one Comparex run.

If you are comparing FIELD1 to FIELD2 to the ENDs of each record, the field can be compared differently if the lengths of the fields are different. For example, if you code FIELD1=(51,END), FIELD2=(53,END), the length of the field compared for FIELD1 is 29 if the record is 80 bytes long. FIELD2 only requires a length of 27 if it is also 80 bytes long.

Because Comparex calculates the length based on FIELD1, the two remaining bytes on FIELD2 are different, and the records will all compare as different. To circumvent this problem, use a hard coded value for the length of the field. For example, FIELD1=(51,27), FIELD2=(53,27).

Keyword Format

FIELD=(ddd,{len}[{,C}][/dateformat][,N=field_name]) {END}[{,Z}]

[{,P}]

4

Page 105: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

[{,B}][{,UP}][{,UB}]

C - character; any length can be specified

Z - zoned; length cannot exceed 15

P - packed; length cannot exceed 8

B - binary; length cannot exceed 8.

UP - (unsigned packed); allows Comparex to compare packed decimal numbers where each byte of data contains two digits, including the last.

UB - (unsigned binary); allows comparison of binary numbers, where the leftmost bit is considered part of the number, not the sign.

Both binary and unsigned binary fields can be one to eight bytes long, although the maximum numeric value supported by Comparex is still ±999,999,999,999,999. Values exceeding this can cause unpredictable results.

Anything other than C (character) is considered to be numeric. C is considered to be numeric if it’s a date field, or if it’s being compared to a number (such as C for FIELD1, and P on the corresponding FIELD2).

Note

To successfully compare an unpacked numeric field to a packed numeric field, you must specify the unpacked field as Zoned instead of Character; otherwise, Comparex will underscore the field as different even though the values resolve to be equal.

If fields are considered numeric, all bytes of unequal fields will be underscored. Specifying a date format is optional. It can be used with different displacements (FIELD1/FIELD2) and disparate formatting (character, zoned, and signed or unsigned packed, and binary). The purpose of the date format is to account for date fields that may have different formats yet contents which are considered to be the same. See below for an example of how to use the date format.

Specifying a name for the field (N=field_name) is optional. It is usually associated with specifying FORMAT=FIELD. The maximum length for field_name is 32 bytes.

Keyword Examples

FIELD=(3,END) FIELD=(12,4,P),FIELD=(61,END) /* Multiple fields */ FIELD=(0999,15,Z) FIELD=(15,00032,C,N=DDA-BILLING-NAME-L1)

FIELD=(64,4,B,N='INTEREST.BEARING.PERCENTAGE')

105

Page 106: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

10

Chapter 5: Input Processing Keywords

Consider that you have two fields of packed data. FIELD1 contains a packed date field that is not Year 2000 compliant. The data resembles this:

007110900C

FIELD2 contains a packed date field that is Year 2000 compliant. The data resembles this:

097111900C

In a Comparex comparison without using the date format, the first two bytes would compare differently, even though the dates may, in effect, contain the same logical value. All five bytes are underscored, however, if a FIELD keyword specifying Packed data format is used.

By using:

FIELD1=(1,5,P/YYMMDD)

FIELD2=(1,5,P/CCYYMMDD)

Comparex is made aware that FIELD2 contains a century and will ignore the century value if FIELD1 does not contain one. In this case, the two values specified above will compare equally.

Valid Date Formats

Gregorian Dates

Without Separators With Separators (Note 1)

Two-digit years MMDDYY DDMMYY

YYMMDD

MMMDDYY (Note 2)

DDMMMYY YYMMMDD

MM/DD/YY DD/MM/YY

YY/MM/DD MMM/DD/YY

DD/MMM/YY

YY/MMM/DD

Four-digit years

(Note 4)

MMDDYYYY (Note 3)

DDMMYYY YYYYMMDD

MMMDDYYYY (Note 2)

DDMMMYYYY YYYYMMMDD

MM/DD/YYYY

DD/MM/YYYY

YYYY/MM/DD

MMM/DD/YY

DD/MMM/YYYY

YYYY/MMM/DD

Julian Dates

Without Separators With Separators (Note 1)

Two-digit years YYDDD DDDYY YY/DDD DDD/YY

6

Page 107: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

Note 1. The separator slash (/) may be written in the FIELD keyword as dash (-) or period (.) instead; in the data this position is simply ignored.

Note 2. mmm refers to an alphabetic month (such as JAN or FEB) which may be written as MON instead. The field must be specified as a character field.

Note 3. yyyy may be written as ccyy instead.

Note 4. Y2K compliant date. Comparex can successfully compare Y2K dates, non-Y2K dates, and mixed format dates.

Note 5. yyy can be written as cyy instead.

Note 6. This is the format used by many IBM products; numbers 000-099 are years 1900-1999, numbers 100-199 are years 2000-2099, and so on.

Note 7. Year/month dates have no days and will compare equal to any date in any format in that month.

Note 8. Year-only dates have no months or days, and will compare equal to any date in any format in that year.

Alphabetic-month to numeric-date compares are now supported for French, German, Italian, and Spanish by use of a zap available from Technical Support. It is also possible to support alphabetic-month to alphabetic-month compares in one supported language for SYSUT1 and another language for SYSUT2. Contact Technical Support for details.

The unmodified product now compares alphabetic-month to alphabetic-month dates in any language (the same language for SYSUT1 and SYSUT2); English language alphabetic-months are still fully supported.

FIELD1

Keyword Format

Same syntax as FIELD.

Four-digit years (Note 4)

YYYYDDD (Note 3)

DDDYYYY

YYYY/DDD DDD/YYYY

Three-digit years

(Note 4, 6)

YYYDDD (Note 5) YYY/DDD

Fractional Dates

Without Separators With Separators

Year and Month (Note 7)

YYMM YYYYMM (Note 3)

YY/MM YYYY/MM

Year Only (Note 8) YY YYYY

107

Page 108: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

10

Chapter 5: Input Processing Keywords

Specifies comparison of a portion of a record. The FIELD1 keyword is used to show the relative position, length, and format of the field on SYSUT1, and the FIELD2 keyword is used to show its counterpart on SYSUT2. The FIELD2 usually follows the FIELD1 keyword. If Comparex cannot find a paired FIELD2, it changes the FIELD1 to a FIELD.

In all other respects, FIELD1 is like FIELD.

Keyword Examples

FIELD1=(3,END)

FIELD1=(12,5,P,N=VISA_ACCOUNT_BALANCE)

FIELD2

Keyword Format

Same syntax as FIELD.

Specifies comparison of a portion of a record. The field may differ in displacement, length, and format versus its associated FIELD1. See “FIELD1” on page 108 for further information.

Keyword Examples

FIELD1=(7,END),FIELD2=(9,14) FIELD1=(12,7,P,N=ACT_BAL),FIELD2=(12,4,B,N=NEW_ACT_BAL) FIELD1=(22,8,Z),FIELD2=(23,5,P)

FILTERIN

Keyword Format

FILTERIN=([{M},]d1[-d2],op,t'vvvv'[,N=name])(or FIN) [{MEMBER},] [{CSECT},]

Specifies which records will be passed to the comparison routine or to the next filter test. If no filters and no SKIPUTs are specified, all records are passed to the comparison routine.

d1 is the displacement, relative to one or zero, of the first (left-most position) of the field on which Comparex is to perform the logical test. A range may be specified on the displacement by specifying a dash and a second displacement (d2). Any value starting in this inclusive range satisfies, or passes, the filter criteria.

Values of op are:

8

Page 109: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

LT - less thanLE - less than or equalEQ - equalNE - not equalGE - greater than or equalGT - greater than

If the record passes the test specified by the FILTERIN, it is eligible to be tested by the next filter statement. If no further filter statements are specified, the record goes to the comparison routine. This FILTERIN keyword is an inclusive filter using AND logic.

If the record fails any FILTERIN test, Comparex does not pass this record to the comparison routine. Instead, the utility reads another record from the input file.

The FILTERIN keyword tests records on both SYSUT1 and SYSUT2. If you use the SCAN keyword, then FILTERIN tests records on SYSUT1 only.

The WILDCARD value may be used in any positions of the value to be tested to indicate that any input data in those positions passes the filter test.

You can use the MEMBER option to specify that filters include certain members of directory-embedded data sets such as Panvalet, Librarian, GEM, or PDSs.

The CSECT option is used only for CSECT parsing (DATA=CSECT) such that certain CSECT names will be included in the comparison. Filtering of members, CSECTs, and records may all be used in the same run; however, you should not filter records conjunction with CSECT parsing.

Specifying a name for the filter (N=filter_name) is optional. The maximum length for filter_name is 32 bytes. Comparex provides an area to hold approximately 800 filters.

If a filter specifying a range of displacement goes beyond the length of the physical record, it is discarded and considered a filter failure.

Note

FILTERIN, FILTEROUT, FILTORIN, and FILTOROUT should be consistent with each other. If not, results can be unpredictable.

Keyword Examples

FILTERIN=(07,EQ,C'*') FILTERIN=(3-60,EQ,C'UNIT=3330',N=OLD.DISK.DRIVE) FILTERIN=(23,GT,X'01.....C') FIN=(MEMBER,1,LE,C'CPX.A') FIN=(CSECT,1,NE,C'ILB0....')

FILTEROUT

FILTEROUT specifies which records will not be passed to the comparison routine. If the record passes the test specified by the FILTEROUT, and there are no more filter-type tests,

109

Page 110: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

11

Chapter 5: Input Processing Keywords

Comparex does not pass this record to the comparison routine. Instead, Comparex reads another record from the input file.

If the record fails the test specified by the FILTEROUT, Comparex passes this record to the next filter-type test or to the comparison routine if no other tests are present.

In all other respects, it works the same as FILTERIN.

Note

FILTERIN, FILTEROUT, FILTORIN, and FILTOROUT should be consistent with each other. If not, results can be unpredictable.

Keyword Format

FILTEROUT=([{M},]d1[-d2],op,t'vvvv'[,N=name])(or FOUT) [{MEMBER},] [{CSECT},]

Keyword Examples

FILTEROUT=(07,EQ,C'*') FILTEROUT=(3-60,EQ,C'UNIT=3330',N=KILL.OLD.DISKS) FILTEROUT=(23,GT,X'01.....C') FOUT=(M,1,LE,C'CPX.A')

FILTORIN

FILTORIN specifies which record will be passed to the comparison routine. This FILTORIN keyword is an inclusive filter using ‘OR logic. As soon as the record passes this test, it is sent to the comparison routine. If the record does not pass this test, it is tested by the next filter-type test; if no other tests are present, the record is sent to the comparison routine.

Because Comparex converts the last filter keyword to an AND logic filter, a FILTORIN keyword will never be processed as the last filter keyword.

In all other respects, it works the same as FILTERIN.

Note

FILTERIN, FILTEROUT, FILTORIN, and FILTOROUT should be consistent with each other. If not, results can be unpredictable.

Keyword Format

FILTORIN=([{M},]d1[-d2],op,t'vvvv'[,N=name])(or FORIN)[{MEMBER},] [{CSECT},]

0

Page 111: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

Keyword Examples

FILTORIN=(07,EQ,C'*') FILTORIN=(3-60,EQ,C'UNIT=3330',N=FIND.OLD.DISKS) FILTORIN=(23,GT,X'01.....C') FORIN=(M,1,LE,C'CPX.A') FORIN=(CSECT,1,GE,C'PQA')

FILTOROUT

Specifies which record will not be passed to the comparison routine. If the record passes the test specified by the FILTOROUT, Comparex does not pass this record to the comparison routine. Instead, Comparex reads another record from the input file.

If the record fails the test specified by the FILTOROUT, Comparex passes this record to the next filter-type test or to the comparison routine if no other tests are present. In all other respects, it works the same as FILTEROUT above.

Note

FILTERIN, FILTEROUT, FILTORIN, and FILTOROUT should be consistent with each other. If not, results can be unpredictable.

Keyword Format

FILTOROUT=([{M},]d1[-d2],op,t'vvvv'[,N=name])

(or FOROUT)[{MEMBER},] [{CSECT},]

IDENTITY

Identifies a record on SYSUT1 so that the FIELD and MASK keywords that follow (until the next IDENTITY) can be used for this record.

Keyword Format

IDENTITY=(ddd,op,t'vvvv'[,BREAK][,N=name])

Values of op are:

LT - less thanLE - less than or equalEQ - equalNE - not equalGE - greater than or equalGT - greater than

111

Page 112: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

11

Chapter 5: Input Processing Keywords

If the test is passed, matched SYSUT1 and SYSUT2 records are compared according to the FIELD/MASK statements following.

If that process compares unequal, the records are printed out as usual.

If the matched SYSUT1/SYSUT2 records compare equal, control is passed to the next IDENTITY and the process is repeated. However, if an IDENTITY contains the BREAK option, then if the IDENTITY test is passed, control is never passed on to another IDENTITY regardless of whether the compare routines call them equal or not.

If the record on SYSUT1 does not pass any IDENTITY test, Comparex will compare all positions of the SYSUT1 record to the matched SYSUT2 record.

The WILDCARD value may be used in any positions of the value to be tested to indicate that any input data in those positions passes the IDENTITY test.

Specifying a name (N=id_name) is optional. The maximum length for id_name is 32 bytes.

Any FIELD or MASK statements that precede the first IDENTITY are considered to be global, and are used for all IDENTITYs, including the catch-all IDENTITY that is added by Comparex.

Comparex provides a table area of 8200 bytes for IDENTITY and DESEN keywords. Each IDENTITY keyword you enter takes up 45 bytes plus the length of the value (double if a wildcard is used).

If the type of the value is character, each byte of the value between the apostrophes takes up one byte of the table; if the type of the value is hexadecimal, each byte of the value between the apostrophes takes up one half-byte of the table (an odd number of bytes is rounded up). For example:

IDENTITY=(123,GE,X'00034A',N=PAYROLL-TYPE-FIRED)

ID=(45,EQ,C'MASTERRECORD')

would take up 105 of the table’s 8200 bytes (45 for each of the two IDENTITY keywords, 3 for half of the six hexadecimal positions, and 12 for the character value ‘MASTERRECORD’).

A check is performed to see if the IDENTITY statement fits in the record. The statement is counted as bad if it does not, and is considered an IDENTITY failure.

Keyword Examples

IDENTITY=(07,EQ,C'A.4',N=ALL$OF$DETAILS) ID=(49,GT,X'07450F')

IDENTITY, FIELD, MASK, and DESEN Messages

CPX03I - EXECUTION OF MVS$JOB.CPX.SCSTEP-VALUES EXTRACTED/DEFAULTED:

CPX04I - MAXDIFF=3,CONTINUE,STOPAFT=1000CPX05I - PRINT=(MATCH,MISMATCH),MBRHDR=YES,HALT=COND,KEYSONLY

2

Page 113: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

CPX06I - WILDCARD=C'.',MODE=APPLICATIONS (ALL DISPLACEMENTS RELATIVE TO ONE)CPX07I - SYNCHRONIZATION KEY(S): KEY1=(1,8,Z,R),KEY2=(2,8,Z)CPX08I - DECIMAL,EBCDIC,CASE=MIXED,LINE=(32,HORIZONTAL),PAGE=58CPX11I - DASH=C'-',PLUS=C'+',FLDSONLYCPX12I - IDENTITIES, DESENSITIZING, FIELDS, AND MASKS: IDENTITY=(7,LE,C'3') 1 IDENTITY=(7,LE,C'3') DESEN=(33,C'ID LE 3') 2 DESEN=(33,C'ID LE 3') FIELD1=(5,1,Z),FIELD2=(6,2,Z) 3 FIELD1=(5,1,Z),FIELD2=(6,2,Z) MASK=(15,8,Z) 4 DESEN=(43,C'ID LE 3') DESEN=(43,C'ID LE 3') IDENTITY=(7,EQ,C'5') 5 IDENTITY=(7,EQ,C'5') MASK=(5,90,C) 6 FIELD=(1,4,C) 7 FIELD=(95,END) IDENTITY=(7,GE,C'6') 8 IDENTITY=(7,GE,C'6') DESEN1=(65,C'ID GE 6') 9 DESEN1=(65,C'ID GE 6') DESEN2=(97,X'ABCDEF123.') 10 DESEN2=(97,X'ABCDEF123.') FIELD=(30,80,C) 11 FIELD=(30,80,C) FIELD1=(9,8,P),FIELD2=(17,4,B) 12 FIELD1=(9,8,P),FIELD2=(17,4,B) FIELD1=(17,4,B),FIELD2=(21,4,B) 13 FIELD1=(17,4,B),FIELD2=(21,4,B) FIELD1=(d,l,dateformat[,N=n]),FIELD2=(d,l,dateformat[,N=n]) 14 FIELD1=(d,l,da IDENTITY=(CATCH-ALL) 15 IDENTITY=(CATCH-ALL) FIELD=(1,END) 16 FIELD=(1,END)

A-IDENTITY

The A-ID keyword extends the IDENTITY keyword to include Boolean AND logic.

Keyword Format

A-IDENTITY=(ddd,op,t'vvvv'[,N=name])

(or A-ID)

For example, assume the following:

ID=(1,EQ,C'A') A-ID=(3,EQ,C'B') FIELD=

MASK=

If A is the value at offset1 and B is the value at offset3, then Comparex reads the keywords specified after the A-IDENTITY keyword. If, however, both conditions are not satisfied, Comparex advances to the next ID statement.

113

Page 114: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

11

Chapter 5: Input Processing Keywords

If Comparex finds a MASK, FIELD, or DESEN keyword, the creation of the ID/A-ID unit ends, and Comparex performs the comparison. If another A-ID or ID is found after the FIELD/MASK, it is considered part of the next ID/A-ID unit.

As illustrated in the following example, Comparex considers the second ID keyword (the one that tests whether B is offset at 5) as the next ID/A-ID unit.

ID=(1,EQ,C'4) A-ID=(3,EQ,C'B') FIELD= MASK= ID=(5,EQ,C'B')

IGNORSIN

If the difference between compared DATA files is that one file contains packed fields with a sign of C, and the other contains packed fields with a sign of F, every record contains differences.

This keyword causes Comparex to scan every byte of both synchronized records for packed fields and make them signs of F before comparison begins. When the two records are compared, these sign differences are effectively ignored.

Certain restrictions apply to the use of IGNORSIN:

• No fields or MASKs are allowed.

• Not available for TEXT processing.

• Has no effect when comparing fields numerically.

IGNORSIN is not applicable to CSECT parsing.

Keyword Examples

IGNORSIN IGNORSIN=YES

MASK

MASK specifies that a portion of a record in the same relative position on both input files is to be ignored. This area in the records is not eligible for comparison. Those differing bytes specified by MASKs (in records that are printed) will be underscored unless FLDSONLY is also specified.

If an IDENTITY keyword precedes the MASK keyword, the MASK keyword is used only if the record passes the IDENTITY test.

If there are no IDENTITY keywords, or if the MASK keyword precedes the first IDENTITY, the MASK keyword applies to all records on the file.

4

Page 115: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

Keyword Format

MASK=(ddd,{len}[{,C}][,N=mask_name]) {END}[{,Z}] [{,P}] [{,B}] [{,UP}] [{,UB}]

END signifies that everything from the starting location to the end of the record is included.

C, Z, P, B, UP, or UB may be specified to show the format of the data there, although it has no effect.

Specifying a name for the mask (N=mask_name) is optional, and is usually associated with specifying FORMAT=FIELD. The maximum length for mask_name is 32 bytes.

Keyword Examples

MASK=(256,END) MASK=(83,5,Z,N=DATE-LAST-POST) MASK=(83,5)

MASK1

MASK1 specifies that a portion of a record is to be ignored. The MASK1 keyword shows the relative position, length, and format of the field on SYSUT1; the MASK2 keyword shows its counterpart on SYSUT2. The MASK2 keyword must follow a MASK1 keyword. If Comparex cannot find a paired MASK2, it changes the MASK1 to a MASK.

In all other respects, MASK1 is like MASK. MASK1 and MASK2 are applicable only if they fall under a FIELD1/FIELD2 pair. By themselves, MASK1/MASK2 will not generate (compile into) the proper FIELD1/FIELD2 statements.

Keyword Format

Same syntax as MASK.

Keyword Examples

MASK1=(256,END) MASK1=(83,5,P,N=TIME-LAST-POST) MASK1=(83,5)

MASK2

MASK2 specifies that a portion of a record is to be ignored. MASK2 shows the relative position, length, and format of the field on SYSUT2; MASK1 shows its counterpart on SYSUT1. MASK2 must follow a MASK1.

115

Page 116: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

11

Chapter 5: Input Processing Keywords

Keyword Format

Same syntax as MASK.

Keyword Examples

MASK2=(83,5,C) MASK2=(83,5,N=GARBAGE)

MODE

MODE specifies the user orientation.

MODE=APPLICATIONS is the default. Under the applications mode, all displacements given on other keywords are relative to one. The first position of the record is position one.

In addition, under the applications mode, the LLbb (or RDW) of a variable length record is not processed. This means that the LLbb is not:

• counted when determining the first position of the record

• shown on the difference report

• compared

• able to be accessed with FIELD, FILTER, IDENTITY, MASK, and KEY statements.

Under the systems mode (MODE=SYSTEMS or MODE=SYS), all displacements on other keywords are relative to zero. The first position of the record is position zero.

In addition, under the systems mode, the LLbb (or RDW) of a variable length record is able to be processed. This means that the LLbb is:

• counted when determining the first position of the record

• shown on the difference report

• compared

• able to be accessed with FIELD, FILTER, IDENTITY, MASK, and KEY statements.

Finally, under the systems mode, HEX becomes the default. You may override this by entering a DECIMAL keyword along with the MODE=SYSTEMS keyword.

Keyword Format

MODE={APPLICATIONS} {APL} {SYSTEMS}

{SYS}

Keyword Examples

MODE=APL

6

Page 117: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

MODE=(SYSTEMS)

SCAN

Keyword Format

SCAN

SCAN allows Comparex to scan the input file as specified through SYSUT1 for character strings specified through filtering criteria. That is, the rules of exclusive filters (FILTERIN, FILTEROUT) and inclusive filters (FILTORIN, FILTOROUT) as documented are applied to each record, and that record is displayed if it passes the filter tests. If SCAN is specified, SYSUT2 is ignored.

If directory-embedded data sets are being read, Comparex will process each member, subject to member filters. Every record is then subjected to record filtering criteria.

Keyword Examples

SCAN

SCAN=(YES)

SCAN Example - Single File

SCAN,FORIN=(12-72,EQ,C' ONLY-FILE'). . .1 000600 SELECT ONLY-FILE, 00000600 61 001100 FILE STATUS IS ONLY-FILE-STAT. 00001100 111 001400 FD ONLY-FILE. 00001400 141 002300 77 ONLY-FILE-STAT PIC XX. 00002300 231 004400 OPEN I-O ONLY-FILE. 00004400 441 004500 IF ONLY-FILE-STAT = '00' 00004500 451 004800 EXHIBIT NAMED ONLY-FILE-STAT 00004800 481 005200 READ ONLY-FILE NEXT, AT END MOVE 8 TO RETURN-CODE. 00005200 521 005300 IF ONLY-FILE-STAT = '00' 00005300 531 006000 CLOSE ONLY-FILE. 00006000 60 CPX75I - RECORDS PROCESSED(60) PASS FAIL STATISTICS 10 50 FILTERIN=(12-72,EQ,C' ONLY-FILE')CPX77I - REJECTED BY FILTERS: SYSUT1(50)/SYSUT2(0) - UNUSABLE FILTERS(0)

You should use MBRHDR=COND with SCAN because it reduces the number of mini-headers displayed. Mini-headers encapsulate non-null statistics in angle brackets about the member whose records follow. For example:

M member nameCREDATE creation date in yyyyddd formatMODDATE last modification date in yyyyddd formatMODTIME last modification time in hhmm formatUSER user ID associated with last update

117

Page 118: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

11

Chapter 5: Input Processing Keywords

SCAN Example - Across Multiple Members

SCAN,MBRHDR=COND,FORIN=(5-72,EQ,C'COMPAREX.LINK'). . .<M=ABC37JCL,CREDATE=89356,MODDATE=94274,MODTIME=0907,USER=ABC37>1 //STEPLIB DD DISP=SHR,DSN=ABC.COMPAREX.LINKLIB ABC37056 561 //STEPLIB DD DISP=SHR,DSN=ABC.COMPAREX.LINKLIB ABC37088 88<M=COMPARE,CREDATE=93187,MODDATE=93188,MODTIME=0842,USER=ABC89DD>1 //* from the COMPAREX.LINKage 00027500 275. . .

SKIPUT1

SKIPUT1 allows Comparex to skip over a specified number of records, at the beginning of file SYSUT1 before comparison or printing begins.

Records that are filtered out count against the number of records to be skipped. Skipping is done without regard to whether records are to be filtered out.

If directory-embedded data sets are being read, Comparex will skip over that number of records at the beginning of each member.

Keyword Format

SKIPUT1=nn

Keyword Examples

SKIPUT1=00001 SKIPUT1=500

SKIPUT2

SKIPUT2 allows Comparex to skip over any desired number of records at the beginning of file SYSUT2 before comparison or printing begins.

Records that are filtered out count against the number of records to be skipped. Skipping is done without regard to whether records are going to be filtered out or not.

If directory-embedded data sets are being read, Comparex will skip over that number of records at the beginning of each member.

Keyword Format

SKIPUT2=nn

Keyword Examples

SKIPUT2=00001 SKIPUT2=500

8

Page 119: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

STOPAFT

STOPAFT specifies the maximum number of records to be read from SYSUT1 or SYSUT2. The default is 999999999999. This number does not include records bypassed as a result of SKIPUT1 or SKIPUT2. Comparex stops processing as soon as the number is reached on either file, writes the statistics line, and closes all files.

For example, if STOPAFT=60 was specified, and if there were 50 records on file SYSUT1 and 70 records on file SYSUT2, Comparex would read all 50 records on file SYSUT1, and 60 records on file SYSUT2 before stopping its processing (with return code 8).

Remember, the limit you can specify for STOPAFT is 99999999. Even though a larger number (twelve 9’s) is the default, you can specify only eight digits for any keyword.

Keyword Format

STOPAFT=nn

Keyword Examples

STOPAFT=00001 STOPAFT=500

SYSUT1

SYSUT1 specifies parameters that override the SYSUT1 JCL statement issued when Comparex was called. It is generally used to pass parameters to the CPXIFACE interface to read Panvalet, Librarian, GEM, and OTHER proprietary file structures in the place of SYSUT1. It is also used to invoke z/OS Unix Hierarchical File System (HFS) processing.

Keyword Format

SYSUT2=({PAN}[,{MEMBER=}xxx][,INCLUDE={NO} ][,DDNAME=xxx][,LEVEL=n][,PARM='xxx']) {LIB}[,{M=} ][ {YES}][,DDNAME=xxx][,LEVEL=n][,PARM='xxx']) {OTH} [,DDNAME=xxx][,LEVEL=n][,PARM='xxx']) {HFS,PATH=’/u/user/xxxx’}

Parameter Description

PAN Computer Associates-Panvalet library.

LIB Computer Associates-Librarian library, or FUJITSU/FACOM’s GEM, depending on how CPXIFACE has been generated.

OTH Any other proprietary library management package or database management system. The source code to CPXIFACE is supplied with PAN and LIB usable immediately.

119

Page 120: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

12

Chapter 5: Input Processing Keywords

HFS z/OS Unix Hierarchical Files System (HFS) file or directory. Full path from root is required in PATH subkeyword. Mutually exclusive with PAN, LIB, or OTH.

MEMBER A particular member of the library has been requested. MEMBER may be abbreviated as M. The member name may be up to sixteen alphanumeric characters. The absence of the MEMBER option implies that the entire library is to be processed.

PATH Path from HFS root to desired directory or file in the z/OS Unix Hierarchical File System (HFS). Value must be enclosed in single quotes and prefaced by initial slash. Required if FILE=HFS.

INCLUDE Specifies if included members (++INCLUDE in PAN and -INC in LIB) are to be expanded when read. The default is NO.

If an option to COPYDIFF is specified, any YES option to INCLUDE will be nullified to INCLUDE=NO.

Parameter Description

0

Page 121: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

Keyword Examples

SYSUT1=(PAN,MEMBER=PANMEMBER) SYSUT1=LIB SYSUT1=(OTH,M=MEMBER-IS-16-BYT,DDNAME=A,PARM='A B') SYSUT1=(LIB,M=ABC,INCLUDE=YES,LEVEL=3,PARM=1234) SYSUT1=(HFS,PATH=’/u/user0001/somedir/somefile.txt’)

Alternate Keyword Format

SYSUT1={QSAM} {ISAM} {(VSAM[,PASSWORD=password][,DDNAME=ddname])} {PDS} {DUMMY}

DDNAME Specifies what ddname is to be used to open the proprietary file structure. For disk libraries, the default for PAN is PANDD1, and the default for LIB is MASTER. Certain other specifications mean special handling in CPXIFACE, depending on the library.

Unique ddnames and their meanings are:

• PAN

• PANDD1 - disk master

• BACKUP) - protection file

• PANDD3 - tape master

• PANDD4 - disk protection

• LIB

• MASTER - disk master

• MASTIN - tape master

• CYCLE) - cycle control

• LEVEL - (for LIB only) specifies the relative level number of the archived (ARCHIE) module. LEVEL=0 is the current module, LEVEL=1 is the next oldest, and so on.

PARM Specifies that extra data to be passed as is into CPXIFACE. The PARM data can be spread across two lines of input to a maximum of 64 bytes.SYSUT1=(OTH,PARM= 'information for CPXIFACE that can stretch across two lines - no continuation character needed')

Librarian can also use the PARM to take a dynamic ‘Current Management Code.’ Instead of a statically generated CMC, it can be passed into the (CPXIFACE) Interface to read ‘PROD2’ modules:

SYSUT1=(LIB,PARM=1234,MEMBER=abc)

Parameter Description

121

Page 122: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

12

Chapter 5: Input Processing Keywords

Overrides the data set organization (DSORG) determined by Comparex for SYSUT1. This is allowed, but not recommended.

SYSUT2

SYSUT2 specifies parameters that override the SYSUT2 JCL statement issued when Comparex was called. It is generally used to pass parameters to the CPXIFACE interface to read Panvalet, Librarian, GEM, and OTHER proprietary file structures in the place of SYSUT2. It is also used to invoke z/OS Unix Hierarchical File System (HFS) processing.

Keyword Format

SYSUT2=({PAN}[,{MEMBER=}xxx][,INCLUDE={NO} ][,DDNAME=xxx][,LEVEL=n][,PARM='xxx']) {LIB}[,{M=} ][ {YES}][,DDNAME=xxx][,LEVEL=n][,PARM='xxx']) {OTH} [,DDNAME=xxx][,LEVEL=n][,PARM='xxx']) {HFS,PATH=’/u/user/xxxx’}

Keyword Examples

SYSUT2=(PAN,MEMBER=PANMEMBER) SYSUT2=LIB SYSUT2=(OTH,M=MEMBER-IS-16-BYT,DDNAME=A,PARM='A B') SYSUT2=(LIB,M=ABC,INCLUDE=YES,LEVEL=3) SYSUT2=(HFS,PATH=’/u/user0001/somedir/somefile.txt’)

Alternate Keyword Format

SYSUT2={QSAM} {ISAM} {(VSAM[,PASSWORD=password][,DDNAME=ddname])} {PDS} {DUMMY}

Overrides the data set organization (DSORG) determined by Comparex for SYSUT2. This is allowed but not recommended.

WILDCARD

Specifies the character to be used in subsequent logical tests to indicate that any data value passes the test.

The logical tests occur in FILTER, IDENTITY, and SEGMENT keywords.

Keyword Format

WILDCARD={C'.'} {t'vv'}

2

Page 123: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

Any number of WILDCARD keywords may be entered. The WILDCARD value (or default) is in effect until another WILDCARD keyword is encountered.

For example, the keywords could be:

FILTERIN=(12,EQ,X'.0.2') WILDCARD=C'?' FILTERIN=(23,EQ,C'AB??C') WILDCARD=C'!'

FILTERIN=(34,EQ,C'DE!F!G')

and Comparex would interpret the periods (first FILTERIN), question marks (second FILTERIN), and exclamation points (third FILTERIN) as WILDCARD values.

If the default (a period) was in effect and you entered

FILTERIN=(123,EQ,X'...D')

then any data value with D in the low-order half-byte would pass this test for packed negative numbers.

Any number of the positions of the value to be tested may contain the WILDCARD character. For example:

IDENTITY=(234,EQ,C'..A..B..C..1')

SEGMENT=(345,EQ,X'F....0')

Keyword Examples

WILDCARD=C'*' WILDCARD=X'5C'

123

Page 124: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

12

Chapter 5: Input Processing Keywords

4

Page 125: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

DISPLAY PROCESSING KEYWORDS

6

What you will find in this chapter:

• “Printing the Comparison Results” on page 125• “Display Processing Keywords” on page 125• “All-Defaults Difference Report” on page 128• “All-Defaults Difference Report with DATA” on page 128• “Modifying the Difference Report” on page 129

PRINTING THE COMPARISON RESULTS

Comparex writes the difference report to SYSPRINT. This difference report is a listing of the results of the comparison.

The first section of the difference report shows the Comparex license information and a listing of the comments and keywords entered by the user.

Next, Comparex prints messages showing the processing parameters it uses for the run, showing these with message numbers CPX04I through CPX25I.

After these job initialization messages, Comparex prints any records that have been selected for printing, based on the results of the comparison routines and on the value of the PRINT keyword.

Finally, Comparex prints its end-of-processing totals, showing these with message numbers CPX71I through CPX80I.

DISPLAY PROCESSING KEYWORDS

Keywords Descriptions Pages

ASCII Specifies that an input file is in ASCII format instead of EBCDIC or UNICODE format.

Compare types: Data, Text

129

CASE Specifies how lowercase characters in the input stream will be treated.

Compare types: Data, Text, Directory

130

125

Page 126: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

12

Chapter 6: Display Processing Keywords

DASH Specifies the character used to identify differences on the difference report.

Compare types: Data, Text, Directory

131

DECIMAL Specifies that relative displacements for each line in a report are shown in decimal format.

Compare types: Data, Text

131

EBCDIC Specifies that an input file is in EBCDIC format instead of ASCII or UNICODE format.

Compare types: Data, Text, Directory

132

FLDSONLY Specifies that only differing bytes defined by FIELD statements are underscored with the DASH character.

Compare type: Data

132

FORMAT Specifies the data format characteristics of the difference report.

Compare type: Data

133

GENFLDS Tells Comparex to print a visual representation of all IDENTITY, FIELD, and MASK statements.

Compare types: Data, Text

137

HALT Tells Comparex whether to stop processing after all keywords have been scanned.

Compare types: Data, Text, Directory

137

HEX Specifies that relative displacements are displayed/printed in hexadecimal format.

Compare types: Data, Text

138

IGNORSIN Specifies that the positive hexadecimal signs X‘.C’ and X‘.F’ are equivalent.

Compare type: Data

138

INTERLEAVE Specifies the number of lines that are grouped together if the output format is interleaved.

Compare type: Data

139

KEYSONLY Specifies that, for synchronization mismatches, only the lines that contain the control fields will be printed.

Compare type: Data

139

Keywords Descriptions Pages

6

Page 127: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

KILLECHO Suppresses the printing of installation defaults after the first page of the Comparex report.

Compare types: Data, Text, Directory

139

KILLRC Specifies that the system return code is set to zero.

Compare types: Data, Text, Directory

140

KILLSPIE Specifies that Comparex will not use ESPIE-based diagnostics.

Compare types: Data, Text, Directory

140

LINE Specifies the number of bytes displayed on each line of the output report, and the format of the display.

Compare types: Data, Text

140

LINELIM Specifies the number of lines to be printed for each record.

Compare type: Data

141

MAXDIFF Specifies the maximum number of differences to be displayed on the difference report.

Compare types: Data, Text, Directory

141

MBRHDR Specifies if Comparex prints the header record for each member of a directory-embedded data set.

Compare types: Data, Text

142

NIBBLE Specifies that each half-byte (nibble) of data is to be compared.

Compare type: Data

143

PAGE Specifies the number of lines to print on each page.

Compare types: Data, Text, Directory

144

PLUS Specifies the character that underscores the excess bytes if the data record on the modified file is longer than the record on the original file. Also used as the framing character in TEXT processing.

Compare types: Data, Text

144

PRINT Specifies which MATCHed or MISMATCHed records will be printed.

145

UNICODE Specifies that an input file is in UNICODE format instead of EBCDIC or ASCII format.

Compare types: Data

146

Keywords Descriptions Pages

127

Page 128: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

12

Chapter 6: Display Processing Keywords

ALL-DEFAULTS DIFFERENCE REPORT

If you do not enter display processing keywords, Comparex produces the difference report, taking all defaults. Here is a listing of the values associated with the display processing keywords under the all-defaults mode:

• EBCDIC is in effect; ASCII and UNICODE are not in effect.

• CASE=UPPER is in effect

• DASH=C‘-’ is in effect

• DECIMAL is in effect

• HEX is not in effect

• FLDSONLY is not in effect

• FORMAT=02 is in effect

• No GENFLDS are produced

• No HELP listing is produced

• INTERLEAVE=0 is in effect

• LINE=(32,HORIZONTAL) is in effect

• LINELIM=0 is in effect

• MAXDIFF=999999999999 is in effect

• NIBBLE is not in effect

• PAGE=58 is in effect

• PLUS=C‘+’ is in effect

• PRINT=MATCH and PRINT=MISMATCH are in effect

Note

The all-defaults report is not recommended. Every Comparex run should specify a MAXDIFF keyword to avoid large printouts if unexpected results occur.

ALL-DEFAULTS DIFFERENCE REPORT WITH DATA

1. Comparex prints its license information, showing the name and address of the computer center where the utility is installed.

2. Comparex acknowledges each line of keywords. If the utility finds at least one non-blank character that is not identified as keywords, Comparex will underscore the characters with the dash character and will print the literal “ERROR?” in the right-hand column. Any characters in the line beginning with message number CPX00I that are not underscored are accepted as valid keywords or comments.

3. Comparex prints messages showing the processing parameters it uses with the run.

8

Page 129: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

4. PAGE=58 is used. Each page contains a maximum of 58 lines. The first two lines show the time, date, page number, and input file data set names.

a) The literal O N E is shown in the right-hand column if the line contains data from a record from file SYSUT1.

b) The literal T W O is shown in the right-hand column if the line contains data from a record from file SYSUT2. ONE/TWO can be changed to OLD/NEW; see the section on “Programmable Options” in the Install Guide for more details.

c) The literal DIFFERENCE is shown after each line of data from file SYSUT2 if the SYSUT2 record has been selected for printing on the difference report because of inequalities if matched to a record from file SYSUT1. This SYSUT2 record is shown with message CPX52I.

d) When reviewing the difference report, scan the right-hand column, looking for the literal DIFFERENCE. These SYSUT2 records are then reviewed for reconciliation by noting the dash character underscores (for differing bytes) and the plus character underscores (for extra bytes).

5. The EBCDIC translation table is used to translate the bit representations shown on the left side of the report into the printable characters on the right side of the report.

6. The displacement on each line is shown in DECIMAL. The first line shows bytes 1 through 32, the second line shown bytes 33 through 64, and the third line shows bytes 65 through 96.

7. FORMAT=02 is used. This implies that LINE is set at (32,HORIZONTAL) for the standard IBM dump format. Each line contains 32 bytes of the record.

In the display of the SYSUT1 record under message CPX51I, if any line is the same as the previous line, the data values are replaced by the words “SAME AS ABOVE”.

In the display of the SYSUT2 record under message CPX52I, only lines that actually have underscored differences are displayed.

8. DASH=C‘-’ is used. The dash character is shown to the left of the word “DIFFERENCE”, and it is used to underscore differing bytes. All differing bytes are underscored on the record from file SYSUT2.

9. PLUS=C‘+’ is used. The plus character is shown to the right of the word “DIFFERENCE”, and it is used to underscore excess bytes if the SYSUT2 records is longer than the paired SYSUT1 record.

10. Comparex prints its end-of-processing totals.

MODIFYING THE DIFFERENCE REPORT

The all-defaults difference report can be modified by the use of Comparex keywords.

ASCII

Translates ASCII input into readable format on the alphanumeric section of the difference report.

129

Page 130: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

13

Chapter 6: Display Processing Keywords

ASCII, EBCDIC, and UNICODE are mutually exclusive. EBCDIC is the default value.

The ASCII translate table is in two parts. Normal ASCII is from X ‘00’ to X ‘7F’, but some users also have an abnormal ASCII that is a duplicate at values X‘80’ to X‘FF’. Comparex supports both in the same table.

If ASCII translation is being used, processing parameter message CPX08I will specify ASCII.

CASE

CASE specifies the translation of lowercase characters, either EBCDIC or ASCII.

The default is CASE=MIXED, where lowercase and uppercase characters remain as is, but nonprintable characters are translated to periods on the printout.

CASE=LOWER is exactly the same as CASE=MIXED.

CASE=UPPER treats lowercase letters as nonprintable and translates them to periods also.

CASE=RAISE capitalizes all letters (and does so before comparing).

CASE=MONO disables all translation; it is intended mainly for Japanese katakana customers.

If an option to TEXT such as TEXT=PANEL is specified, CASE=MIXED is set automatically.

The preceding applies to the comparing of SYSUT1 and SYSUT2 records; not to the scanning of SYSIN keywords. As each line of SYSIN is read, it is automatically translated to upper case allowing keywords as entered to be in either case.

You can make CASE=MONO the default for both SYSIN keyword scanning, and for compare processing; see the section on “Set Up Comparex Programmable Options” in the appropriate Comparex Install Guide for details.

Keyword Format

CASE={MIXED} {LOWER} {UPPER} {RAISE} {MONO}

Keyword Examples

CASE=(MIXED)CASE=UPPERCASE=lower /* Same as CASE=mixedCASE=RAISE

0

Page 131: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

DASH

DASH specifies the character that is to be used as the underscore for differing bytes on the difference report.

The dash character also is used as the character to separate a block of records from file SYSUT1 from a block of records from file SYSUT2 if FRAME is specified with TEXT processing.

If an inequality is discovered between two synchronized data records, the bytes that are different are underscored with the dash character. Comparex prints the word ‘DIFFERENCE’ on the right side of the report, next to the record from file SYSUT2, on the same line as the dash characters.

The default value is a dash. You may specify any other character or hexadecimal value.

If character data is given, only one value is used (such as C‘?’)

If hexadecimal data is given, two values are used (such as X‘4F’).

The dash character being used is specified by processing parameter message CPX11I. In addition, the dash character is shown immediately to the left of the word “DIFFERENCE”.

At the end of processing, Comparex shows a count of bytes underscored with message CPX74I.

The differing bytes are underscored with the dash character on both the left-hand (hexadecimal) portion of the report and the right-hand (alphanumeric) portion of the report.

Comparex will accept any value given; you need only to be certain the value is a printable character.

If you specify an unprintable character (one that is not in the Comparex internal translate table), Comparex will substitute a period (C‘.’). You can specify other unprintable characters in member COMPAREE, which may be found in data set somnode.COMPAREX.IFACE.

Keyword Format

DASH={C'-'} {t'vv'}

Keyword Examples

DASH=C'?'

DASH=X'EA'

DECIMAL

DECIMAL causes each line's relative displacement to be shown in decimal format.

DECIMAL and HEX are mutually exclusive. DECIMAL is the default value. If DECIMAL is specified, HEX should not be specified.

131

Page 132: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

13

Chapter 6: Display Processing Keywords

Each line’s relative displacement is shown in the left-most column of the difference report.

If DECIMAL displacement is being used, processing parameter message CPX08I will specify DECIMAL.

An example of DECIMAL format is shown in “FORMAT=02,DECIMAL,NIBBLE (Excerpts).” Note that the first line of the record includes bytes 1 through 32, the second line of the record includes bytes 33 through 64, the third line of the record includes bytes 65 through 96, and the fourth line of the record includes bytes 97 through the end of the record. This example shows DECIMAL with displacement relative to one (the default).

EBCDIC

EBCDIC specifies that the input files are in EBCDIC format. Unusual special characters are translated to periods after the comparison routine but before their printing on the difference report.

EBCDIC, ASCII, and UNICODE are mutually exclusive. EBCDIC is the default value.

If EBCDIC translation is being used, processing parameter message CPX08I will specify EBCDIC.

The EBCDIC translate table may be customized at your shop by replacing CSECT COMPAREE in load module Comparex.

FLDSONLY

FLDSONLY specifies that only differing bytes defined by FIELD statements are underscored with the dash character. If used in conjunction with FORMAT=FIELD, it suppresses the display of fields that do not reflect a difference.

If you specify at least one FIELD1/FIELD2 combination, Comparex turns on the FLDSONLY indication automatically.

If FLDSONLY is being used, processing parameter message CPX11I will specify FLDSONLY.

FORMAT=02, DECIMAL, NIBBLE (Excerpts)

CPX51I - RECORD NUMBER 4 ON FILE SYSUT11 F0F0F0F4 F5F7F0F6 00000000 0045706C 0000B28A C4C1E3C1 ... *00045706.......%....DATA-SYSUT1 * O N E33 F0F1F2F3 F4F50000 00000012 345C0000 30394040 40E3C8C9 ... *012345.......*.... THIS IS THE* O N E65 40C4C1E3 C140C6D6 D940E2E8 E2E4E3F1 40606060 60606040 ... * DATA FOR SYSUT1 ------ * O N E97 40404040 40404040 40404040 40404040 40404040 40404040 ... * * O N E

CPX52I - RECORD NUMBER 4 ON FILE SYSUT21 F0F0F0F4 F5F7F0F6 00000000 0045706F 0000B28A C4C1E3C1 ... *00045706.......?....DATA-SYSUT2 * T W O - - - -DIFFERENCE+33 40C4C1E3 C140C6D6 D940E2E8 E2E4E3F2 40606060 60606040 ... * DATA FOR SYSUT2 ------ * T W O - - -DIFFERENCE+97 40404040 40404040 40404040 40404040 40404040 40404040 ... * * T W O ++++++++ -DIFFERENCE+129 4040 * * T W O ++++ ++ -DIFFERENCE+

2

Page 133: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

FORMAT

FORMAT specifies the data formatting characteristics for how differences are displayed. The default is FORMAT=02, which implies the IBM dump format, full display of a SYSUT1 record, followed by the differing lines of SYSUT2 with the differences underscored.

Keyword Format

FORMAT={xy}(or F) {FIELD} {SMART} {xyF} {xyS}

If supplied, the xy argument must be two digits.

Individual field names with their associated values can be displayed by specifying FORMAT=FIELD. You should use the name (N=) option to FIELD, FIELD1, FIELD2, IDENTITY, and Filters.

If FLDSONLY is also specified, it suppresses the display of fields that do not reflect a difference.

Furthermore, if only the fields that have changed are displayed, it can happen that a KEY is not displayed, and you will not know what logical record the differences were for. One can specify KEYSONLY and have a FIELD lay over the exact same bytes (displacement and length) as the first (only one) KEY, and that FIELD will always be displayed.

The COBOL Copylib parsing capability of option 9 on the ISPF interface is built specifically for invoking this feature.

The possible values for x are:

FORMAT=FIELD can be abbreviated as FORMAT=xyF, where x=0 implies horizontal hex, x=1 implies alphabetic, and x=2 implies vertical hex format.

0 Generates LINE=(32,HORIZONTAL). See“FORMAT=02, DECIMAL, NIBBLE (Excerpts)” on page 132 for an example of the IBM dump format.

1 Generates LINE=(100,ALPHA). See “Alphanumeric Format - FORMAT=1y” on page 136 for an example of the alphanumeric format with 100 bytes per line.

2 Generates LINE=(100,VERTICAL). See“PLUS and FORMAT=21 (DITTO Format)” on page 145 for an example of the ditto (vertical hex) format with 100 bytes per line.

133

Page 134: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

13

Chapter 6: Display Processing Keywords

For the following description on the values of y, imagine a SYSUT1 record with every byte having a value of display character ‘A’ (C‘A’ or X‘C1’), and a SYSUT2 record similar except that byte number ten (relative to one) has a value of ‘B’ (C‘B’ or X‘C2’). For example:

<------------ SYSUT1 Record ------------> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA O N E AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA etc. O N E

<------------ SYSUT2 Record ------------> AAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA T W O AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA etc. T W O

The values for y are:

1 Full display of the SYSUT1 record, followed by a full display of the SYSUT2 record with differences underscored. For example:

CPX51I - RECORD NUMBER 1 ON FILE SYSUT1

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA O N E AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA etc. O N E

CPX52I - RECORD NUMBER 1 ON FILE SYSUT2

AAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA T W O - -DIFFERENCE+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA etc. T W O

2 Full display of the SYSUT1 record, followed by only the differing lines of SYSUT2 with differences underscored. For example:

CPX51I - RECORD NUMBER 1 ON FILE SYSUT1

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA O N E AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA etc. O N E

CPX52I - RECORD NUMBER 1 ON FILE SYSUT2

AAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA T W O - -DIFFERENCE+

3 Differing lines of the SYSUT1 record, followed by the differing lines of SYSUT2 with the differences underscored. For example:

CPX51I - RECORD NUMBER 1 ON FILE SYSUT1

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA O N E

CPX52I - RECORD NUMBER 1 ON FILE SYSUT2

AAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA T W O - -DIFFERENCE+

4

Page 135: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

All combinations of x and y are acceptable, unless FIELD1/FIELD2 offsets are specified. In this case, regression to FORMAT=x1 or FORMAT=x2 may be enforced without express notification using a CPXnnA message.

If differing FIELD1/FIELD2 offsets are specified such as:

FIELD1=(31,4,Z),FIELD2=(32,3,P)

then FORMAT=x3, FORMAT=x5, and FORMAT=x6 revert to FORMAT=x2, and FORMAT=x4 reverts to FORMAT=x1.

Keyword Examples

FORMAT=26 FORMAT=11

FORMAT=FIELD

4 Full display of the SYSUT1 record, interleaved with a full display of the SYSUT2 record and the differences underscored. For example:

CPX51I - RECORD NUMBER 1 ON FILE SYSUT1 CPX52I - RECORD NUMBER 1 ON FILE SYSUT2

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA O N E AAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA T W O - -DIFFERENCE+

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA etc. O N E AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA etc. T W O

5 Full display of SYSUT1 record, interleaved with only the differing lines of SYSUT2; the differences are underscored. For example:

CPX51I - RECORD NUMBER 1 ON FILE SYSUT1 CPX52I - RECORD NUMBER 1 ON FILE SYSUT2

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA O N E AAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA T W O - -DIFFERENCE+

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA etc. O N E

6 Differing lines of SYSUT1 record interleaved with differing lines of SYSUT2 and the differences underscored. For example:

CPX51I - RECORD NUMBER 1 ON FILE SYSUT1 CPX52I - RECORD NUMBER 1 ON FILE SYSUT2

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA O N E AAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA T W O - -DIFFERENCE+

135

Page 136: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

13

Chapter 6: Display Processing Keywords

Alphanumeric Format - FORMAT=1y

1 EXAMPLE OF FORMAT=1y, 100 BYTES PER LINE, UNPRINTABLE CHARACTERS

101 WILL APPEAR AS ... PERIODS, lower case only if CASE=MiXeD.

Smart Fields

FORMAT=SMART allows formatting of numeric fields. If you specify FORMAT=SMART in the control cards, numeric fields will be translated to a form that is appropriate for the type of data being displayed. For example, a packed field will be printed out as a decimal number in addition to alphabetic, horizontal hex, or vertical hex formats.

FORMAT=SMART implies FORMAT=FIELD, because SMART fields are special cases of FORMAT=FIELD.

You can abbreviate FORMAT=SMART as FORMAT=xyS, where x=0 implies horizontal hex, x=1 implies alphabetic, and x=2 implies vertical hex format.

FORMAT=SMART also works in conjunction with the FIELD=(x,x,x/date format) keyword. If you are using both parameters, then a new field will appear on the report with formatted alphanumeric data.

The following example is what appears without FORMAT=SMART. The first field is difficult to understand because it is packed data.

1 C O M P A R E X (MVS - 8.6.0 - 2006/105) COMPARESYSUT1=WSER15.CPX860.SOURCE(DATEFL6),SYSUT2=WSER15.CPX860.SOURCE(DATEF)0DSPL|...+....1....+....2....+....3....+....4....+....5....+....6....+....7.0 FIELD1=(25,5,P/YYYYMMDD),FIELD2=(1,9,Z/DD/MON/YY0CPX51I - RECORD NUMBER 1 ON FILE SYSUT10CPX52I - RECORD NUMBER 1 ON FILE SYSUT2 FIELD=1

25 r> O N E 1 30/SEP/97 T W O ------------ -DIFFERENCE+

With FORMAT=SMART, the formatted date will appear, and it will be easy to understand what the original data means.

1 C O M P A R E X (MVS - 8.6.0 - 2006/105) COMPARESYSUT1=WSER15.CPX860.SOURCE(DATEFL6) ,SYSUT2=WSER15.CPX860.SOURCE(DATEF)0DSPL|...+....1....+....2....+....3....+....4....+....5....+....6....+....7.0 FIELD1=(25,5,P/YYYYMMDD),FIELD2=(1,9,Z/DD/MON/YY)0CPX51I - RECORD NUMBER 1 ON FILE SYSUT10CPX52I - RECORD NUMBER 1 ON FILE SYSUT2 FIELD=1

25 r> JUN/30/0097 O N E 1 30/SEP/97 SEP/30/0097 T W O ----------- -DIFFERENCE+

If the original data for both SYSUT1 and SYSUT2 is in Julian format, then the newly-formatted data will be in a YYYY.DDD format.

If the original data for both SYSUT1 and SYSUT2 is in Gregorian format, then the newly-formatted data will be in MMM/DD/YYYY format.

6

Page 137: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

If there is a mix of formats (comparing Julian against Gregorian), then the newly-formatted data will be in MMM/DD/YYYY format.

GENFLDS

Specifies that Comparex is to generate a visual representation of all IDENTITY, FIELD, and MASK statements on the difference report.

If GENFLDS is being used, processing parameter message CPX13I will be shown.

A page eject is done before and after each display so you can separate the GENFLDS pages for reference as the difference report is studied. A clear plastic overlay could be made on a copying machine to aid in the analysis of the report.

Comparex uses the value of LINE specified with processing parameter message CPX08I to generate the GENFLDS representation. If done this way, the GENFLDS representation is in the same format as the associated difference report.

HALT

HALT specifies if Comparex is to continue processing after extracting keywords.

HALT=COND causes Comparex to terminate after finding a keyword syntax error. This is the default. As delivered, HALT=COND is set in the installation defaults. From experience, most shops leave this in as the default.

HALT=YES forces Comparex to terminate with message CPX31A after all keywords have been exhausted even if there are no syntax errors in the input.

HALT=NO implies that, if at all possible, Comparex continues processing, regardless of any syntax errors you may have committed. This is the default if you remove HALT=COND from the installation defaults and don’t supply it from any other source.

Syntax errors are defined here as anytime Comparex underscores non-blank characters that are not recognizable keywords. The literal “ERROR?” also is displayed to the right of the underscores alerting you of the problem.

Keyword Format

HALT={YES} {NO}

{COND}

DATA|=(CSECT,ADCON=|YES/NO|)| - FILES HAVE INTER-RECORD RELATIONSHIP

DIRECTORY=|USER/SPF/PDF/LOAD| - DIRECTORY PROCESSING ONLYEL=N,PARM=XXX) SYSUT1=|QSAM/ISAM/VSAM/PDS| - EXPLICIT SYSUT1 ACCESS METHOD, NOT RECOM. SYSUT2 IS SAME AS SYSUT1 WILDCARD=T'VV' - GENERIC CHARACTER

CPX01I - OUTPUT PROCESSING KEYWORDS COPYDIFF=(|PAN/LIB/GEM/IEBUPDTE/CMN/MEMBER/OTH|,VERS=|YES/NO|,PASS=|YES/NO|,STAMP=|NO/YES|,SEQFLD=738) COPYSAME - COPY SAME (DATA) FROM SYSUT2 TO SYSUT3 INSERT=|++C/-INS/- INS| - TEXT/COPYDIFF FORMATTING

137

Page 138: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

13

Chapter 6: Display Processing Keywords

DELETE=|++C/-DEL/- DEL| - TEXT/COPYDIFF FORMATTING REPLACE=|++C/-REP/- REP| - TEXT/COPYDIFF FORMATTING SYSUT3=|QSAM/ISAM/VSAM| - EXPLICIT SYSUT3 ACCESS METHO

EBCDIC - EBCDIC TRANSLATE TABLE FLDSONLY - DIFFERENCES UNDERSCORED ONLY ON SPECIFIED FIELDS FORMAT=XY - X=|0/1/2|, Y=|1/2/3/4/5/6| - DATA FORMATTING FORMAT=|XY/FIELD|, X=|0/1/2|, Y=|1/2/3/4/5/6| - DATA FORMATTING GENFLDS - VISUAL INTERPRETATION OF FIELDS TO BE COMPARED HALT=|YES/NO/COND| - HALT EXECUTION ON SYSIN ERROR HEX - RELATIVE DISPLACEMENTS IN HEX INTERLEAVE=NNN - INTERLEAVE DIFFERING PRINTED LINES KEYSONLY - DISPLAY LINES CONTAINING CONTROL FIELDS ON SYNCH MISMATCHES KILLRC - FORCE RETURN CODE TO BE ZERO LINE=(NNN,|HORIZONTAL/ALPHA/VERTICAL|) - PRINT LINE CHARACTER REPRESENTATION MAXDIFF=NNN - STOP OR PAUSE (SEE CONTINUE) AFTER NNN DIFFERING RECORDS MAXMATCH=NNN - SIMILAR TO MAXDIFF BUT ONLY FOR MATCHING RECORDS MBRHDR=|YES/NO/COND/MATCH| - HEADINGS ON MEMBERS NIBBLE - UNDERSCORE HALF-BYTE NIBBLES IF DUMP FORMAT PAGE=NNN - NNN AT LEAST 10 (DEFAULT IS 58) LINES PER PAGE PLUS=T'VV' - DEFINITION OF EXTRA BYTES UNDERSCORE PRINT=|MATCH/NOMATCH/MISMATCH/NOMISMATCH/FULL| - PRINT CONTROL

CPX01I - TEXT FILE KEYWORDS BUFF=NNN - BUFFER SIZE FRAME=|NUM/YES/NO| - SURROUND BLOCKS OF DIFFERING RECORDS MLC=NNN - MATCHING LINE COUNT SQUEEZE=T'VV' - CHARS TO BE SQUEEZED OUT TEXT=|COBOL/$COBOL/./JCL/BAL/CLIST/REPORT ETC.| TEXT COMPARE PRINT=|FULL/MLC| - MORE OF SYSUT1 WITH DIFFERENCES DISPLAYED IN CONTEXT

HEX

HEX causes each line’s relative displacement to be shown in hexadecimal format.

DECIMAL and HEX are mutually exclusive. DECIMAL is the default. If HEX is specified, DECIMAL should not be specified.

Each line’s relative displacement is shown in the left-most column of the difference report.

If HEX displacement is being used, processing parameter message CPX08I will specify HEX.

If MODE=SYSTEMS is specified and DECIMAL is not specified, Comparex turns on HEX automatically.

IGNORSIN

IGNORSIN specifies that data differences in packed fields with unlike signs are to be ignored. This keyword causes Comparex to scan every byte of both synchronized records for packed fields, and to make them signs of F before comparison begins.

If one record contains packed fields with signs of C and the other record contains packed fields with signs of F, they can be ignored. If the two records are compared, these sign differences are effectively ignored.

The following restrictions apply to the use of IGNORSIN:

• No FIELDs or MASKs are allowed

• Not available for TEXT processing

• It is ignored for numeric compares

• It is not applicable to CSECT parsing.

8

Page 139: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

Keyword Examples

IGNORSIN

IGNORSIN=YES

INTERLEAVE

INTERLEAVE specifies the number of lines that are blocked together from a SYSUT1 record before displaying a similar number of lines from a SYSUT2 record.

This only has meaning in DATA logic if the value of y in FORMAT=xy is 4, 5, or 6. If entered, the value of nn must be at least 1. If not entered, the default value is 1.

If INTERLEAVE is entered but FORMAT is not, FORMAT=x5 will be used by default.

Specifying a very high value (such as INTERLEAVE=10000 with FORMAT=04) is logically equivalent to specifying FORMAT=01 and disregarding INTERLEAVE.

Keyword Format

INTERLEAVE=nn

(or ILV)

Keyword Examples

INTERLEAVE=1

ILV=010

KEYSONLY

KEYSONLY specifies that if synchronization mismatches occur, either from KEY or SEGMENT synchronization, only the lines that completely contain any control fields will be displayed. This is particularly useful when comparing DATA files with relatively large records (500 bytes or more), and you are not concerned with flipping through the pages of the display for inserted and deleted records.

Another possibility is to specify PRINT=NOMISMATCH, but that ignores the inserted/deleted records completely from the difference report.

KILLECHO

KILLECHO specifies that CPX0xI messages that are not defined in the system defaults will be suppressed. Only the title information, system defaults, and DATA report will be displayed.

139

Page 140: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

14

Chapter 6: Display Processing Keywords

KILLRC

KILLRC specifies that the return code to be sent back to the operating system be overwritten as zero. This keyword is rarely used.

Keyword Examples

KILLRC

KILLRC=NO

KILLSPIE

KILLSPIE=YES specifies that Comparex’s normal abend-intercept handling is to be turned OFF. This keeps the ESPIE macro from being issued.

This option is normally used at the request of Serena Customer Support to gather additional diagnostic information in the event of an error.

LINE

LINE specifies the number of bytes displayed on each line, and the method for that display.

Keyword Format

LINE=({32}[{,HORIZONTAL}]) {nn}[{,HOR} ] [{,ALPHA} ] [{,VERTICAL} ]

[{,VER} ]

For the HORIZONTAL [HOR] parameter, the maximum and minimum line widths have changed. For horizontal hex (dump format), a width of 32 is not forced; the maximum is 48.

The minimum width for any format, is now the length of the largest numeric field, with an overriding minimum of 8. Because a 15-byte zoned number is the largest numeric field allowed, the actual minimum will be in the range of 8 to 15. The line width specified will be increased if necessary to be that actual minimum.

If no FORMAT is specified, the default is FORMAT=x2 unless INTERLEAVE is specified.

If INTERLEAVE is specified, the default is FORMAT=x5 (full SYSUT1 interleaved with differing lines of SYSUT2).

LINE=(nn,ALPHA) generates an alphanumeric line of length nn; the default is 100, but may range from 8 to 175.

LINE=(nn,VERTICAL) generates the DITTO format, with line length nn, where the default is 100, but may range from 8 to 175.

If both LINE and FORMAT are specified, whichever is specified last will control.

0

Page 141: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

Keyword Examples

LINE=80LINE=(32,HOR)LINE=(175,VERTICAL)

LINELIM

The LINELIM keyword specifies the number of lines to print for each displayed record.

You can use LINELIM to reduce your output volume. When you are working with large records and need to detect records that match but are different, LINELIM allows you to print just the amount of lines you need to identify the records.

The default of LINELIM=0 indicates no print truncation will occur. A numeric value indicates truncation and how many lines per record to display. For example, LINELIM=2 would display two print lines for each record.

The LINELIM keyword applies to DATA comparisons only.

Keyword Format

LINELIM={nn}

Keyword Examples

LINELIM=2

MAXDIFF

MAXDIFF specifies the maximum number of differences to be displayed on the difference report. A difference can be two matched records with differing data, or one record that is not matched on the other file (any inserted record under KEY or SEGMENT synchronization, or any extra record on the end of the longer file).

The MAXDIFF value is specified by processing parameter message CPX04I. If Comparex has displayed the specified number of differences, the utility will issue message CPX67I. At that time, if CONTINUE is not specified, Comparex will execute its end-of-job routines; if CONTINUE is specified, Comparex will read and compare records, adding to processing totals, but not printing records on the difference report.

When comparing directory-embedded data sets (such as PDS, Panvalet, or Librarian) and DIRECTORY is not specified, differing DIRECTORY records do not count toward the MAXDIFF limit; only differing records of the member contribute to the MAXDIFF limit.

You should always give a MAXDIFF specification to prevent large printouts if errors occur.

You can specify MAXDIFF = 99999999; even though a larger number (twelve 9’s) is the default, you can specify only eight numeric digits for any keyword.

141

Page 142: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

14

Chapter 6: Display Processing Keywords

Keyword Format

MAXDIFF={999999999999} {nn}

Keyword Examples

MAXDIFF=10

MAXDIFF=(999)

MAXMATCH

MAXMATCH is similar to MAXDIFF in that it counts differences; however MAXMATCH counts only records that synchronize (match) together. It is only applicable to DATA; not to TEXT or DIRECTORY.

A common usage is a DATA compare of huge files that contain many synchronization mismatches and you only want to see the first 500 differences of records that match on a KEY.

Remember that the limit you can specify for MAXMATCH is 99999999. Even though a larger number (twelve 9’s) is the default, you can specify only eight (numeric digits for any keyword.

Keyword Format

MAXMATCH={999999999999} {nn}

Keyword Examples

MAXMATCH=500

MAXMATCH=(99999)

MBRHDR

MBRHDR specifies if Comparex is to display a member header for each member of a directory-embedded data set compare.

Keyword Format

MBRHDR={YES} {NO} {COND}

{MATCH}

MBRHDR=YES (the default) forces a page break and heading to be printed for each member regardless of if there are any differences.

2

Page 143: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

MBRHDR=COND specifies that a page break and member header are to be issued only if there is at least one difference in the two members that synchronized, or if there is a member insertion. If large libraries are compared, and only a few members differ, this abbreviates the difference report considerably.

MBRHDR=NO forces all page breaks off, and all difference reports by member suppressed. Only statistics (by member) are gathered as to how many members differed that synchronized together, and how many inserted members were on each file. Using this option speeds up the overall comparison considerably if large libraries are involved.

If two members synchronize together because their names match, the comparison is abruptly terminated at the first difference. All detail is lost, however, as to which members differed and where.

MBRHDR=MATCH is similar to MBRHDR=COND, except that inserted members are not displayed. Only member names that match and have differences warrant a page break.

Statistics by member are gathered and displayed in all three cases with message CPX78I.

For example, if two directory-embedded data sets contain members:

-SYSUT1- -SYSUT2-MEMBER10 MEMBER10 (identical)MEMBER20 MEMBER15MEMBER30 MEMBER20 (different)MEMBER40 MEMBER40 (identical)

MEMBER50

With MBRHDR=COND, the difference report looks like:

MEMBER15 DIF T W O 2SYSUT1=DSNUT1(MEMBER20),SYSUT2=DSNUT2(MEMBER20) {List of differences within the member}MEMBER30 DIF O N E 3

MEMBER50 DIF O N E 5

With MBRHDR=MATCH, the difference report looks like:

SYSUT1=DSNUT1(MEMBER20),SYSUT2=DSNUT2(MEMBER20)

{List of differences within the member}

NIBBLE

NIBBLE specifies that each half-byte is to be compared and, if different, underscored with the dash character.

For the NIBBLE keyword to be effective, LINE must be set (or defaulted) to (nn,HORIZONTAL), or FORMAT=0y must be used.

If NIBBLE is used, processing parameter message CPX11I will specify NIBBLE.

143

Page 144: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

14

Chapter 6: Display Processing Keywords

NIBBLE may be used only with DATA comparison logic; no bytes are underscored with TEXT comparison logic.

See “FORMAT=02, DECIMAL, NIBBLE (Excerpts)” on page 132 for an example of NIBBLE on the difference report.

PAGE

PAGE specifies the number of print lines on each page. The PAGE value being used is specified by processing parameter message CPX08I.

Keyword Format

PAGE={58} {nn}

The nn value may be between 10 and 99999999. The default value is 58. This number sets the maximum number of lines to be printed on a page.

A low value for PAGE, such as 10, will cause more pages to be printed because Comparex will advance to the top of the page and write the two heading lines (showing time, date, page number, and input file data set names) each time that number of lines has been written.

A high value for PAGE, such as 999999, will eliminate most of the page headings and cause Comparex to print over the fanfold page boundaries, perhaps saving some paper.

Keyword Examples

PAGE=76

PAGE=(999)

PLUS

PLUS specifies the character used as the underscore on the difference report for excess bytes, if the record from SYSUT2 is longer than the record from SYSUT1.

The plus character also is used as the surrounding character if FRAME is specified with TEXT processing.

Keyword Format

PLUS={C'+'} {t'vv'}

The plus value being used is specified by processing parameter message CPX11I. In addition, the plus character is shown immediately to the right of the word ‘DIFFERENCE.’ At the end of processing, Comparex shows a count of excess bytes underscored as the second figure in message CPX74I.

4

Page 145: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

The default value is a plus character. You may specify any other character or hexadecimal value. If character data is given, only one value is used (such as C‘*’); if hexadecimal data is given, two values are used (such as X‘4F’).

Excess bytes are not underscored with TEXT processing logic.

The excess bytes are underscored with the plus character on both the left-hand (hexadecimal) portion of the report and the right-hand (alphanumeric) portion of the report.

Comparex will accept any value given; you need only to be certain the value is a printable character.

Keyword Examples

PLUS=C'*'

PLUS=X'5C'

The following example illustrates the use of PLUS=C‘)’ on the difference report.

PLUS and FORMAT=21 (DITTO Format)

DSPL |...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8....+....9....+....0 CPX51I - RECORD NUMBER 1 ON FILE SYSUT1 1 00045678...........>DATA-SYSUT1 012345.......*.... THIS IS THE DATA FOR SYSUT1 ----- O N E FFFFFFFF0000046800B6CCEC6EEEEEF4FFFFFF000001350033444ECCE4CE4ECC4CCEC4CDD4EEEEEF46666644444444444444 O N E 000456780000057C002E4131028243100123450000024C000900038920920385041310669028243100000000000000000000 O N E 101 O N E 44444444444444444444 O N E 00000000000000000000 O N E CPX52I - RECORD NUMBER 1 ON FILE SYSUT2 1 00045688............DATA-SYSUT2 012345.......*.... THIS IS THE DATA FOR SYSUT2 ----- T W O FFFFFFFF0000046800B7CCEC6EEEEEF4FFFFFF000001350033444ECCE4CE4ECC4CCEC4CDD4EEEEEF46666644444444444444 T W O 000456880000058C00284131028243200123450000024C000900038920920385041310669028243200000000000000000000 T W O - - - - - -DIFFERENCE) 101 T W O 444444444444444444444444444444 T W O 000000000000000000000000000000 T W O )))))))))) -DIFFERENCE)

PRINT

PRINT specifies which synchronized MATCHs or MISMATCHs will be printed.

This form of the PRINT keyword may be used with DATA comparison logic or with DIRECTORY (which is a variation on DATA logic). The defaults are MATCH and MISMATCH.

The PRINT parameters being used are specified by processing parameter message CPX05I.

Keyword Format

PRINT={MATCH} {NOMATCH}

145

Page 146: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

14

Chapter 6: Display Processing Keywords

{MISMATCH} {NOMISMATCH} {FULL}

Options

MATCH and NOMATCH are mutually exclusive; MISMATCH and NOMISMATCH are mutually exclusive.

Keyword Examples

PRINT=NOMATCH

PRINT=(MATCH,NOMISMATCH)

PRINT=FULL

UNICODE

Translates UNICODE input into readable format on the alphanumeric section of the difference report.

UNICODE, EBCDIC, and ASCII are mutually exclusive. EBCDIC is the default value.

If UNICODE translation is being used, processing parameter message CPX08I will specify UNICODE.

MATCH If records synchronize together and they do not compare exactly, Comparex will print both records on the difference report, underscoring the differing bytes.

NOMATCH If records synchronize together, Comparex will not print either record on the difference report.

MISMATCH If an out-of-synchronization situation occurs, Comparex will print this record on the difference report.

NOMISMATCH If an out-of-synchronization situation occurs, Comparex will not print this record on the difference report.

FULL All records from SYSUT1 will be printed in context with the differing records. This is not applicable to Random KEYs or CSECT parsing.

6

Page 147: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

COPYFILE TO OUTPUT FILES

7 Comparex lets you copy records from the input files to an output file [SYSUT3] or multiple output files [SYSUT3A through SYSUT3E].

During TEXT comparisons, you can copy only the records that differ, but during DATA comparisons, you can copy the records that either match or differ. You can also generate change control cards (Insert, Delete, and Replace) for your own delta deck processing program.

What you will find in this chapter:

• “Copyfile Keywords” on page 147• “Output Definition SYSUT3” on page 148• “Output Definitions SYSUT3A Through SYSUT3E” on page 149• “Copying Matching Records” on page 161• “Copying Differing Records” on page 150• “Copying Matching and Differing Records Concurrently” on page 162• “Generating Delta Deck Control Cards” on page 156• “Delta Deck Examples” on page 159

COPYFILE KEYWORDS

Keywords Descriptions Pages

SYSUT3 Specifies an optional output file to be written if COPYSAME or COPYDIFF are specified.

Compare types: Data, Text, Directory

148

SYSUT3ASYSUT3BSYSUT3CSYSUT3DSYSUT3E

Specifies optional output files to be written if COPYSPLIT is specified.

Compare type: Data

149

COPYSAME Specifies that matching records are to be copied to the output file [SYSUT3].

Compare type: Data

161

147

Page 148: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

14

Chapter 7: Copyfile to Output Files

OUTPUT DEFINITION SYSUT3

SYSUT3 is a physical sequential data set that contains copies of selected records from SYSUT2. SYSUT3 usually resides on a disk in physical sequential order. Comparex automatically sets the default for the record and block size to 80 and the record format to fixed, unblocked. The SYSUT3 keyword lets you override these data set parameters.

SYSUT3

You can use the SYSUT3 keyword to specify a different data set organization [DSORG] for your output file, such as VSAM or ISAM.

If you specify SYSUT1 as DUMMY, or if the JCL specified a null file for file SYSUT1(//SYSUT1 DD DUMMY), you can also copy all the SYSUT2 records to the output file.

Keyword Format

SYSUT3={QSAM} {ISAM} {[(]VSAM[,PASSWORD=password][)]} {DUMMY}

COPYDIFF Specifies that differing records are to be copied to the output file [SYSUT3].

Compare types: Data, Text, Directory

152

COPYSPLIT Specifies that matching records, differing records, and records considered inserted are copied to various output files [SYSUT3A through SYSUT3E].

Compare type: Data

152

INSERT Specifies control card text for inserted records in delta decks.

Compare type: Text

157

DELETE Specifies control card text for deleted records in delta decks.

Compare type: Text

157

REPLACE Specifies control card text for replaced records in delta decks.

Compare type: Text

158

Keywords Descriptions Pages

8

Page 149: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

OUTPUT DEFINITIONS SYSUT3A THROUGH SYSUT3E

SYSUT3A through SYSUT3E are physical sequential data sets that contain copies of selected records from the original input file SYSUT1 and the modified input file SYSUT2. These output data sets are created when you specify the following:

• The COPYSPLIT keyword. See “Copying Matching and Differing Records Concurrently” on page 162 for more information on COPYSPLIT.

SYSUT3x files in your JCL. The SYSUT3x file data set parameters are usually the same as the SYSUT1 and SYSUT2 parameters. However, when SYSUT1 is different from SYSUT2, the SYSUT3x data set parameters are as follows:

• SYSUT3A - same as SYSUT2 SYSUT3CSYSUT3E

• SYSUT3B - same as SYSUT1SYSUT3D

Note

Any overrides to these SYSUT3x data set parameters, although tolerated, can lead to unexpected results.

SYSUT3A, SYSUT3B, SYSUT3C, SYSUT3D, SYSUT3E

Output to the SYSUT3x files is determined by the following:

• Comparex will write records only to the SYSUT3x files specified in your JCL.

• If you do not want to create certain SYSUT3x files:

— Do not specify the SYSUT3x file in your JCL.

OR

— Specify the SYSUT3x file as a null file (for example, //SYSUT3A DD DUMMY).

• If all five files are missing or nullified, an error return code 16 terminates the job.

Message CPX16A will display for any SYSUT3x file that is missing or nullified and message CPX73A will display a record count of zero (0).

Keyword Format - where ‘x’ can be ‘A’, ‘B’, ‘C, ‘D’, ‘E’

SYSUT3x={{DISK} ,BLKSIZE={80},RECFM={F}[B][,LRECL=nn] {DUMMY}

Keyword Example

SYSUT3A=’somnode.COMPAREX.SPLITA’

149

Page 150: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

15

Chapter 7: Copyfile to Output Files

JCL Execution Example

//SYSUT3A DD DISP=SHR,DSN=hlq.COMPAREX.SPLITA//SYSUT3B DD DISP=SHR,DSN=hlq.COMPAREX.SPLITB//SYSUT3E DD DISP=SHR,DSN=hlq.COMPAREX.SPLITE//SYSIN DD *COPYSPLITDATAKEY=(1,8)

• Comparex will write records to files SYSUT3A, SYSUT3B, and SYSUT3E.

• Files SYSUT3C and SYSUT3D are not used during this Comparex execution.

COPYING DIFFERING RECORDS

The COPYDIFF keyword tells Comparex to copy a record from the modified file (SYSUT2) to the output file (SYSUT3) if the record does not match one in the original file (SYSUT1). COPYDIFF primarily works with DATA and TEXT comparison logic, but you can only specify a format type, such as Panvalet or IEBUPDTE, while doing TEXT processing. You can also use COPYDIFF to compare DIRECTORY entries by selecting MEMBER as the format type. Comparex compares only the member names in the DIRECTORYs and writes differing names to the output file.

Note

The COPYSPLIT keyword can also be used to copy differing records to output files. See “COPYSPLIT” on page 162 for more information.

Identifying Differing Records

Differing records are identified as those records that meet one or more of these tests:

• (DATA) Inserted records on SYSUT2, as determined by KEY or SEGMENT synchronization.

• (DATA) Unequal comparisons, as determined by full record compares, by the use of FIELDs, customizing the Print Difference Report, or Filters.

• (TEXT) Unequal comparisons, as determined by full record compares, by TEXT comparison logic, or Filters.

• Extra records on the end of file SYSUT2.

• All SYSUT2 records, if SYSUT1 is a DUMMY or empty file.

0

Page 151: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

KEY Synchronization Mismatch (DATA)

If at least one KEY has been specified, or if SYSUT1 is either an ISAM or VSAM/KSDS file, KEY synchronization is used. Comparex matches records by KEY, and any record on file SYSUT2 that is unmatched by KEY to a record on file SYSUT1 is identified as differing.

SEGMENT Synchronization Mismatch (DATA)

If at least one segment has been specified, SEGMENT synchronization is used. Comparex matches records by segment, and any record on file SYSUT2 that is unmatched by segment to a record on file SYSUT1 is identified as differing.

Physical Synchronization Mismatch (DATA)

If Comparex has found neither KEY nor SEGMENT keywords, Comparex matches records by same physical-record number synchronization.

Fields Are Differing (DATA)

If field comparison is being done, and any byte in the fields is different on the two records, the SYSUT2 record is identified as differing.

No Fields (DATA)

If DATA file comparison logic is being used, and if field comparison is not being done, and if any byte is different on the synchronized records, the SYSUT2 record is identified as differing.

Impact of Customizing the Print Difference Report on SYSUT3 File (DATA) (TEXT)

• If you tell Comparex to continue processing past MAXDIFF, Comparex prints up to that many differences on the difference report, then continues to compare without printing. It also continues to write differing records from file SYSUT2 to file SYSUT3.

• If you specify the maximum difference to print (MAXDIFF) without specifying to continue processing past MAXDIFF, Comparex stops writing records to SYSUT3 as soon as the MAXDIFF number is reached.

• Otherwise, changing the way you print the difference report does not affect which records are copied to SYSUT3.

The value of the PRINT keyword does not affect the writing of file SYSUT3. For example, if you specify PRINT=NOMISMATCH, Comparex would not print inserted records from the input files onto the difference report.

Any inserted records from file SYSUT2 would still be written to file SYSUT3 if COPYDIFF were specified, because they are differing records.

151

Page 152: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

15

Chapter 7: Copyfile to Output Files

With TEXT Comparison (TEXT)

If TEXT file comparison logic is being used, and any record on file SYSUT2 is not matched exactly to a record on file SYSUT1, that SYSUT2 record is identified as differing.

With Filters (DATA) (TEXT)

If filters are being used and these filters cause some or all of the records from file SYSUT1 to not be sent to the comparison routines, the records from file SYSUT2 to which these SYSUT1 records would otherwise be paired for comparison are identified as differing.

Extra Records on End of SYSUT2 (DATA) (TEXT)

If file SYSUT2 has more records after the end of file SYSUT1, the extra records on file SYSUT2 are identified as differing.

If the SYSUT2 record is longer than its paired SYSUT1 record, and if one or more of the excess bytes on the SYSUT2 record are some value other than hexadecimal zero (X‘00’), the SYSUT2 record is identified as differing (barring FIELD or MASK keywords).

All SYSUT2 Records If SYSUT1 Is a DUMMY or Empty File(DATA) (TEXT)

This is an excellent way to unload a database to a flat file.

Example: Create a SYSUT3 file whose records are selected by account number criteria

Note

To create a test file of selected records where account number contains the set of digits ‘06’ in the first byte and ‘5’ in the third byte, use these keywords:

SYSUT1=DUMMY /* SYSUT1 is DUMMY, SYSUT2 points to file */ COPYDIFF /* Write selected records to SYSUT3 */ MAXDIFF=0,CONTINUE /* No need to print the data */ WILDCARD=C'*' /* Reset Wildcard character */ FILTERIN=(9,EQ,X'06**5*') /* Select specific set */

COPYDIFF

COPYDIFF specifies that differing, not matching, records from the original file (SYSUT1) as compared to records from the modified file (SYSUT2) are written to the copyfile (SYSUT3). Primarily, COPYDIFF works with DATA and TEXT comparison logic, but you can specify only a format type, such as Panvalet or IEBUPDTE, while doing TEXT processing.

COPYDIFF can also work with DIRECTORY by selecting MEMBER as a format type to write only the member names of directories to the output file (SYSUT3).

2

Page 153: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

Before being written to SYSUT3, differing text records are preceded by a formatted change control record. Subsequent input of this SYSUT3 file (delta deck) into the proprietary library management software creates an audit trail of the changes.

If COPYDIFF and SYSUT1=DUMMY are specified, or if SYSUT1 points to a null file, all records on SYSUT2 that pass any filter-type tests are written to SYSUT3. SYSUT3 must be QSAM, VSAM, ISAM, or DUMMY. If COPYDIFF is specified and SYSUT3=DUMMY, Comparex issues message CPX16A - “SYSUT3 COPY FILE MISSING, INVALID, OR DUMMY - COPYDIFF NULLIFIED” with a return code of 4, and continues processing.

The SYSUT3 data set attributes are specified through JCL.

Keyword Format

COPYDIFF [= {OTH} ] [= {IEBUPDTE}][,SEQFLD='ddl[,ddl]'[)] [= {MEMBER} ] [= [,FormatType=][,STAMP=][,VERS=][,PASS=][,TEMP=][,RESEQ=]]

Options for GEM, ChangeMan ZMF, Panvalet, and Librarian,

Parameter keyword abbreviations are underscored in the table heading. Default parameter options are underscored in the table.

COPYDIFF Format Options

The format type you specify changes how information is defined as differing, and what is written to the output file [SYSUT3].

• To generate the change control cards for your proprietary delta deck program, specify OTH.

• If you want the SYSUT3 file to be formatted for IEBUPDATE, specify IEBUPDTE.

• (DIR) To copy only member names to SYSUT3, specify MEMBER.

Format Time STAMP

VERSion PASSword TEMPorary RESEQuence

PAN NO|YES NO|YES|

YESHHMM

NO|YES|

YYYYMMDD

NO|YES

LIB NO|YES NO|YES|

YESHHMM

NO|YES NO|YES|

YYYYMMDD

NO|YES

ChangeMan ZMF

NO|YES NO|YES|

YESHHMM

NO|YES|

YYYYMMDD

NO|YES

GEM NO|YES NO|YES|

YESHHMM

NO|YES|

YYYYMMDD

NO|YES

153

Page 154: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

15

Chapter 7: Copyfile to Output Files

• (TEXT) In a ChangeMan ZMF, GEM, Panvalet, or Librarian SYSUT3 file, you can specify if:

— a time stamp appears (and its format).

— the version date and time appears and its format.

— the member’s password appears.

— the change to the library or member is permanent or temporary.

— the members will be renumbered if the delta deck is applied.

Other Format Type

To generate the INSERT, DELETE, and REPLACE change control cards for your proprietary delta deck program, specify OTH, which is formatted for an unspecified vendor.

MEMBER Format Type [DIR]

To copy only the member names of the two directory-embedded data sets to SYSUT3, specify DIR, then COPYDIFF=MEMBER.

ChangeMan ZMF (TEXT), GEM, Panvalet, or Librarian Format Types

The following format types are available when using COPYDIFF with (TEXT) In a ChangeMan ZMF, GEM, Panvalet or Librarian SYSUT3 file.

You can specify if:

• a time stamp appears (and its format).

• the version date and time appears and its format.

• the member’s password appears.

• the change to the library or member is permanent or temporary.

• the members will be renumbered if the delta deck is applied.

Date and Time (STAMP)

STAMP=NO is the default.

STAMP=YES means that a date/time stamp will be placed in columns 73 through 80 of each output record in the format yymmddhh. For a Year 2000 compliant date stamp, use STAMP=YYYYMMDD (format YYYYMMDD).

It can be used with the IEBUPDTE option only if the SEQFLD does not “touch” any columns beyond 72.

4

Page 155: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

Generate Version, Month, and Day (VERS)

VERS=YES is the default. It only has applicability under Librarian. VERS=YES means that the month and day (mmdd) will be generated in the format:

-SEL member,VERS=mmdd

VERS=YESHHMM means that the month, day, hour, and minute will be generated in the format:

-SEL member,VERS=mmddhhmm

Member Password (PASS)

PASS=YES is the default. It is applicable to Librarian only.

PASS=YES means that the password for the member will be generated in the format:

-SEL member,pass

Make Change Temporarily (TEMP)

TEMP=NO is the default. It is applicable to Panvalet, Librarian, GEM, and ChangeMan ZMF.

TEMP=YES means that the change applied to the member selection format card image is taken temporarily, not permanently:

-SEL member,pass,VERS=mmdd,TEMP

or

++UPDATE member,3,TEMP

or

-UPDATE member,TEMP

or

<UPDATE member,TEMP>

Resequence the Members (RESEQ)

RESEQ=NO is the default. It is valid only for Librarian or GEM.

RESEQ=YES means that the member will be renumbered if the delta deck is used.

Here are some examples of proper syntax for specifying the RESEQ option to COPYDIFF:

COPYDIFF=(LIB,TEMP=YES,VERS=NO,STAMP=YES) COPYDIFF=(LIB,RESEQ=NO) COPYDIFF=(GEM,RESEQ=YES)

The SYSUT3 file generated might have the header record for each updated member look like this:

155

Page 156: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

15

Chapter 7: Copyfile to Output Files

-SEL libmembr,pass,RESEQ

-UPDATE gemmember,NUM

IEBUPDTE Format Type

Be careful when using the IEBUPDTE option. If the SYSUT1 member does not have sequence numbers in a format recognizable by IEBUPDTE, an abend in Comparex is likely. Furthermore, it is not possible to create an accurate delta deck with the IEBUPDTE option if the second data set has records inserted at the beginning (when compared to the first data set).

SEQFLD=738 is the default. The rules for this are similar to those for IEBUPDTE.

Here are the rules for specifying SEQFLD in the form SEQFLD='ddl,ddl':

• dd must be a two-digit numeric in the range 01 to 78.

• l must be a one-digit numeric in the range 3 to 8.

• The sum of dd and l cannot exceed 81.

• If two are specified, the dd of the second must be at least as large as the first.

If sequence numbers are missing or otherwise invalid, a S0C7 type error can occur, resulting in program termination and message CPX97A (or an abend, if KILLSPIE was specified).

Keyword Examples

COPYDIFF COPYDIFF=PAN COPYDIFF=(LIB,VERS=NO,PASS=NO) COPYDIFF=(GEM,STAMP=YES,RESEQ=YES) COPYDIFF=(IEBUPDTE,SEQFLD='738,783') COPYDIFF=CMN /* ChangeMan ZMF format */

GENERATING DELTA DECK CONTROL CARDS

This generates the change control cards for your proprietary delta deck program. Any records that are not on the modified file (SYSUT2) and that are on the original file (SYSUT1), create Delete cards in the delta deck.

If they are on the modified file and not on the original file, then they create Add cards in the delta deck.

If they are on both, but different, they create Replace cards in the delta deck.

You can only insert, replace, or delete records when you specify a format type of OTHER or MEMBER.

6

Page 157: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

INSERT

INSERT specifies the text to be inserted on the Insert control card for the delta deck in your proprietary delta deck program. You must specify a format type of COPYDIFF=OTHer or COPYDIFF=MEMBER.

If you do not select OTHER or MEMBER as the format type, these values are set:

Keyword Format

INSERT={C'xxx'}

{xxx}

Keyword Examples

COPYDIFF=OTH,INSERT=C'/ INS '

COPYDIFF=OTH,INSERT=PUT-HERE

DELETE

You can specify the text for the Delete control card in your proprietary delta deck program. You must specify a format type of COPYDIFF=OTHer or COPYDIFF=MEMBER.

If you select any format type other than OTHER or MEMBER, these values are set:

If COPYDIFF = Then INSERT =

PAN ++C is set

LIB -INS is set

CMN <> is set

GEM INS is set

IEBUPDTE NUMBER is set

MEMBER ? is the default

If COPYDIFF = Then DELETE =

PAN ++C is set

LIB -DEL is set

CMN <> is set

GEM DEL is set

157

Page 158: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

15

Chapter 7: Copyfile to Output Files

Keyword Format

DELETE={C'xxx'}

{xxx}

Keyword Examples

COPYDIFF=OTH,DELETE=C'/ DEL '

COPYDIFF=OTH,DELETE=DEL-HERE

REPLACE

You can specify the text for the Replace control card in your proprietary delta deck program. You must specify a format type of COPYDIFF=OTHer or COPYDIFF=MEMBER.

If you select any format type other than OTHER or MEMBER, these values are set.

Keyword Format

REPLACE={C'xxx'}

{xxx}

Keyword Examples

COPYDIFF=OTH,REPLACE=C'/ REP '

COPYDIFF=OTH,REPLACE=REP-HERE

IEBUPDTE ./DELETE is set

MEMBER ? is the default

If COPYDIFF = Then REPLACE =

PAN ++C is set

LIB -REP is set

CMN <> is set

GEM REP is set

IEBUPDTE CHANGE is set

MEMBER ? is the default

If COPYDIFF = Then DELETE =

8

Page 159: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

DELTA DECK EXAMPLES

If you compare the TEXT files (see “TEXT Examples” on page 47“), and specify COPYDIFF with various options, the delta decks created would resemble the following:

Example 1: COPYDIFF=(PAN,STAMP=NO,TEMP=YES)

++UPDATE membername,1,TEMP++C 21,21002100 02 ONLY-REST-OF-REC. 00002100002200 05 ONLY-DISP PIC XXX. 00002200002300 05 ONLY-UNIT PIC X(8). 00002300002400 05 ONLY-VOL PIC X(6). 00002400002500 05 FILLER PIC X(83). 00002500++C 38,38++C 46,46004900 MOVE ZERO TO RETURN-CODE 00004900

Example 2: COPYDIFF=(LIB,VERS=YESHHMM,STAMP=NO)

-SEL member,pass,VERS=07311659-REP 2100002100 02 ONLY-REST-OF-REC. 00002100002200 05 ONLY-DISP PIC XXX. 00002200002300 05 ONLY-UNIT PIC X(8). 00002300002400 05 ONLY-VOL PIC X(6). 00002400002500 05 FILLER PIC X(83). 00002500-DEL 3800-REP 4600004900 MOVE ZERO TO RETURN-CODE 00004900-EMOD-END

159

Page 160: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

16

Chapter 7: Copyfile to Output Files

Example 3: COPYDIFF=(GEM,PASS=NO,STAMP=YES,RESEQ=YES)

- UPDATE member,VERS=0731,RESEQ 87101513- REP 2100 87101513002100 02 ONLY-REST-OF-REC. 87101513002200 05 ONLY-DISP PIC XXX. 87101513002300 05 ONLY-UNIT PIC X(8). 87101513002400 05 ONLY-VOL PIC X(6). 87101513002500 05 FILLER PIC X(83). 87101513- DEL 3800 87101513- REP 4600 87101513004900 MOVE ZERO TO RETURN-CODE 87101513

Example 4: COPYDIFF=IEBUPDTE

./CPX CHANGE NAME=member,SEQFLD=(738,738)002100 02 ONLY-REST-OF-REC. 00002100002200 05 ONLY-DISP PIC XXX. 00002101002300 05 ONLY-UNIT PIC X(8). 00002102002400 05 ONLY-VOL PIC X(6). 00002103002500 05 FILLER PIC X(83). 00002104./CPX DELETE SEQ1=3800,SEQ2=3800004900 MOVE ZERO TO RETURN-CODE 00004600

Example 5: COPYDIFF=(CMN,STAMP=YES,TEMP=YES)

<UPDATE member,TEMP><*STAMP 2006/04/15;15:59:59 SATURDAY APRIL 15, 2006><21,21>

0

Page 161: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

002100 02 ONLY-REST-OF-REC. 94020115002200 05 ONLY-DISP PIC XXX. 94020115002300 05 ONLY-UNIT PIC X(8). 94020115002400 05 ONLY-VOL PIC X(6). 94020115002500 05 FILLER PIC X(83). 94020115<38,38><46,46>004900 MOVE ZERO TO RETURN-CODE 94020115

COPYING MATCHING RECORDS

The COPYSAME keyword tells Comparex to copy a record from the modified file [SYSUT2] to the output file [SYSUT3] if the record matches one in the original file [SYSUT1]. COPYSAME only works with DATA comparisons.

Note

The COPYSPLIT keyword can also be used to copy matching records to output files. See “COPYSPLIT” on page 162 for more information.

COPYSAME

If you specify COPYSAME, all equal records from modified file (SYSUT2) as compared to records from original file [SYSUT1] are written to the output file [SYSUT3]. After the output file [SYSUT3] is successfully opened, Comparex issues message CPX16I to display the SYSUT3 data set name and attributes.

Keyword Format

COPYSAME

Keyword Example ‘

COPYSAME

End-of-Job Record Count

Comparex shows the number of records written to SYSUT3 with message CPX75I at the end of processing.

161

Page 162: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

16

Chapter 7: Copyfile to Output Files

If Comparex opens file SYSUT3 but no records were written to the file, Comparex closes the file and shows the record count of zero for file SYSUT3 with message CPX75I.

If Comparex is unable to open file SYSUT3, the record count is blank in message CPX75I.

COPYING MATCHING AND DIFFERING RECORDS CONCURRENTLY

You can use the COPYSPLIT keyword to copy both matching and differing records to output files during a single execution of Comparex. The COPYSPLIT keyword tells Comparex to copy records to output files in the following situations:

All of the output files are optional. They may be omitted or allocated as DUMMY. Records are only written to those files specified in your JCL. See “Output Definitions SYSUT3A Through SYSUT3E” on page 149 for information on specifying these files.

COPYSPLIT only works with DATA comparisons.

Note

COPYSPLIT works optimally when a KEY is specified. If KEY is not specified, Comparex will not know how to match the records.

COPYSPLIT

If you specify COPYSPLIT, Comparex will write to up to five different output files.

WRITE TO OUTPUT FILE

FROM CONDITION WHEN

SYSUT3A Modified File SYSUT2

Match The record matches one in the original file SYSUT1

SYSUT3B Original File SYSUT1

Difference The record is different from the modified file SYSUT2

SYSUT3C Modified File SYSUT2

Difference The record is different from the original file SYSUT1

SYSUT3D Original File SYSUT1

Insert The record is inserted in the original file SYSUT1

SYSUT3E Modified File SYSUT2

Insert The record is inserted in the modified file SYSUT2

2

Page 163: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

After the output files [SYSUT3A through SYSUT3E] are successfully opened, Comparex issues message CPX16I to display the SYSUT3x data set names and attributes. If Comparex is unable to open any of the files, the message CPX16A is displayed indicating the file was missing, invalid, or specified as DUMMY.

Keyword Format

COPYSPLIT

Keyword Example

COPYSPLIT

End-of-Job Record Count

Comparex shows the number of records written to the SYSUT3x files with message CPX73I at the end of processing.

If Comparex is unable to open a SYSUT3x file, the record count is zero for the file in message CPX73I.

163

Page 164: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

16

Chapter 7: Copyfile to Output Files

4

Page 165: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

USING COMPAREX INTERACTIVELY

8 ISPF INTERFACE

The ISPF interface to Comparex allows the TSO/ISPF user to enter interactive comparison requests for common file types (sequential, PDS, VSAM, and ISAM), for DB2 relational database tables, and for widely used library management systems such as CA-Panvalet and CA-Librarian.

The ISPF interface consists of:

• Load library containing modules CPX$ISPF and CPXPARSE

• Panel library

• Messages library

• CLIST library (for the installation process)

• SYSGENlibrary (for the installation process)

• Table library

ACCESSING INTERACTIVE COMPAREX FUNCTIONS

The ISPF interface to Comparex is panel-driven. It is accessed from your primary TSO/ISPF panel (ISR@PRIM) either directly from a Comparex menu option, or indirectly from an option on the ISPF Vendor menu. The precise option sequence depends on how the ISPF interface to Comparex was installed at your site.

Comparex Primary Menu

The Comparex/ISPF Primary Menu (panel CPX@PRIM) lists the Comparex functions available in interactive mode. Menu options are selected by typing the menu option number or letter at the Option ==> prompt and pressing ENTER. TSO commands may also be entered at this prompt anywhere in the Comparex ISPF interface except the Help facility.

NOTE Some database systems like IDMS and DL/1 are beyond the scope of the ISPF interface, as they have too many exotic requirements such as special DD cards. The Comparex batch interface can be used to process these files.

165

Page 166: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

16

Chapter 8: Using Comparex Interactively

The ISPF Primary Menu options have the following functions:

CPX@PRIM ---------------------- COMPAREX/ISPF Primary Menu -------------------------- Option ===> PROFILE: xxxx PVT* 0 - SHORT CUT - Single screen for options and data set names (recommended) 1 - OPTIONS - Specify compare options for this session 2 - FILES - Specify data set names or files to be compared 3 - SAVE - Save options profile for future sessions 4 - LOAD - Select/Delete options profile from prior session(s) 5 - CLEAR - Clear previously loaded profile 6 - FOREGROUND - Invoke SERENA COMPAREX in the foreground and wait 7 - BACKGROUND - Invoke SERENA COMPAREX as a submitted batch job 8 - BACKGROUND - Similar to above but edit job (and optionally SUBMIT) 9 - PARSE - Parse COBOL Copylib for keyword assistance M - M+R - Invoke Merge+Reconcile X - EXIT - Exit Press HELP KEY for tutorial assistance at any point Enter END command to terminate SERENA COMPAREX/ISPF

0 - Short Cut Requests the shortcut panel (CPXSHORT), which prompts you for the most commonly used comparison parameters. The shortcut panel also accepts free-format keywords for options that apply to both input files. This is the recommended option for quickly specifying the majority of interactive file comparisons. Use it as an alternative to Options 1, 2, and 9.

1 - Options Specify comparison options for both input files using multiple panels that prompt you for the full range of Comparex options. Use this option for complex comparisons or when becoming familiar with new functions.

2 - Files Specify dataset names (for native z/OS sequential files, ISAM or VSAM files, or PDS and PDSE datasets) or path and file names (for z/OS Unix Hierarchical File System files) of the input files to be compared. Use this option for complex comparisons or when becoming familiar with new functions.

3 - Save Save the comparison options currently in effect to an option profile for reuse in another session.

4 - Load Load a previously saved option profile for reuse.

5 - Clear Clear a previously loaded option profile.

6 - Foreground Executes the currently specified comparison job in the foreground.

7 - Background Submits the currently specified comparison job for background execution.

8 - Background Generates the control statements for the current comparison job, then presents them for review and editing. Optionally submits the edited job for background execution.

9 - Parse Invokes the copylib parser, which provides interactive assistance with FIELD, MASK, IDENTITY, KEY, FILTER, and DESEN keywords for files associated with a COBOL, Assembler, or PL/I copybook layout. (See Chapter 9, “Copybook and Copylib Assisted Comparisons”.)

M - M+R Invoke Merge+Reconcile option. (Appears only if option is installed.)

X - Exit Exit Comparex.

6

Page 167: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

Interactive Workflow

In general, the your work in the ISPF interface to Comparex proceeds as follows:

1. Specify the files to be compared and the comparison options to be used, using one of the following methods:

• Option 0 - Short Cut lets you specify two input files and basic comparison options on one panel. Free-format keywords may be specfied from memory, but there is no prompting for these. Use this option with most common comparisons.

= OR =

• Option 1 - Options presents a set of subpanels for selecting global comparison options that apply to both input files. Prompts are provided for all keyword options.

• Option 2 - Files presents subpanels for identifying the files or directories to be compared and for specifying file-level comparison options, such as character encoding differences. Prompts are provided for all keyword options.

• Option 9 - Parse invokes the COPYLIB parser, which uses a pre-existing COBOL, Assembler, or PL/I COPYLIB layout to assist you in interactively specifying field-level or byte-level comparison options for one or both input files.

2. Save your comparison options in a named profile for later reuse using Option 3 - Save.

3. Run your comparison job, using one of the following methods:

• Option 6 - Foreground executes the comparison job in the foreground and displays the results on screen. This is the prefered method for well-tested comparison specifications that don’t need verification or editing and for small files that will not tie up your terminal for a long time.

= OR =

• Option 7 - Background immediately submits the comparison job for execution in the background and spools the output to SYSPRINT. Recommended for well-tested comparison specifications that don’t need verification or editing and for large files or complex comparison jobs that would tie up your terminal unacceptably.

= OR =

• Option 8 - Background presents the Comparex specifications generated from your entries and allows you to edit them as needed. After review and editing, you may optionally submit the comparison job for execution in the background. Recommended for testing new functionality and complex comparison specifications.

4. Exit Comparex.

Keyword Support

The interactive interface to Comparex supports the same native keywords that are enabled for the batch interface. This includes free-format global keywords, file-level keywords, and field-level or byte-level keywords within a file or dataset. However, with only a few exceptions for CA-Panvalet and CA-Librarian, keywords specific to third-party library managers and

167

Page 168: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

16

Chapter 8: Using Comparex Interactively

databases are managed through the batch CPXIFACE customization interface and are not supported interactively.

Native interactive support for DB2, including free-format SQL specifications for both SYSUT1 and SYSUT2 input files, is discussed in a separate chapter.

USING OPTION PROFILES

Option profiles allow you to save comparison parameters from one session to another. Use Comparex/ISPF Primary Menu options 3 - Save and 4 - Load and to save and reuse option profiles. Comparex maintains its own profiles, which may be private or shared. Users may also save their Comparex options to and load them from their ISPPROF ISPF profile if desired.

Most panels show the current profile name in the top right section of the screen, along with PVT for a private profile and COM for a common or shared profile. An asterisk indicates that the profile has been changed, and that it must be saved to avoid losing those changes.

Save an Option Profile

Profiles are saved using panel CPXPRSAV (option 3 from the Primary Option menu). The profile name must be one to four alphanumeric characters, the first of which must be alphabetic. If you have previously loaded a profile, that name and associated comment will be displayed here. Comments are strongly recommended.

If you have never loaded or saved a profile, the name and comment fields will be blank. An overlay warning will alert users if a profile is about to be changed. Once you have supplied a profile name and comment and pressed Enter, you will be returned to the Primary Menu. The COB Saved message will be displayed in the upper-right corner (short message area).

ISPF Panel CPXPRSAV

CPXPRSAV ----------------- Save Comparison Profile ----------------------------Command===> CURRENT Profile: xxxx COM*

To save as private profile:PROFILE NAME ===> (Profile Name, 1-4 alphanumerics)COMMENTS ===>

To save as common profile inPROFILE ===> (Profile Name, 1-4 alphanumerics)COMMENTS ===>

Press ENTER to continue; Enter END Command to exit

8

Page 169: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

Load a Previously Saved Option Profile

To retrieve (load) or delete a previously-saved profile, select option 4, ‘Select/Delete Existing Profile’ from the Primary Menu. Panel CPXPRLOD will be displayed. Only one previously-saved profile can be selected at a time from the accumulated list; however, as many profiles as needed can be deleted.

ISPF Panel CPXPRLOD

Create a Shared Profile

Profiles can be shared between multiple users. The common profile data set is a pre-allocated FB/80/3120 PDS. The data set name is specified on panel CPXOPHLQ (option 2.4) as shown in the following figure. An overlay warning alerts you if a profile is about to be changed. Comparex saves the current profile and prevents it from being lost if a session times out.

ISPF Panel CPXOPHLQ

To copy a private profile to a shared one, or vice-versa, load that profile from the one profile pool then save it again into the other profile pool.

Comparex saves the current profile and prevents it from being lost if a session times out.

CPXPRLOD --------------- Save/Delete Existing Profile -----------------------Command===> Scroll===> PAGEPress ENTER to continue; Enter END Command to exit. Profile: xxxx PVT SEL. PRIVATE PROFILE LAST CHANGED ------------ C O M M E N T S -------------S/D /COMMON NAME DATE TIME’’’’ PVT ABC0 2006/04/15 19:28 test profile

CPXOPHLQ ----- High-Level Qualifier And Common Profile Data Set -----Command ===>

HIGH-LEVEL QUALIFIER ===> WSER65 (for foreground compares: for SYSPRINT data set) (for background compares: for .CNTL data set for JCL) COMMON PROFILE DATA SET ===> (for sharing compare profiles among users)

Press ENTER to register and stay; Enter END command to register and exit.

169

Page 170: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

17

Chapter 8: Using Comparex Interactively

EXAMPLE ISPF SESSIONS

For the descriptions that follow, we will compare:

• DATA files - ABC.DATA.FILE1 versus ABC.DATA.FILE2

• TEXT files - ABC.TEXT.PDS(COB904AB) versus ABC.TEXT.PDS2(COB904AB)

• DIRECTORY-embedded files - SYS2.PANVALET.MASTER versus ABC.PDS in these fashions:

— Option 6 - Foreground

— Option 0 - Short Cut

— Option 7 - Background Submit

— Option 8 - Background (edit before submit)

— Option 9 - COBOL Copylib parsing

DATA Comparison in Foreground

Pick the options you want to use by entering 1 at:

Option ===> 1

Now, the ISPF Panel CPXOPDTO is displayed asking you to decide between DATA, TEXT, and free-form keywords.

DATA and TEXT are mutually exclusive. The third option (free-form keywords) allows you to specify DATA or TEXT and all of the associated keywords in native format. So, let’s assume we want to make a DATA comparison. Enter 1 at:

Option ===> 1

---------------------------- DATA/TEXT Decision ------------------------------- Option ===> _

1 - DATA Comparison 2 - TEXT Comparison 3 - Enter free-form keywords

NOTE - The options created in this particular session may be saved for future sessions by returning to the primary menu screen and using the Save option (3).

Press Enter to continue, or press End to exit.

0

Page 171: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

Now, the ISPF Panel CPXOPDAT is displayed asking you to further clarify how to compare these DATA files.

All we know about these files is that there is a KEY in byte positions 6 through 19 (relative to one, because MODE=SYSTEMS has not been specified). Because we do not want a runaway compare at the first inserted record, we must specify some kind of KEY Synchronization to isolate any inserted/deleted records, get back in sync, and continue on. We do this by entering 2 at:

Option ===> 2

Now, the ISPF Panel CPXOPSYK displays allowing you specify the synchronizing KEY (up to five may be specified).

Because the KEY is in the same position in both files, we don’t have to bother with the fields under KEY TWO.

The displacement is 6 and the length is 14 (bytes 6 through 19 inclusive).

The default format is C (character) but the key itself could be combinations of packed, zoned, binary, and character data.

The sequence is A (ascending) and could have been left blank, because that is the default.

-------------------------- DATA Processing Options ---------------------------- Option ===> _

1 - Input processing (FIELD MASK FILTER IDENTITY DESEN and Other) 2 - KEY Synchronization 3 - SEGMENT Synchronization 4 - Display processing (FORMAT MAXDIFF CASE PAGE LINE etc.) 5 - Output processing (COPYDIFF or COPYSAME) 6 - Enter free-form keywords

Press Enter to continue, or press End to exit.

----------------------- DATA Synchronization by Key ------------------------- Command ===> _ Profile: xxxx COM*

----------KEY ONE----------- SEQUENCE -----------KEY TWO----------- DISPLACEMENT LENGTH FORMAT A/D/R DISPLACEMENT LENGTH FORMAT 6______ 14____ c_____ a_____ _______ ______ ______ _______ ______ ______ ______ _______ ______ ______ _______ ______ ______ ______ _______ ______ ______ _______ ______ ______ ______ _______ ______ ______ _______ ______ ______ ______ _______ ______ ______

Press Enter to register and stay, or press End to register and exit.

171

Page 172: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

17

Chapter 8: Using Comparex Interactively

At this point, we should press Enter to register what we have specified (otherwise, it is possible to pass dialog variables containing garbage into module CPX$ISPF which might abend later). After registering the specifications, issue the

End (PF3) command

or

Return (PF4) command

Repeatedly pressing (PF3) retraces your steps back through the panels just visited. A quicker way, however, is to issue the Return command either explicitly, or with a PF key. In this case, you will return directly to ISPF Panel CPX@PRIM. You can also jump into the ISPF Panel CPXOPSYK by typing:

Option ===> =1.1.2

then pressing either End or Return to take you back to your starting point. Assuming that you return to ISPF Panel CPX@PRIM, you can:

Specify the data set names using Option 2, then invoke Comparex

or

Invoke Comparex in the Foreground, using Option 6, and be prompted for the data set names.

Let’s assume that no data set names have been left over from any prior sessions (otherwise, you could have used Option 5 to clear out previous selections first), and invoke Comparex in the foreground like this:

Option ===> 6

Now ISPF panel CPXOPDS1 is displayed, requesting that you type a data set, file, or table name for SYSUT1.

CPXOPDS1 --------------------- File One (SYSUT1) ----------------------------- Command ===> Profile: xxxx PVT* ISPF LIBRARY: PROJECT ===> LIBRARY ===> TYPE ===> MEMBER ===> DATA SET PASSWORD ===> (If Protected) OTHER PARTITIONED or SEQUENTIAL DATASET or z/OS UNIX file: DATASET NAME ===> + VOLUME SERIAL ===> (If Not Cataloged) UNIT ===> (If Not Cataloged) CCSID ===>

TYPE OF DATA SET ===> (COMPAREX Interface Only) 1 - PANVALET 2 - LIBRARIAN/GEM 3 - OTHER PROPRIETARY LIBRARY/DBMS MEMBER NAME ===> (16 Character Member Name) INCLUDES ===> NO (YES or NO - Expand Includes) LEVEL ===> 0 (Librarian Only - Archie Level) PARAMETER ===> ('Parameter Data' for CPXIFACE) Press ENTER to register and stay; enter END command to register and exit.

2

Page 173: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

A native z/OS data set name can be specified using three nodes in regular ISPF nomenclature, as follows:

ISPF LIBRARY: PROJECT ===> abc_____ LIBRARY ===> data____ TYPE ===> file1___

MEMBER ===> ________

To specify a z/OS Hierarchical File System (HFS) file, enter the full path and file name in the Dataset Name field under Other Partitioned or Sequential Data Set. For example:

OTHER PARTITIONED or SEQUENTIAL DATASET or z/OS UNIX file: DATASET NAME ===> /u/userid/abc/data/file1

Click the plus sign (+) at right if more space is needed to enter the complete path and file name. The total path plus file name may not exceed 1024 characters interactively, or 256 characters in JCL/REXX.

To specify a particular character encoding for this file, type an IBM-standard numeric Character Code Set Identifier (CCSID) in the CCSID field. ASCII, EBCDIC, and UNICODE character encodings are all supported. For example:

CCSID ===> 01200___

A CCSID value of 01200 specifies that the UTF-16 Big Endian variant of Unicode should be used with the named file. Other common CCSID codes include 01140 for EBCDIC English with dollar and euro currency symbols and 00437 for 8-bit ASCII with MS-DOS special characters. A more complete list of CCSIDs appears in the table on page 94. It is the user’s responsibility to ensure that you are using the correct CCSIDs for your installation.

Press ENTER. Assuming that the dataset or file exists (that is, it is cataloged on an accessible disk pack), the file for SYSUT1 is allocated.

When panel CPXOPDS2 is displayed, enter a data set name for SYSUT2 similarly.

CPXOPDS2 --------------------- File Two (SYSUT2) ----------------------------- Command ===> Profile: xxxx PVT* ISPF LIBRARY: PROJECT ===> LIBRARY ===> TYPE ===> MEMBER ===> DATA SET PASSWORD ===> (If Protected) OTHER PARTITIONED or SEQUENTIAL DATASET or z/OS UNIX file: DATASET NAME ===> + VOLUME SERIAL ===> (If Not Cataloged) UNIT ===> (If Not Cataloged) CCSID ===>

TYPE OF DATA SET ===> (COMPAREX Interface Only) 1 - PANVALET 2 - LIBRARIAN/GEM 3 - OTHER PROPRIETARY LIBRARY/DBMS MEMBER NAME ===> (16 Character Member Name) INCLUDES ===> NO (YES or NO - Expand Includes) LEVEL ===> 0 (Librarian Only - Archie Level) PARAMETER ===> ('Parameter Data' for CPXIFACE) Press ENTER to register and stay; enter END command to register and exit.

173

Page 174: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

17

Chapter 8: Using Comparex Interactively

This time you will enter the data set name in the OTHER data set name area and intentionally generate an error this way:

OTHER PARTITIONED OR SEQUENTIAL DATA SET:

DATA SET NAME ===> 'abc.data.garbage'________________

and press Enter. Assuming that this data set does not exist, you will receive a prompting message in the upper right corner of the panel:

... File Two (SYSUT2) --------- DSN not Cataloged

The data set name you entered has been raised to uppercase and you may now overtype part of it to correct it this way:

OTHER PARTITIONED OR SEQUENTIAL DATA SET:

DATA SET NAME ===> 'ABC.DATA.file2'__________________

then press Enter.

Assuming that this data set exists, you will now invoke Comparex in our region and await its completion. In the meantime, the following screen is displayed:

When Comparex finishes comparing the two data sets, the difference report is presented for browsing. At this point, we are under program (CPX$ISPF) control - not panel control. Do not enter the Return command now. When you are finished scrolling (up and down, left and right) through the difference report, press (PF3).

-------------------------------- In Progress ----------------------------------

Your screen is locked - please wait

Date: 06/04/15 Time: 13:21

COMPAREX is now running in the foreground Difference Report will be browsed momentarily

Press Enter to register and stay, or press End to register and exit.

4

Page 175: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

The following screen is displayed prompting for a disposition of the dynamically allocated SYSPRINT file.(ISPF Panel CPXREPRT)

The default is to keep the data set. You will override that disposition to Print and Delete it so you can clean up, like this:

REPORT DISPOSITION ===> pd (P=Print) (K=Keep) (D=Delete) (PD=Print and delete) (JD=Submit a job to print and delete) (JK=Submit a job to print and keep) LOCAL PRINTER ID

(Or Print Class) ===> site10__ (For Print option)

Now press Enter. Whatever TSO command has been generated at install time is invoked to route the difference report to a local (site 10) printer.

Upon return to ISPF panel CPX@PRIM, a short message will be issued at the top right corner stating that the difference report has been printed and deleted. Entering the Help command (usually PF1) gives this long ISPF message:

Report youruserID.CPXyyddd.Thhmmsst.OUTLIST printed and deleted

“youruserID” can be changed to any other valid prefix using the CPXOPHLQ panel (see “ISPF Panel CPXOPHLQ” on page 169).

The data set name model (the part before .OUTLIST) has an existing internal limitation of 32 bytes. Therefore, “Thhmmsst” may get truncated to Thhmmss, Thhmms, or Thhmm (but no shorter). This still results in a valid data set name.

------------------------- Specify Report Disposition ------------------------ Command ===>

DIFFERENCE REPORT DSN: yourid.CPXyyddd.Thhmmsst.OUTLIST_____________ PRINTING MECHANISM: PRINTDS_ REPORT DISPOSITION ===> K (P=Print) (K=Keep) (D=Delete) (PD=Print and delete) (JD=Submit a job to print and delete) (JK=Submit a job to print and keep) LOCAL PRINTER ID (Or Print Class) ===> ________ (For Print option) VPSPRINT WRITER ===> ________ (Applicable to VPSPRINT Only)

JOB STATEMENT FOR SUBMISSION IF REPORT DISPOSITION OPTION ABOVE IS JD OR JK

===> //yourida JOB (accounting info),MSGCLASS=A,CLASS=c,_________________ ===> // NOTIFY=yourid_________________________________________ ===> //*_________________________________________________________________ ===> //*_________________________________________________________________

Press Enter to continue, or press End to exit.

175

Page 176: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

17

Chapter 8: Using Comparex Interactively

TEXT Comparison Via Short Cut

From the Comparex/ISPF Primary Menu, select option 0 - Short Cut to bring up the shortcut data entry panel CPXSHORT. This panel asks you to specify input file names for SYSUT1 and SYSUT2 as well as the free-form keywords required to compare them.

You will enter the two data set names to compare in the “ISPF FILE” nomenclature like this:

SYSUT1 ISPF FILE: SYSUT2 ISPF FILE: PROJECT ===> abc_____ PROJECT ===> abc_____ LIBRARY ===> text____ LIBRARY ===> text____ TYPE ===> pds_____ TYPE ===> pds2____ MEMBER ===> cob904ab MEMBER ===> cob904ab

The listed (commented) free-form keywords are suggestions for comparison methodologies. Overstrike and/or erase as necessary to enter what database want. Because you already know that these two members are Cobol program source code, you only need to specify:

ENTER FREE-FORM KEYWORDS BELOW: (No Syntax Checking ... ===> text=cobol,print=mlc /* Cobol text; fade-in out ===> maxdiff=100,continue /* Don't go nuts ===> ===>

and press Enter. After registering them to ISPF, press PF3 to return to the main menu again. Now, invoke Comparex as a submitted batch job like this:

Option ===> 7

CPXSHORT -------------- Data Set Names and Brief Options ----------------------- Command ===> Profile:xxxx PVT * SYSUT1 ISPF FILE: SYSUT2 ISPF FILE: PROJECT ===> PROJECT ===> LIBRARY ===> LIBRARY ===> TYPE ===> TYPE ===> MEMBER ===> MEMBER ===> OTHER Partitioned, Sequential, VSAM, or ISAM dataset or z/OS UNIX file: SYSUT1 DSNAME ===> 'WSER72.SEQ.SYSUT1' + SYSUT2 DSNAME ===> 'WSER72.SEQ.SYSUT2' + ENTER FREE-FORM KEYWORDS BELOW: (No Syntax Checking Done on the Panel) ===> *<--ASTERISK IN COLUMN 1 DENOTES COMMENT, REMOVE TO USE LINE____________ ===> * TEXT=COBOL,PRINT=MLC,MBRHDR=COND /* COBOL TEXT FADE-IN/OUT___________ ===> * DATA=CSECT,MODE=SYS,MBRHDR=COND /* LOAD MODULES (SYSTEM)____________ ===> * KEY=(3,8),FOROUT=(9,GE,C'G2'),MASK=(67,7) /* FLAT DATA________________ Press ENTER to register and stay; enter END command to register and exit.

6

Page 177: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

ISPF panel CPXJOBST is presented, asking if there are any changes to be made to the job card image last used.

Overtype any changes to be made in the job card, then press Enter. The following message is displayed:

JOB YOURIDX(JOB00345) SUBMITTED

This is the response to the TSO Submit command. There will be three asterisks at the bottom of the screen. Press Enter one more times to return to the primary menu. The background job you just submitted will start shortly.

The “No syntax checking done on panel” comment is not completely true; the four lines of panel CPXSHORT and the additional six lines of panel CPXOPFFK are indeed parsed for the usage of the COPYDIFF or COPYSAME keyword. If discovered, then an attempt to allocate and open SYSUT3 is made.

CPXJOBST ----------------------- Job Statement -------------------------------- Command ===> JOB STATEMENT: ===> //WSER72A JOB (X170,374),'LDAWN', <=== CHANGE ACCORDINGLY___ ===> // CLASS=X, <=== CHANGE ACCORDINGLY___ ===> // NOTIFY=WSER72, <=== CHANGE ACCORDINGLY___ ===> // MSGCLASS=9 <=== CHANGE ACCORDINGLY___ Press Enter to continue, or press End to terminate job submission.

177

Page 178: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

17

Chapter 8: Using Comparex Interactively

Comparing z/OS Unix Directories

File names and catalog information for two directories in the z/OS Unix Hierarchical File System (HFS) can be compared by selecting Option 0 - Short Cut from the Comparex/ISPF Primary Menu.

z/OS Unix file and directory information is specifed at the SYSUTx DSNAME ==> prompts. Specify the complete paths to the top-level nodes of the two directories to be compared using standard z/OS Unix syntax. For example:

OTHER Partitioned, Sequential, VSAM, or ISAM dataset or z/OS UNIX file: SYSUT1 DSNAME ===> '/u/user0001/testdir1’ + SYSUT2 DSNAME ===> '/u/user0001/testdir2' +

Long names are supported up to a total path length of 256 bytes. Click the plus sign (+) at right as needed to expand the data entry field to accept a longer path name.

The following free-format keywords are frequently used with z/OS Unix directory comparisons:

• DIR=HFS specifies that a directory comparison rather than a file comparison is desired, and that the directory is a z/OS Unix Hierarchical File System (HFS) directory. This keyword is required for HFS directory comparisons.

• EXPAND is an optional keyword that instructs Comparex to recursively expand all subdirectories within both top-level directories and include their contents in the comparison. This keyword is optional. If it is omitted, only the top-level directories are compared. The EXPAND keyword may only be used in HFS directory comparisons.

• UNICODE sets the character encoding for this comparison to the default UNICODE variant configured for your installaation. Generally this is code page 01200 for UTF-16 Big-Endian with IBM mainframe special characters. The UNICODE keyword is not restricted to z/OS Unix and may be used with any file system on the mainframe.

CPXSHORT -------------- Data Set Names and Brief Options ----------------------- Command ===> Profile:xxxx PVT * SYSUT1 ISPF FILE: SYSUT2 ISPF FILE: PROJECT ===> PROJECT ===> LIBRARY ===> LIBRARY ===> TYPE ===> TYPE ===> MEMBER ===> MEMBER ===> OTHER Partitioned, Sequential, VSAM, or ISAM dataset or z/OS UNIX file: SYSUT1 DSNAME ===> '/u/user0001/testdir1’ + SYSUT2 DSNAME ===> '/u/user0001/testdir2' + ENTER FREE-FORM KEYWORDS BELOW: (No Syntax Checking Done on the Panel) ===> DIR=HFS_________________________________________________________________ ===> EXPAND__________________________________________________________________ ===> UNICODE_________________________________________________________________ ===> ________________________________________________________________________ Press ENTER to register and stay; enter END command to register and exit.

8

Page 179: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

Press ENTER to register your comparison options with ISPF, then press PF3 to return to the main ISPF menu. Select Option 7 - Foreground from the Comparex/ISPF Primary Menu to execute your comparison in the foreground and view the results online.

Comparing a Panvalet Directory to a PDS Using an Edited Batch Job

Assuming we are at the Comparex/ISPF Primary Menu again, choose different data set names by entering 2 at:

Option ===> 2

Now, ISPF panel CPXOPDSN is displayed asking you to specify one of SYSUT1 or SYSUT2.

We will choose SYSUT1 first by entering 1 at:

Option ===> 1

Now panel CPXOPDS1 will again be presented, requesting you to fill in a data set name for SYSUT1. Fill in the name of the Panvalet master file like this:

OTHER Partitioned or Sequential dataset or z/OS UNIX file: DATASET NAME ===> 'sys2.panvalet.master' VOLUME SERIAL ===> ________ (If Not Cataloged) UNIT ===> ________ (If Not Cataloged)

TYPE OF DATASET ===> 1 (COMPAREX Interface Only)

1 - PANVALET 2 - LIBRARIAN/GEM 3 - OTHER LIBRARY/DBMS

Press Enter, correct any syntax errors, then press PF3. CPXOPDSN is displayed again, asking you to pick SYSUT1, SYSUT2, or SYSUT3.

Choose SYSUT2 by entering 2 at:

Option ===> 2

CPXOPDS2 is displayed again, requesting you to fill in a data set name for SYSUT2. Specify an existing partitioned data set like this:

OTHER Partitioned or Sequential dataset or z/OS UNIX file:

DATA SET NAME ===> 'abc.pds'

Press Enter, correct any syntax errors, then press PF4. CPX@PRIM is displayed.

CPXOPDSN ------------------------------ Data set Names -------------------------------- Option ===>

1 File one data set name (SYSUT1) 2 File two data set name (SYSUT2) 3 Output file data set name (SYSUT3 - only used with COPYDIFF/COPYSAME) 4 Split file data set names (SYSUT3x - only used with COPYSPLIT) 5 High level qualifier (Temporary compare work data sets) and common profile data set (For sharing profiles among users)

Press ENTER to continue; enter END Command to exit.

179

Page 180: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

18

Chapter 8: Using Comparex Interactively

Construct a background job to be edited before submission like this:

Option ===> 8

Now we are editing (via PDF EDIT) a dynamically allocated job that can be optionally submitted at this point. Just after the job card images are some comments that you should pay attention to:

//* C O M P A R E X BATCH EXECUTION //* YOU MAY EDIT THIS DATA SET AT WILL. WHEN YOU //* ARE FINISHED, "SUBMIT" AT THE COMMAND ===> SUB //* IF YOU DON'T SUBMIT, THE DATA SET IS JUST DELETED

Because we didn’t specify any options, or we got the ones carried over from last execution, we have the opportunity to modify them now. Find the SYSIN statement,

//SYSIN DD *

Delete whatever you don’t like and enter this:

DIR=PDF

We want to compare the directories only of the Panvalet master against the PDS. See “DIRECTORY” on page 100 for a description of what PDF means.

Now submit the job by typing:

COMMAND INPUT ===> sub

then pressing Enter. The job will be submitted, and a message displays the job number. Now press PF3 to end the edit session. The job data set will be deleted automatically, and ISPF panel CPX@PRIM is displayed.

Parsing Copybooks

If you are doing a DATA comparison, and the files to be compared have an associated COBOL, Assembler or PL/I Copylib layout, you can use the Comparex provided assist to generate accurate FIELD, MASK, IDENTITY, KEY, FILTER, and DESEN keywords. Without this facility, an application programmer would need to manually investigate a copybook and enter all of the field statements.

Note that Comparex can parse imbedded DB2 DCLGEN copylibs.

To invoke this facility, select option 9, PARSE COPYLIB, from the primary Comparex menu.

The Copylib library name can be specified as either a standard ISPF three-part name, or as a contiguous string.

If the copybook resides in a PDS, then you can enter a name in the MEMBER ==> line, or type the data set name and member in the DATA SET NAME ===> line. For a PDS only, if you omit the member name, a member list will be displayed for you to select the member. For PDSs, you need to specify MVS in the DATA SET TYPE ===> line.

0

Page 181: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

If you want to parse copybook members from a Panvalet or Librarian library, you need to specify PAN or LIB in the DATA SET TYPE ===> line. Then, you must define a member name (1 to 10 characters for Panvalet, 1 to 8 characters for Librarian) in the MEMBER IF PAN/LIB ===> line.

To parse a copybook that exists in a Panvalet or Librarian library, the user interface that is compiled at install time must be called CPXIFACE. No alternative name can be given. It must be generated with Panvalet or Librarian turned on, depending on which you want to use.

The default 01 level to begin the parsing is the first 01 in the copybook.

• If you prefer to use a different 01 level, specify that name at the Level 01 Name: location.

• If the level 01 name is blank, the first level name found will be used.

• If you want to override this action, you may enter a name in the Level 01 Name field on panel CPXCBCBM.

• If the first statement of the copybook is a REDEFINES statement, and it is not an 01 level statement, you can enter the name of the statement and it will be handled as an 01 level statement.

181

Page 182: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

18

Chapter 8: Using Comparex Interactively

2

Page 183: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

COPYBOOK AND COPYLIB ASSISTED COMPARISONS

9 COPYBOOK AND COPYLIB PARSER

If you do a DATA comparison, and if the files to be compared have an associated copybook or copylib layout, you can use the COMPAREX parser to generate accurate FIELD, MASK, IDENTITY, KEY, FILTER, and DESEN keywords. Without this facility, you would have to investigate a copybook manually, and enter all of the keyword statements individually.

The COMPAREX parser will parse COBOL, PL/1, and Assembler copylibs, as well as DB2 DCLGENs. Note that currently, a PL/1 copybook with the VARYING keyword cannot be parsed.

The following instructions illustrate parsing a COBOL copybook.

A simple COBOL copybook is delivered in somnode.COMPAREX.IFACE(COBOL); the associated data is in somnode.COMPAREX.IFACE(COBOLD1) and somnode.COMPAREX.IFACE(COBOLD2).

To invoke the parser, select Option 9 from the COMPAREX Primary Menu, CPX@PRIM.

CPX@PRIM -------- SERENA COMPAREX / ISPF Primary Menu -------------------Option ===> Profile: * 0 - SHORT CUT - Single screen for options and dataset names (recommended) 1 - OPTIONS - Specify compare options for this session 2 - FILES - Specify dataset names or files to be compared 3 - SAVE - Save options profile for future sessions 4 - LOAD - Select/Delete options profile from prior session(s) 5 - CLEAR - Clear previously loaded profile 6 - FOREGROUND - Invoke SERENA COMPAREX in the foreground and wait 7 - BACKGROUND - Invoke SERENA COMPAREX as a submitted batch job 8 - BACKGROUND - Similar to above but edit job (and optionally SUBMIT) 9 - PARSE - Parse Copylib for keyword assistance X - EXIT - Exit Press HELP KEY for tutorial assistance at any point; Enter END Command to terminate SERENA COMPAREX/ISPF 8.4 (2002/065).

183

Page 184: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

18

Chapter 9: Copybook and Copylib Assisted Comparisons

Panel CPXCBCBM is displayed:

Specify a COBOL copylib library name as a standard ISPF three-part name, or as a contiguous string. For example, to use the ISPF library:

Project somnode

Group COMPAREX

Type IFACE___

Member

________

CPXCBCBM ------------ CPXPARSE - Select Copybook to Parse ---------------------COMMAND ===> _________________________________________________________________ ISPF LIBRARY: PROJECT ===> _________ LIBRARY ===> _________ TYPE ===> _________ MEMBER ===> _________ DATASET PASSWORD ===> (If Protected) OTHER PARTITIONED OR SEQUENTIAL DATASET: DATASET NAME ===> 'somnode.COMPAREX.IFACE'___________________________ VOLUME SERIAL ===> _______ (If Not Cataloged) UNIT ===> _______ (If Not Cataloged) DATASET TYPE ===> MVS (MVS, PANvalet, LIBrarian) MEMBER if PAN/LIB ===> __________ Is Copylib for SYSUT1 or SYSUT2? ===> 1 (1 or 2) Modify Field Table? ===> N (Y/N) More: - Starting column ===> 1________ (1 TO 32760 if first variable is offset) Notes: If the level 01 name is blank, the first level name found will be used; enter a name if you want to override this action.

4

Page 185: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

If you supply a member name, COMPAREX parses that member. If you leave member blank, COMPAREX displays a member list, as shown in the following figure:

As illustrated in the preceding figure, you will select member COBOL for parsing into readable field names (for visual inspection and keyword assignment). The member list referred to is delivered on the COMPAREX distribution tape.

The following is a fragment of data member COBOLD1 in somnode.COMPAREX.IFACE:

********************************************************************************** THIS IS A VERY SIMPLIFIED PAYROLL FILE (SYSUT1 - ORIGINAL FILE)* DESIGNED TO DEMONSTRATE CPXPARSE CAPABILITIES*********************************************************************************1111223333BENEDICT, YANCEY 001MM50/03/1500001123456789EGGER, VICTORIA 010PF39/08/0810001123456789FRANKLIN, URSULA 001HF39/08/0815001444556666DONALDSON, WENDY 020PF55/07/1010001555001111CANDY, HIRAM X. 020PM55/11/1110001555667777AARONS, ZACK 030PM45/01/1610001993558788WAINWRIGHT, MARSHA 039SF42/07/2200002019555555901200150001680000000000000000002520000000000000000000000000000252020195555559015101500017600000000000800000026400000000000000001200000000002760201955555590151015000168001200000000000000252000027000000000000000000000027902019555555902120150001680000000000080000002520000000000000000120000000000264020195555559024301500018400000000000000000027600000000000000000000000000002670201955555590273015000152000400000008000000228000009000000000012000000000024902111223333901200350001680000000000000000005880000000000000000000000000000588021112233339015103500017600000000000800000061600000000000000002800000000006440

Following are fragments of data member COBOLD2 in somnode.COMPAREX.IFACE.

********************************************************************************** THIS IS A VERY SIMPLIFIED PAYROLL FILE (SYSUT2 - MODIFIED FILE)* DESIGNED TO DEMONSTRATE CPXPARSE CAPABILITIES*********************************************************************************1111223333BENEDICT, YANCEY EDWARD PHILIP III 001MM50/03/1500001123456789EGGER, VICTORIA 010PF39/08/0810001123456789FRANKLIN, URSULA 001HF39/08/0815001444556666DONALDSON, WENDY 020PF55/07/1010001555001111CANDY, HIRAM X. 020PM55/11/111000

MEMBER LIST -- somnode.COMPAREX.IFACE --------------------- ROW 00001 OF 00015 COMMAND ===> SCROLL ===> PAGE NAME VV.MM CREATED CHANGED SIZE INIT MOD ID S COBOL 07.22 97/10/01 97/10/01 22:54 76 64 0 SERENA COBOLD1 07.22 97/10/01 97/10/01 22:54 51 48 0 SERENA COBOLD2 07.22 97/10/01 97/10/01 22:54 53 49 0 SERENA COMPAREB 07.22 97/10/01 97/10/01 22:54 67 67 0 SERENA COMPAREE 07.22 97/10/01 97/10/01 22:54 71 71 0 SERENA CPXDB2 07.22 97/10/01 97/10/01 22:54 74 74 0 SERENA CPXIFACE 07.22 97/10/01 97/10/01 22:54 7363 7363 0 SERENA CPXIFASM 07.22 97/10/01 97/10/01 22:54 51 51 0 SERENA CPXISPF 07.22 97/10/01 97/10/01 22:54 62 62 0 SERENA CPXVB2FB 07.22 97/10/01 97/10/01 22:54 45 45 0 SERENA HELP 07.22 97/10/01 97/10/01 22:54 184 184 0 SERENA JOSEFINE 07.22 97/10/01 97/10/01 22:54 171 171 0 SERENA LNKISPF 07.22 97/10/01 97/10/01 22:54 26 26 0 SERENA POSTINST 07.22 97/10/01 97/10/01 22:54 39 39 0 SERENA SERUPDTE 07.22 97/10/01 97/10/01 22:54 250 250 0 SERENA **END**

185

Page 186: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

18

Chapter 9: Copybook and Copylib Assisted Comparisons

1555667777AARONS, ZACK 030PM45/01/1610001578321925MANTLE, MICKEY Q. 030PM32/02/2910001993558788WAINWRIGHT, MARSHA 039SF42/07/220000201955555590120015000168000000000000000000252000000000000000000000000000025202019555555901510150001760000000000080000002640000000000000000120000000000276020195555559015101500016800120000000000000025200002700000000000000000000002790201955555590212015000168000000000008000000252000000000000000012000000000026402019555555902430150001840000000000000000002760000000000000000000000000000276020195555559027301500015200040000000800000022800000900000000001200000000002490

The following shows the layout for copylib member COBOL in somnode.COMPAREX.IFACE

000100***************************************************************** COBOL000200* * COBOL000300* THIS IS A SIMPLIFIED COBOL RECORD LAYOUT FOR OPTION 9 OF THE * COBOL000400* ISPF INTERFACE TO PARSE AND PRODUCE LEGITIMATE KEYWORDS FOR * COBOL000500* COMPAREX TO USE IN PERFORMING A DATA COMPARE. * COBOL000600* * COBOL000700* THIS IS MEMBER somnode.COMPAREX.IFACE(COBOL) * COBOL000800* DATA FOR THIS LAYOUT EXISTS AS MEMBERS COBOLD1 AND COBOLD2. * COBOL000900* * COBOL001000***************************************************************** COBOL001100 01 CPX-LOAD-RECORD. COBOL001200 02 CPX-RECORD. COBOL001300 05 CPX-COMMENT-RECORD PIC X. COBOL001400 88 CPX-THIS-IS-A-COMMENT VALUE '*'. COBOL001500 05 CPX-COMMENT-ITSELF PIC X(79) COBOL001600 02 CPX-EMPL-DEMOG-RECORD REDEFINES CPX-RECORD. COBOL001700 05 CPX-EMPL-DEMOG PIC X. COBOL001800 88 CPX-EMPL-DEMOG-DATA-FOLLOWS VALUE '1'. COBOL001900 05 CPX-EMPL-DEMOG-DATA. COBOL002000 10 CPX-SSN-ALPHA-101 PIC X(9). COBOL002100 10 CPX-SSN-NUMERIC-101 REDEFINES CPX-SSN-ALPHA-101 COBOL002200 PIC 9(9). COBOL002300 10 CPX-EMPL-NAME-101 PIC X(35). COBOL002400 10 CPX-DEPT-NUMBER-101 PIC 999. COBOL002500 10 CPX-EMPLOYEE-TYPE-101 PIC X. COBOL002600 88 HOURLY VALUE 'H'. COBOL002700 88 SALARIED-PROF VALUE 'P'. COBOL002800 88 SALARIED-MGMT VALUE 'M'. COBOL002800 88 SALARIED-COMMISSIONED VALUE 'S'. COBOL002900 10 CPX-EMPL-SEX PIC X. COBOL003000 88 FEMALE VALUE 'F'. COBOL003100 88 MALE VALUE 'M'. COBOL003200 10 CPX-EMPL-BIRTHDAY PIC X(8). COBOL003300 10 CPX-EMPL-BD REDEFINES CPX-EMPL-BIRTHDAY COBOL003400 15 CPX-EMPL-BYY PIC 99. COBOL003500 15 FILLER PIC X. COBOL003600 15 CPX-EMPL-BMM PIC 99. COBOL003700 15 FILLER PIC X. COBOL003800 15 CPX-EMPL-BDD PIC 99. COBOL003900 10 CPX-OT-FACTOR-101 PIC S9V999. COBOL004000 10 FILLER PIC X(18). COBOL004100 02 CPX-EMPL-PAY-RECORD REDEFINES CPX-RECORD. COBOL004200 05 CPX-EMPL-PAY PIC X. COBOL004300 88 CPX-EMPL-PAY-DATA-FOLLOWS VALUE '2'. COBOL004400 05 CPX-EMPL-PAY-DATA. COBOL004500 10 CPX-SSN-EMPL-PAY-102 PIC X(9). COBOL004600 10 CPX-END-DATE-102 PIC X(5). COBOL004700 10 CPX-BASE-RATE-102 PIC S9(3)V99. COBOL004800 10 CPX-LUMP-SUM-102 REDEFINES CPX-BASE-RATE-102 COBOL004900 PIC S9(5). COBOL005000 10 CPX-HOURS-WORKED-102. COBOL005100 15 HOURS-SCHEDULED-102 PIC S9(4). COBOL005200 15 HOURS-OVERTIME-102 PIC S9(4). COBOL005300 15 HOURS-SICK-102 PIC S9(4). COBOL005400 15 HOURS-HOLIDAY-102 PIC S9(4). COBOL

6

Page 187: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

005500 15 HOURS-VACATION-102 PIC S9(4). COBOL005600 10 CPX-DOLLARS-PAID-102. COBOL005700 15 DOLLARS-SCHEDULED-102 PIC S9(6). COBOL005800 15 DOLLARS-OVERTIME-102 PIC S9(6). COBOL005900 15 DOLLARS-SICK-102 PIC S9(6). COBOL006000 15 DOLLARS-HOLIDAY-102 PIC S9(6). COBOL006100 15 DOLLARS-VACATION-102 PIC S9(6). COBOL006200 15 DOLLARS-TOTAL-102 PIC S9(7). COBOL006300 10 FILLER PIC X(03). COBOL006400 02 CPX-EMPL-SALES-RECORD REDEFINES CPX-EMPL-PAY-RECORD. COBOL006500 05 CPX-EMPL-SALES PIC X. COBOL006600 88 CPX-EMPL-SALES-DATA-FOLLOWS VALUE '3'. COBOL006700 05 CPX-EMPL-SALES-DATA. COBOL004500 10 CPX-SSN-EMPL-SALES-103 PIC X(9). COBOL006800 10 CPX-EMPL-QUARTERLY-SALES OCCURS 4. COBOL006900 15 CPX-SALES-QTR-CODE-103 COBOL007000 PIC X. COBOL007100 15 CPX-SALES-AMOUNT-103 COBOL007200 PIC S9(7)V99. COBOL007300 05 FILLER PIC X(30). COBOL007400*====> END OF COPY MEMBER <==== COBOL

By selecting member COBOL from the member selection list, panel CPXCBBLD is displayed.

Each COBOL field name (with attributes) sits behind a line command under the heading:

Keyword Op

You can page down to display the rest of the parsing. You have mitigating knowledge about these files (they exist as members COBOLD1 and COBOLD2 in the same library). Filter out the comment records in the first part of each file.

The first ten bytes (one byte record type, nine byte social security number) form a synchronizing key. The fields to be compared are subject to interpretation. For this scenario, you will choose individual fields for:

CPXCBBLD ----------- CPXPARSE Record Layout - Select Fields Row 1 to 20 of 80 COMMAND ===> ________________________________________________ SCROLL ===> CSR_ Keyword Op Field Name Type Start Length _______ __ 01 CPX-LOAD-RECORD CHR 00001 00080 _______ __ 02 CPX-RECORD CHR 00001 00080 _______ __ 05 CPX-COMMENT-RECORD CHR 00001 00001 _______ __ 88 CPX-THIS-IS-A-COMMENT = _______ __ '*' _______ __ 05 CPX-COMMENT-ITSELF CHR 00002 00079 _______ __ 02 CPX-EMPL-DEMOG-RECORD CHR 00001 00080 _______ __ 05 CPX-EMPL-DEMOG CHR 00001 00001 _______ __ 88 CPX-EMPL-DEMOG-DATA-FOLLOWS = _______ __ '1' _______ __ 05 CPX-EMPL-DEMOG-DATA CHR 00002 00079 _______ __ 10 CPX-SSN-ALPHA-101 CHR 00002 00009 _______ __ 10 CPX-SSN-NUMERIC-101 ZON 00002 00009 _______ __ 10 CPX-EMPL-NAME-101 CHR 00011 00035 _______ __ 10 CPX-DEPT-NUMBER-101 ZON 00046 00003 _______ __ 10 CPX-EMPLOYEE-TYPE-101 CHR 00049 00001 _______ __ 88 HOURLY = _______ __ 'H' _______ __ 88 SALARIED-PROF = _______ __ 'P'

187

Page 188: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

18

Chapter 9: Copybook and Copylib Assisted Comparisons

• The employee demographic data.

• A group compare for the employee pay data.

• Multiple-occurrence fields for sales commission data .

8

Page 189: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

The following set of line commands will:

• Filter out (FOROUT) the commented records.

• Select CPX-EMPL-DEMOG for expansion into two keyword actions (to use for a KEY and an IDENTITY).

• Specify CPX-SSN-ALPHA-101 as a secondary key.

• Specify several elementary items as FIELDs.

The S (selection) line command causes panel CPXCBCBE to be displayed, enabling you to create multiple control statements from the COBOL field name (CPX-EMPL-DEMOG), as in the following figure:

CPXCBBLD ----------- CPXPARSE Record Layout - Select Fields Row 1 to 20 of 80 COMMAND ===> ________________________________________________ SCROLL ===> CSR_ Keyword Op Field Name Type Start Length _______ __ 01 CPX-LOAD-RECORD CHR 00001 00080 _______ __ 02 CPX-RECORD CHR 00001 00080 forout __ 05 CPX-COMMENT-RECORD CHR 00001 00001 _______ eq 88 CPX-THIS-IS-A-COMMENT = _______ __ '*' _______ __ 05 CPX-COMMENT-ITSELF CHR 00002 00079 _______ __ 02 CPX-EMPL-DEMOG-RECORD CHR 00001 00080 s______ __ 05 CPX-EMPL-DEMOG CHR 00001 00001 _______ __ 88 CPX-EMPL-DEMOG-DATA-FOLLOWS = _______ __ '1' _______ __ 05 CPX-EMPL-DEMOG-DATA CHR 00002 00079 k______ __ 10 CPX-SSN-ALPHA-101 CHR 00002 00009 _______ __ 10 CPX-SSN-NUMERIC-101 ZON 00002 00009 f______ __ 10 CPX-EMPL-NAME-101 CHR 00011 00035 f______ __ 10 CPX-DEPT-NUMBER-101 ZON 00046 00003 f______ __ 10 CPX-EMPLOYEE-TYPE-101 CHR 00049 00001 _______ __ 88 HOURLY = _______ __ 'H'

CPXCBCBE ------------------- CPXPARSE - Select Menu ---------------------------Command ===> _______________________________________________ Select additional SERENA COMPAREX keywords for a field from the list below. A COMPAREX control statement will be generated for each choice. To select a choice, enter a / (slash) next to the keyword. Generate additional control statements for Field Name Type Start Length 05 CPX-COMMENT-RECOR CHR 00001 00001 _ FIELD _ MASK / KEY,A _ KEY,D Press ENTER to register your choice; Enter END Command to save and exit

189

Page 190: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

19

Chapter 9: Copybook and Copylib Assisted Comparisons

Specify the elementary field as an ascending key by entering / (slash) next to the keyword, as follows:

| _ FIELD | _ MASK | / KEY,A | _ KEY,D

Press Enter to register the choices.

Enter the End command (usually [PF3]) to see the results of the line commands.

The selected elementary item is listed as both an ascending KEY, and as an open slot for more line commands. As the following figure illustrates, you convert the selected item into an IDENTITY.

CPXCBBLD ----------- CPXPARSE Record Layout - Select Fields Row 1 to 20 of 81 COMMAND ===> ________________________________________________ SCROLL ===> CSR_ Keyword Op Field Name Type Start Length _______ __ 01 CPX-LOAD-RECORD CHR 00001 00080 _______ __ 02 CPX-RECORD CHR 00001 00080 FOROUT_ __ 05 CPX-COMMENT-RECORD CHR 00001 00001 _______ EQ 88 CPX-THIS-IS-A-COMMENT = _______ '*' _______ __ 05 CPX-COMMENT-ITSELF CHR 00002 00079 _______ __ 02 CPX-EMPL-DEMOG-RECORD CHR 00001 00080 KEY____ A 05 CPX-EMPL-DEMOG CHR 00001 00001 id_____ __ 05 CPX-EMPL-DEMOG CHR 00001 00001 _______ eq 88 CPX-EMPL-DEMOG-DATA-FOLLOWS = _______ __ '1' _______ __ 05 CPX-EMPL-DEMOG-DATA CHR 00002 00079 KEY____ __ 10 CPX-SSN-ALPHA-101 CHR 00002 00009 _______ __ 10 CPX-SSN-NUMERIC-101 ZON 00002 00009 FIELD__ __ 10 CPX-EMPL-NAME-101 CHR 00011 00035 FIELD__ __ 10 CPX-DEPT-NUMBER-101 ZON 00046 00003 FIELD__ __ 10 CPX-EMPLOYEE-TYPE-101 CHR 00049 00001 _______ __ 88 HOURLY = _______ __ 'H' _______ __ 88 SALARIED-PROF =

0

Page 191: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

Paging down (usually PF8) displays more elementary fields for assignment, as illustrated following:

Paging down again lets you assign an IDENTITY and convert group level CPX-EMPL-PAY-DATA into a 79 byte field, as follows.

Keyword Op Lvl Field Name id_____ __ 05 CPX-EMPL-PAY _______ eq 88 CPX-EMPL-PAY-DATA-FOLLOWS = _______ __ '2' f______ __ 05 CPX-EMPL-PAY-DATA

Paging down to the last part of the display lets you create another IDENTITY for sales commission data, which is stored as multiple occurrences.

CPXCBBLD ----------- CPXPARSE Record Layout - Select Fields Row 26 to 45 of 81 COMMAND ===> ________________________________________________ SCROLL ===> CSR_ Keyword Op Field Name Type Start Length FIELD__ __ 10 CPX-EMPL-SEX CHR 00050 00001 _______ __ 88 FEMALE = _______ __ 'F' _______ __ 88 MALE = _______ __ 'M' _______ __ 10 CPX-EMPL-BIRTHDAY CHR 00051 00008 FIELD__ __ 10 CPX-EMPL-BD CHR 00051 00008 _______ __ 15 CPX-EMPL-BYY ZON 00051 00002 _______ __ 15 FILLER CHR 00053 00001 _______ __ 15 CPX-EMPL-BMM ZON 00054 00002 _______ __ 15 FILLER CHR 00056 00001 _______ __ 15 CPX-EMPL-BDD ZON 00057 00002 FIELD__ __ 10 CPX-OT-FACTOR-101 ZON 00059 00004 _______ __ 10 FILLER CHR 00063 00018 _______ __ 02 CPX-EMPL-PAY-RECORD CHR 00001 00080 _______ __ 05 CPX-EMPL-PAY CHR 00001 00001 _______ __ 88 CPX-EMPL-PAY-DATA-FOLLOWS =

CPXCBBLD ----------- CPXPARSE Record Layout - Select Fields Row 62 to 80 of 80 COMMAND ===> ________________________________________________ SCROLL ===> CSR_ Keyword Op Field Name Type Start Length _______ __ 02 CPX-EMPL-SALES-RECORD CHR 00001 00080 ID_____ __ 05 CPX-EMPL-SALES CHR 00001 00001 _______ EQ 88 CPX-EMPL-SALES-DATA-FOLLOWS = _______ __ '3' _______ __ 05 CPX-EMPL-SALES-DATA CHR 00002 00049 _______ __ 10 CPX-SSN-EMPL-SALES-103 CHR 00002 00009 _______ __ 10 CPX-EMPL-QUARTERLY-SALES (1) CHR 00011 00010 _______ __ 15 CPX-SALES-QTR-CODE-103 (1) CHR 00011 00001 _______ __ 15 CPX-SALES-AMOUNT-103 (1) ZON 00012 00009 _______ __ 10 CPX-EMPL-QUARTERLY-SALES (2) CHR 00021 00010 _______ __ 15 CPX-SALES-QTR-CODE-103 (2) CHR 00021 00001 _______ __ 15 CPX-SALES-AMOUNT-103 (2) ZON 00022 00009 _______ __ 10 CPX-EMPL-QUARTERLY-SALES (3) CHR 00031 00010 _______ __ 15 CPX-SALES-QTR-CODE-103 (3) CHR 00031 00001 _______ __ 15 CPX-SALES-AMOUNT-103 (3) ZON 00032 00009 _______ __ 10 CPX-EMPL-QUARTERLY-SALES (4) CHR 00041 00010 _______ __ 15 CPX-SALES-QTR-CODE-103 (4) CHR 00041 00001 _______ __ 15 CPX-SALES-AMOUNT-103 (4) ZON 00042 00009 _______ __ 05 FILLER CHR 00051 00030 ******************************* Bottom of data ********************************

191

Page 192: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

19

Chapter 9: Copybook and Copylib Assisted Comparisons

Note that an OCCURS DEPENDING ON clause will be parsed with only one occurrence.

A shortcut method for marking all the elementary fields in a group is to place *f (or f*) on the group item, as follows:

Keyword Op Lvl Field Name *f_____ __ 05 CPX-EMPL-SALES-DATA _______ __ 10 CPX-SSN-EMPL-PAY-103 _______ __ 10 CPX-EMPL-QUARTERLY-SALES(1) _______ __ 15 CPX-SALES-QTR-CODE-103(1)

Press Enter; each item in the group is flagged with the FIELD keyword, as shown in the following figure:

Issue the End command twice to return to ISPF panel CPXCBCBG.

On panel CPXCBCBG, enter Y to the Generate COMPAREX Control Statements prompt, then press ENTER

CPXCBBLD ----------- CPXPARSE Record Layout - Select Fields Row 62 to 80 of 80 COMMAND ===> ________________________________________________ SCROLL ===> CSR_ Keyword Op Field Name Type Start Length _______ __ 02 CPX-EMPL-SALES-RECORD CHR 00001 00080 ID_____ __ 05 CPX-EMPL-SALES CHR 00001 00001 _______ EQ 88 CPX-EMPL-SALES-DATA-FOLLOWS = _______ __ '3' _______ __ 05 CPX-EMPL-SALES-DATA CHR 00002 00049 FIELD__ __ 10 CPX-SSN-EMPL-SALES-103 CHR 00002 00009 _______ __ 10 CPX-EMPL-QUARTERLY-SALES (1) CHR 00011 00010 FIELD__ __ 15 CPX-SALES-QTR-CODE-103 (1) CHR 00011 00001 FIELD__ __ 15 CPX-SALES-AMOUNT-103 (1) ZON 00012 00009 _______ __ 10 CPX-EMPL-QUARTERLY-SALES (2) CHR 00021 00010 FIELD__ __ 15 CPX-SALES-QTR-CODE-103 (2) CHR 00021 00001 FIELD__ __ 15 CPX-SALES-AMOUNT-103 (2) ZON 00022 00009 _______ __ 10 CPX-EMPL-QUARTERLY-SALES (3) CHR 00031 00010 FIELD__ __ 15 CPX-SALES-QTR-CODE-103 (3) CHR 00031 00001 FIELD__ __ 15 CPX-SALES-AMOUNT-103 (3) ZON 00032 00009 _______ __ 10 CPX-EMPL-QUARTERLY-SALES (4) CHR 00041 00010 FIELD__ __ 15 CPX-SALES-QTR-CODE-103 (4) CHR 00041 00001 FIELD__ __ 15 CPX-SALES-AMOUNT-103 (4) ZON 00042 00009 _______ __ 05 FILLER CHR 00051 00030

CPXCBCBG ----------- CPXPARSE - Generate Control Statements ----------------Command ===> Generate Dataset Name: Generate COMPAREX Control Statements? ===> Y (Y/N) Press ENTER to continue; Enter END Command to exit.

2

Page 193: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

CPXPARSE presents the file for edit, as follows:

Press the End command twice to return to ISPF panel CPX@PRIM.

Select the Shortcut (0) option on CPX@PRIM; the CPXSHORT panel is displayed.

Specify the two files that are to be compared, then set the maximum number of differences to be displayed.

EDIT WSER65.CPXPARSE.CNTL Columns 00001 00072 Command ===> Scroll ===> CSR ****** ***************************** Top of Data ******************************000001 * somnode.COMPAREX.IFACE 000002 ***** 000003 * THESE KEYWORDS WERE GENERATED BY CPXPARSE AS AN ASSISTANCE 000004 * FOR COMPAREX. MODIFY THEM AS YOU PLEASE AND THEN SAVE THEM 000005 * WITH THE END COMMAND. 000006 ***** 000007 FOROUT=(1,EQ,C'*',N=CPX-COMMENT-RECORD) 000008 KEY1=(1,1,A,N=CPX-EMPL-DEMOG) 000009 ID=(1,EQ,C'1',N=CPX-EMPL-DEMOG) 000010 KEY1=(2,9,A,N=CPX-SSN-ALPHA-101) 000011 FIELD1=(11,35,N=CPX-EMPL-NAME-101) 000012 FIELD1=(46,3,Z,N=CPX-DEPT-NUMBER-101) 000013 FIELD1=(49,1,N=CPX-EMPLOYEE-TYPE-101) 000014 FIELD1=(50,1,N=CPX-EMPL-SEX) 000015 FIELD1=(51,8,N=CPX-EMPL-BD) 000016 FIELD1=(59,4,Z,N=CPX-OT-FACTOR-101)

CPXSHORT -------------- Dataset Names and Brief Options -----------------------Command ===> Profile: * SYSUT1 ISPF FILE: SYSUT2 ISPF FILE: PROJECT ===> PROJECT ===> LIBRARY ===> LIBRARY ===> TYPE ===> TYPE ===> MEMBER ===> MEMBER ===> OTHER PARTITIONED, SEQUENTIAL, VSAM, OR ISAM DATASET: SYSUT1 DSNAME ===> 'somnode.COMPAREX.IFACE(COBOLD1)' SYSUT2 DSNAME ===> 'somnode.COMPAREX.IFACE(COBOLD2)' ENTER FREE FORM KEYWORDS BELOW: (No Syntax Checking Done on the Panel) ===> MAXDIFF=20,CONTINUE ===> * ===> * ===> * Press ENTER to register and stay; Enter END Command to register and exit.

193

Page 194: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

19

Chapter 9: Copybook and Copylib Assisted Comparisons

From CPX@PRIM, you can compare the files either in the foreground (Option 6), or in the background (Options 7 or 8). Assuming that you performed a foreground compare, the browse might look like this:

Scroll right to view the alpha portion of the difference report.

The alpha portion is presented in horizontal hex like a typical dump.

BROWSE -- SER14.CPX92229.T2122334.OUTLIST ---------- LINE 00000085 COL 001 080 COMMAND ===> SCROLL ===> CSR SYSUT1=SER14.CPXP722.IFACE(COBOLD1),SYSUT2=SER14.CPXP722.IFACE(COBOLD2) CPX51I - RECORD NUMBER 7 ON FILE SYSUT1 CPX52I - RECORD NUMBER 7 ON FILE SYSUT2 FIELD=(1,CPX-EMPL-NAME-101) FIELD=(11,35,C,N=CPX-EMPL-NAME-101) 11 C2C5D5C5 C4C9C3E3 6B40E8C1 D5C3C5E8 40404040 40404040 40404040 4040404043 404040 11 C2C5D5C5 C4C9C3E3 6B40E8C1 D5C3C5E8 40C5C4E6 C1D9C440 D7C8C9D3 C9D740C9 ------ ------ -------- ---- --43 C9C940 ---- FIELD=(46,3,Z,N=CPX-DEPT-NUMBER-101) 46 F0F0F1 FIELD=(49,1,C,N=CPX-EMPLOYEE-TYPE-101) 49 D4 FIELD=(50,1,C,N=CPX-EMPL-SEX) 50 D4 FIELD=(51,8,C,N=CPX-EMPL-BD) 51 F5F061F0 F361F1F5 FIELD=(59,4,Z,N=CPX-OT-FACTOR-101) 59 F0F0F0F0 _ CPX62I - KEY SYNCHRONIZATION MISMATCH - RECORD 13 ON FILE SYSUT2 _ 1 F1F5F7F8 F3F2F1F9 F2F5D4C1 D5E3D3C5 6B40D4C9 C3D2C5E8 40D84B40 40404040

BROWSE -- SER14.CPX92229.T2122334.OUTLIST ---------- LINE 00000085 COL 051 130 COMMAND ===> SCROLL ===> CSR ode.COMPAREX.IFACE(COBOLD2) 4 Y=CPX-EMPL-DEMOG-DATA-FOLLOWS 6 40 40404040 40404040 40404040 *BENEDICT, YANCEY * O N E * * O N E E6 C1D9C440 D7C8C9D3 C9D740C9 *BENEDICT, YANCEY EDWARD PHILIP I* T W O -- ------ -------- ---- -- ------ ------ - -DIFFERENCE+ *II * T W O -- -DIFFERENCE+ *001 * O N E 5 *M * O N E 7 *M * O N E 9 *50/03/15 * O N E 1 *0000 * O N E ON FILE SYSUT2 C9 C3D2C5E8 40D84B40 40404040 *1578321925MANTLE, MICKEY Q. * T W O

4

Page 195: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

If the difference report is printed, it would look something like the following:

SYSUT1=somnode.COMPAREX.IFACE(COBOLD1),SYSUT2=somnode.COMPAREX.IFACE(COBOLD2)CPX51I - RECORD NUMBER 7 ON FILE SYSUT1CPX52I - RECORD NUMBER 7 ON FILE SYSUT2 IDENTITY=CPX-EMPL-DEMOG-DATA-FOLLOWS FIELD=(11,35,C,N=CPX-EMPL-NAME-101)11 C2C5D5C5 C4C9C3E3 6B40E8C1 D5C3C5E8 40404040 40404040 40404040 40404040 *BENEDICT, YANCEY *43 404040 * *11 C2C5D5C5 C4C9C3E3 6B40E8C1 D5C3C5E8 40C5C4E6 C1D9C440 D7C8C9D3 C9D740C9 *BENEDICT, YANCEY EDWARD PHILIP I* ------ ------ -------- ---- -- ------ ------ -43 C9C940 *II * ---- -- FIELD=(46,3,Z,N=CPX-DEPT-NUMBER-101)46 F0F0F1 *001 * FIELD=(49,1,C,N=CPX-EMPLOYEE-TYPE-101)49 D4 *M * FIELD=(50,1,C,N=CPX-EMPL-SEX)50 D4 *M * FIELD=(51,8,C,N=CPX-EMPL-BIRTHDAY)51 F5F061F0 F361F1F5 *50/03/15 * FIELD=(59,4,Z,N=CPX-OT-FACTOR-101)59 F0F0F0F0 *0000 * CPX62I - KEY SYNCHRONIZATION MISMATCH - RECORD 13 ON FILE SYSUT2

195

Page 196: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

19

Chapter 9: Copybook and Copylib Assisted Comparisons

6

Page 197: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Chapter 10DB2 Comparisons in ISPF and Batch

Advanced DB2 Support

Functionality Comparex supports column-level DATA comparisons against DB2 tables or dynamically generated data streams created by SQL queries at runtime. The source DB2 data may reside in tables belonging to one or more owners and managed by one or more DB2 subsystems on the same LPAR. Any SQL function that you are authorized to perform in DB2 may be requested in Comparex. This includes SELECTs and JOINs that create logical input tables with no physical equivalent at the time the comparison is run. Long table names (up to 128 bytes) and long column names (up to 30 bytes) are supported both in batch and interactive execution environments.

The execution of a DB2 comparison proceeds in two phases. First, the desired data is extracted from DB2 and formatted as PDS members or flat files. Comparex then associates these files with SYSUT1 and SYSUT2 and performs the requested comparison.

Interfaces

ISPF Versus Rexx Advanced-function DB2 comparisons may be requested interactively using the ISPF interface or in batch mode using Rexx. Both interfaces support free-format SQL queries that dynamically generate input data streams for comparison at runtime.

The ISPF interface provides prompted assistance for dynamic SQL query generation, then lets you edit the generated queries before execution. All request parameters may be saved for reuse in a Comparex profile.

The batch Rexx interface permits more complex SQL queries to be executed in bulk. This interface is provided for experienced programmers with specialized requirements.

Advanced DB2 Support 197

Interactive DB2 Table Comparisons in ISPF 198

Batch DB2 Table Comparisons with Rexx 206

Limitations of Comparison in DB2 Environments 212

NOTE The advanced DB2 functionality of Comparex does NOT use the CPXIFACE interface. However, Comparex continues to support the CPXIFACE interface to DB2 for backward compatibility with pre-existing function. Advanced DB2 features such as long table names and dynamic SQL queries are not supported by CPXIFACE.

Information about using the CPXIFACE interface to DB2 can be found in the DB2 section of Chapter 11, "CPXIFACE Integration with External Data Managers".

User’s Guide 197

Page 198: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

DB2 Comparisons in ISPF and Batch

Performance

CPXZOS Best performance is achieved for DB2 comparisons using native System z support. For this reason, Serena recommends that DB2 users install Comparex using the CPXZOS module, which is optimized for System z, rather than the multi-platform COMPAREX module. Instructions for installing CPXZOS are provided in the Comparex for z/OS Installation and Setup Guide.

Requirements

Environment Advanced DB2 support in Comparex requires z/OS version 1.8 or higher. Support for long table and column names applies only to DB2 version 8 or higher, as older versions of DB2 do not use long names.

CPX$ISPFConfiguration

The ISPF interface module CPX$ISPF must be configured as part of Comparex before making advanced DB2 comparisons. For interactive users, this module is required to enable interactive comparison prompts and SQL specification editing. But even batch DB2 comparison jobs must be submitted using the ISPF menu, since important DB2 support functions are implemented in CPX$ISPF. See the Comparex for z/OS Installation and Setup Guide for instructions on configuring this module.

Batch TSO TSO batch module IKJEFT01 is needed in order to execute SQL in Rexx EXECs.

Interactive DB2 Table Comparisons in ISPF

Function The ISPF interface to Comparex provides interactive assistance for comparison of two DB2 tables or two dynamic input streams generated from DB2 tables at runtime.

On request, Comparex automatically detects all DB2 subsystems currently active on the system and displays them for selection from a pop-up list. A similar pop-up list lets you select the DB2 tables of interest. A dynamically generated prompt panel lets you select the columns of interest for each table, specify how to include them in your selection and sorting criteria, and independently designate the columns to be compared. Appropriate SQL statements are generated from your selection criteria automatically.

Setup All DB2 panels in the Comparex ISPF interface assume that you have assigned the ISPF ZEXPAND function to PF4. In addition, it is recommended (but not required) that you assign the Comparex GO command to PF12.

ProcedureSummary

In general, the DB2 comparison process requires the follow sequence of steps:

Selecting the DB2 Tables to Compare

Specifying Columns for Selection and Comparison

Viewing and Editing SQL Statements

Assessing the Results of the Comparison

IMPORTANT! Comparison between two DB2 tables is supported only if both DB2 subsystems are at the same release level and reside on the same LPAR.

TIP To optimize screen viewing area, a screen size of 43x80 (the 3270 Model 4 convention) is recommended.

198 Serena® Comparex® 8.7 for z/OS

Page 199: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

DB2 Comparisons in ISPF and Batch

Selecting the DB2 Tables to Compare

To select the DB2 tables to be included in your comparison using the ISPF interface, perform the following steps.

1 Navigate to the ISPF Primary Menu (panel CPX@PRIM).

2 From the ISPF Primary Menu, select Option 2 - FILES (highlighted above in red) and press ENTER. The File Names menu (panel CPXOPDSN) displays.

3 From the File Names menu, select Option D - DB2 Table Selection and press ENTER. If you see a row of three asterisks, press ENTER again.

Table Names 4 The DB2 Subsystem and Table Names panel (CPXDB2S1) prompts you to specify the tables to be compared. Values supplied for the First Table are mapped to SYSUT1 and values for the Second Table are mapped to SYSUT2.

Table names up to 128 bytes in length may be entered at this panel. Position the cursor in a Table field and press RIGHT (PF11) or LEFT (PF10) to scroll through table names that extend beyond the width of the screen. Press EXPAND (PF4) to invoke the ZEXPAND command and see the entire table name at once in a pop-up window.

Table specifications may entered directly if known, or they may be reused from a previously saved Comparex session profile. You may also select from available choices using pop-up windows.

The DB2 Subsystem and Table Names panel is shown below.

CPX@PRIM ------------------ COMPAREX/ISPF Primary Menu --------------------------Option ===> PROFILE: xxxx PVT*

0 - SHORT CUT - Single screen for options and data set names (recommended) 1 - OPTIONS - Specify compare options for this session 2 - FILES - Specify data set names or files to be compared 3 - SAVE - Save options profile for future sessions 4 - LOAD - Select/Delete options profile from prior session(s) 5 - CLEAR - Clear previously loaded profile 6 - FOREGROUND - Invoke SERENA COMPAREX in the foreground and wait 7 - BACKGROUND - Invoke SERENA COMPAREX as a submitted batch job 8 - BACKGROUND - Similar to above but edit job (and optionally SUBMIT) 9 - PARSE - Parse COBOL Copylib for keyword assistance M - M+R - Invoke Merge+Reconcile X - EXIT - Exit

Press HELP KEY for tutorial assistance at any point Enter END command to terminate SERENA COMPAREX/ISPF

CPXOPDSN ------------------------ File Names --------------------------------Option ===> 1 File #1 data set name (SYSUT1) 2 File #2 data set name (SYSUT2) 3 Output file data set name (SYSUT3 - only used with COPYDIFF/COPYSAME) 4 Split file data set names (SYSUT3x - only used with COPYSPLIT) 5 High-level qualifier and (Temporary compare work data sets) common profile data set (For sharing profiles among users)

D DB2 Table Selection (For comparing DB2 table data) Press ENTER to continue; enter END command to exit.

User’s Guide 199

Page 200: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

DB2 Comparisons in ISPF and Batch

DB2 Subsystemand Table Names

Panel

DB2 SubsystemPopup

a If you do not know the DB2 subsystem ID of the desired table, type an asterisk (*) in the appropriate DB2 Subsystem field and press ENTER. A pop-up window displays the available DB2 subsystems. For example:

Type the S line command in the option column beside the desired DB2 subsystem to select it and press ENTER. The selected subsystem is copied to the DB2 Subsystem field of the DB2 Subsystem and Table Names panel.

Owner and TableName Popup

b If you do not know the name of the desired table, type an asterisk (*) in the appropriate Table field and press ENTER. A pop-up window displays a list of tables for the selected DB2 subsystem, sorted by table name within owner. For example:

Type S beside the desired DB2 table to select it and press ENTER. The selected owner ID and table name are copied to the appropriate Owner and Table fields of the DB2 Subsystem and Table Names panel.

CPXDB2S1 ---------------- DB2 Subsystem and Table Names------------------------Command ===> Current Profile: xxxx PVT*

First Table: DB2 Subsystem ===> * (enter '*' to list DB2 subsystems or tables) Owner: ===> Table: ===> + Second Table: DB2 Subsystem ===> (leave blank to use the same DB2 subsystem as the first table) Owner: ===> (leave blank to use the same owner as the first table) Table: ===> +

---- DB2 Subsystems S Subsys State __ DSN1 INACTIVE S_ D101 READY __ D102 READY __ D103 INACTIVE __ D104 INACTIVE __ D105 READY __ D106 INACTIVE __ D107 INACTIVE __ D108 INACTIVE

DB2 System Tables Row 039 to 57 of 138 _ DSN9876 VPSTRDE2 _ DSN9876 VSTAFAC1 _ DSN9876 VSTAFAC2 _ USER001 EMP1 _ USER001 TEVZPAYMENTCHARGES S USER007 FED_E_PAYMENTS _ USER123 CMNBASE _ USER123 CMNBUN _ USER123 CMNOTHR

200 Serena® Comparex® 8.7 for z/OS

Page 201: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

DB2 Comparisons in ISPF and Batch

Autofill Function c When a pop-up window closes, the DB2 Subsystem and Table Names panel displays the values entered so far. Enter any remaining values that differ between the two tables. Leave fields blank to copy entries from the First Table to the Second Table. For example:

Press ENTER. Comparex populates blank fields in the Second Table with corresponding values from the First Table. If no owners are specified, Comparex enters your TSO user ID as the owner for both tables.

The panel is redisplayed with its autofilled values for your review. For example:

5 When all fields are filled on the DB2 Subsystems and Table Names panel, enter GO at the Command ==> prompt to initiate the column selection process. Alternatively, press PF12 if you have customized it to store the GO command.

CPXDB2S1 ---------------- DB2 Subsystem and Table Names------------------------Command ===> Current Profile: xxxx PVT*

First Table: DB2 Subsystem ===> D101 (enter '*' to list DB2 subsystems or tables) Owner: ===> USER007 Table: ===> FED_E_PAYMENTS + Second Table: DB2 Subsystem ===> D105 (leave blank to use the same DB2 subsystem as the first table) Owner: ===> (leave blank to use the same owner as the first table) Table: ===> +

CPXDB2S1 ---------------- DB2 Subsystem and Table Names------------------------Command ===> Current Profile: xxxx PVT*

First Table: DB2 Subsystem ===> D101 (enter '*' to list DB2 subsystems or tables) Owner: ===> USER007 Table: ===> FED_E_PAYMENTS + Second Table: DB2 Subsystem ===> D105 (leave blank to use the same DB2 subsystem as the first table) Owner: ===> USER007 (leave blank to use the same owner as the first table) Table: ===> FED_E_PAYMENTS +

User’s Guide 201

Page 202: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

DB2 Comparisons in ISPF and Batch

Specifying Columns for Selection and Comparison

DB2 ColumnSelection List

Panel

6 After you complete the DB2 table selection process and entered the GO command, the DB2 Column Selection List panel (CPXDB2S3) displays. For example:

Both DB2 tables are displayed on the column selection panel at the same time, so that corresponding columns may be easily viewed. Table names and subsystem IDs are highlighted in a colored box above the table’s associated columns.

ScrollingColumn List

All columns defined for a table are displayed in a scrollable region immediately below the table name. To scroll through the column list, position the cursor anywhere in the scrollable region and press DOWN (PF8) or UP (PF7). The currently displayed position in the scrolling list is shown to the far right of the table name.

The DB2 Column Selection List panel can be used in either of the following ways:

Default ColumnSelection

a Include all table rows and columns in the comparison (default). To take this default option, don’t enter anything on the panel. This instructs Comparex to generate a SELECT * statement for both tables. Skip to Step 9 below.

b Specify selection criteria for individual columns. If you choose this approach, only columns explicitly marked with a line command in the OPT column will be used to generate SQL SELECT statements. All other columns will be excluded from the comparison. Proceed to Step 7 below.

7 Select the specific columns to include in the comparison. For each column in the DB2 Column Selection List panel that is relevant to the selection, sorting, or comparison of table rows, enter the appropriate selection criteria in the following fields.

Line CommandOptions

OPT — The OPT (Option) field to the left of each column name takes the following line commands. Multiple commands are allowed in the same field. Commands take effect when you press ENTER.

CPXDB2S3----------- DB2 Column Selection List ---------------------------------- Command ===> Current Profile: xxxx PVT* Enter Option C -Compare, S -Select, O -Order, or any combination of these. Also valid: A -Asc. D -Desc. R -Reset. Enter Command GO when ready. OPT Column Name Cmp Sel A/D O/A Predicate Row 1 to 8 of 11 CA_ FEP_ROUTING ... ... ... ___ ___________________________ ___ FEP_TEL_NAME ... ... ... ___ ___________________________ C__ FEP_BANK_NAME ... ... ... ___ ___________________________ S__ FEP_BANK_STATE ... ... ... ___ = ’CT’_____________________ ___ FEP_BANK_CITY ... ... ... ___ ___________________________ ___ FEP_FUNDS_XFER ... ... ... ___ ___________________________ ___ FEP_SETTLE_ONLY ... ... ... ___ ___________________________ ___ FEP_BOOK_ENTRY_SEC ... ... ... ___ ___________________________ Row 1 to 8 of 11 CA_ FEP_ROUTING ... ... ... ___ ___________________________ ___ FEP_TEL_NAME ... ... ... ___ ___________________________ C__ FEP_BANK_NAME ... ... ... ___ ___________________________ S__ FEP_BANK_STATE ... ... ... ___ = ’CT’_____________________ ___ FEP_BANK_CITY ... ... ... ___ ___________________________ ___ FEP_FUNDS_XFER ... ... ... ___ ___________________________ ___ FEP_SETTLE_ONLY ... ... ... ___ ___________________________ ___ FEP_BOOK_ENTRY_SEC ... ... ... ___ ___________________________

D101 USER007.FED_E_PAYMENTS

D105 USER007.FED_E_PAYMENTS

202 Serena® Comparex® 8.7 for z/OS

Page 203: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

DB2 Comparisons in ISPF and Batch

WHERE Predicates Predicate — The Predicate field for a column takes SQL predicate syntax for the WHERE clause in a SELECT statement. For example, the predicate

= ‘CT’

includes all records that contain the postal abbreviation for the state of Connecticut as the value in the selected column of the selected table.

An entry is required if the column is used in the selection criteria for including table data in SYSUT1 or SYSUT2. Selection status is shown in the Sel display field to the right of the column name. If selection status is not turned on, use the S-Select line command and press ENTER to include the column in your SQL selection criteria.

Boolean Operators O/A — The O/A (Or/And) field for a column takes a Boolean operator that specifies how the selection criteria in the predicate field should be combined with selection criteria for other columns. An entry is required if multiple columns in a table are used as data selection criteria. Allowed values are:

RegisteringColumn Selection

Criteria

8 Press ENTER to register and valdate the current column selection criteria. These may be changed as often as required and re-registered by pressing ENTER again. To reset all criteria for a column and start over, use the R-Reset line command.

For example, suppose you press ENTER after typing the column selection criteria shown in the DB2 Column Selection List panel on page 202. Comparex would register your choices and display the registered entries as shown below:

Line Command Description

C - Compare Include column in data for comparison.

If turned on, status is shown in Cmp field.

S - Select Use column in SQL selection criteria.

If turned on, status is shown in Sel field.

Predicate required. If multiple columns are used for selections, also specify OR or AND in the O/A field.

O - Order by, ascending Sort selected data in ascending order by this column.

If turned on, status is shown in A/D field.

A - Order by, ascending Sort selected data in ascending order by this column.

If turned on, status is shown in A/D field.

D - Order by, descending Sort selected data in descending order by this column.

If turned on, status is shown in A/D field.

R - Reset Clear all settings for column.

Operator Shortcut Description

AND A AND this predicate with those for other columns

OR O OR this predicate with those for other columns

NOTE If a shortcut is entered in the O/A field, press ENTER to convert it to the required AND or OR form. Otherise the entry will be ignored.

User’s Guide 203

Page 204: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

DB2 Comparisons in ISPF and Batch

9 When satisfied with the way your selection criteria are registered on the the DB2 Column Selection List panel, enter GO at the Command ==> prompt. Alternatively, press PF12 if you have customized it to store the GO command.

GeneratingSQL SELECTStatements

10 Comparex displays the Start DB2 Table Comparison panel (CPXDB2S5), which requests execution options for the Comparex SQL generator. For example:

First Table — The DB2 subsystem, owner, and name of the first table specified in previous screens is displayed automatically for review. Change it if needed.

Second Table — The DB2 subsystem, owner, and name of the second table specified in previous screens is displayed. Change it if needed.

CPXDB2S3----------- DB2 Column Selection List ---------------------------------- Command ===> Current Profile: xxxx PVT* Enter Option C -Compare, S -Select, O -Order, or any combination of these. Also valid: A -Asc. D -Desc. R -Reset. Enter Command GO when ready. OPT Column Name Cmp Sel A/D O/A Predicate Row 1 to 8 of 11 ___ FEP_ROUTING Cmp ... Asc ___ ___________________________ ___ FEP_TEL_NAME ... ... ... ___ ___________________________ ___ FEP_BANK_NAME Cmp ... ... ___ ___________________________ ___ FEP_BANK_STATE Cmp Sel ... ___ = 'CT'_____________________ ___ FEP_BANK_CITY ... ... ... ___ ___________________________ ___ FEP_FUNDS_XFER ... ... ... ___ ___________________________ ___ FEP_SETTLE_ONLY ... ... ... ___ ___________________________ ___ FEP_BOOK_ENTRY_SEC ... ... ... ___ ___________________________ Row 1 to 8 of 11 ___ FEP_ROUTING Cmp ... Asc ___ ___________________________ ___ FEP_TEL_NAME ... ... ... ___ ___________________________ ___ FEP_BANK_NAME Cmp ... ... ___ ___________________________ ___ FEP_BANK_STATE Cmp Sel ... ___ = 'CT'_____________________ ___ FEP_BANK_CITY ... ... ... ___ ___________________________ ___ FEP_FUNDS_XFER ... ... ... ___ ___________________________ ___ FEP_SETTLE_ONLY ... ... ... ___ ___________________________ ___ FEP_BOOK_ENTRY_SEC ... ... ... ___ ___________________________

D101 USER007.FED_E_PAYMENTS

D105 USER007.FED_E_PAYMENTS

CPXDB2S5------------ Comparex - Start DB2 Table Comparison--------------------Command ===> Enter 'GO' to start the comparison between: First Table: D101 USER007 FED_E_PAYMENTS__________________________________ ___________________________________________________________________________ Second Table: D105 USER007 FED_E_PAYMENTS__________________________________ ___________________________________________________________________________ Limit Rows Selected to: 10000___ (0 to 99999999) Edit SQL Before Start : YES__ (YES or NO) Press ENTER to continue; enter END command to exit.

204 Serena® Comparex® 8.7 for z/OS

Page 205: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

DB2 Comparisons in ISPF and Batch

Limit Rows Selected — Enter a maximum number of rows to be selected from each DB2 table. This prevents a runaway DB2 selection process from consuming too many machine resources.

Edit SQL Before Start — The entry in this field tells Comparex what to do after SQL statements are generated from the preceding screen entries. Enter one of the following values:

YES — Requests Comparex to display the generated SQL statements prior to executing them and running a comparison on the results.

NO — Permits Comparex to skip the editing step. SQL statements are executed immediately after they are generated and the results are then compared.

Supply the requested values, then enter the GO command at the Command ==> prompt. Alternatively, press PF12 if you have customized it to store the GO command.

Viewing and Editing SQL Statements

11 The following panel displays only if you entered YES in the Edit SQL Before Start field of the Start DB2 Table Comparison Table (see Step 10 above). If you entered NO in that field, skip to Assessing the Results of the Comparison below.

12 When the Edit DB2 Select Statements panel (CPXDB2S7) displays, review the generated SQL statements for each table to ensure the syntax is what you expect.

SQL StatementEditing

To edit the displayed SQL statement, position the cursor anywhere in the generated string, then:

Press BACKSPACE/DEL (Delete) to delete characters to the left of the cursor.

Press INS (Insert) to toggle insert mode, then type the desired insertion. Multiple SQL statements of any type you are authorized to execute may be inserted, up to a maximum of 255 characters for each table.

The displayed lines of SQL text wrap automatically. No line edit commands are used.

13 When you are ready to proceed with the comparison, enter the GO command at the Command ==> prompt. Alternatively, press PF12 if you have customized it to store

CPXDB2S7----------- Comparex - Edit DB2 SELECT Statements ---------------------- Command ===> Current Profile: xxxx PVT* Scroll ===> DATA__ Press ENTER to continue making changes; END command to exit. GO when ready. SQL Select statement for: D101 USER007.FED_E_PAYMENTS ------------------------------------------------------------------------------- SELECT FEP_ROUTING, FEP_BANK_NAME, FEP_BANK_STATE FROM USER007.FED_E_PAYMENT S WHERE FEP_BANK_STATE = 'CT' ORDER BY FEP_ROUTING ASC FETCH FIRST 10000 ROWS ONLY ------------------------------------------------------------------------------- SQL Select statement for: D105 USER007.FED_E_PAYMENTS ------------------------------------------------------------------------------- SELECT FEP_ROUTING, FEP_BANK_NAME, FEP_BANK_STATE FROM USER007.FED_E_PAYMENT S WHERE FEP_BANK_STATE = 'CT' ORDER BY FEP_ROUTING ASC FETCH FIRST 10000 ROWS ONLY

User’s Guide 205

Page 206: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

DB2 Comparisons in ISPF and Batch

the GO command. Comparex executes the SQL statements as edited, then compares the results of the two table selections.

Assessing the Results of the Comparison

DB2 Work Files The Comparex DB2 work files for your request are stored in the following libraries:

userid.COMPAREX.SYSIN — parameters used to generate SQL statements

userid.COMPAREX.DB2DATA — DB2 data to be mapped to SYSUT1 and SYSUT2

ComparisonReport

The two members in userid.COMPAREX.DB2DATA are submitted to Comparex for comparison and the results are output to SYSPRINT. You can print a DB2 comparison report or view it online as you would any other Comparex report.

Batch DB2 Table Comparisons with Rexx

A Rexx EXEC may be used to perform batch-mode DB2 comparisons with Comparex. Using Rexx, your comparisons are not limited to columns in two tables that are easily displayed displayed on an interactive panel. Instead, any desired SQL statements of arbitrary complexity may be combined to create the runtime data streams to be compared. For example, a JOIN operation may be used to combine columns from multiple tables into a single data stream for Comparex comparison.

The general procedure for Rexx-driven DB2 comparisons is illustrated by example in the remainder of this section. In this example, the DB2 plan tables are compared to previous execution on a weekly basis so that changes in the plan tables can be tracked.

Sample Rexx Program DB2SMPL

The main routine for example Rexx program DB2SMPL is shown below. The mainline logic calls three routines that do the following:

1 Connect to the desired DB2 subsystem.

2 Issue SQL statements that extract the desired data from DB2 tables.

3 Generate Comparex FIELD format descriptions for the data and write them to an external parameter file that Comparex may subsequently read using SYSIN.

4 Write the extracted data to a flat file that can subsequently be used as input (SYSUT1 or SYSUT2) to a Comparex comparison.

This procedure could be repeated if desired to create a second input dataset.

DB2SMPLMain Routine /* Rexx */

arg subsys call Establish_DB2_Connection call Generate_Field_Statements call Write_Output_Data Exit 0

206 Serena® Comparex® 8.7 for z/OS

Page 207: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

DB2 Comparisons in ISPF and Batch

NOTES ON SOURCE CODE:

arg subsys — The routine expects a DB2 subsystem name to be passed as the runtime parameter subsys.

Exit 0 — The routine exits with return code zero (rc=0) if the job completes normally. (An internal diagnostic section elsewhere exits with return code 08 (rc=8) if errors occur that do not allow processing to continue.)

Source Code to Establish DB2 Connection

The Establish_DB2_Connection routine below establishes a connection with the DB2 subsystem identified by the subsys parameter and executes the SQL needed to retrieve the first row of data from the designated table. The SQL shown here is intentionally simple and hard-coded, as the intent of this example is to illustrate general technique.

DB2 Connectionand Fetching

First Row

NOTES ON SOURCE CODE:

SQLSTMT — This variable contains the SQL statement to be executed.

SUBCOM DSNREXX — Ensures the availability of IBM’s DSNREXX language extension, which (among other things) enables DB2 and SQL support in Rexx. If DSNREXX is not already established, the RXSUBCOM call dynamically adds the extension to the Rexx environment.

CONNECT — Connects to the DB2 subsystem identified in the subsys parameter.

SqlCa — The SqlCa routine does not return if there is an error.

DECLARE — Declare C1 as the cursor of a query to retrieve data using the statement S1 that we are about to prepare.

PREPARE — The statement S1 is prepared for execution using the SQL statement descriptor SQLSTMT as input.

DESCRIBE — The OUT stem is identified as the descriptor to receive the data selected by the SQL statement in S1.

Establish_DB2_Connection:SQLSTMT = 'SELECT * FROM SYSIBM.SYSPLAN' address TSO "SUBCOM DSNREXX" /* HOST CMD ENV AVAILABLE ? */ if rc then s_rc = RXSUBCOM('ADD','DSNREXX','DSNREXX') address DSNREXX "CONNECT" SUBSYS call SqlCa address DSNREXX "EXECSQL DECLARE C1 CURSOR FOR S1" call SqlCa address DSNREXX "EXECSQL PREPARE S1 FROM :SQLSTMT" call SqlCa address DSNREXX "EXECSQL DESCRIBE S1 INTO :OUT" call SqlCa address DSNREXX "EXECSQL OPEN C1" call SqlCa address DSNREXX "EXECSQL FETCH C1 USING DESCRIPTOR :OUT" Return

User’s Guide 207

Page 208: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

DB2 Comparisons in ISPF and Batch

OPEN — Opens the cursor at the first row of the DB2 table.

FETCH — Retrieves the first row of DB2 output matching the SQL selection criteria.

Source Code to Create Comparex Input Parameters

The Generate_Field_Statements routine generates the Comparex keyword parameters needed to process the extracted DB2 data. In particular, it generates FIELD input parameters for each column found in the first row of DB2 data retrieved by the Establish_DB2_Connection routine. Field names are identical to the corresponding DB2 column names. The FIELD parameters instruct Comparex to perform field-level comparisons; they also identify the offset and length of each field to be compared in the the flat file containing the extracted DB2 data. Column names up to 30 bytes in length are supported. (See "FIELD, FIELD1, and FIELD2 Keywords" on page 104 for more information about FIELD input parameters in Comparex.)

The routine then writes the generated parameters to an external parameter file that can be passed as SYSIN to Comparex following the execution of DB2SMPL. This parameter file will be used to control the processing of the extracted DB2 data.

GenerateComparex FIELD

Statements

NOTES ON SOURCE CODE:

cpx.=’’ — Defines a stem whose default values are null.

coff=2 — The data starts at offset 2.

cpx.1 — The first column of the extracted row in this example contains the key, that is, the SYSPLAN plan name in table SYSIBM.SYSPLAN. The above routine generates a Comparex KEY parameter to describe this key field in the extracted DB2 flat file and assigns that parameter to cpx.1. Note that the key value is defined as character data. (See "KEY, KEY1, and KEY2 Keywords" on page 75 for more information on KEY data synchronization parameters in Comparex.)

do ix=2 to out.sqld — For each column in the row, starting with the second (that is, non-key) column, a FIELD statement is generated using the same name as the corresponding DB2 column. Note that all data is typed as character.

coff=coff+out.ix.sqllen+1 — The offset is advanced by the length of the column in sqllen and a one-space gap is added to separate fields.

Generate_Field_Statements: cpx.='' coff=2 cpx.1=" KEY=("coff","out.1.sqllen",C,N="out.1.sqlname") " coff=coff+out.1.sqllen+1 do ix = 2 to out.sqld cpx.ix= " FIELD=("coff","out.ix.sqllen",C,N="out.ix.sqlname") " coff=coff+out.ix.sqllen+1 end ix=ix+1 cpx.ix=" MASK=("coff",END) " ix=ix+1 cpx.ix=" FORMAT=11F " cpx.0=ix address TSO "EXECIO" ix "DISKW CPXSYSIN (FINIS STEM CPX." say ix 'records written to CPXSYSIN’Return

208 Serena® Comparex® 8.7 for z/OS

Page 209: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

DB2 Comparisons in ISPF and Batch

MASK — This Comparex parameter specifies that the remainder of the flat file input record beyond the final column in the row is to be ignored. (See "MASK" on page 92 for more information about the MASK input parameter in Comparex.)

FORMAT=11F — This value of the Comparex FORMAT parameter requests difference reporting using single-line character representation on a field-by-field basis, with the field names included. (See "FORMAT" on page 133 for more information about the FORMAT display keyword in Comparex.)

cpx.0=ix — The zero element of the stem is, by convention, set to the number of elements in the stem.

EXECIO — Writes the stem to the external parameter file CPXSYSIN.

Source Code to Write DB2 Data to a Flat File

The Write_Output_Data routine below arranges the extracted DB2 data in columns with a spacer byte between each item. The spacer is not necessary, but it makes the data easier to view. The formatted columns are then written to the flat file CPXSYSUT. This file may be be passed as SYSUT1 or SYSUT2 to Comparex for comparison after DB2SMPL is complete.

Data is formatted and written for the row extracted by the Establish_DB2_Connection routine above first. The Write_Output_Data routine itself retrieves any remaining rows meeting the SQL selection criteria, formats them, and writes them to CPXSYSUT.

Write DB2 Datato Flat File

NOTES ON SOURCE CODE:

Sysut.=’’ — Defines a stem to hold the extracted DB2 data until we are ready to write it to a flat file for Comparex. Initialized to null values.

sx=0 — Initializes stem counter to zero.

do until (sqlcode <> 0) — Repeats outer loop until there are no more rows to retrieve, at which point the return code (sqlcode) for the most recently executed SQL query will be non-zero.

ox — Output variable containing one reformatted row of extracted DB2 data. Initially set to a null string and reset to null at each pass through the outer loop.

do i = 1 to out.sqld — Repeats inner loop until all columns in the most recently fetched row of DB2 data have been processed.

Write_Output_Data: Sysut.='' sx=0 do until(sqlcode <> 0) ox='' do i = 1 to out.sqld ox=ox left(out.i.sqldata,out.i.sqllen) end sx=sx+1 Sysut.sx=ox address DSNREXX "EXECSQL FETCH C1 USING DESCRIPTOR :OUT" end Sysut.0=sx address TSO "EXECIO" sx "DISKW CPXSYSUT (FINIS STEM SYSUT." say sx 'records written to CPXSYSUT' address DSNREXX "EXECSQL CLOSE C1"Return

User’s Guide 209

Page 210: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

DB2 Comparisons in ISPF and Batch

ox=ox left(out…) — Appends value in the ith column of the most recently fetched row to the output record, separated by a space from previously appended values.

sx=sx+1 — Increments the index to the output stem.

Sysut.sx=ox — The output record ox is copied to the output stem at the location indexed by sx.

FETCH — The next row of DB2 data is fetched and the outer loop is repeated.

Sysut.0=sx — Sets zeroth stem value to the number of elements in the stem.

EXECIO — Writes the reformatted data stem to flat file CPXSYSUT in one operation.

CLOSE — Closes the cursor.

Error Diagnostics

The SqlCa code section below is a simple error trapping routine that reports any SQL diagnostics and exits with a bad return code in the event of an error.

SQL ErrorProcessing

NOTES ON SOURCE CODE:

If all is well, return immediately.

Otherwise, display the SQL return code, reason code, and message. Do not return; instead, exit the program with return code 08.

Batch JCL to Run DB2SMPL

The following JCL passes a DB2 subsystem ID parameter to example Rexx program DB2SMPL and executes the job.

JCL to RunDB2SMPL

SqlCa: if SQLCODE = 0 then return say "SQLCODE = " SQLCODE say "SQLSTATE = " SQLSTATE say "SQLERRMC = " SQLERRMC Exit 8

//*-------------------------------------------------------------------* //TSO EXEC PGM=IKJEFT01,DYNAMNBR=20 //STEPLIB DD DISP=SHR,DSN=DSN710.SDSNLOAD //SYSPRINT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //DSNTRACE DD SYSOUT=* //*-------------------------------------------------------------------* //CPXSYSUT DD DISP=(NEW,CATLG,DELETE),DSN=yourid.COMPAREX.GDG(+1), // SPACE=(TRK,(5,5)), // DCB=(RECFM=FB,LRECL=1024,BLKSIZE=8192) //*-------------------------------------------------------------------* //CPXSYSIN DD DISP=(,PASS),DSN=&&OTH, // UNIT=SYSDA,SPACE=(TRK,(5,5)), // DCB=(RECFM=FB,LRECL=255,BLKSIZE=4000) //*-------------------------------------------------------------------* //SYSEXEC DD DISP=SHR,DSN=yourid.COMPAREX.REXX //SYSTSIN DD * DB2SMPL D123 /*

210 Serena® Comparex® 8.7 for z/OS

Page 211: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

DB2 Comparisons in ISPF and Batch

NOTES ON JCL:

IKJEFT01 — TSO in batch is needed in order to execute SQL in Rexx.

STEPLIB — Change to the dataset name to your actual DB2 DSNLOAD library.

CPXSYSUT — The flat file of extracted and reformatted DB2 data created by Write_Output_Data. Because this example compares DB2 plan tables across weekly executions of the DB2SMPL job, a GDG (Generation Data Group) child node is defined to hold multiple versions of this file from week to week. The CPXSYSUT version created during the current execution of DB2SMPL is written to the GDG as a new generation or version (+1). This version of CPXSYSUT will be referenced in the Comparex execution step below as SYSUT2.

CPXSYSIN — The Comparex parameter file created by Generate_Field_Statements. Written as temporary file identified by the &&OTH refer-back variable and passed to the Comparex execution step below, where it will be read as SYSIN.

SYSEXEC — The library where the DB2SMPL Rexx EXEC is stored.

DB2SMPL D123 — Calls DB2SMPL. D123 is an arbitrary DB2 subsystem ID shown for illustration; change this parameter to an appropriate value.

Batch JCL to Execute Comparex

The following JCL executes the Comparex comparison job after DB2SMPL completes the data extraction process.

JCL to RunComparex

NOTES ON JCL:

STEPLIB — Change the dataset name to your Comparex production load library.

SYSPRINT — Required for all Comparex runs.

SYSUDUMP — Defined just in case it’s needed.

SYSUT1 — The “before” version of the file to be compared by Comparex. Points to the “minus-1” version of CPXSYSUT written to the GDG by DB2SMPL in the execution immediately prior to the most recent run.

SYSUT2 — The “after” version of the file to be compared by Comparex. Points to the current (“zero-level”) version of CPXSYSUT written to the GDG by DB2SMPL during its most recent execution.

SYSIN — The parameter file created by Generate_Field_Statements and passed to Comparex as a temporary file identified by the &&OTH refer-back variable. Contains the FIELD variables and other parameters that instruct Comparex how to perform and display the comparison.

//*-------------------------------------------------------------------*//CPX870 EXEC PGM=COMPAREX,REGION=0M //STEPLIB DD DISP=SHR,DSN=somnode.COMPAREX.V8R7M0.LOAD //*//SYSPRINT DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //SYSUT1 DD DISP=SHR,DSN=yourid.COMPAREX.GDG(-1) //SYSUT2 DD DISP=SHR,DSN=yourid.COMPAREX.GDG(0) //SYSIN DD DISP=(OLD,DELETE),DSN=&&OTH //* C O M P A R E X BATCH EXECUTION

User’s Guide 211

Page 212: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

DB2 Comparisons in ISPF and Batch

Assessing the Results of the Comparison

ComparisonReport

The results of the comparison are output to SYSPRINT. You can print a DB2 comparison report or view it online as you would any other Comparex report.

Limitations of Comparison in DB2 Environments

A few column types require special planning before using them with Comparex, and some DB2 column types cannot be compared successfully by Comparex. However, in general any comparison between columns of the same type and size will be reliable.

Column types which cannot be compared successfully by Comparex are:

Column types for which special length considerations may apply include:

Floating point (real, double, DECFLOAT) — Comparex cannot reliably compare two floating point columns of different lengths (for example, single versus double precision). Same-sized floating point columns should compare reliably. Comparex does not correctly handle the fairly rare and specialized case of comparing normalized versus unnormalized floating point numbers.

Packed decimal — Comparex cannot reliably compare packed decimal fields of differing lengths. Same-sized fields must use the same sign coding for accurate results.

DISPLAY SIGN LEADING SEPARATE and NATIONAL SIGN LEADING SEPARATE — These column types must agree in length and in sign coding for an accurate comparison in Comparex.

Integer — Comparex cannot reliably compare two integer values of different types (for example, INT or INTEGER against SMALLINT or BIGINT).

BLOBBLOB_FILECLOBCLOB_FILEDBCLOBDBCLOB_FILE

XMLXML AS BLOBXML AS CLOBXML AS DBCLOB

212 Serena® Comparex® 8.7 for z/OS

Page 213: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

CPXIFACE INTEGRATION WITH EXTERNAL DATA MANAGERS 1

1

What you will find in this chapter:

• “Panvalet, Librarian, and GEM” on page 213• “All DBMS Products” on page 218• “ADABAS” on page 218• “CINCOM” on page 223• “Condor CAMLIB” on page 224• “DATACOM” on page 226• “DB2 (Legacy Interface)” on page 227• “DL/1” on page 233• “DMS: DASD Management System” on page 236• “IAM” on page 239• “IDMS” on page 240• “OWL - Online Without Limits” on page 247• “WYLBUR” on page 251• “Roll Your Own” on page 252• “Synchronizing Databases” on page 254

Comparex interfaces directly to many different data collection structures such as Panvalet, Librarian, DL/1, DB2, and others. The effectiveness of these direct interfaces is dependent on how the Comparex interface module (CPXIFACE) is generated. If you experience difficulties, contact the systems programmer who installed Comparex to see how the interface is generated. For additional diagnostic information, review the information in message CPX20I to see the INFO feedback about how Comparex is installed.

PANVALET, LIBRARIAN, AND GEM

Comparex can interface directly to CA-Panvalet, CA-Librarian, or FUJITSU/FACOM’s GEM; note, however, that neither SUBSYS=PAM nor SUBSYS=LAM is supported.

Panvalet

Refer to the following example of comparing two members on the same Panvalet library and generating an audit trail for subsequent browsing and/or feeding back into PAN#1. Note that module cobolname1 is permanently updated after this procedure.

213

Page 214: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

21

Chapter 11: CPXIFACE Integration with External Data Managers

//COMPARE EXEC PGM=COMPAREX,REGION=0M//SYSPRINT DD SYSOUT=*//PANDD1 DD DISP=SHR,DSN=somnode.PANLIB//SYSUT3 DD DISP=(,PASS),DSN=&&AUDIT,// UNIT=SYSDA,SPACE=(TRK,(1,1)),// DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200)//SYSIN DD * SYSUT1=(PAN,MEMBER=cobolname1) /* Fill in cobolname1 */ SYSUT2=(PAN,MEMBER=cobolname2) /* Fill in cobolname2 */ TEXT=COBOL,PRINT=MLC COPYDIFF=(PAN,STAMP=YES) /* Generate Audit Trail *///*//TRAIL EXEC PAN$PROC <== Invokes PGM=PAN#1//PANDD1 DD DISP=SHR,DSN=somnode.PANLIB//SYSIN DD DISP=(OLD,DELETE),DSN=&&AUDIT//* EOJ

Note

It is sometimes necessary to specify a different DDNAME for SYSUT2 because your particular release of Panvalet cannot handle the following series of commands:\OPEN(SYSUT1), OPEN(SYSUT2), \SEARCH(SYSUT1), READ(SYSUT1), SEARCH(SYSUT2), READ(SYSUT2), CLOSE(SYSUT1). PAM quite often needs to have SYSUT1 closed before any processing of SYSUT2.

Use the MEMBER options to specify a single member name to be read. To scan the entire library (filters can limit this) leave off the MEMBER option. The optional PARM may be used to further limit the search for members. When processing large Panvalet libraries, such as in listing directories or comparing entire contents, you can specify a starting or ending member name to limit the search. For example:

SYSUT1=(PAN,PARM='S=ABC$,E=DEF9999999')SYSUT2=(PAN,PARM='S=B,E=E',DDNAME=PANLIB2)

Up to ten characters may be specified for starting (S=) and ending (E=) member names. If fewer than ten characters are specified, it is considered a generic starting or ending point to Panvalet. The default starting point is S=$ to support member names beginning with the special characters $, #, and @.

Refer to the following example for comparing a member of one Panvalet library against a member of another Panvalet library.

//COMPARE EXEC PGM=COMPAREX,REGION=0M//SYSPRINT DD SYSOUT=*//PANDD1 DD DISP=SHR,DSN=somnode.PANLIB//PANLIB2 DD DISP=SHR,DSN=somnode.PANLIB2 <=== Note

4

Page 215: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

//SYSIN DD * SYSUT1=(PAN,MEMBER=cobolname1) /* Fill in cobolname1 */ SYSUT2=(PAN,MEMBER=cobolname1,DDNAME=PANLIB2) /* <=== Note */ TEXT=COBOL,PRINT=MLC//* EOJ

Note

It is sometimes necessary to specify a different DDNAME for SYSUT2 because your particular release of Panvalet cannot handle the following series of comands:\OPEN(SYSUT1), OPEN(SYSUT2), \SEARCH(SYSUT1), READ(SYSUT1), SEARCH(SYSUT2), READ(SYSUT2), CLOSE(SYSUT1). PAM quite often needs to have SYSUT1 closed before any processing of SYSUT2.

Potential Error Messages

• PAN - MEMBER NOT FOUND

• PAN - RC=xxxx: last successfully read record (first 60 bytes)

Librarian

This is an example of comparing a member of a Librarian Master against a sequential data set.

Note

Your Librarian release level must be 3.2 or higher. Release 3.1 will not work.

//COMPARE EXEC PGM=COMPAREX,REGION=0M//SYSPRINT DD SYSOUT=*//MASTER DD DISP=SHR,DSN=somnode.LIBARIAN.MASTER//SYSUT2 DD DISP=SHR,DSN=somnode.PROGRAM1.ASM//SYSIN DD * SYSUT1=(LIB,MEMBER=PROGRAM1) TEXT=BAL,PRINT=MLC//* EOJ

Here is an example of comparing the directories of two Librarian Masters:

//COMPARE EXEC PGM=COMPAREX,REGION=0M//SYSPRINT DD SYSOUT=*//LIB1 DD DISP=SHR,DSN=somnode.LIBARIAN.MASTER1

215

Page 216: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

21

Chapter 11: CPXIFACE Integration with External Data Managers

//LIB2 DD DISP=SHR,DSN=somnode.LIBARIAN.MASTER2//SYSIN DD * SYSUT1=(LIB,DDNAME=LIB1),SYSUT2=(LIB,DDNAME=LIB2) DIR=PDF /* Compare the directories only *///* EOJ

Potential Error Messages

• LIB - ARCHIVING NOT ALLOWED

• LIB - BEYOND MAXIMUM ARCHIE

• LIB - MEMBER NOT FOUND

• LIB - READ ERROR - xxxx

• LIB - RC=xxxx: last successfully read record (first 60 bytes)

GEM

This is an example of comparing a range of members from a GEM library against a PDS.

//COMPARE EXEC PGM=COMPAREX,REGION=0M//STEPLIB DD DISP=SHR,DSN=somnode.COMPAREX.LOAD//SYSPRINT DD SYSOUT=*//GEM DD DISP=SHR,DSN=somnode.GEM <=== FUJITSU/FACOM Only//SYSUT2 DD DISP=SHR,DSN=somnode.PDS//SYSIN DD * SYSUT1=(LIB,DDNAME=GEM) /* Get to GEM as 'LIB' */ TEXT=$. /* Wildcard TEXT */ FILTERIN=(MEMBER,1,GE,C'CPX') /* Members starting */ FILTERIN=(MEMBER,1,LE,C'FOX') /* with 'CPX' thru 'FOX' *///* EOJ

Potential Error Messages

• GEM Interface

— GEM - OPEN ERROR - xxxx

— GEM - SEARCH ERROR - xxxx

— GEM - MEMBER NOT FOUND

— GEM - RC=xxxx: last successfully read record (first 60 bytes)

6

Page 217: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

Special Note

When comparing a single member of a Panvalet (or Librarian) library against another member of the same (or different) Panvalet (or Librarian) library, the first member must be completely exhausted into the BUFFer and then into dynamic storage in 32K chunks before processing the second member.

If the second member is on a different library, the first must be CLOSed, the second must be OPENed and SeaRCHed before READing can commence. If the first member is quite large, (10,000 lines or larger) all available storage may be devoured before the second member can be processed.

The symptom of this occurring is an abend 878; the solution is to increase the region size.

If processing under MVS/XA or MVS/ESA, storage is obtained above the line. It is unlikely that this reservoir could be exhausted by even the largest of programs.

When invoking this interface, and the intent is to compare an entire PAN to PAN or LIB to LIB, be aware of these restrictions:

• A DIRECTORY compare is always possible.

• A TEXT compare of every member to every matching member can be performed, but requires that a differently-named interface module be used for the SYSUT2 slot and a different DDNAME. Otherwise you will receive message CPX31A before any comparison proceeds. For example:

//SYSIN DD* CPXIFACE1=CPXIFACE /* standard module name CPXIFACE2=CPXIFAC2 /* name reflects whatever installer has named copy of standard module SYSUT1=PAN,SYSUT2=(PAN,DDNAME=PAN2) TEXT=$.,PRINT=MLC

/* end of input parameters

Note on Parameters

The OTH subparameter of the SYSUT1 and SYSUT2 keywords can spread the PARM across two input records. The maximum length of the PARM is still 64 bytes, but with so many other subparameters present, crossing to the next input line lets you get the maximum size PARM. For example:

SYSUT1=(OTH,M=MEMBER,INCLUDE=YES,PARM='spread-parameter-to-the-next-line-for-a-maximum-of-64-bytes')

Whatever has been specified for PARM is echoed back to you under the CPX21I and/or CPX22I messages.

217

Page 218: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

21

Chapter 11: CPXIFACE Integration with External Data Managers

ALL DBMS PRODUCTS

Comparex is the only comparison utility designed to compare, in at least three ways, records stored and maintained by database management systems (DBMSs). The SEGMENT keyword and KEY keyword have been designed to synchronize between versions of these files.

1. The databases themselves are read directly by Comparex through the Comparex interface (CPXIFACE). Most, but certainly not all, DBMSs are supported such that direct reads are possible. Contact your system programmer who installed Comparex and see how they generated it.

2. Reorganizationally unloaded versions of these databases are compared. Each DBMS product provides reorganizational unload/reload utilities for the handling of the database. These utilities let you move the database from an environment where it can be accessed only by the DBMSs routines to a file structure that is handled by IBM’s access methods.

3. Lastly, the files themselves that the individual DBMS product stores in its database can be read via QSAM, ISAM, and/or VSAM access methods. This is not very accurate in determining what has changed because what is compared are large blocks (usually) where all individual segment or record boundaries are lost. This should only be done if speediness is essential and it is known that very minor modification (no inserts) have been done.

Comparex compares reorganizationally unloaded versions of all known database management systems. As stated previously, not all DBMSs may be read directly using CPXIFACE, but we will discuss how to process the majority.

ADABAS

ADABAS from Software AG is a DBMS that is not hierarchical and also contains a fourth generation (4GL) language called Natural. Both the data and Natural software can be processed and compared.

Note

It is not possible to use the ISPF interface to read ADABAS directly, as too many special DD cards are needed.

Direct ADABAS Interface

//ADABAS EXEC PGM=COMPAREX,REGION=0M//SYSPRINT DD SYSOUT=*//STEPLIB DD DISP=SHR,DSN=somnode.COMPAREX.LOAD// DD DISP=SHR,DSN=somnode.ADABAS.ADALOAD//* <=== ADABAS specific DD card images go here, such as://DDPRINT DD SYSOUT=*

8

Page 219: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

//DDCARD DD *ADARUN PR=USER,DATABASE=100,DEVICE=3380,SVC=247,MODE=SINGLE,ADARUN LOGGING=YES,LOGCB=YES,READONLY=YES,ADARUN LU=60000//SYSIN DD * CPXIFACE=CPXADABS /* Special interface module */***************************************************************** Point SYSUT1 to Database 3, File 4, Logical key field ** BC and retrieve fields AA, AB, AU, BF, and DX1-5. ** Set Record buffer (SYSUT1 & SYSUT2) to 4000 bytes. ***************************************************************** SYSUT1=(OTH,M=A,PARM=DDNAME)***************************************************************** Point SYSUT2 to the Database 2, File 9, Logical key field ** BJ and retrieve fields CA, CB, CU, DF, and FX1-5. In all ** cases, Member name must be specified, anything will do. ***************************************************************** SYSUT2=(OTH,M=ANYTHING,PARM='D2F9,RB=4000,K=BJ,F=BJ,CA,CB,CU,DF,FX1-5') KEY=(1,8,,A),FORMAT=25,MAXDIFF=50,CONTINUE//SYSUT1 DD * COLUMN 72 ===>|D03F4,RB=4000,K=BC,F=BC,AA,AB,AU,BF,DX1,DX2,DX3,DX4,DX5,DX6,DX7,DX8,DS9,DX10,DX11,DX12,DX13//* EOJ

When reading data records (not Natural members) it is necessary to pass a member name to the interface. Any member name will do. For example:

SYSUT2=(OTH,M=any,PARM='D2F9,K=BJ,F=BJ,CA,CB,CU,DF,FX1-5')

If no member name is specified, the error message:

“ADABAS - MEMBER NAME REQUIRED”

is returned.

The key to the specifications here is in the PARM= subparameter of SYSUT1 and SYSUT2. The format of the “PARM” information is:

PARM='Ffff,P=password,C=cipher,RB=nnnn,K=kk,F=bbbbbbbbbbbbbbbbb'

or

PARM='DdddFfff,KI=kk,S=ssss,F=bbbbbbbbbbbbbbbbb'

or

PARM='DddFff,P=pass,LS=llllllll'

219

Page 220: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

22

Chapter 11: CPXIFACE Integration with External Data Managers

or

PARM='Ff,LO=llllllll'

where apostrophes are mandatory if any commas or blanks are present (normal case) in the parameter data.

If an ADABAS file is password protected, it can be accessed by specifying the correct one to eight character positional (just after DddFff) password via the P= keyword.

If a special ciphering exit (considered rare) is to be called because the data is encrypted, it can be specified via the C= keyword.

The RB= keyword specifies the size of the allocated record buffer in bytes. Some shops have serious storage constraints and the default 16K record buffer causes problems at open time. The format buffer size is dynamically calculated.

There are two forms to specifying an ascending key (K=kk and KI=kk). Specifying KI=kk has the same major result as K=kk, but with the added benefit of retrieving the ISN of the record as the first four bytes of returned data.

There are two forms for specifying a starting value for reading data records such that the begin point is beyond the first record. Specifying S=ssss means starting at the character string “sss”, but specifying SX=ssss means starting at the hexadecimal string X‘ssss’.

Because the maximum parameter length is 64 bytes and your specifications for a complex format buffer may require more, there is an option to read the parameter information from a file. To do this, specify PARM=DDNAME. For example:

SYSUT1=(OTH,M=whatever,DDNAME=ADAPARM1,PARM=DDNAME)

In the instance above, file ADAPARM1 will be opened, read until exhaustion, and closed. All of the rules associated with the parameter keywords still apply but hundreds of bytes are available for specification.

If PARM=DDNAME is specified, whatever DDNAME=xxxxxxxx is used to read the file. If no DDNAME is specified, then SYSUT1 (or SYSUT2) is used to open the file.

The format buffer can be either manually constructed (F=AB,...) or dynamically built at open time. The manual method is considered tedious and the dynamic route sometimes retrieves more than desired. You can request that the dynamic format buffer be written to another file (along with the rest of the PARM) for subsequent editing and return back into a future execution of Comparex. INCLUDE=YES is the method for requesting this service.

If subkeyword DDNAME= specifies a ddname, it will be written there. If no specification is made for DDNAME, it will be written to SYSUT1 or SYSUT2. For example:

SYSUT1=(OTH,M=A,PARM=D105F25,DDNAME=UT1PARM,INCLUDE=YES)

In the instance above, a file will be written to //UT1PARM for which the DCB characteristics are forced at RECFM=F and BLKSIZE=80. A maximum of 50 bytes (comma delimiter respected) of each record is counted as the parameter is reread on subsequent executions.

0

Page 221: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

The MEMBER (or M) option is used for specifying particular members of Natural libraries, either source or object and must be specified for database (DATA) processing.

In reading DATA, a read physical (L2) call is the default unless you want a read logical (L3) call. For example:

PARM='D3F12,K=AB'

which will read database 3 and file 12 logically in ascending sequence of field 'AB'. On physical (L2) reads, the ISN of the record is returned in the first four binary bytes of the record area. On logical (L3) reads, the ISN is not returned unless KI=kk has been specified. You may also specify the particular fields to be retrieved. If you don't specify fields, then all fields will be retrieved. The field specifications are exactly that for the Format Buffer which you should be familiar with. For example:

PARM='D001F013,K=AR,F=AR,AA,AB,AC' <=== Can spread to next line

Note

When processing periodic groups, only the count and first occurrence are returned if you are not specifying your own field statements. You can define the field statement with a periodic group by typing in the field statements using F=xx1-? format.

In reading Natural programs, use the LS= (Library of Source) or LO= (Library of Object) options. For example:

SYSUT1=(OTH,M=MEMBER1,PARM='D1F8,LS=MYSOURCE')

or

SYSUT2=(OTH,PARM='D2F8,LO=MYOBJECT')

In the Comparex tradition, individual members or entire libraries (subject to filtering) can be processed.

Note

In the special case of comparing Natural source where the code is deemed Global Data Area (GDA), each record is prefixed with 16 bytes of pointer data. We recommend that you compare on different columns instead of using TEXT=NATURAL. For example:

TEXT,LINE=80,FRAME=NUM,SQZ=C' ',FIELD=(17,63)//ADABAS EXEC PGM=COMPAREX,REGION=0M//STEPLIB DD DISP=SHR,DSN=somnode.COMPAREX.LOAD//SYSPRINT DD SYSOUT=*//* <=== ADABAS specific DD card images go here.//SYSIN DD * CPXIFACE=CPXADABS /* Special interface module */

221

Page 222: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

22

Chapter 11: CPXIFACE Integration with External Data Managers

***************************************************************** Compare all Natural programs in production library PROD to ** testing library PREPROD. ***************************************************************** SYSUT1=(OTH,PARM='D240F08,LS=PROD') /* Production lib SYSUT2=(OTH,PARM='D111F08,LS=PREPROD') /* Pre-Production lib TEXT=NATURAL,PRINT=MLC,MBRHDR=COND /* Recommended method//* EOJ

Potential Error Messages

• ADABAS - OPEN ERROR - xxx

In the special case of xxx = 152 or 053, you must modify the LU keyword parameter of ADARUN to increase (recommend LU=60000) the size. If you process with release 5 and get a user abend 35 after message CPX04I, you have made a syntax error on the ADARUN specifications.

• ADABAS - OPEN ERROR

• ADABAS - PARAMETER DATA ERROR

• ADABAS - DATABASE/FILE ERROR

• ADABAS - RECORD BUFFER SIZE ERROR

• ADABAS - PARM FILE OPEN ERROR

• ADABAS - FIELD DEFINE ERROR - xxx

• ADABAS - LOGICAL READ (L3) ERROR - xxx

• ADABAS - LIBRARY NOT FOUND

• ADABAS - MEMBER NOT FOUND

• ADABAS - MEMBER NAME REQUIRED

• ADABAS - READ ERROR - xxx

Note

To continue the parameter to a second line, the last comma on the first line must end in column 72 and the subsequent line must start in column 1 (otherwise “ERROR?” will occur).

Note

Any password will be suppressed with asterisks on the output listing.

2

Page 223: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

CINCOM

CINCOM Systems in Cincinnati, Ohio, has three related products in the DBMS market:

TOTAL - one of the first database access methods ever produced

SUPRA - a more modern version of TOTAL

MANTIS - the fourth generation (4GL) language of processing SUPRA databases

This interface supports only reading the MANTIS source code. The interface to MANTIS source code does not go directly against the VSAM repository holding the code, panels, or views. Instead, you must run the MANTIS batch (MANTISB) utility against it and retrieve a portion of it to DDNAME PRINTER. That file is what is processed and/or compared. See the following example of the keyword structure necessary to read MANTIS source code.

//UNLOAD1 EXEC PGM=MANTISB//* <=== MANTISB specific DD card images go here.//SETPRAY DD DISP=SHR,DSN=vsam.cluster.name//PRINTER DD DISP=(,PASS),DSN=&&UNLOAD1,// UNIT=SYSDA,SPACE=(CYL,(5,5),RLSE),// DCB=(attributes)//*//UNLOAD2 EXEC PGM=MANTISB//* <=== MANTISB-specific DD card images go here.//PRINTER DD DISP=(,PASS),DSN=&&UNLOAD2,// UNIT=SYSDA,SPACE=(CYL,(5,5),RLSE),// DCB=(attributes)//*//MANTIS EXEC PGM=COMPAREX//STEPLIB DD DISP=SHR,DSN=somnode.COMPAREX.LOAD//SYSPRINT DD SYSOUT=*//SYSUT1 DD DISP=(OLD,DELETE),DSN=&&UNLOAD1//SYSUT2 DD DISP=(OLD,DELETE),DSN=&&UNLOAD2//SYSIN DD * CPXIFACE=CPXCINCM /* Special interface module */ SYSUT1=(OTH,PARM=MANTIS),SYSUT2=(OTH,PARM=MANTIS) TEXT,PRINT=MLC,MLC=5,LINE=(80,ALPHA) FIELD=(8,71),FRAME=NUM,SQUEEZE=C' '

PARM=MANTIS must be set to process the unloaded MANTIS objects. MANTIS source code contains numerics in the first five positions with leading zeroes suppressed, followed by two spaces. Using FIELD=(8,71) ignores the sequence number and spaces, and compares only the code. MANTIS views and screens can be compared without difficulty.

223

Page 224: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

22

Chapter 11: CPXIFACE Integration with External Data Managers

The MEMBER (or M) option is used for specifying a particular member of the unloaded MANTIS library. Even though the files are considered flat, the interface treats them as though they are directory-embedded, and hence the DIRECTORY (or DIR) keyword generates a legitimate DIRECTORY comparison.

Note

It is imperative that, when invoking MANTISB to unload programs, views, and screens, the member names must be in alphabetical order. Otherwise, unpredictable results occur.

Potential Error Messages

• CINCOM - POSITIONAL PARAMETER ERROR - TOT/SUP/MAN

• CINCOM - UNABLE TO OPEN SEQUENTIAL MANTISB FILE

• CINCOM - MEMBER NOT FOUND

CONDOR CAMLIB

This read-only interface processes the Condor CAMLIB library. You may compare the directories, individual members, or the entire library to another library.

Invoking Comparex to Process a CAMLIB

The default filename for SYSUT1 is GAUT1 (GAUT2 for SYSUT2). You may specify another filename in this format:

SYSUT1=(OTH,DDNAME=ABC1)

but only the first four characters will be used, and they will be internally prefixed with GA by the CAMLIB USROPN module.

To compare a particular member and it has multiple versions and/or a password, you must specify the particular version and/or its associated password in the “PARM” area:

SYSUT1=(OTH,MEMBER=MEMBER,PARM='002WXYZ')

where the layout of PARM is fixed in this fixed format:

PARM='nnnpass'

where ‘nnn’ is three numeric digits and ‘pass’ is the password.

If you compare an entire CAMLIB library to some other library, and you match on a member name that is password protected, the content of the member is not read and compared. Instead, a single record will be returned with the following contents:

--PASSWORD PROTECTED/MEMBER SKIPPED-- 1

4

Page 225: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

informing you that this password-protected member is intentionally being bypassed. On the difference report (assuming TEXT=COBOL) this single line will appear where the SYSUT1 member would normally appear. Similarly,

--PASSWORD PROTECTED/MEMBER SKIPPED-- 2

will appear where the SYSUT2 member would normally appear.

If you are processing a member that contains any ./ INCLUDE statements, they must be resolved and expanded. There must be DD statements in your JCL whereby the INCLUDE can be found. It can even point to a different CAMLIB library.

Note

The subkeyword INCLUDE=NO is crippled. Every ./ INCLUDE is expanded internally and cannot be circumvented.

Direct CAMLIB Interface

//yourjob JOB (365,50),'COMPAREX EXAMPLE',CLASS=A//COMPAREX EXEC PGM=COMPAREX,REGION=0M//SYSPRINT DD SYSOUT=*//SYSUT1 DD DISP=SHR,DSN=somnode.FIRST.CAMLIB//SYSUT2 DD DISP=SHR,DSN=somnode.SECOND.CAMLIB//SYSIN DD * CPXIFACE=CPXCAMLB /* Special interface module */ SYSUT1=OTH,SYSUT2=OTH DIR=PDF//EXTENT SYS002,SYSWK1,1,0//LIBDEF*,SEARCH=PHOENIX.PHOENIX <==== libdef statement for the phoenix library (gaolps1 phase needed)

Potential Error Messages

• CAMLIB - USROPN ERROR - xx

• CAMLIB - USRDIR ERROR - xx

• CAMLIB - MEMBER NOT FOUND

• CAMLIB - PASSWORD MISMATCH

• CAMLIB - USRGET ERROR - xx

225

Page 226: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

22

Chapter 11: CPXIFACE Integration with External Data Managers

DATACOM

This read-only interface processes the database structure from Computer Associates called DATACOM.

Invoking Comparex to Process a DATACOM Database

There are three variations on how to install the interface. The third (and recommended) variation is the most dynamic because it processes any existing URT that has ACCESS=SEQ. If that method is chosen by your installers, then the keyword CPXURT=xxxx must be the first literal of your PARM data:

SYSUT1=(OTH,M=tbl,PARM='CPXURT=urtname,K=kkkkk,D=155,E=eeee1')

or

SYSUT1=(OTH,M=tbl,PARM='K=kkkkk,E=eeee1,eeee2,eeee3')

The table name (sometimes called the file name) is passed to the interface through the Member option. It can be one to three characters long. If it is longer than three characters, only the first three will be used.

The PARM is where you specify:

• CPXURT=xxxxxxxx (where xxxxxxxx is the User Requirements Table). This is required if the dynamic route has been chosen at installation

• key name

• database number

• element name(s)

The database number (D=) is optional but the rest are mandatory.

Following is an example of how to print a single database.

Direct DATACOM Interface - Print

//CPXDATCM JOB ...//COMPARE EXEC PGM=COMPAREX,REGION=0M//SYSPRINT DD SYSOUT=*//SYSIN DD * SYSUT1=(OTH,M=G01,PARM='CPXURT=DBFLT02,K=ABC01,E=UK34') CPXIFACE=CPXDATCM /* Special interface module */ SYSUT2=DUMMY,MAXDIFF=50,CONTINUE

Following is an example of how to compare two databases.

6

Page 227: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

Direct DATACOM Interface - Compare

//CPXDATCM JOB ...//COMPARE EXEC PGM=COMPAREX,REGION=0M//SYSPRINT DD SYSOUT=*//SYSIN DD * CPXIFACE1=CPXDATCM,CPXIFACE2=CPXDATC2 /* Dual modules SYSUT1=(OTH,M=G35,PARM='CPXURT=DBFLT01,K=ABC01,D=055,E=UK34') SYSUT2=(OTH,M=G35,PARM='CPXURT=DBFLT03,K=ABC01,D=155,E=UK34')

DATA,MAXDIFF=10,CONTINUE,FORMAT=05

Installation Considerations

It is imperative that you understand how the installer generated CPXIFACE into CPXDATCM. If you assume that a dynamic approach was taken by the installer and it wasn’t, failure is certain.

Potential Error Messages

• DATACOM - MEMBER NAME IS TABLE NAME - MISSING

• DATACOM - KEY NAME MISSING (K=)

• DATACOM - ELEMENT NAMES MISSING (E=)

• DATACOM - OPEN ERROR - rc/nnn

• DATACOM - DATABASE ID ERROR (D=)

• DATACOM - GSETL ERROR - rc/nnn

• DATACOM - GETIT ERROR - rc/nnn

DB2 (LEGACY INTERFACE)

This read-only interface enables Comparex to perform comparisons on IBM DB2 database tables. This interface uses either the DSN command or the Call Attach Facility, as configured by the user at the time of Comparex installation.

Installation Considerations

The generation of CPXIFACE must be done in accordance with your shop standards for implementing Assembler programs that access your DB2 tables. The source code must pass the preprocessor (DSNHPC), which extracts the static SQL statements to create a DBRM that must go through a BIND in the normal manner.

227

Page 228: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

22

Chapter 11: CPXIFACE Integration with External Data Managers

In addition, a decision must be made at installation time whether the DSN command or the Call Attach Facility will be used to integrate Comparex with DB2. If the Call Attach Facility is used, it is not possible to simultaneously access two separate DB2 subsystems (ABEND S200 will result). You must unload the first database to a flat file and then compare it to the second database under its subsystem.

There are ways to unload a DB2 database to a flat file other than Comparex, but they are not recommended in preparation for a Comparex comparison. Comparex will not process an “image copy” of a DB2 database.

Note

It is possible to use the ISPF Interface to read DB2 databases directly but only through the Call Attach Facility. It is impossible via TSO-DSN.

Note

The Comparex-DB2 interface defaults to a maximum of 300 columns. To process a table with more than 300 columns, adjust the &MAXCOL parameter in CPXIFACE.

Invoking Comparex to Process a DB2 Database

This is the proper syntax for SYSUT1:

SYSUT1=(OTH,M=tab.name,PARM='CAF=xxx.pppp,part1;part2;part3')

or

SYSUT2=(OTH,PARM=DDNAME,M=table,DDNAME=DB2PARM2)

or

SYSUT1=(OTH,PARM='part1;part2;part3',M=table,INCLUDE=YES)

Note that the physical PARM (or file equivalent - DDNAME=DB2PARM) must run contiguously with predefined delimiters.

The table name is passed to the interface through the Member option. The maximum length is 32 characters.

The PARM is where you specify the three parts (not including the CAF keyword) separated by a semicolon. The use of apostrophes is prohibited in the PARM because that is the delimiter. The interface will substitute an apostrophe for every quotation (") mark used. Because the maximum length parameter is 64 bytes and your specifications for a complex Select clause may require more, there is an option to read the parameter information from a file. To do this, specify PARM=DDNAME.

For example:

SYSUT1=(OTH,M=table.name,DDNAME=DB2PARM1,PARM=DDNAME)

8

Page 229: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

In the preceding instance, file DB2PARM1 will be opened, read until exhaustion, and closed. All of the rules associated with the parameter keywords still apply but hundreds of bytes are available for specification. If PARM=DDNAME is specified, whatever DDNAME=xxxxxxxx is used to read the file. If no DDNAME is specified, then SYSUT1 (or SYSUT2) is used to open the file.

• CAF= is optional and can be used only if CPXIFACE is generated for the Call Attach Facility. The format is CAF=dddd.pppppppp where dddd is the DB2 subsystem name and pppppppp is the Plan name. If not specified, the subsystem name is DSN and the Plan name is CPXIFACE.

• part1 is required. It specifies the what of the dynamic SQL statement to read a table.

• part2 is optional. It specifies the where clause of the SQL statement.

• part3 is also optional. It specifies the order by clause of the SQL statement.

Ordinarily, the rows as returned to Comparex for display and/or comparison will contain just the data requested in contiguous storage. If INCLUDE=YES is specified, the field names, followed by an equal sign, precede the variable data, and the data is terminated by a semicolon.

If you have used INCLUDE=NO and specified a KEY (or KEY1/KEY2 pair), those displacements will now be off if you change that to INCLUDE=YES. As indicated above, the actual data is preceded by a column name and an equal sign.

If KEY=(1,10) were specified before, INCLUDE=YES is now specified, the first column name is ‘SS_ACCOUNT’, then the key would have to be updated to KEY=(12,10) because the actual data would now be:

'SS_ACCOUNT=ss_account;'.

Following are some SYSUT1/SYSUT2 specifications and the dynamic SQL statement internally generated by each:

SYSUT1=(OTH,M=DB2TEST.TNYT1010,PARM=*,INCLUDE=YES)Generates ==> SELECT * FROM DB2TEST.TNYT1010 SYSUT2=(OTH,M=DB2TABLE.FOR.TES,PARM='ORDER;ABC = 123')Generates ==> SELECT ORDER FROM DB2TABLE.FOR.TESTING WHERE ABC = 123 SYSUT1=(OTH,PARM=*;DDABAL LIKE "E%1";DDANUM',M=TABDDA)Generates ==> SELECT * FROM TABDDA WHERE DDABAL LIKE 'E%1' ORDER BY DDANUM SYSUT1=(OTH,M=DB2TEST.TNYT1010,INCLUDE=YES,PARM='*;NTSTORE IN("0020","0016","0098");NTORDER') /* Note PARM crosses two linesGenerates ==> SELECT * FROM DB2TEST.TNYT1010 WHERE NTSTORE IN ('0020','0016','0098') ORDER BY NTORDER

229

Page 230: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

23

Chapter 11: CPXIFACE Integration with External Data Managers

SYSUT2=(OTH,M=DDA_VIEW,PARM='CAF=DSNT.CPXDB2CA,*;;ACCOUNT')Generates ==> SELECT * FROM DDA_VIEW ORDER BY ACCOUNT

Direct DB2 Interface - Print 50 Rows

The following example shows how to print a single table.

//CPXDB2 JOB ...//TSO EXEC PGM=IKJEFT01,DYNAMNBR=20//STEPLIB DD DISP=SHR,DSN=somnode.COMPAREX.LOAD//SYSPRINT DD SYSOUT=*//SYSTSPRT DD SYSOUT=*//DSNTRACE DD SYSOUT=*//SYSTSIN DD * DSN SYSTEM(DSN) RUN PROGRAM(COMPAREX) PLAN(CPXIFACE)//SYSIN DD * CPXIFACE=CPXIFACE /* Default interface module name */ SYSUT1=(OTH,M=DB2TEST.TNYT1010,PARM='*',INCLUDE=YES) /* All Rows SYSUT2=DUMMY,MAXDIFF=50,CONTINUE//*

Direct DB2-CAF Interface - Compare

The following example shows how to compare two tables if CPXIFACE has been generated using the Call Attach Facility.

//CPXDB2 JOB ...//DB2CAF EXEC PGM=COMPAREX//STEPLIB DD DISP=SHR,DSN=somnode.COMPAREX.LOAD//SYSPRINT DD SYSOUT=*//SYSIN DD * CPXIFACE=CPXIFACE /* Default interface module name */ SYSUT1=(OTH,M=MY_VIEW,PARM='CAF=DSNT,*') /* Call Attach Facility SYSUT2=(OTH,M=YOUR_VIEW,PARM='CAF=DSNT.planname,*') /* Subsystem DSNT MAXDIFF=200,CONTINUE//*

0

Page 231: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

Direct DB2 Interface - Compare

The following example shows how to compare two tables under the TSO DSN command processor.

//CPXDB2 JOB ...//TSO EXEC PGM=IKJEFT01,DYNAMNBR=20//STEPLIB DD DISP=SHR,DSN=somnode.COMPAREX.LOAD//SYSPRINT DD SYSOUT=*//SYSTSPRT DD SYSOUT=*//DSNTRACE DD SYSOUT=*//SYSTSIN DD * DSN SYSTEM(DSN) RUN PROGRAM(COMPAREX) PLAN(CPXIFACE)//SYSIN DD * CPXIFACE=CPXIFACE /* Default interface module name */ SYSUT1=(OTH,M=TNYT1010,INCLUDE=NO,PARM=DDNAME) SYSUT2=(OTH,M=EMPLOYEE,PARM='*;;KEYFIELD') MAXDIFF=200,CONTINUE//SYSUT1 DD *EMPLOYEENBR, EMPDISCOUNT, FIRSTNAME, MIDDLENAME, LASTNAME, DATAFIELD1,DATAFIELD2, DATAFIELD3, DATAFIELD4, DATAFIELD5;EMPLOYEENBR > 300 ANDEMPDISCOUNT < .20;EMPLOYEENBR//*

Direct DB2-CAF Interface - Unload/Compare

The following example shows how to unload a DB2 database to a flat file, and compare it against the updated DB2 database.

//CPXDB2 JOB ...//DB2UNLOD EXEC PGM=COMPAREX//STEPLIB DD DISP=SHR,DSN=somnode.COMPAREX.LOAD//SYSPRINT DD SYSOUT=*//SYSUT3 DD DISP=(,CATLG,DELETE),DSN=somnode.DB2BASE,// UNIT=SYSDA,SPACE=(TRK,(9,9),RLSE),// DCB=(RECFM=VB,LRECL=4000,BLKSIZE=4096)//SYSIN DD * CPXIFACE=CPXIFACE /* Default interface module name */ SYSUT1=DUMMY SYSUT2=(OTH,M=tablename,PARM='*',INCLUDE=YES) /* <=== TABLE NAME */ COPYDIFF,MAXDIFF=5,CONTINUE /* Limit printing */

231

Page 232: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

23

Chapter 11: CPXIFACE Integration with External Data Managers

//*//*//* At this point, we have unloaded the DB2 table to a flat file//* called "somnode.DB2BASE". Now we can optionally restore the//* database and update it iteratively with whatever programs//* are being tested. Then we Comparex the flat file against//* the freshly updated database to see what changes were made.//*//DB2CAF EXEC PGM=COMPAREX//STEPLIB DD DISP=SHR,DSN=somnode.COMPAREX.LOAD//SYSPRINT DD SYSOUT=*//SYSUT1 DD DISP=SHR,DSN=somnode.DB2BASE//SYSIN DD * CPXIFACE=CPXIFACE /* Default interface module name */ SYSUT2=(OTH,M=tablename,PARM='CAF=DSNT,*') /* <=== TABLE NAME */ MAXDIFF=200,CONTINUE//*

Sample Code

Sample JCL for comparing DB2 objects is provided in library somnode.COMPAREX.IFACE. The sample members are:

•DB2CAF1 •DB2CAF2 •DB2DI2 •DB2P50

Potential Error Messages

• DB2 - MEMBER NAME IS TABLE NAME - MISSING

• DB2 - PARM REFLECTS REQUESTED ELEMENTS - MISSING

• DB2 - PREPARE ERROR/-nnn;db2 formatted error message

• DB2 - DESCRIBE ERROR/-nnn;db2 formatted error message

• DB2 - OPEN CURSOR ERROR/-nnn;db2 formatted error message

• DB2 - FETCH ERROR/-nnn;db2 formatted error message

• DB2 - PARM FILE OPEN ERROR

• DB2-CAF - UNABLE TO LOAD DSNALI - CALL ATTACH INTERFACE

• DB2-CAF - SHUTTING DOWN - FORCE/ABTERM

2

Page 233: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

• DB2-CAF - RC=xxx;RSN=yyyyyyyy;CAF message text

Note

Refer to the IBM publication Database 2 Messages and Codes - SC26-4113 for an explanation of the -nnn numbers in the messages listed above. Refer to the IBM publication Advanced Application Programming Guide - SC26-4292 Chapter 3, CAF Return/Reason Codes, for an explanation of the xxx return codes and yyyyyyyy reason codes.

DL/1

DL/1 databases are hierarchical in structure. IBM, the developer of DL/1, has coined the terms HDAM, HIDAM, HISAM, and SHISAM to describe the organizational methods, but all these methods are essentially usages of QSAM, ISAM, and VSAM. These QSAM, ISAM, and VSAM file organizations can be handled directly by Comparex.

There are ways to unload a DL/1 database to a flat file other than Comparex, but they are not recommended in preparation for a comparison. Comparex will not process an “image copy of a DL/1 database.

Following is a graphical layout of what the individual records look like as returned to Comparex by CPXIFACE:

It is sometimes necessary to unload both of the databases to flat files and sort them before having Comparex compare them. One of the cases where this is advised is if the databases are large HDAM files and either the randomizing algorithm has changed, or there are many inserts or deletes. If sorting is required, sort on the concatenated key in ascending order:

SORT FIELDS=(13,56,CH,A)

You may use any PSB (except one that has Proc Option “L” for load) that exists in your applicable PSBLIB, as long as it contains a PCB window for the appropriate DBD - database. To compare two databases in the same execution, the PSB must contain at least two PCBs with unique DBD names.

For FASTPATH, set KW=IFP; for full function, set KW=DLI or KW=BMP. For FASTPATH in particular, the settings in CPXIFACE to generate the DL/1-FASTPATH interface correctly are:

&DL1 SETB 1 (YES) .DL/1 OF IMS OR CICS

&DL1FP SETB 1 (YES) ..IMS'S FASTPATH

Bytes Contents

1-8 Segment name, padded with blanks

9-64 Concatenated key, padded with nulls

65-n Returned segment data (variable length)

233

Page 234: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

23

Chapter 11: CPXIFACE Integration with External Data Managers

Always set PROG=COMPAREX.

To avoid searching PSBLIBs for usable PSBs., the shop’s Database Administration group should create a large PSB called Comparex that contains two PCBs for every database in the shop with all proc options GO (get only). The reason for two PCBs per database is that you may want to compare two versions of a database; one real and the other an alias. This requires that every DBD be in the DBDLIB twice; once for itself, and once for the alternate name.

Using the above PSB and the FILTERIN key statement, CPX reads the entire database looking for these segment types. Processing time may be lengthy.

To look at one root segment type and its children, another alternative is to create a PSB with sensitivity to the segment(s) required. CPX will then go to the PSB and look only at the portion of the database that the PSB is sensitive to (not the entire database), saving much processing time.

A PARM can specify a starting point to begin reading. The starting point can be in alpha or hex. For example:

PARM='S=SEGNAME,FIELD,GT,B4569' <=== alpha characters

or

PARM='SX=ROOT,ACCNTKEY,EQ,01234C' <=== hex characters

Internally, a segment search argument (SSA) is constructed to point beyond the beginning as an artificial starting point. As a reminder, use the Comparex END= keyword to terminate processing before reaching any end of file.

Note

It is not possible to use the ISPF interface to read DL/1 databases directly, because too many special DD cards are needed.

Direct DL/1 Interface

Refer to the following code for an example of invoking Comparex under DL/1 to read the databases directly in two passes.

//DLI$MVS PROC KW=DLI,SIZE=2048,PROG=,PSB=, etc.//DFSRRC00 EXEC PGM=DFSRRC00,REGION=&SIZE.K,// PARM='&KW,&PROG,&PSB, etc'//STEPLIB DD DISP=SHR,DSN=somnode.IMSVS.RESLIB// DD DISP=SHR,DSN=somnode.COMPAREX.LOAD//DFSRESLB DD DISP=SHR,DSN=somnode.IMSVS.RESLIB//* (Other DD card images pertinent to DLI, Databases)// PEND//*//UNLOAD EXEC DLI$MVS,PROG=COMPAREX,SIZE=1024,

4

Page 235: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

// PSB=psbname,KW=DLI <=== or KW=IFP or KW=BMP//SYSPRINT DD SYSOUT=*//SYSUT3 DD DISP=(,CATLG,DELETE),DSN=somnode.DLIBASE,// UNIT=SYSDA,SPACE=(TRK,(9,9),RLSE),// DCB=(RECFM=VB,LRECL=4000,BLKSIZE=4096)//SYSIN DD * CPXIFACE=CPXDLI /* Special generation */ SYSUT1=DUMMY SYSUT2=(OTH,MEMBER=dbdname) /* <=== Fill in 'dbdname' */ COPYDIFF,MAXDIFF=5,CONTINUE /* No need to print it all *///*//* At this point, we have unloaded the database to a flat file//* called "somnode.DLIBASE". Now we can optionally restore the//* database and update it iteratively with whatever programs//* are being tested. Then we Comparex the flat file against//* the freshly updated database to see what changes were made.//*//COMPARE EXEC DLI$MVS,PROG=COMPAREX,// PSB=psbname,KW=DLI <=== or KW=IFP or KW=BMP//SYSPRINT DD SYSOUT=*//SYSUT1 DD DISP=SHR,DSN=somnode.DLIBASE//SYSIN DD * MAXDIFF=50,CONTINUE /* Generally advised */ CPXIFACE=CPXDLI /* Special generation */ SYSUT2=(OTH,MEMBER=dbdname) /* <=== Fill in 'dbdname' */ KEY=(1,64,,R),BUFF=1024 /* Random KEY, large BUFFer *///* EOJ

The following example invokes Comparex under DL/1 to compare two databases directly in a single pass.

//DLI$MVS PROC KW=DLI,SIZE=2048,PROG=,PSB=, etc.//DFSRRC00 EXEC PGM=DFSRRC00,REGION=&SIZE.K,// PARM='&KW,&PROG,&PSB, etc'//STEPLIB DD DISP=SHR,DSN=somnode.IMSVS.RESLIB// DD DISP=SHR,DSN=somnode.COMPAREX.LOAD//DFSRESLB DD DISP=SHR,DSN=somnode.IMSVS.RESLIB//* ... (Other DD card images pertinent to DLI, Databases)// PEND//*//COMPARE EXEC DLI$MVS,PROG=COMPAREX,// PSB=COMPAREX <=== Note PSB Name//SYSPRINT DD SYSOUT=*//SYSIN DD * CPXIFACE=CPXDLI /* Special generation */ SYSUT1=(OTH,MEMBER=dbdname1) /* <=== Fill in 'dbdname1' */

235

Page 236: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

23

Chapter 11: CPXIFACE Integration with External Data Managers

* dbdname1 must be different than dbdname2! SYSUT2=(OTH,MEMBER=dbdname2) /* <=== Fill in 'dbdname2' */ MAXDIFF=50,CONTINUE /* Generally advised */ KEY=(1,64,,R),BUFF=1024 /* Random KEY, large BUFFer *///* EOJ

Potential Error Messages

• DL/1 - CANNOT COMPARE DATABASE TO ITSELF

• DL/1 - CANNOT FIND DBDNAME IN PSB

• DL/1 - READ ERROR,FUNC=GN,STATUS=xx

DMS: DASD MANAGEMENT SYSTEM

DMS is a system of migrating, or archiving, data sets from DASD to less expensive storage media. It can also be used to back up certain large data sets in case they are crucial. This is the where this interface comes into play. It can be used to determine how much (what percentage) a large VSAM data set has changed since it was backed up.

See the following Direct DMS Interface example of how to compare an archived VSAM file against the current VSAM file.

//yourjob JOB ...//COMPAREX EXEC PGM=COMPAREX,REGION=0M//SYSPRINT DD SYSOUT=*//SYSUT1 DD DISP=SHR,DSN=somnode.DMSC.D16MAY90.T140716//SYSUT2 DD DISP=SHR,DSN=somnode.VSAM.FILE//SYSIN DD ************************************************************* Point SYSUT1 to the archived VSAM file - may be on tape*********************************************************** SYSUT1=(OTH,M=ANYTHING,PARM='somnode.VSAM.FILE') KEY=(4,9),FORMAT=06,MODE=SYSTEMS/*

The PARM must specify the full data set name.

Potential Error Messages

• DMS - OPEN ERROR

• DMS - NOT A DMS FORMATTED BACKUP

6

Page 237: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

• DMS - UNABLE TO FIND REQUESTED DATA SET NAME

Disclaimer

The following restrictions apply:

• The archived data set must be the first data set on the tape

• Only archived VSAM or QSAM files will work

• The archived data set must NOT be compacted

FOCUS

FOCUS is a data base management system from Information Builders. FOCUS contains optional interfaces for reading and reporting on the data in files created by other DBMS products such as: ADABAS, IDMS, DB2, IMS, M204, SQL/DS, SYSTEM 2000, TERADATA, DATACOM, and TOTAL. Refer to the following FOCUS interface segment layout for a description of what the individual records look like as returned to COMPAREX by the interface.

The key to the specifications here is in the MEMBER (or M) and 'PARM=' subparameters of SYSUT1 and SYSUT2. MEMBER specifies the file name. DDNAME specifies the file type (usually FOCUS).

INCLUDE=YES is not recommended, but specifies that 'ECHO' testing is to be performed and requires that the following DD card image be present:

//HLIPRINT DD SYSOUT=*,DCB=(RECFM=FB,LRECL=80,BLKSIZE=880)

The format of the 'PARM' information is:

PARM='ModeSinkmachPassword'

where apostrophes are recommended. It is in fixed format as follows:

Bytes Contents

1-8 Segment name, padded with blanks

9-16 Address key of returned segment

17-n Returned segment data (variable length)

Mode bytes 1 to 4, file mode (CMS anticipation)

SinkMach bytes 5 to 12, Sink Machine (optional)

237

Page 238: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

23

Chapter 11: CPXIFACE Integration with External Data Managers

The following are samples of how to specify the SYSUT1 and SYSUT2 keywords.

SYSUT1=(OTH,MEMBER=CCCFILE,DDNAME=FOCUS) SYSUT1=(OTH,M=TABLE2,DDNAME=FOCUS,PARM=' SYS37 TABPASS') SYSUT2=(OTH,DDNAME=IMS,M=DL1FILE,INCLUDE=YES)

Refer to the following example for invoking Comparex to compare two versions of the same database. Notice that two separately-named interface modules are required to perform this compare. The CPXIFACE module calls entry point FOCUS in HLIFOCUS. It cannot support having more than one file open at a time. After generating module CPXFOCUS, copy it to CPXFOCU2 in the same load library.

//FOCUS EXEC PGM=COMPAREX//STEPLIB DD DISP=SHR,DSN=somnode.COMPAREX.LOAD//FOCLIB DD DISP=SHR,DSN=somnode.FOCUS.LOAD//SYSPRINT DD SYSOUT=*//MASTER DD DISP=SHR,DSN=somnode.FOCUS.MASTER//filename DD DISP=SHR,DSN=somnode.filename.FOCUS//SYSIN DD * CPXIFACE=CPXFOCUS /* Special generation */ SYSUT1=(OTH,M=filename,DDNAME=filetype,PARM='modesinkmachpassword')* | | | | |* | | | | Password* | | | =======>Sink Machine* | | File Mode* | ==============>File Type, usually FOCUS* ==============================>File Name SYSUT2=DUMMY,MAXDIFF=50,CONTINUE//* EOJ

Refer to the following example of invoking Comparex to print 50 records of a database managed by FOCUS.

//FOCUS EXEC PGM=COMPAREX//STEPLIB DD DISP=SHR,DSN=somnode.COMPAREX.LOAD//FOCLIB DD DISP=SHR,DSN=somnode.FOCUS.LOAD//SYSPRINT DD SYSOUT=*//MASTER DD DISP=SHR,DSN=somnode.FOCUS.MASTER//BENEFIX DD DISP=SHR,DSN=somnode.BENVER2.FOCUS

Password bytes 13 to 20, Password

Debug bytes 21 to 25, literal DEBUG (for Serena testing)

8

Page 239: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

//BENEFITS DD DISP=SHR,DSN=somnode.BENEFITS.FOCUS//SYSIN DD * CPXIFACE1=CPXFOCUS,CPXIFACE2=CPXFOCU2 /* Requires two modules SYSUT1=(OTH,M=BENEFIX,DDNAME=FOCUS,PARM=' VERSION2') SYSUT2=(OTH,M=BENEFITS,DDNAME=FOCUS,PARM=' VERSION3') MODE=SYS,MAXDIFF=100,CONTINUE SEG=(0,EQ,C'FALSESEG',(A,12,4)) SEG=(0,EQ,C'KEYSEG ') SEG=(0,EQ,C'EMPSEG ') SEG=(0,EQ,C'HISTORY ')//* EOJ

Potential Error Messages

• FOCUS - MEMBER NAME IS FILE NAME - MISSING

• FOCUS - OPEN (OPN) ERROR - xxxx

Note

In the special case of xxxx = 0765, the description of the data file cannot be found in the MASTER dictionary

• FOCUS - SEARCH (INFO) ERROR - xxxx

• FOCUS - READ (rrr) ERROR - xxxx

IAM

IAM stands for Innovation Access Method from Innovation Data Processing. It is intended to be an ISAM replacement, not a DBMS. Refer to the following example of invoking Comparex with IAM to compare an ISAM file against an IAM file.

//ISAM$IAM EXEC PGM=COMPAREX,REGION=0M//STEPLIB DD DISP=SHR,DSN=somnode.COMPAREX.LOAD// DD DISP=SHR,DSN=somnode.IAM.LOAD//SYSPRINT DD SYSOUT=*//SYSUT1 DD DISP=SHR,DSN=somnode.ISAM.FILE//SYSUT2 DD DISP=SHR,DSN=somnode.IAM.FILE//SYSIN DD ******* The Ascending KEY will be dynamically extracted from the ISAM* file and used for synchronizing - see message CPX23I.***** CPXIFACE=CPXIAM /* Special generation */

239

Page 240: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

24

Chapter 11: CPXIFACE Integration with External Data Managers

SYSUT2=(OTH,MEMBER=anything) /* Must specify a MEMBER */ MAXDIFF=50,CONTINUE//* EOJ

Potential Error Messages

• IAM - OPEN ERROR - I/xxx

• IAM - OPEN ERROR - O/xxx

IDMS

IDMS from Computer Associates is a DBMS that is not hierarchical. Only the relational release (IDMS/R, release 10.x and upwards) is supported. Refer to the following example for a graphical layout of what the individual records look like as returned to Comparex by CPXIFACE.

See the following example of the keyword structure to sweep through two areas of subsystem DEMOSS01. This subsystem is delivered with releases of IDMS as a post-installation test.

//IDMS EXEC PGM=COMPAREX,REGION=0M//STEPLIB DD DISP=SHR,DSN=somnode.COMPAREX.LOAD// DD DISP=SHR,DSN=somnode.SUBSCHEM.LOAD//SYSPRINT DD SYSOUT=*//* <=== IDMS specific DD card images go here.//SYSIN DD *

CPXIFACE=CPXIDMS /* Special interface module */***************************************************************** Point SYSUT1 to the Subschema and the 'Customer' area for ** the sweep. ***************************************************************** SYSUT1=(OTH,M=DEMOSS01,PARM='P=COMPAREX,R=CUSTOMER,A=CUSTOMER-REGION,DB=QA,D=QA') /*Spread across two lines***************************************************************** Also point SYSUT2 to the Subschema and the 'Order' area for ** the sweep. *****************************************************************

Bytes Contents

1-4 DBKEY of record

5-n Returned data (variable length)

0

Page 241: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

SYSUT2=(OTH,M=DEMOSS01,PARM='R=ORDOR,A=ORDER-REGION,DB=QA,D=QA')***************************************************************** These two areas have nothing in common that can be compared ** for any logical reason. Just see if they can be processed. ***************************************************************** MAXDIFF=10,CONTINUE

//* EOJ

Note

The ISPF interface will not work with IDMS directly, because too many special DD cards are needed.

In addition to the Area Sweep within record type, an exit facility is also available. There are two major ways to process the database. The first is a slight variation on the area sweep. The second is to specify an exit module (written in assembler or a high-level language) to navigate through the database. The reason for this is that there are many ways to read through a database, and using your own exit lets you control what is read.

Parameter Specifications

The key to the specifications here is in the PARM= subparameter of SYSUT1 and SYSUT2. The format of the PARM information is:

PARM='P=ppp,R=rrr,A=aaa,DB=dbdb,D=dict'

or

PARM='R=rrr,A=aaa'

or

PARM=EXIT

where apostrophes are mandatory if any commas or blanks are present in the parameter data.

If PARM=EXIT has been specified, an exit module is called from CPXIFACE to do the actual OPEN, READ, and CLOSE. To sweep an area (physically), the keyword notation of the PARM is in the format:

PARM='P=program,R=record,A=area,DB=dbname,D=dictname'

241

Page 242: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

24

Chapter 11: CPXIFACE Integration with External Data Managers

where:

Failure to specify a legitimate record name and/or area name will result in a BIND error as a minimum. The returned record now has the DBKEY (a full word - 4 bytes) prefixed so it can be seen (and compared).

If you have specified that an exit is to be called to navigate through the database, then the MEMBER keyword points to the exit module name:

SYSUT1=(OTH,MEMBER=JOSEFINE,PARM=EXIT)

A sample COBOL exit module called JOSEFINE is given in ““IDMS COBOL Exit Module JOSEFINE - Excerpts” on page 244. This program has one entry point but performs the basic functions of Open, iterative Read, and Close based on the request (IFACE-REQUEST) passed in its link section from the CPXIFACE module (CPXIDMS).

This module exhausts (until DB-END-OF-SET) Customers and Orders in those Customers. The data passed back to Comparex is grouped in exactly the same way as:

COPY IDMS SUBSCHEMA-RECORDS

generates them in the link section. The length of this data is calculated by CPXIDMS (or whatever module name is chosen for CPXIFACE) by walking backwards from the maximum size (32K) until the first non-null byte is found. The first three words of the returned area are the DB-KEYs of the component records (we use two of these three words in this example).

The COBOL program given is a sample. You are encouraged to modify it to navigate differently and to work with subschemas other than DEMOSS01.

Comparison is usually accomplished by using Comparex to unload the database first to SYSUT3, updating the database by your test program, and then comparing the unloaded file to the updated database. The iterative process of restoring the database, retesting the MODIFIED FILE code, and comparing for unexpected changes is accelerated.

Note that we specified MAXDIFF=5,CONTINUE in the unload step. We can print the first five records and inspect them for fields and synchronizing KEYs. Using the displacement issued on the left of the difference report, we can calculate an accurate field/key strategy.

The synchronizing strategy is dependent on:

• How many record types are gathered together in a single read

P Program (optional). If omitted, the program name used in the IDMS control block will be Comparex.

R Record name (required).

A Area name (required).

DB Database (DBNAME) name (optional).

D Dictionary (DICTNAME) name (optional).

2

Page 243: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

• How you want to treat inserted/deleted high-order records

• How you want to treat inserted/deleted subordinate records

See “Direct IDMS Interface Via Exit Module - Unload” on page 243 for an example of comparing the flat file against the updated database.

Caution

In determining what to call an exit program that works with a particular subschema, never name the program the same as the subschema.

This is because if the exit program is loaded (by CPXIFACE or CPXIDMS) into storage for subsequent calling, and it is named the same as any existing schema or subschema, the STEPLIB concatenation has the IDMS control blocks higher than the exit module and you will be loading (and executing) a subschema which gives unpredictable results. Conversely, bringing in the exit module means that the subschema cannot be loaded by IDMS.

Direct IDMS Interface Via Exit Module - Unload

//UNLOAD EXEC PGM=COMPAREX,REGION=0M//STEPLIB DD DISP=SHR,DSN=somnode.IDMS.LOAD// DD DISP=SHR,DSN=somnode.COMPAREX.LOAD//SYSPRINT DD SYSOUT=*//SYSUT3 DD DISP=(,CATLG,DELETE),DSN=somnode.DEMOSS01.UNLOAD,// UNIT=3350,SPACE=(TRK,(9,9),RLSE),// DCB=(RECFM=VB,LRECL=8000,BLKSIZE=8008)//SYSIN DD * CPXIFACE=CPXIDMS /* SPECIAL JUST FOR IDMS */ SYSUT1=DUMMY SYSUT2=(OTH,M=JOSEFINE,PARM=EXIT) MAXDIFF=5,CONTINUE /* NO NEED TO PRINT IT ALL COPYDIFF

Direct IDMS Interface Via Exit Module - Compare

//COMPARE EXEC PGM=COMPAREX,REGION=0M//STEPLIB DD DISP=SHR,DSN=somnode.IDMS.LOAD// DD DISP=SHR,DSN=somnode.COMPAREX.LOAD//SYSPRINT DD SYSOUT=*//SYSUT1 DD DISP=SHR,DSN=somnode.DEMOSS01.UNLOAD//SYSIN DD * CPXIFACE=CPXIDMS /* SPECIAL JUST FOR IDMS */ SYSUT2=(OTH,M=JOSEFINE,PARM=EXIT)

243

Page 244: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

24

Chapter 11: CPXIFACE Integration with External Data Managers

MAXDIFF=100,CONTINUE KEY=(3397,10,,R) /* CUSTOMER NUMBER* KEY=(1,12,,R) /* RANDOM KEY ON FIRST 3 DB-KEYS BUFF=512 /* LARGER BUFFER NECESSARY FORMAT=06

Potential Error Messages

• IDMS - PARAMETER DATA ERROR

• IDMS - BIND SUB-SCHEMA - xxx

• IDMS - BIND RECORD - xxx

• IDMS - READY ALL - xxx

• IDMS - OBTAIN NEXT RECORD - xxx

• IDMS - ACCEPT DB-KEY - xxx

• IDMS - exitname/{error message from exit module}

IDMS COBOL Exit Module JOSEFINE - Excerpts

IDENTIFICATION DIVISION.*DMLIST. PROGRAM-ID. JOSEFINE. AUTHOR. SERENA. DATE WRITTEN. AUGUST, 1986. DATE COMPILED. REMARKS.************************************************************* THIS PROGRAM IS INTENDED TO BE THE MODEL FOR OTHER ** EXIT MODULES WHEN THE INTENT IS TO HAVE COMPAREX CALL ** THIS MODULE (THROUGH CPXIFACE) TO READ PROPRIETARY ** DATABASE MANAGEMENT SYSTEMS (DBMS). THIS PARTICULAR ** MODEL IS FOR: ** IDMS ** ** NOTE THE LINKAGE SECTION AND CALL STRUCTURE. THERE ** IS A SINGLE ENTRY POINT BUT THE PARAMETER LIST CONTAINS ** THREE AREAS: ** 1) IFACE-REQUEST: 'OPEN', 'READ', OR ** 'CLOS' PLUS FREE-FORM INSTRUCTIONS; ** ** 2) IFACE-RESPONSE: SPACES, 'EOF', OR ** A LITERAL ERROR MESSAGE; ** *

4

Page 245: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

* 3) INTERFACE-RECORD-AREA: LAYOUTS ARE ** MEANT TO BE COPIED HERE IN WHATEVER ** FASHION NECESSARY. WHEN THE RECORD(S) ** ARE READ AND PASSED BACK TO CPXIFACE, ** IT CALCULATES THE RECORD LENGTH BY ** WALKING BACKWARDS FROM THE END OF THE ** AREA UNTIL THE FIRST OCCURRENCE OF A ** NON-NULL (NOT X'00') CHARACTER. THE ** MAXIMUM SIZE OF THIS AREA IS 32K. ** ** THE CALL STRUCTURE IS DRIVEN BY THE CONTENTS OF ** 'IFACE-REQUEST': ** OPEN: INVOKES 1000-OPEN-DATABASE; ** READ: INVOKES 2000-READ-NEXT-RECORD ** ITERATIVELY UNTIL A NON-BLANK ** RESPONSE IS RETURNED; ** CLOS: INVOKES 9000-CLOSE-DATABASE. **************************************************************

ORACLE

This read-only interface processes the database structure from Oracle.

Note

The Comparex-ORACLE interface defaults to a limit of 300 columns with a maximum width of 512 bytes each, and a maximum column name length of 33. These defaults can be changed by adjusting the parameters &MAXCOL, &ORAMAXW, and &ORAMAXN in CPXIFACE.

Invoking COMPAREX to Process an ORACLE Database

The following are samples of the proper syntax for SYSUT1/SYSUT2:

SYSUT1=(OTH,M=userid-password@host,INCLUDE=YES,PARM='TABLE;*')

or

SYSUT2=(OTH,M=userid-password@host,INCLUDE=NO,DDNAME=ORAPARM2,PARM=DDNAME)

Note

HOST is probably something like W:MPM.

245

Page 246: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

24

Chapter 11: CPXIFACE Integration with External Data Managers

Further information:

• M= specifies the user ID, password for same, and host machine ID.

• The parameters must be specified in the order shown, with an @ as shown.

• INCLUDE=YES causes each column, as retrieved, to be prefixed with the column name and an equal sign. If INCLUDE=NO is specified, only the column contents will be retrieved.

• PARM='TABLE;*' will fetch all columns, in the sequence they were defined, from all rows from table TABLE.

Alternatively, specify PARM='TABLE;SELECT;WHERE;ORDER' for a more sophisticated retrieval. Where TABLE is the table name, SELECT is either * (all columns) or a list of columns (separated by spaces or commas). The optional WHERE clause will choose the rows to be retrieved, and an optional ORDER by clause will sort the output.

For example, PARM='PAYROLL;NAME SALARY;SALARY<50000;SALARY'.

Apostrophes are required, and although the SYSUT1 or SYSUT2 parameter(s) can be continued across two input card images, the total length of the PARM= subkeyword is limited to 64 bytes.

Because the maximum length for the PARM= is 64 bytes, PARM=DDNAME can be specified for reading the parameter data from a file. PARM=DDNAME allows about 3K of parameters to be read.

Only columns 1 through 72 are scanned for input. The default DDNAME opened is //SYSUT1 DD (for SYSUT1) or //SYSUT2 DD (for SYSUT2). DDNAME=ORAPARM2 (or whatever DDNAME you select), as shown in the above example, sets the DDNAME to be used for reading parameters.

Note

Inside the PARM=' ' string you must substitute a quotation mark (") for each apostrophe (') that you need, and a bracket ([]) or brace ({}) for each parenthesis that you need.

Examples and what they generate include:

SYSUT1=(OTH,M=U-P@H,PARM='ORATEST.TNYT1010;*',INCLUDE=YES) SELECT * FROM ORATEST.TNYT1010

SYSUT2=(OTH,M=U-P@H,PARM='ORAPROD.TEST.TABLE;ORDERNUM;ABC = 123') SELECT ORDERNUM FROM ORAPROD.TEST.TABLE WHERE ABC = 123

SYSUT1=(OTH,M=U-P@H,PARM='TABDDA;*;DDABAL LIKE "E%1"; DDANUM' SELECT * FROM TABDDA WHERE DDABAL LIKE 'E%1' ORDER BY DDANUM

SYSUT1=(OTH,M=U-P@H,INCLUDE=YES,PARM='ORATEST.TNYT1010;FIELD1,FIELD4;NTSTORE IN ("0020","0098");NTORDER')

6

Page 247: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

SELECT FIELD1,FIELD4 FROM ORATEST.TNYT1010 WHERE NTSTORE IN ('0020','0098') ORDER BY NTORDER

SYSUT2=(OTH,M=U-P@H,PARM='SAMPLE_VIEW;*;;SSN') SELECT * FROM SAMPLE_VIEW ORDER BY SSN

OWL - ONLINE WITHOUT LIMITS

This read-only interface processes the library structure from Computer Associates called Online Without Limits (OWL). You may compare the directories, individual members, or an entire OWL library to a Panvalet or Librarian master. You may compare an individual member from an OWL library to another member of the same OWL library. You may not process more than one OWL library at a time. You may not compare more than one member of an OWL library to any other portion of the same OWL library. You may not process a Scratch Pad.

Invoking Comparex to Process an OWL Library

The following example shows how to compare one member of an OWL library to another member of the same OWL library. The file allocations in JCL are fairly restrictive. You may not override the DDNAME to anything else.

SYSUT1=(OTH,[email protected]) /* Will work

//OWL EXEC PGM=COMPAREX,REGION=0M//SYSPRINT DD SYSOUT=*//SYSUT1 DD DISP=SHR,DSN=owl.filname//SYSUT2 DD DISP=SHR,DSN=owl.filname//SYSIN DD * CPXIFACE=CPXOWL /* Special interface module */ SYSUT1=(OTH,MEMBER=COB9403.PROD) SYSUT2=(OTH,MEMBER=COB9403.TEST) TEXT=COBOL BUFF=1024 /* Hopefully Enough - Can go Higher *//*/&

This is the syntax for SYSUT1 to read a particular member:

SYSUT1=(OTH,MEMBER=member1)

or:

SYSUT1=(OTH,MEMBER=member1.stat)

247

Page 248: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

24

Chapter 11: CPXIFACE Integration with External Data Managers

This is the syntax to produce a directory listing for the library:

SYSUT1=OTH,SYSUT2=DUMMY DIR=PDF /* List all member names in library

or:

SYSUT1=(OTH,PARM=TEST),SYSUT2=DUMMY DIR=PDF /* List member names in library with status TEST

OWL must exhaust a particular member before processing another. It cannot have a series of READ requests interrupted by another type of request and then pick back up again. For this reason, a very large BUFFer is recommended in all TEXT comparisons to give yourself a higher probability of exhausting the SYSUT1 member before attempting to process the SYSUT2 member. Specified member names may not begin with a slash:

SYSUT1=(OTH,MEMBER=/INSTALL.PROC) /* Will fail

This is not a restriction of the interface code, but is a restriction of Comparex. Comparex treats commas, blanks, and slashes as delimiters. Therefore, to specify a member name that internally begins with a slash, substitute @ instead:

Potential Error Messages

• OWL - CANNOT PROCESS ENTIRE LIBRARY

• OWL - MEMBER NOT FOUND - member.stat

• OWL - SEARCH ERROR - ERRn

• OWL - SYSUT1 MEMBER NOT EXHAUSTED (INCREASE TEXT BUFF)

• OWL - READ ERROR - ERRn

• The password will be suppressed with asterisks on the output listing.

RAMIS II

RAMIS II from Online Software (formerly Martin Marietta - Mathematica Products Group) is a 4th Generation Language DBMS that is considered hierarchical. See the following example for a graphical layout of what the individual records look like as returned to Comparex by CPXIFACE.

The following example invokes Comparex with RAMIS to compare two databases directly in a single pass.

Bytes Contents

1-n Returned data (variable length)

8

Page 249: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

//RAMIS EXEC PGM=COMPAREX,REGION=0M//STEPLIB DD DISP=SHR,DSN=somnode.COMPAREX.LOAD// DD DISP=SHR,DSN=somnode.RAMIS.LOAD//SYSPRINT DD SYSOUT=*//* <=== RAMIS specific DD card images go here.//SYSUT2 DD DISP=SHR,DSN=somnode.TEST.DATABASE//*RPIECHO DD SYSOUT=* Debugging only//DATABASE DD DISP=SHR,DSN=somnode.DATABASE//SYSIN DD * CPXIFACE=CPXRAMIS /* Special generation */ SYSUT1=(OTH,MEMBER=filenam1) SYSUT2=(OTH,MEMBER=filenam2,DDNAME=SYSUT2) MAXDIFF=50,CONTINUE KEY=(1,nn,,R),BUFF=256 /* Random KEY, large BUFFer */* * **=====> Fine tune the KEY specification.//* EOJ

The MEMBER name must specify a valid file (up to 12 characters) name. An optional DDNAME may be specified but, if entered, must match an allocated external file. If no DDNAME specification is made, the default connecting name used by RAMIS is DATABASE.

If you try to read a single level database, you will receive a READ ERROR message on the second record. The interface must be informed of this (by you) by passing in a PARM=1, which is interpreted as an instruction not to go below the top level. One other variation is the debugging facility to trace the calls by specifying PARM=‘1ECHO’. The literal ECHO in bytes two through five of the PARM are construed to mean “turn on the RPIECHO trace facility.”

Note

It is not possible to use the ISPF interface to read RAMIS II directly, because too many special DD cards are needed.

Potential Error Messages

• RAMIS II - OPEN ERROR - OPEM/xxxx

• RAMIS II - OPEN ERROR - LOCR/xxxx

• RAMIS II - MEMBER NAME MUST SPECIFY FILENAME

• RAMIS II - READ ERROR - NEXR/xxxx

249

Page 250: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

25

Chapter 11: CPXIFACE Integration with External Data Managers

ROSCOE

ROSCOE, from Computer Associates, is a Library Management System that manages data (usually program source code). It is not a DBMS.

The following example invokes Comparex with ROSCOE to compare two members directly.

//ROSCOE EXEC PGM=COMPAREX,REGION=0M//STEPLIB DD DISP=SHR,DSN=somnode.COMPAREX.LOAD// DD DISP=SHR,DSN=somnode.ROSCOE.LOAD//SYSPRINT DD SYSOUT=*//* <=== ROSCOE specific DD card images go here.//ROSLIB00 DD DISP=SHR,DSN=somnode.roslib00//ROSLIB01 DD DISP=SHR,DSN=somnode.roslib01//ROSLIB02 DD DISP=SHR,DSN=somnode.roslib02//SYSIN DD * CPXIFACE=CPXROSCO /* Special generation */ SYSUT1=(OTH,MEMBER=member1,PARM=pfxcd) SYSUT2=(OTH,MEMBER=member2,PARM=pfxcd) TEXT=COBOL//* EOJ

Use the MEMBER options to specify a single member name to be read. To scan the entire library (filters can limit this), leave the MEMBER option off. The PARM must be specified in this format:

PARM='xxxyy' | | | |============> User Code (Optional) |===============> Three character ROSCOE Prefix

Note

It is not possible to use the ISPF interface to read ROSCOE files directly, because too many special DD cards are needed.

Potential Error Messages

• ROSCOE - INITX ERROR - xxxx

0

Page 251: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

• ROSCOE - ACTIVATE ERROR - xxxx

• ROSCOE - FIND ERROR - xxxx

• ROSCOE - LIB (WALK) ERROR - xxxx

• ROSCOE - MEMBER: member - ACCESS DENIED BY SITE MANAGEMENT!

• ROSCOE - GET ERROR - xxxx

Alternative Method

One method of comparing ROSCOE members does not require using the interface. It requires that the JCL for performing the job be edited and submitted from a ROSCOE library. As the job is submitted, it copies (+INC) the appropriate members into the jobstream, and Comparex compares them as temporary sequential files. The following code indirectly compares ROSCOE members:

//DPJCPX JOB (),'D JOHNSON',CLASS=P,MSGCLASS=X//ROSCOE EXEC PGM=COMPAREX//SYSPRINT DD SYSOUT=*//SYSUT1 DD DATA,DLM='#?' Delimiter for end of data+INC DPJ.FJA140DJ#?//SYSUT2 DD DATA,DLM='#?' Delimiter for end of data+INC DPJ.FJA140TT#?//SYSIN DD * TEXT=COBOL,PRINT=MLC//* EOJ

WYLBUR

WYLBUR is a Library Management System that compacts data (usually program source code) into sequential data sets or members of partitioned data sets. The following example uses Comparex with WYLBUR to compare two members.

//WYLBUR EXEC PGM=COMPAREX,REGION=0M//STEPLIB DD DISP=SHR,DSN=somnode.COMPAREX.LOAD//SYSPRINT DD SYSOUT=*//WYLBUR DD DISP=SHR,DSN=WYL.abc.def.LIB(member1)//SYSUT2 DD DISP=SHR,DSN=WYL.abc.def.member2 <=== Sequential//SYSIN DD *

251

Page 252: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

25

Chapter 11: CPXIFACE Integration with External Data Managers

CPXIFACE=CPXWYLBR /* Special generation */ SYSUT1=(OTH,M=member1,DDNAME=WYLBUR) SYSUT2=(OTH,MEMBER=member2) TEXT=COBOL//* EOJ

The MEMBER keyword tells Comparex that it is dealing with a sequential data set (a member) in a PDS, or an embedded sequential data set in a library management system like WYLBUR, Panvalet, or Librarian. If you do not specify the member keyword, Comparex terminates with this message:

CPX31A - FILE ORGANIZATIONS NOT COMPATIBLE - . . .

Note

The WYLBUR interface does not process entire WYLBUR libraries. It only reads sequential files or individual members of PDSs. If you attempt to have WYLBUR read a PDS as opposed to a member of a PDS, results are unpredictable.

Potential Error Messages

• WYLBUR - OPEN ERROR

• WYLBUR - NOT IN WYLBUR FORMAT

ROLL YOUR OWN

Here you can code your own proprietary Library/Database Management System interface and set your own syntax rules. The source code to CPXIFACE is provided with this slot open. Use the other source code supplied with OTH as models for building your own interface.

The following is an example of the source code changes to CPXIFACE to read a variable length record and conditionally explode the record.

...&OTH SETB 1 (YES) GENERATE THE 'OTHER' INTERFACE. ...&ZROLOWN SETB 1 (YES) .ROLL YOUR OWN - PROPRIETARY ... AIF (NOT &ZROLOWN).ROL3900 ROLL YOUR OWN - READ ...ROL$3060 LR R15,R1 DITTO LENGTHS STH R1,PRM$RLEN PASS LENGTH BACK TO COMPAREX MVCL R0,R14 LARGE MOVE

2

Page 253: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

* (Insert the following lines of code) CLI PRM$WICH,C'1' SYSUT1 BE RETURN YES, RETURN NOW TM PRM$SWUS,SWPRMSAM SYSUT1 AND SYSUT2 SAME INTERFACE BZ RETURN NO, BRANCH L R2,PRM$PS12 SYSUT1'S INTERFACE CLC PRM$RLEN,PRM$RLEN-PARAMTER(R2) SAME LENGTH BNE ROL$3200 NO, EXPLODE THEM BOTH L R0,PRM$ADDR-PARAMTER(R2) SYSUT1'S RECORD ADDRESS LH R1,PRM$RLEN-PARAMTER(R2) SYSUT1'S RECORD LENGTH L R14,PRM$ADDR SYSUT2'S RECORD ADDRESS LH R15,PRM$RLEN SYSUT2'S RECORD LENGTH CLCL R0,R14 COMPARE THEM BE RETURN IDENTICAL, RETURN WITHOUT EXPLODINGROL$3200 EQU * CALL YOUR EXPLOSION ROUTINE FOR BOTH L R14,PRM$ADDR-PARAMTER(R2) SYSUT1'S RECORD ADDRESS LA R15,yourstuf YOUR SPECIAL EXPLOSION PARAMETER STM R14,R15,PRM$WORK EXPLODER PARAMETER LIST OI PRM$WORK+4,X'80' INDICATE LAST IN LIST* CALL exploder,PRM$WORK CALL YOUR EXPLOSION ROUTINE LA R1,PRM$WORK +ADDRESS THE ADDRESS LIST L R15,=V(exploder) +<=== Your Explosion Program BALR R14,R15 +CALL HIM MVC PRM$RLEN-PARAMTER(2,R2),ROL$EXPL LARGE RECORD LENGTH LH R14,ROL$EXPL LARGE RECORD LENGTH ST R14,X'16C'(,R2) PLSYSUT1 (PHYSICAL LENGTH) ST R14,X'170'(,R2) LSYSUT1 (LOGICAL LENGTH; SAME) L R14,PRM$ADDR SYSUT2'S RECORD ADDRESS LA R15,yourstuf YOUR SPECIAL EXPLOSION PARAMETER STM R14,R15,PRM$WORK EXPLODER PARAMETER LIST OI PRM$WORK+4,X'80' INDICATE LAST IN LIST* CALL exploder,PRM$WORK CALL YOUR EXPLOSION ROUTINE LA R1,PRM$WORK +ADDRESS THE ADDRESS LIST L R15,=V(exploder) +<=== Your Explosion Program BALR R14,R15 +CALL HIM MVC PRM$RLEN-PARAMTER(2,R2),ROL$EXPL LARGE RECORD LENGTH B ROL$3900 BRANCH AROUND CONSTANTSyourstuf DC Cl120'parameter' Special ParameterROL$EXPL DC H'08000' Exploded Record Length.ROL3900 ANOPROL$3900 DS 0H AROUND CONSTANTS

Potential Error Messages

• ROLL.YOUR.OWN - OPEN ERROR

253

Page 254: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

25

Chapter 11: CPXIFACE Integration with External Data Managers

• ROLL.YOUR.OWN - SYNCHRONOUS ERROR EXIT

SYNCHRONIZING DATABASES

There are at least two methods of synchronizing databases. The SEGMENT keyword is designed for hierarchical structures such as DL/1; however, a variation of the KEY keyword, called Random KEYs, is recommended in most cases. It is a matter of personal preference when choosing between the two.

The first step in synchronizing is to pair like records for comparison (ROOT is paired with ROOT, APPLES are paired with APPLES). Then, after like-record types are paired, a control field is examined. If a record has been inserted or deleted, it can be identified as inserted or deleted.

Some records do not contain a control field. For example, some records add information to a database merely by their presence or by their relative position in a series. For such records, Comparex cannot be completely accurate in picking out the exact insertion or deletion, but the utility will show the series of differences, starting with the insertion or deletion.

Comparing

After the synchronizing process of pairing records (with either the SEGMENT or KEY keyword), IDENTITY, FIELD, and MASK keywords can be used to tell Comparex which bytes should be compared.

The following example compares two versions (unloaded or direct read) of a database using SEGMENT synchronization logic.

Note

Random SEGMENTs are not recommended.

Segment Name ----- COMPAREX Keywords ----- SEGMENT=(1,EQ,C'ROOT',(A,09,5)) ROOT IDENTITY=(1,EQ,C'ROOT') FIELD=(65,END) MASK=(81,3) SEGMENT=(1,EQ,C'APPLES') APPLES IDENTITY=(1,EQ,C'APPLES') FIELD=(65,END)

SEG=(1,EQ,C'STEMS',(R,23,4)) ID=(1,EQ,C'STEMS') STEMS FIELD=(65,END)

4

Page 255: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

MASK=(85,1) MASK=(93,1)

The following example compares two versions (unloaded or direct read) of a database using a Random KEY.

----- COMPAREX Keywords -----

KEY=(1,64,,R),BUFF=1024 IDENTITY=(1,EQ,C'ROOT') FIELD=(65,END) MASK=(81,3) IDENTITY=(1,EQ,C'APPLES') FIELD=(65,END) ID=(1,EQ,C'STEMS') FIELD=(65,END),MASK=(85,1),MASK=(93,1)

255

Page 256: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

25

Chapter 11: CPXIFACE Integration with External Data Managers

6

Page 257: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

257

Page 258: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

25

Chapter 11: CPXIFACE Integration with External Data Managers

8

Page 259: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

DELTA DECK OPTION 1

2 DELTA DECK OPTION

The delta deck option refers to the facility of applying transaction files (commonly referred to as delta decks) against one or more sequential files with the intent of updating them. For example, if you compare one version of a program (at the source code level) against another, you will see the differences. If you were to write those differences out to a third file and format them appropriately, that third file becomes the delta deck. Comparex can produce delta decks formatted for:

Panvalet from Computer Associates

Librarian from Computer Associates

GEM from Fujitsu/FACOM

IEBUPDTE from IBM

ChangeMan ZMF from Serena Software

Others formatting characteristics dynamically created

Generally speaking, the decks produced for Panvalet, Librarian, and GEM can be created at any time by Comparex, but subsequent application of those decks to the original source (the SYSUT1 member) requires the appropriate product.

Panvalet Format

A deck in Panvalet format can be created in this fashion:

//COMPARE EXEC PGM=COMPAREX//SYSPRINT DD SYSOUT=*//PANDD1 DD DISP=SHR,DSN=somnode.PANLIB//SYSUT3 DD DISP=(,CATLG),DSN=somnode.PAN.DELTDECK,// UNIT=SYSDA,SPACE=(TRK,(1,1)),// DCB=(RECFM=FB,BLKSIZE=6000,LRECL=80)//SYSIN DD * TEXT=COBOL,BUFF=200,PRINT=MLC SYSUT1=(PAN,M=MEMBER1)

259

Page 260: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

26

Chapter 12: Delta Deck Option

SYSUT2=(PAN,M=MEMBER2) COPYDIFF=PAN /* PANVALET Formatted Delta Deck//* EOJ

The resultant deck (somnode.PAN.DELTDECK) could look something like this:

++UPDATE MEMBER1,4++C 35003500 0100-COBOL-PARAGRAPH. 00350000003600 PERFORM 4000-CALLED-ROUTINE. 00360000++C 101,112++C 155,160

If the deck was then processed by PAN#1, then MEMBER1 would be updated permanently (at level 5) to look exactly like MEMBER2. For example:

//PAN#1 EXEC PGM=PAN#1//SYSPRINT DD SYSOUT=*//PANDD1 DD DISP=SHR,DSN=somnode.PANLIB//SYSIN DD DISP=SHR,DSN=somnode.PAN.DELTDECK//* EOJ

Librarian Format

A deck in Librarian format can be created in this fashion:

//COMPARE EXEC PGM=COMPAREX//SYSPRINT DD SYSOUT=*//MASTER DD DISP=SHR,DSN=somnode.MASTER//SYSUT2 DD DISP=SHR,DSN=somnode.PDS(MEMBER1)//SYSUT3 DD DISP=(,CATLG),DSN=somnode.LIB.DELTDECK,// UNIT=SYSDA,SPACE=(TRK,(1,1)),// DCB=(RECFM=FB,BLKSIZE=3200,LRECL=80)//SYSIN DD * TEXT=.,BUFF=200,PRINT=MLC SYSUT1=(LIB,M=MEMBER1) COPYDIFF=(LIB,TEMP=YES) /* Temp Update Librarian//* EOJ

The resultant deck somnode.LIB.DELTDECK could look something like this:

-SEL MEMBER1,TEMP-INS 35003500 0100-COBOL-PARAGRAPH. 00350000003600 PERFORM 4000-CALLED-ROUTINE. 00360000

0

Page 261: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

-DEL 101,112-DEL 155,160

If the deck was then processed by LIB, then MEMBER1 would be updated temporarily to look like MEMBER1 in the PDS. For example:

//LIBR EXEC PGM=LIBR//SYSPRINT DD SYSOUT=*//MASTER DD DISP=SHR,DSN=somnode.MASTER//SYSIN DD DISP=SHR,DSN=somnode.LIB.DELTDECK//* EOJ

261

Page 262: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

26

Chapter 12: Delta Deck Option

ChangeMan ZMF Format

A deck in ChangeMan ZMF format can be created in this fashion:

//COMPARE EXEC PGM=COMPAREX//SYSPRINT DD SYSOUT=*//SYSUT1 DD DISP=SHR,DSN=somnode.PDS1//SYSUT2 DD DISP=SHR,DSN=somnode.PDS2//SYSUT3 DD DISP=(,CATLG),DSN=somnode.CMN.DELTDECK,// UNIT=SYSDA,SPACE=(TRK,(1,1)),// DCB=(RECFM=VB,BLKSIZE=4096)//SYSIN DD * TEXT=.,BUFF=200,PRINT=MLC COPYDIFF=(CMN,STAMP=YES) /* Stamp columns 73-80 YYMMDDHH//* EOJ

The resultant somnode.CMN.DELTDECK deck could look something like this:

<UPDATE MEMBER1> <35>003500 0100-COBOL-PARAGRAPH. 93090114003600 PERFORM 4000-CALLED-ROUTINE. 93090114<101,112><155,160><*END.OF.MEMBER><&update> MEMBER2<&brr><0>000000* THIS LINE OF CODE IS THE VERY FIRST 93090114<*END.OF.MEMBER><*END.OF.DELTA DECK>

If the deck was processed by CMNDELTA, then both MEMBER1 and MEMBER2 in somnode.PDS1 would be updated permanently to look like their counterparts in somnode.PDS2. For example:

//DELTA EXEC PGM=CMNDELTA//SYSPRINT DD SYSOUT=*//BASELINE DD DISP=SHR,DSN=somnode.PDS1//DELTA DD DISP=SHR,DSN=somnode.CMN.DELTDECK//* EOJ

2

Page 263: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

PDS Versus Proprietary Structure

While some z/OS installations have either Panvalet or Librarian, every installation has partitioned data sets. For PDSs, IBM’s IEBUPDTE utility can be used to apply updates. But IEBUPDTE requires sequence numbers, and even then, the sequence number can be in columns 73-80, 1-6, or elsewhere depending on local standards. By utilizing ChangeMan ZMF format instead, PDSs can be updated without depending on sequence numbers.

Relative Line Numbers in ChangeMan ZMF Format

In principal, the format of the delta deck is similar to that used by Panvalet in that they both refer to relative (to one) line numbers and do not rely on sequence numbers in the physical lines. All commands are surrounded by less-than ( < ) and greater-than ( > ) signs. For example:

<* free-form comments such as date and time stamps><UPDATE membernm><* free-form comments such as work request number><* free-form comments such as person responsible><0>This lines goes in front of line 1 (relative to one)This lines goes in front of line 1 (relative to one)<3,5>This single line replaces lines 3, 4, and 5.<121>These lines are inserted after line 121.These lines are inserted after line 121.These lines are inserted after line 121.<366,401> {This directive deletes lines 366 through 401}

The sequence numbers referred to in the brackets are relative to their order in the file. Any sequence number in columns 73 through 80 (or 1 through 6 for COBOL) are ignored.

Update Directive

The Update directive tells CMNDELTA which member to process and how to do it. The format is:

<UPDATE member,{options}>

where member specifies which member of the PDS (as pointed to by DDNAME BASELINE) to select for processing. It can be one to eight (1-8) characterizing must match a name in the directory. The member name can be omitted if DDNAME BASELINE points to a sequential file or individual member of a PDS, but is generally always advised.

263

Page 264: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

26

Chapter 12: Delta Deck Option

The options parameters are separated by a commas; refer to the following list:

Line Directives

Comments are denoted by <*. They may appear freely before and after the Update directive but should not be mixed in with line directives. For example:

<* Free-form comments *>

Directives that specify lines to delete, replace, or insert must be enclosed in angle brackets (<>).

A single number specifies that the lines that follow must be inserted after this relative line number.

Two numbers, separated by a single comma, (with no blanks) directs that an inclusive range of lines is to be deleted. Any lines that follow are moved into the space provided.

The line directives must be in ascending order. That is, in the general example that follows:

<nnn1>Statement after nnn1<nnn2,nnn3><nnn4>

• nnn1 must be less than nnn2.

• nnn2 must be less than or equal to nnn3.

• nnn3 must be less than nnn4.

FULL Show changes applied in context; similar to Comparex’s PRINT=FULL. Mutually exclusive with NULL

NULL Do not list changes applied; just list the delta deck as read (note syntax errors however). Mutually exclusive with FULL

TEMP Mock update; do not permanently update any PDS member. Mutually exclusive with SEQ.

SEQ Do not permanently update any PDS member; write updated file to DDNAME SEQ. Mutually exclusive with TEMP.

Examples of Update directives include:

• <UPDATE MEMBER1>

• <UPDATE COBOLNM,TEMP,FULL>

• <UPDATE M,SEQ>

• <UPDATE THREE,NULL>

• <UPDATE,NULL>

4

Page 265: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

Execution JCL

The following JCL stream is a model for batch invocations of CMNDELTA.

//DELTA EXEC PGM=CMNDELTA,// PARM='SEQ'//SYSPRINT DD SYSOUT=*//BASELINE DD DISP=SHR,DSN=somnode.PDS1//SEQ DD DISP=(,PASS),DSN=&&SEQ,// UNIT=SYSDA,SPACE=(TRK,(5,5),RLSE),// DCB=(RECFM=FB,LRECL=80,BLKSIZE=6160)//DELTA DD *<UPDATE MEMBER1> <35>003500 0100-COBOL-PARAGRAPH. 93090114003600 PERFORM 4000-CALLED-ROUTINE. 93090114<101,112><155,160><*END.OF.MEMBER><*END.OF.DELTA DECK>//* EOJ

In the preceding example, a parameter (SEQ) was passed to CMNDELTA. If options were specified on the Update directive they would have overridden the PARM specification. Because there were none found, the SEQ option is honored and the updated MEMBER1 is not updated in place, but instead is written sequentially to wherever DDNAME SEQ points.

You can pass more than one option via the PARM if the string is surrounded by apostrophes, and the keywords are separated by commas.

File Attributes

The file pointed to by the DDNAME BASELINE must be a PDS, PDS member, or sequential file. It can be any record format except Undefined or Spanned. That is, it can be V (variable), VB (variable blocked), F (fixed), or FB (fixed blocked).

The file pointed to by the DDNAME DELTA must be a PDS member or sequential file. It also can be any record format except Undefined or Spanned.

Generally speaking, the delta deck being applied is similar in format to its associated BASELINE, but does not have to be. The record lengths and block sizes could be very small or very large. In the example cited previously, the PDSs could have been RECFM=FB, but the delta deck attempts to save disk space by being RECFM=VB.

265

Page 266: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

26

Chapter 12: Delta Deck Option

Multiple Decks

The file pointed to by DDNAME DELTA must be sequential (or a member of a partitioned data set), but that does not mean that it cannot contain deltas for multiple members. It is possible to have a single delta deck file containing:

<UPDATE MEMBER1><0069,00086>006900 PARA-1200.007000 IF SEASON IS EQUAL TO OCTOBER-FEST,007100 PERFORM 3400-GUZZLE-UP.<UPDATE MEMBER2,TEMP><101>003010 AND THIS-IS-NO-JOKE,

This means that both MEMBER1 and MEMBER2 will be updated in the single execution of CMNDELTA.

Integrity

Concurrent updates to the same PDS by simultaneous invocations of CMNDELTA will be single-threaded by the ENQ/DEQ process across systems. If your shop has a single CPU, then one update by CMNDELTA will not interfere with another update by CMNDELTA. If you have multiple CPUs and the possibility exists that simultaneous invocations of CMNDELTA on separate machines can occur, then you must enlist the assistance of vendor products that address these matters:

• Global Resource Serialization (GRS)

• Multiple Systems Integrity (MSI)

• Shared Dataset Integrity (SDSI)

The major QNAME used in CMNDELTA at ENQ time is CHGMAN.

Directory Statistics

If DDNAME BASELINE points to a PDS, and an update in place is requested (not a temporary update, nor output to SEQ file), then the updated members will have their directory statistics stamped accurately with date, time, size, and job name that updated it.

6

Page 267: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

Sample Report

Explanation

The following legend describes some of the key fields listed on the preceding report.

[1] - These three nodes separated by periods list:

1. Job name

2. Step name (possibly with a procedure)

3. Procedure step name

[2] - Date (always in form yyyy/mm/dd) and military time.

[3] - The DELTA file lines - Update directive in this case.

[4] - Data set name DDNAME BASELINE points to.

[5] - Acknowledgment that the specified member was located and will be updated.

[6] - All options in effect for this particular update. It is a blending of options from the PARM and possibly overridden by any specified on the Update directive.

[7] - The first line directive to delete lines 4 and 5.

[8] - Echo to show that lines 4 and 5 are being deleted.

C M N D E L T A SER02.XEQDELTA.PDSMBR <2006/04/15> 10:22:42 PAGE 1 [1] [2]

DELTA: <UPDATE ABC10000> [3]

baseline=CTSOID2.baseline.SOURCE [4]

MEMBER=ABC10000 [5] OPTION: [6] DELTA: <*STAMP 2006/04/14;15:59:59 FRIDAY APRIL 14, 2006> DELTA: <4,5> [7] DELETE: * PREAMBLE: [8] DELETE: * NOW IS THE TIME FOR ALL GOOD PROGRAMMERS TO COME TO THE AID OF * DELTA: <8> [9] INSERT: ST R14,UCARCLEN STASH IN UCA FOR XMEM INSERT: MVI BAT$FIND,C'Z' FUNCTION INDICATOR INSERT: * [10] DELTA: <45,46> DELETE: * RETURN +0 FOR SYSTEM ERROR; +4 APPLICATION ERROR; +8 IS SUCCESS DELETE: B PRO$DLTE BAD SYSTEM RETURN CODE

DELTA: <*END.OF.MEMBER> [11]

DELTA: <*END.OF.DELTA DECK> [12]

END OF FILE ON DELTA [13]

END OF FILE ON THE BASELINE [14]

TIME OF DAY AT END OF JOB: 10:22:43, HIGHEST CONDITION CODE ON EXIT: 0 <key t=15>

267

Page 268: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

26

Chapter 12: Delta Deck Option

[9] - The second line directive to insert what follows after line 8.

[10] - The lines to be inserted after line 8.

[11] - Comment line. This exact text will be generated by Comparex at the end of each Update directive.

[12] - Comment line. This exact text will be generated by Comparex at the end of the full delta deck.

[13] - Logical end of file on DELTA.

[14] - Logical end of file on the baseline.

[15] - The highest condition code encountered. If no errors were encountered, it will be set to zero. If errors were uncovered, the error message itself will dictate the severity (usually 8).

8

Page 269: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

Error Messages

The following error messages can be issued:

UNABLE TO OPEN “DELTA” FILE - RC=16

Most likely DDNAME DELTA was not allocated. Check for misspelling on the jobstream. Other possible causes are pointing DELTA to a VSAM or ISAM file. Execution terminates immediately with return code 16.

“DELTA” FILE CONTAINS UNDEFINED LENGTH RECORDS- RC=8

DDNAME DELTA was allocated to a data set with DCB attributes of RECFM=U. No attempt will be made to continue. Execution terminates immediately with return code 8.

INVALID DELTA DECK - RC=8

The first record of the delta deck did not begin with an open (less-than < ) bracket. Execution terminates immediately with return code 8.

BASELINE MISSING/INVALID - RC=8

Most likely DDNAME BASELINE was not allocated. Check for a misspelling in the jobstream. Execution terminates immediately with return code 8.

BASELINE ORGANIZATION INVALID - RC=8

DDNAME BASELINE was allocated but was not a PDS or sequential file. Execution terminates immediately with return code 8.

UNABLE TO OPEN BASELINE - RC=8

An attempt was made to open DDNAME BASELINE and it failed. Execution terminates immediately with return code 8.

SEQUENTIAL BASELINE REQUIRES “TEMP”, “SEQ”, OR “NULL” - RC=8

DDNAME BASELINE was allocated and determined to be a sequential file. It cannot be updated in place like a PDS member. One of the options TEMP, SEQ, or NULL must be used to process the file. Execution terminates immediately with return code 8.

UNABLE TO OPEN FILE “SEQ” - RC=8

Option SEQ was specified either on the Update directive or as a passed PARM. An attempt was made to open DDNAME SEQ and it failed. Execution terminates immediately with return code 8.

SYNTAX ERROR - RC=8

The Update directive had a syntax error or the line directives were not in ascending order. Execution terminates immediately with return code 8.

BASELINE PDS; MEMBER NAME REQUIRED ON <UPDATE> - RC=8

The BASELINE has been determined to be a PDS but the Update directive did not specify a member name. Execution terminates immediately with return code 8.

269

Page 270: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

27

Chapter 12: Delta Deck Option

MEMBER=member CANNOT BE FOUND - RC=8

The Update directive specified a member name that could not be found in BASELINE. Execution terminates immediately with return code 8.

SYNCHRONOUS ERROR ON INPUT - RC=12

While reading records from the BASELINE, a severe I/O error was encountered. Execution terminates immediately with return code 12.

SYNCHRONOUS ERROR ON OUTPUT - RC=12

While writing records either to BASELINE or SEQ, a severe I/O error was encountered. Execution terminates immediately with return code 12.

STOW ERROR UPDATING MEMBER - RC=12

After updating a member in place, an error occurred in updating (stow macro) the directory entry. Probable cause is a shortage of directory blocks in the PDS. Execution terminates immediately with return code 12.

0

Page 271: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

271

Page 272: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

27

Chapter 12: Delta Deck Option

2

Page 273: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

273

Page 274: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

27

Chapter 12: Delta Deck Option

4

Page 275: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

275

Page 276: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

27

Chapter 12: Delta Deck Option

6

Page 277: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

277

Page 278: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

27

Chapter 12: Delta Deck Option

8

Page 279: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

279

Page 280: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

28

Chapter 12: Delta Deck Option

0

Page 281: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

281

Page 282: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

28

Chapter 12: Delta Deck Option

2

Page 283: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

283

Page 284: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

28

Chapter 12: Delta Deck Option

4

Page 285: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

285

Page 286: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

28

Chapter 12: Delta Deck Option

6

Page 287: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

287

Page 288: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

28

Chapter 12: Delta Deck Option

8

Page 289: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

289

Page 290: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

29

Chapter 12: Delta Deck Option

0

Page 291: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

291

Page 292: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

29

Chapter 12: Delta Deck Option

2

Page 293: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

293

Page 294: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

29

Chapter 12: Delta Deck Option

4

Page 295: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

295

Page 296: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

29

Chapter 12: Delta Deck Option

6

Page 297: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

297

Page 298: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

29

Chapter 12: Delta Deck Option

8

Page 299: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

299

Page 300: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

30

Chapter 12: Delta Deck Option

0

Page 301: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

301

Page 302: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

30

Chapter 12: Delta Deck Option

2

Page 303: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

303

Page 304: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

30

Chapter 12: Delta Deck Option

4

Page 305: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

EXAMPLES

A The following examples illustrate the coding of keywords to meet various testing situations.

SCENARIO 1 - SCANNING FOR DATE FIELDS

Comparex can locate production source code for all programs that use a particular variable. The following JCL scans a source library to look for all programs that use the variable ‘PKGDATE.’

//USER15B2 JOB (X170,374),'DATESCAN',TIME=(,5), // CLASS=A,NOTIFY=USER15,MSGCLASS=9//*//COMPARE EXEC PGM=COMPAREX//STEPLIB DD DISP=SHR,DSN=PROD.COMPAREX.LINKLIB //SYSPRINT DD SYSOUT=*//SYSUDUMP DD SYSOUT=*//SYSUT1 DD DISP=SHR,// DSN=USER15.CPXPROD.SOURCE //SYSUT2 DD DUMMY//SYSIN DD *TEXT=COBOL /* Text is COBOL */LINE=(80,ALPHA) /* Display difference lines as alphanumeric */ FILTERIN=(1-80,EQ,C'PKGDATE') /* Look for 'PKGDATE' */SCAN /* Scan for 'PKGDATE' */MAXDIFF=5 /* Limit printout to 5 occurrences */

The following is a Comparex report based on the above JCL. Comparex scanned for the variable ‘PKGDATE’ and found two programs, PROG2 and PROG3, with this variable.

SYSUT1=USER15.CPXPROD.SOURCE,SYSUT2=DUMMY0<M=PROG1,CREDATE=96138,MODDATE=96138,MODTIME=1332,USER=USER15><M=PROG10,CREDATE=96138,MODDATE=96138,MODTIME=1350,USER=USER15><M=PROG2,CREDATE=96138,MODDATE=96138,MODTIME=1348,USER=USER15>

305

Page 306: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

30

Appendix A: Examples

1 03 FILLER PIC X(09) VALUE 'XPKGDATE'. 1 03 ISPF-XPKGDATE PIC X(06). 1 MOVE GENERAL-INSDATE TO ISPF-XPKGDATE. <M=PROG3,CREDATE=96138,MODDATE=96138,MODTIME=1349,USER=USER15>1 03 FILLER PIC X(09) VALUE 'XPKGDATE'. 1 03 ISPF-XPKGDATE PIC X(06). 1 MOVE GENERAL-INSDATE TO ISPF-XPKGDATE. <M=PROG4,CREDATE=96138,MODDATE=96138,MODTIME=1350,USER=USER15><M=PROG5,CREDATE=96138,MODDATE=96138,MODTIME=1350,USER=USER15><M=PROG6,CREDATE=96138,MODDATE=96138,MODTIME=1350,USER=USER15><M=PROG7,CREDATE=96138,MODDATE=96138,MODTIME=1350,USER=USER15><M=PROG8,CREDATE=96138,MODDATE=96138,MODTIME=1350,USER=USER15><M=PROG9,CREDATE=96138,MODDATE=96138,MODTIME=1350,USER=USER15>-CPX75I - RECORDS PROCESSED(6157)0CPX78I - MEMBERS PROCESSED: SYSUT1(10)0CPX80I - TIME OF DAY AT END OF JOB: 14:15:29 - CONDITION CODE ON EXIT: 4

SCENARIO 2 - COMPARING SOURCE CODE TO DETECT CHANGES

If many changes must be made, success hinges on the correct implementation of changes. To ensure that all changes have been properly integrated into programs, Comparex can quickly compare the changed file to the original file and generate a report. This report facilitates the accurate analysis of changes.

Once changes are made to a program, the new file must be tested to ensure that no bugs were introduced. For example, after scanning the production library for date fields, PROG2 and PROG3 were identified as containing the specific field ‘ISPF-XPKGDATE.’ Once changed, Comparex can test programs to be sure that user-specified changes were made. Comparex also tests to see if any unexpected changes were introduced. Using Comparex, expected and unexpected changes can quickly and accurately be detected.

If the ‘ISPF-XPKGDATE’ field was changed in PROG2 and PROG3, other modules in the program could be affected. This modified field may be used or called by another program, resulting in a negative impact. Therefore, Comparex’s output report should be carefully reviewed.

The following JCL is a TEXT compare of the production source against the new, changed source code (the ISPF-XPKGDATE field was changed from a two-byte to a four-byte year field).

6

Page 307: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

//USER15B2 JOB (X170,374),'SRCDIFF',TIME=(,5), // CLASS=A,NOTIFY=USER15,MSGCLASS=9//COMPARE EXEC PGM=COMPAREX//STEPLIB DD DISP=SHR,DSN=PROD.COMPAREX.LINKLIB //SYSPRINT DD SYSOUT=*//SYSUDUMP DD SYSOUT=*//SYSUT1 DD DISP=SHR,// DSN=USER15.CPXPROD.SOURCE//SYSUT2 DD DISP=SHR,DSN=USER15.CPXTEST.SOURCE //SYSIN DD *TEXT=COBOLLINE=(80,ALPHA)

Following is a report generated by Comparex to show the differences, expected and unexpected, if the field length was changed.

SYSUT1=USER15.CPXPROD.SOURCE,SYSUT2=USER15.CPXTEST.SOURCE0 PROG1 0 PROG10

SYSUT1=USER15.CPXPROD.SOURCE(PROG2),SYSUT2=USER15.CPXTEST.SOURCE(PROG2)0++++++++|+++.+<++1++++.++++2++++.++++3++++.++++4++++.++++5++++.++++6++++.++++7+ D 03 ISPF-XPKGDATE PIC X(06). --------|---.----1----.----2----.----3----.----4----.----5----.----6----.----7- I 03 ISPF-XPKGDATE PIC X(08). ++++++++|+++.+<++1++++.++++2++++.++++3++++.++++4++++.++++5++++.++++6++++.++++7+0CPX71I - END OF TEXT ON FILE SYSUT1 0CPX72I - END OF TEXT ON FILE SYSUT2-CPX75I - RECORDS PROCESSED: SYSUT1(1302)/SYSUT2(1302),DIFFERENCES(1)

SYSUT1=USER15.CPXPROD.SOURCE(PROG3),SYSUT2=USER15.CPXTEST.SOURCE(PROG3)0++++++++|+++.+<++1++++.++++2++++.++++3++++.++++4++++.++++5++++.++++6++++.++++7+ D 03 ISPF-XPKGDATE PIC X(06). --------|---.----1----.----2----.----3----.----4----.----5----.----6----.----7- I 03 ISPF-XPKGDATE PIC X(08). ++++++++|+++.+<++1++++.++++2++++.++++3++++.++++4++++.++++5++++.++++6++++.++++7+

0CPX71I - END OF TEXT ON FILE SYSUT1 0CPX72I - END OF TEXT ON FILE SYSUT2-CPX75I - RECORDS PROCESSED: SYSUT1(1302)/SYSUT2(1302),DIFFERENCES(1)

SYSUT1=USER15.CPXPROD.SOURCE,SYSUT2=USER15.CPXTEST.SOURCE0CPX72I - END OF DIRECTORY ON FILE SYSUT20 PROG4 0 PROG50 PROG6 0 PROG70 PROG8 0 PROG90CPX71I - END OF DIRECTORY ON FILE SYSUT10CPX78I - MEMBERS PROCESSED: SYSUT1(10)/SYSUT2(2),DIFFERENCES(2,8,0)EXPLANATION - 2 MEMBERS DIFFER THAT SYNCHRONIZED TO8 MEMBERS WERE CONSIDERED INSERTED ON 0 MEMBERS WERE CONSIDERED INSERTED ON0CPX80I - TIME OF DAY AT END OF JOB: 14:20:06 - CONDITION CODE ON EXIT: 4

307

Page 308: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

30

Appendix A: Examples

SCENARIO 3 - DETECTING MISSING SOURCE OR LOAD MODULES

Comparex can compare a directory of source modules with a directory of load modules to detect missing source or load modules. Using Comparex to compare all inventoried source modules to the production load modules, ensures that the current source inventory to be modified will represent the current production environment.

When setting comparison criteria, users are given the option to view either source module directory information or load module directory information. To view source module directory information, DIRECTORY=PDF should be defined. Load module directory information can be viewed by defining DIRECTORY=LOAD. (It is important to note that DIRECTORY=PDF and LOAD cannot be defined at the same time.) To determine which members do not have matching files in the other directory, PRINT=NOMATCH is defined.

Steps to detect missing source or load modules using Comparex:

1. Define SYSUT1 as the Source Library.

2. Define SYSUT2 as the Load Library for the same programs.

3. Define the selection criteria as DIRECTORY=PDF and PRINT=NOMATCH.

Comparex will indicate the source module for which there is no load module, or load module for which there is no source module. Once this is determined, it is easier to analyze the unmatched source or load modules to find what is missing. This is important when working with large libraries.

In the following report, there is one load module (CMNZVRB) that does not have matching source module. Additionally, eight source modules do not have matching load modules.

Following is the JCL to detect missing source or load modules.

//USER15B2 JOB (X170,374),'DIRDIFF',TIME=(,5), //CLASS=A,NOTIFY=USER15,MSGCLASS=9//*//COMPARE EXEC PGM=COMPAREX//STEPLIB DD DISP=SHR,DSN=PROD.COMPAREX.LINKLIB //SYSPRINT DD SYSOUT=*//SYSUDUMP DD SYSOUT=*//SYSUT1 DD DISP=SHR,// DSN=USER15.CPXPROD.SOURCE//SYSUT2 DD DISP=SHR,DSN=USER15.CPXPROD.LINKLIB //SYSIN DD *DIRECTORY=PDFPRINT=NOMATCH

8

Page 309: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

Following is a Comparex report showing missing source and load modules.

SCENARIO 4 - GENERATING TEST DATA

There are programs that need to be changed and tested. For each of these programs, test data must be generated. Comparex expedites this process by using production data to generate test data. This improves the quality of the testing process by providing a simulation of the actual production environment.

In the following example, test data is needed for the records that have a ‘C’ at displacement 15 and include ‘1996.’ SYSUT2 is the data set used to generate the test data. For this specific selection, statements with the key word FILTERIN are used (as shown in the sample JCL). The COPYDIFF keyword will automatically prompt Comparex to write to a third file, SYSUT3 (delta deck or test file). SYSUT3 will contain test data based on selected criteria.

SYSUT2:

The following JCL generates a test file specifying records that are type ‘C’ at displacement 15 for the year 1996 only.

SYSUT1=USER15.CPXPROD.SOURCE,SYSUT2=USER15.CPXPROD.LINKLIB NAME VV.MM CREATED LAST MODIFIED SIZE INIT MOD ID CMNZVRB PROG1 01.00 96/05/17 96/05/17 13:32 109 109 0 USER15 PROG10 01.00 96/05/17 96/05/17 13:50 492 492 0 USER15CPX72I - END OF DIRECTORY ON FILE SYSUT2 PROG4 01.00 96/05/17 96/05/17 13:50 492 492 0 USER15 PROG5 01.00 96/05/17 96/05/17 13:50 492 492 0 USER15 PROG6 01.00 96/05/17 96/05/17 13:50 492 492 0 USER15 PROG7 01.00 96/05/17 96/05/17 13:50 492 492 0 USER15 PROG8 01.00 96/05/17 96/05/17 13:50 492 492 0 USER15 PROG9 01.00 96/05/17 96/05/17 13:50 492 492 0 USER15CPX71I - END OF DIRECTORY ON FILE SYSUT1CPX78I - MEMBERS PROCESSED: SYSUT1(10)/SYSUT2(3),DIFFERENCES(2,8,1)EXPLANATION - 2 MEMBERS DIFFER THAT SYNCHRONIZED TOGETHER 8 MEMBERS WERE CONSIDERED INSERTED ON SYSUT11 MEMBER WAS CONSIDERED INSERTED ON SYSUT2CPX80I - TIME OF DAY AT END OF JOB: 14:25:43 - CONDITION CODE ON EXIT: 4

00001031996045C0000005621JBRADLEY BARTHOLOMEW J JR.00001031995004SBRADLEY BARTHOLOMEW J JR.0000000022M00004041996187C00000013110TELLTALE THOMAS R00004041996187STELLTALE THOMAS R 0030005746J00008521995321C0000009541JSILVERSTEIN SHARON H 00008521995321SSILVERSTEIN SHARON H 0040004213L00010001996135C0000001311RRADCLIFT RICHARD L00010001997135SRADCLIFT RICHARD L 0010003214J00010521997250C0000005871NZANE ZACHARY R00010521996250SSZANE ZACHARY R 0000008465J00012461994276C00000014210VANDYKE VICTORIA N00012461994276SVANDYKE VICTORIA N 0080006050P00055841995122C0000003110KELLOGG KIRK O00055841996122SKELLOGG KIRK O 0000000951R

309

Page 310: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

31

Appendix A: Examples

//USER15B2 JOB (X170,374),'TESTDAT',TIME=(,5),// CLASS=A,NOTIFY=USER15,MSGCLASS=9//*//COMPARE EXEC PGM=COMPAREX//STEPLIB DD DISP=SHR,DSN=PROD.COMPAREX.LINKLIB//SYSPRINT DD SYSOUT=*//SYSUDUMP DD SYSOUT=*//SYSUT1 DD DUMMY//SYSUT2 DD DISP=SHR,DSN=USER15.CPX.DEMO(ACPXFL2)//SYSUT3 DD DISP=SHR,DSN=USER15.CPX.OUTPUT //SYSIN DD *FILTERIN=(15,EQ,C'C')FILTERIN=(8,EQ,C'1996')COPYDIFF

The following test file was created as a result of the COPYDIFF keyword. Three records (for 1996 with ‘C’ at displacement 15) were selected and moved to SYSUT3 to be used as test data.

SYSUT3:

SCENARIO 5 - VERIFYING FIELD MODIFICATIONS

When making modifications to a specific field, other fields in the record can be overwritten. Comparex generates a report that shows any changes made to other fields.

In the following example, SYSUT1 has ‘C’ in column 8, a five-byte date field (96045) and an 11-byte field with other information. The five-byte date field has been changed to seven-bytes (1996045) and the file is now identified as SYSUT2. The only difference between SYSUT1 and SYSUT2 should be the addition of two bytes in the date field.

After reviewing the structure of SYSUT1 and SYSUT2, Comparex can execute a comparison to determine if the date has been inserted or overwritten. The date can be easily compared by masking the ‘19’ portion of the new date field during the comparison. If the Comparex report shows differences in the 11-byte date field, it is clear that the two-byte insertion overwrote the 11-byte field and the program needs to be reviewed.

The Comparex report provides an error message if the key does not match. In the following report, there is a ‘key synchronization error’ (‘6 records differ that synchronized together’). This indicates that the program needs to be reviewed to determine why there is no match for the keys.

00001031996045C0000005621JBRADLEY BARTHOLOMEW J JR.00004041996187C00000013110TELLTALE THOMAS R00010001996135C0000001311RRADCLIFT RICHARD L

0

Page 311: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

SYSUT1:

SYSUT2:

Following is the JCL to verify that the date field has been inserted and did not overwrite other fields.

//USER15B2 JOB (X170,374),'VERDAT',TIME=(,5),// CLASS=A,NOTIFY=USER15,MSGCLASS=9//*//COMPARE EXEC PGM=COMPAREX//STEPLIB DD DISP=SHR,DSN=PROD.COMPAREX.LINKLIB//SYSPRINT DD SYSOUT=*//SYSUDUMP DD SYSOUT=*//SYSUT1 DD DISP=SHR,DSN=USER15.CPX.DEMO(ACPXFL1)//SYSUT2 DD DISP=SHR,DSN=USER15.CPX.DEMO(ACPXFL2)//SYSIN DD *FILTERIN=(8,EQ,C'C')KEY=(1,7)FIELD=(1,7)FIELD1=(9,5)FIELD2=(11,5)

0000103C960450000005621JBRADLEY TEST BARTHOLOMEW J JR.000010395004SBRADLEY BARTHOLOMEW J JR.0000000022M0000404C9618700000013110TELLTALE TEST THOMAS R 000040496187STELLTALE THOMAS R 0030005746J0000852C953210000009541JSILVERSTEIN SHARON H000085295321SSILVERSTEIN SHARON H 0040004213L0001000C961250000001311RRADCLIFT RICHARD L000100097135SRADCLIFT RICHARD L 0010003214J0001052C972500000005871NZANE TEST ZACHARY R000105296250SSZANE ZACHARY R 0000008465J0001346C9427600000014210VANDYKE VICTORIA N000124694276SVANDYKE VICTORIA N 0080006050P0005584C951220000003110KELLOG KIRK O000558496122SKELLOGG KIRK O 0000000951R

0000103C199604500005621JBRADLEY BARTHOLOMEW J J R.00001031995004SBRADLEY BARTHOLOMEW J JR.0000000022M0000404C1996187000013110TELLTALE THOMAS R00004041996187STELLTALE THOMAS R 0030005746J0000852C199532100009541JSILVERSTEIN SHARON H00008521995321SSILVERSTEIN SHARON H 0040004213L0001000C199613500001311RRADCLIFT RICHARD L00010001997135SRADCLIFT RICHARD L 0010003214J0001052C199725000005871NZANE ZACHARY R00010521996250SSZANE ZACHARY R 0000008465J0001246C1994276000014210VANDYKE VICTORIA N00012461994276SVANDYKE VICTORIA N 0080006050P0005584C199512200003110KELLOGG KIRK O 00055841996122SKELLOGG KIRK O 0000000951R

311

Page 312: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

31

Appendix A: Examples

FIELD1=(14,11)FIELD2=(16,11)MASK1=(35,5)FORMAT=26

2

Page 313: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

The following Comparex report shows that the inserted date field overwrote other fields.

SYSUT1=USER15.CPX.DEMO(ACPXFL1),SYSUT2=USER15.CPX.DEMO(ACPXFL2)0DSPL |...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8....+....9....+....00CPX51I - RECORD NUMBER 1 ON FILE SYSUT101 0000103C960450000005621JBRADLEY TEST BARTHOLOMEW J JR. FFFFFFFCFFFFFFFFFFFFFFFDCDCCDCE444ECEE44444444CCDECDDDDCE4444444444D4DD444444444 00001033960450000005621129143580003523000000002193863645600000000001019B000000000CPX52I - RECORD NUMBER 1 ON FILE SYSUT2 FIELD=301 0000103C199604500005621JBRADLEY BARTHOLOMEW J J R. FFFFFFFCFFFFFFFFFFFFFFFDCDCCDCE444444444444444CCDECDDDDCE4444444444D4D44D4444444 0000103319960450000562112914358000000000000000219386364560000000000101009B000000 ------- -DIFFERENCE+-CPX51I - RECORD NUMBER 3 ON FILE SYSUT101 0000404C9618700000013110TELLTALE TEST THOMAS R FFFFFFFCFFFFFFFFFFFFFFFFECDDECDC44ECEE44444444ECDDCE444444444444444D444444444444 000040439618700000013110353331350035230000000038641200000000000000090000000000000CPX52I - RECORD NUMBER 3 ON FILE SYSUT2 FIELD=301 0000404C1996187000013110TELLTALE THOMAS R FFFFFFFCFFFFFFFFFFFFFFFFECDDECDC44444444444444ECDDCE444444444444444D444444444444 00004043199618700001311035333135000000000000003864120000000000000009000000000000 -- ---- -DIFFERENCE+-CPX51I - RECORD NUMBER 5 ON FILE SYSUT101 0000852C953210000009541JSILVERSTEIN SHARON H FFFFFFFCFFFFFFFFFFFFFFFDECDECDEECCD44444444444ECCDDD444444444444444C444444444444 000085239532100000095411293559235950000000000028196500000000000000080000000000000CPX52I - RECORD NUMBER 5 ON FILE SYSUT2 FIELD=301 0000852C199532100009541JSILVERSTEIN SHARON H FFFFFFFCFFFFFFFFFFFFFFFDECDECDEECCD44444444444ECCDDD444444444444444C444444444444 00008523199532100009541129355923595000000000002819650000000000000008000000000000 ------- -DIFFERENCE+-CPX51I - RECORD NUMBER 7 ON FILE SYSUT101 0001000C961250000001311RRADCLIFT RICHARD L FFFFFFFCFFFFFFFFFFFFFFFDDCCCDCCE44444444444444DCCCCDC44444444444444D444444444444 000100039612500000013119914339630000000000000099381940000000000000030000000000000CPX52I - RECORD NUMBER 7 ON FILE SYSUT2 FIELD=201 0001000C199613500001311RRADCLIFT RICHARD L FFFFFFFCFFFFFFFFFFFFFFFDDCCCDCCE44444444444444DCCCCDC44444444444444D444444444444 00010003199613500001311991433963000000000000009938194000000000000003000000000000 - -- ---- -DIFFERENCE+0CPX51I - RECORD NUMBER 9 ON FILE SYSUT101 0001052C972500000005871NZANE TEST ZACHARY R FFFFFFFCFFFFFFFFFFFFFFFDECDC444444ECEE44444444ECCCCDE44444444444444D444444444444 000105239725000000058715915500000035230000000091381980000000000000090000000000000CPX52I - RECORD NUMBER 9 ON FILE SYSUT2 FIELD=301 0001052C199725000005871NZANE ZACHARY R FFFFFFFCFFFFFFFFFFFFFFFDECDC444444444444444444ECCCCDE44444444444444D444444444444 00010523199725000005871591550000000000000000009138198000000000000009000000000000 ------- -DIFFERENCE+0CPX62I - KEY SYNCHRONIZATION MISMATCH - RECORD 11 ON FILE SYSUT201 0001246C1994276000014210VANDYKE VICTORIA N FFFFFFFCFFFFFFFFFFFFFFFFECDCEDC444444444444444ECCEDDCC4444444444444D444444444444 000124631994276000014210515482500000000000000059336991000000000000050000000000000CPX61I - KEY SYNCHRONIZATION MISMATCH - RECORD 11 ON FILE SYSUT101 0001346C9427600000014210VANDYKE VICTORIA N FFFFFFFCFFFFFFFFFFFFFFFFECDCEDC444444444444444ECCEDDCC4444444444444D444444444444 00013463942760000001421051548250000000000000005933699100000000000005000000000000-CPX51I - RECORD NUMBER 13 ON FILE SYSUT101 0005584C951220000003110KELLOG KIRK O FFFFFFFCFFFFFFFFFFFFFFFDCDDDC44444444444444444DCDD44444444444444444D444444444444 000558439512200000031102533670000000000000000029920000000000000000060000000000000CPX52I - RECORD NUMBER 13 ON FILE SYSUT2 FIELD=301 0005584C199512200003110KELLOGG KIRK O FFFFFFFCFFFFFFFFFFFFFFFDCDDDCC4444444444444444DCDD44444444444444444D444444444444 00055843199512200003110253367700000000000000002992000000000000000006000000000000 ------- -DIFFERENCE+0CPX71I - END OF DATA ON FILE SYSUT10CPX72I - END OF DATA ON FILE SYSUT20CPX74I - BYTES UNDERSCORED(41)-CPX75I - RECORDS PROCESSED: SYSUT1(14)/SYSUT2(14),DIFFERENCES(6,1,1) EXPLANATION - 6 RECORDS DIFFER THAT SYNCHRONIZED TOGETHER 1 RECORD WAS CONSIDERED INSERTED ON SYSUT1 1 RECORD WAS CONSIDERED INSERTED ON SYSUT2 PASS FAIL STATISTICS 14 14 FILTERIN=(8,EQ,C'C')SYSUT1=USER15.CPX.DEMO(ACPXFL1),SYSUT2=USER15.CPX.DEMO(ACPXFL2)0CPX77I - REJECTED BY FILTERS: SYSUT1(7)/SYSUT2(7) - UNUSABLE FILTERS(0)0CPX80I - TIME OF DAY AT END OF JOB: 17:31:53 - CONDITION CODE ON EXIT: 4

313

Page 314: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

31

Appendix A: Examples

SCENARIO 6 - VALIDATING DATABASE CONVERSIONS

When validating database conversions, Comparex can be used to ensure that the hierarchical design has been correctly converted in the relational structure even if all the data has been migrated (i.e., the data is copied but not exactly in the right “position”).

With Comparex, DB2 tables or DLI segments can be accessed directly for comparison, or the database information can be unloaded and compared as flat files. When unloading a database for comparison, the unload facility supplied with Comparex should be used to do the unload.

It is important to set up FIELD1, FIELD2, KEY1 and KEY2 statements for both databases, before a comparison is performed. These should be based on the table structure and segment structure. There should be a FIELD statement for every column in the table that is being compared.

The following sample JCL is an example of DB2 compared against a flat file. The same keywords can also be used for VSAM.

//USER15A JOB (9602,848),DBDIFF, 00010000 // CLASS=A,MSGCLASS=X,TIME=(,15),NOTIFY=USER15 00010000 //COMPARE EXEC PGM=COMPAREX//STEPLIB DD DISP=SHR,DSN=USER15.TEST.LINKLIB// DD DISP=SHR,DSN=PROD.COMPAREX.LINKLIB // DD DISP=SHR,DSN=PROD.SERNET.LINKLIB // DD DISP=SHR,DSN=ACSNS.DB2.DSNG.DSNLOAD //SYSPRINT DD SYSOUT=*//SYSUT2 DD DISP=SHR,DSN=USER15.DB2.DEMO //SYSIN DD *CPXIFACE=CPXIDB2SYSUT1=(OTH,M=USER15.CPXBASE,PARM=DDNAME) MAXDIFF=10,CONTINUEKEY1=(31,8,N=KEY1)KEY2=(25,8,N=KEY2)FIELD1=(1,15,N=LASTNME_TABLE)FIELD2=(1,14,N=LASTNME_FLAT)FIELD1=(16,15,N=FIRSTNME_TABLE)FIELD2=(15,10,N=FIRSTNME_FLAT)FIELD1=(31,8,N=ACCTNUM_TABLE)FIELD2=(25,8,N=ACCTNUM_FLAT)FIELD1=(40,6,N=PAYDATE_TABLE)FIELD2=(35,6,N=PAYDATE_FLAT)FORMAT=22PRINT=FULL//*//SYSUT1 DD *

4

Page 315: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

CAF=DSNG,LASTNME,FIRSTNME,ACCTNUM,PAYDATE;/*

315

Page 316: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

31

Appendix A: Examples

The following JCL is an example of DB2 compared against DL/1.

//USER15CM JOB (X170,374),'DB2DIFF',TIME=(,5), // CLASS=X,NOTIFY=USER15,MSGCLASS=9//*//DLI$MVS PROC MBR=DFSSAM08,SOUT='*',PSB=,KW=BMP,// OPT=N,SPIE=0,TEST=0,RGN=2M,PRLD=,STIMER=1,CKPTID=, // IN=,OUT=,DIRCA=000,PARDLI=1,CPUTIME=,NBA=,OBA=,// IMSID=ISER,AGN=//DFSRRC00 EXEC PGM=DFSRRC00,REGION=&RGN, // PARM=(&KW,&MBR,&PSB,&IN,&OUT,// &OPT&SPIE&TEST&DIRCA,&PRLD,&STIMER,&CKPTID, // &PARDLI,&CPUTIME,&NBA,&OBA,&IMSID,&AGN) //STEPLIB DD DISP=SHR,DSN=PROD.IMS.RESLIB// DD DISP=SHR,DSN=IMSVS.RESLIB// DD DISP=SHR,DSN=PROD.COMPAREX.LINKLIB // DD DISP=SHR,DSN=PROD.SERNET.LINKLIB // DD DISP=SHR,DSN=DB2.DSN310.DSNLOAD //DFSRESLB DD DISP=SHR,DSN=IMSVS.DBCTL.RESLIB//SYSUDUMP DD SYSOUT=&SOUT,DCB=(LRECL=121,RECFM=VBA,BLKSIZE=3129), // SPACE=(125,(2500,100),RLSE,,ROUND)//IMS DD DISP=SHR,DSN=PROD.IMSTEST.PSBLIB // DD DISP=SHR,DSN=PROD.IMSTEST.DBDLIB //SYSPRINT DD SYSOUT=*//SYSOUT DD SYSOUT=*// PEND//UNLOAD EXEC DLI$MVS,MBR=COMPAREX,RGN=1024K, // PSB=DFSSAM08,KW=BMP//SYSPRINT DD SYSOUT=*//SYSUT3 DD DISP=SHR,DSN=USER15.ASM.OUTPUT2 //SYSIN DD *CPXIFACE1=CPXDLICPXIFACE2=CPXIDB2SYSUT1=(OTH,MEMBER=DI21PART)SYSUT2=(OTH,M=USER15.CPXIMS,PARM=DDNAME) FILTERIN=(1,EQ,C'PARTROOT')FIELD1=(1,8,N=IMS_SEGNAME)FIELD2=(1,8,N=DB2_NAME)FIELD1=(65,2,N=IMS_TYPE)FIELD2=(9,2,N=DB2_TYPE)FIELD1=(67,14,N=IMS_PARTNO)FIELD2=(11,14,N=DB2_PARTNO)FIELD1=(91,10,N=IMS_PARTNAME)FIELD2=(25,10,N=DB2_PARTNAME)FORMAT=22FORMAT=FIELDFLDSONLYCOPYDIFF,MAXDIFF=5,CONTINUE

6

Page 317: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

//SYSUT2 DD *CAF=DB2A,NAME,TYPE,PARTNO,PARTNAME;NAME LIKE "PART%";//*

SELECT ONE ACCOUNT - FILTERIN

We want to select a special test file from the master file containing only account 34567-8:

//COMPARE PROC//COMPAREX EXEC PGM=COMPAREX,REGION=256K//SYSPRINT DD SYSOUT=*// PEND//*//EXTRACT EXEC COMPARE//SYSUT1 DD DUMMY//SYSUT2 DD DISP=SHR,DSN=somnode.MASTER.FILE//SYSUT3 DD DISP=(,CATLG,DELETE),DSN=somnode.EXTRACT.FILE,// UNIT=SYSDA,SPACE=(TRK,(5,5),RLSE),// DCB=(RECFM=VB,BLKSIZE=6000)//SYSIN DD ************************************ Extract account # 34567-8 only *********************************** SYSUT1=DUMMY COPYDIFF MAXDIFF=1 FILTERIN=(9,EQ,X'0345678C')

SELECT TWO ACCOUNTS - FILTORINS

We want to send only those input records for accounts 123 and 234 to the comparison routines:

FILTORIN=(2,EQ,C'123')

FILTORIN=(2,EQ,C'234')

EXCLUSIVE FILTERS

We want to send to the comparison routines only those records where position 3 is ‘A’ and position 7 is ‘X’. We want every record that does not pass both these criteria to be bypassed:

317

Page 318: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

31

Appendix A: Examples

FILTERIN=(3,EQ,C'A')

FILTERIN=(7,EQ,C'X')

or

FILTERIN=(3,EQ,C'A...X')

FILTER OUT ONE RECORD

We want to send all the input records to the compare routines except records for account 789:

FILTEROUT=(2,EQ,C'789')

or

FILTERIN=(2,NE,C'789')

FILTER OUT ALL BUT CERTAIN RECORDS

We want to send all of the records to the compare routines except records for divisions 12 and 23:

FILTOROUT=(22,EQ,C'12')

FILTOROUT=(22,EQ,C'23')

FILTER OUT AND FILTER IN

We want to send only those records where the account balance is at least $100,000 to the compare routines:

FILTEROUT=(97,EQ,X'...D') /* Eliminate negative balances */

FILTERIN=(93,GE,X'0000') /* Select balances of $100,000 and up*/

DISREGARD INSERTED RECORDS

A special payroll change is expected to insert one or more records behind each existing master record, using the same account number. We want to compare the old master to the new master, disregarding the inserted records:

KEY=(1,9),PRINT=NOMISMATCH

or

KEY=(1,9),FILTEROUT=(10,GE,X'3C')

8

Page 319: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

COMPLEX FILTERING

We want to send to the compare routines only those records where all these things are true:

• Account balance is not zero

• State code is Texas

• Last name starts with CW or KW or Q

FOUT=(71,EQ,X'0000000.') /* Eliminate zero balances */ FILTERIN=(19,EQ,C'TX') /* Select Texans */ FILTORIN=(21,EQ,C'CW') /* Select 'CW' */ FILTORIN=(21,EQ,C'KW') /* Select 'KW' */

FILTORIN=(21,EQ,C'Q') /* Select 'Q' */

IDENTITYS AND FIELDS

We want to compare files that have two different record types. Account header records have the letter ‘A’ in position 5 and we want to compare positions 17 through 29. Account detail records have the letter ‘D’ in position 5 and we want to compare positions 51 through 60:

KEY=(1,9,Z,A) /* Zoned KEY - may have differing signs */ IDENTITY=(5,EQ,C'A') /* Identify Account Header record */ FIELD=(17,13) IDENTITY=(5,EQ,C'D') /* Identify Detail record */

FIELD=(51,10)

COBOL SOURCE CODE CHANGES

The operations manager wants to send a list of changes to any accounts payable COBOL program to the Controller:

TEXT=COBOL

FILTERS WITH TEXT

We have just received the complete source code and execution JCL from a software vendor, and this is supposed to replace a prior release from six months before. Unfortunately, there is little documentation of what has changed in this release. Each piece of the release is uniquely named. The old version resides in a Panvalet library and the new version is in a large PDS. A naming convention pattern has been established, and it has been determined

319

Page 320: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

32

Appendix A: Examples

that all execution JCL procedures begin with the letter ‘J’ or ‘XJ’. All COBOL modules are prefixed with ‘PTXA’. There are a few PL/1 members that are suffixed with the letter ‘P’. Control card members all start with ‘C’ and have a dollar sign in the fourth position. All the rest of the members are Assembler Language. We want to compare the new release with the prior release.

//COMPARE PROC//COMPAREX EXEC PGM=COMPAREX//STEPLIB DD DISP=SHR,DSN=somnode.COMPAREX.LOAD//SYSPRINT DD SYSOUT=*//PANDD1 DD DISP=SHR,DSN=somnode.PANLIB//SYSUT2 DD DISP=SHR,DSN=somnode.PDS// PEND//*//JCL EXEC COMPARESYSUT1=PANTEXT=JCL,FORIN=(MEMBER,1,EQ,C'J'),FIN=(M,1,EQ,C'XJ')//COBOL EXEC COMPARESYSUT1=PANTEXT=COBOL,FIN=(M,1,EQ,C'PTXA'),FOROUT=(M,8,EQ,C'P')//PL1 EXEC COMPARESYSUT1=PANTEXT=PL/1,FIN=(M,1,EQ,C'PTXA'),FIN=(M,8,EQ,C'P')//CONTROL EXEC COMPARESYSUT1=PANTEXT=JCL,FIN=(M,1,EQ,C'C..$')//BAL EXEC COMPARE SYSUT1=PANTEXT=BAL,FOUT=(M,1,EQ,C'J'),FOUT=(M,1,EQ,C'XJ') FOUT=(M,1,EQ,C'PTXA'),FOUT=(M,1,EQ,C'C..$')

or

//ALLOFIT EXEC COMPARE SYSUT1=PAN WILDCARD=C'*',TEXT=*

AUDIT PDS LIBRARIES

The auditors of a financial institution insist that all load modules in production libraries be accounted for with respect to source code. The shop standard is that Partitioned Data Sets (PDSs) be used to hold source code, object code, and load modules, with the same name used across the libraries. We want to compare any two libraries:

0

Page 321: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

DIRECTORY /* Just compare directories PRINT=NOMATCH /* Print only the mismatches

COMPARE JCL LIBRARIES

An analyst borrowed a library of JCL. It was created using ISPF/PDF (or TSO/SPF) originally. He copied it to his or her USER ID using IEBCOPY and then changed it. We want to compare the two libraries to see what he changed:

//DIR$PDF EXEC COMPARE DIR=PDF /* Walk Directory, show members added */ /* changed */ /* or deleted. *///*//TEXT EXEC COMPARE TEXT=JCL /* On matched Member names, see the */ PRINT=FULL /* Differences in Source Code in context. */

REGRESSION TEST IN DATABASE ENVIRONMENT

We want to read the database direct through the Comparex interface (CPXIFACE) and write each record out to SYSUT3 which is flat.

SYSUT1=DUMMY /* Assume CPXIFACE Generated correctly */SYSUT2=(OTH,MEMBER=DBDNAME)COPYDIFF,MAXDIFF=5,CONTINUE=YES /* Write it all to SYSUT3 */

COMPARE TO BACKUP

After the database has been updated by our application programs, we want to compare it against the backup (just created) to see the changes made.

SYSUT2=(OTH,MEMBER=DBDNAME) /* Read Database again */MAXDIFF=50,CONTINUE /* Generally advised */SEGMENT=(1,EQ,C'ROOT',(A,9,5)) /* ROOT Segment */IDENTITY=(1,EQ,C'ROOT')FIELD=(65,END)MASK=(98,3)SEGMENT=(1,EQ,C'APPLES')ID=(1,EQ,C'APPLES')

321

Page 322: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

32

Appendix A: Examples

FIELD=(65,END)SEG=(1,EQ,C'STEMS',(A,14,5))ID=(1,EQ,C'STEMS')FIELD=(65,END)MASK=(77,1)MASK=(81,1)

FIND LATEST VERSIONS

At least two programmer/analysts have copied executable load modules from the same load library into their own load libraries for special concatenation of Joblib/Steplib. Then, certain modules have been recompiled and link-edited into some of the libraries. Now, nobody really knows what version is the latest and the multiple copies are wasting disk storage space.

We want to compare any two of these libraries (A to B, B to C, and so forth) to isolate the newest version of a module so we can scratch the old versions. There is a date/time stamp generated by the compiler and other date/time stamp generated by the link editor in each load module. Assuming that the compiler and link editor have not changed between versions of any module, the only changes should be the modified source code and the date of compilation.

//A2B EXEC COMPARE DATA=CSECT /* CSECT Parsing */ MAXDIFF=5,CONTINUE MBRHDR=COND /* Only see the members that differ *///B2C EXEC COMPARE DATA=CSECT /* CSECT Parsing */ MAXDIFF=5,CONTINUE MBRHDR=COND /* Only see the members that differ */

IEBUPDTE FORMATTING OF AUDIT TRAIL

A shop has neither Panvalet nor Librarian. All source code updates are done through IEBUPDTE. We want to create an audit trail of changes between two PDSs, then have IEBUPDTE recreate the changes into the first PDS.

//AUDIT EXEC PGM=COMPAREX,REGION=1M//SYSPRINT DD SYSOUT=*

2

Page 323: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

//SYSUT1 DD DISP=SHR,DSN=somnode.PDS1.ASSEMBLE//SYSUT2 DD DISP=SHR,DSN=somnode.PDS2.ASSEMBLE//SYSUT3 DD DISP=(,CATLG,DELETE),DSN=somnode.IEBUPDTE.AUDIT,// UNIT=sysda,SPACE=(TRK,(1,5),RLSE),// DCB=(RECFM=FB,LRECL=80,BLKSIZE=2000)//SYSIN DD * TEXT=BAL /* Assume both libraries contain Assembler Source */ MBRHDR=COND /* Only see the members that have indeed changed */* Create Audit Trail in IEBUPDTE Format * COPYDIFF=(IEBUPDTE,SEQFLD='738,765') /* <=== NOTE SEQFLD=.. *///*//CPXUPDTE EXEC PGM=IEBUPDTE,PARM=MOD//SYSPRINT DD SYSOUT=*//SYSUT1 DD DISP=SHR,DSN=somnode.PDS1.ASSEMBLE//SYSUT2 DD DISP=SHR,DSN=somnode.PDS1.ASSEMBLE <=== Same Name//SYSIN DD DISP=SHR,DSN=somnode.IEBUPDTE.AUDIT//*//VERIFY EXEC PGM=COMPAREX,REGION=1M//SYSPRINT DD SYSOUT=*//SYSUT1 DD DISP=SHR,DSN=somnode.PDS1.ASSEMBLE//SYSUT2 DD DISP=SHR,DSN=somnode.PDS2.ASSEMBLE//SYSIN DD * TEXT=BAL /* Verify that Matching Members are Identical */ MBRHDR=COND /* This will make for a very short report *///* EOJ

DELTA DECK IN CHANGEMAN ZMF FORMAT AUDIT TRAIL

A shop wishes to get away from Panvalet or Librarian and standardize on PDSs in anticipation of converting to PDSEs in the future. It is also known that IEBUPDTE needs the contents of columns 73 through 80 and those columns are used for internal stamps. The ChangeMan ZMF format for delta decks fits those requirements. We want to create an audit trail of changes between two PDSs, then have CMNDELTA apply the changes to the first PDS, probably by the third party change control group.

//AUDIT EXEC PGM=COMPAREX//SYSPRINT DD SYSOUT=*//SYSUT1 DD DISP=SHR,DSN=somnode.PDS1.ASSEMBLE//SYSUT2 DD DISP=SHR,DSN=somnode.PDS2.ASSEMBLE//SYSUT3 DD DISP=(,CATLG,DELETE),DSN=somnode.CMNDELTA.DECK,// UNIT=sysda,SPACE=(TRK,(1,5),RLSE),// DCB=(RECFM=FB,LRECL=80,BLKSIZE=2000)

323

Page 324: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

32

Appendix A: Examples

//SYSIN DD * TEXT=. /* Dynamically figure out type of source code */ MBRHDR=COND /* Only see the members that have indeed changed */ COPYDIFF=CMN /* Create Audit Trail in Change Man Format *///*//CMNDELTA EXEC PGM=CMNDELTA//SYSPRINT DD SYSOUT=*//FILE1 DD DISP=SHR,DSN=somnode.PDS1.ASSEMBLE <== original file//DELTA DD DISP=SHR,DSN=somnode.CMNDELTA.DECK//*//VERIFY EXEC PGM=COMPAREX//SYSPRINT DD SYSOUT=*//SYSUT1 DD DISP=SHR,DSN=somnode.PDS1.ASSEMBLE//SYSUT2 DD DISP=SHR,DSN=somnode.PDS2.ASSEMBLE//SYSIN DD * TEXT=. /* Verify that Matching Members are Identical */ MBRHDR=COND /* This will make for a very short report *///* EOJ

DESENSITIZE LIVE PRODUCTION DATA

Instead of creating special test data to test out enhanced modules, a shop tests their changes against live production files. The internal auditor has insisted that live names, addresses, and any other sensitive information be “clobbered”, or replaced with innocuous verbiage before comparison and/or printing.

MAXDIFF=50,CONTINUE /* Generally advised */IDENTITY=(21,EQ,C'A')DESEN=(35,C'OBLITERATE THE NAME FIELD ')DESEN=(65,C'OBLITERATE THE FIRST ADDRESS ')MASK=(111,5) /* Date Time Stamp */IDENTITY=(21,EQ,C'B') /* Average Balance over 3 years */DESEN=(31,X'0000000C')

4

Page 325: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

REVERSE DELTA DECK

It is very common to have very many versions of the source code for any one program. We can create an audit trail of the changes by comparing the old version against the newer version at each change level. However, we can also compare them in reverse order and create a delta deck such that if the old version of the source code is lost, it can be recreated by running the delta deck against the new version.

This concept can be used to save disk space for older versions of source code. Only the proper delta decks need to be saved.

We will assume that the new version (SYSUT1) resides in a PDS and the old version (SYSUT2) resides in a Panvalet library. We will create a delta deck (SYSUT3) for module “PROGRAM1” and save it in another PDS.

//COMPAREX EXEC PGM=COMPAREX//STEPLIB DD DISP=SHR,DSN=somnode.COMPAREX.LOAD//SYSPRINT DD SYSOUT=*//SYSUT1 DD DISP=SHR,DSN=somnode.SOURCE.PDS <=== New version//SYSUT2 DD DISP=SHR,DSN=somnode.PANLIB <=== Old version//SYSUT3 DD DISP=SHR,DSN=somnode.DELTA.PDS(PROGRAM1)//SYSIN DD *SYSUT2=(PAN,DDNAME=SYSUT2),TEXT=COBOLFIN=(MEMBER,1,EQ,C'PROGRAM1') /* Create Delta Deck in PANVALET Format */COPYDIFF=(PAN,STAMP=YES) /* Time stamp when created *///* EOJ

325

Page 326: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

32

Appendix A: Examples

6

Page 327: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

EFFECTIVE TESTING

C What you will find in this chapter:

• “Some Effective Testing Flowcharts” on page 328• “Managing the Testing Function” on page 331

The most important steps in the testing of program and system changes are to compare the actual results with the expected results, and to reconcile the differences.

This comparison can be done manually or with Comparex. The manual comparison process is both time consuming and subject to error; each byte of each record produced should be compared with what was expected. Because the manual process is so lengthy, often the tester checks only the fields of greatest concern and forgets to examine necessary literals and keys.

Comparex compares every byte unless specifically instructed not to. Forgotten literals and keys present themselves boldly on the difference report, and the tester can correct the code before it is put into production.

Comparex should not be used sparingly. On the first execution during a testing session, you should specify few keywords and let Comparex use its defaults. On this first run, you can specify MAXDIFF=10 to limit the differences shown, and specify CONTINUE to ensure that all records are read and produce statistics if needed.

You review this first difference report to see how many inequalities were found. The end-of-processing messages show the total number of differing pairs of records. Then, you run Comparex again, using KEYs, FIELDs, MASKs, and filters to properly synchronize the files, and to correctly select records and data in those records for comparison.

In this way, each Comparex run reveals more about the differences between the two files and, at the same time, more about the differences between the two programs that created them. Errors in programs are first discovered by examining the data they produce, and additional Comparex jobs can be run, using the TEXT keyword, to compare two versions of source code to identify added, changed, and deleted source lines.

This chapter on effective testing presents information about using Comparex to check the correctness of a single program or an entire system. In addition, users interested in management of testing procedures will find a discussion of test plans and test data at the end of this chapter.

327

Page 328: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

32

Chapter C: Effective Testing

SOME EFFECTIVE TESTING FLOWCHARTS

This chapter shows some ways to use Comparex effectively in testing.

Checking a Single Program (Unit Testing)

Measuring the effect of transactions on a master file update program can often prove the effectiveness of a program. The figure below shows a flowchart for such a measurement.

The master file from the previous update is used as input to the master file update, along with a file of transactions.

The previous master file and the master file created by the test run are used as input to Comparex. In this Comparex run, the old master file (+0) is used as SYSUT1 (original) and the new master file (+1) is used as SYSUT2 (modified).

Also used as input to Comparex is a file of specifications containing the Comparex keywords. If master files are being compared, KEY synchronization is usually specified. This allows Comparex to identify inserted and deleted records. Any date/time stamp on the two files could be ignored in the comparison by a MASK keyword.

The difference report is the proof of the effectiveness of the program. Each inserted and deleted record is shown, and you review these to reconcile them to the expected results. Any changed record is also reviewed. The differing bytes of the record are reconciled to the expected results. After the difference report has been reviewed, you are either satisfied with the program’s effectiveness or have a list of deficiencies to be corrected. After any program corrections, you run Comparex until all differences have been reconciled.

SYSUT1 Master

(+1)

(+0)

SYSUT2 Master

Comparex

Transactions

Application Program(Program A)

SYSIN Keywords

SYSPRINT

Difference Report

8

Page 329: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

Checking a Single Program in a Database Environment

Measuring the effect of a change to a program updating a database through a database management system such as IDMS is similar to the checking of a single program, as discussed above. The difference is that the database may be processed direct directly or unloaded to a flat file before processing. There are advantages anddisadvantages to each method. The following figure shows a flowchart for such a procedure.

Prior to running the new code, the database is unloaded to a flat file with Comparex. Then, the new code is run against the database. Finally, the flat file is compared against the just updated database. Variations on the SEGMENT keyword or KEY keyword are used to synchronize between the two databases.

Again, the difference report is the proof of the effectiveness of the program modification. You review the report to reconcile the actual results to the expected results. You make necessary program corrections, restore the database, and rerun the program and Comparex until all differences have been reconciled.

Flat File

SEGMENT or KEYCompareCOPYDIFF, Unload

DBMS

PGM - BC

Difference Report

ComparexComparex

DataUpdated

SYS

329

Page 330: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

33

Chapter C: Effective Testing

Checking a Program Modification (Systems Testing)

The following figure shows a flowchart for measuring the effect of a program modification.

The old program is run, using the current master file as input; and the modified program is run, using this same current master file as input. Then, Comparex is used to compare the output TEMP and TEMP’ files.

The version of the file created by the production program (the original) are used as SYSUT1 in the Comparex runs, and the version of the file created by the test program (the modified) are used as SYSUT2 in the Comparex runs.

The difference report is reviewed to evaluate the effectiveness of the program modification. You correct any deficiencies in the modified program and run the series of programs again.

Master

Application Program

Application Program

File (+0)

TEMP

TEMP’

SYSPRINTDifference Report

ComparexComparex

0

Page 331: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

Checking a System in a Database Environment

The figure below shows a flowchart for measuring the effectiveness of a program change in a complex database environment.

Systems tests come after the completion of unit tests. In the figure above, the database is restored to use as the starting point for the run of PGM-BC (the original). Then the database is unloaded to a flat file and saved for a future compare. The database is restored again for

execution of PGM-BC’ (the modified). Now Comparex compares the flat file directly against the database.

Variations on the SEGMENT keyword or the KEY keyword are used to show Comparex how to synchronize the two databases. The database produced by program PGM-BC is used as

SYSUT1, and the database produced by program PGM-BC’ is used as SYSUT2.

Again, the difference report is the proof of the effectiveness of the program modification. You review the report to reconcile the actual results to the expected results. You make necessary program corrections, restore the database, and rerun the program and Comparex until all differences have been reconciled.

MANAGING THE TESTING FUNCTION

The programming manager shares the responsibility for effective and accurate performance of computerized systems with the functional manager.

Database Database

Flat File

Comparex

SEGMENT or KEYCompareCOPYDIFF, Unload

DBMS

PGM - BC

DBMS

SYSPRINT

PGM - BC’

Difference Report

Comparex

After Restore

331

Page 332: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

33

Chapter C: Effective Testing

Two areas that programming managers find especially troublesome are effective communications about systems requirements and effective testing of requested modifications.

By careful management of the testing function, the programming manager can nearly eliminate trouble from these two sources.

These are the steps to take:

• Put requirements in writing

• Develop a test plan for each implementation and modification

• Gain the approval of the functional department for the test plan

• Gain the approval of the functional department for the test results.

Set Down Requirements in Writing

The programming manager and the functional manager develop a procedure for written communications. This procedure may include a special form that authorizes implementations and modifications; but, most importantly, the procedure states that computerized systems may not be modified until a written communication, signed by a defined authorizer, reaches the programming manager.

Often, it is the programming department who writes the communication after discussions with the functional user. The programming manager checks to see that the correct authorizer has signed the communication, and the programming manager schedules the work.

Develop a Test Plan

For each implementation and modification, the programming manager directs that a test plan be developed and put in writing. The test plan must spell out what tests will be run and who will do the work. In addition, the test plan says how the programming department will know that the test was correct.

For example, the payroll manager sends an authorized written communication to the programming manager to add to the payroll, effective the first of next month, a new deduction for union dues of $20 per pay period for members of Local ABC123.

The deduction of union dues is nothing out of the ordinary; it is only that Local ABC123 has just negotiated the deduction of its dues with corporate management.

Approval for the Test Plan

The programming manager and the functional manager negotiate the approval of the test plan.

The functional manager may ask for more test data, and the programming manager will estimate the costs, in terms of dollars and schedule impact, of these requests. At some point, the functional manager will agree to the test plan and to the use of his or her resources to meet the requirements of the test plan.

2

Page 333: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

In our payroll and union dues example, the payroll manager will probably want to see a tally of both gross pay and net pay on the new master. In addition, the payroll manager may want to review certain sensitive accounts on the new master. The programming manager adds these items to the test plan, the payroll manager authorizes the time of M. Smith and J. Jones to review results, and both the payroll manager and the programming manager sign the test plan.

Generating Test Data

The test plan states the conditions to be tested, and these conditions must be present in the data on the test input files. Comparex acts as a test data generator by enabling you to select certain records onto file SYSUT3.

APPLICATION PROGRAMMING TEST PLANDEPARTMENT: 3426 DATE: April 15, 2006

PROJECT MANAGER: Bill Winston PACKAGE #: UNN0032

TEST ITEMS: WHAT TO TEST: REVIEWERS/APPROVALS:

1) Accounts to be 1) Positions 127-134 1) Mike will reviewtested for deduction = 'ABC123 ' and each Comparex123-45-6789 positions 135-139 report.234-56-7890 = X'000002000C'345-67-8901

2) Dollar figure on 2) Select records where 2) Attach report tofile for Local ABC123 bytes 127-134 contain File Folder if amountis $4200.00 'ABC123 '; tally amount checks out. Otherwise, in bytes 135-139; no see Mike. detail.

3) Total union dollar 3) Tally bytes 135-139 3) Subtract $4200figure on entire file from total; Jim will compare to payroll register.

4) Compare previous 4) Each differing record 4) Attach Comparexmaster to new master should be Local ABC123 report to File FolderMAXDIFF=250,CONTINUE member. if no unexpectedMASK=(7,4) - Date differences; otherwise, see Project Manager.

TEST PLAN APPROVAL:

Project Leader ________________________________ Date _____________

Programming Mgr. ______________________________ Date _____________

Functional Mgr. _______________________________ Date _____________

333

Page 334: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

33

Chapter C: Effective Testing

In our payroll and union dues example, the programmer may decide to do his or her initial tests on a file extracted from live production data containing only the three accounts to be tested plus the payroll manager’s sensitive accounts. The programmer could select these off the master file with a COPYDIFF run and desensitize certain fields:

MAXDIFF=100,CONTINUE,COPYDIFF /* See first 100 taken SYSUT1=DUMMY FILTORIN=(9,EQ,X'123456789C') FILTORIN=(9,EQ,X'234567890C') FILTORIN=(9,EQ,X'345678901C') FILTORIN=(9,EQ,X'890123456.') FILTORIN=(9,EQ,X'901234567.') DESEN2=(30,C'EMPLOYEE NAME WAS HERE ') /* Desensitizer */

When generating test data, it is necessary to select items that should exercise the new code and items that should not. In our payroll example, the test data should include members of Local ABC123, members of other unions where union dues are deducted, members of other unions where union dues are not deducted, and employees who are not members of any union.

Functional Department Approval

The last step in the management of the testing function is to gain the approval of the functional department for the results of the tests. The test plan, as signed by the functional manager, has specified the tests to be run and the expected results of these tests. In addition, functional department personnel have been assigned to review test data.

Expected Results Are Met

If the expected results are met, the programmer notes that the results checked out as he or she places the proof of the results in the project folder.

In our example, the second item on the test plan specifies that the dollar figure on the file for Local ABC123 must equal $4200. If that exact figure is tallied, the programmer places the report in the project folder as proof that the figure was met and he or she makes a note about this test in the column for test approval.

Expected Results Are Not Met

If the expected results are not met, the programmer must seek help from the project leader or from the functional user to reconcile the differences.

In our example, the second item on the test plan specifies that the dollar figure on the file for Local ABC123 must equal $4200. If that exact figure is not tallied, the programmer is directed to M. Smith for resolution. M. Smith may find that some employees were coded for Local ABC123 in error, or that some Local ABC123 members were not coded, or that $4200 is the wrong number. M. Smith, the functional department’s employee, has been assigned the task of reconciling these numbers by the test plan. The programmer and M. Smith will work together to resolve the problem.

4

Page 335: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

Specifications Are Wrong

While the test approvals are being secured, either by computerized checks or by manual lookups, the correctness of the original specifications is tested.

In our example, the functional user may bring to light the knowledge that some Local ABC123 members are coded as ABC12-3, due to an earlier confusion about the designation of the organization.

The programming department and the functional department work together to get the project accomplished. By the time M. Smith and J. Jones sign the test approval, any specifications errors have been corrected, and the implementation of the change will be error free.

335

Page 336: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

33

Chapter C: Effective Testing

6

Page 337: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

SAMPLE COBOL CODE

D COBOL1 - BEFORE CHANGE

000100 IDENTIFICATION DIVISION. 00000100000200 PROGRAM-ID. COBOL01. 00000200000300 ENVIRONMENT DIVISION. 00000300000400 INPUT-OUTPUT SECTION. 00000400000500 FILE-CONTROL. 00000500000600 SELECT ONLY-FILE, 00000600000700 ASSIGN VSAMFILE, 00000700000800 ORGANIZATION IS INDEXED, 00000800000900 ACCESS DYNAMIC, 00000900001000 RECORD KEY IS ONLY-KEY, 00001000001100 FILE STATUS IS ONLY-FILE-STAT. 00001100001200 DATA DIVISION. 00001200001300 FILE SECTION. 00001300001400 FD ONLY-FILE. 00001400001500 01 ONLY-REC. 00001500001600 02 ONLY-KEY. 00001600001700 03 ONLY-ACCOUNT PIC X(10). 00001700

337

Page 338: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

33

Appendix D: Sample COBOL Code

001800 03 ONLY-TYPE PIC XX. 00001800001900 03 ONLY-DSN PIC X(44) OCCURS 2. 00001900002000 03 ONLY-MEMBER PIC X(10) OCCURS 2. 00002000002100 02 ONLY-REST-OF-REC PIC X(100). 00002100002200 WORKING-STORAGE SECTION. 00002200002300 77 ONLY-FILE-STAT PIC XX. 00002300002400 01 SWITCHES. 00002400002500 02 END-OF-ONLY-FILE-SW PIC X. 00002500002600 88 END-OF-ONLY-FILE VALUE 'Y'. 00002600002700 LINKAGE SECTION. 00002700002800 01 LS-FUNCTION PIC X(8). 00002800002900 88 OPEN-REQUEST VALUE 'OPEN'. 00002900003000 88 READSEQ-REQUEST VALUE 'READSEQ'. 00003000003100 88 CLOSE-REQUEST VALUE 'CLOSE'. 00003100003200 01 LS-ONLY-REC PIC X(220). 00003200003300 EJECT 00003300003400 PROCEDURE DIVISION USING LS-FUNCTION, LS-ONLY-REC. 00003400003500 MAIN-LINE. 00003500003600 IF OPEN-REQUEST PERFORM DO-THE-OPEN 00003600003700 ELSE IF READSEQ-REQUEST PERFORM DO-THE-SEQ-READ 00003700003800 ELSE IF UPDATE-REQUEST PERFORM DO-THE-UPDATE 00003800003900 ELSE IF CLOSE-REQUEST PERFORM DO-THE-CLOSE 00003900004000 ELSE DISPLAY 'INVALID I/O FUNCTION REQUESTED' 00004000004100 MOVE 12 TO RETURN-CODE. 00004100

8

Page 339: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

004200 GOBACK. 00004200004300 DO-THE-OPEN. 00004300004400 OPEN I-O ONLY-FILE. 00004400004500 IF ONLY-FILE-STAT = '00' 00004500004600 MOVE 0 TO RETURN-CODE 00004600004700 ELSE 00004700004800 EXHIBIT NAMED ONLY-FILE-STAT 00004800004900 DISPLAY 'OPEN FAILED' 00004900005000 MOVE 8 TO RETURN-CODE. 00005000005100 DO-THE-SEQ-READ. 00005100005200 READ ONLY-FILE NEXT, AT END MOVE 8 TO RETURN-CODE. 00005200005300 IF ONLY-FILE-STAT = '00' 00005300005400 MOVE ONLY-REC TO LS-ONLY-REC 00005400005500 MOVE 'N' TO END-OF-ONLY-FILE-SW 00005500005600 ELSE 00005600005700 MOVE 'Y' TO END-OF-ONLY-FILE-SW 00005700005800 MOVE 8 TO RETURN-CODE. 00005800005900 DO-THE-CLOSE. 00005900006000 CLOSE ONLY-FILE. 00006000

COBOL1 - AFTER CHANGE

000100 IDENTIFICATION DIVISION. 00000100000200 PROGRAM-ID. COBOL01. 00000200000300 ENVIRONMENT DIVISION. 00000300

339

Page 340: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

34

Appendix D: Sample COBOL Code

000400 INPUT-OUTPUT SECTION. 00000400000500 FILE-CONTROL. 00000500000600 SELECT ONLY-FILE, 00000600000700 ASSIGN VSAMFILE, 00000700000800 ORGANIZATION IS INDEXED, 00000800000900 ACCESS DYNAMIC, 00000900001000 RECORD KEY IS ONLY-KEY, 00001000001100 FILE STATUS IS ONLY-FILE-STAT. 00001100001200 DATA DIVISION. 00001200001300 FILE SECTION. 00001300001400 FD ONLY-FILE. 00001400001500 01 ONLY-REC. 00001500001600 02 ONLY-KEY. 00001600001700 03 ONLY-ACCOUNT PIC X(10). 00001700001800 03 ONLY-TYPE PIC XX. 00001800001900 03 ONLY-DSN PIC X(44) OCCURS 2. 00001900002000 03 ONLY-MEMBER PIC X(10) OCCURS 2. 00002000002100 02 ONLY-REST-OF-REC. 00002100002200 05 ONLY-DISP PIC XXX. 00002200002300 05 ONLY-UNIT PIC X(8). 00002300002400 05 ONLY-VOL PIC X(6). 00002400002500 05 FILLER PIC X(83). 00002500002600 WORKING-STORAGE SECTION. 00002600002700 77 ONLY-FILE-STAT PIC XX. 00002700

0

Page 341: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

002800 01 SWITCHES. 00002800002900 02 END-OF-ONLY-FILE-SW PIC X. 00002900003000 88 END-OF-ONLY-FILE VALUE 'Y'. 00003000003100 LINKAGE SECTION. 00003100003200 01 LS-FUNCTION PIC X(8). 00003200003300 88 OPEN-REQUEST VALUE 'OPEN'. 00003300003400 88 READSEQ-REQUEST VALUE 'READSEQ'. 00003400003500 88 CLOSE-REQUEST VALUE 'CLOSE'. 00003500003600 01 LS-ONLY-REC PIC X(220). 00003600003700 EJECT 00003700003800 PROCEDURE DIVISION USING LS-FUNCTION, LS-ONLY-REC. 00003800003900 MAIN-LINE. 00003900004000 IF OPEN-REQUEST PERFORM DO-THE-OPEN 00004000004100 ELSE IF READSEQ-REQUEST PERFORM DO-THE-SEQ-READ 00004100004200 ELSE IF CLOSE-REQUEST PERFORM DO-THE-CLOSE 00004200004300 ELSE DISPLAY 'INVALID I/O FUNCTION REQUESTED' 00004300004400 MOVE 12 TO RETURN-CODE. 00004400004500 GOBACK. 00004500004600 DO-THE-OPEN. 00004600004700 OPEN I-O ONLY-FILE. 00004700004800 IF ONLY-FILE-STAT = '00' 00004800004900 MOVE ZERO TO RETURN-CODE 00004900005000 ELSE 00005000005100 EXHIBIT NAMED ONLY-FILE-STAT 00005100

341

Page 342: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

34

Appendix D: Sample COBOL Code

005200 DISPLAY 'OPEN FAILED' 00005200005300 MOVE 8 TO RETURN-CODE. 00005300005400 DO-THE-SEQ-READ. 00005400005500 READ ONLY-FILE NEXT, AT END MOVE 8 TO RETURN-CODE. 00005500005600 IF ONLY-FILE-STAT = '00' 00005600005700 MOVE ONLY-REC TO LS-ONLY-REC 00005700005800 MOVE 'N' TO END-OF-ONLY-FILE-SW 00005800005900 ELSE 00005900006000 MOVE 'Y' TO END-OF-ONLY-FILE-SW 00006000006100 MOVE 8 TO RETURN-CODE. 00006100006200 DO-THE-CLOSE. 00006200006300 CLOSE ONLY-FILE. 00006300

2

Page 343: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

MESSAGES

E Throughout a comparison job, Comparex prints messages on SYSPRINT to show the results of the processing. Three types of messages are produced:

• Messages that show the defaults Comparex used, the keywords you entered that modified those defaults, and the source of each record shown on the difference report.

• Messages that tell you what actions to take if errors occur. Errors can occur either in the processing environment or in the set of user-entered keywords.

• Messages that show processing statistics at the end of each job. These messages show tallies of input records as well as the numbers of differences found.

What you will find in this chapter:

• “Messages Issued During Job Initialization” on page 343• “Messages During Processing and End of Job” on page 363• “Common Abends” on page 411• “User Abends and Reason Codes” on page 413

MESSAGES ISSUED DURING JOB INITIALIZATION

Messages issued by Comparex at the beginning of each job are used to show the parameters in effect for the run. For the most part, these messages are for the information of the user; no action, other than a review, is usually needed. The only messages at job initialization requiring user action are those describing files that cannot be opened, or keywords that cannot be interpreted.

CPX00I

Message Format

CPX00I input line from installation defaults CSECT or SYSIN file

Each 80-byte line from the SYSIN file is shown to the right of this message.

If “ERROR?” is printed on the right of the report, on the line under the line with message number CPX00I, this is an ACTION message. If HALT=COND has been specified, then the utility will terminate with message CPX30A and return code 16 after issuing all informational messages but before reading any records from SYSUT1 or SYSUT2.

343

Page 344: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

34

Appendix E: Messages

ACTION Examine the line containing the literal “ERROR?” to find the underscores. Under the line containing the message number CPX00I, Comparex has underscored the characters that cannot be interpreted.

Change the specification. If a keyword is misspelled or if a keyword’s parameters are incorrectly given, correct the specification. Refer to the description of the keyword in this manual for information about keyword parameters and their values.

If the underscores identify notes or comments, precede the comments with a “/*” (but not in columns 1 and 2) which delineates comments from keywords. Alternatively, specify HALT=NO, which forces Comparex to continue processing regardless of any syntax errors.

If there are characters on the line containing the message number CPX00I that are not underscored, Comparex has interpreted these characters as correct keywords, and the utility has modified its default processing with these keywords.

If “ERROR?” is not printed on the right of the report under the message line, this is an informational message.

To review: Examine the line to ensure that the keywords and their parameters were correctly entered.

CPX01I

Message Format

CPX01I - {INPUT PROCESSING KEYWORDS} {OUTPUT PROCESSING KEYWORDS} {DATA FILE SYNCHRONIZATION KEYWORDS} {DISPLAY PROCESSING KEYWORDS} {TEXT FILE KEYWORDS}

This is an informational message. HELP has been specified. Refer to the description of “HELP” in Chapter 10.

If the HELP keyword without any option was found or HELP=ALL has been specified, Comparex lists each valid keyword, along with a short description of the use of each keyword, on SYSPRINT, following message CPX01I.

If HELP=INPUT was specified, Comparex lists each input processing keyword, along with a short description of the use of each input processing keyword, on SYSPRINT, following message CPX01I.

If HELP=OUTPUT was specified, Comparex lists each output processing keyword, along with a short description of the use of each output processing keyword, on SYSPRINT, following message CPX01I.

If HELP=DATA was specified, Comparex lists each DATA file synchronization keyword, along with a short description of the use of each DATA file synchronization keyword, on SYSPRINT, following message CPX01I.

4

Page 345: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

If HELP=DISPLAY was specified, Comparex lists each display processing keyword, along with a short description of the use of each display processing keyword, on SYSPRINT, following message CPX01I.

If HELP=TEXT was specified, Comparex lists each TEXT file keyword, along with a short description of the use of each TEXT file keyword, on SYSPRINT, following message CPX01I.

The HELP keyword causes no other change to Comparex’s processing.

CPX02A

Message Format

CPX02A - SYSIN PARAMETER FILE MISSING OR INVALID, TAKING ALL INTERNAL DEFAULTS

If keywords were intended for this run of Comparex, this is an ACTION message.

Action Examine JCL to determine why Comparex was unable to open SYSIN.

Possible reason: //SYSIN was missing or misspelled.

Whatever SYSIN file (for example, ABC.SYS) was specified at execution, could not be found at open time. Possible reason: it was misspelled.

If keywords were not used for this run of Comparex, this is an informational message.

To review: No error correction is necessary. The Comparex run took all defaults.

CPX03I

Message Format

CPX03I - EXECUTION OF jobname.stepname.procstepname - VALUES EXTRACTED/DEFAULTED:

This is an informational message. It is printed after all keywords have been extracted, but before the files to be compared are opened.

Following this message, Comparex prints the parameters it will use during the execution. These parameters are explicitly stated in the messages that immediately follow message CPX03I.

In addition, message CPX03I helps the user identify the step of the JCL by displaying jobname, stepname, and procstepname.

• jobname: this name is taken from the JOB statement (such as //jobname JOB D,...).

• stepname: this is the name of the step that actually invokes Comparex (for example, //stepname EXEC PGM=COMPAREX).

345

Page 346: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

34

Appendix E: Messages

• procstepname: if a procedure is called that invokes Comparex, that name is used. For example:

CPX04I

Message Format

CPX04I - MAXDIFF=n1[,CONTINUE][,MAXMATCH=n1m],STOPAFT=n2[,KILLSPIE]

This is an informational message. It is printed immediately after message CPX03I.

If MAXDIFF was specified, the input value for MAXDIFF is displayed instead of n1.

If MAXDIFF was not specified, MAXDIFF=999999999999 is displayed. This number is the maximum number of differences Comparex will print on the difference report during the run.

If CONTINUE was specified, the word CONTINUE is shown; otherwise, the word CONTINUE is not shown.

If MAXMATCH was specified, the input value for MAXMATCH is displayed instead of n1m.

If MAXMATCH was not specified, the phrase is not displayed.

If STOPAFT was specified, the input value for STOPAFT is displayed instead of n2.

If STOPAFT was not specified, STOPAFT=999999999999 is displayed. This number is the maximum number of records Comparex will read from either input file (this number does not include records bypassed as a result of SKIPUT1 or SKIPUT2 keywords).

If KILLSPIE was specified, then it will appear at the end of the message.

To review: Examine the counters displayed. Correct or change the keywords entered before any subsequent run, if desired.

CPX05I

Message Format

CPX05I - PRINT=({MATCH },{MISMATCH} [,FULL]),MBRHDR={YES} ,HALT={NO} ,KILLRC={NO} [,KEYSONLY] {NOMATCH} {NOMISMATCH} {NO} {YES} {YES} {COND} {COND} {MATCH}

This is an informational message. If an option to PRINT was specified, this message will show the PRINT parameters from that keyword. The default is PRINT=(MATCH,MISMATCH).

If MBRHDR was specified, this message will show the MBRHDR parameter from that keyword. The default is MBRHDR=YES.

//COMPARE PROC//stepname EXEC PGM=COMPAREX// PEND//procstepname EXEC COMPARE

6

Page 347: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

If HALT was specified, this message will show the HALT parameter from that keyword. The default is HALT=COND in the Installation Defaults as distributed.

If KILLRC was specified, this message will show the KILLRC parameter from that keyword. The default is KILLRC=NO.

If KEYSONLY was specified, this message will show the KEYSONLY is turned on. The default is not KEYSONLY.

To review: Examine the parameters displayed. If necessary, check the description of the PRINT keyword in “Display Processing Keywords” in Chapter 10.

CPX06I

Message Format

CPX06I - WILDCARD={C'.'} ,MODE={APPLICATIONS} (ALL DISPLACEMENTS RELATIVE TO {ONE} ) {t'vv'} {SYSTEMS} {ZERO}

This is an informational message. It is shown on every Comparex run.

If at least one WILDCARD specification was found, the last WILDCARD value is shown instead of C‘.’.

If Comparex did not find a WILDCARD specification, WILDCARD=C‘.’ is shown.

If MODE=SYSTEMS was specified, and it was not followed by a MODE=APPLICATIONS keyword, message CPX06I shows MODE=SYSTEMS (ALL DISPLACEMENTS RELATIVE TO ZERO).

If MODE=SYSTEMS was not specified, message CPX06I shows MODE=APPLICATIONS (ALL DISPLACEMENTS RELATIVE TO ONE).

To review: Examine the parameters displayed to ensure that the correct WILDCARD value and MODE were used for the run.

CPX07I

Message Format

CPX07I - SYNCHRONIZATION KEY(S): KEY=(ddd,len[{,C}][{,A}][,N=n]) [{,Z}][{,D}] [{,P}][{,R}] [{,B}] [{,UP}] [{,UB}] KEY1=(ddd,len[{,C}][{,A}][,N=n]),KEY2=[(]ddd[,len][{,C}][,N=n][)] [{,Z}][{,D}] [{,Z}] [{,P}][{,R}] [{,P}] [{,B}] [{,B}]

347

Page 348: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

34

Appendix E: Messages

[{,UP}] [{,UP}] [{,UB}] [{,UB}]

This is an informational message. It is shown if Comparex finds one or more KEY (or KEY1 and KEY2 pairs) specifications.

The KEYs are ordered in the same way they were specified. Comparex processes as if the first KEY shown under message CPX07I is the most major KEY and the last KEY shown is the most minor KEY.

If none of A-ascending, D-descending, or R-random was specified for a KEY, Comparex will assume A next to the KEY to show an ascending key.

If no numeric specification for the type (Z, P, B, UP, or UB) is made, the default of C (character) is assumed.

To review: Examine the parameters displayed to ensure that the correct set of KEYs were used for the job.

CPX08I

Message Format

CPX08I - {DECIMAL},{EBCDIC},CASE={UPPER},LINE=(n1,{HORIZONTAL}),PAGE=n2 {HEX} {ASCII} {MIXED} {ALPHA} {RAISE} {VERTICAL} {MONO}

This is an informational message. It is shown on every Comparex run.

If HEX was specified, and it was not followed by a DECIMAL keyword, the literal ‘HEX’ is shown, and Comparex shows the relative displacement of each line of each record on the difference report in hexadecimal format

If MODE=SYSTEMS was specified and Comparex did not find a DECIMAL specification, the literal ‘HEX’ is shown and Comparex shows the relative displacement of each line of each record on the difference report in hexadecimal format; otherwise, the literal ‘DECIMAL’ is shown and Comparex shows the relative displacement of each line of each record on the difference report in decimal format.

The alphanumeric representation of the characters in the records on the difference report can be shown in either EBCDIC or ASCII format.

If ASCII was specified, and it was not followed by an EBCDIC keyword, the literal ‘ASCII’ is shown and Comparex uses its ASCII translation table to translate each byte in each record on the difference report to an alphanumeric character for printing; otherwise, the literal ‘EBCDIC’ is shown and Comparex uses its EBCDIC translation table to translate each byte in each record on the difference report to an alphanumeric character for printing.

If CASE was specified, the proper option, MIXED, LOWER (same as MIXED), UPPER, RAISE, or MONO is displayed here. In the absence of any CASE specification, the default is CASE=MIXED.

8

Page 349: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

If an option to TEXT, such as TEXT=PANEL, is made, CASE is set to MIXED.

If LINE was specified and/or FORMAT was specified, the composite results of those specifications are displayed here.

If an option to TEXT, such as TEXT=COBOL, is made, all LINE and FORMAT specifications are ignored and LINE is set to (80,ALPHA) or (133,ALPHA) (106,ALPHA) in the case of TEXT=REPORT.

Composite results are as follows:

If:

LINE=(77,VERTICAL),FORMAT=06

is specified, the result in message CPX08I is:

LINE=(77,VERTICAL)

In message CPX25I, the result will be:

DATA,FORMAT=26,INTERLEAVE=1.

If PAGE was specified, the value on that keyword is shown instead of n2; otherwise, the literal ‘58’ is shown instead of n2.

To review: Examine the parameters displayed to ensure that the difference report was formatted as desired.

CPX09I

Message Format

CPX09I - SKIPUT1=n1,SKIPUT2=n2

This is an informational message. It is shown only if SKIPUT1 or SKIPUT2 has been specified.

If SKIPUT1 has been specified, the value on that keyword is shown instead of n1; otherwise, the number zero is shown instead of n1. Comparex will read (skip over) this number of records on SYSUT1 before passing any SYSUT1 record to the compare routines.

If SKIPUT2 has been specified, the value on that keyword is shown instead of n2; otherwise, the number zero is shown instead of n2. Comparex will read (skip over) this number of records on SYSUT2 before passing any SYSUT2 record to the compare routines.

To review: Examine the parameters displayed to ensure that the correct number of records was bypassed (skipped over) on each input file.

CPX10I

Message Format

CPX10I - FILTERS:

349

Page 350: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

35

Appendix E: Messages

FILTERIN=([MEMBER,/CSECT,]d1[-d2],op,t'vvvv'[,N=n]) FILTEROUT=([MEMBER,/CSECT,]d1[-d2],op,t'vvvv'[,N=n]) FILTORIN=([MEMBER,/CSECT,]d1[-d2],op,t'vvvv'[,N=n]) FILTOROUT=([MEMBER,/CSECT,]d1[-d2],op,t'vvvv'[,N=n])

This is an informational message. It is shown only if Comparex finds one or more filtering specifications.

The filters are ordered in the same way they were specified. Comparex processes the filters in the order shown under message CPX10I.

Comparex converts the last filtering keyword of each type (record and member) to an ‘AND’ logic filter.

To review: Examine the statements displayed to ensure that the correct set of filters was used for the job. If necessary, check the descriptions of the FILTERIN, FILTEROUT, FILTORIN, and FILTOROUT keywords in “Input Processing Keywords” in Chapter 6.

CPX11I

Message Format

CPX11I - DASH={C'-'} ,PLUS={C'+'} [,NIBBLE][,FLDSONLY] {t'v1'} {t'v2'}

This is an informational message. It is shown on every Comparex run.

If DASH was specified, the value on that keyword is shown instead of ‘t‘v1’’; otherwise, the literal ‘DASH=C‘-’’ is shown. Comparex will use this character to underscore differing bytes on the difference report.

If PLUS was specified, the value on that keyword is shown instead of ‘t‘v2’’; otherwise, the literal ‘PLUS=C‘+’’ is shown. Comparex will use this character to underscore excess bytes on the difference report if a SYSUT2 record is longer than a paired SYSUT1 record.

If NIBBLE was specified, the word NIBBLE is shown and only differing half-bytes will be underscored on the difference report.

If FLDSONLY was specified, or if you entered one or more sets of FIELD1 and FIELD2 keywords, the word FLDSONLY is shown and only differing bytes defined by FIELD statements are underscored with the DASH character.

To review: Examine the parameters displayed to ensure that the keywords were correctly entered.

CPX12I

Message Format

CPX12I - IDENTITIES, DESENSITIZING, FIELDS, AND MASKS: FIELD=(dd,len,t[,N=n]) 1 FIELD=(dd,len,t[,N=n]) IDENTITY=(dd,op,t'vv'[,N=n]) 2 IDENTITY=(dd,op,t'vv'[,N=n]) MASK1=(dd,ll),MASK2=(dd,ll) 3 FIELD=(dd,len)

0

Page 351: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

MASK=(dd,len) 4 FIELD=(dd,len) FIELD1=(d,l),FIELD2=d 5 FIELD1=(d,l),FIELD2=d FIELD1=(d,l,dateformat[,N=n]),FIELD2=(d,l,dateformat[,N=n]) 6 FIELD=... DESEN=(dd,t'vv'[,N=n]) 7 DESEN=(dd,t'vv'[,N=n]) DESEN1=(dd,t'vv'[,N=n]) 8 DESEN1=(dd,t'vv'[,N=n])

DESEN2=(dd,t'vv'[N=n]) 9 DESEN2=(dd,t'vv'[,N=n])

This is an informational message. It is shown only if Comparex finds one or more IDENTITY, FIELD (or FIELD1 and FIELD2 pair), MASK (or MASK1 and MASK2 pair), or DESEN (DESEN1 or DESEN2 also) keywords as specifications.

The message has three parts. The left part is the same as specified, the middle part is a sequence number, and the right part is Comparex’s interpretation of the input for processing. If no MASK (or MASK1 and MASK2) specifications are made, the right part is not shown.

Comparex always inserts a final IDENTITY test for records which do not pass any of your IDENTITY tests. This IDENTITY and its associated FIELD are shown in this way:

IDENTITY=(CATCH-ALL)FIELD=(1,END)

To review: Examine the left part of the message to ensure that the correct set of IDENTITYs, FIELDs, MASKs, and DESENs was used for the job. Check the order of the keywords if IDENTITYs are used.

The middle part is a sequence number assigned to each IDENTITY and FIELD. This sequence number is used to refer to these same IDENTITYs and FIELDs on the GENFLDS output and on message CPX52I.

The right part is shown if any MASK (or MASK1 and MASK2 pair) specifications were made. Comparex evaluates the MASKs and creates FIELDs. For example:

MASK=(6,9)

would generate two FIELDs:

FIELD=(1,5,C)FIELD=(15,END)

and these two FIELDs would be shown as the right part of message CPX12I.

Here is a more complete example. If the specifications are:

FIELD=(4,009,N=EVERYBODY-HAS-ONE)ID=(004,LE,C'ABC',N=MOST)FIELD=(15,END),MASK=(24,3),MASK=(20,1)IDENTITY=(4,EQ,C'XYZ')FIELD1=(15,8,Z),FIELD2=(17,5,P)MASK1=(21,4,B),MASK2=23MASK=(1,5),MASK=(60,END)IDENTITY=(7,EQ,X'EF'),MASK=(25,4)

351

Page 352: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

35

Appendix E: Messages

Then, message CPX12I will show:

CPX12I - IDENTITIES, DESENSITIZING, FIELDS, AND MASKS: FIELD=(4,9,C,N=EVERYBODY-HAS-ONE) IDENTITY=(4,LE,C’ABC’,N=MOST) 1 IDENTITY=(4,LE,C’ABC’,N=MOST) FIELD=(15,END,C) 2 FIELD=(15,5,C) MASK=(24,3) 3 FIELD=(4,9,C,N=EVERYBODY-HAS-ONE) MASK=(20,1) 4 FIELD=(27,END,C) 5 FIELD=(21,3,C) IDENTITY=(4,EQ,C’XYZ’) 6 IDENTITY=(4,EQ,C’XYZ’) FIELD1=(15,8,Z),FIELD2=(17,5) 7 FIELD1(15,6,Z),FIELD2(17,6) MASK1=(21,4),MASK2=(23,32768) 8 FIELD1=(6,7,C,N=EVERYBODY-HAS-ONE), FIELD2=(6,N=EVERYBODY-HAS-ONE) MASK=(1,5) MASK=(60,END) IDENTITY=(7,EQ,X’EF’) 9 IDENTITY=(7,EQ,X’EF’) MASK(25,4) 10 FIELD=(4,9,C,N=EVERYBODY-HAS-ONE) IDENTITY=(CATCH-ALL) 11 IDENTITY=(CATCH-ALL) FIELD=(1,END,C,N=CATCH-ALL) 12 FIELD=(1,END,C,N=CATCH-ALL)

Refer to “IDENTITY, FIELD, MASK, and DESEN Messages” on page 113 for an actual example.

CPX13I

Message Format

CPX13I - GENFLDS

This is an informational message. It is shown only if Comparex finds the GENFLDS keyword and one or more IDENTITY or FIELD (or FIELD1 and FIELD2 pair) specifications.

Immediately after the CPX13I message, Comparex advances to the top of the page to create the first GENFLDS visual representation, using the line length specified by the value of LINE given in the CPX08I message.

To review: Examine the generated visual representations. Modify IDENTITY, FIELD, and MASK keywords as necessary to correctly describe the records. See the description of the GENFLDS keyword in “Display Processing Keywords.”

CPX14I

Message Format

CPX14I - END=(ddd,op,t'vvvv')

This is an informational message. It is shown only if Comparex finds the END keyword.

To review, examine the statements displayed to ensure that the run is correct.

CPX15I

Message Format

2

Page 353: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

CPX15I - COPYDIFF[=({PAN}[,STAMP={NO}][ ,VERS={YES}][,PASS={YES}])] {LIB} {YES} {NO} {NO} {CMN} {GEM} {IEBUPDTE},SEQFLD='ddl[,ddl]' INSERT={++C} ,DELETE={++C} ,REPLACE={++C} {-INS} {-DEL} {-REP} {- INS} {- DEL} {- REP} {xxxxx} {xxxxx} {xxxxx}

This is an informational message. It is shown only if COPYDIFF was specified.

If COPYDIFF is specified, Comparex writes to file SYSUT3 (assuming it can be opened successfully) any differing record from file SYSUT2. If any option to COPYDIFF is entered (PAN, LIB, GEM, IEBUPDTE, CMN, or OTH) and TEXT processing is in effect, differing records will be preceded by a formatted change control record.

The second line is displayed only if an option to COPYDIFF is specified.

If COPYDIFF=PAN was specified, then INSERT, DELETE, and REPLACE are set to ‘++C’.

If COPYDIFF=LIB was specified, then INSERT is set to ‘-INS’, DELETE is set to ‘-DEL’ and REPLACE is set to ‘-REP’.

If COPYDIFF=GEM was specified, then INSERT is set to ‘- INS’, DELETE is set to ‘- DEL’ and REPLACE is set to ‘- REP’.

If COPYDIFF=IEBUPDTE was specified, then INSERT is set to ‘NUMBER’, DELETE is set to ‘DELETE’, and REPLACE is set to ‘CHANGE’.

If COPYDIFF=OTH was specified, then the values entered by the user for INSERT, DELETE, and REPLACE are displayed here.

In addition to the formatted change control records such as (++C, -INS, etc.) the first record written is a directive to the library management system (PAN, LIB, GEM, IEBUPDTE, CMN, or OTH) to update the right module. For PAN, it is:

++UPDATE member,level ++UPDATE member,level,TEMP

for LIB, it is:

-SEL member,pass,VERS=mmdd -SEL member,pass,VERS=mmdd,TEMP -SEL member,VERS=mmdd -SEL member,pass -SEL member

for GEM, it is:

- SEL member - SEL member,TEMP

353

Page 354: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

35

Appendix E: Messages

for IEBUPDTE, it is:

./CPX CHANGE NAME=member,SEQFLD=(ddl,ddl)

or, if PRINT=FULL:

./CPX CHANGE NAME=member,SEQFLD=(ddl,ddl),LIST=ALL

for CMN, it is:

<UPDATE member>

and for OTH, it is:

?? member

If COPYDIFF=LIB is specified, suffixing records are written out. At the end of each updated member, it is:

-EMOD

and at the conclusion of all updates, it is:

-END

To review: examine the statements displayed to ensure that the run is correct.

CPX15I - COPYSAME or COPYSPLIT

This is an informational message. It is shown only if COPYSAME or COPYSPLIT has been specified.

Message Format

CPX15I - COPYSPLIT orCPX15I - COPYSAME

If COPYSAME is specified, records from SYSUT1 are copied to SYSUT3 provided that the same record is identical on SYSUT2.CPX16A.

If COPYSPLIT is specified, records from SYSUT1 and SYSUT2 are copied to various SYSUT3x files.

CPX16A - COPYSAME or COPYSPLIT

Message Format

CPX16A - SYSUT3 COPY FILE MISSING, INVALID, OR DUMMY - {COPYDIFF} NULLIFIED

{COPYSAME}

{SYSUT3x}

4

Page 355: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

This is an ACTION message. You have entered the COPYSAME or COPYSPLIT keyword, but Comparex cannot open the SYSUT3 or SYSUT3x files. If you do not want to create certain output data sets with COPYSPLIT, this may be your desired result and no further action is necessary.

If Comparex has not been able to open file SYSUT3, the utility terminates, showing a return code of 16.

If Comparex has not been able to open any of the SYSUT3x files, the utility terminates, showing a return code of 16.

ACTION Examine the JCL and the user-entered keywords to determine the problem.

Possible reasons:

SYSUT3=DUMMY was specified. If the SYSUT3 file is desired, take out the SYSUT3=DUMMY specification.

Comparex could not open file SYSUT3. Examine the JCL. //SYSUT3 may have been missing or misspelled.

CPX16I

Message Format

CPX16I - SYSUT3=dsname.sysut3orCPX16I - SYSUT3x=dsname.sysut3

DCB=(DSORG={PS},RECFM={F}[B][S],LRECL=n,BLKSIZE=n) {IS} {V} {DA} {U} [,RKP=rkp,KEYLEN=n]

or

CPX16I - SYSUT3=dsname.sysut3 ACB=({ESDS},LRECL=n,CINV=n,[PASSWORD=xxx]) {KSDS} {RRDS}[,RKP=rkp,KEYLEN=n]

This is an informational message. It is shown only if COPYDIFF, COPYSAME or COPYSPLIT has been specified and the utility has successfully opened the SYSUT3 or SYSUT3x files.

The dsname.sysut3 is taken from the DSN parameter of the data set allocated to SYSUT3 (//SYSUT3 DD DSNAME=...).

If the data set organization is not VSAM, the first version (with DCB=) is printed. If the data set organization is QSAM, the DSORG is PS; if the data set organization is ISAM, the DSORG is IS; if the data set organization is direct access, the DSORG is DA.

355

Page 356: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

35

Appendix E: Messages

RECFM, LRECL, BLKSIZE, RKP, and KEYLEN further describe the file.

If the data set organization is VSAM, the version with ACB= is printed. ESDS, KSDS, RRDS, LRECL, CINV, RKP, and KEYLEN describe the VSAM file. If the RKP is shown with the ACB option and the RKP was extracted by Comparex from an operating system control block (such as a VSAM ACB), the relative key position value is relative to zero, even if the MODE=APPLICATIONS keyword has been entered.

To review: Examine the parameters of the message to determine if the SYSUT3 file or the SYSUT3x files were correctly specified.

CPX18I

Message Format

CPX18I -SEGMENT SPECIFICATIONS IGNORED IN LIEU OF KEY SYNCHRONIZATION

This is an ACTION message. Comparex has found both one or more SEGMENT keywords and one or more KEY keyword specification. If SEGMENT synchronization is needed, KEY synchronization cannot also be used in the same Comparex job. If KEY synchronization is used, any SEGMENT keywords in the same job will be ignored. Comparex has processed this job using only the KEY keywords (and KEY1 and KEY2 pairs) for synchronization.

ACTION Determine which type of synchronization is needed. If Comparex is to compare databases (or unloaded versions), SEGMENT synchronization may be needed; otherwise, KEY synchronization is needed. Specify the synchronizing parameters again to use only one type of synchronization.

CPX19I

Message Format

CPX19I - DATA BASE SEGMENTING: SEGMENT=(d1,EQ,t'vvvv') SEGMENT=(d1,EQ,t'vvvv',({A},d2,len)) {D} {R}

This is an informational message. It is shown if one or more SEGMENT keyword specifications and no KEY keywords (or KEY1 and KEY2 pairs) are made.

Comparex displays the parameters from the SEGMENT keywords, in the same order as specified.

To review: Examine the SEGMENT keywords and their parameters to ensure that they have been correctly entered. If necessary, see “DATA File Synchronization Keywords” in Chapter 7 for more information about the SEGMENT keyword.

CPX20I

Message Format Example

6

Page 357: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

CPX20I - CPXIFACE=CPXabcde(PANVALET::IDMS;04/21/88-16:20-<MVS>-<8.2.1> -<1997/032>)

This is an informational message. It is shown if Comparex has found the PAN, LIB, or OTH option to either SYSUT1 or SYSUT2 requesting that the Comparex interface be invoked to read from those files. The default load module name is CPXIFACE but any other one to eight character name may have been specified. The only requirement is that the load module name exist on an accessible library or an abend is certain.

The message reflects information about how the module was generated (and it does not have to be called CPXIFACE either) through a special call procedure. The standard calls of OPEN, SRCH, READ, and CLOS are to read exotic files, but INFO is performed to extract date/time stamps and release level.

CPX21I

Message Format

CPX21I - SYSUT1=dsname.sysut1 DCB=(DSORG={PS},RECFM={F}[B][S],LRECL=n,BLKSIZE=n) {IS} {V} {DA} {U} {PO} [EN=n],VOL=SER=volser [,RKP=rkp,KEYLEN=n]

or

CPX21I - SYSUT1=dsname.sysut1 ACB=({ESDS},LRECL=n,CINV=n[,PASSWORD=xxx]) {KSDS} {RRDS} [EN=n],VOL=SER=volser [,RKP=rkp,KEYLEN=n]

or

CPX21I - SYSUT1=({PANVALET} ([DDNAME=ddname,]INCLUDE={NO}[,LEVEL=n]) {LIBRARIAN} {YES} {OTHER} PARM='parm data'

This is an informational message. It is shown if SYSUT1=DUMMY has not been specified, and after Comparex has successfully opened SYSUT1.

The dsname.sysut1 is taken from the data set name of the file that is allocated to SYSUT1.

If the data set organization is not VSAM, the first version (with DCB=) is printed. The original DSORG found for the file is displayed.

If the data set organization is QSAM, the DSORG is PS; if the data set organization is ISAM, the DSORG is IS.

357

Page 358: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

35

Appendix E: Messages

If the data set organization is partitioned, the DSORG is PO.

If the data set organization is direct access, the DSORG is DA.. RECFM, LRECL, BLKSIZE, RKP, and KEYLEN further describe the file.

If the data set organization is VSAM, the version with ACB= is printed. ESDS, KSDS, RRDS, LRECL, CINV, RKP, and KEYLEN describe the VSAM file.

If the RKP is shown with the ACB option and the RKP was extracted by Comparex from an operating system control block (such as a VSAM ACB), the relative key position value is relative to zero, even if the MODE=APPLICATIONS keyword has been entered.

To review: Examine the parameters of the message to determine if file SYSUT1 was correctly specified.

CPX22I

Message Format

CPX22I - SYSUT2=dsname.sysut2 DCB=(DSORG={PS},RECFM={F}[B][S],LRECL=n,BLKSIZE=n) {IS} {V} {DA} {U} {PO}[,RKP=rkp,KEYLEN=n]

or

CPX22I - SYSUT2=dsname.sysut2 ACB=({ESDS},LRECL=n,CINV=n[,PASSWORD=xxx]) {KSDS} {RRDS}[,RKP=rkp,KEYLEN=n]

or

CPX22I - SYSUT2=({PANVALET} ([DDNAME=ddname,]INCLUDE={NO}[,LEVEL=n]) {LIBRARIAN} {YES} {OTHER} PARM='parm data'

This is an informational message. It is shown if SYSUT2=DUMMY has not been specified, and after Comparex has successfully opened SYSUT2.

The dsname.sysut2 is taken from the data set name of the file that is allocated to SYSUT2.

If the data set organization is not VSAM, the first version (with DCB=) is printed. The original DSORG found for the file is displayed.

If the data set organization is QSAM, the DSORG is PS.

If the data set organization is ISAM, the DSORG is IS.

If the data set organization is partitioned, the DSORG is PO.

8

Page 359: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

If the data set organization is direct access, the DSORG is DA. RECFM, LRECL, BLKSIZE, RKP, and KEYLEN further describe the file.

If the data set organization is VSAM, the version with ACB= is printed. ESDS, KSDS, RRDS, LRECL, CINV, RKP, and KEYLEN describe the VSAM file.

If the RKP is shown with the ACB option, and if the RKP was extracted by Comparex from an operating system control block (such as a VSAM ACB), the relative key position value is relative to zero, even if the MODE=APPLICATIONS keyword has been entered.

To review: Examine the parameters of the message to determine if file SYSUT2 was correctly specified.

CPX23I

Message Format

CPX23I - SYNCHRONIZATION KEY TAKEN FROM SYSUT1 - KEY=(ddd,len,C,A)

This is an informational message. It is shown only if Comparex finds no KEY or KEY1 specifications, and the SYSUT1 data set organization, as specified in the CPX21I message, is ISAM or VSAM/KSDS. Comparex has generated a KEY based on the RKP and KEYLEN values specified in the CPX21I message, and the utility will use this KEY for key synchronization.

To review: If key synchronization is desired, no change is necessary. If key synchronization is not desired for this execution of Comparex, the SYSUT1 keyword must be changed to specify a non-indexed file type. If you have not specified MODE=SYSTEMS, the displacement shown with the KEY with message CPX23I will be relative to one (Comparex’s default mode).

CPX24A

Message Format

CPX24A - TEXT SPECIFICATIONS IGNORED IN LIEU OF DATA - n

This is an action message. You have entered the TEXT keyword, but Comparex found a conflicting specification. Comparex has ignored the TEXT keyword, and the utility has processed this job using DATA comparison logic.

ACTION Examine the reason code at the end of the message line, shown instead of n.

1. You have specified SYSUT2=DUMMY, or file SYSUT2 could not be successfully opened. TEXT comparison logic requires both input files. Respecify DATA logic or specify a valid file for SYSUT2.

2. You have entered one or more KEY keywords (or KEY1 and KEY2 pairs). TEXT comparison logic does not use key synchronization. Delete the TEXT keyword, or delete all KEY specifications.

359

Page 360: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

36

Appendix E: Messages

3. You have entered one or more SEGMENT keywords. TEXT comparison logic does not use segment synchronization. Delete the TEXT keyword, or delete all SEGMENT specifications.

4. You have entered at least one IDENTITY keyword, or at least one DESEN (or DESEN1 or DESEN2). TEXT comparison logic uses neither IDENTITYs nor DESENs. Delete the TEXT keyword, or eliminate IDENTITYs and/or DESENs.

5. You have entered more than one FIELD keyword, or Comparex compiled more than one FIELD from the user-specified FIELDs and MASKs. TEXT comparison logic uses only one FIELD.

If any option to TEXT is specified (such as TEXT=COBOL) except for TEXT=REPORT, Comparex generates a FIELD specification, and you will not be allowed to enter any FIELD keyword. With the TEXT=REPORT option, Comparex does not generate a field, and you cannot enter a FIELD keyword. Delete the TEXT keyword, or delete all but one FIELD specification.

CPX25I

Message Format

CPX25I - TEXT[=xxxx],MLC=n,BUFF=nn,FRAME={YES},[SQUEEZE=t'vv'] {NO} {NUM}

or

CPX25I - DIRECTORY[={SPF} ] [ {PDF} ] [ {USER}]

or

CPX25I - DATA[=CSECT][,BUFF=nn,]FORMAT=xy,INTERLEAVE,LINELIM=n

CPX25I - DATA,[BUFF=nn,]FORMAT=xy,INTERLEAVE=n,LINELIM=n

(FORMAT EXPLANATION: {FULL SYSUT1} {FOLLOWED BY} {FULL SYSUT2} {DIFFERING LINES OF SYSUT1} {INTERLEAVED WITH} {DIFFERING LINES OF SYSUT2}

This is an informational message. It is always issued.

If TEXT is specified and not nullified (see message CPX24A), then the first version is printed.

If squeezing is specified or implied by option to TEXT, then all SQUEEZE specifications are shown, one per line.

If DIRECTORY is specified and not nullified because SYSUT1 does not point to a directory-embedded data set, then the first option is shown.

In all other cases, the third option is shown.

0

Page 361: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

To review: Examine the parameters displayed to ensure that the keywords were interpreted as desired.

You can determine the size of the buffering areas Comparex works with by using the BUFF keyword on CPX25I. The default is 60K for TEXT and DATA. For CSECTS the default is 256K. You can override this value by setting BUFF=any value(for any value K) up to 1024 for 1024K.

If you specify MODE=SYSTEMS, you can specify any value up to 16 megabytes (where the value you specify is 16 megabytes/1024). In general, the larger the buffer size, the more CPU time Comparex will use for the run.

CPX26I

Message Format

CPX26I - SKIP RECORD PROCESSING: SYSUT1(n1)/SYSUT2(n2)

This is an informational message. Comparex has found either a SKIPUT1 or SKIPUT2 specification, and the utility has opened and skipped over (read without passing any record to the compare routines) the required number of records.

If directory-embedded data sets are being read, this message is issued at the beginning of each member, after the number of records specified by message CPX09I has been bypassed for that member.

If the number of records on the file is less than the number of records to be skipped over, n1 and n2 show the number of records on the file; otherwise, n1 and n2 shown the number of records skipped over.

To review: Compare the numbers of records skipped over to the numbers given in message CPX09I. If the numbers are different, one or both input files are shorter than you anticipated, and you may determine that the wrong files were specified.

CPX27I

Message Format

CPX27I - PRINTING OF SYSUT1 ONLY INVOKED [(FOR SCAN)]

If SCAN has been specified, the literal FOR SCAN is appended to the message.

If SYSUT2 should have been present, this is an ACTION message.

If SYSUT2=DUMMY has been specified, or Comparex is unable to open SYSUT2 and HALT=NO has been specified, or after successfully opening file SYSUT2, finds the file to be a dummy file (the JCL specifies //SYSUT2 DD DUMMY or //SYSUT2 DD DSN=NULLFILE), the utility issues this message.

If this message is issued, Comparex sends no records to the comparison routines. Instead, any SKIPUT1 keyword is used to skip over records, and any filtering keywords select or reject records. Selected records from SYSUT1 are printed on the difference report.

361

Page 362: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

36

Appendix E: Messages

ACTION Point to correct SYSUT2 file.

If SYSUT2 should not be present, this is an informational message.

To review: No error correction is necessary.

CPX28I

Message Format

CPX28I - CPXEXIT=cpxexit/MODULE NOT PRESENT, EXIT BYPASSED

Whatever specification for CPXEXIT has been made, this message reflects the resolution (loading) of that module name.

If the module name could not be loaded, the text “/MODULE NOT PRESENT, EXIT BYPASSED” is appended.

ACTION Point to correct CPXEXIT module name.

CPX30A

Message Format

CPX30A - EXECUTION HALTED BY REQUEST - FUNCTION TERMINATED - RETURN CODE = 16

This is an ACTION message. It is directly related to the setting of keyword HALT. Either HALT=COND with syntax errors or HALT=YES has been specified. No files will be read and compared.

ACTION If HALT=YES was intentionally specified, you now know what happens.

If HALT=COND was specified (could be part of installation defaults), then the syntax errors underscored and denoted by ERROR? should be corrected for the subsequent rerun.

CPX31A

Message Format

CPX31A - FILE ORGANIZATIONS NOT COMPATIBLE - n - FUNCTION TERMINATED - RETURN CODE = 16

This is an ACTION message. An attempt was made to compare two files that have no chance of being processed together by Comparex.

ACTION Examine the reason code shown (n).

1. SYSUT1 is specified as DUMMY and SYSUT2 points to a directory-embedded data set. Either reverse the situation or let them both point to directory-embedded data sets.

2. SYSUT1 points to a sequential data set and SYSUT2 points to a directory-embedded data set. Let both point to sequential files or both point to directory-embedded data sets.

2

Page 363: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

3. SYSUT1 and SYSUT2 both point to directory-embedded data sets but both are PAN or both are LIB and

— DIRECTORY (such as DIR=PDF) has not been specified, or

— A separately named interface module of the SYSUT2 slot and a different DDNAME has not been specified.

4. SYSUT1 points to a directory-embedded data set but SYSUT2 is sequential. Either set SYSUT2 to DUMMY of also let it point to a compatible directory-embedded data set.

MESSAGES DURING PROCESSING AND END OF JOB

Messages issued by Comparex while it is reading records and comparing them are used to show the detailed results of the comparison process. They are, with the exception of messages CPX35A and CPX37A, informational messages, used to give you information about the records displayed on the difference report. Messages CPX35A and CPX37A are issued prior to an abnormal job termination; you must take action.

CPX35A

Message Format

CPX35A - KEY SYNCHRONIZATION VALUES TOO LARGE FOR FILE - FUNCTION TERMINATED - RETURN CODE = 16

This is an ACTION message. You have entered one or more KEY keywords (or KEY1 and KEY2 pairs), and the displacement given on at least one KEY was greater than the length of the record being processed. This means that the starting position (displacement) of the KEY was beyond the end of the record being read if the message was issued. Comparex terminates, showing a return code of 16.

ACTION Change the displacement on the KEY keyword so that the value is less than the length of the shortest record in the file. If the short records can be identified with a logical test, you can filter them out (only records that are filtered in are synchronized by KEY).

CPX36A

Message Format

CPX36A - {KEY} OUT OF SPECIFIED SEQUENCE - RECORD nn1 [(RBA=nn2)] {SEGMENT} ON FILE {SYSUT1} {SYSUT2}

This is an ACTION message. It will only appear once per execution at most. At least one KEY (or KEY1/KEY2 pair) or SEGMENT has been specified which contained an Ascending or Descending control field and it was found not to be in that sequence. The message is issued and then the offending record is displayed right after it.

363

Page 364: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

36

Appendix E: Messages

ACTION Either correct the specification for KEY or SEGMENT, sort the file into a usable order, or try random as opposed to ascending or descending order.

CPX37A

Message Format

CPX37A - DB SEGMENTING SYNCH. VALUES TOO LARGE FOR FILE - FUNCTION TERMINATED - RETURN CODE = 16

This is an ACTION message. You have entered one or more SEGMENT keywords, and the displacement for a synchronizing key on at least one SEGMENT was greater than the length of the record being processed. This means that the starting position (displacement) of the SEGMENT was beyond the end of the record being read if the message was issued. Comparex terminates, showing a return code of 16.

ACTION Change the displacement on the SEGMENT keyword so that the value is less than the length of the shortest record on the file. If the short records can be identified with a logical test, you could filter them out (only records that are filtered in are synchronized by SEGMENT).

CPX39A

Message Format

CPX39A - {TEXT} RECORDS TOO LARGE FOR BUFFER - (xxxxxxxx,nnn) - FUNCTION TERMINATED - RETURN CODE = 16

{DATA}

If parsing CSECTs, the BUFF parameter defaults to 256. You should set BUFF higher, such as:

BUFF=1000

If the buffer cannot fully contain both load modules (at buffer-stocking time) then the comparison is terminated with this message.

The xxxxxxxx part of the message can be either a CSECT name or

$RECORD$

If it is a CSECT name, then the ESD entry for this CSECT stated that it would spill beyond the BUFFer capacity.

The value for nnn is the high decimal number of the beginning address plus the CSECT size that would otherwise overflow (S0C4) the buffer.

If it is $RECORD$, the message is displayed if actually processing the undefined length record. Again, the nnn is the high decimal number of the beginning address plus the record length that would otherwise overflow the buffer.

4

Page 365: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

This is an ACTION message. You have attempted to compare files with very large records under TEXT logic, DATA with random KEYs, or CSECT parsing, and not adequately increased the working buffer (BUFF).

ACTION Either eliminate random KEYs, or specify a larger value for BUFF. A recommended size is the size of the largest CSECT to be compared plus the blocksize; then tripled.

CPX40A

Message Format

CPX40A - NO EXTERNAL SYMBOL DICTIONARY ENTRIES - FUNCTION TERMINATED - RETURN CODE = 16

This is an ACTION message. The user has attempted to compare load modules via DATA=CSECT (CSECT parsing), and Comparex determined that one of the files is not considered to be an acceptable load module. Comparex checks that the first record of the file is a legal External Symbol Dictionary (ESD) entry. Probable cause is that two explicit members of the same or different partitioned data sets are being compared (as opposed to comparing like named members of different libraries) and the TEST attribute is on for one of the members.

ACTION Either point to load module libraries or use regular DATA (not DATA=CSECT) logic.

CPX41I

Message Format

CPX41I - CSECT=csectnam DIF O N E

This is an informational message. DATA=CSECT (CSECT parsing) has been specified. Comparex has determined that csectnam exists in the load module that SYSUT1 points to, but does not exist in SYSUT2.

To review: No error correction is necessary. Use this information to check the effectiveness of the comparison.

CPX42I

Message Format

CPX42I - CSECT=csectnam DIF T W O

This is an informational message. DATA=CSECT (CSECT parsing) has been specified. Comparex has determined that csectnam exists in the load module that SYSUT2 points to but does not exist in SYSUT1.

To review: No error correction is necessary. Use this information to check the effectiveness of the comparison.

365

Page 366: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

36

Appendix E: Messages

CPX45A

Message Format

CPX45A - UNACCEPTABLE LOAD MODULE ATTRIBUTES - {OVERLAY}, BYPASSED {TEST } {SCATTER}

This is an ACTION message. The user has attempted to compare load modules (from either SYSUT1 or SYSUT2) with attributes that Comparex considers impossible to process. The Overlay, Test, or Scatter attribute in any combination will provoke this message. The module pair is bypassed and precipitates a return code of at least eight, indicating a termination before reaching end of data.

ACTION Either use regular DATA logic (not DATA=CSECT), or FILTOROUT the load modules that have the offending attributes.

CPX50I

Message Format

CPX50I - RECORD NUMBER nn1 (RBA=nn2) ON FILE SYSUT1

or

CPX50I - CSECT=csectnam

This is an informational message. The record that immediately follows this message on the difference report was read from file SYSUT1, and it was selected to be printed because the matching record on file SYSUT1 and file SYSUT2 were identical. The logical record number is shown instead of nn1.

If the data set organization for file SYSUT1 is VSAM, the relative byte address of the first byte of the record is shown instead of nn1.

If DATA=CSECT (CSECT parsing) has been specified, the second form of the message is used. The specified CSECT csectnam has been isolated in each file, and differences have been found. The CSECT from SYSUT1 will be displayed.

To review: No error correction is necessary. Use this record to check the effectiveness of a program or a modification.

CPX51I

Message Format

CPX51I - RECORD NUMBER nnn [(RBA=nnn)] ON FILE SYSUT1 KEY=xxxxxxx [LIMITED LINES]

or

CPX51I - CSECT=csectnam

6

Page 367: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

This is an informational message. The record that immediately follows this message on the difference report was read from file SYSUT1 and it was selected to be printed on the difference report based on the values of the PRINT and FORMAT keywords. The logical record number is shown instead of nn1.

IF LINELIM is specified, LIMITED LINES is displayed, indicating the number of lines printed for the record is limited to the value for LINELIM.

If the data set organization for file SYSUT1 is VSAM, the relative byte address of the first byte of the record is shown instead of nn2 and the RBA= literal is shown.

If DATA=CSECT (CSECT parsing) has been specified, the second form of the message is used. The specified CSECT csectnam has been isolated in each file, and differences have been found. The CSECT from SYSUT1 will be displayed.

To review: No error correction is necessary. Use this record to check the effectiveness of a program or a modification.

CPX52I

Message Format

CPX52I - RECORD NUMBER nn1 [(RBA=nn2)] ON FILE SYSUT2 [IDENTITY=i,][FIELD=f] [LIMITED LINES]

or

CPX52I - CSECT=csectnam

This is an informational message. The record that this message refers to was read from file SYSUT2 and selected to be printed on the difference report based on the values of the PRINT and FORMAT keywords. The logical record number is shown instead of nn1.

This SYSUT2 record has been paired with a SYSUT1 record for comparison, synchronized by KEYs, SEGMENTs, or by physical locations on the files.

If the data set organization for file SYSUT2 is VSAM, the relative byte address of the first byte of the record is shown instead of nn2 and the RBA= literal is shown.

If FIELDs or IDENTITYs were specified and message CPX12I was issued, the sequence number from message CPX12I is shown for the IDENTITY and FIELD identified with the record.

The IDENTITY sequence number is indicated by i.

If FIELD appears, each field that is printed is preceded by its field number and description.

If FLDSONLY has been specified, or if Comparex has generated a FLDSONLY specification (see message CPX11I), those bytes that differ in the selected FIELDs are underscored with the DASH character.

367

Page 368: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

36

Appendix E: Messages

If FLDSONLY has not been specified or generated, all differing bytes are underscored with the DASH character.

If NIBBLE has been specified with dump format printing, Comparex underscores only differing half-bytes with the DASH character.

IF LINELIM is specified, LIMITED LINES is displayed, indicating the number of lines printed for the record is limited to the value for LINELIM.

If the SYSUT2 record is longer than the paired SYSUT1 record, Comparex underscores the excess bytes on the SYSUT2 record with the plus character.

If DATA=CSECT (CSECT parsing) has been specified, the second form of the message is used. The specified CSECT csectnam has been isolated in each file and differences have been found. The CSECT from SYSUT2 will be displayed and the differences underscored.

To review: No error correction is necessary. Use this record to check the effectiveness of a program or a modification.

CPX55I

Message Format

CPX55I - INVALID PACKED DATA DETECTED IN FIELD

Explanation

Message issued when packed comparison is made against unpacked data.

CPX56I

Message Format

CPX56I - EXTRA RECORD NUMBER nn1 [(RBA=nn2)] ON FILE SYSUT1

This is an informational message. The record that immediately follows this message on the difference report was read from file SYSUT1. File SYSUT2 has come to end of file and file SYSUT1 has not come to end of file. This message presents a record that is on the end of file SYSUT1 that is not able to be synchronized to a record from file SYSUT2.

The logical record number is shown instead of nn1.

If the data set organization for file SYSUT1 is VSAM, the relative byte address of the first byte of the record is shown instead of nn2 and the RBA= literal is shown.

To review: No error correction is necessary. Use this record to check the effectiveness of a program or a modification.

CPX57I

Message Format

8

Page 369: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

CPX57I - EXTRA RECORD NUMBER nn1 [(RBA=nn2)] ON FILE SYSUT2

This is an informational message. The record that immediately follows this message on the difference report was read from file SYSUT2. File SYSUT1 has come to end of file and file SYSUT2 has not come to end of file. This message presents a record that is on the end of file SYSUT2 that is not able to be synchronized to a record from file SYSUT1.

The logical record number is shown instead of nn1.

If the data set organization for file SYSUT2 is VSAM, the relative byte address of the first byte of the record is shown instead of nn2 and the RBA= literal is shown.

To review: No error correction is necessary. Use this record to check the effectiveness of a program or a modification.

CPX61I

Message Format

CPX61I - KEY SYNCHRONIZATION MISMATCH - RECORD nn1 [(RBA=nn2)] ON FILE SYSUT1

This is an informational message. The record that immediately follows this message on the difference report was read from file SYSUT1. File synchronization is being done, for this execution of Comparex, by KEYs, and this following SYSUT1 record is not matched by KEY to any SYSUT2 record.

The logical record number is shown instead of nn1.

If the data set organization for file SYSUT1 is VSAM, the relative byte address of the first byte of the record is shown instead of nn2 and the RBA= literal is shown.

To review: No error correction is necessary. Use this record to check the effectiveness of a program or a modification.

CPX62I

Message Format

CPX62I - KEY SYNCHRONIZATION MISMATCH - RECORD nn1 [(RBA=nn2)] ON FILE SYSUT2

This is an informational message. The record that immediately follows this message on the difference report was read from file SYSUT2. File synchronization is being done, for this execution of Comparex, by KEYs, and this following SYSUT2 record is not matched by KEY to any SYSUT1 record.

The logical record number is shown instead of nn1.

If the data set organization for file SYSUT2 is VSAM, the relative byte address of the first byte of the record is shown instead of nn2 and the RBA= literal is shown.

To review: No error correction is necessary. Use this record to check the effectiveness of a program or a modification.

369

Page 370: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

37

Appendix E: Messages

CPX64IMessage Format

CPX64I - SEGMENT SYNCHRONIZATION MISMATCH - RECORD nn1 [(RBA=nn2)] ON FILE SYSUT1

This is an informational message. The record that immediately follows this message on the difference report was read from file SYSUT1. File synchronization is being done, for this execution of Comparex, by SEGMENTs, and this following SYSUT1 record is not matched by SEGMENT to any SYSUT2 record.

The logical record number is shown instead of nn1.

If the data set organization for file SYSUT1 is VSAM, the relative byte address of the first byte of the record is shown instead of nn2 and the RBA= literal is shown.

To review: No error correction is necessary. Use this record to check the effectiveness of a program or a modification.

CPX65I

Message Format

CPX65I - SEGMENT SYNCHRONIZATION MISMATCH - RECORD nn1 [(RBA=nn2)] ON FILE SYSUT2

This is an informational message. The record that immediately follows this message on the difference report was read from file SYSUT2. File synchronization is being done by SEGMENTs, and this SYSUT2 record is not matched by SEGMENT to any SYSUT1 record.

The logical record number is shown instead of nn1.

If the data set organization for file SYSUT2 is VSAM, the relative byte address of the first byte of the record is shown instead of nn2 and the RBA= literal is shown.

To review: No error correction is necessary. Use this record to check the effectiveness of a program or a modification.

CPX66A

Message Format

CPX66A - SEGMENT ID NOT MATCHABLE - RECORD nnn ON FILE {SYSUT1} {SYSUT2}

This is an ACTION message. You have specified several SEGMENT keywords, and each one describes a particular segment identification. If a record was read from either SYSUT1 or SYSUT2 that does not match any of the SEGMENT specifications, then this message is issued, followed by a full display of the offending record. The record is discarded from further processing as if it satisfied a FILTOROUT. No statistics are gathered for this event. The purpose of this is to allow more accurate synchronization. Unanticipated or misspelled segment types can have unpredictable results.

0

Page 371: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

The logical record number is shown instead of nnn.

To review: Determine if the unanticipated record really is a segment type that is expected. Specify additional SEGMENT keywords to cover this situation.

CPX67I

Message Format

CPX67I - MAXDIFF INVOKED[, CONTINUING WITHOUT PRINTING BY REQUEST]

This is an informational message. MAXDIFF has been specified, and the number of differences specified by the MAXDIFF keyword’s parameter has been printed on the difference report. After message CPX67I is printed, no further records from file SYSUT1 or file SYSUT2 will be shown on the difference report.

If CONTINUE has also been specified, the second line of message CPX67I is shown. This indicates that Comparex will continue to read the input files and compare them without writing any records on the difference report. If CONTINUE is specified, the end-of-processing totals will reflect the total number of records on the input files and the total number of differences found.

If CONTINUE has not been specified, Comparex will stop processing immediately after message CPX67I is printed. This means that Comparex will close its input files and issue its end-of-processing messages immediately.

To review: Examine the records on the difference report. If more records are needed to check the effectiveness of a program or a modification, change the MAXDIFF parameter to a higher number for subsequent runs.

CPX69I

Message Format

CPX69I - STOPAFT [(END)] INVOKED

This is an informational message. Either STOPAFT has been specified and the number of records specified by the STOPAFT keyword’s parameter has been reached, or the END (signified by the (END) literal) keyword specification has been reached.

Comparex, after it writes message CPX69I, closes its input files and issues its end-of-processing messages. In addition, Comparex terminates, showing a return code of 8.

To review: Examine the records on the difference report. If Comparex needs to read more records to check the effectiveness of a program or a modification, change the STOPAFT parameter to a higher number for subsequent runs.

If doing foreground compares (Comparex/ISPF option 6), your installation may have set a limit as to how many records can be read in from each input file. If so, you may have to run your compare as a background job (option 7 or 8) in order to read each file completely.

371

Page 372: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

37

Appendix E: Messages

CPX71I

Message Format

CPX71I - END OF {DATA} ON FILE SYSUT1 [(EMPTY FILE)] {TEXT} [(ALL RECORDS FILTERED OUT)] {DIRECTORY}

This is an informational message. Comparex has detected end-of-file on SYSUT1. No records on the difference report that follow this message are from file SYSUT1.

If the input files are not directory-embedded and message CPX25I specified TEXT comparison logic, message CPX71I shows the TEXT literal; if the input files are not directory-embedded and message CPX25I specified DATA comparison logic, message CPX71I shows the DATA literal.

If the input files are directory-embedded data sets, this message can appear more than once during the run. When Comparex detects the end of a member, the utility issues message CPX71I, showing the DATA or TEXT literal (to indicate the type of comparison logic specified with message CPX25I).

When Comparex detects the end of all members, the utility issues message CPX71I, showing the DIRECTORY literal.

If the file was empty, EMPTY FILE will appear at the end of the message. If the file was not empty but filtering caused all records to be bypassed, ALL RECORDS FILTERED OUT will appear at the end of the message.

To review: No error correction is necessary. Use this message and its location on the difference report to evaluate the correctness of the Comparex run.

CPX72I

Message Format

CPX72I - END OF {DATA} ON FILE SYSUT2 [,(EMPTY FILE)] {TEXT} [,(ALL RECORDS FILTERED OUT)] {DIRECTORY}

This is an informational message. Comparex has detected end-of-file on SYSUT2. No records on the difference report that follow this message are from file SYSUT2.

If the input files are not directory-embedded and message CPX25I specified TEXT comparison logic, message CPX72I shows the TEXT literal; if the input files are not directory-embedded and message CPX25I specified DATA comparison logic, message CPX72I shows the DATA literal.

If the input files are directory-embedded data sets, this message can appear more than once during the run. When Comparex detects the end of a member, the utility issues message CPX72I, showing the DATA or TEXT literal (to indicate the type of comparison logic specified with message CPX25I).

2

Page 373: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

If the file was empty, EMPTY FILE will appear at the end of the message. If the file was empty, ALL RECORDS FILTERED OUT will appear at the end of the message.

To review: No error correction is necessary. Use this message and its location on the difference report to evaluate the correctness of the Comparex run.

373

Page 374: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

37

Appendix E: Messages

CPX73I

Message Format

CPX73I - COPYSPLIT RECORD COUNTS SYSUT3A(n1)/SYSUT3B(n2)/SYSUT3C(n3)/SYSUT3D(n4)/SYSUT3E(n5) )

This informational message appears at the end of the Comparex run when COPYSPLIT is specified. Comparex tallies the number of records written to the SYSUT3x files, and reports the counts as n1 through n5. If Comparex is unable to open the SYSUT3x file, the record count is zero (0).

CPX74I

Message Format

CPX74I - BYTES UNDERSCORED (u1[,u2])

This is an informational message. It is not shown if message CPX25I specified TEXT processing.

Comparex tallies the number of bytes underscored with the DASH character on the difference report, and the utility shows this number as u1.

If any SYSUT2 record on the difference report was longer than the SYSUT1 record to which it was paired, Comparex adds one to counter u2.

If any SYSUT2 record on the difference report was shorter than the SYSUT1 record to which it was paired, Comparex will not adjust the counter u2.

If, at the end of the Comparex run, counter u2 is not zero, Comparex shows counter u2 as the second number of message CPX74I.

To review: No error correction is necessary. Use these counters to evaluate the effectiveness of a program or a modification.

CPX75I

Message Format

CPX75I - RECORDS PROCESSED: SYSUT1(n1)/SYSUT2(n2)[/SYSUT3(n3)], DIFFERENCES(d0[,d1,d2]) CSECTS PROCESSED: SYSUT1(c1)/SYSUT2(c2)

EXPLANATION - d0 RECORDS DIFFER THAT SYNCHRONIZED TOGETHER d1 RECORD WAS CONSIDERED INSERTED ON SYSUT1 d2 RECORDS WERE CONSIDERED INSERTED ON SYSUT2 PASS FAIL STATISTICS f1 f2 FILTERIN=(. . .

i1 i2 IDENTITY=(. . .

4

Page 375: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

This is an informational message. It appears at the end of every Comparex run unless nothing is extracted from the database and there are no counts, in which case no CPX751 message appears.

Comparex tallies the number of records read from file SYSUT1, and the utility shows that number as n1. This counter includes any records that were skipped over as a result of a SKIPUT1 keyword.

Comparex tallies the number of records read from file SYSUT2, and the utility shows that number as n2. This counter includes any records that were skipped over as a result of a SKIPUT2 keyword.

If COPYDIFF was specified and Comparex was able to successfully open file SYSUT3, Comparex shows the number of records written to file SYSUT3 as n3.

If CSECT parsing (DATA=CSECT) was specified, Comparex shows the number of logical CSECTs processed as c1 and c2.

If TEXT processing was specified by message CPX25I, d0, d1, and d2 are calculated as follows:

d0 contains the number of records in each block that differ on a one-to-one basis. For example, if a block of records from file SYSUT1 is identified as differing from a block of records from file SYSUT2, and one block contains four records and one block contains five records, the d0 counter is increased by four. The extra record (the fifth record that did not differ on a one-to-one basis) is used to increase either counter d1 or counter d2 in this way:

If the block that contained more records came from file SYSUT1, counter d1 is increased by the number of records in the block from file SYSUT1, minus the number of records in the block from file SYSUT2 (in our example, 5 minus 4 equals 1; therefore, counter d1 is increased by 1).

If the block that contained more records came from file SYSUT2, counter d2 is increased by the number of records in the block from file SYSUT2, minus the number of records in the block from file SYSUT1.

If message CPX25I specified DIRECTORY processing and Comparex determined that both input files were directory-embedded, this message does not appear. Instead, Comparex issues message CPX78I.

If both input files are directory-embedded and message CPX25I did not specify DIRECTORY processing, message CPX75I appears at the end of each member, showing the number of:

• input records.

• any SYSUT3 records written.

• differences found for that member.

Then, at the end of the processing, Comparex issues message CPX78I to show the number of members processed during the run.

If KEY or SEGMENT synchronization was specified for this run:

375

Page 376: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

37

Appendix E: Messages

• d0 contains the number of pairs of records that were synchronized by KEY or SEGMENT and some difference was detected

• d1 contains the number of records from file SYSUT1 that were not synchronized to any SYSUT2 record (records inserted into SYSUT1 after end-of-file on SYSUT2

• d2 contains the number of records from file SYSUT2 that were not synchronized to any SYSUT1 record (records inserted into SYSUT2 or after end-of-file on SYSUT1.

If KEY or SEGMENT synchronization was not specified for this run:

• d0 contains the number of pairs of records that were synchronized by having the same physical location on the files and some difference was detected.

• d1 contains the number of records on the end of file SYSUT1 that could not be paired to SYSUT2 records (extra records on SYSUT1).

• d2 contains the number of records on the end of file SYSUT2 that could not be paired to SYSUT1 records (extra records on SYSUT2).

To review: No error correction is necessary. Use these counters to evaluate the effectiveness of the Comparex run.

CPX76I

Message Format

CPX76I - UNUSABLE FIELD COMPARISONS(n1)/UNUSABLE IDENTITIES(n2)/UNUSABLE SEGMENTS(n3/)UNUSABLE DESENSITIZERS(n4)

This is an informational message. It is shown only if Comparex found one or more FIELD, IDENTITY, DESEN, or SEGMENT specifications, and the displacement given on any of these keywords went beyond the length of one or more input records.

If Comparex found one or more FIELD (or FIELD1 and FIELD2 pair) specifications, and Comparex determined that the displacement of the FIELD was beyond the end of the input record, Comparex adds 1 to a counter for each field on each record where this out-of-bounds situation occurs. Comparex shows this counter as n1.

If Comparex found one or more IDENTITY specifications, and Comparex determined that the displacement of the IDENTITY was beyond the end of the input record, Comparex adds 1 to a counter for each IDENTITY on each record where this out-of-bounds situation occurs. Comparex shows this counter as n2.

If Comparex found one or more SEGMENT specifications, and Comparex determined that the displacement of the SEGMENT ID was beyond the end of the input record, Comparex adds 1 to a counter for each SEGMENT where this out-of-bounds situation occurs. Comparex shows this counter as n3.

Note that if Comparex finds a SEGMENT where the starting position of any synchronization key (displacement) is out-of-bounds, Comparex immediately stops processing, issuing message CPX37A

6

Page 377: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

If message CPX76I has been issued, Comparex did not find a SEGMENT where the displacement was out-of-bounds.

If Comparex found one or more DESEN (or DESEN1 or DESEN2) specifications, and Comparex determined that the desensitizing field would extend beyond the end of the input record, Comparex adds 1 to a counter for each DESEN where this out-of-bounds situation occurs. Comparex shows this counter as n4.

To review: No error correction is necessary. Use these counters to evaluate the correctness of the Comparex run.

CPX77I

Message Format

CPX77I - RECORDS REJECTED BY FILTERS: SYSUT1(n1)/SYSUT2(n2) - UNUSABLE FILTERS(n3)

This is an informational message. If Comparex found one or more filtering specifications, this message is issued.

If a record from file SYSUT1 was read and it was not passed to the comparison routines because of the filtering tests, Comparex adds 1 to counter n1.

If a record from file SYSUT2 was read and it was not passed to the comparison routines because of the filtering tests, Comparex adds 1 to counter n2.

If Comparex determined that the displacement of a filter was beyond the end of the input record, Comparex adds 1 to a counter for each filter on each record where this out-of- bounds situation occurs. Comparex shows this counter as n3.

If the MEMBER option is used in a filtering test, that filter does not cause any increases to the counters shown with message CPX77I. Instead, the counters shown with message CPX78I are affected by filters with the MEMBER option.

To review: No error correction is necessary. Use these counters to evaluate the correctness of the Comparex run.

CPX78I

Message FormatCPX78I - MEMBERS PROCESSED: SYSUT1(n1)/SYSUT2(n2), DIFFERENCES(d0[,d1,d 2])[- REJECTED BY FILTERS: SYSUT1(f1)/SYSUT2(f2)] EXPLANATION - d0 MEMBERS DIFFER THAT SYNCHRONIZED TOGETHER d1 MEMBER WAS CONSIDERED INSERTED ON SYSUT1

d2 MEMBERS WERE CONSIDERED INSERTED ON SYSUT2

This is an informational message. It is issued if both file SYSUT1 and file SYSUT2 are directory-embedded data sets.

The number of members in SYSUT1 is n1 and the number of members in SYSUT2 is n2.

377

Page 378: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

37

Appendix E: Messages

d0 reflects the number of matched member names where there was at least one difference.

d1 is the number of members on SYSUT1 that had no corresponding member name in SYSUT2.

d2 is the number of members on SYSUT2 that had no corresponding member name in SYSUT1.

If one or more filter keywords contained the MEMBER option, Comparex tallies the number of members filtered out as a result of these filters. Comparex shows the number of members filtered out from the SYSUT1 file as f1, and Comparex shows the number of members filtered out from the SYSUT2 file as f2.

To review: No error correction is necessary. Use these counters to evaluate the effectiveness of the Comparex run.

CPX80I

Message Format

CPX80I - TIME OF DAY AT END OF JOB: hh:mm:ss CONDITION CODE ON EXIT: c

This is an informational message. It is issued at the end of every Comparex run.

The processor’s clock is accessed just before the message is written onto SYSPRINT and the time is shown. Hours are between 0 and 23; hours between 0 and 11 are morning (a.m.) hours, and hours between 12 and 23 are afternoon and evening (p.m.) hours.

The condition code or return code is also shown. The values for c are:

0 A comparison was performed but no differences were found. If file SYSUT1 contained no records and file SYSUT2 was not opened for any reason, this zero condition code is also used.

If differences in the two files exist but you have filtered out all differing records or masked all differing fields or specified one or more FIELD statements and the differing data did not occur in any of these fields, this zero condition is used.

No records are shown on the difference report with the zero condition code.

4 A comparison was performed and at least one differing record was found.

8

Page 379: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

CPX90A

Message Format

CPX90A - UNABLE TO OPEN FILE {SYSUT1}

{SYSUT2}

or

CPX90A - CPXIFACE PROPER VERSION REQUIRED/REGEN - FUNCTION TERMINATED - RETURN CODE 16

This is an ACTION message. Comparex has tried to open a specified file, but the open has not been successful.

If Comparex has not been able to open file SYSUT1, the utility terminates, showing a return code of 16.

If Comparex has not been able to open file SYSUT2, and you specified HALT=NO, the utility continues as a print utility, printing SYSUT1 records onto the difference report.

In the case of the Comparex interface (specifying PAN, LIB, or OTH in the SYSUT1 or SYUST2 keywords), and the particular interface module (in the form CPXabcde) has not been generated properly, or if there is an open error of some sort, the message is preceded by a message in the form:

CPXabcde/plo - NOT GENERATED PROPERLY

or

CPXabcde/feedback error message unique to interface

which gives assisting diagnostic information as to what happened at this point in opening.

8 A comparison was performed, but either

a) The STOPAFT number, as shown with message CPX04I, was reached on one input file (that number of records was read after the SKIPUT number was bypassed).

b) The MAXDIFF number, as shown with message CPX04I, was reached (that number of differences was printed on the difference report) but CONTINUE was not shown with message CPX04I.

16 A serious error occurred during the comparison process. This error caused Comparex to stop processing and to print another message. Look for message CPX30A, CPX31A, CPX35A, CPX37A, CPX39A, CPX40A, CPX90A, CPX91A, CPX92A, CPX93A, CPX94A, CPX97A or CPX99A to identify the serious error and how to resolve it.

379

Page 380: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

38

Appendix E: Messages

A special form of the message CPXIFACE PROPER VERSION REQUIRED/REGEN is displayed if there is a mismatch between the versions of Comparex and CPXIFACE. In particular, the control block layout between them changed with CPX820, and if you executed Comparex/820 and referenced an older CPXIFACE module, this message is issued early instead of abending later.

ACTION Determine why Comparex was unable to open the file or inspect CPXIFACE to see if requested interface was generated properly.

CPX91A

Message Format

CPX91A - VSAM LOGICAL ERROR EXIT - SYSUT{1},RC=rc,RBA=n1,RECNO=n2 - {2} {3}

FUNCTION TERMINATED - RETURN CODE = 16

This is an ACTION message. Comparex has tried to read or write a VSAM file, and the VSAM access routines have returned information that the read or the write was not completed.

ACTION Refer to the VSAM Programmer’s Guide, using the RC, RBA, and RECNO data.

CPX92A

Message Format

CPX92A - SYNCHRONOUS ERROR EXIT - SYSUT{1},RECNO=nnn - {2} {3}

FUNCTION TERMINATED - RETURN CODE = 16

This is an ACTION message. Comparex has discovered a physical I/O error. The file name is shown, and nnn gives the physical record number on the file where the I/O error occurred. Comparex terminates, showing a return code of 16.

ACTION If the physical I/O error occurred on file SYSUT1 or file SYSUT2 (Comparex’s input files), use IBM utilities to copy the data to another file. If the physical I/O error occurred on file SYSUT3 (Comparex’s output file), rerun Comparex.

CPX93A

Message Format

CPX93A - COMPAREX INTERFACE NOT PRESENT - FUNCTION TERMINATED - RETURN CODE = 16

This is an ACTION message. An attempt was made to access the load module, as specified by message CPX20I, and it was unsuccessful.

0

Page 381: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

ACTION Generate a Comparex interface module onto an accessible library or point to a previously generated module via the CPXIFACE keyword. Rerun Comparex.

CPX94A

Message Format

CPX94A - INTERFACE ERROR EXIT SYSUT{1},{SRCH},RC=n,RECNO=n - FUNCTION TERMINATED -

RETURN CODE = 16

This is an ACTION message. The Comparex interface returned an unexpected condition code. The most common error is requesting to read a member that does not exist on the library, or if under Librarian, not archived at the requested relative level. Other incidental causes have to do with reading a module from Panvalet, GEM, or Librarian, and having an INCLUDEd member be missing from the library or be at a different status.

In almost all cases, the message is preceded by a feedback message from the particular interface module (usually CPXIFACE). It is in the form:

CPXIFACE/feedback error message unique to interface

which gives assisting diagnostic information as to what happened at this point in SRCHing or READing.

ACTION If the return code (RC) is 12, 16, or 20, a very serious error was encountered.

If the return code is 8, an I/O error has occurred.

If the return code is 4, a particular member was not found. Correct and rerun.

In many cases the CPX94A error can be resolved by taking the following steps:

• Build a second copy of CPXIFACE in your load library, calling it CPXIFAC2.

• Add the keywords: CPXIFACE1=CPXIFACE,CPXIFACE2=CPXIFAC2 as the first SYSIN parameters of the failing job.

CPX97A

Message Format

CPX97A -

PROGRAM INTERRUPT ENCOUNTERED AFTER READING n1 RECORDS (SYSUT1) AND n2 RECORDS(SYSUT2)[FOR FIELD # n3] PROGRAM INTERRUPT TYPE S0Cx PSW: pppppppp pppppppp OFFSET: ooooo ILC: n4 CC: n5 REGS 0-7: rrrrrrrr rrrrrrrr rrrrrrrr rrrrrrrr rrrrrrrr rrrrrrrr rrrrrrrr rrrrrrrrREGS 8-15: rrrrrrrr rrrrrrrr rrrrrrrr rrrrrrrr rrrrrrrr rrrrrrrr rrrrrrrr rrrrrrrrSTACK OFFSETS: sssss sssss sssss sssss sssss sssss sssss sssss sssss [R3 sssss]

MACHINE INSTR: iiiiiiii iiiiiiii iiiiiiii iiiiiiii iiiiiiii (iiiiiiii) iiiiiiii

381

Page 382: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

38

Appendix E: Messages

This is an ACTION message. A program interrupt has occurred in Comparex or the (CPXIFACE) interface.

n1 - number of records read from SYSUT1 before the interruptn2 - number of records read from SYSUT2 before the interruptn3 - field number being processed at the time of the interrupt (if applicable)S0Cxx - the program interrupt type (S0C1 through S0CF)OFFSET: ooooo may show up as EPA: aaaaaaaa instead

these fields are for the use of SERENA Technical Support

SPIE (Specify Program Interrupt Exit) has been turned on early in Comparex and it preempted an abnormal end situation. Abend codes S0C1 through S0CF are stopped.

However, not all abend situations are caught. Insufficient storage for BUFF getmain will not be intercepted. The dump (//SYSUDUMP DD SYSOUT=*) has been suppressed.

ACTION For a program interruption (S0C1 through S0CF abend) in Comparex batch, record the CPX97A message in full and contact Technical Support.

If Technical Support requests a dump, rerun the job using the KILLSPIE parameter and make sure a //SYSUDUMP (//SYSUDUMP DD SYSOUT=*) card is included to capture the dump. Be sure to use SYSUDUMP not SYSMDUMP. When forwarding the dump to Serena it is best to include both the CPX97A message (from the time you didn’t use KILLSPIE) along with the dump (using KILLSPIE).

To turn ESPIE off, issue the following keyword:

KILLSPIE=YES

The ESPIE will not be issued, and the dump will be generated.

Installations using CA-AbendAid should be sure to include an //ABNLIGNR DD DUMMY card in the JCL.

For other abends such as an S322, send a dump as described above if requested by Technical Support.

For abends in COMPAREX/ISPF first try to recreate the problem in batch using JCL or COMPAREX’s =8 option. If this can’t be done, do the following:

• Go to ISPF’s =6 screen and enter:

ALLOC F(SYSUDUMP) DA(any valid data set name) SPACE (1 1)CYL UNIT(SYSALLDA) VOL(any valid volume) NEW REUSE BLKSIZE(1632) RECFM(V B) LRECL(125).

• Be sure the data set name and volume are appropriate for your installation’s standards. Be sure to use SYSUDUMP, not SYSMDUMP.

• Recreate the problem.

• Enter TSO FREE F(SYSUDUMP) on any ISPF COMMAND ===> line.

• Send the dump to Serena.

2

Page 383: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

CPX99A

Accompanied by User Abend U0001

Message Format

CPX99A - LICENSE EXPIRED - CONTACT SERENA Software (650) 522-6600 or FAX(650) 522-6699.

ACTION Contact your Serena Customer Support representative

Accompanied by User Abend U0021

Message Format

CPX99A - Insufficient virtual storage. The job has exhausted virtual storage.

ACTION Increase region size and/or retry. Occasionally this may be a transient problem.

FOREGROUND: Increase the region size in your TSO logon procedure.

BACKGROUND: Increase the region size on your jobcard.

CPX001

Message Format

'SUBMIT Alloc. error'

Long Message Format

'Unable to allocate dataset to issue "TSO SUBMIT" from'

This is an error.

ACTION There is most likely an environmental error. See your system administrator.

Member CPXINOPT of a dataset (usually &PREFIX.ISPF.ISPPROF in your session) has been allocated to one of (ISPTBL/ISPPROF/ISPTABL/others). It was generated during installation and contains information from DSN=somnode.COMPAREX.SYSGEN that describes parameters for this allocation. The dataset name should be either &xxx.CPXyyddd.Thhmmsss.CNTL for 4 nodes or &xxx.Thhmmsss.CNTL for 3 nodes (where xxx is either &PREFIX or &USERID).

Member CPXINOPT may be corrupted.

CPX002

Message Format

'CPXDSN Alloc. error'

383

Page 384: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

38

Appendix E: Messages

Long Message Format

'Unable to allocate DSN where COMPAREX is to be executed from'

This is an error.

ACTION There is most likely an environmental error. See your system administrator.

Member CPXINOPT of a dataset (usually &PREFIX.ISPF.ISPPROF in your session) has been allocated to one of (ISPTBL/ISPPROF/ISPTABL/others). It was generated during installation and contains information from DSN=somnode.COMPAREX.SYSGEN that describes parameters for this allocation. In this member is the name following “CPXDSN” that is the name of the dataset that cannot be allocated. This dataset may have been deleted or renamed.

Member CPXINOPT may be corrupted.

CPX201

Message Format

'Alloc. error'

Long Message Format

'Dynamic allocation failed'

This is an error.

ACTION Check your SYSUT1/SYSUT2 allocation JCL and/or see your system administrator.

CPX203

Message Format

'DSN not Cataloged'

Long Message Format

'The requested dataset could not be allocated in the foreground'

This is an error.

ACTION One of the datasets SYSUT1/SYSUT2/SYSUT3 is not cataloged.

A dataset may have been deleted or renamed.

4

Page 385: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

CPX205

Message Format

'Member Not Found'

Long Message Format

'The specified member of a PDS could not be found'

This is an error.

ACTION One of the datasets SYSUT1/SYSUT2/SYSUT3 specifies a member name that does not exist on the panel under COMPAREX foreground option 2.

Correct the member name.

CPX206

Message Format

'Bad Organization'

Long Message Format

'This is a Partitioned (PDS) Dataset'

This is an error.

ACTION Correct the dataset name or see your system administrator.

A user dataset is a PDS, but should be PANVALET or LIBRARIAN.

CPX207

Message Format

'Select M instead'

Long Message Format

'Concurrent Development Facility is now Merge+Reconcile'

This message is a notification that the option has changed from C to M on the primary COMPAREX panel CPX@PRIM.

CPX301

Message Format

'Too Many Profiles'

385

Page 386: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

38

Appendix E: Messages

Long Message Format

'Only 30 profiles may be saved; Delete/reuse existing names'

This message is a notification that you must delete an existing profile member name to have room to add a new one.

CPX303

Message Format

'&PNAM Saved'

Long Message Format

'Profile &PNAM has been saved for future load/change/execution'

This message is a notification that you chose to save your existing profile variables under a new (or old) name.

CPX304

Message Format

'&PNAM Not Saved'

Long Message Format

'Profile &PNAM duplicates an existing profile name - not replaced'

This message is a notification that you chose to not save your existing profile variables at this time based upon the warning of a profile existing already with the same name.

CPX401

Message Format

'&PNAM Loaded'

Long Message Format

'Profile &PNAM has been selected for execution/change/save'

This message is a notification the requested profile has been loaded. You are now operating with a different COMPAREX profile of dialogue variables as you requested. Any previous COMPAREX dialogue variables that were modified and not saved are no longer available.

6

Page 387: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

CPX403

Message Format

'Profile(s) Deleted'

Long Message Format

'At least one profile has been deleted from reference list'

This message is a notification that you have deleted at least one profile from your list of COMPAREX profiles.

CPX404

Message Format

'One Or The Other'

Long Message Format

'Enter a private profile name OR a common profile name'

This is an error message.

This message is a notification that you must enter either a PRIVATE or a COMMON profile name of 1 to 4 characters, the first of which must be alpha. Entering both of them is not an option.

CPX501

Message Format

'Background COMPAREX'

Long Message Format

'Comparing &DSN1 and &DSN2'

This message is a notification that a background COMPAREX job has been started/completed. This message is written on the log userid.SPFLOGx.LIST which can be saved upon exit from SPF.

CPX502

Message Format

'Job Submitted'

387

Page 388: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

38

Appendix E: Messages

Long Message Format

'Background job submitted to COMPAREX &DSN1 and &DSN2'

This message is a notification that comparison is underway in background.

CPX503

Message Format

Background print of report

Long Message Format

'Background job submitted to print difference report'

This message is a notification that a background print of a COMPAREX job has been submitted. This message is written on the log userid.SPFLOGx.LIST which can be saved upon exit from SPF.

CPX504

Message Format

'Variables cleared'

Long Message Format

'Dialogue variables (related to COMPAREX) reinitialized'

This message indicates that ISPF dialogue variables in COMPAREX have been cleared except for the High Level Qualifier and USERID on panel 2.4 of COMPAREX. To simplify re-establishing variables, you may issue a LOAD (option 4) of a nominal profile you have saved that is your default set of values.

CPX601

Message Format

'Foreground COMPAREX'

Long Message Format

'Comparing &DSN1 and &DSN2'

This message is a notification that a foreground COMPAREX job has been started/completed. This message is written on the log userid.SPFLOGx.LIST which can be saved upon exit from SPF.

8

Page 389: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

CPX602

Message Format

'Report deleted'

Long Message Format

'Report &SYSPRNT deleted'

This message is a notification that your report was deleted. This message comes after doing a foreground compare and entering D to delete the output report dsn.

CPX603

Message Format

'Report NOT deleted'

Long Message Format

'Report &SYSPRNT could NOT be deleted - &ERR'

This is an error.

ACTION &ERR identifies the 4-digit hex DAIR return code. See your system administrator or see an IBM manual such as OS/390 V2R7.0 Authorized Assembler Services Guide to identify the 4-digit hex code. This message comes after doing a foreground compare and entering D to delete the output report dsn. The dataset is not deleted.

CPX604

Message Format

'Report kept'

Long Message Format

'Report &SYSPRNT kept'

This message is a notification that your report was kept. This message comes after doing a foreground compare and entering K to keep the output report dsn.

CPX605

Message Format

'Report print/keep'

389

Page 390: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

39

Appendix E: Messages

Long Message Format

'Report &SYSPRNT printed and kept'

This message is a notification that your report was printed and the dsn has been kept. This message comes after doing a foreground compare and entering JK to print the report and to keep the output report dsn.

CPX606

Message Format

'Report print/delete'

Long Message Format

'Report &SYSPRNT printed and deleted'

This message is a notification that your report was printed and the dsn has been deleted. This message comes after doing a foreground compare and entering JD to print the report and to delete the output report dsn.

CPX701

Message Format

'ISPF SERVICE ERROR'

Long Message Format

'TBCREATE ISPF service error'

This is an error.

ACTION Contact Serena Customer Support for help. There is probably an environmental ISPF error.

CPX702

Message Format

'ISPF SERVICE ERROR'

Long Message Format

'TBVCLEAR ISPF service error'

This is an error.

ACTION Contact Serena Customer Support for help. There is probably an environmental ISPF error.

0

Page 391: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

CPX703

Message Format

'ISPF SERVICE ERROR'

Long Message Format

'TBDELETE ISPF service error'

This is an error.

ACTION Contact Serena Customer Support for help. There is probably an environmental ISPF error.

CPX704

Message Format

'ISPF SERVICE ERROR'

Long Message Format

'TBTOP ISPF service error'

This is an error.

ACTION Contact Serena Customer Support for help. There is probably an environmental ISPF error.

CPX705

Message Format

'ISPF SERVICE ERROR'

Long Message Format

'VPUT ISPF service error'

This is an error.

ACTION Contact Serena Customer Support for help. There is probably an environmental ISPF error.

CPX706

Message Format

'ISPF SERVICE ERROR'

391

Page 392: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

39

Appendix E: Messages

Long Message Format

'TBSKIP ISPF service error'

This is an error.

ACTION Contact Serena Customer Support for help. There is probably an environmental ISPF error.

CPX707

Message Format

'ISPF SERVICE ERROR'

Long Message Format

'TBMOD ISPF service error'

This is an error.

ACTION Contact Serena Customer Support for help. There is probably an environmental ISPF error.

CPX708

Message Format

'ISPF SERVICE ERROR'

Long Message Format

'TBSORT service error'

This is an error.

ACTION Contact Serena Customer Support for help. There is probably an environmental ISPF error.

CPX801

Message Format

'Invalid Line Command'

Long Message Format

'''&LCMD'' line command is invalid at this time'

This is an error.

2

Page 393: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

ACTION Enter either an “S” to select a COMPAREX profile(s) for loading or “D” to select a COMPAREX profile(s) for deletion.

CPX802

Message Format

'Insufficent memory'

Long Message Format

'CPXPARSE can not map this record; retry with a larger region'

This is an error.

ACTION The copybook has expanded enough to require more memory than available. If your region is large enough, a S0C4 may result if the record size exceeds the maximum size for your system – approximately 32760.

FOREGROUND: The region in your TSO logon procedure needs to be increased if possible.

BACKGROUND: The region on your JOBCARD needs to be increased if possible.

CPX803

Message Format

'Invalid depending on'

Long Message Format

'An invalid data type was used for a depending on value'

This is an error.

ACTION Correct the displayed highlighted statement in the copybook referenced.

CPX804

Message Format

'Negative depending on'

Long Message Format

'A negative number was used for a depending on value'

This is an error.

ACTION Correct the displayed highlighted statement in the copybook referenced.

393

Page 394: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

39

Appendix E: Messages

CPX805

Message Format

'Fraction depending on'

Long Message Format

'A fraction was used for a depending on value'

This is an error.

ACTION Correct the displayed highlighted statement in the copybook referenced.

CPX806

Message Format

'Out of range'

Long Message Format

'The depending on number is out of the range defined for this variable'

This is an error.

ACTION Correct the displayed highlighted statement in the copybook referenced.

CPX807

Message Format

'Too many fields'

Long Message Format

'The number of fields that CPXPARSE can process has been exceeded'

This is an error.

ACTION Correct the displayed highlighted statement in the copybook referenced if in error. Alternately reduce the number of fields if possible.

CPX810

Message Format

'Record too short'

Long Message Format

'This record is shorter than the COPYBOOK description'

4

Page 395: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

This is an error.

ACTION Correct the copybook referenced. Reference the correct data if incorrect data was used.

CPX811

Message Format

'Record too long'

Long Message Format

'This record is longer than the COPYBOOK description'

This is an error.

ACTION Correct the copybook referenced or reference the correct data if incorrect data was used.

CPX812

Message Format

'Invalid packed number'

Long Message Format

'An invalid packed decimal number was found in the current record'

This is an error.

ACTION Correct the copybook referenced or check the data for validity.

CPX813

Message Format

'INITIAL missing'

Long Message Format

'The INITIAL clause is missing or incomplete: ' +

' &CPXMSG2'

This is an error.

ACTION Correct the displayed highlighted statement in the copybook referenced if in error.

395

Page 396: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

39

Appendix E: Messages

CPX814

Message Format

'Precision missing'

Long Message Format

'The precision value clause is missing or incomplete: ' +

' &CPXMSG2'

This is an error.

ACTION Correct the displayed highlighted statement in the copybook referenced if in error.

CPX815

Message Format

'Array invalid'

Long Message Format

'The size of the array is missing or the array has multiple levels: ' +

' &CPXMSG2'

This is an error.

ACTION Correct the displayed highlighted statement in the copybook referenced if in error.

CPX816

Message Format

'Level not numeric'

Long Message Format

'The level number on this statement is missing or not numeric: ' +

' &CPXMSG2'

This is an error.

ACTION Correct the displayed highlighted statement in the copybook referenced if in error. This can be caused by level numbers occurring in a column before the level number in an earlier statement of the copybook.

6

Page 397: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

CPX817

Message Format

'Word not supported'

Long Message Format

'This reserved word is not supported and COPYBOOK can not continue: ' +

' &CPXMSG2'

This is an error.

ACTION Correct the displayed highlighted statement in the copybook referenced if in error.

CPX818

Message Format

'Word not defined'

Long Message Format

'This word is not defined and COPYBOOK can not continue: ' +

' &CPXMSG2'

This is an error.

ACTION Correct the displayed highlighted statement in the copybook referenced if in error.

CPX819

Message Format

'Invalid OCCURS'

Long Message Format

'The OCCURS clause is missing or not numeric: ' +

' &CPXMSG2'

This is an error.

ACTION Correct the displayed highlighted statement in the copybook referenced if in error.

CPX820

Message Format

'PICTURE missing'

397

Page 398: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

39

Appendix E: Messages

Long Message Format

'The PICTURE clause is missing: ' +

' &CPXMSG2'

This is an error.

ACTION Correct the displayed highlighted statement in the copybook referenced if in error.

CPX821

Message Format

'VALUE missing'

Long Message Format

'The VALUE clause is missing or incomplete: ' +

' &CPXMSG2'

This is an error.

ACTION Correct the displayed highlighted statement in the copybook referenced if in error.

CPX822

Message Format

'DEPENDING missing'

Long Message Format

'The DEPENDING clause is missing or incomplete: ' +

' &CPXMSG2'

This is an error.

ACTION Correct the displayed highlighted statement in the copybook referenced if in error.

CPX823

Message Format

'DEPENDING needs OCCURS'

Long Message Format

'The DEPENDING clause requires an OCCURS clause with a TO clause: ' +

' &CPXMSG2'

8

Page 399: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

This is an error.

ACTION Correct the displayed highlighted statement in the copybook referenced if in error.

CPX824

Message Format

'DEPENDING needed with TO'

Long Message Format

'A DEPENDING clause must be coded if an OCCURS with TO is entered: ' +

' &CPXMSG2'

This is an error.

ACTION Correct the displayed highlighted statement in the copybook referenced if in error.

CPX825

Message Format

'PICTURE is invalid'

Long Message Format

'This PICTURE contains invalid characters for this data type: ' +

' &CPXMSG2'

This is an error.

ACTION Correct the displayed highlighted statement in the copybook referenced if in error.

CPX826

Message Format

'PICTURE is invalid'

Long Message Format

'This PICTURE contains an invalid repeat count value: ' +

' &CPXMSG2'

This is an error.

ACTION Correct the displayed highlighted statement in the copybook referenced if in error.

399

Page 400: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

40

Appendix E: Messages

CPX827

Message Format

'PICTURE not supported'

Long Message Format

'A PICTURE is not supported with internal floating point items: ' +

' &CPXMSG2'

This is an error.

ACTION Correct the displayed highlighted statement in the copybook referenced if in error.

CPX828

Message Format

'PICTURE is required'

Long Message Format

'A PICTURE clause is required with this data type: ' +

' &CPXMSG2'

This is an error.

ACTION Correct the displayed highlighted statement in the copybook referenced if in error.

CPX829

Message Format

'Variable missing'

Long Message Format

'The DEPENDING or REDEFINES variable was not found or was invalid: ' +

' &CPXMSG2'

This is an error.

ACTION Correct the displayed highlighted statement in the copybook referenced if in error.

CPX830

Message Format

'GETMAIN failed'

0

Page 401: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

Long Message Format

'The GETMAIN for the COPYBOOK service routine failed: ' +

' &CPXMSG2'

This is an error.

ACTION The amount of memory for the copybook work area could not be obtained. This error may not occur on a subsequent submission because of a transient shortage of memory. If the trouble is persistent, then increase the region of the job:

Background: increase the region in the jobcard.

Foreground: increase the region in the TSO procedure used for logon, or use 0M as

EXEC PGM=IKJEFT01,REGION=0M

CPX831

Message Format

'OPEN failed'

Long Message Format

'The OPEN for the COPYBOOK member was not successful'

This is an error.

ACTION The member could not be found as specified. Check the spelling of the name.

CPX832

Message Format

'SYNAD error'

Long Message Format

'A SYNAD I/O error message for this COPYBOOK member was encountered: '

' &CPXMSG2'

This is an error.

ACTION There was an I/O error on the copybook member. Attempt to browse the same member in TSO BROWSE to determine if it is a permanent error. You may have to recreate the member and/or copylib.

401

Page 402: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

40

Appendix E: Messages

CPX834

Message Format

' '

Long Message Format

'&CPXMSG2'

CPX836

Message Format

'REDEFINES missing'

Long Message Format

'The REDEFINES clause is missing or incomplete: ' +

' &CPXMSG2'

This is an error.

ACTION Correct the displayed highlighted statement in the copybook referenced if in error.

CPX837

Message Format

'LEVEL 1 not found'

Long Message Format

'A matching LEVEL 1 element for the current COPYBOOK was not found'

This is an error.

ACTION Correct the displayed highlighted statement in the copybook referenced if in error. There is probably a missing LEVEL 1 statement.

CPX839

Message Format

'Library utility missing'

Long Message Format

'The Librarian/Panvalet library utility could not be found'

This is an error.

2

Page 403: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

ACTION Contact your system administrator to determine correct libraries.

CPX840

Message Format

'CPXIFACE missing'

Long Message Format

'The CPXIFACE interface for Librarian/Panvalet could not be found'

This is an error.

ACTION Contact your system administrator to determine correct libraries.

CPX841

Message Format

'Library open failed'

Long Message Format

'The CPXIFACE interface OPEN service failed'

This is an error.

ACTION Correct the dataset specified. Contact your system administrator to determine the correct dataset.

CPX842

Message Format

'Library search failed'

Long Message Format

'The CPXIFACE interface SRCH service failed; member was not found'

This is an error.

ACTION Correct the library and/or member specified.

CPX843

Message Format

'Library read failed'

403

Page 404: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

40

Appendix E: Messages

Long Message Format

'The CPXIFACE interface READ service failed.'

This is an internal error.

ACTION Contact Serena Customer Support for help.

CPX844

Message Format

'LEVEL 1 not found'

Long Message Format

'A matching LEVEL 1 element for the current COPYBOOK was not found'

This is an error.

ACTION Correct the displayed highlighted statement in the copybook referenced if in error.

CPX845

Message Format

'Module(s) not loaded!'

Long Message Format

'At least one load module not loaded; Unable to proceed'

This is an error.

ACTION Contact your system administrator to determine correct libraries.

CPX846

Message Format

'INVALID SELECTION CODE'

Long Message Format

'Valid code is S (Select)'

This is an error.

ACTION Enter only “S” on the panel to select a copybook member.

4

Page 405: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

CPX847

Message Format

'INVALID SELECTION CODE'

Long Message Format

'Codes: CAN (Cancel) L (Locate)'

This is an error.

ACTION Enter the correct command. Only “CAN” or “L” are valid commands.

CPX848

Message Format

INVALID MEMBER NAME

Long Message Format

CPX848 Use a member name of 8 characters or less

This is an error message. The user entered the L (locate) command on the command line, but either did not supply a PDS member name, or entered a member name exceeding 8 characters in length.

ACTION Re-enter the Locate command with a member name, or the first few characters of a member name.

To review: The Locate commands take a member name operand of from 1 to 8 characters.

CPX850

Message Format

'Statement Invalid'

Long Message Format

'This type assembler statement is not currently supported:' +

' &CPXMSG2'

This is an error.

ACTION Correct the statement highlighted. All statements may not be supported.

405

Page 406: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

40

Appendix E: Messages

CPX851

Message Format

'Statement Invalid'

Long Message Format

'Only DSECT, DS, DC and EQU assembler statements are supported:

' &CPXMSG2'

This is an error.

ACTION Correct the statement highlighted. All statements may not be supported.

CPX852

Message Format

'Statement Invalid'

Long Message Format

'Assembler length expressions are not currently supported:' +

' &CPXMSG2'

This is an error.

ACTION Correct the statement highlighted. All statements may not be supported.

CPX853

Message Format

'Statement Invalid'

Long Message Format

'Assembler expressions are not currently supported:' +

' &CPXMSG2'

This is an error.

ACTION Correct the statement highlighted. All statements may not be supported.

6

Page 407: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

CPX900

Message Format

CPX900 ‘Keyword not recognized’

CPX901

Message Format

CPX901 Relational operator not recognized/valid with this keyword

CPX902

Message Format

CPX902 Keyword must be placed on a field line with level 01-49.

CPX903

Message Format

CPX903 Op must be placed on the line above with the 88-level field name

CPX904

Message Format

CPX925 Keyword must be placed on a line with level 01-49.

CPX905

Message Format

CPX905 The table to be modified has not yet been created with the Parse function

CPX906

Message Format

CPX906 Copylib was not found

407

Page 408: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

40

Appendix E: Messages

CPX907

Message Format

CPX907 Copy member was not found

CPX908

Message Format

CPX908 Error creating text for keyword

CPX909

Message Format

CPX909 Unexpected fatal error in CPXPARSE

CPX910

Message Format

CPX910 No SYSUT1 entries were made to create COMPAREX control statements

CPX911

Message Format

CPX911 SYSUT-suffix must be 1 or 2

CPX912

Message Format

CPX912 Fatal error processing dynamically allocated file

CPX913

Message Format

CPX913 Fatal error using ISPF service

8

Page 409: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

CPX914

Message Format

CPX914 Error in copy member near line &LASTLINE

CPX915

Message Format

CPX915 Invalid dataset or member name

CPX916

Message Format

CPX916 Invalid file organization for copylib

CPX917

Message Format

CPX917 Member name not valid for sequential file

CPX918

Message Format

CPX918 Incompatible choices

CPX918A

Message Format

CPX918A Field occurrences already expanded

CPX919

Message Format

CPX919 Function terminated.

409

Page 410: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

41

Appendix E: Messages

CPX920

Message Format

CPX920 Field occurrences already expanded

CPX921

Message Format

CPX921 Invalid ISPF version - must be Version 3.1 or greater for CPXPARSE

CPX922

Message Format

CPX922 More than three levels of occurrence in COPY member

CPX923

Message Format

CPX923 Multiple occurrences at the 01-level not currently supported

CPX924

Message Format

CPX924 Record length exceeds allowable maximum

CPX925

Message Format

CPX925 Keyword must be placed on a line with level 01-49. CPXPH90 Keyword Entry - Help

More: +

This entry in the Keyword column is not known to CPXPARSE.

This message can also appear if an entry is made in the Op column, and the Keyword column is left empty. CPXPARSE then sees that an attempt has been made to do something with the field for that line of the table, but finds blanks for the keyword.

0

Page 411: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

To proceed, first press ENTER to remove the error message window, then correct the keyword (or remove it entirely). Check that any relational operator has a non-blank keyword next to it, unless the operator is on an 88-level field name.

Choose the Extended Help pull-down for more information.

In entering keyword, the following abbreviations may be used:

The following abbreviations must be used:

CPX926

Message Format

CPX926 Error creating text for Keyword

COMMON ABENDS

If you abend immediately with abend code 1F or decimal 31, it is because you invoked COMPAREX with PANEL(CPX@PRIM), and you specified PROGRAM(CPX$ISPF), which is the older methodology in prior versions.

If you abend immediately with abend code 4x08, it is because CPX$ISPF cannot open (TBOPEN) the table library which is pointed to by DDNAME ISPTLIB. Internally, module CPX$ISPF makes many calls to module ISPLINK at initialization time.

Each call (defining the variables, VPUT to shared pool, and so on) is counted by adding decimal 100 to an internal counter. If the return code from any one call is non-zero, the sum of the calls (times 100) plus the return code (usually 8) is the decimal code for the intentional abend. One abend that might occur is 12C8, or decimal 4808, which means that the 48th call received a return code of eight. If this occurs, it means that the table named DSPRINT could not be found in member CPXINOPT, which was built during the installation process.

D DESEN

F FIELD

I ID

K KEY

M MASK

FIN FILTERIN

FOUT FILTEROUT

FORIN FILTORIN

FOROUT FILTOROUT

411

Page 412: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

41

Appendix E: Messages

Abend 4708 occurs when Comparex cannot find the profile module CPXINOPT in the ISPF Tables data set concatenation. Make sure that the module exists in the ISPTLIB concatenation in your logon procedure, clist or LIFDEF clist.

Abend 4908 occurs when CPXINOPT is not found in ISPTLIB. SYSGEN needs to be run and CPXINOPT placed in the ISPTLIB (table library) concatenation.

2

Page 413: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

USER ABENDS AND REASON CODES

Here is an explanation of the COMPAREX user abends and reason codes.

ABEND U0001 - Licensing

Reason code 1 - Expiration date has passed

The date is from the licensing program.

ABEND U0002 - Storage

If SYSPRINT is open at the time of failure, message CPX99A is written instead of abending.

Reason code 4 - Insufficient storage in region.

Reason code 5 - Internal error. Insufficient storage allocated to heap.

ABEND U0003 - Subroutines

Reason code 1 - Internal error. String table (CSECT COMPAREH) is missing.

Reason code 2 - Internal error. Invalid data or request to SERDATES.

Reason code 4 - Cannot load the licensing program.

Reason code 5 - Cannot load SERDATES.

Reason code 6 - Cannot load SERBSAM.

Reason code 7 - Internal error. Cannot delete the licensing program.

Reason code 8 - Internal error. Cannot delete SERDATES.

Reason code 9 - Internal error. Cannot delete SERBSAM.

ABEND U0005 - SYSPRINT

Reason code 1 - unable to open SYSPRINT.

ABEND U0031

Comparex was verified as NOT the prefix of the message. An older program is being used with different prefixes.

ABEND U0035

Accompanied by CPX04I usually with ADABAS.

ABEND S0C1-S0CF

These errors are masked by the ESPIE. KILLSPIE negates masking and allows dumps.

ABEND S0C3

ISPLINK was not loaded.

413

Page 414: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

41

Appendix E: Messages

ABEND S0C7

If SEQFLD is being used with sequence numbers, this error will occur. COPYDIFF was specified.

ABEND S80A

Increase region size on your job card or TSO logon procedure

ABEND S200

Using CALL ATTACH facility, two DB2 databases were attempted to be loaded at the same time.

ABEND S878

Increase region size on your job card or TSO logon procedure

4

Page 415: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

GLOSSARY

F ACB

Access Control Block. A term describing the attributes of a VSAM file to be read or written.

BASELINE

See ORIGINAL FILE.

BINARY SIGNED

The format to internally store numeric fields where the value has been converted from decimal to binary and the sign is in the left-most bit of the field. For example: X‘903D’ = Binary 1001000000111101, Decimal -28611.

BMP

Batch Message Program. A term used in IMS to describe a program running under IMS that is batch oriented (not online).

BUFF

A keyword that specifies the buffer size for TEXT comparison logic or DATA logic with Random KEYs.

CINV

An abbreviation for Control Interval. A control interval is a VSAM term roughly the equivalent of BLKSIZE.

COMPAREX

The Comparison utility.

CONTINUE

A keyword that causes the utility to read records and count differences without printing differing records. Used with MAXDIFF.

415

Page 416: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

41

Chapter F: Glossary

COPYDIFF

Abbreviation for COPY the DIFFerences to a third file. A keyword that causes Comparex to write file SYSUT3.

COPYSAME

Abbreviation for COPY the SAME records to a third file. A keyword that causes Comparex to write file SYSUT3.

CSECT

Abbreviation for Control SECTion. Each executable module can be broken up into one or more CSECTs, the order and content of which are independent of other CSECTs.

DATA

Either (1) files that have an inter-record relationship; (2) comparison logic based on synchronization of records; (3) a keyword to specify DATA comparison logic.

DBMS

Database Management System. Global term used to describe monitors whose charge is to coordinate the efforts of application programs to the data on large random access files (databases).

Telecommunications support is usually supplied also.

DB2

Data Base/2. IBM’s major entry in the DBMS marketplace.

DCB

Data Control Block. A term describing the attributes of a non-VSAM file to be read or written.

DELTA DECK

A data set (used to be a card deck) containing the changes (Greek letter Delta) in transaction format such that if it is fed back into a predetermined library management system (Panvalet, Librarian, Change Man), it will update the old data set to be exactly like the new data set.

DESENSITIZE

The act of obliterating sensitive data fields in live production DATA files.

DIFFERENCE REPORT

The major output from Comparex. The report shows both the processing totals and the records that differ.

6

Page 417: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

DIRECTORY

A keyword to specify comparison of only the DIRECTORY portions of directory-embedded data sets.

A series of 256-byte records at the beginning of a Partitioned Data Set (PDS) that contain an entry for each member in the data set. Note that it is possible to physically read this special part of the PDS by specifying “SYSUT1=QSAM” while actually pointing to a PDS.

DUMMY

In JCL, specifying DUMMY forces the associated program opening the data set to go to end of file at the first read or to nullify every write instruction to the file.

END

Either (1) a keyword to prematurely terminate the difference report; (2) a way of forcing field comparisons to go to the end of the logical record regardless of the record length.

ESDS

Entry Sequenced Data Set. A VSAM term meaning that the sequence of the data in is determined by the order in which they are stored. Each new record is stored after the last record in the data set.

FIELDs

Keywords that cause Comparex to compare only on specified positions of the input records.

FILTER

A keyword that performs a logical test to select or reject records. Selected records are eligible for comparison.

FILTERING

The process of selecting or rejecting records with the use of filters.

FRAME

A keyword, used with TEXT comparison logic, to specify the surrounding of differing blocks of records with the PLUS character and the DASH character on the difference report.

GENFLDS

Either (1) an optional part of the difference report that shows a visual representation of each input record type; (2) a keyword specifying these visual representations.

417

Page 418: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

41

Chapter F: Glossary

HELP

A keyword that causes Comparex to display a listing of valid keywords and their definitions onto SYSPRINT.

IDCAMS

Access Method Services. IBM's system of creating, deleting, printing, loading, and unloading files of almost any organization. VSAM mandates the use of IDCAMS to create and manipulate files.

IDENTITY

A keyword that performs a logical test to identify a record type on the SYSUT1 file.

IMS

Information Management System. One of IBM’s DBMSs.

ISAM

Indexed Sequential Access Method.

JCL

Job Control Language - statements which describe a job to the operating system and inform the system of how a job is to be processed.

KEY

Either (1) a control field on a file; (2) a keyword specifying this control field.

KEYLEN

The length of a synchronizing key. Typically used in conjunction with RKP.

KEYWORD

An instruction given to Comparex to cause the utility to modify its default processing.

KSDS

Key Sequenced Data Set. A VSAM term meaning that the sequence of the data in is determined by an indexing key structure. KSDS files may be accessed sequentially or randomly (by the key).

MASKs

Keywords that cause Comparex to ignore specified positions on the input records when comparing them.

8

Page 419: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

MAXDIFF

A keyword to specify the maximum number of differences between files whether the records synchronize together or not.

MAXMATCH

A keyword to specify the maximum number of differences in a DATA compare between records that synchronize together.

MEMBER

An independent, sequentially organized data set identified by a unique name in a directory-embedded data set.

MLC

Matching line count. A keyword to specify the number of exact matches Comparex makes before deciding that TEXT comparison logic is back into synchronization.

MODE

A keyword to specify the user’s orientation. MODE=APPLICATIONS causes displacements in other keywords to be relative to one; MODE=SYSTEMS causes displacements to be relative to zero.

MODIFIED FILE

A set of data and software that is not yet ready to be placed into production mode because of possible changes.

See also its relation to ORIGINAL FILE.

MPP

Message Processing Program. A term in IMS to describe an online program that is driven by input messages, usually from a terminal operator.

NIBBLE

A half-byte. Four bits of data.

NULLFILE

Specifying DSN=NULLFILE is the same as specifying DD DUMMY (see DUMMY).

ORIGINAL FILE

A set of data and software that is known to consistently produce correct or at least acceptable results.

419

Page 420: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

42

Chapter F: Glossary

See also its relation to MODIFIED FILE.

PACKED DECIMAL

The format to internally store numerics where each digit takes a half-byte (nibble or four bits) and the sign is at the end of the field. For example, X’903D’, Decimal -903.

PDS

Partitioned Data Set - a collection of independent groups (called MEMBERs) of sequential records on a direct access volume. Each MEMBER has a unique name and is listed in a DIRECTORY at the beginning of the data set. It is a directory-embedded data set.

PDSE

Partitioned Data Set extended - the next generation of PDS from IBM. Available only under System Managed Storage (SMS) volumes of z/OS, MVS/ESA, and DFP 3.2 or better. It has many advantages including reusability of space and up to 123 extents.

QSAM

Queued Sequential Access Method - also flat file.

RDW

Record Descriptor Word. This word (four bytes) describes the length of a record if it is variable length QSAM or ISAM. Sometimes referred to as the LLBB.

RKP

Relative Key Position. The relative (to zero) position of a synchronizing key in a record. Usually used in conjunction with KEYLEN.

RRDS

Relative Record Data Set. A VSAM term meaning that the file has no index. It is a string of fixed-length slots, each of which is identified by a relative record number from 1 to nnn, where nnn is the maximum number of records that can be stored in the data set.

SEGMENT

Either (1) a piece of a database; (2) an identifier on a record to delineate at what level of a database it comes from; (3) a keyword to Comparex that allows synchronizing between two versions of a database.

SKIPUTs

Keywords that cause Comparex to bypass initial records on the input files.

0

Page 421: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Serena® Comparex® 8.7 for z/OS User’s Guide

SQUEEZE

Either (1) the removal of certain characters before TEXT comparison; (2) a keyword to specify a character to be removed.

STOPAFT

A keyword that specifies the maximum number of records to be read from either input file.

SYNCHRONIZATION

The pairing of records for comparison by Comparex.

KEY, SEGMENT, and same physical-record number synchronization are supported with DATA comparison logic.

SYSIN

The input file containing keywords.

SYSPRINT

The output file from Comparex that contains the difference report.

SYSUT1

The first of the two input files to be compared. SYSUT1 is usually the old master or the unmodified file.

See also ORIGINAL FILE.

SYSUT2

The second of the two input files to be compared. SYSUT2 is usually the new master or the modified file.

See also MODIFIED FILE.

SYSUT3

An optional output file from Comparex, written if COPYDIFF (or COPYSAME) is specified.

TEXT

Either (1) files that have no inter-record relationship; (2) comparison logic that pairs records based on record-to-record matching; (3) the keyword to specify TEXT comparison logic.

421

Page 422: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

42

Chapter F: Glossary

UNSIGNED BINARY

A binary number, never negative, where each bit contributes to the magnitude of the number, including the leftmost bit. For example: X’903D’, Binary 1001000000111101 = Decimal 36925.

UNSIGNED PACKED

A decimal number, never negative, containing 2 digits in every byte, including the rightmost byte.For example: X’9033’, Decimal 9033.

VSAM

Virtual Storage Access Method.

WILDCARD

A keyword used to specify a character to be used in other keywords to indicate that any value passes logical tests specified.

ZONED DECIMAL

The format to display numerics where each digit is preceded by its sign and takes a whole byte; for example: X‘F9F0D3’ = Decimal -903.

2

Page 423: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Index

A

abbreviations and symbols 18abends 30, 54, 76, 156, 357

common 411S0C1 through S0CF 382S80A 217, 382U035 222U4608 411U4708 412U4808 411U4908 412

above the line 54, 217ACB, defined 415ADABAS 218

Natural 218A-IDENTITY 113all-defaults

about 23difference report 128

with DATA 128mode 22, 29, 30

AND logic 89Appendix A - sample COBOL code 337Appendix B - Glossary 415APPLICATIONS 347archived (ARCHIE) 121ascending

key 348ASCII 125, 132ASCII character encoding 94assist 180attributes

files 265overlay 97OVLY 97scatter 97SCTR 97

auditPDS libraries, examples 320trail 153, 213, 323

B

BACKUP 121baseline

see original file 415basic definitions of abbreviations and symbols 18

batch JCL 210, 211binary

decimal format, defined 415format 105

BMP, defined 415BUFF 36, 44, 46, 47, 54, 74, 97, 248, 365

defaults 46keyword

defined 415examples 54

bufferlarge 46small 46

bytes underscored 74

C

CAMLIB 224library processing 224

CASE 125, 130keyword

examples 130CCSID code table 94CCSID field 173CCSIDx keyword 93character

abbreviated as 76character encoding 93, 173character format 76, 105CINCOM 223

MANTIS 223CINV, defined 415clock

processor’s 378CLOS 357CMNDELTA

concurrent updates, integrity 266execution JCL 265sample report 267

COBOLcode, sample 337copylib

parsing 133exit module, JOSEFINE 242source code changes 319

code conventions 17codes

COBOL, sample 337

User’s Guide 423

Page 424: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Index

decimal 411return 411

commands, locate 405comments 34, 84, 125, 344common abends 411communications procedure, written 332COMPAREE

EBCIDIC translate table 131Comparex

assist 180defaults 22

Comparex interfaceCPXIFACE 218

Comparex interface moduleCPXIFACE 213

Comparex/ISPF Primary Menu 165comparing

DATA or TEXT 25only on

significant DATA 52only on specific fields 91

comparing recordsDATA 35TEXT 36

comparison logicDATA 90, 96

decisions 53TEXT 43, 45

advantages 52decisions 53disadvantages 53

comparisonsrunaway 53unequal 150

complex filtering 319concatenated key 79concatenation 412COND,with HALT 346COND,with MBRHDR 346conditions

out-of-synch 75context 56CONTINUE 87, 95

keyworddefined 415

keyword examples 95control

cards 147fields 68, 75, 77, 79

ascending 70descending 70, 71mismatch on 70

copyrecords

differing 150matching 161

to output file 147copybooks

parsing 180COPYDIFF 30, 34, 36, 148, 152

format options 153keyword

defined 416options 153

copylibparsing

COBOL 133example instructions 183

COPYSAME 30, 36, 147, 161keyword

defined 416examples 161, 163

COPYSPLIT 36, 162correct keywords 85counts

end-of-job 53members 75

CPX@PRIM panel 165, 199CPX$ISPF 411CPX$ISPF module 198CPX00I 34, 84, 85, 128, 343

message format 343CPX01I 344

message format 344CPX02A 30, 345CPX03I 345CPX03I through CPX12I 34CPX03I through CPX19I 85CPX04I 141, 222, 346CPX04I through CPX25I 125CPX05I 145, 346CPX06I 347CPX07I 347CPX08I 130, 138, 144, 146, 348CPX09I 86, 349CPX10I 349CPX11I 143, 144, 350CPX12I 91, 93, 350CPX13I 137, 352CPX14I 352CPX15I 352, 354CPX16A 153, 354CPX16I 34, 86, 161, 163, 355CPX18I 67, 356CPX19I 356CPX20I 213, 356CPX21I 34, 86, 217, 357CPX22I 34, 86, 217, 358CPX23I 359CPX24A 50, 51, 359CPX25I 34, 360, 375CPX26I 86, 361

424 Serena® Comparex® 8.7 for z/OS

Page 425: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Index

CPX27I 361CPX28I 362CPX30A 343, 362CPX31A 217, 252, 362CPX35A 66, 363CPX36A 65, 68, 363CPX37A 69, 363, 364CPX39A 364CPX40A 365CPX41I 365CPX42I 365CPX45A 366CPX51I 67, 70, 71, 73, 95, 129, 366

examples 33CPX52I 67, 70, 71, 73, 93, 129, 367

examples 33CPX56I 69, 72, 368CPX57I 69, 72, 368CPX61I 65, 66, 67, 369CPX62I 65, 67, 369CPX64I 68, 70, 71, 370CPX65I 68, 70, 71, 370CPX66A 370CPX67I 87, 141, 371CPX69I 371CPX71I 86, 372CPX71I through CPX80I 125CPX72I 372CPX73I 38, 163, 374CPX74I 74, 131, 144, 374CPX75I 38, 53, 74, 75, 98, 161, 374CPX76I 38, 75, 376CPX77I 38, 377CPX78I 75, 143, 377CPX80I 378CPX848 405CPX90A 32, 379CPX91A 380CPX92A 380CPX93A 380CPX94A 381CPX97A 381CPX99A 54, 383

message format 383CPXDATCM 227CPXDB2S1 panel 199, 200, 201CPXDB2S5 panel 204CPXEXIT 95CPXIDMS 243CPXIFACE 96, 213, 218, 243

keywordexamples 96

CPXIFACE interface 197CPXIFACE1

example 239CPXIFACE2

example 239CPXINOPT 411CPXJOBST 177CPXOPDS1 179CPXOPDS1 panel 172CPXOPDS2 panel 173CPXOPDSN 179CPXOPDSN panel 199CPXOPFFK 177CPXOPSYK 171CPXPARSE

examples 185CPXPRLOD panel 169CPXPRSAV panel 168CPXREPRT 175CPXSHORT 176CPXSHORT panel 166, 176, 178CPXURT= 226CPXZOS module 198creating an output file 24CREDATE 118CSECT 97

defined 416parsing 54, 109

load modules 90csectnam 365current management code 121customizing

reportprint difference 151

report formats 24reports

difference, output 45CYCLE 121

D

DASH 126keyword

examples 131DATA 96

about 64comparing records 35comparison logic 90, 96

or TEXT, decisions 53file synchronization keywords 63keyword

defined 416or TEXT comparison 25records

ascending 68descending 68

synchronization 90No Fields 151DATA keyword

User’s Guide 425

Page 426: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Index

about 75data sets

directory-embedded 102, 109, 117, 141database

flat file 152unloading to a flat file 152

databasesenvironment 321out of sequence 68synchronizing 254

DATACOM 226database processing 226

DB2 227database processing 228

DB2 comparisonsbatch 206batch JCL for DB2SMPL example 210batch Rexx interface 197Boolean operators 203column options 202column selection 202comparison report 206, 212CPX$ISPF interface module 198CPXIFACE interface and 197DB2 data files 206edit generated SQL statements 205editing generated SQL statements 205FIELD keywords 208functionality 197generating SQL statements 204ISPF interface 197, 198limitations 212limiting number of rows to select 205line commands for columns 202long names 197, 198native support for 197O/A field 203owner data entry 200performance optimization 198predicate field 203Rexx example 206Rexx interface 197SQL queries and 197SQL queries for dynamic input 197subsystem ID 200subsystem requirements 198table name data entry 200table names data entry 199table selection 199WHERE predicates 203work files 206

DB2 connection in Rexx 207DBMS, defined 416DCB, defined 416DDNAME 85, 214, 215DECIMAL 126, 131, 138

decimal codes 411defaults

comparison logic 25display processing 32installation 30, 347processing

input 31modify parameters 85output 32TEXT files 31

defining variables 411definitions, environment 26DELETE 148

keywordexamples 158

delimitersslash-asterisk (/*) 84

delta deck 147, 259, 323control cards, generating 156examples 159options 259

Change Man format 262Librarian format 260multiple decks 266

reverse 325delta deck option 259delta deck, defined 416DESEN 91, 99, 376DESENs

unusable 75desensitize

live production dataexamples 324, 334

desensitize, defined 416DIF

O N E 46T W O 46

difference report 22, 29, 35, 37, 65, 87, 125, 327, 329, 330, 331

abbreviating 143all-defaults 128

with DATA 128customizing output 45modifying 46, 129PRINT options 146reports

differencereview tools 37

TEXT defaults 46with major changes 47

difference report, defined 416differences

determining in context with rest of file 52differing

FIELDs 46records 46, 151

426 Serena® Comparex® 8.7 for z/OS

Page 427: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Index

DIF literal 46identifying 150identifying extra records 152identifying with FILTERs 152identifying with TEXT comparison 152

DIR=HFS 101DIR=HFS keyword 178directives

line 264update 263

DIRECTORY 100, 224directory

statistics 266directory comparisons

Panvalet versus PDS 179z/OS Unix 178

DIRECTORY, defined 417directory-embedded

data sets 102, 109, 117, 141files 38

displacements 105, 129values 87

display processingdefaults 32keywords 37, 125

display processing keywords 125disregard inserted records 318ditto format 133DL/1 233, 254DMS DASD management system 236DSORG 148DSPRINT 411DUMMY 64DUMMY file 150DUMMY, defined 417dump format 140duplicate KEY 65

E

EBCDIC 126, 132translate table 37, 129, 132

EBCDIC character encoding 94EBCDIC translate table

COMPAREE 131ECHO 249editing batch jobs 179effective

communications about systems requirements332

testingof requested modifications 332

effective testing 327END 103, 104, 234

keyword

defined 417end of data on SYSIN 85end of file 46

premature 104end-of-job

counts 53processing 38record count 161, 163statistics 29

environment definitions 26ERROR? 34, 85, 128, 137, 343ESDS, defined 417examples

audit PDS libraries 320COBOL source code changes 319compare JCL libraries 321complex filtering 319delta deck in Change Man format audit trail

323desensitize live production data 324disregard inserted records 318exclusive filters 317filter out

all but certain records 318and filter in 318one record 318

filteringcomplex 319

FILTERswith TEXT 319

filtersexclusive 317

find latest versions 322IDENTITYs and FIELDs 319IEBUPDTE formatting of audit trail 322regression test

in database environment 321reverse delta deck 325select

one account 317two accounts 317

excess bytes 74, 145exclusive

filters 317exclusive keywords 89exits

CPXEXIT 95JOSEFINE 242

EXPAND keyword 101, 178expected results are not met 334extra

records 46, 69, 71, 150, 152segments 69

User’s Guide 427

Page 428: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Index

F

fade-in 56fade-out 56FASTPATH 233FIELD 36, 87, 90, 91, 100, 104, 137, 319, 376

keyworddefined 417

with formats 115FIELD keyword 82FIELDs

compareequal 66, 69, 72unequal 66, 70, 73

differing 46unusable 75using 66, 69, 72

filesynchronization keywords, DATA 63

filesattributes 265directory-embedded 38DUMMY 64, 150end of 46input 29opened 34out of sequence 65output 29synchronization 75

FILTER 87keyword

defined 417filter out

all but certain records 318and filter in 318one record 318

FILTERIN 88, 89, 108, 109, 318, 319examples 317, 318

filteringcomplex 319keywords 38, 87short records 363

filtering, defined 417FILTEROUT 88, 89, 110, 318

examples 318FILTERs

with TEXT 319filters

exclusive 317FILTORIN 88, 89, 110, 319

examples 317FILTOROUT 88, 89, 111, 318flat file 331

database 152flat file, defined 420FLDSONLY 37, 126

FOCUS 237foreground run 42FORMAT 37, 76, 126, 132

examples 194keyword

examples 135formating

audit trail 322, 323formats

binary 105character 76, 105ditto 133dump 140packed 105type

IEBUPDTE 156MEMBER 154

with FIELD 115zoned 105

formatted screens (PANELS)for ISPF sessions 23

formattingoptions, COPYDIFF 153

FRAME 36, 44, 55, 73keyword

defined 417examples 55

free-form keywords 176FULL,with PRINT 346functional manager 331, 332

G

GDG (Generation Data Group) 211GEM 213

example 216generating

delta deck control cards 156version, month, and day 155

generating CPXIFACE into CPXDATCM 227GENFLDS 126, 137

keyworddefined 417

statement printout 37Global Data Area 221GO command 198groups

periodic 221

H

HALT 32, 85, 126, 137, 343, 346HALT with NO 344HDAM 233

428 Serena® Comparex® 8.7 for z/OS

Page 429: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Index

Heading 4IEBUPDTE Format Type 156

HELP 38, 84keyword

defined 418HELP messages 344HEX 126, 138HIDAM 233Hierarchical File System (HFS) 178

directory comparisons 178long names 178

Hierarchical File System (HFS) filesspecifying in ISPF 173

HISAM 233

I

IAM 239IDCAMS, defined 418IDENTITY 36, 87, 90, 91, 92, 100, 111, 112, 137,

319, 376keyword

defined 418IDENTITYs

unusable 75IDMS 240IEBUPDTE 154, 156, 322

format type 156ignore sign differences 138IGNORSIN 114, 126, 138

keywordexamples 139

IKJEFT01 module 198image copy 228, 233IMS, defined 418INCLUDE 120inclusive keywords 89incorrect keywords 85INFO 357INFO feedback 213input files 29input processing

defaults 31keywords 81, 87, 93

INSERT 148, 157keyword

examples 157inserted records 150installation

considerations 227defaults 30, 347

installation considerations 227integrity 266Interfaces

FOCUS 237

interfaces 213ADABAS 218all DBMS products 218CAMLIB 224CINCOM 223DATACOM 226DL/1 233DMS 236GEM 213IAM 239Librarian 213OWL 247Panvalet 213RAMIS II 248roll your own 252ROSCOE 250WYLBUR 251

interfaces IDMS 240INTERLEAVE (ILV) 37, 126, 139

keywordexamples 139

Introduction 21, 197ISAM 218, 233ISAM, defined 418ISPF interface

CPX$ISPF module 198module CPX$ISPF 165module CPXPARSE 165

ISPLINK 411ISPTLIB 411

concatenation 412

J

JCLlibraries, compare 321running 42sample run 41

JCL, defined 418job initialization messages 125JOSEFINE 242

K

KEY 64, 75, 87, 218, 329, 331, 348ascending 67descending 67duplicate 65equal 65examples 65goes beyond record 66intermediate 65keyword

defined 418

User’s Guide 429

Page 430: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Index

examples 76major 75maximum 65no match on for

SYSUT1 67SYSUT2 67

Random 65, 68records matched on 66synchronization 38, 65, 90, 328

mismatch 65, 67, 151synchronization mismatch 67

KEY1 77KEY2 77KEYLEN, defined 418KEYs

maximum 75minor 75

KEYSONLY 126, 133, 139, 346keyword, defined 418keywords

about 23, 33, 35, 39, 81, 84A-IDENTITY 113ASCII 125BUFF 36, 44, 54, 74

defaults 46BUFF (buffer) 46CASE 125, 130coding 305CONTINUE 87, 95COPYDIFF 148, 152copyfile, about 147COPYSAME 147, 161COPYSPLIT 162CPXIFACE 96cumulative 40DASH 126DATA 96DATA file synchronization 63DECIMAL 126, 131DELETE 148DESEN 91, 99DIRECTORY 100, 224display processing 37, 125EBCDIC 126, 132END 103, 234examples 305exclusive 89FIELD 87, 90, 91, 100, 104FILTER 87FILTERIN 88, 89, 108filtering 38, 87, 88FILTEROUT 88, 89, 110FILTORIN 88, 89, 110FILTOROUT 88, 89, 111FLDSONLY 126form of 88

FORMAT 37, 126FRAME 36, 44, 55, 73GENFLDS 126, 137HALT 126HELP 38, 84HEX 126, 138IDENTITY 36, 87, 90, 91, 92, 100, 111, 112IGNORSIN 114, 126, 138inclusive 89incorrect 85input processing 81, 87, 93INSERT 148, 157INTERLEAVE (ILV) 126, 139KEY 64, 87, 218, 329, 331KEY1 77KEY2 77KEYSONLY 126, 139KILLECHO 127, 139KILLRC 127, 140KILLSPIE 127, 140LINE 37, 127, 140LINELIM 37, 127, 141MASK 87, 90, 91, 92, 100, 114, 328MATCH 145MAXDIFF 37, 53, 74, 127, 128, 141, 151MAXMATCH 142MBRHDR 127, 142MISMATCH 145MLC 36, 44, 55, 73, 74

defaults 45MODE 116mutually exclusive pairs 40NIBBLE 37, 127, 143none specified 30optional 22PAGE 37, 127, 144PLUS 37, 127PRINT 36, 37, 44, 56, 127REPLACE 148SCAN 117SEGMENT 64, 77, 87, 218, 329, 331SKIPUT1 86, 118SKIPUT2 86, 118SQUEEZE 36, 44, 45, 56, 73STOPAFT 35, 87, 119, 371SYSUT1 119SYSUT2 122SYSUT3 147SYSUT3A 147, 149SYSUT3B 147, 149SYSUT3C 147, 149SYSUT3D 147, 149SYSUT3E 147, 149TEXT 43, 44, 56

about 53WILDCARD 89, 122

430 Serena® Comparex® 8.7 for z/OS

Page 431: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Index

KILLECHO 127, 139KILLRC 127, 140, 346

keywordexamples 140

KILLSPIE 127, 140, 382KSDS, defined 418

L

large printouts 128latest versions, find 322legend 18Librarian 213LINE 37, 127, 129, 139, 140

keywordexamples 141

line directives 264LINELIM 37, 127, 141literals

ASCII 348DATA 372DECIMAL 348DIF

O N E 46T W O 46

DIFFERENCE 129EBCDIC 348END 371ERROR? 34, 85, 128, 137, 343HEX 348O N E 129T W O 129TEXT 372

LLBB, defined 420locate command 405logic

AND 89OR 89, 110

logicaltest 68

long table and column names 199, 208

M

majorchanges 47

major logical steps 29management

codecurrent 121

systems, DMS DASD 236manager

functional 331, 332programming 331, 332

managing stepsapproval for the test plan 332develop a test plan 332expected results 334functional department approval 334generating test data 333set down requirements in writing 332specifications 335

MANTIS 223MASK 36, 87, 90, 91, 92, 100, 114, 137, 328

keyworddefined 418

MASTER 121MASTIN 121MATCH 145MATCH,with MBRHDR 346MATCH,with PRINT 346matching

physical-record to physical-record 64records, copying 161synchronization

KEY 64SEGMENT 64

MAXDIFF 37, 53, 74, 95, 102, 127, 128, 141, 151keyword

defined 419examples 142

limit 141MAXMATCH 142

keyworddefined 419examples 142

MBRHDR 127, 142, 346MEMBER 221, 224

format type 154options 214

memberpassword 155

member, defined 419members

counts 75CPXINOPT 411resequence 155

message CPX051 346message CPX05I 346message CPX061 347message CPX06I 347messages 343

about 343CPX00I 34, 84, 85, 128, 343CPX01I 344CPX02A 30, 345CPX03I 345CPX03I through CPX12I 34CPX03I through CPX19I 85CPX04I 141, 222, 346

User’s Guide 431

Page 432: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Index

CPX04I through CPX25I 125CPX05I 145, 346CPX06I 347CPX07I 347CPX08I 130, 138, 144, 146, 348CPX09I 86, 349CPX10I 349CPX11I 143, 144, 350CPX12I 91, 93, 350CPX13I 137, 352CPX14I 352CPX15I 352, 354CPX16A 153, 354CPX16I 34, 86, 161, 163, 355CPX18I 67, 356CPX19I 356CPX20I 213, 356CPX21I 34, 86, 217, 357CPX22I 34, 86, 217, 358CPX23I 359CPX24A 50, 51, 359CPX25I 34, 360, 375CPX26I 86, 361CPX27I 361CPX28I 362CPX30A 343, 362CPX31A 217, 252, 362CPX35A 66, 363CPX36A 65, 68, 363CPX37A 69, 363, 364CPX39A 364CPX40A 365CPX41I 365CPX42I 365CPX45A 366CPX51I 67, 70, 71, 73, 95, 129, 366CPX52I 67, 70, 71, 73, 93, 129, 367CPX56I 69, 72, 368CPX57I 69, 72, 368CPX61I 65, 66, 67, 369CPX62I 65, 67, 369CPX64I 68, 70, 71, 370CPX65I 68, 70, 71, 370CPX66A 370CPX67I 87, 141, 371CPX69I 371CPX71I 86, 372CPX71I through CPX80I 125CPX72I 372CPX73I 38, 163, 374CPX74I 74, 131, 144, 374CPX75I 38, 53, 74, 75, 98, 161, 374CPX76I 38, 75, 376CPX77I 38, 377CPX78I 75, 143, 377CPX80I 378

CPX848 405CPX90A 32, 379CPX91A 380CPX92A 380CPX93A 380CPX94A 381CPX97A 381CPX99A 54, 383during processing and end of job 363issued during job initialization 343job initialization 125

MISMATCH 145MISMATCH,with PRINT 346MLC 36, 44, 55, 73, 74

altering 47defaults 45keyword

defined 419examples 56

MODDATE 118MODE 116, 347

default 87keyword

defined 419mode

all-defaults 22, 29, 30modified file

defined 419original file 419SYSUT2 29testline 29, 419, 421

modifying, difference report 129MODTIME 118modules

cobolname1 213CPX$ISPF 411ISPLINK 411

MPP, defined 419MVS Nucleus 97MVS/ESA 54, 217MVS/XA 54, 217

N

Naturalobject code 218source code 218

NIBBLE 37, 127, 143keyword

defined 419NO with HALT 346NO,with MBTHDR 346NOMATCH,with PRINT 346NOMISMATCH 139NOMISMATCH,with PRINT 346

432 Serena® Comparex® 8.7 for z/OS

Page 433: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Index

NULLFILE, defined 419NUM

renumbering under GEM 156number of records 74, 75

O

object codeNatural 221

Online Without Limits (OWL) 247OPEN 357opened files 34optional keywords 22options

delta deck 259MEMBER 214, 221, 224Panvalet format 259

OR logic 89, 110original file

defined 419modified file 419SYSUT1 29testline 29

out of sequencedatabase 68files 65

out-of-synch conditions 75output files 29output processing

defaults 32overlay attribute 97OVLY 97OWL

library processing 247OWL (Online Without Limits) 247

P

packeddecimal format

defined 420packed format 105PAGE 37, 127, 144

keywordexamples 144

pairing records 90for comparison 35

PAM 214, 215PAN#1 213, 260PANDD1 121PANDD3 121PANDD4 121panels

CPXJOBST 177

CPXOPDS1 179CPXOPDSN 179CPXOPFFK 177CPXOPSYK 171CPXREPRT 175CPXSHORT 176

Panvalet 213, 214, 215parameters

defaultprocessing 85

incorrect 85parsing copybooks 180PASS 155PDS

libraries, audit 320PDS versus proprietary structure 263PDS, defined 420PDSE, defined 420periodic groups 221PF key setup 198physical

synchronization mismatch 151physical-record to physical-record 64physical-record-number synchronization 71PLUS 37, 127

keywordexamples 145

premature end of file 104PRINT 36, 37, 44, 56, 102, 127, 139, 346

keywordexamples 141, 146

options 146print difference report, customizing 151printouts, large 128procedure for written communications 332processing

end-of-job 38parameters, default 85steps 29TEXT 91

profilesretrieving from prior session 169saving 168sharing 169using 168

programtesting 327

programming manager 331, 332

Q

QSAM 218, 233QSAM, defined 420

User’s Guide 433

Page 434: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Index

R

RAMIS II 248Random

KEY 65, 68Random KEY 254range

with filters 88, 109RDW, defined 420READ 357reading of records 35records

compareequal 66, 69, 72unequal 70, 73

count, end-of-job 161, 163differing 46, 151

copy differing records, copy 150DIF literal 46identifying 150identifying with FILTERs 152identifying with TEXT comparison 152identifying, extra records 152

equal 45extra 46, 66, 69, 71, 150, 152inserted 150matched 69matched on KEY 66not equal 45number of 74, 75pairing 90pairing for comparison 35reading of 35short, filtering 363size, large 54, 74

regression test 321regression test in database environment 321related publications 18relative line numbers in Change Man format 263relative to one 347relative to zero 347REPLACE 148

keywordexamples 158

report formatcustomizing 24

reportscustomizing output 45difference 22, 29, 35, 37, 65, 87, 125, 327,

329, 330, 331abbreviating 143all-defaults 128all-defaults, with DATA 128defined 416modifying 46, 129PRINT options 146

with major changes 47print difference, customizing 151

requested modifications 332RESEQ 155

examples 155resequence members 155results

unexpected 128return code 411

(0 to 16) 38(4 to 20) 3810 (zero) 140, 37816 (sixteen) 69, 343, 355, 363, 364, 379,

3804 (four) 3788 (eight) 119, 366, 371, 379forced by KILLRC 140

reverse delta deck 325Rexx

batch JCL for DB2SMPL example 210batch JCL to execute Comparex 211comparison report 212DB2 comparisons 206DB2 example 206DSNREXX language extension 207FIELD keywords in DB2 comparisons 208input keyword parameters 208SQL error diagnostics 210

Rexx APIDB2 connection 207

RKP, defined 420roll your own 252ROSCOE 250RRDS, defined 420run

foreground 42JCL sample 41

runaway comparison 53

S

S0C1 through S0CF 382S80A 217, 382same-physical-record-number synchronization

90sample

COBOL code 337JCL run 41

Sample CMNDELTA Report 267SCAN 117, 361scatter attribute 97screen resolution settings 198SCTR 97SEGMENT 64, 75, 77, 87, 139, 218, 329, 331,

376

434 Serena® Comparex® 8.7 for z/OS

Page 435: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Index

control field 68duplicate on same file 68equal 68examples 68, 78match on, mismatch on control field 70no match on for

SYSUT1 71SYSUT2 71

starts beyond segment length 69synchronization 38, 67, 90

mismatch 151SEGMENT, defined 420segmenting synchronization mismatch 68, 70,

71segments, extra 69SEGMENTs, unusable 75select

one account 317two accounts 317

SERENA 238SHISAM 233short records, filtering 363SKIPUT1 34, 86, 118SKIPUT2 34, 86, 118SKIPUTs

keywordsdefined 420

source codeNatural 221

source code changes, COBOL 319SPIE 382SQL queries for dynamic input 197SQUEEZE 36, 44, 45, 56, 73

keywordexamples 56

SQUEEZE, defined 421SRCH 357stamp

date and time 154statistics

directory 266end-of-job 29

steps, processing 29STOPAFT 35, 87, 102, 119, 371

keyworddefined 421

synchronization 36, 38, 76, 90files 75KEY 64, 65, 90mismatch

KEY 151physical 151SEGMENT) 151

physical-record-number 71same-physical-record-number 90SEGMENT 64, 67, 68, 90

types of 90when no KEY is clear 52

synchronization, defined 421synchronizing databases 254SYSGEN 412SYSIN 29, 34, 84SYSIN external parameter file 206SYSIN, defined 421SYSPRINT 29, 34

writing of 37SYSPRINT, defined 421System z support 198SYSTEMS 347systems

requirements, effective communications 332testing 330, 331

SYSUT1 29, 119end of data 66, 69, 72keyword

defined 421no match on KEY for 67original file 29

SYSUT2 122end of data 66, 69, 72keyword

defined 421modified file 29no match on KEY for 67

SYSUT3 29, 36, 147, 148examples 152keyword

defined 421writing of 36

SYSUT3A 36, 147, 149SYSUT3B 37, 147, 149SYSUT3C 37, 147, 149SYSUT3D 37, 147, 149SYSUT3E 37, 147, 149SYSUT3x

writing of 36

T

TEMP 155temporary change 155test

data 332, 333, 334logical 68plan 332

testinga program modification 330a single program in a database environment

328, 329a system in a database environment 331effective 327

User’s Guide 435

Page 436: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Index

flowcharts 328managing 331of program and system changes 327systems 330, 331units 328, 331

testlinemodified file 29, 419original file 29see modified file 421

TEXT 43, 44, 56, 63comparing records 36comparison logic 43, 45

advantages 52disadvantages 53or DATA, decisions 53

file processing, defaults 31keyword

about 43, 53defined 421examples 47, 61

or DATA comparison 25processing 91

order of 45with FILTERs 319

TEXT comparison via short cut 176TEXT files

definition 24examples 24

TEXT keywords 43TSO batch module 198types of files you can compare

all members 22CLIST 22control card images 23directories 22documentation 23executable load modules

CSECT parsing or undefined block to block22

ISAM 22job control language (JCL) 22most Database Management Systems

(DBMS) 23object code 22QSAM 22ranges of members 22reports 23selected members 22sequential 22source code 22system intermediate files 22system transaction files 22VSAM 22

U

U4608 411U4708 412U4808 411U4908 412underscores 36, 37, 46, 73, 74, 85, 91, 97, 105,

128, 129, 131, 145, 362unexpected results 128UNICODE character encoding 94UNICODE keyword 127, 146, 178uninitialized data areas 97unit testing 328, 331unloading a database to a flat file 152unusable

DESENs 75FIELDs 75IDENTITYs 75SEGMENTs 75

update directive 263USER 118

V

variablesdefining 411

VERS 155versions, find latest 322vertical hex 133VSAM 218, 233VSAM, defined 422

W

WILDCARD 89, 109, 112, 122, 347keyword

defined 422writing of SYSUT3 36writing of SYSUT3x 36written communications procedure 332WYLBUR 251

Y

Year 2000 106YES,with HALT 346YES,with MBRHDR 346

Z

ZEXPAND function 198zoned

436 Serena® Comparex® 8.7 for z/OS

Page 437: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Index

decimal formatdefined 422

format 105

User’s Guide 437

Page 438: SERENA COMPAREX 8.7 for z/OS - Micro Focus Supportline · SERENA COMPAREX 8.7 for z/OS User’s Guide Serena Proprietary and Confidential Information

Index

438 Serena® Comparex® 8.7 for z/OS