Compare, Call to Convert SYSUT3 - Define Compare Positions |
The SimoTime Home Page |
When data files are transferred or shared between systems the ability to do data file compares and data processing confirmation becomes a requirement. This document and the associated test cases will describe and demonstrate a minimum set of alternatives for the file compare or data validation processes. This suite of programs contains a test case with a call to do record conversion prior to performing the compare function.
The following shows the logic flow of the compare process using the generated COBOL program.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Note-1: ITCOMPD1 is the Item Master File. It is a VSAM, KSDS with 512 byte records. The key starts in Position 1 and is 12 bytes. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Note-2: ITCOMPD2 is a copy of the Item Master File. It may be a Record Sequential or Indexed File with 512 byte records. The Record Sequential file may be created by submitting and executing the ITKAREJ1.jcl member. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Note-3: SYSUT3D3 provides the parameter records that will determine the positions within the records to compare. |
Logic Flow of Compare Process using JCL and Generated COBOL Program |
The following shows the content of a SYSUT3 file with parameters for defining compare position and the type of output.
* ..:....1....:....2....:....3....:....4....:....5....:....6 /COMPARE SYSUT1 pos 1 len 94 SYSUT2 pos 1 len 94 * *SYSLOG DISABLE /SYSLOG ENABLE * *DISPLAY SYSOUT *DISPLAY CONSOLE /DISPLAY NONE
We have made a significant effort to ensure the documents and software technologies are correct and accurate. We reserve the right to make changes without notice at any time. The function delivered in this version is based upon the enhancement requests from a specific group of users. The intent is to provide changes as the need arises and in a timeframe that is dependent upon the availability of resources.
Copyright © 1987-2025
SimoTime Technologies and Services
All Rights Reserved
This section will focus on the test cases (process and procedures) that execute the data file comparison and data file confirmation processes.
Note: The records in the Master File and Test Files contain a date and time stamp. This information is located at positions 95 - 110 of each record. Since this information may be different the test cases will only compare positions 1-94.
This Test Case will attempt a physical compare of the first 94 bytes of each record in an EBCDIC-encoded sequential file and an ASCII-encoded Indexed file. This test case will obviously produce a "Not Equal" result.
| ||||||||||||
Objectives for Test Case One |
Since this test case does a physical compare and the files use different encoding schemas the result will be a "NOT Equal" condition. The compare process will terminate with a user-defined, non-zero return code. Information will be posted to SYSOUT and written to the SYSLOG File.
This Test Case will do a compare of the first 94 bytes of each record in an EBCDIC-encoded sequential file and an ASCII-encoded Indexed file. However, prior to doing the compare a call to a user-defined program will be executed. The user-defined program will convert the EBCDIC-encoded record to ASCII-encoding. The compare should then produce an "Equal" result.
| ||||||||||
Objectives for Test Case Two |
Note: The user-defined program that is called to do the record level conversion from EBCDIC to ASII is generated using SimoTime Technologies.
This test case will show what happens when things go as expected.
| ||||||||
Objectives for Test Case Three |
Note: To create a copy of the Item Master File refer to the ITCOPYJ1.jcl member.
The following shows the content of the SYSOUT file. The write to the SYSOUT device was enabled by the /DISPLAY record in SYSUT3.
* ITCOMPC3 Compare ITEMMAST with SYSUT3 Input v12.10.19 helpdesk@simotime.com * ITCOMPC3 This Data File Compare Member was generated by SimoTime Technologies * ITCOMPC3 Compiled for an ASCII environment... * ITCOMPC3 *...:....1....:....2....:....3....:....4....:....5....:....6 * ITCOMPC3 /COMPARE SYSUT1 pos 1 len 94 SYSUT2 pos 1 len 94 * ITCOMPC3 SYSUT3 at EOF... * ITCOMPC3 Key control is ENABLED... ******************************************************************************** Starting - Compare ITEMMAST with SYSUT3 Input http://www.SimoTime.com ******************************************************************************** * ITCOMPC3 Compare ITEMMAST with SYSUT3 Input v12.10.19 helpdesk@simotime.com * ITCOMPC3 This Data File Compare Member was generated by SimoTime Technologies Conclude - Compare ITEMMAST with SYSUT3 Input 000000007 - Record count for ITCOMPD1 000000007 - Record count for ITCOMPD2 000000000 - All Equal result for compare of existing records 000000000 - All Equal result for compact of existing records Finished - Compare ITEMMAST with SYSUT3 Input http://www.SimoTime.com * ITCOMPC3 Finished - Compare ITEMMAST with SYSUT3 Input * ITCOMPC3 A Data File Compare Program generated by using SimoTime Technologies * ITCOMPC3 Please send all inquires or suggestions to the helpdesk@simotime.com
This test case will show what happens when a "NOT Equal" condition is encountered.
| ||||||||||||
Objectives for Test Case Four |
The following shows the content of the SYSLOG file. The write to the log file was enabled by the /SYSLOG record in SYSUT3.
*** 2013/01/04 22:29:01:69 ******************************************************************************** *** 2013/01/04 22:29:01:69 Starting - Compare ITEMMAST with SYSUT3 Input http://www.SimoTime.com *** 2013/01/04 22:29:01:69 ******************************************************************************** *** 2013/01/04 22:29:01:69 * ITCOMPC3 Compare ITEMMAST with SYSUT3 Input v12.10.19 helpdesk@simotime.com *** 2013/01/04 22:29:01:69 * ITCOMPC3 This Data File Compare Member was generated by SimoTime Technologies *** 2013/01/04 22:29:01:69 ITCOMPD1..000000002(00001:00094) *** 2013/01/04 22:29:01:69 ....:...10....:...20....:...30....:...40....:...50....:...60....:...70....:...80....:...90.... *** 2013/01/04 22:29:01:69 000000000002Rotor ........Each ........)\ *** 2013/01/04 22:29:01:69 3333333333335676722222222222222222222222222222222222222222220001000046662222222222220000800025 *** 2013/01/04 22:29:01:69 0000000000022F4F200000000000000000000000000000000000000000000009000051380000000000000009C0009C *** 2013/01/04 22:29:01:69 .............?.?...................................................../.......................* *** 2013/01/04 22:29:01:70 ITCOMPD2..000000002(00001:00094) *** 2013/01/04 22:29:01:70 ....:...10....:...20....:...30....:...40....:...50....:...60....:...70....:...80....:...90.... *** 2013/01/04 22:29:01:70 000000000002Rotor ........Each ........2. *** 2013/01/04 22:29:01:70 3333333333335676722222222222222222222222222222222222222222220001000046662222222222220000800031 *** 2013/01/04 22:29:01:70 0000000000022F4F200000000000000000000000000000000000000000000009000051380000000000000009C0002C *** 2013/01/04 22:29:01:70 .............?.?...................................................../........................ *** 2013/01/04 22:29:01:70 ============================================================================================## *** 2013/01/04 22:29:01:70 * *** 2013/01/04 22:29:01:70 Conclude - Compare ITEMMAST with SYSUT3 Input *** 2013/01/04 22:29:01:70 000000007 - Record count for ITCOMPD1 *** 2013/01/04 22:29:01:70 000000007 - Record count for ITCOMPD2 *** 2013/01/04 22:29:01:70 000000001 - NOT Equal result for compare of existing records *** 2013/01/04 22:29:01:70 000000000 - All Equal result for compact of existing records *** 2013/01/04 22:29:01:70 ABENDING - Compare ITEMMAST with SYSUT3 Input http://www.SimoTime.com
The process of calculating record counts and user defined check sums is referred to as the confirmation or verification process. The confirmation process is especially useful when transferring data from a Mainframe System to a Linux, UNIX or Windows system. The programs that do confirmation tasks are generated by SimoTime technologies.
| ||||||||||||
Objectives for Test Case Five |
The following shows the content of the SYSOUT file. The write to the SYSOUT device was enabled by the /DISPLAY record in SYSUT3.
* ITEMCHEK Accumulate Totals for Item Master v12.01.11 helpdesk@simotime.com * ITEMCHEK A Program to Calculate Totals was generated by SimoTime Technologies * ITEMCHEK * Compiled for an ASCII environment... * ITEMCHEK ITEM-QTY-ONHAND 377 * ITEMCHEK ITEM-COST 15.07 * ITEMCHEK ITEM-PRICE 31.15 * ITEMCHEK Record count for ITEMMAST 000000007 * ITEMCHEK Program to Calculate Totals generated by using SimoTime Technologies * ITEMCHEK Please send all inquires or suggestions to the helpdesk@simotime.com
This section will focus on the JCL Members that execute the file compare and file confirm processes. The compare process will compare the content of two data files on a record-by-record basis. The confirm process will read a data file and accumulate check sums for user-defined numeric fields.
The first JCL Member will compare two files that contain the same business information but use different encoding schemas.
The second JCL Member will compare two files that have a difference embedded within the files. The Data File Compare program will find the difference and produce a NOT-Equal result.
The third JCL Member will compare two files that have different record counts. The Data File Compare program will identify the difference and produce a NOT-Equal result with record counts.
The fourth JCL Member will compare two files that have a difference embedded within the files. The Data File Compare program will find the difference and produce a NOT-Equal result.
The fifth, sixth and seventh JCL Members will create and compare the Check Sum Files.
The eighth JCL Member will describe and demonstrate how to create a SYSLOG File.
This JCL Member (ITCOMPJ1.jcl) will compare an EBDIC-encoded sequential file with an ASCII-encoded Indexed file. The job execution will abnormally (ABEND) terminate with a non-zero return code. Information will be posted to the SYSOUT device and SYSLOG file.
//ITCOMPJ1 JOB SIMOTIME,CLASS=1,MSGCLASS=0,NOTIFY=CSIP1 //* ******************************************************************* //* ITCOMPJ1.jcl - a JCL Member for Batch Job Processing * //* This JCL Member is provided by SimoTime Technologies * //* (C) Copyright 1987-2019 All Rights Reserved * //* Web Site URL: http://www.simotime.com * //* e-mail: helpdesk@simotime.com * //* ******************************************************************* //* //* Text - Compare the contents of two different item files. //* Author - SimoTime Technologies //* Date - January 24, 1996 //* //* The job will read two input files and compare the records. If the //* records are not equal an entry will be made to a log file. //* //* NOTE: To create or reset the LOG file run SYSLOGJ8.jcl... //* //* This set of programs will run on a mainframe under MVS or on a //* Personal Computer with Windows and Micro Focus Mainframe Express. //* This JCL will also execute with Micro Focus Enterprise Server. //* //* ************ //* * ITCOMPJ1 * //* ********jcl* //* * //* ************ ************ //* * ITCOMPD1 *---*--* ITCOMPC1 * //* ********dat* * ********cbl* //* * * * //* ************ * * * ************ //* * ITCOMPD2 *---* * *-call--* SIMOHEX4 * //* ********dat* * * * ********cbl* //* * * * //* ************ * * * ************ ************ //* * SYSUT3D3 *---* * *-call--* SIMOLOGS *-----* SYSLOG * //* *******pdsm* * ********cbl* ********dat* //* * //* ************ //* * EOJ * //* ************ //* //* Note-1, ITCOMPD1 is a copy of the Item Master File. It is a //* Record Sequential File with 512 byte records. This file //* was created by submitting and executing the ITKAREJ1.jcl //* member. //* Note-2, ITCOMPD2 is the Item Master File. It is a VSAM, KSDS //* with 512 byte records, The key starts in Position 1 and //* is 12 bytes. //* //* ******************************************************************* //* Step 1 Compare the two files, write exceptions to log file... //* //EXECDAT1 EXEC PGM=ITCOMPC1 //ITCOMPD1 DD DSN=SIMOTIME.DATA.ITEMEBC1,DISP=SHR //ITCOMPD2 DD DSN=SIMOTIME.DATA.ITEMMAST,DISP=SHR //SYSUT3D3 DD DSN=SIMOTIME.PDS.PARMLIB(ITCOMPS1) //SYSLOG DD DSN=SIMOTIME.SYSLOG.COMPARE,DISP=SHR //SYSOUT DD SYSOUT=* //
This JCL Member (ITCOMPJ2.jcl) will compare an EBDIC-encoded sequential file with an ASCII-encoded Indexed file. After reading a record from the primary file the record content will be converted from EBCDIC to ASCII. The partial record compare should result in an equal condition.
//ITCOMPJ2 JOB SIMOTIME,CLASS=1,MSGCLASS=0,NOTIFY=CSIP1 //* ******************************************************************* //* ITCOMPJ2.jcl - a JCL Member for Batch Job Processing * //* This JCL Member is provided by SimoTime Technologies * //* (C) Copyright 1987-2019 All Rights Reserved * //* Web Site URL: http://www.simotime.com * //* e-mail: helpdesk@simotime.com * //* ******************************************************************* //* //* Text - Compare the contents of two different item files. //* Author - Simotime Technologies //* Date - January 24, 1996 //* //* The job will read two input files and compare the records. If the //* records are not equal an entry will be made to a log file. //* //* ITCOMPD1 is expected to be an EBCDIC-encoded file. After a read //* the ITMESAR1 program is called to convert the record from EBCDIC //* to ASCII. //* ITCOMPD2 is expected to be ASCII-encoded. //* //* NOTE: To create or reset the LOG file run SYSLOGJ8.jcl... //* //* This set of programs will run on a mainframe under MVS or on a //* personal computer with Windows and Micro Focus Mainframe Express. //* This JCL will also execute with Micro Focus Enterprise Server. //* //* ************ //* * ITCOMPJ2 * //* ********jcl* //* * //* ************ ************ ************ //* * ITCOMPD1 *--*--* ITCOMPC2 *----------------------* SYSOUT * //* *****note-1* * ********CBL* ************ //* * * * //* ************ * * * ************ //* * ITCOMPD2 *--* * *-call--* ITME2AR1 * //* *****note-2* * * * ********cbl* //* * * * //* ************ * * * ************ //* * SYSUT3D3 *--* * *-call--* SIMOHEX4 * //* *******pdsm* * * ********cbl* //* * * //* * * ************ ************ //* * *-call--* SIMOLOGS *--*--* SYSLOG * //* * ********cbl* * ********dat* //* * * //* ************ * ************ //* * EOJ * *--* SYSOUT * //* ************ ************ //* //* Note-1, ITCOMPD1 is a copy of the Item Master File. It is a //* Record Sequential File with 512 byte records. //* Position 1 and is 12 bytes. This file was created by //* submitting and executing the ITKAREJ1.jcl member. //* Note-2, ITCOMPD2 is the Item Master File. It is a VSAM, KSDS //* with 512 byte records, The key starts in Position 1 and //* is 12 bytes. //* //* ******************************************************************* //* STEP 1 Compare the two files, write exceptions to log file... //* //EXECDAT1 EXEC PGM=ITCOMPC2 //ITCOMPD1 DD DSN=SIMOTIME.DATA.ITEMEBC1,DISP=SHR //ITCOMPD2 DD DSN=SIMOTIME.DATA.ITEMMAST,DISP=SHR //SYSUT3D3 DD DSN=SIMOTIME.PDS.PARMLIB(ITCOMPS1) //SYSLOG DD DSN=SIMOTIME.SYSLOG.COMPARE,DISP=SHR //SYSOUT DD SYSOUT=* //
This JCL Member (ITCOMPJ3.jcl) will compare two Indexed Files with the same encoding schema. The partial record compare should result in an equal condition.
//ITCOMPJ3 JOB SIMOTIME,CLASS=1,MSGCLASS=0,NOTIFY=CSIP1 //* ******************************************************************* //* ITCOMPJ3.jcl - a JCL Member for Batch Job Processing * //* This JCL Member is provided by SimoTime Technologies * //* (C) Copyright 1987-2019 All Rights Reserved * //* Web Site URL: http://www.simotime.com * //* e-mail: helpdesk@simotime.com * //* ******************************************************************* //* //* Text - Compare the contents of two different item files. //* Author - Simotime Technologies //* Date - January 24, 1996 //* //* The job will read two input files and compare the records. If the //* records are not equal an entry will be made to a log file. //* //* This set of programs will run on a mainframe under MVS or on a //* personal computer with Windows and Micro Focus Mainframe Express. //* This JCL will also execute with Micro Focus Enterprise Server. //* //* ************ //* * ITCOMPJ3 * //* ********jcl* //* * //* ************ ************ ************ //* * ITCOMPD1 *---*--* ITCOMPC3 *----------------------* SYSOUT * //* *****note-1* * ********CBL* ************ //* * * * //* ************ * * * ************ //* * ITCOMPD2 *---* * *-call--* SIMOHEX4 * //* *****note-2* * * * ********cbl* //* * * * //* ************ * * * ************ ************ //* * SYSUT3D3 *---* * *-call--* SIMOLOGS *--*--* SYSLOG * //* *******pdsm* * ********cbl* * ********dat* //* * * //* ************ * ************ //* * EOJ * *--* SYSOUT * //* ************ ************ //* //* Note-1, ITCOMPD1 is the Item Master File. It is a VSAM, KSDS //* with 512 byte records, The key starts in Position 1 and //* is 12 bytes. //* Note-2, ITCOMPD2 is a copy of the Item Master File. It is a //* VSAM, KSDS with 512 byte records, The key starts in //* Position 1 and is 12 bytes. This file was created by //* submitting and executing the ITCOPYJ1.jcl member. //* //* ******************************************************************* //* STEP 1 Compare the two files, write exceptions to log file... //* //EXECDAT1 EXEC PGM=ITCOMPC3 //STEPLIB DD DSN=SIMOTIME.DEMO.LOADLIB1,DISP=SHR //ITCOMPD1 DD DSN=SIMOTIME.DATA.ITEMMAST,DISP=SHR //ITCOMPD2 DD DSN=SIMOTIME.DATA.ITEXPECT,DISP=SHR //SYSUT3D3 DD DSN=SIMOTIME.PDS.PARMLIB(ITP094D1),DISP=SHR //SYSOUT DD SYSOUT=* //
This JCL Member (ITCOMPJ4.jcl) will compare two Indexed Files with the same encoding schema. One of the records in the Test File has been updated with a new ITEM-PRICE. The partial record compare should result in a "NOT Equal" condition.
//ITCOMPJ4 JOB SIMOTIME,CLASS=1,MSGCLASS=0,NOTIFY=CSIP1 //* ******************************************************************* //* ITCOMPJ4.jcl - a JCL Member for Batch Job Processing * //* This JCL Member is provided by SimoTime Technologies * //* (C) Copyright 1987-2019 All Rights Reserved * //* Web Site URL: http://www.simotime.com * //* e-mail: helpdesk@simotime.com * //* ******************************************************************* //* //* Text - Compare the contents of two different item files. //* Author - Simotime Technologies //* Date - January 24, 1996 //* //* The job will read two input files and compare the records. If the //* records are not equal an entry will be made to a log file. //* //* This set of programs will run on a mainframe under MVS or on a //* personal computer with Windows and Micro Focus Mainframe Express. //* This JCL will also execute with Micro Focus Enterprise Server. //* //* ************ //* * ITCOMPJ4 * //* ********jcl* //* * //* ************ ************ //* * SYSLOGP8 *-----* SYSLOG * //* ********prc* ************ //* * //* ************ ************ //* * ITCOMPD1 *---*--* ITCOMPC3 * //* *****note-1* * ********cbl* //* * * * //* ************ * * * ************ //* * ITCOMPD2 *---* * *-call--* SIMOHEX4 * //* *****note-2* * * * ********cbl* //* * * * //* ************ * * * ************ ************ //* * SYSUT3D3 *---* * *-call--* SIMOLOGS *---* SYSLOG * //* *******pdsm* * ********cbl* ********dat* //* * //* ************ //* * EOJ * //* ************ //* //* Note-1, ITCOMPD1 is the Item Master File. It is a VSAM, KSDS //* with 512 byte records, The key starts in Position 1 and //* is 12 bytes. //* Note-2, ITCOMPD2 is a copy of the Item Master File. It is a //* VSAM, KSDS with 512 byte records, The key starts in //* Position 1 and is 12 bytes. The file has been updated //* to introduce a difference during the compare process. //* This file was created by submitting and executing //* the ITCOPYJ2.jcl member. //* //* ******************************************************************* //* STEP 1 of 2, Allocate a new SYSLOG file. //* // SET DDSYSLOG=SIMOTIME.SYSLOG.ITCOMPJ4 //SYSLOGCT EXEC SYSLOGP8 //* //* ******************************************************************* //* STEP 2 of 2, Execute the compare program. //* Note: when a difference occurs the information will be written to //* the SYSLOG file //* //EXECDAT1 EXEC PGM=ITCOMPC3 //STEPLIB DD DSN=SIMOTIME.DEMO.LOADLIB1,DISP=SHR //ITCOMPD1 DD DSN=SIMOTIME.DATA.ITEMMAST,DISP=SHR //ITCOMPD2 DD DSN=SIMOTIME.DATA.ITCHANGE,DISP=SHR //SYSUT3D3 DD DSN=SIMOTIME.PDS.PARMLIB(ITP094D2),DISP=SHR //SYSLOG DD DSN=SIMOTIME.SYSLOG.ITCOMPJ4,DISP=SHR //SYSOUT DD SYSOUT=* //
This JCL Member (ITNTOTJ1.jcl) will calculate the totals (or Check Sums) for the user-defined numeric fields..
//ITNTOTJ1 JOB SIMOTIME,CLASS=1,MSGCLASS=0,NOTIFY=CSIP1 //* ******************************************************************* //* ITNTOTJ1.jcl - a JCL Member for Batch Job Processing * //* This JCL Member is provided by SimoTime Technologies * //* (C) Copyright 1987-2019 All Rights Reserved * //* Web Site URL: http://www.simotime.com * //* e-mail: helpdesk@simotime.com * //* ******************************************************************* //* //* Text - Calculate Check Sums for the ITEM Master. //* Author - SimoTime Technologies //* Date - January 24, 1996 //* //* This set of programs will run on a mainframe under MVS or on a //* Personal Computer with Windows and Micro Focus Mainframe Express. //* This JCL will also execute with Micro Focus Enterprise Server. //* //* ************ //* * ITNTOTJ1 * //* ********jcl* //* * //* ************ ************ ************ //* * ITEMMAST *-----* ITEMCHEK *-----* SYSOUT * //* *******ksds* ********cbl* ************ //* * * //* * * ************ //* * *-call--* ITEMCSR1 * //* * ********cbl* //* * //* ************ //* * EOJ * //* ************ //* //* ******************************************************************* //* Step 1 of 2, Delete any previously created file... //* //CLEANUP EXEC PGM=IEFBR14 //SYSOUTU1 DD DSN=SIMOTIME.SYSOUT.ITNTOTX1,DISP=(MOD,DELETE,DELETE), // STORCLAS=MFI, // SPACE=(TRK,5), // DCB=(RECFM=FB,LRECL=121,BLKSIZE=121,DSORG=PS) //* //* ******************************************************************* //* Step 2 of 2, Calculate Check Sums for the Modified Item File... //* //CHECKSUM EXEC PGM=ITEMCHEK //SYSOUT DD DSN=SIMOTIME.SYSOUT.ITNTOTX1,DISP=(NEW,CATLG,CATLG), // STORCLAS=MFI, // SPACE=(TRK,5), // DCB=(RECFM=FB,LRECL=121,BLKSIZE=121,DSORG=PS) //STEPLIB DD DSN=SIMOTIME.PDS.LOADLIB,DISP=SHR //ITEMMAST DD DSN=SIMOTIME.DATA.ITEMMAST,DISP=SHR //
This JCL Member (ITNTOTJ2.jcl) will calculate the totals (or Check Sums) for the user-defined numeric fields.
//ITNTOTJ2 JOB SIMOTIME,CLASS=1,MSGCLASS=0,NOTIFY=CSIP1 //* ******************************************************************* //* ITNTOTJ2.jcl - a JCL Member for Batch Job Processing * //* This JCL Member is provided by SimoTime Technologies * //* (C) Copyright 1987-2019 All Rights Reserved * //* Web Site URL: http://www.simotime.com * //* e-mail: helpdesk@simotime.com * //* ******************************************************************* //* //* Text - Calculate Check Sums for an ITEM File. //* Author - SimoTime Technologies //* Date - January 24, 1996 //* //* This set of programs will run on a mainframe under MVS or on a //* Personal Computer with Windows and Micro Focus Mainframe Express. //* This JCL will also execute with Micro Focus Enterprise Server. //* //* ************ //* * ITNTOTJ2 * //* ********jcl* //* * //* ************ ************ ************ //* * ITEMMAST *-----* ITEMCHEK *-----* SYSOUT * //* *******ksds* ********cbl* ************ //* * * //* * * ************ //* * *-call--* ITEMCSR1 * //* * ********cbl* //* * //* ************ //* * EOJ * //* ************ //* //* ******************************************************************* //* Step 1 of 2, Delete any previously created file... //* //CLEANUP EXEC PGM=IEFBR14 //SYSOUTU2 DD DSN=SIMOTIME.SYSOUT.ITNTOTX2,DISP=(MOD,DELETE,DELETE), // STORCLAS=MFI, // SPACE=(TRK,5), // DCB=(RECFM=FB,LRECL=121,BLKSIZE=121,DSORG=PS) //* //* ******************************************************************* //* Step 2 of 2, Calculate Check Sums for the Modified Item File... //* //CHECKSUM EXEC PGM=ITEMCHEK //STEPLIB DD DSN=SIMOTIME.PDS.LOADLIB,DISP=SHR //SYSOUT DD DSN=SIMOTIME.SYSOUT.ITNTOTX2,DISP=(NEW,CATLG,CATLG), // STORCLAS=MFI, // SPACE=(TRK,5), // DCB=(RECFM=FB,LRECL=121,BLKSIZE=121,DSORG=PS) //ITEMMAST DD DSN=SIMOTIME.DATA.ITCHANGE,DISP=SHR //
This JCL Member (ITNTOTJ3.jcl) will compare the two Check Sum Files. The results should be posted to the SYSLOG File. for the user-defined numeric fields.
//ITNTOTJ3 JOB SIMOTIME,CLASS=1,MSGCLASS=0,NOTIFY=CSIP1 //* ******************************************************************* //* ITNTOTJ3.jcl - a JCL Member for Batch Job Processing * //* This JCL Member is provided by SimoTime Technologies * //* (C) Copyright 1987-2019 All Rights Reserved * //* Web Site URL: http://www.simotime.com * //* e-mail: helpdesk@simotime.com * //* ******************************************************************* //* //* Text - Compare the contents of two Check Sum Files. //* Author - SimoTime Technologies //* Date - January 24, 1996 //* //* The job will read two input files and compare the records. If the //* records are not equal an entry will be made to a log file. //* //* NOTE: To create or reset the LOG file run SYSLOGJ8.jcl... //* //* This set of programs will run on a mainframe under MVS or on a //* Personal Computer with Windows and Micro Focus Mainframe Express. //* This JCL will also execute with Micro Focus Enterprise Server. //* //* ************ //* * ITNTOTJ3 * //* ********jcl* //* * //* ************ //* * IEFBR14 * //* ********utl* //* * //* ************ ************ ************ //* * ITNTOTX1 *---*--* ITNTOTV3 *----------------------* SYSOUT * //* ********dat* * ********cbl* ************ //* * * * //* ************ * * * ************ //* * ITNTOTX2 *---* * *-call--* SIMOHEX4 * //* ********dat* * * ********cbl* //* * * //* * * ************ ************ //* * *-call--* SIMOLOGS *-----* SYSLOG * //* * ********cbl* ********dat* //* * //* ************ //* * EOJ * //* ************ //* //* Note-1, ITNTOTX1 is a Sequential file that was produced by a //* generated Check Sum Program. The record size is 121 //* bytes. //* Note-2, ITNTOTX2 is a Sequential file that was produced by a //* generated Check Sum Program. The record size is 121 //* bytes. //* //* ******************************************************************* //* Step 1 Compare the two files, write exceptions to log file... //* //EXECDAT1 EXEC PGM=ITNTOTV3 //ITNTOTX1 DD DSN=SIMOTIME.SYSOUT.ITNTOTX1,DISP=SHR //ITNTOTX2 DD DSN=SIMOTIME.SYSOUT.ITNTOTX2,DISP=SHR //SYSLOG DD DSN=SIMOTIME.SYSLOG.COMPARE,DISP=SHR //SYSOUT DD SYSOUT=* //
The Compare and Confirm process have an option to write program execution results to a log file. This log file is a sequential file with variable length records. The file is continually added to as compare or confirm programs are executed. A user may create or reset a log file by using the following JCL Member and JCL Procedure.
This JCL Member (SYSLOGV8.jcl) will create a new log file.
//SYSLOGV8 JOB SIMOTIME,CLASS=1,MSGCLASS=0,NOTIFY=CSIP1 //* ******************************************************************* //* SYSLOGV8.jcl - a JCL Member for Batch Job Processing * //* This JCL Member is provided by SimoTime Technologies * //* (C) Copyright 1987-2019 All Rights Reserved * //* Web Site URL: http://www.simotime.com * //* e-mail: helpdesk@simotime.com * //* ******************************************************************* //* //* Text - Create a new SYSLOG file. //* Author - SimoTime Technologies //* Date - January 24, 1996 //* //* ******************************************************************* //* Delete and Define a New SYSLOG file... //* // SET DDSYSLOG=SIMOTIME.SYSLOG.COMPARE //CRTLOGS1 EXEC SYSLOGP8 //
This JCL Procedure (SYSLOGP8.prc) is used to create a new log file.
//* ******************************************************************* //* SYSLOGP8.prc - a JCL Procedure Batch Job Processing * //* This JCL Procedure is provided by SimoTime Technologies * //* (C) Copyright 1987-2018 All Rights Reserved * //* Web Site URL: http://www.simotime.com * //* e-mail: helpdesk@simotime.com * //* ******************************************************************* //* //* Subject: Create a Sequential File with Variable Length Records //* Author: SimoTime Technologies //* Date: January 1,1998 //* //* This PROC needs the &DDSYSLOG defined by the calling JCL member... //* // SET DDSYSLOG=AAAA.BBBB.CCCC //* // EXEC SYSLOGP8 //* //* The 1st job step (DELETES1) will delete a previously created //* file. //* The 2nd job step (NEWCATS1) will create a new file. //* //* Note: The LRECL is four (4) bytes bigger than the logical record //* that is defined in the program that writes to SYSLOG. This //* allows for the four (4) byte Record Descriptor Word (RDW) //* that is appended to the front of each record. The program //* defines the records as varying in size from 64 to 1,051. //* Note: It is necessary to pre-allocate the SYSLOG file. The program //* that does the actual file compare will do an "OPEN EXTEND". //* If the file is not pre-allocated, an open error will be //* posted and the program will execute but will only display //* truncated information to SYSOUT. //* //********************************************************************* //SYSLOGP8 PROC //* //* ******************************************************************* //* Step 1 of 2, Delete a previously created log file //* //JOBSETUP EXEC PGM=IEFBR14 //SYSUT2 DD DSN=&DDSYSLOG,DISP=(MOD,DELETE,DELETE), // STORCLAS=MFI, // SPACE=(TRK,5), // DCB=(RECFM=V,LRECL=1055,DSORG=PS) //* //* ******************************************************************* //* Step 2 of 2, Create a new RSEQ file with variable length records //* //NEWCATS1 EXEC PGM=IEFBR14 //SYSOUT DD SYSOUT=* //SYSUT2 DD DSN=&DDSYSLOG, // DISP=(NEW,CATLG,DELETE), // STORCLAS=MFI, // SPACE=(TRK,5), // DCB=(RECFM=V,LRECL=1055,DSORG=PS) //* // PEND //*
This section provides additional detail about Micro Focus Server usage and configuration.
A command file (ENV1BASE.cmd) is called from other command files to set commonly used environment variables. This provides a single point of definition. The following is a listing of the contents of the command file.
@echo OFF rem * ******************************************************************* rem * ENV1BASE.cmd - a Windows Command File * rem * This program is provided by SimoTime Technologies * rem * (C) Copyright 1987-2021 All Rights Reserved * rem * Web Site URL: http://www.simotime.com * rem * e-mail: helpdesk@simotime.com * rem * ******************************************************************* rem * rem * Text - Provide a single point to set common environment variables. rem * Author - SimoTime Technologies rem * Date - January 24, 1996 rem * rem * Set the commonly used environment variables. This is used to provide rem * a single point for managing the commonly used environment variables. rem * set SimoLIBR=c:\SimoLIBR set BASELIB1=c:\SIMOSAM1\DEVL set BASELIB8=c:\SimoSAM8 set BaseWIP1=c:\SimoSAM1\WIP1 set DATAZERO=c:\SIMODATA\DEVL\DATA\ZERO set BASEAPP=%BaseLib1% set BASESYS=%BaseLib1%\SYS1 set BASECAT=%BaseLib1%\DATA set UMAPALIB=%BASECAT%\ASC1 set UMAPELIB=%BASECAT%\EBC1 set SYSLOG=%BASESYS%\LOGS\SYSLOG_USER.DAT set SYSOUT=%BASEAPP%\LOGS\SYSOUT_SIMSAM01.txt set SLZMSG=%BASEAPP%\LOGS\SLZMSG_USER.TXT set PostNOTE=%BASEAPP%\LOGS\JOBLOG_SIMONOTE.TXT set SIMONOTE=%BASEAPP%\LOGS\JOBLOG_SIMONOTE.txt set USERPOST=%BASEAPP%\LOGS\ASSIGNED_USER_POST_FILE.txt if [%1]==[] goto NO_POST set SYSOUT=%BaseLib1%\LOGS\SYSOUT_%1.txt call SIMONOTE "+ ENV1BASE *" call SIMONOTE "+ ENV1BASE ********************************************************************%1" call SIMONOTE "+ ENV1BASE is preparing the System Environment..." call SIMONOTE "+ SIMOLIBR is %SIMOLIBR%" call SIMONOTE "+ MIFOSYS1 is %MIFOSYS1%" call SIMONOTE "+ BASELIB1 is %BASELIB1%" :NO_POST call SIMONOTE "+ SIMONOTE Job Log File is %SIMONOTE% " rem * set MQBASE=C:\Program Files\IBM\WebSphere MQ rem * rem * Set the location for the Apache-Tomcat Server... set CATALINA_HOME=C:\APACHETC\apache-tomcat-7.0.52 rem set CATALINA_HOME=C:\Program Files (x86)\Java\jdk1.8.0_112 rem * rem * Set the Environment for the Java Environment... rem set JAVABASE=C:\APACHETC\apache-tomcat-7.0.52 set JAVABASE=C:\Program Files (x86)\Java\jdk1.8.0_112 set JAVASDK="%JAVABASE%\bin" set JAVA_HOME=%JAVABASE% set JRE_HOME=%JAVABASE% set SIMOTCAT=%CATALINA_HOME%\webapps\simotcat set SIMPACKS=%CATALINA_HOME%\webapps\simotcat\WEB-INF\classes\simpacks rem * rem * Set the environment for the Micro Focus technology... set MIFOEDEV=C:\Program Files (x86)\Micro Focus\Enterprise Developer set MIFOVCBL=C:\Program Files (x86)\Micro Focus\Visual COBOL Build Tools set MIFOESTU=C:\Program Files (x86)\Micro Focus\Studio Enterprise Edition 6.0 set MIFOEMFE="C:\Program Files (x86)\Micro Focus\Mainframe Express" rem * rem * Large file support, performance tuning and record locking of the File Handler set EXTFH=%BASESYS%\CONFIG\EXTFHBIG.CFG rem * rem * For IMS Support set ES_IMSLIB=%BASEAPP%\IMSLIB set ES_ACBLIB=%BASEAPP%\IMSLIB rem * rem * EZASOKETS Check EZASOKETS Enabled box or set ES_EZASOKET_SUPPORT=YES set EZACONFG=BASESYS1\CONFIG\EZACONFG.dat rem * rem * Resource Allocation and Performance for SORT and non-Relational Data rem set MFJSENGINE=SYNCSORT set SORTSCHEME=1 set SORTSPACE=750000000 set TMP=C:\SORTWORK rem * set ES_ALLOC_OVERRIDE=%BASESYS%\CONFIG\CATMAPA1.cfg rem * For CORE_ON_ERROR function, ABEND Dump rem * set COBCONFIG_=%BASESYS%\CONFIG\diagnose.cfg rem * rem * Consolidated Trace Facility (CTF) rem * set MFTRACE_CONFIG=%BASESYS%\CONFIG\ctf.cfg rem * set MFTRACE_LOGS=c:\ctflogs rem * rem * For Job Restart, ABEND Recovery set MF_UCC11=Y set ES_JES_RESTART=Y rem * rem * Set environment for MFBSI (Micro Focus Batch Scheduling Interface) set ES_EMP_EXIT_1=mfbsiemx set MFBSI_DIR=%BASESYS%\LOGS\%JESSERVERNAME% set MFBSIEOP_CMD=ENABLE set MFBSIEOP_CSV=ENABLE set MFBSIEOP_HTM=ENABLE set MFBSIEOP_XML=ENABLE rem * rem * Set Behavior and Trace Flags for GETJOBDD rem * Position=12345678/12345678 set JDDFLAGS=nnnWnnnn/YYnnnnnn rem * rem * If not already set then set the PATH for Micro Focus Directories if "%SIMOPATH%" == "Y" goto JUMPPATH if "%MIFOSYS1%" == "EDEV" goto JUMPEDEV if "%MIFOSYS1%" == "VCBL" goto JUMPVCBL if "%MIFOSYS1%" == "ESTU" goto JUMPESTU if "%MIFOSYS1%" == "EMFE" goto JUMPEMFE :JUMPEDEV set path=%BASESYS%\LOADLIB;%MIFOEDEV%\bin;%JAVASDK%;%BASEAPP%\JAVA;%PATH%; set CobCpy=%BASEAPP%\CobCpy1;%BASEAPP%\CobCpy2;%BASEAPP%\CobCpy6;%SimoLIBR%;%MIFOEDEV%\CPYLIB set MIFOBASE=%MIFOEDEV% goto JUMPPATH :JUMPVCBL set path=%MIFOVCBL%\bin;%MIFOVCBL%;%JAVASDK%;%BASEAPP%\JAVA;%PATH%; set MIFOBASE=%MIFOVCBL% goto JUMPPATH :JUMPESTU set MIFOBASE=%MIFOESTU%\Base set MIFOBIN=%MIFOBASE%\bin set path=%BASESYS%\LOADLIB;%MIFOBASE%;%MIFOBIN%;%JAVASDK%;%BASEAPP%\JAVA;%PATH%; set CobCpy=%BASEAPP%\CobCpy1;%BASEAPP%\CobCpy2;%BASEAPP%\CobCpy6;%SimoLIBR%;%MIFOBASE%\SOURCE goto JUMPPATH :JUMPEMFE set MIFOBASE=%MIFOEMFE%\Base set MIFOBIN=%MIFOBASE%\bin set path=%BASESYS%\LOADLIB;%MIFOBASE%;%MIFOBIN%;%JAVASDK%;%BASEAPP%\JAVA;%PATH%; set CobCpy=%BASEAPP%\CobCpy1;%BASEAPP%\CobCpy2;%BASEAPP%\CobCpy6;%SimoLIBR%;%MIFOBASE%\SOURCE goto JUMPPATH rem * :JUMPPATH set SIMOPATH=Y rem * set MAINFRAME_FLOATING_POINT=true set COBIDY=%BASEAPP%\COBIDY set COBPATH=.;%BASEAPP%\LOADLIB;%BASEAPP%\LOADLIB\GNTS;%BASESYS%\LOADLIB;%SimoLIBR% set LIBPATH=.;%BASEAPP%\LOADLIB;%BASEAPP%\LOADLIB\GNTS;%BASESYS%\LOADLIB;%SimoLIBR% set TXDIR=%BASESYS%\LOADLIB;%MIFOBASE% set CobCpy=%BASEAPP%\CobCpy1;%BASEAPP%\CobCpy2;%BASEAPP%\CobCpy6;%SimoLIBR% rem * set USERCLASS=%BASELIB1%\LOADLIB set CLASSPATH=. set CLASSPATH=%CLASSPATH%;%JAVABASE% set CLASSPATH=%CLASSPATH%;%JAVABASE%\lib set CLASSPATH=%CLASSPATH%;\%USERCLASS%\simpacks set CLASSPATH=%CLASSPATH%;C:\APACHETC\apache-tomcat-7.0.52\webapps\simotcat\WEB-INF\classes set CLASSPATH=%CLASSPATH%;C:\APACHETC\apache-tomcat-7.0.52\webapps\simotcat\WEB-INF\classes\simpacks rem * if "%MIFOSYS1%" == "ESTU" set CLASSPATH=%CLASSPATH%;%MIFOBIN% if "%MIFOSYS1%" == "EDEV" set CLASSPATH=%CLASSPATH%;%MIFOEDEV% if "%MIFOSYS1%" == "VCBL" set CLASSPATH=%CLASSPATH%;%MIFOVCBL% if "%MIFOSYS1%" == "VCBL" set CLASSPATH=%CLASSPATH%;%MIFOVCBL%\bin\mfcobol.jar rem * set JobStatus=0000 call SIMONOTE "+ ENV1BASE is returning to caller"
The following is a listing of the contents of the SimoNOTE.cmd command file. This command will display a message to the screen and write a "Date/Time stamped" message to a log file.
@echo OFF rem * ******************************************************************* rem * SIMONOTE.cmd - a Windows Command File * rem * This program is provided by SimoTime Technologies * rem * (C) Copyright 1987-2019 All Rights Reserved * rem * Web Site URL: http://www.simotime.com * rem * e-mail: helpdesk@simotime.com * rem * ******************************************************************* rem * rem * Text - Display message on screen and write to a log file. rem * Author - SimoTime Technologies rem * rem * This script may be called from other scripts and expects a single rem * parameter enclosed in double quotes. The double quotes will be rem * removed. Before writing to the log file a date and time stamp rem * will be inserted in front of the message text. rem * rem * Note: The tilde (~) removes leading/trailing double-quotes. rem * if "%SimoNOTE%" == "" set SimoNOTE=c:\SimoLIBR\LOGS\SimoTime.LOG echo %date% %time% %~1>> %SimoNOTE% echo %~1
To execute the test cases will require test data. This section provides the information needed to create the test files.
An Item Master File is required for the Test Cases. The following link will describe and demonstrate how to create a small file for testing purposes.
Explore How to Create and Populate an Item Master File with generic test data. This document describes a simple process for creating test data for an Item Master File. The Item Master file contains variable length records with the minimum and average record length being the same length of 512 bytes. The key starts in the first position of the record and is 12 bytes in length.
The following job (ITCOPYJ1.jcl) uses the REPRO function of IDCAMS to create a copy of the Item Master File.
//ITCOPYJ1 JOB SIMOTIME,ACCOUNT,CLASS=1,MSGCLASS=0,NOTIFY=CSIP1 //* ******************************************************************* //* This program is provided by SimoTime Technologies * //* (C) Copyright 1987-2019 All Rights Reserved * //* Web Site URL: http://www.simotime.com * //* e-mail: helpdesk@simotime.com * //* ******************************************************************* //* //* TEXT - COPY (OR REPRO) THE ITEMMAST FILE //* AUTHOR - SIMOTIME TECHNOLOGIES //* DATE - JANUARY 01, 1989 //* // EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=A //KSDGET01 DD DSN=SIMOTIME.DATA.ITEMMAST,DISP=OLD //KSDPUT01 DD DSN=SIMOTIME.DATA.ITEXPECT, // SPACE=(TRK,(10,1),RLSE), // DISP=(NEW,CATLG,DELETE), // LRECL=512,KEYOFF=0,KEYLEN=12,RECORG=KS //SYSIN DD * REPRO - INFILE(KSDGET01) - OUTFILE(KSDPUT01) /* //*
The following job (ITCOPYJ2.jcl) uses the REPRO function of IDCAMS to create a copy of the Item Master File. A COBOL program is then used to make a pricing change to the copy of the Item Master File.
//ITCOPYJ2 JOB SIMOTIME,ACCOUNT,CLASS=1,MSGCLASS=0,NOTIFY=CSIP1 //* ******************************************************************* //* ITCOPYJ2.jcl - a JCL Member for Batch Job Processing * //* This JCL Member is provided by SimoTime Technologies * //* (C) Copyright 1987-2019 All Rights Reserved * //* Web Site URL: http://www.simotime.com * //* e-mail: helpdesk@simotime.com * //* ******************************************************************* //* //* TEXT - COPY (OR REPRO) THE ITEMMAST FILE //* AUTHOR - SIMOTIME TECHNOLOGIES //* DATE - JANUARY 01, 1989 //* //* ******************************************************************* //* Step 1 of 5, Delete previously created file //* // EXEC PGM=IEFBR14 //KSDPUT01 DD DSN=SIMOTIME.DATA.ITCHANGE, // SPACE=(TRK,(10,1),RLSE), // DISP=(MOD,DELETE,DELETE), // LRECL=512,KEYOFF=0,KEYLEN=12,RECORG=KS //* //* ******************************************************************* //* Step 2 of 5, Create new file using IDCAMS and REPRO... //* // EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=A //KSDGET01 DD DSN=SIMOTIME.DATA.ITEMMAST,DISP=OLD //KSDPUT01 DD DSN=SIMOTIME.DATA.ITCHANGE, // SPACE=(TRK,(10,1),RLSE), // DISP=(NEW,CATLG,DELETE), // LRECL=512,KEYOFF=0,KEYLEN=12,RECORG=KS //SYSIN DD * REPRO - INFILE(KSDGET01) - OUTFILE(KSDPUT01) /* //* //* //* ******************************************************************* //* Step 3 of 5, Delete any previously created file... //* //SQ01DELT EXEC PGM=IEFBR14 //ITEMSQ03 DD DSN=SIMOTIME.DATA.ITEMSQ03,DISP=(MOD,DELETE,DELETE), // STORCLAS=MFI, // SPACE=(TRK,5), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=800,DSORG=PS) //* //* ******************************************************************* //* Step 4 of 5, Create and populate a new QSAM file... //* //ITCSQS01 EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSIN DD DUMMY //* :....1....:....2....:....3....:....4....:....5....:....6....:....7....:....8 //SYSUT1 DD * /PR00000000000203.21 /* //SYSUT2 DD DSN=SIMOTIME.DATA.ITEMSQ03,DISP=(NEW,CATLG,DELETE), // STORCLAS=MFI, // SPACE=(TRK,5), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=800,DSORG=PS) //* //* ******************************************************************* //* Step 5 of 5, Post the Price Change. //* //ITUPDS01 EXEC PGM=ITUPDC01 //STEPLIB DD DSN=MFI01.SIMOPROD.LOADLIB1,DISP=SHR //ITEMSQ01 DD DSN=SIMOTIME.DATA.ITEMSQ03,DISP=SHR //ITEMMAST DD DSN=SIMOTIME.DATA.ITCHANGE,DISP=SHR //*
The following job (ITKAREJ1.jcl) executes a COBOL program to read an Item Master file that is ASCII-encoded Indexed file and write to an EBCDIC-encoded Record Sequential file.
//ITKAREJ1 JOB SIMOTIME,CLASS=1,MSGCLASS=0,NOTIFY=CSIP1 //* ******************************************************************* //* ITKAREJ1.JCL - a JCL Member for Batch Job Processing * //* This JCL Member is provided by SimoTime Technologies * //* (C) Copyright 1987-2019 All Rights Reserved * //* Web Site URL: http://www.simotime.com * //* e-mail: helpdesk@simotime.com * //* ******************************************************************* //* //* Text - Convert Item Master from KSDS-ASCII to RSEQ-EBCDIC. //* Author - SimoTime Technologies //* Date - January 24, 1996 //* //* The job will read an ASCII encoded Item Master File and write //* an EBCDIC encoded Item Sequential File. //* //* This set of programs will run on a mainframe under MVS or on a //* Personal Computer with Windows and Micro Focus Mainframe Express. //* This JCL will also execute with Micro Focus Enterprise Server. //* //* ************ //* * ITKAREJ1 * //* ********jcl* //* * //* ************ //* * IEFBR14 * //* ********utl* //* * //* ************ ************ ************ //* * ITMKA512 *-----* ITKAREC1 *-----* ITMRE512 * //* ********ksd* ********cbl* *******rseq* //* * * //* * * ************ //* * *-call--* ITMA2ER1 * //* * ********cbl* //* * //* ************ //* * EOJ * //* ************ //* //* //* ******************************************************************* //* Step 1, Delete any previously created file... //* //RSEQDELT EXEC PGM=IEFBR14 //ITMRE512 DD DSN=SIMOTIME.DATA.ITEMEBC1,DISP=(MOD,DELETE,DELETE), // STORCLAS=MFI, // SPACE=(TRK,5), // DCB=(RECFM=FB,LRECL=512,DSORG=PS) //* //* ******************************************************************* //* Step 2, Convert the file... //* //EXECDAT1 EXEC PGM=ITKAREC1 //SYSOUT DD SYSOUT=* //STEPLIB DD DSN=SIMOTIME.DEMO.LOADLIB1,DISP=SHR //ITMKA512 DD DSN=SIMOTIME.DATA.ITEMMAST,DISP=SHR //ITMRE512 DD DSN=SIMOTIME.DATA.ITEMEBC1, // DISP=(NEW,CATLG,DELETE), // STORCLAS=MFI, // SPACE=(TRK,5), // DCB=(RECFM=FB,LRECL=512,DSORG=PS) //
The compare and confirm programs used in this suite of test cases were generated by SimoTime technologies. The SimoTime technology requires a baseline of information in order to generate programs. This baseline information is provided in a Process Control File (or PCF file). This following sections of this document will describe the PCF files.
The following PCF file (ITCOMP01.pcf) will generate a program that will compare the records in a sequential file with the records in an indexed file. The positions in the records to be compared will be determined at execution time by using a control or parameter file (SYSUT3).
*********************************************************************** * ITCOMP01.pcf - a Process Control File * * SimoTime Program Generation Technologies * * (C) Copyright 1987-2019 All Rights Reserved * * Web Site URL: http://www.simotime.com * * e-mail: helpdesk@simotime.com * *********************************************************************** * This is an example of the compare specifications to generate a * Data File Comparison Program. *********************************************************************** * * The following group of statements will define the high level * or external functions and processes to be performed. * &SIMOPREP call ../Env1BASE &USERPREP call USERCOMP ©FILE ITEMCB01.CPY &HTMLFILE itemcb01.htm &FUNCTION COMPARE &CONFORM IBM &USRMODEL SYSCOMP1.txt * * The following group of statements will define the behavioral * characteristics and environment variables for the file I/O Program * that will be generated. * *HEAD34 ....:....1....:....2....:....3.... &HEAD34 Compare ITEMMAST with SYSUT3 Input &progid ITCOMPC1 &sysut1 name=ITCOMPD1 org=Sequential recfm=fixed rlen=512 &sysut2 name=ITCOMPD2 org=Indexed recfm=variable rlen=512 klen=12 kpos=1 * * The following statements will determine execution behavior. * The KEYFIELD will cause record INSERT/DELETE to be enabled. * The COMPARE statement is commented because the positions to be * compared are defined at execution time based on parameters * specified in SYSUT3. * &KEYFIELD SYSUT1 pos 1 len 12 SYSUT2 pos 1 len 12 &COMPARE SYSUT1 pos 1 len 94 SYSUT2 pos 1 len 94 * * The following statements determine when to stop the compare process * and what to do when a not-equal condition occurs. * &IFNECODE 0016 &DELTAMAX 2 QUIT * &DFORMAT ASC HEX EBC &DISPLAY SYSOUT &SYSLOG ENABLED * &END
The following PCF file (ITCOMP02.pcf) will generate a program that will compare the EBCDIC-encoded records in a sequential file with the ASCII-encoded records in an indexed file. The positions in the records to be compared will be determined at execution time by using a control or parameter file (SYSUT3).
After reading a record in the EBCDIC-encoded file a user-program will be called to convert the record to ASCII-encoding. The subsequent compare should produce an "Equal" result.
Note: The user-program that does the record content conversion from EBCDIC to ASCII may be generated by SimoTime technologies.
*********************************************************************** * ITCOMP02.pcf - a Process Control File * * SimoTime Program Generation Technologies * * (C) Copyright 1987-2019 All Rights Reserved * * Web Site URL: http://www.simotime.com * * e-mail: helpdesk@simotime.com * *********************************************************************** * This is an example of the compare specifications to generate a * Data File Comparison Program. *********************************************************************** * * The following group of statements will define the high level * or external functions and processes to be performed. * &SIMOPREP call ../Env1BASE &USERPREP call USERCOMP ©FILE ITEMCB01.CPY &HTMLFILE itemcb01.htm &FUNCTION COMPARE &CONFORM IBM &USRMODEL SYSCOMP2.txt * * The following group of statements will define the behavioral * characteristics and environment variables for the file I/O Program * that will be generated. * *HEAD34 ....:....1....:....2....:....3.... &HEAD34 Compare ITEMMAST with SYSUT3 Input &progid ITCOMPC2 &sysut1 name=ITCOMPD1 org=Sequential recfm=fixed rlen=512 &sysut2 name=ITCOMPD2 org=Indexed recfm=variable rlen=512 klen=12 kpos=1 &sysut3 name=SYSUT3D3 org=Sequential recfm=variable rlen=80 * * The following statements will determine execution behavior. * The KEYFIELD will cause record INSERT/DELETE to be enabled. * The COMPARE statement is commented because the positions to be * compared are defined at execution time based on parameters * specified in SYSUT3. * &UT1CALL ITME2AR1 &KEYFIELD SYSUT1 pos 1 len 12 SYSUT2 pos 1 len 12 *COMPARE SYSUT1 pos 1 len 94 SYSUT2 pos 1 len 94 * * The following statements determine when to stop the compare process * and what to do when a not-equal condition occurs. * &IFNECODE 0016 &DELTAMAX 5 EOF &DFORMAT ASC HEX EBC &DISPLAY SYSOUT &SYSLOG ENABLED * &END
The following PCF file (ITCOMP03.pcf) will generate a program that will compare two Indexed Files (or VSAM, KSDS's). The positions in the records to be compared will be determined at execution time by using a control or parameter file (SYSUT3).
*********************************************************************** * ITCOMP03.pcf - a Process Control File * * SimoTime Program Generation Technologies * * (C) Copyright 1987-2019 All Rights Reserved * * Web Site URL: http://www.simotime.com * * e-mail: helpdesk@simotime.com * *********************************************************************** * This is an example of the compare specifications to generate a * Data File Comparison Program. *********************************************************************** * * The following group of statements will define the high level * or external functions and processes to be performed. * &SIMOPREP call ../Env1BASE &USERPREP call USERCOMP ©FILE ITEMCB01.CPY &HTMLFILE itemcb01.htm &FUNCTION COMPARE &CONFORM IBM &USRMODEL SYSCOMP2.txt * * The following group of statements will define the behavioral * characteristics and environment variables for the file I/O Program * that will be generated. * *HEAD34 ....:....1....:....2....:....3.... &HEAD34 Compare ITEMMAST with SYSUT3 Input &progid ITCOMPC3 &sysut1 name=ITCOMPD1 org=Indexed recfm=variable rlen=512 klen=12 kpos=1 &sysut2 name=ITCOMPD2 org=Indexed recfm=variable rlen=512 klen=12 kpos=1 &sysut3 name=SYSUT3D3 org=Sequential recfm=variable rlen=80 * * The following statements will determine execution behavior. * The KEYFIELD will cause record INSERT/DELETE to be enabled. * The COMPARE statement is commented because the positions to be * compared are defined at execution time based on parameters * specified in SYSUT3. * &KEYFIELD SYSUT1 pos 1 len 12 SYSUT2 pos 1 len 12 *COMPARE SYSUT1 pos 1 len 512 SYSUT2 pos 1 len 512 * * The following statements determine when to stop the compare process * and what to do when a not-equal condition occurs. * &IFNECODE 0016 &DELTAMAX 5 EOF &DFORMAT ASC HEX EBC &DISPLAY SYSOUT &SYSLOG DISABLED * &END
The following PCF file (ITEMCHEK.pcf) will generate the programs that will calculate records counts and Check Sums for user-defined numeric fields.
*********************************************************************** * ITEMCHEK.pcf - a Process Control File * * SimoTime Program Generation Technologies * * (C) Copyright 1987-2019 All Rights Reserved * * Web Site URL: http://www.simotime.com * * e-mail: helpdesk@simotime.com * *********************************************************************** * SYSUT1 is the Sequential File with 80-byte records. *********************************************************************** * This Process Control File will be used to generate a set of COBOL * programs that will accumulate totals for user-defined numeric fields * and provide a record count. * Refer to the utconv01.htm document for additional detail. * * The following group of statements will define the high level * functions and processes to be performed. * &SIMOPREP call ..\Env1BASE &USERPREP call UserCOGI &CONFORM IBM ©FILE ITEMCB01.cpy &HTMLFILE itemcb01.htm * * The following group of statements will define the behavioral * characteristics and environment variable for the file I/O Program * to be generated. * *HEAD34 ....:....1....:....2....:....3.... &HEAD34 Accumulate Totals for Item Master &PROGID ITEMCHEK &SYSUT1 name=ITEMMAST org=Indexed recfm=Variable rmin=512 rmax=512 kpos=1 klen=12 * * The following group of statements will define the behavioral * characteristics and environment variables for the record content * conversion program to be generated. * The following defines the name of the callable routine for special * numeric processing. * &NUMCALL ITEMCSR1 &NUMREC ITEM-RECORD * * The following group of statements will define the type of processing * and the name of the numeric fields. * &UT1TOTAL ITEM-QTY-ONHAND &UT1TOTAL ITEM-COST &UT1TOTAL ITEM-PRICE * &END
This document and the associated test cases will describe and demonstrate a minimum set of alternatives for the file compare or data validation processes. This document may be used as a tutorial for new programmers or as a quick reference for experienced programmers.
In the world of programming there are many ways to solve a problem. This documentation and software were developed and tested on systems that are configured for a SIMOTIME environment based on the hardware, operating systems, user requirements and security requirements. Therefore, adjustments may be needed to execute the jobs and programs when transferred to a system of a different architecture or configuration.
SIMOTIME Services has experience in moving or sharing data or application processing across a variety of systems. For additional information about SIMOTIME Services or Technologies please contact us using the information in the Contact or Feedback section of this document.
Software Agreement and Disclaimer
Permission to use, copy, modify and distribute this software, documentation or training material for any purpose requires a fee to be paid to SimoTime Technologies. Once the fee is received by SimoTime the latest version of the software, documentation or training material will be delivered and a license will be granted for use within an enterprise, provided the SimoTime copyright notice appear on all copies of the software. The SimoTime name or Logo may not be used in any advertising or publicity pertaining to the use of the software without the written permission of SimoTime Technologies.
SimoTime Technologies makes no warranty or representations about the suitability of the software, documentation or learning material for any purpose. It is provided "AS IS" without any expressed or implied warranty, including the implied warranties of merchantability, fitness for a particular purpose and non-infringement. SimoTime Technologies shall not be liable for any direct, indirect, special or consequential damages resulting from the loss of use, data or projects, whether in an action of contract or tort, arising out of or in connection with the use or performance of this software, documentation or training material.
This section includes links to documents with additional information that are beyond the scope and purpose of this document. The first group of documents may be available from a local system or via an internet connection, the second group of documents will require an internet connection.
Note: A SimoTime License is required for the items to be made available on a local system or server.
The following links may be to the current server or to the Internet.
Note: The latest versions of the SimoTime Documents and Program Suites are available on the Internet and may be accessed using the icon. If a user has a SimoTime Enterprise License the Documents and Program Suites may be available on a local server and accessed using the icon.
Explore the Principles of Data File Validation. This link includes guidelines for defining requirements and determining the scope of effort for a data validation effort. This effort includes a data file compare process, a technique for accumulating summary totals with a record count and a technique for reading a VSAM, KSDS and producing a hex-dump output based on a list of user-defined keys.
Explore How to Generate a Data File Compare, Validate or Hex-Dump Program using simple specification statements in a Process Control File (PCF). This link to the User Guide includes the information necessary to create a Process Control File and generate the COBOL programs that will do a data file compare, accumulate summary totals with a record count or produce a Hex-Dump of records in a VSAM, KSDS based on a list of user-defined keys. The User Guide contains a list of the PCF statements that are used for the data file compare, validate or dump process.
Explore the Principles of Data File Conversion. This link includes guidelines for defining requirements and determining the scope of effort for a data conversion effort.
Explore How to Generate a Data File Convert Program using simple specification statements in a Process Control File (PCF). This link to the User Guide includes the information necessary to create a Process Control File and generate the COBOL programs that will do the actual data file conversion. The User Guide contains a list of the PCF statements that are used for the data file convert process.
Explore An Enterprise System Model that describes and demonstrates how Applications that were running on a Mainframe System and non-relational data that was located on the Mainframe System were copied and deployed in a Microsoft Windows environment with Micro Focus Enterprise Server.
Explore the COBOL Connection for more examples of COBOL programming techniques and sample code.
Explore an Extended List of Software Technologies that are available for review and evaluation. The software technologies (or Z-Packs) provide individual programming examples, documentation and test data files in a single package. The Z-Packs are usually in zip format to reduce the amount of time to download.
Explore The ASCII and EBCDIC Translation Tables. These tables are provided for individuals that need to better understand the bit structures and differences of the encoding formats.
Explore The File Status Return Codes that are used to interpret the results of accessing VSAM data sets and/or QSAM files.
The following links will require an internet connection.
This suite of programs and documentation is available for download. Link to an Evaluation zPAK Option that includes the program members, documentation and control files.
A good place to start is The SimoTime Home Page for access to white papers, program examples and product information. This link requires an Internet Connection
Explore The Micro Focus Web Site for more information about products (including Micro Focus COBOL) and services available from Micro Focus. This link requires an Internet Connection.
Explore the Glossary of Terms for a list of terms and definitions used in this suite of documents and white papers.
This document was created and is maintained by SimoTime Technologies. If you have any questions, suggestions, comments or feedback please use the following contact information.
1. | Send an e-mail to our helpdesk. |
1.1. | helpdesk@simotime.com. |
2. | Our telephone numbers are as follows. |
2.1. | 1 415 763-9430 office-helpdesk |
2.2. | 1 415 827-7045 mobile |
We appreciate hearing from you.
SimoTime Technologies was founded in 1987 and is a privately owned company. We specialize in the creation and deployment of business applications using new or existing technologies and services. We have a team of individuals that understand the broad range of technologies being used in today's environments. Our customers include small businesses using Internet technologies to corporations using very large mainframe systems.
Quite often, to reach larger markets or provide a higher level of service to existing customers it requires the newer Internet technologies to work in a complementary manner with existing corporate mainframe systems. We specialize in preparing applications and the associated data that are currently residing on a single platform to be distributed across a variety of platforms.
Preparing the application programs will require the transfer of source members that will be compiled and deployed on the target platform. The data will need to be transferred between the systems and may need to be converted and validated at various stages within the process. SimoTime has the technology, services and experience to assist in the application and data management tasks involved with doing business in a multi-system environment.
Whether you want to use the Internet to expand into new market segments or as a delivery vehicle for existing business functions simply give us a call or check the web site at http://www.simotime.com
Return-to-Top |
Compare with Call To Convert, Select Compare Positions at Execution Time |
Copyright © 1987-2025 SimoTime Technologies and Services All Rights Reserved |
When technology complements business |
http://www.simotime.com |