Compare, Call to Convert
SYSUT3 - Define Compare Positions
  Table of Contents  v-16.01.01 - itcomp01.htm 
  Introduction
  Test Cases, Data Validation
  Compare (NE), EBCDIC & ASCII
  Convert Prior to a Compare (EQ)
  Typical Physical Compare (EQ)
  Typical Physical Compare (NE)
  Compute User-Defined Summary Totals
  JCL Members, Data Validation
  1. Compare (NE), EBCDIC & ASCII
  2. Convert Prior to a Compare (EQ)
  3. Typical Physical Compare (EQ)
  4. Typical Physical Compare (NE)
  5. Compute Totals, Master Test File
  6. Compute Totals, Modified Test File
  7. Compare the Test Files
  8. Create a New Log File
  8.1 Batch Job, Create a New Log File
  8.2 JCL Procedure, Create a New Log File
  Ancillary Functions
  Set the Environment
  Display and Log Messages
  Item Files for Testing
  Create a New Item Test File (VSAM/KSDS)
  Make a Copy for a Baseline Reference
  Create a Modified Copy for NE Compare
  Create an EBCDIC-encoded, Sequential File
  Generate Data Validation Programs
  Compare for a Sequential & an Indexed File
  Compare with a User Call to Convert
  Compare for Two Indexed File
  Data Validation, Compute Summary Totals
  Summary
  Software Agreement and Disclaimer
  Downloads and Links
  Current Server or Internet Access
  Internet Access Required
  Glossary of Terms
  Comments or Feedback
  Company Overview
The SimoTime Home Page 

Table of Contents Previous Section Next Section Introduction

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.

                 
ITCOMPJn
jcl
Submit a Job
   
ITCOMPD1
note-1
   
   
ITCOMPCn
cbl
   
   
 
 
 
 
SYSOUT
This is the main program.
   
   
   
ITCOMPD2
note-2
   
   
   
   
   
USEREXIT
cbl
Optional call to a user program
   
   
   
SYSUT3D3
note-3
   
   
   
   
   
SIMOHEX4
cbl
Format hex dump on NOT Equal
   
   
   
   
   
SIMOLOGS
cbl
   
   
SYSLOG
Write to SYSLOG File
   
   
or
EOJ
   
   
SYSOUT
SYSOUT device
 
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-2018
SimoTime Technologies and Services
All Rights Reserved

Table of Contents Previous Section Next Section Test Cases, Data Validation

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.

Table of Contents Previous Section Next Section Compare (NE), EBCDIC & ASCII

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.

Item Description
1 Do a Compare of an EBCDIC-encoded file and an ASCII-encoded File
2 Review the "NOT Equal" results written to SYSOUT and the SYSLOG File
3 Specify the positions within the records to be compared
4 Identify inserted or missing records (triggered by the KEYFIELD specification)
5 Set a limit for the number of non-equal conditions to force an ABEND to the compare process
  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.

Table of Contents Previous Section Next Section Convert Prior to a Compare (EQ)

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.

Item Description
1 Do a Compare of an EBCDIC-encoded file and an ASCII-encoded File.
2 Describe and demonstrate how to convert the encoding schema after a read of the EBCDIC-encoded file.
3 Review the "Equal" results written to SYSOUT. This will include record counts.
4 Specify the positions within the records to be compared.
  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.

Table of Contents Previous Section Next Section Typical Physical Compare (EQ)

This test case will show what happens when things go as expected.

Item Description
1 Do a compare of two ASCII-encoded, Indexed files.
2 Specify the positions within the records to be compared at execution time.
3 Review the "Equal" results written to SYSOUT. This will include record counts.
  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

Table of Contents Previous Section Next Section Typical Physical Compare (NE)

This test case will show what happens when a "NOT Equal" condition is encountered.

Item Description
1 Do a compare of two ASCII-encoded, Indexed files.
2 Specify the positions within the records to be compared at execution time.
3 Specify the output devices to be used to display information and/or write to a log file.
4 Define a unique log file (SYSLOG) for this job. The write to the SYSLOG file is ENABLED in the Process Control file at program generation time/ This may be overridden at program execution time using a /SYSLOG record in the SYSUT3 file.
5 Review the "NOT Equal" results written to SYSLOG. This will include record counts.
  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

Table of Contents Previous Section Next Section Compute User-Defined Summary Totals

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.

Item Description
1 Calculate the number of records in a file.
2 Calculate check sum totals for user-defined numeric fields (a COBOL copy file definition is used when defining the numeric fields).
3 Post the record counts and check sums to SYSOUT
4 Describe how to create a SYSOUT file with a unique name.
5 Describe how to compare two files that contain record counts and check sum total amounts.
  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

Table of Contents Previous Section Next Section JCL Members, Data Validation

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.

Table of Contents Previous Section Next Section 1. Compare (NE), EBCDIC & ASCII

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-2017 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=*
//

Table of Contents Previous Section Next Section 2. Convert Prior to a Compare (EQ)

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-2017 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=*
//

Table of Contents Previous Section Next Section 3. Typical Physical Compare (EQ)

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-2017 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=*
//

Table of Contents Previous Section Next Section 4. Typical Physical Compare (NE)

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-2017 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=*
//

Table of Contents Previous Section Next Section 5. Compute Totals, Master Test File

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-2017 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
//

Table of Contents Previous Section Next Section 6. Compute Totals, Modified Test File

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-2017 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
//

Table of Contents Previous Section Next Section 7. Compare the Test Files

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-2017 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=*
//

Table of Contents Previous Section Next Section 8. Create a New Log File

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.

Table of Contents Previous Section Next Section 8.1 Batch Job, Create a New Log File

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-2017 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
//

Table of Contents Previous Section Next Section 8.2 JCL Procedure, Create a New Log File

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-2016 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
//*

Table of Contents Previous Section Next Section Ancillary Functions

This section provides additional detail about Micro Focus Server usage and configuration.

Table of Contents Previous Section Next Section Set the Environment

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-2017 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 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
     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  *
rem  * Set the Environment for the Java Environment...
     set JAVABASE=C:\Program Files (x86)\Java\jdk1.8.0_112
     set JAVASDK="%JAVABASE%\bin"
     set JAVA_HOME=%JAVABASE%
     set JRE_HOME=%JAVABASE%
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
     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  *
     set MAINFRAME_FLOATING_POINT=true
     set COBIDY=%BASEAPP%\COBIDY
     set COBPATH=.;%BASEAPP%\LOADLIB;%BASESYS%\LOADLIB;%SimoLIBR%
     set LIBPATH=.;%BASEAPP%\LOADLIB;%BASESYS%\LOADLIB;%SimoLIBR%
     set TXDIR=%BASESYS%\LOADLIB;%MIFOBASE%
     set CobCpy=%BASEAPP%\CobCpy1;%BASEAPP%\CobCpy2;%BASEAPP%\CobCpy6;%SimoLIBR%
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;%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 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
     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%\mfcobol.jar
rem  *
     set JobStatus=0000
     call SimoNOTE "* Settings CmdName ENV1BASE.cmd, Version 14.03.28, %MIFOSYS1%"
     call SimoNOTE "* BaseAPP ..... %BASEAPP%"
rem *      call SimoNOTE "* MFBSIDIR .... %MFBSI_DIR% "
     call SimoNOTE "* MIFOSYS1 is %MIFOSYS1% "
     call SimoNOTE "* MIFOBASE is %MIFOBASE% "
     call SimoNOTE "* SIMOLIBR is %SIMOLIBR% "

Table of Contents Previous Section Next Section Display and Log Messages

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-2016 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

Table of Contents Previous Section Next Section Item Files for Testing

To execute the test cases will require test data. This section provides the information needed to create the test files.

Table of Contents Previous Section Next Section Create a New Item Test File (VSAM/KSDS)

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.

Link to Internet   Link to Server   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.

Table of Contents Previous Section Next Section Make a Copy for a Baseline Reference

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-2017 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)
/*
//*

Table of Contents Previous Section Next Section Create a Modified Copy for NE Compare

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-2017 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
//*

Table of Contents Previous Section Next Section Create an EBCDIC-encoded, Sequential File

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-2017 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)
//

Table of Contents Previous Section Next Section Generate Data Validation Programs

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.

Table of Contents Previous Section Next Section Compare for a Sequential & an Indexed File

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-2017 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
&COPYFILE  ITEMCB01.CPY
&HTMLFILE  itemcb01.htm
&FUNCTION  COMPARE
&CONFORM   IBM
*
* 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
&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  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    ENABLE
*
&END

Table of Contents Previous Section Next Section Compare with a User Call to Convert

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-2017 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
&COPYFILE  ITEMCB01.CPY
&HTMLFILE  itemcb01.htm
&FUNCTION  COMPARE
&CONFORM   IBM
*
* 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    ENABLE
*
&END

Table of Contents Previous Section Next Section Compare for Two Indexed File

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-2017 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
&COPYFILE  ITEMCB01.CPY
&HTMLFILE  itemcb01.htm
&FUNCTION  COMPARE
&CONFORM   IBM
*
* 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    DISABLE
*
&END

Table of Contents Previous Section Next Section Data Validation, Compute Summary Totals

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-2017 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
&COPYFILE  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

Table of Contents Previous Section Next Section Summary

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 document and the links to other documents are intended to provide a greater awareness of the Data Management and Application Processing alternatives.

The 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 send an e-mail to: helpdesk@simotime.com or call 415 883-6565. We appreciate hearing from you.

Table of Contents Previous Section Next Section 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.

Table of Contents Previous Section Next Section Downloads and Links

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.

Table of Contents Previous Section Next Section Current Server or Internet Access

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 Link to Internet 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 Link to Server icon.

Link to Internet   Link to Server   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.

Link to Internet   Link to Server   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.

Link to Internet   Link to Server   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.

Link to Internet   Link to Server   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.

Link to Internet   Link to Server   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.

Link to Internet   Link to Server   Explore the COBOL Connection for more examples of COBOL programming techniques and sample code.

Link to Internet   Link to Server   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.

Link to Internet   Link to Server   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.

Link to Internet   Link to Server   Explore The File Status Return Codes to interpret the results of accessing VSAM data sets and/or QSAM files.

Table of Contents Previous Section Next Section Internet Access Required

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 and services available from Micro Focus. This link requires an Internet Connection.

Table of Contents Previous Section Next Section Glossary of Terms

Link to Internet   Link to Server   Explore the Glossary of Terms for a list of terms and definitions used in this suite of documents and white papers.

Table of Contents Previous Section Next Section Comments or Feedback

This document was created and is copyrighted and maintained by SimoTime Technologies.

If you have any questions, suggestions, comments or feedback please call or send an e-mail to: helpdesk@simotime.com

We appreciate hearing from you.

Table of Contents Previous Section Next Section Company Overview

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 or need assistance with converting non-relational data structures simply give us a call at 415 883-6565 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-2018
SimoTime Technologies and Services
All Rights Reserved
When technology complements business
http://www.simotime.com