Convert, Review and Compare
SYS_PREP, System Preparation Guide
  Table of Contents  v-22.01.01 - tcnbrssb.htm 
  Introduction
  Requirements
  Objectives
  Prepare a System Environment
  Create Two Sub-Systems
  User Application
  Convert or Review Functions
  Gather Resources and Test Data
  Process COBOL Copy Files
  Generate HTML for Copy File
  Generate Field Level Information
  Prepare the COBOL Programs
  Prepare Conversion Programs
  Prepare a List
  Prepare the Process Control Files
  Generate the COBOL Programs
  Prepare Diagnostic and Support Programs
  Prepare Data Compare Programs
  Compile the Programs
  Create Job Scipts and do Unit Testing
  Transfer Members to User Environment
  Prepare Full Test Case
  Batch Job Scripts
  Define Convert Requirements
  1. Prepare the Environment
  2. Prepare a List
  3. Prepare PCF Members
  Create Convert Programs
  1. Generate Convert Programs
  2. Compile Convert Programs
  3. Promote Convert Programs
  Execute the Convert Programs
  The Review Process
  Hex-Dump Review
  File Compare by Logical Record
  Validate Numeric Integrity
  Technical Details
  Record Structure, PCF Names and Specifications
  File Types and Record Structures
  Clarity of Field Names
  Compiler Options
  Job Scripts
  COBOL Source Members
  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

This document is the System Preparation Guide for the TCNBRS01 Test Case. This document and the links to other documents are intended to provide a greater awareness of the Data Management challenges that are encountered when sharing or moving data between systems of differing architectures. This document will focus on the process of converting multiple data files or data structures using SimoTime Technologies. The convert process includes a capability for doing a file format, record content and field format conversion. The content of text fields may be converted between EBCDIC and ASCII. The format of numeric fields may be maintained in their current format or converted between Binary, Packed Decimal and Zoned Decimal.

This document provides information about the preparation tasks required to create a system and job environment to do the actual data file convert, compare and review tasks.

1. The programs used in this test case for the convert, compare and review functions are generated COBOL programs.
1.1. The program execution processes are described in the Run Book for Text Strings and Numeric Values.

 

Hyperlink Navigation: The hyperlinks in the text strings of the preceding overview will access the SimoTime Web Site server and requires an internet connection. If the outline level numer is highlighted the hyperlink will access the Current Browser Site.

This suite of programs requires a Windows System with Micro Focus Enterprise Server and the SimoTime Library.

Explore the SIMOTIME Web Site for additional information about the technologies and services that are available.


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-2022
SimoTime Technologies and Services
All Rights Reserved

Table of Contents Previous Section Next Section Requirements

This Test Case or the individual Unit Test modules will run on the following platforms.

1. Executes on Windows/7, Windows/10 and/or Windows Server using Micro Focus Technologies.
2. May be ported to run on a Linux platform supported by Micro Focus COBOL or GnuCOBOL.
3. The generated COBOL Member may be transferred, compiled and executed on an IBM Mainframe System with ZOS or a Windows System using Micro Focus Enterprise Developer.

 

Table of Contents Previous Section Next Section Objectives

This Test Case or the individual Unit Test modules will perform the following functions.

1. Provide a process to create an isolated sub-system to support the data convert, compare and review functions.
2. Provide a process to create test data
3. Provide individual Unit Test Members to convert files between file formats, record structures and record content
4. Provide individual Unit Test Members to observe file content
5. Provide individual Unit Test Members to validate numeric integrity for numeric values that are stored in a Binary, Packed-Decimal or Zoned-Decimal format.
6. Provide individual Unit Test Members to compare the content of two data files.

 

Table of Contents Previous Section Next Section Prepare a System Environment

For this test case a Windows System with a COBOL technology that is ANSI/1985 (or Later).

Table of Contents Previous Section Next Section Create Two Sub-Systems

Create an isolated sub-system to support the data convert, compare and review functions.

Table of Contents Previous Section Next Section User Application

The following is the sub-system or directory structure used to support and execute the SimoTime test cases and sample programs.

1. Review, a diagram and overview of the Sub-System that contains the User Application resources.

 

Table of Contents Previous Section Next Section Convert or Review Functions

The following is the sub-system or directory structure used to separate, support and execute the jobs and programs that do the data file convert, compare, and review processes. The review includes validation of text data via human observation and the validation of numeric integrity via the accumulation of summary totals.

1. Review, a diagram and overview of the Sub-System for the Convert and Review functions.

 

Table of Contents Previous Section Next Section Gather Resources and Test Data

WIP - COBOL Copy Files - Inout Test Data - CONFIG Files

Table of Contents Previous Section Next Section Process COBOL Copy Files

WIP

Table of Contents Previous Section Next Section Generate HTML for Copy File

The following job script will generate HTML documentation of the record structures based on the user-supplied COBOL Copy Files.

1. Prepare locally on a server, desktop or Laptop machine, this job script will create HTML Documentation of Record Structures based on the user-supplied COBOL Copy Files.
1.1. Review Record Structure, this job script will present each record using hexadecimal notation. This will allow the user to determine the binary structure of the data. This can be very helpful when a file contains numeric values that are stored in a Binary, Packed-Decimal or Zoned-Decimal format.

 

WIP

Table of Contents Previous Section Next Section Generate Field Level Information

WIP

Table of Contents Previous Section Next Section Prepare the COBOL Programs

WIP

Table of Contents Previous Section Next Section Prepare Conversion Programs

WIP

Table of Contents Previous Section Next Section Prepare a List

A list of Conversion task is manually created using spreadsheet software (Excel or LibreOffice CALC). A copy of the spreadsheet is saved as a CSV File.

1. Create a List of PCF Names, Conversion Functions and File Specifications
1.1. Determine granularity of conversioin functions
1.1.1. File format conversion
1.1.2. Record content conversion
1.1.3. Record format conversion
1.1.3.1. Single Text string
1.1.3.2. Field Level Conversion
1.2. Use Excel of LibreOffice Calc to make a list
1.3. Save as a CSV File

 

The following shows the content of a spreadsheet that is used by the TCNTXT01 Test Case.

 ABCDEFGHI JKLMNOPQR STUVWXYZ AAABACADAEAFAGAHAI
1PCF NameStatusHeader InformationHTM MemberCBL Copy MemberCBL Conv TableCBL IO MemberSYSUT1UT1 Org UT1 RecFMUT1 RminUT1 RmaxUT1 KposUT1 KlenRecMODERecVARYSYSUT2UT2 Org UT2 RecFMUT2 RminUT2 RmaxUT2 KposUT2 KlenRecMODERecVARYConv Process Conv Mode 1Keyword 1Function 1Conv Mode 2Keyword 2Function 2Conv Mode 3Keyword 3Function 3 
2TCNA2E01.pcfAA2E CONV, Text and Numeric Formatstcnbrsb1.htmTCNBRSB1.cpyAE0437B1                     TCNA2ER1 A2E&TRANSMODEA2E       
3TCNE2A01.pcfAE2A CONV, Text and Numeric Formatstcnbrsb1.htmTCNBRSB1.cpyAE0437B1TCNE2AC1 Sequential Fixed512512     Sequential Fixed512512    TCNE2AR1 E2A&TRANSMODEE2A &TRANSINIT     
4TCNEXT05.pcfAFLD CONV, FFL to a Text CSV Formattcnbrsb1.htmTCNBRSB1.cpy TCNEXTC5 Sequential Fixed512512     ASCII/Text Variable432760    TCNEXTR5 EXT&DELIMITER,USR&USERDATACSVHDRWS.txtUSR&USERSOJCSVHDRUI.txt 
5TCNIMP05.pcfAFLD CONV, Text CSV to a FFL Formattcnbrsb1.htmTCNBRSB1.cpy TCNIMPC5 ASCII/Text Variable432760     Sequential Fixed512512    TCNIMPR5 IMP&DELIMITER,USR&USERSOJDROP01UI.txt    

WIP

Table of Contents Previous Section Next Section Prepare the Process Control Files

The third and final step of the preparation process is to generate or create the PCF Member.

1. Prepare the Process Control Files, this job script will generate the Process Control Files (PCF) that will be used to generate the COBOL Programs that will be used to perform the data file conversion functions.
1.1. A single PCF Member may be created manually using a Text Editor of choice
1.2. Multiple PCF Members may be created programmatically using the List of PCF Names created in the previous job step.

 

The following is the job script that will create the PCF Members based on the list created in the preceding job.

@echo OFF
     set JOB_NAME=PREP_TCNBRS01_CSV2PCF_CONV_LOOP
rem  * *******************************************************************
rem  *            Batch Job Script - a Windows Command File              *
rem  *          Created by SimoTime Technologies and Services            *
rem  *           (C) Copyright 1987-2022 All Rights Reserved             *
rem  *             Web Site URL:   http://www.simotime.com               *
rem  *                   e-mail:   helpdesk@simotime.com                 *
rem  * *******************************************************************
rem  *
rem  * Text   - Read LCSV, create a Process Control File (PCF).
rem  * Author - SimoTime Technologies
rem  * Date   - January 24, 1996
rem  *
rem  * This Job Script will execute a program that will read an ASCII/Text
rem  * file that contains a list of PCF names and specifications.
rem  *
rem  * Next, the program will write to a new Record Sequential (RSEQ)
rem  * file that contains ASCII encoded data with with a record structure
rem  * of fixed field length (FFL) text strings.
rem  *
rem  *    ************
rem  *    * GENPCFW1 *     * PREP_NPDQA601_CSV2PCF_CONV_LOOP.cmd
rem  *    ********cmd*
rem  *         *
rem  *         *
rem  *    ************
rem  *    * ENV1BASE *
rem  *    ********cmd*
rem  *         *
rem  *         *
rem  *    ************
rem  *    * SIMONOTE *
rem  *    ********cmd*
rem  *         *
rem  *         *
rem  *    ************
rem  *    *   RUN    *---------------------------*
rem  *    ********rts*                           *
rem  *         *           ************     ************     ************
rem  *         *           *  SYSUT1  *--*--* UTGPCFC5 *-----*  SYSUT2  *
rem  *         *           *  Note-1  *  *  ********cbl*     *  Note-2  *
rem  *         *           *******lseq*  *       *           *******lseq*
rem  *         *                         *       *
rem  *         *           ************  *  ************
rem  *         *           *  SYSUT3  *--*  * UTPLSTR5 *
rem  *         *           *  Note-3  *  *  ********cbl*
rem  *         *           *******lseq*  *
rem  *         *                         *
rem  *         *           ************  *
rem  *         *           *  SYSUT4  *--*
rem  *         *           *  Note-4  *
rem  *         *           *******lseq*
rem  *    ************
rem  *    *   EOJ    *
rem  *    ************
rem  *
rem  *    Note-1: SYSUT1 is a Line Sequential (or ASCII/Text file with
rem  *            a CSV (Comma-Separated-Values) record structure.
rem  *            The record content is a list of PCF Names with
rem  *            specifications that will be used to create a PCF Files
rem  *            that are used to generate COBOL Source members.
rem  *
rem  *    Note-2: SYSUT2 is a Line Sequential file that contains
rem  *            ASCII-encoded text data in a Fixed-Field-Length (FFL)
rem  *            record structure. The 1st field is a keyword of 11 bytes
rem  *            containing a trailing space. The 2nd field is a set of
rem  *            user specifications.
rem  *
rem  *    Note-3: SYSUT3 is a Line Sequential file that contains the
rem  *            default parameters for the job step function.
rem  *
rem  *    Note-4: SYSUT4 is a Line Sequential file that contains a list
rem  *            of field names to be processed by the job step function.
rem  *
rem  * *******************************************************************
rem  *
     if "%ENV1BASE_CALL%" == "OFF" goto SKIP_CALL
        call ..\..\ENV1BASE %JOB_NAME%
:SKIP_CALL
     call ZFIGPREP
rem  *
     call SimoNOTE "* --------------------------------------------------------------------------- *01 of 03"
     call SimoNOTE "* Job_Step 01 of 03, Preparing the System and Job Environments"
     set JOB_STATUS=0
     set SYSOUT=%BaseLib1%\ADM1\PREP\PLOG\SYSOUT_%JOB_NAME%.txt
     set PGMFLAGS=YNNNNNNN/NNNNNNNN
     set PCF_LIBR=%BaseLib1%\ADM1\PREP\GPCF\
     set GEN_LIBR=%BaseLib1%\ADM1\PREP\GFLD
     call SimoNOTE "* PGMFLAGS=%PGMFLAGS% "
     call SimoNOTE "* PCF_LIBR=%PCF_LIBR% "
     call SimoNOTE "* GEN_LIBR=%GEN_LIBR% "
     set SYSUT3=%BaseLib1%\ADM1\PREP\PCTL\PREP4PCF.txt
rem  *
     call SimoNOTE "* --------------------------------------------------------------------------- *02 of 03"
     call SimoNOTE "* Job_Step 02 of 03, Generate a PCF Member"
     set SYSUT1=%BaseLib1%\ADM1\PREP\XLSS\PCF_LIST_TCNBRS01_CONV.csv
     call SimoNOTE "* DataTAKE SYSUT1=%SYSUT1% "
     call SimoNOTE "* DataPREP SYSUT3=%SYSUT3% "
     run UTGPCFC5
     if not "%ERRORLEVEL%" == "0" set JOB_STATUS=20
     if not "%JOB_STATUS%" == "0" goto EOJTAG
     goto EOJTAG
rem  *
:EOJTAG
     call SimoNOTE "*-----------------------------------------------------------------------------*03 of 03"
     call SimoNOTE "* JOB_STEP 03 of 03, End of Job Processing"
     call SimoNOTE "* SIMONOTE Job Log is %SIMONOTE% "
     if "%JOB_STATUS%" == "0" goto EOJAOK
:EOJNOK
     call SimoNOTE "* ABENDING JOB_STATUS=%JOB_STATUS% JobName %JOB_NAME% "
     goto :EOJEND
:EOJAOK
     call SimoNOTE "* Finished JOB_STATUS=%JOB_STATUS% JobName %JOB_NAME% "
     goto :EOJEND
:EOJEND
     call SimoNOTE "* Conclude SYSOUT is %SYSOUT% "
     if not "%SIMOGENS%" == "BATCH" pause
     exit /B %JOB_STATUS%

WIP

Table of Contents Previous Section Next Section Generate the COBOL Programs

The SIMOTIME Technologies provides a data file conversion process that uses generated COBOL programs to do the actual file format and record content conversion. The COBOL source code that is generated is ANSI 2002 compliant and may be compiled and executed on an IBM Mainframe System, a Windows System, a Linux System or a UNIX System.

For this test case the conversion programs were created, compiled and promoted on a Windows System using SIMOTIME Technologies and Micro Focus Visual COBOL. The following provides additional details.

1. Generate COBOL Conversion Programs
1.1. Single Conversion Program
1.2. Multiple Conversion Programs

 

WIP

Table of Contents Previous Section Next Section Prepare Diagnostic and Support Programs

WIP

Table of Contents Previous Section Next Section Prepare Data Compare Programs

WIP

Table of Contents Previous Section Next Section Compile the Programs

WIP

Table of Contents Previous Section Next Section Create Job Scipts and do Unit Testing

WIP

Table of Contents Previous Section Next Section Transfer Members to User Environment

WIP

Table of Contents Previous Section Next Section Prepare Full Test Case

This is a single batch job with multiple job steps that do calls to job scripts that do the individual unit testing.

1. Prepare the Test Case - this job script will define the environment and call additional job scipts to perform the individual unit tests that support the file conversion and review functions.

 

Table of Contents Previous Section Next Section Batch Job Scripts

A job script may be defined as a text file containing job setup information followed by job steps that identify programs to be executed along with parameters unique to the job step. A job script may be created using a text editor. The naming of a job script is determined by the Operating System. A simple job script may contain a single job step that performs a single function. A typical job script will contain multiple job steps executed in a predefined sequence. The status of each job step may be tested at the end of each job step.

1. Batch Job Execution
1.1. Schedule on a pre-defined basis
1.2. Called from another Batch Job
1.3. On demand based on a user request

 

Table of Contents Previous Section Next Section Define Convert Requirements

The SimoTime Conversion and Validation Process is intended for conversion efforts that go beyond a simple EBCDIC to ASCII Data File Conversion. Quite often a data structure (or record structure) will require different conversion techniques to be used based on the properties of individual data strings within a data structure (or types of fields within a record).

To accomplish this the SimoTime Technologies use a technique that generates COBOL programs to do the actual file format and record content conversion at a field level of granularity. The information needed to do this is obtained from a set of user specifications (provided in a Process Control File) and the field definitions (provided in a COBOL Copy File).

The first step in the conversion effort is to create an environment (or sub-system) that is separate and isolated from other projects or processing tasks.

1. Prepare a Conversion Environment
1.1. Create a Directory Structure
1.2. Populate with Job Scripts
2. Create a List of PCF Names and File Specifications
2.1. Determine granularity of conversioin functions
2.1.1. File format conversion
2.1.2. Record content conversion
2.1.3. Record format conversion
2.1.3.1. Single Text string
2.1.3.2. Field Level Conversion
2.2. Use Excel of LibreOffice Calc
2.3. Save as a CSV File
3. Create a PCF Member
3.1. A single PCF Member may be created manually using a Text Editor of choice
3.2. Multiple PCF Members may be created programmatically using the List of PCF Names created in the previous step.

 

Table of Contents Previous Section Next Section 1. Prepare the Environment

To preparation of a system environment starts by creating a directory (or library) structure to isolate the conversion environment and provide a location for managing the resources used for the conversion processing.

1. Prepare a Conversion Environment
1.1. Create a Directory Structure
1.2. Populate with Job Scripts

 

Table of Contents Previous Section Next Section 2. Prepare a List

A list of Conversion task is manually created using spreadsheet software (Excel or LibreOffice CALC). A copy of the spreadsheet is saved as a CSV File.

1. Create a List of PCF Names, Conversion Functions and File Specifications
1.1. Determine granularity of conversioin functions
1.1.1. File format conversion
1.1.2. Record content conversion
1.1.3. Record format conversion
1.1.3.1. Single Text string
1.1.3.2. Field Level Conversion
1.2. Use Excel of LibreOffice Calc to make a list
1.3. Save as a CSV File

 

The following shows the content of a spreadsheet that is used by the TCNTXT01 Test Case.

 ABCDEFGHI JKLMNOPQR STUVWXYZ AAABACADAEAFAGAHAI
1PCF NameStatusHeader InformationHTM MemberCBL Copy MemberCBL Conv TableCBL IO MemberSYSUT1UT1 Org UT1 RecFMUT1 RminUT1 RmaxUT1 KposUT1 KlenRecMODERecVARYSYSUT2UT2 Org UT2 RecFMUT2 RminUT2 RmaxUT2 KposUT2 KlenRecMODERecVARYConv Process Conv Mode 1Keyword 1Function 1Conv Mode 2Keyword 2Function 2Conv Mode 3Keyword 3Function 3 
2TCNA2E01.pcfAA2E CONV, Text and Numeric Formatstcntxtb1.htmTCNTXTB1.cpyAE0437B1                     TCNA2ER1 A2E&TRANSMODEA2E       
3TCNE2A01.pcfAE2A CONV, Text and Numeric Formatstcntxtb1.htmTCNTXTB1.cpyAE0437B1TCNE2AC1 Sequential Fixed512512     Sequential Fixed512512    TCNE2AR1 E2A&TRANSMODEE2A &TRANSINIT     
4TCNEXT05.pcfAFLD CONV, FFL to a Text CSV Formattcntxtb1.htmTCNTXTB1.cpy TCNEXTC5 Sequential Fixed512512     ASCII/Text Variable432760    TCNEXTR5 EXT&DELIMITER,USR&USERDATACSVHDRWS.txtUSR&USERSOJCSVHDRUI.txt 
5TCNIMP05.pcfAFLD CONV, Text CSV to a FFL Formattcntxtb1.htmTCNTXTB1.cpy TCNIMPC5 ASCII/Text Variable432760     Sequential Fixed512512    TCNIMPR5 IMP&DELIMITER,USR&USERSOJDROP01UI.txt    

Table of Contents Previous Section Next Section 3. Prepare PCF Members

The third and final step of the preparation process is to generate or create the PCF Member.

1. Create a PCF Member
1.1. A single PCF Member may be created manually using a Text Editor of choice
1.2. Multiple PCF Members may be created programmatically using the List of PCF Names created in the previous step.

 

The following is the job script that will create the PCF Members based on the list created in the preceding job.

@echo OFF
     set JOB_NAME=MAKE_PCF_MEMBERS
rem  * *******************************************************************
rem  *        This Job Script is provided by SimoTime Technologies       *
rem  *           (C) Copyright 1987-2020 All Rights Reserved             *
rem  *             Web Site URL:   http://www.simotime.com               *
rem  *                   e-mail:   helpdesk@simotime.com                 *
rem  * *******************************************************************
rem  *
rem  * Text   - Read LCSV, write RSEQ-ASC-FFL Customer Master.
rem  * Author - SimoTime Technologies
rem  * Date   - January 24, 1996
rem  *
rem  * The job will execute a program that will read an ASCII/Text file
rem  * that contains a list of PCF Files and specifications.
rem  * Next, the program will write to a new Record Sequential (RSEQ)
rem  * file that contains ASCII encoded data with fixed field length (FFL)
rem  * text strings.
rem  *
rem  *    ************
rem  *    * GENPCFW1 *
rem  *    ********cmd*
rem  *         *
rem  *         *
rem  *    ************
rem  *    * ENV1BASE *
rem  *    ********cmd*
rem  *         *
rem  *         *
rem  *    ************
rem  *    * SimoNOTE *
rem  *    ********cmd*
rem  *         *
rem  *         *
rem  *    ************
rem  *    *   RUN    *---------------------------*
rem  *    ********rts*                           *
rem  *         *           ************     ************     ************
rem  *         *           *  SYSUT1  *--*--* UTGPCFC1 *-----*  SYSUT2  *
rem  *         *           *  Note-1  *  *  ********cbl*     *  Note-2  *
rem  *         *           *******rseq*  *                   *******lseq*
rem  *         *                         *
rem  *         *           ************  *
rem  *         *           *  SYSUT3  *--*
rem  *         *           *  Note-3  *  *
rem  *         *           *******lseq*  *
rem  *         *                         *
rem  *         *           ************  *
rem  *         *           *  SYSUT4  *--*
rem  *         *           *  Note-4  *
rem  *         *           *******lseq*
rem  *    ************
rem  *    *   EOJ    *
rem  *    ************
rem  *
rem  *    Note-1: SYSUT1 is a Line Sequential (or ASCII/Text file with
rem  *            a CSV (Comma-Separated-Values) record structure.
rem  *
rem  *    Note-2: SYSUT2 is a Record Sequential file that contains
rem  *            ASCII-encoded text data in a Fixed-Field-Length (FFL)
rem  *            record structure.
rem  *
rem  * *******************************************************************
rem  *
     call ..\..\ENV1BASE
rem  *
     call SimoNOTE "*******************************************************************************%JOB_NAME% "
     call SimoNOTE "* Starting JobName %JOB_NAME%, User is %USERNAME%"
     call SimoNOTE "* Job_Step 01 of 03, Preparing the System and Job Environments"
     set JOB_STATUS=0
     set SYSOUT=%BaseLib1%\LOGS\SYSOUT_%JOB_NAME%.txt
     set SYSUT1=%BaseLib1%\DATA\XLSS\GENR_PCF_LIST_NUMBERS_CONV.csv
     set SYSUT3=%BaseLib1%\PARMLIB\GENPCFT1.txt
     set PGMFLAGS=YNNNNNNN/NNNNNNNN
     set PCF_LIBR=%BaseLib1%\DATA\WRK1\
     set GEN_LIBR=%BaseLib1%\DATA\GENS
rem  *
     call SimoNOTE "* --------------------------------------------------------------------------- *"
     call SimoNOTE "* Job_Step 02 of 03, Generate a PCF Member"
     call SimoNOTE "* DataTAKE SYSUT1=%SYSUT1% "
     call SimoNOTE "* DataPREP SYSUT3=%SYSUT3% "
     run UTGPCFC5
     if not "%ERRORLEVEL%" == "0" set JOB_STATUS=10
     if not "%JOB_STATUS%" == "0" goto EOJTAG
     goto EOJTAG
rem  *
:EOJTAG
     call SimoNOTE "*-----------------------------------------------------------------------------*"
     call SimoNOTE "* JOB_STEP 03 of 03, End of Job Processing"
     call SimoNOTE "* SIMONOTE Job Log is %SIMONOTE% "
     if "%JOB_STATUS%" == "0" goto EOJAOK
:EOJNOK
     call SimoNOTE "* ABENDING JOB_STATUS=%JOB_STATUS% JobName %JOB_NAME% "
     goto :EOJEND
:EOJAOK
     call SimoNOTE "* Finished JOB_STATUS=%JOB_STATUS% JobName %JOB_NAME% "
     goto :EOJEND
:EOJEND
     call SimoNOTE "* Conclude SYSOUT is %SYSOUT% "
     if not "%SIMOGENS%" == "BATCH" pause
     exit /B %JOB_STATUS%

Table of Contents Previous Section Next Section Create Convert Programs

The SIMOTIME Technologies provides a data file conversion process that uses generated COBOL programs to do the actual file format and record content conversion. The COBOL source code that is generated is ANSI 2002 compliant and may be compiled and executed on an IBM Mainframe System, a Windows System, a Linux System or a UNIX System.

For this test case the conversion programs were created, compiled and promoted on a Windows System using SIMOTIME Technologies and Micro Focus Visual COBOL. The following provides additional details.

1. Generate COBOL Conversion Programs
1.1. Single Conversion Program
1.2. Multiple Conversion Programs
2. Compile COBOL Conversion Programs
2.1. Execute a batch job script that will compile a single program
2.2. Execute a batch job script that will compile multiple programs
3. Promote COBOL Conversion Programs
3.1. Copy the Load (or executable) members to the LOADLIB
3.2. Execute a batch job script that will do the data file conversion.

 

Table of Contents Previous Section Next Section 1. Generate Convert Programs

This test case will use a Job Script to generate the COBOL source cade that wil be used to do a data file conversion. This task will be accomplished by reading a Process Control File (PCF) as the primary input. If the Data File Conversion required a field level conversion then the field definitions from a COBOL Copy file will be used.

1. Generate COBOL Conversion Programs
1.1. Single Conversion Program
1.2. Multiple Conversion Programs

 

The following is the job script that will generate the COBOL Source Code for the conversion programs.

@echo OFF
     set CmdName=ADM_GENRONE_CONVERTS
rem  * *******************************************************************
rem  *        This Job Script is provided by SimoTime Technologies       *
rem  *           (C) Copyright 1987-2020 All Rights Reserved             *
rem  *             Web Site URL:   http://www.simotime.com               *
rem  *                   e-mail:   helpdesk@simotime.com                 *
rem  * *******************************************************************
rem  * This procedure calls the following Windows Command Files.
rem  * 1. ENV1BASE.cmd - provide a single job script for preparing
rem  *                   the System environment.
rem  * 2. USERCONV.cmd - provide a single job script for preparing
rem  *                   the Job environment.
rem  * 3. SIMONOTE.cmd - provide a consistent process for displaying
rem  *                   messages to the screen and writing to a journal
rem  *                   or log file.
rem  * 4. ZPCF2CVT.cmd - do the generation of the COBOL programs that
rem  *                   will be used for the file conversion process.
rem  * ************************************************************************
rem  * The objective of this batch job is to generate the COBOL program(s)
rem  * required to do a file format or record content conversion of a single
rem  * data file.
rem  * For more information about the data conversion utility process refer
rem  * to the following.
rem  *
rem  * http://www.simotime.com/utconv01.htm
rem  *
rem  * The following two call statements will set the environment variables.
rem  * The call to ENV1BASE will set the System or Global/Shared variables.
rem  * The call to USERCONV will set the Job-specific variables.
rem  *
     call ..\..\ENV1BASE
     call USERCONV
rem  *
     call SimoNOTE "*******************************************************************************%CmdName%.cmd"
     call SimoNOTE "* Step 01 of 04, Prepare the Job Environment."
rem  *
rem  * Set the variables for the success/failure counters.
     set AOK_Count=0
     set NOK_Count=0
rem  *
rem  * Do not drop (or delete) the interim _genr and _spec files
rem  * and pause at the end of job.
rem  *
     set SIMODROP=N
     set SIMOGENS=PAUSE
     set GENILIBR=%BASELIB1%\SIMOGENS\CONVERTS\INCLUDES
     set SIMOCFG1=%BASELIB1%\SIMOGENS\CONVERTS\SIMOCFG1.cfg
     set SWITCHES=NNNNNNNN/NNNNNNNN
rem  *
     call SimoNOTE "* --------------------------------------------------------------------------- *
     call SimoNOTE "* Step 02 of 04, Define PCF File Name in Separate Test Editor Window,"
     call SimoNOTE "*                validate or change name then close Text Editor to continue..."
     set MBR_LIST=%BASELIB1%\SIMOGENS\CONVERTS\SIMOTIME.LISTONE.PCF4CONV.lst
     if "%SimoGENS%" == "PAUSE" notepad %MBR_LIST%
rem  *
     call SimoNOTE "* --------------------------------------------------------------------------- *
     call SimoNOTE "* Step 03 of 04, Generate the Convert Programs."
     for /F "eol=; tokens=1,2* delims=." %%i in (%MBR_LIST%) do CALL ZPCF2CVT %%i
rem  *
:EOJTAG
     call SimoNOTE "* --------------------------------------------------------------------------- *
     call SimoNOTE "* Step 04 of 04, End of Job Processing."
     call SIMONOTE "* AOKcount Compile Count for AOK is %AOK_Count% "
     call SIMONOTE "* NOKcount Compile Count for NOK is %NOK_Count% "
     if  "%NOK_Count%" == "0" (call SIMONOTE "* Finished JobName %CmdName%.cmd "
                               goto :EOJEND)
     call SIMONOTE "* ABENDING JobName %CmdName%.cmd "
:EOJEND
     if not "%SimoGENS%" == "BATCH" pause

Table of Contents Previous Section Next Section 2. Compile Convert Programs

This test case will use a Job Script to Compile the generated COBOL Source Code and create an executable member.

1. Compile COBOL Conversion Programs
1.1. Execute a batch job script that will compile a single program
1.2. Execute a batch job script that will compile a multiple programs

 

The following is the job script that will compile the COBOL Source Code using Micro Focus COBOL.

@echo OFF
     set CMD_NAME=CBUT2AE1
rem  * *******************************************************************
rem  *       This Job Script is provided by SimoTime Technologies        *
rem  *           (C) Copyright 1987-2020 All Rights Reserved             *
rem  *             Web Site URL:   http://www.simotime.com               *
rem  *                   e-mail:   helpdesk@simotime.com                 *
rem  * *******************************************************************
rem  * This procedure will create a file containing a list of all the
rem  * COBOL (i.e. filename.cbl) programs. This list will then be used to
rem  * compile all the programs in the COBOLUT2 Folder (or Library).
rem  *
rem  * This procedure calls the following Windows Command Files.
rem  * 1. ENV1BASE.CMD - provides a single point for setting commonly
rem  *                   used environment variables.
rem  * 2. SIMONOTE.CMD - provides a consistent process for displaying
rem  *                   messages to the screen and writing to a journal
rem  *                   or log file.
rem  * 3. ZCBL2GNT.CMD - this will do the actual compile of the specified
rem  *                   program.
rem  *
rem  * Note: To specify the directory to be used for the IDY files use
rem  *       the COBIDY Compiler Directive and set the COBIDY environment
rem  *       variable.
rem  * ************************************************************************
     setlocal
     call ..\ENV1BASE
rem  *
     call SIMONOTE "*******************************************************************************%CMD_NAME%.CMD"
     call SIMONOTE "* Starting JobName %CMD_NAME%.CMD"
     call SIMONOTE "* Job_Step 01 of 03, Preparing the System and Job Environments"
rem  *
rem  * Set the environment variable to use the MiFoAsc.DIR directives file
rem  * as the default.
     set DIRSLIB1=%BaseLib1%\DIRS
     set zDIRS=%BaseLib1%\DIRS\MiFoAscIBMcomp.DIR
rem  * The following two statements will set the environment variables to
rem  * a "Y" for Yes or "N" for No. A "Y" will cause the function to be
rem  * performed by the called procedure. An "N" value will not perform the
rem  * function.
     set EraseAfter=N
     set TransferGNT=N
rem  *
rem  * Read the file containing a list of program names and pass the contents
rem  * of each record to the command file that does the actual compile.
rem  * Each record in the file contains an eight character program name.
     set AOK_Count=0
     set NOK_Count=0
     set SLIB1=COBOLUT2
     set TLIB1=HOLD\UT2A
rem  *
     call SIMONOTE "* --------------------------------------------------------------------------- *"
     call SIMONOTE "* Job_Step 02 of 03, Compile the COBOL Programs..."
     set MBR_LIST=%BASELIB1%\ADM1\CNTL\SIMOTIME.ADM1.COBOLUT2.lst
     call SIMONOTE "* MBR_LIST is %MBR_LIST% "
     dir /on /b /a-d %BaseLib1%\%SLIB1%\*.CBL>%MBR_LIST%
     for /F "eol=; tokens=1,2* delims=." %%i in (%MBR_LIST%) do CALL zCBL2GNT %%i %SLIB1% %TLIB1%
rem  *
:EOJTAG
     call SIMONOTE "* --------------------------------------------------------------------------- *"
     call SIMONOTE "* Job_Step 03 of 03, End of Job Processing..."
     call SIMONOTE "* AOKcount Compile Count for AOK is %AOK_Count% "
     call SIMONOTE "* NOKcount Compile Count for NOK is %NOK_Count% "
     if not "%NOK_Count%" == "0" goto EOJNOK
:EOJAOK
     call SIMONOTE "* Finished JobName %CMD_NAME%.CMD "
     goto END
:EOJNOK
     call SIMONOTE "* ABENDING JobName %CMD_NAME%.CMD "
:END
     if not "%SimoGENS%" == "BATCH" pause
     endlocal

Table of Contents Previous Section Next Section 3. Promote Convert Programs

This test case will use a Job Script to tranfer the executable members from a holding library to the LOADLIB.

1. Promote COBOL Conversion Programs
1.1. Copy the Load (or executable) members to the LOADLIB
1.2. Execute a batch job script to that will do the data file conversion.

 

The following is the job script that will promote the executable conversion programs to the LOADLIB.

@echo OFF
     set JOB_NAME=ADM1_XFER_GNTS_UT2A_TO_LOADLIB
rem  * *******************************************************************
rem  *        This Job Script is provided by SimoTime Technologies       *
rem  *           (C) Copyright 1987-2020 All Rights Reserved             *
rem  *             Web Site URL:   http://www.simotime.com               *
rem  *                   e-mail:   helpdesk@simotime.com                 *
rem  * *******************************************************************
rem  * This job script will copy user-defined files from one folder to
rem  * another based on a list of file names.
rem  *
rem  * This batch job script calls the following Windows Command Files.
rem  * 1. ENV1BASE.cmd - provides a single point for setting commonly
rem  *                   used environment variables.
rem  * 2. SIMONOTE.cmd - provides a consistent process for displaying
rem  *                   messages to the screen and writing to a journal
rem  *                   or log file.
rem  * 3. ZSYS1_COPY_FILE.cmd - this will do the actual copy of the files.
rem  * *******************************************************************
     call ..\ENV1Base
rem  *
     call SIMONOTE "*******************************************************************************%JOB_NAME%.cmd"
     call SIMONOTE "* Starting JOB_NAME %JOB_NAME%.cmd"
     call SIMONOTE "* Job_Step 01 of 03, Preparing the System and Job Environments"
rem  *
     set AOK_Count=0
     set NOK_Count=0
     set SourceLib=%BASELIB1%\HOLD\UT2A
     set TargetLib=%BASELIB1%\LOADLIB
rem  *
     call SIMONOTE "* --------------------------------------------------------------------------- *"
     call SIMONOTE "* Job_Step 02 of 03, Generate a List and Copy Executable Members..."
     set MBR_LIST=%BASELIB1%\ADM1\CNTL\SIMOTIME.ADM1GNTS.COBOLUT2.lst
     dir /on /b /a-d %SourceLib%\*.gnt>%MBR_LIST%
     call SIMONOTE "* MBR_LIST is %MBR_LIST% "
     for /F "eol=; tokens=1,2* delims=." %%i in (%MBR_LIST%) do call ZSYS1_COPY_FILE %SourceLib%\%%i.gnt %TargetLib%\%%i.gnt
rem  *
:EOJTAG
     call SIMONOTE "* --------------------------------------------------------------------------- *"
     call SIMONOTE "* Job_Step 03 of 03, End of Job Processing..."
     call SIMONOTE "* AOKcount File Copy Count for AOK is %AOK_Count% "
     call SIMONOTE "* NOKcount File Copy Count for NOK is %NOK_Count% "
     if not "%NOK_Count%" == "0" goto EOJNOK
:EOJAOK
     call SIMONOTE "* Finished JobName %JOB_NAME%.CMD "
     goto END
:EOJNOK
     call SIMONOTE "* ABENDING JobName %JOB_NAME%.CMD "
:END
     if not "%SimoGENS%" == "BATCH" pause
     endlocal

Table of Contents Previous Section Next Section Execute the Convert Programs

The following will provide links to the Run Book for the TCNTXT01 Test Case.

1. Execute the Convert Programs
1.1. Link to Run Book via Local System
1.2. Link to Run Book via SimoTime Web Site

 

Table of Contents Previous Section Next Section The Review Process

In today's environments there are a variety of data validation alternatives. This section will focus on three popular techniques. The 1st technique is Human Observation. The 2nd is a Data File Compare. The 3rd is the accumulation and review of Summary Totals.

Table of Contents Previous Section Next Section Hex-Dump Review

The following Process Control File (PCF) (TCNHXR01.pcf) contains the specifications that will be used to generate the programs that will be used to provide the hexadecimal dump of user-defined records contained in the Record Sequential File that is used with this test case.

***********************************************************************
*                TCNHXR01.pcf - a Process Control File                *
*    Hex-Dump for User-Defined records in a Record Sequential File    *
*             (C) Copyright 1987-2020 All Rights Reserved             *
*               Web Site URL:   http://www.simotime.com               *
*                     e-mail:   helpdesk@simotime.com                 *
***********************************************************************
* SYSUT1 A Record Sequential (RSEQ) File, RSEQ, 512-byte records.     *
* SYSUT2 A Line Sequential (LSEQ) file, variable-length records.      *
* SYSUT3 A Line Sequential (LSEQ) file, variable-length records.      *
***********************************************************************
* This Process Control File will be used to generate a COBOL program
* that will do a hexadecimal dump of user-defined records contained
* in the RSEQ File.
*
* Refer to http://www.simotime.com/utcomp01.htm for additional detail
* about the PCF statements for Data Validate, Dump and Compare.
*
* The following group of statements will define the high level
* functions and processes to be performed.
*
&SIMOPREP  call ..\ENV1BASE
&USERPREP  call USERCOGI
&CONFORM   IBM
&USRMODEL  SYSHEXS3.txt
&USRXFILE  AE0437B1
*
* 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    HEX-Dump from RSEQ_512 to LSEQ_512
&PROGID    TCNHXRC1
&UT1ACCESS SEQUENTIAL
&SYSUT1    name=SYSUT1 org=Sequential recfm=fixed rlen=512
&SYSUT2    name=SYSUT2 org=ASCII/Text recfm=Variable rlen=512
&SYSUT3    name=SYSUT3 org=ASCII/Text recfm=Variable rlen=80
*
* The following will determine the HEX-Dump output. The &DFORMAT
* statement will create five (5) lines of dump information.
*    ASC - 1 line of possible ASCII character translation.
*    HEX - 2 lines of HEX dump. 1st line is high-order nibble.
*                               2nd line is low-order nibble.
*    EBC - 1 line of possible EBCDIC character translation.
*    RPI - 1 line for Relative Position Indicator.
*
&HEXDUMP   SYSUT1 pos 0001 len 512
&DFORMAT   ASC HEX EBC RPI
&SYSLOG    ENABLED
*
&END

Note: Since the generated program is not sensitive to the record content the program may be used to dump the content of any record sequential file with a fixed-length record structure of 512 bytes.

Table of Contents Previous Section Next Section File Compare by Logical Record

The following Process Control File (PCF) (TCNVAL01.pcf) contains the specifications that will be used to generate the programs that do the actual file compare.

***********************************************************************
*    This is an example of the compare specifications to generate a   *
*        Data File Comparison Program. This is used by SimoZAPS       *
*                       SimoTime Technologies                         *
*            (C) Copyright 1987-2020 All Rights Reserved              *
*              Web Site URL:   http://www.simotime.com                *
*                    e-mail:   helpdesk@simotime.com                  *
***********************************************************************
*
* The following group of statements will define the high level
* functions and processes to be performed.
*
&SIMOPREP  call ..\..\ENV1BASE
&USERPREP  call USERCOMP
&FUNCTION  COMPARE
&CONFORM   IBM
&USRMODEL  SYSCOMP5.txt
&TBLAECOMP HEXTABLE
*
* The following group of statements will define the behavioral
* characteristics and environment variables for the file I/O
* functions within the Program to be generated.
*
*HEAD34    ....:....1....:....2....:....3....
&HEAD34    Data File Compare for RSEQ_512
&progid    TCNVALC1
&SYSUT1    org=SEQUENTIAL  recfm=FIXED    rlen=512
&SYSUT2    org=SEQUENTIAL  recfm=FIXED    rlen=512
*
* The following group of statements will define the behavioral
* characteristics and environment variables for the compare functions
* within the Program to be generated.
*
&COMPARE   PHYSICAL SYSUT1 pos   1 len 512 SYSUT2 pos   1 len 512
*
&IFNECODE  4
&DELTAMAX  10 EOF
*
&DFORMAT   ASC HEX EBC RPI
&DSTRING   1 512
&SYSLOG    SIMOL32K HTML
&SYSOUT    DISABLED
*
&END

Table of Contents Previous Section Next Section Validate Numeric Integrity

The following Process Control File (PCF) (TCNTOT01.pcf) contains the specifications that will be used to generate a set of COBOL programs that will accumulate totals for user-defined numeric fields and provide a record count.

***********************************************************************
*                TCNTOT01.pcf - a Process Control File                *
*        Accumulate Record Counts and Totals for Numeric Fields       *
*             (C) Copyright 1987-2019 All Rights Reserved             *
*               Web Site URL:   http://www.simotime.com               *
*                     e-mail:   helpdesk@simotime.com                 *
***********************************************************************
* SYSUT1 is a Record Sequential File with 512-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 http://www.simotime.com/utcomp01.htm for additional detail
* about the PCF statements for Data Validate, Dump and Compare.
*
* 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  TCNTXTB1.cpy
&HTMLFILE  tcntxtb1.htm
&USRMODEL  SYSNTOT1.txt
*
* 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 Numeric Data
&PROGID    TCNTOTC1
&SYSUT1    name=TCNTOTD1 org=Sequential recfm=FIXED    rmax=512
*
* The following two statements are used when the records in the data
* file (input or output) are a Comma-Separated-Values (or CSV) format.
*
&DELIMITER ,
&FRAME     "
*
* 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   TCNTOTR1
&NUMREC    TCNTXT01-RECORD
*
* The following group of statements will define the type of processing
* and the name of the numeric fields.
*
&UT1TOTAL  TCNTXT01-ZDS-09-00
&UT1TOTAL  TCNTXT01-PKS-00-10
&UT1TOTAL  TCNTXT01-PKS-00-07
&UT1TOTAL  TCNTXT01-PKS-01-07
&UT1TOTAL  TCNTXT01-PKS-07-02
&UT1TOTAL  TCNTXT01-BNS-00-10
&UT1TOTAL  TCNTXT01-BNS-00-07
&UT1TOTAL  TCNTXT01-BNS-01-07
&UT1TOTAL  TCNTXT01-BNS-07-02
*
&END

Table of Contents Previous Section Next Section Technical Details

This section provides additional technical details about the modules that are included in this test case.

Table of Contents Previous Section Next Section Record Structure, PCF Names and Specifications

      *****************************************************************
      *               UTPLSTB1.cpy - a COBOL Copy File                *
      *            Record Structure for List of PCF Files             *
      *         Copyright (C) 1987-2021 SimoTime Technologies         *
      *                     All Rights Reserved                       *
      *              Provided by SimoTime Technologies                *
      *        Our e-mail address is: helpdesk@simotime.com           *
      *     Also, visit our Web Site at http://www.simotime.com       *
      *****************************************************************
      *    Define the record structure of a file that contains the
      *    list of PCF file names and specifications for a data file
      *    convert process.
      *
      *    The notation in columns 73-80 is for documentation purposes
      *    only and identifies the column that would be used for the
      *    field content if a spreadsheet software package were used
      *    to create test data.
      *
      * .1....:....2....:....3....:....4....:....5....:....6....:....7....:....8
      *
       01  PCF-LIST-RECORD.
      *    Base Section ----------------------------------------------*
           05  PCF-NAME                 pic X(12).                       COL-A
           05  PCF-STATUS               pic X.                           COL-B
           05  PCF-STATUS-R   redefines PCF-STATUS pic X.
           05  PCF-HEADER-INFO          pic X(34).                       COL-C
           05  PCF-HTM-MEMBER           pic X(12).                       COL-D
           05  PCF-CBL-COPY-MEMBER      pic X(12).                       COL-E
           05  PCF-CBL-CONV-TABLE       pic X(12).                       COL-F
           05  PCF-CBL-IO-MEMBER        pic X(12).                       COL-G
           05  PCF-SYSUT1               pic X(12).                       COL-H
           05  PCF-SYSUT1-ORG           pic X(12).                       COL-I
           05  PCF-SYSUT1-RECFM         pic X(12).                       COL-J
           05  PCF-SYSUT1-RMIN          pic 9(5).                        COL-K
           05  PCF-SYSUT1-RMAX          pic 9(5).                        COL-L
           05  PCF-SYSUT1-KPOS          pic 9(5).                        COL-M
           05  PCF-SYSUT1-KLEN          pic 9(5).                        COL-N
           05  PCF-SYSUT1-RECMODE       pic X(7).                        COL-O
           05  PCF-SYSUT1-RECVARY       pic X(7).                        COL-P
           05  PCF-SYSUT2               pic X(12).                       COL-Q
           05  PCF-SYSUT2-ORG           pic X(12).                       COL-R
           05  PCF-SYSUT2-RECFM         pic X(12).                       COL-R
           05  PCF-SYSUT2-RMIN          pic 9(5).                        COL-T
           05  PCF-SYSUT2-RMAX          pic 9(5).                        COL-U
           05  PCF-SYSUT2-KPOS          pic 9(5).                        COL-V
           05  PCF-SYSUT2-KLEN          pic 9(5).                        COL-W
           05  PCF-SYSUT2-RECMODE       pic X(7).                        COL-X
           05  PCF-SYSUT2-RECVARY       pic X(7).                        COL-Y
           05  PCF-CONV-PROCESS         pic X(50).                       COL-Z
      *    User Section ----------------------------------------------*
           05  PCF-MKF-ARRAY            occurs 10 times.
               10  PCF-MKF-MODE         pic X(3).                        COL-AA
               10  PCF-MKF-KEYWORD      pic X(11).                        THRU
               10  PCF-MKF-FUNCTION     pic X(80).                       COL-BD
      *
           05  PCF-MKF-GROUP            redefines PCF-MKF-ARRAY.
               10  PCF-CBL-CONV-MODE-1  pic X(3).                        COL-AA
               10  PCF-KEYWORD-1        pic X(11).                       COL-AB
               10  PCF-FUNCTION-1       pic X(80).                       COL-AC
               10  PCF-CBL-CONV-MODE-2  pic X(3).                        COL-AD
               10  PCF-KEYWORD-2        pic X(11).                       COL-AE
               10  PCF-FUNCTION-2       pic X(80).                       COL-AF
               10  PCF-CBL-CONV-MODE-3  pic X(3).                        COL-AG
               10  PCF-KEYWORD-3        pic X(11).                       COL-AH
               10  PCF-FUNCTION-3       pic X(80).                       COL-AI
               10  PCF-CBL-CONV-MODE-4  pic X(3).                        COL-AJ
               10  PCF-KEYWORD-4        pic X(11).                       COL-AK
               10  PCF-FUNCTION-4       pic X(80).                       COL-AL
               10  PCF-CBL-CONV-MODE-5  pic X(3).                        COL-AM
               10  PCF-KEYWORD-5        pic X(11).                       COL-AN
               10  PCF-FUNCTION-5       pic X(80).                       COL-AO
               10  PCF-CBL-CONV-MODE-6  pic X(3).                        COL-AP
               10  PCF-KEYWORD-6        pic X(11).                       COL-AQ
               10  PCF-FUNCTION-6       pic X(80).                       COL-AR
               10  PCF-CBL-CONV-MODE-7  pic X(3).                        COL-AS
               10  PCF-KEYWORD-7        pic X(11).                       COL-AT
               10  PCF-FUNCTION-7       pic X(80).                       COL-AU
               10  PCF-CBL-CONV-MODE-8  pic X(3).                        COL-AV
               10  PCF-KEYWORD-8        pic X(11).                       COL-AW
               10  PCF-FUNCTION-8       pic X(80).                       COL-AX
               10  PCF-CBL-CONV-MODE-9  pic X(3).                        COL-AY
               10  PCF-KEYWORD-9        pic X(11).                       COL-AZ
               10  PCF-FUNCTION-9       pic X(80).                       COL-BA
               10  PCF-CBL-CONV-MODE-10 pic X(3).                        COL-BB
               10  PCF-KEYWORD-10       pic X(11).                       COL-BC
               10  PCF-FUNCTION-10      pic X(80).                       COL-BD
      *
           05  PCF-FILLER               pic X(823).                      COL-BE
      *
      ***  UTPLSTB1 - End-of-Copy File - - - - - - - - - - - UTPLSTB1 *
      *****************************************************************
      *

Table of Contents Previous Section Next Section File Types and Record Structures

This document will use notation to refer to various file types and record structures.

The following provides a list of terms or abbreviations used when referring to the various file types and record structures.

Term Description of File Format
KSDS File Format for a Key Sequencd Data Set or Indexedl File. The record structure contains a data area for the user records and an index area that contains a user defined key that is used to access the file in a sequential or randowm methodology. The record content may include text strings that conform to the ASCII or EBCDIC encoding schema. Numeric values may use a Zoned-Decimal, Packed-Decimal or Binary format..
LSEQ File Format for a Line Sequential File or ASCII/Text File. By default the record content should conform to the ASCII encoding schema.
RSEQ File Format for a Record Sequential File. The record content may include text strings that conform to the ASCII or EBCDIC encoding schema. Numeric values may use a Zoned-Decimal, Packed-Decimal or Binary format.
Term Description of Record Structure and Content
CSV Comma Separated Values is a record structure containing variable length fields of text characters. Each field is separated by a delimiter character that is typically a comma.
FFL Fixed Field Length is a record structure that contains fixed length fields. Each field may contain text or binary data.
Term Description is a hybrid of the File Format and Record Structure
LCSV Line Sequential file with a CSV Record Structure.
RFFL Record Sequential file with a Fixed Field Length record structure.
   

The preceding provides a list of terms or abbreviations used when referring to the various file types and record structures.

Table of Contents Previous Section Next Section Clarity of Field Names

The field names defined in this test case are based on Data Usage, Business Clarity and the naming guidelines for the SimoTime Test Cases.

1. Field naming convention for Alpha-Numeric Data Strings.
1.1. The default value for the COBOL USAGE Clause is "USAGE IS DISPLAY
2. Field naming convention for Numeric-Values.
2.1. The field name is four text strings delimited by a hypten (-) symbol.
2.1.1. Common Name based on Record Structure
2.1.2. Numeric Format and Field Structure are as follows
2.1.3. TCNBRS01-ZDx-ii-dd
2.1.4. TCNBRS01-ZDx Zoned-Decimal format
2.1.5. TCNBRS01-PKx Packed-Decimal format
2.1.6. TCNBRS01-BNx Binary format
2.1.7. where x=S(igned) or U(nsign)
2.1.8. -ii-dd ii=count of integer positions
2.1.9. dd=count of decimal positions
2.2. Note: For purposes of discussion the following terms may be used and should be associated with the following definitions.
2.2.1. Integer - a number that is a positive, negative or zero value
2.2.2. Number - or Whole Number is a number that is a positive or zero value
2.2.3. Signed - an integer
2.2.4. Unsign - a whole number or implied positive

 

 

Table of Contents Previous Section Next Section Compiler Options

The following shows the compiler options (or Micro Focus Directives) used to compile the COBOL Programs.

DIALECT"MF"
CHARSET"ASCII"
ASSIGN"EXTERNAL"
IDXFORMAT"8"
IBMCOMP
NOTRUNC
HOSTNUMMOVE
HOSTNUMCOMPARE
NOSIGNFIXUP
HOSTARITHMETIC
CHECKNUM
RTNCODE-SIZE"2"
NOOPTIONAL-FILE
NOHOSTFD
NOQUERY
COBIDY
NOANIM
outdd"SYSOUT 121 L"
SHARE-OUTDD
DATAMAP
settings
list()
noform

Table of Contents Previous Section Next Section Job Scripts

A job script may be defined as a text file containing job setup information followed by job steps that identify programs to be executed along with parameters unique to the job step. A job script may be created using a text editor. The naming of a job script is determined by the Operating System and user-defined naming conventions. A simple job script may contain a single job step that performs a single function. A typical job script will contain multiple job steps executed in a predefined sequence. The status of each job step may be tested at the end of each job step.

The structure of the Windows Job Scripts used in this test case start with the following two statements

@echo OFF
set JOB_NAME=name-of-job-script

The first statement will reduce the number of messages displayed to the system console. The second statement identifies the job name.

Typically, each job script will contain a minimum of three (3) job steps. The first job step will prepare the system and job environments. The second job step will execute the user-defined function. The third job step will do the End-of-Job processing.

The job scripts will access (or call) two additional job scripts. The ENV1BASE job script is used as a single point of reference to set commonly used (or shared)) environment variables. The SIMONOTE job script is called to post messages to the system console and a job log file in a consistent manner. Additional information about these two job scripts may be found at the following link.

Link to Internet   Link to Server   Explore How to use Common or Shared Routines that perform repetitive tasks in a consistent manner. This link will provide information about setting common environment variables and many other utilitarian tasks.

The following is an overview of the Job Scripts for a Windows System
1. TCNE2AW2 - This job script will do an EBCDIC to ASCII conversion.
1.1. Read an EBCDIC-encoded, record sequential file containing numeric values that are stored in a Binary, Packed-Decimal or Zoned-Decimal format.
1.2. Call TCNE2AR1 to convert text fields from EBCDIC to ASCII encoding. Maintain numeric integrity and format for the Binary, Packed-Decimal or Zoned-Decimal fields.
1.3. Create and write to a new ASCII-encoded, record sequential file.
2. TCNEXTW2 - This job script will do an File Format and Record Content conversion.
2.1. Read an ASCII-encoded, record sequential file containing numeric values that are stored in a Binary, Packed-Decimal or Zoned-Decimal format.
2.2. Call TCNEXTR5 to convert the record structure and content. Numeric formats for the Zoned-Decimal, Packed-Decimal and Binary fields will be expanded to a text-oriented format with a separate sign byte and an explicit decimal point.
2.3. Create and write to a new ASCII-encoded, line sequential file with a Comma-Separated Values (CSV) record structure.
3. TCNHXDW1 - Create a Hex-Dump (HTML Format) of a Record Sequential file.
3.1. Read an ASCII-encoded, record sequential file containing numeric values that are stored in a Zoned-Decimal, Packed-Decimal and Binary format.
3.2. Create the Hexadecimal-Dump Text/HTML strings.
3.3. Create and write the Hex-Dump Information to a new ASCII-encoded, line sequential file.
3.4. Review the Hex-Dump file with a browser of choice.
4. TCNHXDW8 - Create a Hex-Dump (HTML Format) of a file containing 512-byte records.
4.1. Read an EBCDIC-encoded, record sequential file containing numeric values that are stored in a Zoned-Decimal and Packed-Decimal and Binary format.
4.2. Create the Hexadecimal-Dump Text/HTML strings.
4.3. Create and write the Hex-Dump Information to a new ASCII-encoded, line sequential file.
4.4. Review the Hex-Dump file with a browser of choice.
5. TCNHXRW1 - Create a Hex-Dump (TEXT Format) of a Record Sequential file.
5.1. Read an ASCII-encoded, record sequential file containing numeric values that are stored in a Zoned-Decimal, Packed-Decimal and Binary format.
5.2. Create the Hexadecimal-Dump text strings.
5.3. Create and write the Hex-Dump Information to a new ASCII-encoded, line sequential file.
5.4. Review the Hex-Dump file with a text editor of choice.
6. TCNHXRW8 - Create a Hex-Dump (TEXT Format) of a Record Sequential file.
6.1. Read an EBCDIC-encoded, record sequential file containing numeric values that are stored in a Zoned-Decimal and Packed-Decimal and Binary format.
6.2. Create the Hexadecimal-Dump text strings.
6.3. Create and write the Hex-Dump Information to a new ASCII-encoded, line sequential file.
6.4. Review the Hex-Dump file with a text editor of choice.
7. TCNIMPW5 - Read LSEQ_CSV, Make RSEQ containing Packed-Decimal.
8. TCNIMPW8 - Read LSEQ_CSV, Make RSEQ containing Packed-Decimal.
9. TCNPADW1 - Start Notepad, review CSV File.
10. The following group of job scripts will address numeric integrity by performing a variety of tasks that will validate and identify potential problems for numeric data strings.
10.1. TCNTOTW1 - This job script will Accumulate Summary Totals and calculate a record count for the file. This job script will access a record sequential File (RSEQ) and will be opened for a read-only capability. The fixed length, 512 byte record structure contains concatenated ASCII-encoded text strings and numeric values that are stored in a Binary, Packed-Decimal or Zoned-Decimal format. The numeric strings within the input file (SYSUT1) have been properly maintained.
10.2. TCNTOTW2 - This job script will attempt to Accumulate Summary Totals and calculate a record count for the file. The numeric strings within the input file (SYSUT1) should contain corrupted values.
On an IBM Mainframe this is expected to cause an S0C7 error message that results in an abnormal ending (ABEND) of the program.
On a Micro Focus system this is expected to cause an RTS163 error message that results in the abnormal ending (ABEND) of the program.
10.3. TCNTOTW3 - This job script will Validate numeric content and calculate a record count for the file. The numeric strings within the input file (SYSUT1) should contain corrupted values.
The program will check the content of a numeric string for proper numeric values and avoid the error message of S0C7 or RTS163. The record will be identified as containing a corrupt numeric value and processing will continue.
11. TCNTXTW8 - Read LSEQ ASCII File, create RSEQ EBCDIC File.
11.1. Read an ASCII-encoded, record sequential file containing numeric values that are stored in a Zoned-Decimal, Packed-Decimal and Binary format.
11.2. Create the Hexadecimal-Dump text strings.
11.3. Create and write the Text Strings, Numeric Values and Hex-Dump Information to a new ASCII-encoded, line sequential file that is defined as the SYSOUT device.
11.4. Review the Hex-Dump file with a text editor of choice.
12. TCNUSRW1 - User Review of record content within a Sequential File.
13. The following group of job scripts will describe and demonstrate the data file compare functions.
13.1. TCNCP1W1 - This job script will do a Physical File Compare of two data files. The program logic will compare the content of each record based on user-defined specifications. The results will be posted to the SYSLUSER device.
Note: based on the files being accessed the programmatic compare results should post an "Equal" condition with a Zero return code.
13.2. TCNCP1W9 - This job script will do a Physical File Compare of two data files. The program logic will compare the content of each record based on user-defined specifications. The results will be posted to the SYSLUSER device.
Note: based on the files being accessed the programmatic compare results should post a "NOT Equal" condition with a Zero return code.

 

Table of Contents Previous Section Next Section COBOL Source Members

The following outline provides a list of the COBOL programs that are used within this test case.

1. Convert EBCDIC to ASCII - This set of two (2) COBOL programs will be used to perform the conversion process of the record content.
1.1. TCNE2AC1 - This COBOL program will do the File I/O and call a second program to do the record content conversion.
1.2. TCNE2AR1 - This COBOL program will do the EBCDIC to ASCII record content conversion.
2. Convert ASCII to EBCDIC - This set of two (2) COBOL programs will be used to perform a record content conversion.
2.1. TCNA2EC1 - This COBOL program will do the File I/O and call a second program to do the record content conversion.
2.2. TCNA2ER1 - This COBOL program will do the EBCDIC to ASCII record content conversion.
3. Convert RSEQ to LCSV - This set of two (2) COBOL programs will be used to perform a conversiom of the file format, record content and record structure.
3.1. TCNEXTC1 - This COBOL program will do the File Format conversion and call a second program to do the conversion of the record content and record structure.
3.2. TCNEXTR1 - This COBOL program will do the record changes from an ASCII-encoded record of concatenated fixed-length fields containing text and numeric values stored in a Binary, Packed-Decimal or Zoned-Decimal format to an ASCII-encoded record of concatenated data striings containing text and expanded numeric values stored in a text-oriented format that includes an explicit decimal point and a separate sign symbol. The data strings are delimited by a comma. This record structure is referred to a Comma-Separated-Values (or CSV) format.

 

Table of Contents Previous Section Next Section Summary

This document and the links to other documents are intended to provide a greater awareness of the Data Management challenges that are encountered when sharing, moving or converting data.

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, Comment or Feedback  section of this document.

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.

Link to Internet   Link to Server   This is the Run Book for the TCNBRS01 Test Case. This test case will convert the file format, record content and record structure of an EBCDIC-encoded file that was created and transferred from an IBM Mainframe System to a format and structure that may be easily imported and accessed from within an ASCII-oriented relational data base or a spread sheet using Excel or LibreOffice Calc. This expanded request will involve more than a simple EBCDIC to ASCII conversion. This test case will describe and demonstrate how to identify and convert text strings between EBCDIC and ASCII and how to identify, expand and convert numeric values that are formatted as Binary, Packed-Decimal or Signed-Zoned-Decimal.

Link to Internet   Link to Server   Explore the non-Relational Data Connection for more examples of accessing methodologies and coding techniques for Data Files and VSAM Data Sets.

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.

Link to Internet   Link to Server   Explore How to use Common or Shared Routines that perform repetitive tasks in a consistent manner. This link will provide information about setting common environment variables and many other utilitarian tasks.

Table of Contents Previous Section Next Section Internet Access Required

The following links will require an internet connect.

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.

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 maintained by SimoTime Technologies and Services. 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.

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 simply give us a call or check the web site at http://www.simotime.com


Return-to-Top
SYS_PREP, Guide for Convert, Review and Compare
Copyright © 1987-2022
SimoTime Technologies and Services
All Rights Reserved
When technology complements business
http://www.simotime.com