Numeric Data Structures Storage, Retrieval & Conversion |
The SimoTime Home Page |
This document will describe and demonstrate how to access non-relational data structures (Sequential Files or VSAM Data Sets) and process records that contain text strings and numeric values. The processing techniques will create files, convert file formats, convert record structures, convert record content and view record content in a Hex Dump format. The numeric formats include Zoned Decimal (USAGE IS DISPLAY), Packed Decimal (USAGE IS COMP-3) and Binary (USAGE IS COMP). These numeric formats are commonly used on IBM Mainframe Systems or application programs that were created using the COBOL programming language.
Batch jobs are used to describe the details of the conversion process. The COBOL programs that do the numeric processing and conversion are generated using SIMOTIME Technology running on a Windows System with Micro Focus COBOL or a Linux (Ubuntu) System with GnuCOBOL.
1. | Obtain an EBCDIC-encoded Test File. |
1.1. | Transfer a test file from a Mainframe System. |
1.1.1. | Transfer a Record Sequential file that is EBCDIC-encoded with fixed-length records and multiple numeric formats. |
1.1.2. | Use File Transfer Protocol (FTP) with BINARY Mode to transfer the file. |
1.2. | Create a test file on a Local Server, Desktop or Laptop (Linux, UNIX or Windows). |
1.2.1. | Create a Spreadsheet of Text Strings and Numeric Values. |
1.2.1.1. | This spreadsheet may be managed as an Excel (XLS) or Open Document (ODS) Format. |
1.2.1.2. | A copy of the spreadsheet in CSV (Comma-Separated-Values) format will be required. |
1.2.1.3. | Convert the CSV File to an EBCDIC-encoded Record Sequential file that contains numeric values stored in a Packed-Decimal or Binary format. |
1.2.2. | Convert CSV File to an EBCDIC-encoded, Record Sequential File with Fixed-Length records. |
2. | Create an RSEQ-ASC File with Multiple Numeric Formats |
2.1. | This Test File is an ASCII-encoded Record Sequential File with fixed-record and fixed-field lengths. |
2.2. | This file contains numeric fields that use Packed-Decimal, Binary and Zoned-Decimal formats. |
3. | Create an RSEQ-ASC File with a Single Numeric Format |
3.1. | This Test File is an ASCII-encoded Record Sequential File with fixed-record and fixed-field lengths. |
3.2. | This file contains numeric fields that use a single numeric format of Zoned-Decimal with a Sign Leading Separate specification. |
4. | Convert the First File into a Second Test file |
4.1. | The Second file is a Line Sequential file with variable length records. |
4.2. | This process will read the first test file and create a second test file. |
4.2.1. | This process will do a file format conversion from Record Sequential to Line Sequential. |
4.2.2. | This process will do a record content conversion from Fixed-Field to CSV format. |
4.2.3. | This process will do a numeric field conversion from Packed and Binary to Plain Text numeric values. |
4.3. | The first test file is not changed. |
5. | Convert the Second Test File into a Final Test File. |
5.1. | The Final file is an ASCII-encoded Record Sequential File with fixed-record and fixed-field lengths. |
6. | Compare the First and Final Test Files |
7. | Hex-Dump of the Second and Final Test Files |
7.1. | Logical Hex-Dump of an ASCII/Text file with variable length records. |
7.1.1. | Intended for Application Programmers |
7.1.2. | Provides a Hex-Dump of the logical records within a file. |
7.2. | Logical Hex-Dump of a Record Sequential file with variable length records. |
7.2.1. | Intended for Application Programmers |
7.2.2. | Provides a Hex-Dump of the logical records within a file. |
7.3. | Physical Hex-Dump of a a file. This type of Hex-Dump uses byte-stream I/O to access a file. |
7.3.1. | Intended for System Programmers |
7.3.2. | Provides a Hex-Dump of the embedded physical file structural properties along with the logical records within a file. |
We have made a significant effort to ensure the documents and software technologies are correct and accurate. We reserve the right to make changes without notice at any time. The function delivered in this version is based upon the enhancement requests from a specific group of users. The intent is to provide changes as the need arises and in a timeframe that is dependent upon the availability of resources.
Copyright © 1987-2025
SimoTime Technologies and Services
All Rights Reserved
References to files may use the following naming convention.
1. | LSEQ-ASC-CSV-TXT |
1.1. | LSEQ defines a Line Sequential File. |
1.2. | ASC defines an ASCII encoding schema for the record content. |
1.3. | CSV defines a Record Structure as a Comma-Separated-Values format. |
1.4. | TXT defines a Text-oriented content for the fields within a record. Numeric values will use a Zoned-Decimal format with a separate sign character. |
2. | RSEQ-EBC-FFL-NBR |
2.1. | RSEQ defines a Record Sequential File. |
2.2. | EBC defines an EBCDIC encoding schema for the record content. |
2.3. | FFL defines a Fixed-Field-Length for the field structures within a record. |
2.4. | NBR defines the possible use of Zoned-Decimal, Packed-Decimal or Binary formats for Numeric Values. Non-Numeric data will use a Text or Character format. |
The following provides a list of terms or abbreviations used when referring to the various file types and record structures.
| ||||||||||||||||||||||||||||
Abbreviations and Notations for File, Record and Field Structures |
The following provides an overview of the various tasks that will be performed in this test case. The tasks may be executed on a Linux, UNIX or Windows System.
1. | Create LSEQ-ASC-CSV-TXT, Text & Numeric Data. |
1.1. | The output file will be an ASCII/Text File with a record structure that uses a Comma-Separated-Values (CSV) format. |
1.2. | The CSV file may be created using a batch job script. |
1.2.1. | On a Windows System a command (.CMD) file is used as a batch job script. |
1.2.2. | On a Linux or UNIX System a Bash Script (.sh) file is used as a batch job script. |
1.3. | The CSV file may be created using Spreadsheet software that contains columns of Text Strings and Numeric Values. |
1.3.1. | On a Windows System this spreadsheet may be managed by Microsoft Exec or LibreOffice Calc. |
1.3.2. | On a Linux or UNX System this spreadsheet may be managed by LibreOffice Calc. |
1.3.3. | A copy of the spreadsheet in CSV (Comma-Separated-Values) format will be required. |
2. | Convert LSEQ-CSV File to RSEQ-ASC File. |
2.1. | The output file will be an ASCII encoded Record Sequential File with fixed-record and fixed-field lengths. |
2.2. | The output file contains numeric fields that use Packed-Decimal, Binary and Zoned-Decimal formats. |
3. | Convert RSEQ-ASC File to RSEQ-EBC File. |
3.1. | The output file will be an EBCDIC encoded Record Sequential File with fixed-record and fixed-field lengths. |
3.2. | The input and output files contain numeric fields that use Packed-Decimal, Binary and Zoned-Decimal formats. |
3.3. | The output file should be identical to a record sequential file that was transferred from an IBM Mainframe System using the File Transfer Protocol (FTP) with MODE BINARY. |
4. | Convert RSEQ-EBC File to RSEQ-ASC File. |
5. | Compare RSEQ-ASC File with RSEQ-ASC File. |
5.1. | Compare the file that was created using the CSV formatted data to the file that was created using the mainframe formatted data. |
6. | Validate Numeric Integrity using Summary Totals and Record Counts |
7. | Create and Review Hex-Dump of Files |
7.1. | Logical Hex-Dump of an ASCII/Text file with variable length records. |
7.1.1. | Intended for Application Programmers |
7.1.2. | Provides a Hex-Dump of the logical records within a file. |
7.2. | Logical Hex-Dump of a Record Sequential file with variable length records. |
7.2.1. | Intended for Application Programmers |
7.2.2. | Provides a Hex-Dump of the logical records within a file. |
7.3. | Physical Hex-Dump of a a file. This type of Hex-Dump uses byte-stream I/O to access a file. |
7.3.1. | Intended for System Programmers |
7.3.2. | Provides a Hex-Dump of the embedded physical file structural properties along with the logical records within a file. |
The physical structure of numeric values that are stored in non-relational data structures (Sequential Files and VSAM Data Sets) will vary across Operating Systems and COBOL Technologies. This document will describe processing techniques that will adjust to these variances.
This suite of batch jobs and conversion programs will create and access ASCII/Text files and Record Sequential (RSEQ) files. ASCII/Text files may be referred to as Line Sequential (LSEQ) files.
Line Sequential files are ASCII/Text files. Depending on how the file is created it may have fixed or variable length records. The separation of the individual records is maintained by the use of separator byte(s) between the records. For Windows this is usually a two byte value consisting of a Carriage-Return and Line-Feed (or CRLF), the hexadecimal notation is x'0D' and x'0A'. For Linux and UNIX systems this is usually a one byte value consisting of a Line-Feed (or LF), the hexadecimal notation is x'0A'.
The record content for Line Sequential files should be display or print text using the ASCII encoding format. Hence the name ASCII/Text files. These files should not contain packed or binary data strings.
A Line Sequential file may be viewed with a text editor of choice on the operating system of choice.
A Record Sequential file may contain fixed-length records or variable-length records. The record sequential files with fixed-length records are a series of concatenated records or data strings of a predefined length without record separator values between each record. The first byte of the first record starts at the first byte of the file.
A record sequential file with variable-length records is a series of concatenated records or data strings of varying lengths without record separator values between each record. Each record is preceded by a record descriptor word (RDW) that defines the length of the record that follows. A Micro Focus header record is placed at the start of the file when the file is created. The physical file structure (or format) of a record sequential file with variable length records will vary depending on the system platform.
The record content for Record Sequential files may contain text strings that are ASCII or EBCDIC-encoded and numeric values that use a packed-decimal, zoned-decimal or binary format.
When Data Files are created and accessed on a single system an awareness of the record content and record structure is helpful. When Data Files are shared across multiple systems an understanding of the record content and record structure becomes a requirement.
Plain Text Data may be described as characters that can be viewed by a human being or used without requiring modification, conversion or decryption. Also, Plain Text Data may include characters that control simple arrangement of text, such as line breaks or tabulation characters.
ASCII or EBCDIC encoding for text data
Business applications that are executed on an IBM Mainframe System or application programs that were created using the COBOL programming language use a variety of formats to define and process numeric values. The following is a list of some of the commonly used numeric formats.
Explore The Binary or COMP format for numeric data strings. This numeric structure is supported by COBOL and may be explicitly defined with the "USAGE IS COMP" or "USAGE IS BINARY" clause.
Explore The Edited for Display format for numeric data strings. This numeric structure is supported by COBOL and may be used with an edit-mask to prepare the presentation for readability by human beings.
Explore The Packed-Decimal or COMP-3 format for numeric data strings. This numeric structure is supported by COBOL and may be explicitly defined with the "USAGE IS COMP-3" clause.
Explore The Zoned-Decimal format for numeric data strings. This numeric structure is the default numeric for COBOL and may be explicitly defined with the "USAGE IS DISPLAY" clause.
Binary Data, Bit Sensitive
TAG
Field Format, Fixed or Variable
TAG
This suite of batch jobs and conversion programs will create and access Line Sequential (LSEQ or ASCII/Text) files and Record Sequential (RSEQ) files. The record content and structure within the LSEQ files are ASC encoded and use a Comma-Separated-Values (CSV) format. The record content and structure within the RSEQ files may be ASC encoded or EBC encoded and use a Fixed-Field-Length (FFL) format. The numeric values may be stored in Zoned-Decimal, Packed-Decimal or Binary.
This suite of batch jobs will process a number of files with different file and record structures. This section describes the layout of the records within the files and the definitions of the fields within the records.
The following describes a file with fixed-record and fixed-field lengths. The records contain text data (may be ASC or EBC-encoded) and numeric values that are stored in Zoned-Decimal, Packed-Decimal and Binary formats.
Explore a Record Structure containing Numeric Values stored in a Zoned-Decimal, Packed-Decimal and Binary format. This information is presented in a generated HTML document based on a User-Defined COBOL copyfile.
The following describes a file with fixed-record and fixed-field lengths. The records contain text data (may be ASC or EBC-encoded) and numeric values that are stored in a Text format with a separate, leading sign character.
Explore a Record Structure containing Numeric Values where the Packed and Binary formats have been converted into a Text format. This information is presented in a generated HTML document based on a User-Defined COBOL copyfile.
This batch job will create a Line Sequential (LSEQ or ASCII/Text) file. The record content should be ASC encoded, text data. This file may be viewed with a text editor of choice.
As a secondary task the batch job will produce a physical Hex-Dump of the file it just created. The Hex-Dump will show the logical records and the control bytes within the file. For example, since this is an LSEQ file the Hex-Dump will show the separator byte(s) between the records.
The following is a listing of the Bash Script member (nbrmixs1.sh) that is used to create a Line Sequential File and produce a Hex-Dump view of a physical file that is stored on a Linux System.
#!/bin/bash JOBNAME=nbrmixs1 # ********************************************************************* # * Bash Script File - provided by SimoTime Technologies * # * (C) Copyright 1987-2018 All Rights Reserved * # * Web Site URL: http://www.simotime.com * # * e-mail: helpdesk@simotime.com * # ********************************************************************* # * # * Text - Create an LCSV File using the Bash ECHO Command. # * Author - SimoTime Technologies # * Date - January 24, 1996 # * # * This Batch Job (Bash Script) will run on an Ubuntu System. # * # * The input data is included within an ECHO statement. The input # * data is written to an output file using the pipe function. # * # * The output file is a Line Sequential File with variable length # * records that contain variable length fields (or sub-strings) that # * are separated by a delimiter character. # * # * This job will produce a Hex-Dump of the output file that includes # * the logical record content and the embedded format control # * characters. # * # * ************ # * * nbrmixs1 * # * *********sh* # * * # * * # * * # * ************ # * * Step 1 ***************************** # * ************ * # * * ************ ************ ************ # * * * ENV4SYS1 ******* for-loop ******* export * # * * *******lseq* *********so* ************ # * * # * * # * ************ # * * Step 2 ***************************** # * ************ * # * * ************ ************ ************ # * * * instream ******* echo ******* SYSUT2 * # * * ************ *******bash* *******lcsv* # * * # * * # * ************ ************ # * * Step 3 ************************ cobcrun * # * ************ ************ # * * * # * * ************ ************ ************ # * * * SYSUT1 ******* SIMOZAPS ******* SYSUT2 * # * * *******lcsv* *********so* *******lseq* # * * # * * # * * # * ************ ************ # * * Step 4 ************************ EOJ * # * ************ ************ # * # * # * Job Step and Description # * ------ ---------------------------------------------------------- # * Step 1, Prepare the System Environment. # * Step 2, Create a new ASC-encoded LSEQ, CSV File # * Step 3, Create a Physical Hex-Dump of the LSEQ, CSV File. # * Step 4, End of Job. # * # * ******************************************************************** # * Step 1 of 4, Prepare the System Environment. # * JOBSTATUS=0 for textstring in $(cat ENV4SYS1.cfg); do # # * The following statement will replace all occurences # # * of USD_BASESYS1 with the value of the BASESYS1 # # * environment variable. textstring=${textstring//USD_BASESYS1/$BASESYS1} # # * The following statement will replace all occurences # # * of /USD_JOBNAME with the value of the JOBNAME # # * environment variable. textstring=${textstring/USD_JOBNAME/$JOBNAME} export $textstring rc=$? if [ $rc != 0 ] then simonote.sh "# $textstring - Return Code is $rc" JOBSTATUS=$rc fi done # * simonote.sh "# **************************************************************$JOBNAME" echo "# BASESYS1........... $BASESYS1" echo "# COB_LIBS........... $COB_LIBS" echo "# COB_LIBRARY_PATH... $COB_LIBRARY_PATH" echo "# SIMONOTE........... $SIMONOTE" simonote.sh "# JOBNAME............ $JOBNAME" # * # * ******************************************************************* # * Step 2 of 4, Create a new ASC-encoded LSEQ, CSV File... # * # * SYSUT2 The File format is ASCII/Text (Line Sequential or LSEQ). # * The record/field structure uses a Comma-Separated-Value or # * CSV format. # * simonote.sh "# StepInfo Create and populate a new LSEQ, CSV File" export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/XLSS/SIMOTIME.DATA.NBRMIXX1.csv echo "ZDU_5_0,123,ZDS_5_0,123,PKU_5_0 ,123,PKS_5_0 ,123,BNU_5_0 ,123,BNS_5_0 ,123,FILLER ">$SYSUT2 echo "ZDU_5_0,123,ZDS_5_0,-122,PKU_5_0 ,123,PKS_5_0 ,-122,BNU_5_0 ,128,BNS_5_0 ,-122,FILLER ">>$SYSUT2 # * # * ******************************************************************** # * Step 3 of 4, Create a Physical Hex-Dump of the LSEQ, CSV File. # * Prepare the environment, map the file names... simonote.sh "# StepInfo Create a Physical Hex-Dump of the LSEQ, CSV File" export SYSUT1=$BASESYS1/SIMOSAM1/DEVL/DATA/XLSS/SIMOTIME.DATA.NBRMIXX1.csv export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/TXT1/SIMOTIME_HEXXDUMP_NBRMIXX1.txt simonote.sh "# DATATAKE is $SYSUT1" simonote.sh "# DATADUMP is $SYSUT2" # * if [ -f "$SYSUT2" ] then rm $SYSUT2 fi # * # * SIMOZAPS is a Utility Program that is included in the SIMOTIME # * Enterprise Library. # * cobcrun SIMOZAPS HEXCESS $SYSUT1 VIEW=1 STOP=9999999 | tee $SYSUT2 rc=$? if [ $rc != 0 ] then simonote.sh "# ABENDING $name - Return Code is $rc" JOBSTATUS=$rc else ((AOK_Count++)) fi # * # * ******************************************************************* # * Step 4 of 4, End of Job Processing... # * if [ "$JOBSTATUS" = "0" ] then simonote.sh "# Finished Job Name $JOBNAME" else simonote.sh "# ABENDING Job Name $JOBNAME" fi
A record within a Line Sequential File may be processed as a single string of text data or as multiple strings (or fields) of text data separated by a field delimiter character. For this file the record structure contains multiple strings that are delimited by a comma character.
The following is a listing of the physical hex-dump file that is produced by executing the physical hex-dump program.
* HEXCESS2 by SimoTime Date: 2017-10-04 Time: 16:48:15:52 * HEXCESS2 Starting at 000000000001 * HEXCESS2 Stopping at 000009999999 * HEXCESS2 File size 000000000171 Position Hex..... ........ ........ ........ ebcdic.......... ascii........... 000000001 5A44555F 355F302C 3132332C 5A44535F !...........!... ZDU_5_0,123,ZDS_ 000000017 355F302C 3132332C 504B555F 355F3020 ........&....... 5_0,123,PKU_5_0 000000033 2C313233 2C504B53 5F355F30 202C3132 .....&.......... ,123,PKS_5_0 ,12 000000049 332C424E 555F355F 30202C31 32332C42 ...+............ 3,BNU_5_0 ,123,B 000000065 4E535F35 5F30202C 3132332C 46494C4C +.............<< NS_5_0 ,123,FILL 000000081 4552200A 5A44555F 355F302C 3132332C ....!........... ER .ZDU_5_0,123, 000000097 5A44535F 355F302C 2D313232 2C504B55 !............&.. ZDS_5_0,-122,PKU 000000113 5F355F30 202C3132 332C504B 535F355F ..........&..... _5_0 ,123,PKS_5_ 000000129 30202C2D 3132322C 424E555F 355F3020 .........+...... 0 ,-122,BNU_5_0 000000145 2C313238 2C424E53 5F355F30 202C2D31 ......+......... ,128,BNS_5_0 ,-1 000000161 32372C46 494C4C45 52200Axx xxxxxxxx .....<<......... 27,FILLER ...... * HEXCESS2 by SimoTime, Program-is-ENDING...
In the preceding Hex-Dump notice positions 84 and 171. The positions contain the hexadecimal notation of x'0A' that may be referred to as a Line Feed (LF) control character. This is a record separator byte that was defined when the file was created.
Note: Since the record separator byte is a single byte it indicates this file was created on a Linux or UNIX System. For a Windows System the record separator would be a two byte value of x'0D0A' or a Carriage-Return and Line-Feed (or CRLF)
The "Import" function is a specialized "File Format and Record Content" conversion process. The file format conversion is from ASCII/Text (Line Sequential or LSEQ) to Record Sequential (RSEQ). The record content conversion is from Comma-Separated-Values (CSV) of text strings to a Fixed-Field-Length (FFL) with numeric structures (or fields) that are formatted as Zoned-Decimal, Packed-Decimal or Binary.
As a secondary task the batch job will produce a logical Hex-Dump of the file it just created. The Hex-Dump will show the logical records within the file. Since the records in this file contain numeric structures (or fields) that are formatted as Zoned-Decimal, Packed-Decimal or Binary the Hex-Dump will show the physical content of these fields.
The following is a listing of the Bash Script member (nbrmixs2.sh) that is used to create the Record Sequential File and produce a Hex-Dump view of records within a Record Sequential file containing fixed-length records and fixed-length fields.
#!/bin/bash JOBNAME=nbrmixs2 # ********************************************************************* # * Bash Script File - provided by SimoTime Technologies * # * (C) Copyright 1987-2018 All Rights Reserved * # * Web Site URL: http://www.simotime.com * # * e-mail: helpdesk@simotime.com * # ********************************************************************* # * # * Text - Import from LCSV to RSEQ-ASC-FFL-NBR. # * Author - SimoTime Technologies # * Date - January 24, 1996 # * # * This Job will run on an Ubuntu System. The COBOL source code for # * the conversion programs was generated using SIMOTIME Technologies. # * For this job the programs were compiled using GnuCOBOL. # * # * The conversion programs will read a CSV-formatted, ASCII/Text File # * and write to a Record Sequential, ASC-encoded, File with # * Fixed-Length Records and Fixed-Field-Lengths. # * The output records will contain fields with numeric values stored # * in the following formats. # * Zoned-Decimal (USAGE IS DISPLAY) # * Packed-Decimal (USAGE IS COMP-3) # * Binary (USAGE IS COMP) # * # * This job will produce a Hex-Dump of the output file that includes # * the logical record content. # * # * ************ # * * nbrmixs2 * # * *********sh* # * * # * * # * ************ # * * Step 1 ***************************** # * ************ * # * * ************ ************ ************ # * * * ENV4SYS1 ******* for-loop ******* export * # * * *******lseq* *********so* ************ # * * # * * # * ************ ************ # * * Step 2 ************************ cobcrun * # * ************ ************ # * * * # * * ************ ************ ************ # * * * SYSUT1 ******* NBRMIXC8 ******* SYSUT2 * # * * *******lcsv* * NBRMIXR8 * * *******rseq* # * * *********so* * # * * * ************ # * * **** SYSOUT * # * * *******lseq* # * * # * ************ ************ # * * Step 3 ************************ cobcrun * # * ************ ************ # * * * # * * ************ ************ ************ # * * * SYSUT1 ******* HXRS1KC3 ******* SYSUT2 * # * * *******rseq* *********so* *******lseq* # * * # * * # * ************ ************ # * * Step 4 ************************ EOJ * # * ************ ************ # * # * ******************************************************************** # * Step 1 of 4, Prepare the System Environment. # * JOBSTATUS=0 for textstring in $(cat ENV4SYS1.cfg); do # # * The following statement will replace all occurences # # * of USD_BASESYS1 with the value of the BASESYS1 # # * environment variable. textstring=${textstring//USD_BASESYS1/$BASESYS1} # # * The following statement will replace all occurences # # * of /USD_JOBNAME with the value of the JOBNAME # # * environment variable. textstring=${textstring/USD_JOBNAME/$JOBNAME} export $textstring rc=$? if [ $rc != 0 ] then simonote.sh "# $textstring - Return Code is $rc" JOBSTATUS=$rc fi done # * simonote.sh "# **************************************************************$JOBNAME" echo "# BASESYS1........... $BASESYS1" echo "# COB_LIBS........... $COB_LIBS" echo "# COB_LIBRARY_PATH... $COB_LIBRARY_PATH" echo "# SIMONOTE........... $SIMONOTE" simonote.sh "# JOBNAME............ $JOBNAME" # * # * ******************************************************************* # * Step 2 of 4, Create a new ASC-encoded Record Sequential file... # * # * SYSUT1 is an ASCII/Text (Line Sequential) File. The record/field # * structure uses a Comma-Separated-Value or CSV format. # * SYSUT2 is an ASCII-encoded, Record Sequential File. The record # * structure and field structure are fixed-length. The # * numeric field formats include Binary, Packed-Decimal and # * Zoned-Decimal. # * simonote.sh "# StepInfo Create an ASC-encoded Record Sequential file that contains" simonote.sh "# StepInfo Zoned-Decimal, Packed-Decimal and Binary Numeric values" export SYSUT1=$BASESYS1/SIMOSAM1/DEVL/DATA/XLSS/SIMOTIME.DATA.NBRMIXX1.csv export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/ASC1/SIMOTIME.DATA.NBRMIXD1.dat # * if [ -f "$SYSUT2" ] then rm $SYSUT2 fi # * # * Create and populate a new Record Sequential file" # * Note: the tee command will write to both the standard output # * device and a file. # * cobcrun NBRMIXC8 | tee $BASESYS1/SIMOSAM1/DEVL/LOGS/SYSOUT_USERPROG_NBRMIXC8.txt if [ -f "$SYSUT2" ] then simonote.sh "# SYSUT1 is $SYSUT1" simonote.sh "# SYSUT2 is $SYSUT2" else simonote.sh "# ABENDING File not created, $SYSUT2" exit 9001 fi # * # * ******************************************************************* # * Step 3 of 4, Prepare the Job Step environment, map the file names, # * create a Control File and produce a Hex-Dump the file. simonote.sh "# StepInfo Create a Logical Hex-Dump of the ASC-encoded, RSEQ, FFL File" export SYSUT1=$BASESYS1/SIMOSAM1/DEVL/DATA/ASC1/SIMOTIME.DATA.NBRMIXD1.dat export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/ASC1/SIMOTIME_HEX4DUMP_NBRMIXD1.txt export SYSUT3=$BASESYS1/SIMOSAM1/DEVL/DATA/ASC1/SIMOTIME.CNTL.HXRSEQ01.txt simonote.sh "# DATATAKE is $SYSUT1" simonote.sh "# DATADUMP is $SYSUT2" simonote.sh "# DATACNTL is $SYSUT3" echo "/RANGE 1 9999999">$SYSUT3 echo "/DUMPASC Y">>$SYSUT3 echo "/DUMPHEX Y">>$SYSUT3 echo "/DUMPEBC N">>$SYSUT3 echo "/DUMPCTR Y">>$SYSUT3 echo "/DUMPRPI Y">>$SYSUT3 echo "/END ">>$SYSUT3 # * # * Run the program to produce a Logical Hex-Dump. # * if [ -f "$SYSUT2" ] then rm $SYSUT2 fi cobcrun HXRS1KC3 | tee $SYSOUT rc=$? if [ $rc != 0 ] then simonote.sh "# ABENDING $name - Return Code is $rc" JOBSTATUS=$rc else ((AOK_Count++)) fi # * # * ******************************************************************* # * Step 4 of 4, End of Job Processing... # * if [ "$JOBSTATUS" = "0" ] then simonote.sh "# Finished Job Name $JOBNAME" else simonote.sh "# ABENDING Job Name $JOBNAME" fi
This file contains numeric values that are stored in Zoned-Decimal, Packed-Decimal and Binary formats.
The record structure and COBOL copy file are described in the Records with Text & Numeric sub-Strings section of this document.
The following is a listing of the logical hex-dump file that is produced by executing the logical hex-dump program.
**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** * HXRS1KC3 Batch, HEX-Dump of RSEQ LRECL=1024 v16.01.01 helpdesk@simotime.com * HXRS1KC3 This Data File HexDump Member was generated by SimoTime Technologies **************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** Starting, Batch, HEX-Dump of RSEQ LRECL=1024 http://www.SimoTime.com ....:...10....:...20....:...30....:...40....:...50....:...60....:...70....:...80....:...90....:..100....:..110....:..120....:..130....:..140....:..150....:..160....:..170....:..180....:..190....:..200....:..210....:..220....:..230....:..240....:..250....:..260....:..270....:..280....:..290....:..300....:..310....:..320....:..330....:..340....:..350....:..360....:..370....:..380....:..390....:..400....:..410....:..420....:..430....:..440....:..450....:..460....:..470....:..480....:..490....:..500....:..510....:..520....:..530....:..540....:..550....:..560....:..570....:..580....:..590....:..600....:..610....:..620....:..630....:..640....:..650....:..660....:..670....:..680....:..690....:..700....:..710....:..720....:..730....:..740....:..750....:..760....:..770....:..780....:..790....:..800....:..810....:..820....:..830....:..840....:..850....:..860....:..870....:..880....:..890....:..900....:..910....:..920....:..930....:..940....:..950....:..960....:..970....:..980....:..990....:.1000....:.1010....:.1020.... 5455353233333545535323333354553532013545535320134455353200074455353200074444452222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A45F5F0000123A43F5F00001230B5F5F0002F0B3F5F0002C2E5F5F00000B2E3F5F00000B69CC520000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 ZDU_5_0 00123ZDS_5_0 00123PKU_5_0 ..?PKS_5_0 ..
TAG
TAG
TAG
TAG
TAG
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.
The First Test File is an ASCII-encoded, Record Sequential File with fixed-record and fixed-field lengths.
The following is a listing of the Bash Script member (nbrmixs8.sh) that is used to create the First Test file. This Job Script will create a Record Sequential (RSEQ) file with fixed length records.
#!/bin/bash JOBNAME=nbrmixs8 # ********************************************************************* # * Bash Script File - provided by SimoTime Technologies * # * (C) Copyright 1987-2018 All Rights Reserved * # * Web Site URL: http://www.simotime.com * # * e-mail: helpdesk@simotime.com * # ********************************************************************* # * # * Text - Import from CSV to Record Sequential File. # * Author - SimoTime Technologies # * Date - January 24, 1996 # * # * This Job will run on an Ubuntu System. The COBOL source code for # * the conversion programs was generated using SIMOTIME Technologies. # * For this job the programs were compiled using GnuCOBOL. # * The conversion programs will read a CSV-formatted, ASCII/Text File # * and create a Record Sequential File with Fixed-Record and # * Fixed-Field lengths. The output records will contain fields with # * numeric values stored in Zoned-Decimal (USAGE IS DISPLAY), # * Packed-Decimal (USAGE IS COMP-3) & Binary (USAGE IS COMP) formats. # * # * ************ # * * nbrmixs8 * # * *********sh* # * * # * * # * ************ # * * Step 1 ***************************** # * ************ * # * * ************ ************ ************ # * * * ENV4SYS1 ******* for-loop ******* export * # * * *******lseq* *********so* *******stmt* # * * # * * # * ************ # * * Step 2 ***************************** # * ************ * # * * ************ ************ ************ # * * * instream ******* echo ******* SYSUT2 * # * * ************ *******bash* *******lcsv* # * * # * * # * ************ ************ # * * Step 3 ************************ cobcrun * # * ************ ************ # * * * # * * ************ ************ ************ # * * * SYSUT1 ******* SIMOZAPS ******* SYSUT2 * # * * *******lcsv* *********so* *******lseq* # * * # * * # * ************ ************ # * * Step 4 ************************ cobcrun * # * ************ ************ # * * * # * * ************ ************ ************ # * * * SYSUT1 ******* NBRMIXC8 ******* SYSUT2 * # * * *******lcsv* * NBRMIXR8 * * *******rseq* # * * *********so* * # * * * ************ # * * **** SYSOUT * # * * *******lseq* # * * # * ************ ************ # * * Step 5 ************************ cobcrun * # * ************ ************ # * * * # * * ************ ************ ************ # * * * SYSUT1 ******* HXRS1KC3 ******* SYSOUT * # * * *******rseq* *********so* *******lseq* # * * # * * # * ************ ************ # * * Step 6 ************************ cobcrun * # * ************ ************ # * * * # * * ************ ************ ************ # * * * SYSUT1 ******* NBRMIXU8 ******* SYSUT2 * # * * *******lcsv* * NBRMIXR8 * * *******rseq* # * * * NBRMIXR1 * * # * * *********so* * ************ # * * **** SYSOUT * # * * *******lseq* # * * # * ************ ************ # * * Step 7 ************************ cobcrun * # * ************ ************ # * * * # * * ************ ************ ************ # * * * SYSUT1 ******* HXRS1KC3 ******* SYSOUT * # * * *******rseq* *********so* *******lseq* # * * # * * # * * # * * # * ************ ************ # * * Step 8 ************************ EOJ * # * ************ ************ # * # * # * Job Step and Description # * ------ ---------------------------------------------------------- # * Step 1, Prepare the System Environment. # * Step 2, Create a new ASC-encoded LSEQ, CSV File # * Step 3, Create a Physical Hex-Dump of the LSEQ, CSV File. # * Step 4, Create an ASC-encoded Record Sequential file that contains # * Zoned-Decimal, Packed-Decimal and Binary Numeric values. # * Step 5, Create a Logical Hex-Dump of the ASC-encoded, RSEQ, FFL File # * Step 6, Create an EBC-encoded Record Sequential file that contains # * Zoned-Decimal, Packed-Decimal and Binary Numeric values. # * Step 7, Create a Logical Hex-Dump of the EBC-encoded, RSEQ, FFL File # * Step 8, End of Job. # * # * ******************************************************************** # * Step 1 of 8, Prepare the System Environment. # * JOBSTATUS=0 for textstring in $(cat ENV4SYS1.cfg); do # # * The following statement will replace all occurences # # * of USD_BASESYS1 with the value of the BASESYS1 # # * environment variable. textstring=${textstring//USD_BASESYS1/$BASESYS1} # # * The following statement will replace all occurences # # * of /USD_JOBNAME with the value of the JOBNAME # # * environment variable. textstring=${textstring/USD_JOBNAME/$JOBNAME} export $textstring rc=$? if [ $rc != 0 ] then simonote.sh "# $textstring - Return Code is $rc" JOBSTATUS=$rc fi done # * simonote.sh "# **************************************************************$JOBNAME" echo "# BASESYS1........... $BASESYS1" echo "# COB_LIBS........... $COB_LIBS" echo "# COB_LIBRARY_PATH... $COB_LIBRARY_PATH" echo "# SIMONOTE........... $SIMONOTE" simonote.sh "# JOBNAME............ $JOBNAME" simonote.sh "# JS01of08 - Finalize System and Job Prepapration " # * # * ******************************************************************* # * Step 2 of 8, Create a new ASC-encoded LSEQ, CSV File... # * # * SYSUT2 The File format is ASCII/Text (Line Sequential or LSEQ). # * The record/field structure uses a Comma-Separated-Value or # * CSV format. # * simonote.sh "# JS02of08 - Create and populate a new LSEQ, CSV File" export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/XLSS/SIMOTIME.DATA.NBRMIXX1.csv echo "ZDU_5_0,123,ZDS_5_0,123,PKU_5_0 ,123,PKS_5_0 ,123,BNU_5_0 ,123,BNS_5_0 ,123,FILLER ">$SYSUT2 echo "ZDU_5_0,123,ZDS_5_0,-122,PKU_5_0 ,123,PKS_5_0 ,-122,BNU_5_0 ,128,BNS_5_0 ,-127,FILLER ">>$SYSUT2 # * # * ******************************************************************** # * Step 3 of 8, Create a Physical Hex-Dump of the LSEQ, CSV File. # * Prepare the environment, map the file names... simonote.sh "# JS03of08 - Create a Physical Hex-Dump of the LSEQ, CSV File" export SYSUT1=$BASESYS1/SIMOSAM1/DEVL/DATA/XLSS/SIMOTIME.DATA.NBRMIXX1.csv export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/TXT1/SIMOTIME_HEXXDUMP_NBRMIXX1.txt simonote.sh "# DATATAKE is $SYSUT1" simonote.sh "# DATADUMP is $SYSUT2" # * if [ -f "$SYSUT2" ] then rm $SYSUT2 fi # * cobcrun SIMOZAPS HEXCESS $SYSUT1 VIEW=1 STOP=9999999 | tee $SYSUT2 rc=$? if [ $rc != 0 ] then simonote.sh "# ABENDING $name - Return Code is $rc" JOBSTATUS=$rc else ((AOK_Count++)) fi # * # * ******************************************************************* # * Step 4 of 8, Create a new ASC-encoded Record Sequential file... # * # * SYSUT1 is an ASCII/Text (Line Sequential) File. The record/field # * structure uses a Comma-Separated-Value or CSV format. # * SYSUT2 is an ASCII-encoded, Record Sequential File. The record # * structure and field structure are fixed-length. The # * numeric field formats include Binary, Packed-Decimal and # * Zoned-Decimal. # * simonote.sh "# JS04of08 - Create an ASC-encoded Record Sequential file that contains" simonote.sh "# JS04of08 - Zoned-Decimal, Packed-Decimal and Binary Numeric values" export SYSUT1=$BASESYS1/SIMOSAM1/DEVL/DATA/XLSS/SIMOTIME.DATA.NBRMIXX1.csv export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/ASC1/SIMOTIME.DATA.NBRMIXD1.dat # * if [ -f "$SYSUT2" ] then rm $SYSUT2 fi # * # * Create and populate a new Record Sequential file" # * Note: the tee command will write to both the standard output # * device and a file. # * cobcrun NBRMIXC8 | tee $BASESYS1/SIMOSAM1/DEVL/LOGS/SYSOUT_USERPROG_NBRMIXC8.txt if [ -f "$SYSUT2" ] then simonote.sh "# SYSUT1 is $SYSUT1" simonote.sh "# SYSUT2 is $SYSUT2" else simonote.sh "# ABENDING File not created, $SYSUT2" exit 9001 fi # * # * ******************************************************************* # * Step 5 of 8, Prepare the Job Step environment, map the file names, # * create a Control File and produce a Hex-Dump the file. simonote.sh "# JS05of08 - Create a Logical Hex-Dump of the ASC-encoded, RSEQ, FFL File" export SYSUT1=$BASESYS1/SIMOSAM1/DEVL/DATA/ASC1/SIMOTIME.DATA.NBRMIXD1.dat export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/ASC1/SIMOTIME_HEX4DUMP_NBRMIXD1.txt export SYSUT3=$BASESYS1/SIMOSAM1/DEVL/DATA/ASC1/SIMOTIME.CNTL.HXRSEQ01.txt simonote.sh "# DATATAKE is $SYSUT1" simonote.sh "# DATADUMP is $SYSUT2" simonote.sh "# DATACNTL is $SYSUT3" echo "/RANGE 1 9999999">$SYSUT3 echo "/DUMPASC Y">>$SYSUT3 echo "/DUMPHEX Y">>$SYSUT3 echo "/DUMPEBC N">>$SYSUT3 echo "/DUMPCTR Y">>$SYSUT3 echo "/DUMPRPI Y">>$SYSUT3 echo "/END ">>$SYSUT3 # * # * Run the program to produce a Logical Hex-Dump. # * if [ -f "$SYSUT2" ] then rm $SYSUT2 fi cobcrun HXRS1KC3 | tee $SYSOUT rc=$? if [ $rc != 0 ] then simonote.sh "# ABENDING $name - Return Code is $rc" JOBSTATUS=$rc else ((AOK_Count++)) fi # * # * ******************************************************************* # * Step 6 of 8, Create a new EBC-encoded Record Sequential file... # * # * SYSUT1 is an ASCII/Text (Line Sequential) File. The record/field # * structure uses a Comma-Separated-Value or CSV format. # * SYSUT2 is an EBCDIC-encoded, Record Sequential File. The record # * structure and field structure are fixed-length. The # * numeric field formats include Binary, Packed-Decimal and # * Zoned-Decimal. # * simonote.sh "# JS06of08 - Create an EBC-encoded Record Sequential file that contains" simonote.sh "# JS06of08 - Zoned-Decimal, Packed-Decimal and Binary Numeric values" # * Map File Names, Delete previously created files export SYSUT1=$BASESYS1/SIMOSAM1/DEVL/DATA/XLSS/SIMOTIME.DATA.NBRMIXX1.csv export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/EBC1/SIMOTIME.DATA.NBRMIXD1.dat # * if [ -f "$SYSUT2" ] then rm $SYSUT2 fi # * # * Create and populate a new EBC-encoded, Record Sequential file" # * Note: the tee command will write to both the standard output # * device and a file. # * cobcrun NBRMIXU8 | tee $BASESYS1/SIMOSAM1/DEVL/LOGS/SYSOUT_USERPROG_NBRMIXU8.txt if [ -f "$SYSUT2" ] then simonote.sh "# SYSUT1 is $SYSUT1" simonote.sh "# SYSUT2 is $SYSUT2" else simonote.sh "# ABENDING File not created, $SYSUT2" exit 9001 fi # * # * ******************************************************************* # * Step 7 of 8, Prepare the Job Step environment, map the file names, # * create a Control File and produce a Hex-Dump the file. simonote.sh "# JS07of08 - Create a Logical Hex-Dump of the EBC-encoded, RSEQ, FFL File" export SYSUT1=$BASESYS1/SIMOSAM1/DEVL/DATA/EBC1/SIMOTIME.DATA.NBRMIXD1.dat export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/EBC1/SIMOTIME_HEX4DUMP_NBRMIXD1.txt export SYSUT3=$BASESYS1/SIMOSAM1/DEVL/DATA/EBC1/SIMOTIME.CNTL.HXRSEQ01.txt simonote.sh "# DATATAKE is $SYSUT1" simonote.sh "# DATADUMP is $SYSUT2" simonote.sh "# DATACNTL is $SYSUT3" echo "/RANGE 1 9999999">$SYSUT3 echo "/DUMPASC N">>$SYSUT3 echo "/DUMPHEX Y">>$SYSUT3 echo "/DUMPEBC Y">>$SYSUT3 echo "/DUMPCTR Y">>$SYSUT3 echo "/DUMPRPI Y">>$SYSUT3 echo "/END ">>$SYSUT3 # * # * Run the program to produce a Logical Hex-Dump. # * if [ -f "$SYSUT2" ] then rm $SYSUT2 fi cobcrun HXRS1KC3 | tee $SYSOUT rc=$? if [ $rc != 0 ] then simonote.sh "# ABENDING $name - Return Code is $rc" JOBSTATUS=$rc else ((AOK_Count++)) fi # * # * ******************************************************************* # * Step 8 of 8, End of Job Processing... # * simonote.sh "# JS08of08 End of Job Processing" if [ "$JOBSTATUS" = "0" ] then simonote.sh "# Finished Job Name $JOBNAME" else simonote.sh "# ABENDING Job Name $JOBNAME" fi
The following is a listing of the Bash Script member (nbrmixf1.sh) that is used to produce a Hex-Dump view of records within a Record Sequential file containing fixed-length records and fixed-length fields.
#!/bin/bash JOBNAME=nbrmixf1 # * ******************************************************************* # * Bash Script File - provided by SimoTime Technologies * # * (C) Copyright 1987-2018 All Rights Reserved * # * Web Site URL: http://www.simotime.com * # * e-mail: helpdesk@simotime.com * # * ******************************************************************* # * # * Text - Physical Hex Dump of Record Sequential File # * Author - SimoTime Technologies # * Date - November 11, 2003 # * Version - 06.07.16 # * # * Prepare the environment by mapping the file names. # * Execute the Hex Dump program. # * # * ******************************************************************** # * Step 1 of 3, Prepare the System Environment. # * JOBSTATUS=0 for textstring in $(cat ENV4SYS1.cfg); do # # * The following statement will replace all occurences # # * of USD_BASESYS1 with the value of the BASESYS1 # # * environment variable. textstring=${textstring//USD_BASESYS1/$BASESYS1} # # * The following statement will replace all occurences # # * of USD_JOBNAME with the value of the JOBNAME # # * environment variable. textstring=${textstring/USD_JOBNAME/$JOBNAME} export $textstring rc=$? if [ $rc != 0 ] then simonote.sh "# $textstring - Return Code is $rc" JOBSTATUS=$rc fi done # * simonote.sh "# **************************************************************$JOBNAME" simonote.sh "# Starting Job Name $JOBNAME" simonote.sh "# BASESYS1........... $BASESYS1" simonote.sh "# COB_LIBS........... $COB_LIBS" simonote.sh "# COB_LIBRARY_PATH... $COB_LIBRARY_PATH" simonote.sh "# SIMONOTE........... $SIMONOTE" # * # * Prepare the environment, map the file names... export SYSUT1=$BASESYS1/SIMOSAM1/DEVL/DATA/APPL/SIMOTIME.DATA.NBRMIXD1.dat export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/TXT1/SIMOTIME_HEX4DUMP_NBRMIXD1.txt export SYSUT3=$BASESYS1/SIMOSAM1/DEVL/DATA/TXT1/SIMOTIME.CNTL.HXRSEQ01.txt simonote.sh "# DATATAKE is $SYSUT1" simonote.sh "# DATADUMP is $SYSUT2" simonote.sh "# DATACNTL is $SYSUT3" # * # * ******************************************************************** # * Step 2 of 3, Run the program. # * if [ -f "$SYSUT2" ] then rm $SYSUT2 fi cobcrun HXRS1KC3 | tee $SYSOUT rc=$? if [ $rc != 0 ] then simonote.sh "# ABENDING $name - Return Code is $rc" JOBSTATUS=$rc else ((AOK_Count++)) fi # * # * ******************************************************************** # * Step 3 of 3, End of Job Processing. # * if [ "$JOBSTATUS" = "0" ] then simonote.sh "# Finished Job Name $JOBNAME" else simonote.sh "# ABENDING Job Name $JOBNAME" fi
The following is a listing of the logical hex-dump file that is produced by executing the logical hex-dump program.
**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** * HXRS1KC3 Batch, HEX-Dump of RSEQ LRECL=1024 v16.01.01 helpdesk@simotime.com * HXRS1KC3 This Data File HexDump Member was generated by SimoTime Technologies **************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** Starting, Batch, HEX-Dump of RSEQ LRECL=1024 http://www.SimoTime.com ....:...10....:...20....:...30....:...40....:...50....:...60....:...70....:...80....:...90....:..100....:..110....:..120....:..130....:..140....:..150....:..160....:..170....:..180....:..190....:..200....:..210....:..220....:..230....:..240....:..250....:..260....:..270....:..280....:..290....:..300....:..310....:..320....:..330....:..340....:..350....:..360....:..370....:..380....:..390....:..400....:..410....:..420....:..430....:..440....:..450....:..460....:..470....:..480....:..490....:..500....:..510....:..520....:..530....:..540....:..550....:..560....:..570....:..580....:..590....:..600....:..610....:..620....:..630....:..640....:..650....:..660....:..670....:..680....:..690....:..700....:..710....:..720....:..730....:..740....:..750....:..760....:..770....:..780....:..790....:..800....:..810....:..820....:..830....:..840....:..850....:..860....:..870....:..880....:..890....:..900....:..910....:..920....:..930....:..940....:..950....:..960....:..970....:..980....:..990....:.1000....:.1010....:.1020.... 5455353233333545535323333354553532013545535320134455353200074455353200074444452222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A45F5F0000123A43F5F00001230B5F5F0002F0B3F5F0002C2E5F5F00000B2E3F5F00000B69CC520000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 ZDU_5_0 00123ZDS_5_0 00123PKU_5_0 ..?PKS_5_0 ..
The following is a listing of the Bash Script member (nbrmixx1.sh) used in this example.
#!/bin/bash JOBNAME=nbrmixx1 # * ******************************************************************* # * Bash Script File - provided by SimoTime Technologies * # * (C) Copyright 1987-2018 All Rights Reserved * # * Web Site URL: http://www.simotime.com * # * e-mail: helpdesk@simotime.com * # * ******************************************************************* # * # * Text - Physical Hex Dump of Record Sequential File # * Author - SimoTime Technologies # * Date - November 11, 2003 # * Version - 06.07.16 # * # * Prepare the environment by mapping the file names. # * Execute the Hex Dump program. # * # * ******************************************************************** # * Step 1 of 3, Prepare the System Environment. # * JOBSTATUS=0 for textstring in $(cat ENV4SYS1.cfg); do # # * The following statement will replace all occurences # # * of USD_BASESYS1 with the value of the BASESYS1 # # * environment variable. textstring=${textstring//USD_BASESYS1/$BASESYS1} # # * The following statement will replace all occurences # # * of USD_JOBNAME with the value of the JOBNAME # # * environment variable. textstring=${textstring/USD_JOBNAME/$JOBNAME} export $textstring rc=$? if [ $rc != 0 ] then simonote.sh "# $textstring - Return Code is $rc" JOBSTATUS=$rc fi done # * simonote.sh "# **************************************************************$JOBNAME" simonote.sh "# Starting Job Name $JOBNAME" simonote.sh "# BASESYS1........... $BASESYS1" simonote.sh "# COB_LIBS........... $COB_LIBS" simonote.sh "# COB_LIBRARY_PATH... $COB_LIBRARY_PATH" simonote.sh "# SIMONOTE........... $SIMONOTE" # * # * Prepare the environment, map the file names... export SYSUT1=$BASESYS1/SIMOSAM1/DEVL/DATA/APPL/SIMOTIME.DATA.NBRMIXD1.dat export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/TXT1/SIMOTIME_HEXDUMP_NBRMIXD1.txt simonote.sh "# DATATAKE is $SYSUT1" simonote.sh "# DATADUMP is $SYSUT2" # * # * ******************************************************************** # * Step 2 of 3, Run the program. # * if [ -f "$SYSUT2" ] then rm $SYSUT2 fi cobcrun SIMOZAPS HEXCESS $SYSUT1 VIEW=1 STOP=9999999 | tee $SYSUT2 rc=$? if [ $rc != 0 ] then simonote.sh "# ABENDING $name - Return Code is $rc" JOBSTATUS=$rc else ((AOK_Count++)) fi # * # * ******************************************************************** # * Step 3 of 3, End of Job Processing. # * if [ "$JOBSTATUS" = "0" ] then simonote.sh "# Finished Job Name $JOBNAME" else simonote.sh "# ABENDING Job Name $JOBNAME" fi
The following is a listing of the physical hex-dump file that is produced by executing the physical hex-dump program.
* HEXCESS2 by SimoTime Date: 2017-10-04 Time: 16:48:15:52 * HEXCESS2 Starting at 000000000001 * HEXCESS2 Stopping at 000009999999 * HEXCESS2 File size 000000000171 Position Hex..... ........ ........ ........ ebcdic.......... ascii........... 000000001 5A44555F 355F302C 3132332C 5A44535F !...........!... ZDU_5_0,123,ZDS_ 000000017 355F302C 3132332C 504B555F 355F3020 ........&....... 5_0,123,PKU_5_0 000000033 2C313233 2C504B53 5F355F30 202C3132 .....&.......... ,123,PKS_5_0 ,12 000000049 332C424E 555F355F 30202C31 32332C42 ...+............ 3,BNU_5_0 ,123,B 000000065 4E535F35 5F30202C 3132332C 46494C4C +.............<< NS_5_0 ,123,FILL 000000081 4552200A 5A44555F 355F302C 3132332C ....!........... ER .ZDU_5_0,123, 000000097 5A44535F 355F302C 2D313232 2C504B55 !............&.. ZDS_5_0,-122,PKU 000000113 5F355F30 202C3132 332C504B 535F355F ..........&..... _5_0 ,123,PKS_5_ 000000129 30202C2D 3132322C 424E555F 355F3020 .........+...... 0 ,-122,BNU_5_0 000000145 2C313238 2C424E53 5F355F30 202C2D31 ......+......... ,128,BNS_5_0 ,-1 000000161 32372C46 494C4C45 52200Axx xxxxxxxx .....<<......... 27,FILLER ...... * HEXCESS2 by SimoTime, Program-is-ENDING...
The following is a listing of the Bash Script member (nbrmixs1.sh) that is used to create the Second Test File. This Job Script will execute a conversion program that reads an ASCII-encoded, Record Sequential file with fixed-length records and fixed-length fields (the Numeric fields may use a Binary, Packed-Decimal or Zoned-Decimal format). The output file will be a new ASCII/Text file with a record structure that uses a CSV (Comma-Separated-Values) format.
#!/bin/bash JOBNAME=nbrmixs1 # ********************************************************************* # * Bash Script File - provided by SimoTime Technologies * # * (C) Copyright 1987-2018 All Rights Reserved * # * Web Site URL: http://www.simotime.com * # * e-mail: helpdesk@simotime.com * # ********************************************************************* # * # * Text - Create an LCSV File using the Bash ECHO Command. # * Author - SimoTime Technologies # * Date - January 24, 1996 # * # * This Batch Job (Bash Script) will run on an Ubuntu System. # * # * The input data is included within an ECHO statement. The input # * data is written to an output file using the pipe function. # * # * The output file is a Line Sequential File with variable length # * records that contain variable length fields (or sub-strings) that # * are separated by a delimiter character. # * # * This job will produce a Hex-Dump of the output file that includes # * the logical record content and the embedded format control # * characters. # * # * ************ # * * nbrmixs1 * # * *********sh* # * * # * * # * * # * ************ # * * Step 1 ***************************** # * ************ * # * * ************ ************ ************ # * * * ENV4SYS1 ******* for-loop ******* export * # * * *******lseq* *********so* ************ # * * # * * # * ************ # * * Step 2 ***************************** # * ************ * # * * ************ ************ ************ # * * * instream ******* echo ******* SYSUT2 * # * * ************ *******bash* *******lcsv* # * * # * * # * ************ ************ # * * Step 3 ************************ cobcrun * # * ************ ************ # * * * # * * ************ ************ ************ # * * * SYSUT1 ******* SIMOZAPS ******* SYSUT2 * # * * *******lcsv* *********so* *******lseq* # * * # * * # * * # * ************ ************ # * * Step 4 ************************ EOJ * # * ************ ************ # * # * # * Job Step and Description # * ------ ---------------------------------------------------------- # * Step 1, Prepare the System Environment. # * Step 2, Create a new ASC-encoded LSEQ, CSV File # * Step 3, Create a Physical Hex-Dump of the LSEQ, CSV File. # * Step 4, End of Job. # * # * ******************************************************************** # * Step 1 of 4, Prepare the System Environment. # * JOBSTATUS=0 for textstring in $(cat ENV4SYS1.cfg); do # # * The following statement will replace all occurences # # * of USD_BASESYS1 with the value of the BASESYS1 # # * environment variable. textstring=${textstring//USD_BASESYS1/$BASESYS1} # # * The following statement will replace all occurences # # * of /USD_JOBNAME with the value of the JOBNAME # # * environment variable. textstring=${textstring/USD_JOBNAME/$JOBNAME} export $textstring rc=$? if [ $rc != 0 ] then simonote.sh "# $textstring - Return Code is $rc" JOBSTATUS=$rc fi done # * simonote.sh "# **************************************************************$JOBNAME" echo "# BASESYS1........... $BASESYS1" echo "# COB_LIBS........... $COB_LIBS" echo "# COB_LIBRARY_PATH... $COB_LIBRARY_PATH" echo "# SIMONOTE........... $SIMONOTE" simonote.sh "# JOBNAME............ $JOBNAME" # * # * ******************************************************************* # * Step 2 of 4, Create a new ASC-encoded LSEQ, CSV File... # * # * SYSUT2 The File format is ASCII/Text (Line Sequential or LSEQ). # * The record/field structure uses a Comma-Separated-Value or # * CSV format. # * simonote.sh "# StepInfo Create and populate a new LSEQ, CSV File" export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/XLSS/SIMOTIME.DATA.NBRMIXX1.csv echo "ZDU_5_0,123,ZDS_5_0,123,PKU_5_0 ,123,PKS_5_0 ,123,BNU_5_0 ,123,BNS_5_0 ,123,FILLER ">$SYSUT2 echo "ZDU_5_0,123,ZDS_5_0,-122,PKU_5_0 ,123,PKS_5_0 ,-122,BNU_5_0 ,128,BNS_5_0 ,-122,FILLER ">>$SYSUT2 # * # * ******************************************************************** # * Step 3 of 4, Create a Physical Hex-Dump of the LSEQ, CSV File. # * Prepare the environment, map the file names... simonote.sh "# StepInfo Create a Physical Hex-Dump of the LSEQ, CSV File" export SYSUT1=$BASESYS1/SIMOSAM1/DEVL/DATA/XLSS/SIMOTIME.DATA.NBRMIXX1.csv export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/TXT1/SIMOTIME_HEXXDUMP_NBRMIXX1.txt simonote.sh "# DATATAKE is $SYSUT1" simonote.sh "# DATADUMP is $SYSUT2" # * if [ -f "$SYSUT2" ] then rm $SYSUT2 fi # * # * SIMOZAPS is a Utility Program that is included in the SIMOTIME # * Enterprise Library. # * cobcrun SIMOZAPS HEXCESS $SYSUT1 VIEW=1 STOP=9999999 | tee $SYSUT2 rc=$? if [ $rc != 0 ] then simonote.sh "# ABENDING $name - Return Code is $rc" JOBSTATUS=$rc else ((AOK_Count++)) fi # * # * ******************************************************************* # * Step 4 of 4, End of Job Processing... # * if [ "$JOBSTATUS" = "0" ] then simonote.sh "# Finished Job Name $JOBNAME" else simonote.sh "# ABENDING Job Name $JOBNAME" fi
The following is a listing of the Bash Script member (nbrmixs2.sh) that is used to create the Final Test File. This Job Script will create an ASCII/Text file with variable length records.
#!/bin/bash JOBNAME=nbrmixs2 # ********************************************************************* # * Bash Script File - provided by SimoTime Technologies * # * (C) Copyright 1987-2018 All Rights Reserved * # * Web Site URL: http://www.simotime.com * # * e-mail: helpdesk@simotime.com * # ********************************************************************* # * # * Text - Import from LCSV to RSEQ-ASC-FFL-NBR. # * Author - SimoTime Technologies # * Date - January 24, 1996 # * # * This Job will run on an Ubuntu System. The COBOL source code for # * the conversion programs was generated using SIMOTIME Technologies. # * For this job the programs were compiled using GnuCOBOL. # * # * The conversion programs will read a CSV-formatted, ASCII/Text File # * and write to a Record Sequential, ASC-encoded, File with # * Fixed-Length Records and Fixed-Field-Lengths. # * The output records will contain fields with numeric values stored # * in the following formats. # * Zoned-Decimal (USAGE IS DISPLAY) # * Packed-Decimal (USAGE IS COMP-3) # * Binary (USAGE IS COMP) # * # * This job will produce a Hex-Dump of the output file that includes # * the logical record content. # * # * ************ # * * nbrmixs2 * # * *********sh* # * * # * * # * ************ # * * Step 1 ***************************** # * ************ * # * * ************ ************ ************ # * * * ENV4SYS1 ******* for-loop ******* export * # * * *******lseq* *********so* ************ # * * # * * # * ************ ************ # * * Step 2 ************************ cobcrun * # * ************ ************ # * * * # * * ************ ************ ************ # * * * SYSUT1 ******* NBRMIXC8 ******* SYSUT2 * # * * *******lcsv* * NBRMIXR8 * * *******rseq* # * * *********so* * # * * * ************ # * * **** SYSOUT * # * * *******lseq* # * * # * ************ ************ # * * Step 3 ************************ cobcrun * # * ************ ************ # * * * # * * ************ ************ ************ # * * * SYSUT1 ******* HXRS1KC3 ******* SYSUT2 * # * * *******rseq* *********so* *******lseq* # * * # * * # * ************ ************ # * * Step 4 ************************ EOJ * # * ************ ************ # * # * ******************************************************************** # * Step 1 of 4, Prepare the System Environment. # * JOBSTATUS=0 for textstring in $(cat ENV4SYS1.cfg); do # # * The following statement will replace all occurences # # * of USD_BASESYS1 with the value of the BASESYS1 # # * environment variable. textstring=${textstring//USD_BASESYS1/$BASESYS1} # # * The following statement will replace all occurences # # * of /USD_JOBNAME with the value of the JOBNAME # # * environment variable. textstring=${textstring/USD_JOBNAME/$JOBNAME} export $textstring rc=$? if [ $rc != 0 ] then simonote.sh "# $textstring - Return Code is $rc" JOBSTATUS=$rc fi done # * simonote.sh "# **************************************************************$JOBNAME" echo "# BASESYS1........... $BASESYS1" echo "# COB_LIBS........... $COB_LIBS" echo "# COB_LIBRARY_PATH... $COB_LIBRARY_PATH" echo "# SIMONOTE........... $SIMONOTE" simonote.sh "# JOBNAME............ $JOBNAME" # * # * ******************************************************************* # * Step 2 of 4, Create a new ASC-encoded Record Sequential file... # * # * SYSUT1 is an ASCII/Text (Line Sequential) File. The record/field # * structure uses a Comma-Separated-Value or CSV format. # * SYSUT2 is an ASCII-encoded, Record Sequential File. The record # * structure and field structure are fixed-length. The # * numeric field formats include Binary, Packed-Decimal and # * Zoned-Decimal. # * simonote.sh "# StepInfo Create an ASC-encoded Record Sequential file that contains" simonote.sh "# StepInfo Zoned-Decimal, Packed-Decimal and Binary Numeric values" export SYSUT1=$BASESYS1/SIMOSAM1/DEVL/DATA/XLSS/SIMOTIME.DATA.NBRMIXX1.csv export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/ASC1/SIMOTIME.DATA.NBRMIXD1.dat # * if [ -f "$SYSUT2" ] then rm $SYSUT2 fi # * # * Create and populate a new Record Sequential file" # * Note: the tee command will write to both the standard output # * device and a file. # * cobcrun NBRMIXC8 | tee $BASESYS1/SIMOSAM1/DEVL/LOGS/SYSOUT_USERPROG_NBRMIXC8.txt if [ -f "$SYSUT2" ] then simonote.sh "# SYSUT1 is $SYSUT1" simonote.sh "# SYSUT2 is $SYSUT2" else simonote.sh "# ABENDING File not created, $SYSUT2" exit 9001 fi # * # * ******************************************************************* # * Step 3 of 4, Prepare the Job Step environment, map the file names, # * create a Control File and produce a Hex-Dump the file. simonote.sh "# StepInfo Create a Logical Hex-Dump of the ASC-encoded, RSEQ, FFL File" export SYSUT1=$BASESYS1/SIMOSAM1/DEVL/DATA/ASC1/SIMOTIME.DATA.NBRMIXD1.dat export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/ASC1/SIMOTIME_HEX4DUMP_NBRMIXD1.txt export SYSUT3=$BASESYS1/SIMOSAM1/DEVL/DATA/ASC1/SIMOTIME.CNTL.HXRSEQ01.txt simonote.sh "# DATATAKE is $SYSUT1" simonote.sh "# DATADUMP is $SYSUT2" simonote.sh "# DATACNTL is $SYSUT3" echo "/RANGE 1 9999999">$SYSUT3 echo "/DUMPASC Y">>$SYSUT3 echo "/DUMPHEX Y">>$SYSUT3 echo "/DUMPEBC N">>$SYSUT3 echo "/DUMPCTR Y">>$SYSUT3 echo "/DUMPRPI Y">>$SYSUT3 echo "/END ">>$SYSUT3 # * # * Run the program to produce a Logical Hex-Dump. # * if [ -f "$SYSUT2" ] then rm $SYSUT2 fi cobcrun HXRS1KC3 | tee $SYSOUT rc=$? if [ $rc != 0 ] then simonote.sh "# ABENDING $name - Return Code is $rc" JOBSTATUS=$rc else ((AOK_Count++)) fi # * # * ******************************************************************* # * Step 4 of 4, End of Job Processing... # * if [ "$JOBSTATUS" = "0" ] then simonote.sh "# Finished Job Name $JOBNAME" else simonote.sh "# ABENDING Job Name $JOBNAME" fi
The following is a listing of the Bash Script member (cpls1ks3.sh) used in this example.
#!/bin/bash JOBNAME=cpls1ks3 # * ******************************************************************* # * Bash Script File - provided by SimoTime Technologies * # * (C) Copyright 1987-2018 All Rights Reserved * # * Web Site URL: http://www.simotime.com * # * e-mail: helpdesk@simotime.com * # * ******************************************************************* # * # * Text - Execute program, Compare two Line Sequential Files # * Author - SimoTime Technologies # * Date - November 11, 2003 # * Version - 06.07.16 # * # * Prepare the environment by mapping the file names. # * Execute the compare program. # * # * ******************************************************************** # * Step 1 of 3, Prepare the System Environment. # * JOBSTATUS=0 for textstring in $(cat ENV4SYS1.cfg); do # # * The following statement will replace all occurences # # * of USD_BASESYS1 with the value of the BASESYS1 # # * environment variable. textstring=${textstring//USD_BASESYS1/$BASESYS1} # # * The following statement will replace all occurences # # * of USD_JOBNAME with the value of the JOBNAME # # * environment variable. textstring=${textstring/USD_JOBNAME/$JOBNAME} export $textstring rc=$? if [ $rc != 0 ] then simonote.sh "# $textstring - Return Code is $rc" JOBSTATUS=$rc fi done # * simonote.sh "# **************************************************************$JOBNAME" simonote.sh "# Starting Job Name $JOBNAME" simonote.sh "# BASESYS1........... $BASESYS1" simonote.sh "# COB_LIBS........... $COB_LIBS" simonote.sh "# COB_LIBRARY_PATH... $COB_LIBRARY_PATH" simonote.sh "# SIMONOTE........... $SIMONOTE" # * # * Prepare the environment, map the file names... export SYSUT1=$BASESYS1/SIMOSAM1/DEVL/DATA/TXT1/SIMOTIME.DATA.TXVRECT1.txt export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/TXT1/SIMOTIME.DATA.TXVRECT2.txt export SYSUT3=$BASESYS1/SIMOSAM1/DEVL/PARMLIB/CPLS1KT3.ctl export SYSLUSER=$BASESYS1/SIMOSAM1/DEVL/DATA/TXT1/SIMOTIME.HEXDUMP.SYSLUSER.txt simonote.sh "# SYSUT1 .... $SYSUT1" simonote.sh "# SYSUT2 .... $SYSUT2" simonote.sh "# SYSUT3 .... $SYSUT3" simonote.sh "# SYSLUSER .. $SYSLUSER" # * # * ******************************************************************** # * Step 2 of 3, Run the program. # * Note: the tee command will write to both the standard # * output device and a file. # * cobcrun CPLS1KC3 | tee $BASESYS1/SIMOSAM1/DEVL/LOGS/SYSOUT_$JOBNAME_CPLS1KC3.txt rc=$? if [ $rc != 0 ] then simonote.sh "# ABENDING $name - Return Code is $rc" JOBSTATUS=$rc else ((AOK_Count++)) fi # * # * ******************************************************************** # * Step 3 of 3, End of Job Processing. # * if [ "$JOBSTATUS" = "0" ] then simonote.sh "# Finished Job Name $JOBNAME" else simonote.sh "# ABENDING Job Name $JOBNAME" fi
The following shows the information that is posted to the user screen and the Log File (SYSLUSER) when the compare processing produces an EQUAL result.
******************************************************************************* * CPLS1KC3 Compare LSEQ, max=1024 with SYSUT3 v16.01.01 helpdesk@simotime.com * CPLS1KC3 This Data File Compare Member was generated by SimoTime Technologies ******************************************************************************* Starting - Compare LSEQ, max=1024 with SYSUT3 http://www.SimoTime.com Conclude - Compare LSEQ, max=1024 with SYSUT3 000000106 - Record count for SYSUT1 000000106 - Record count for SYSUT2 000000000 - NOT Equal count for compare of existing records 000000106 - Number of matching record pairs for Compare Task Finished - Compare LSEQ, max=1024 with SYSUT3 http://www.SimoTime.com
The following shows the information that is posted to the user screen and the Log File (SYSLUSER) when the compare processing produces a NOT EQUAL result.
******************************************************************************* * CPLS1KC3 Compare LSEQ, max=1024 with SYSUT3 v16.01.01 helpdesk@simotime.com * CPLS1KC3 This Data File Compare Member was generated by SimoTime Technologies ******************************************************************************* Starting - Compare LSEQ, max=1024 with SYSUT3 http://www.SimoTime.com * ....:...10....:...20....:...30....:...40......... SYSUT1....000000027(00001:00080) SYSUT3 SYSUT3 000000000027 ABCDEFGHIJKLMNOPQRSTUVWZXZ0123456789 3333333333332444444444444444555555555553333333333 0000000000270123456789ABCDEF01234567A8A0123456789 =======================================#========= SYSUT2....000000027(00001:00080) SYSUT3 SYSUT3 000000000027 ABCDEFGHIJKLMNOPQRSTUVWZXZ#123456789 3333333333332444444444444444555555555552333333333 0000000000270123456789ABCDEF01234567A8A3123456789 =======================================#========= ******************************************************************************* Conclude - Compare LSEQ, max=1024 with SYSUT3 000000106 - Record count for SYSUT1 000000106 - Record count for SYSUT2 000000001 - NOT Equal count for compare of existing records 000000105 - Number of matching record pairs for Compare Task ABENDING - Compare LSEQ, max=1024 with SYSUT3 http://www.SimoTime.com
SIMOTIME provides a logical and physical methodology for creating a Hexadecimal view (HEX-Dump) of non-relational data structures (or data files). The logical hex-dump is intended for application programmers and simply presents the individual records within a file. The physical hex-dump is intended for system programmers and presents the individual records within a file along with the embedded structural information about the file.
The following is a listing of the Bash Script member (hxv32ks5.sh) that is used to produce a Hex-Dump view of records within a Record Sequential file containing variable length records.
#!/bin/bash JOBNAME=hxv32ks5 # * ******************************************************************* # * Bash Script File - provided by SimoTime Technologies * # * (C) Copyright 1987-2018 All Rights Reserved * # * Web Site URL: http://www.simotime.com * # * e-mail: helpdesk@simotime.com * # * ******************************************************************* # * # * Text - Execute program, Hex Dump of a Record Sequential file # * Author - SimoTime Technologies # * Date - November 11, 2003 # * Version - 06.07.16 # * # * Prepare the environment by mapping the file names. # * Execute the Hex Dump program. # * # * ******************************************************************** # * Step 1 of 3, Prepare the System Environment. # * JOBSTATUS=0 for textstring in $(cat ENV4SYS1.cfg); do # # * The following statement will replace all occurences # # * of USD_BASESYS1 with the value of the BASESYS1 # # * environment variable. textstring=${textstring//USD_BASESYS1/$BASESYS1} # # * The following statement will replace all occurences # # * of USD_JOBNAME with the value of the JOBNAME # # * environment variable. textstring=${textstring/USD_JOBNAME/$JOBNAME} export $textstring rc=$? if [ $rc != 0 ] then simonote.sh "# $textstring - Return Code is $rc" JOBSTATUS=$rc fi done # * simonote.sh "# **************************************************************$JOBNAME" simonote.sh "# Starting Job Name $JOBNAME" simonote.sh "# BASESYS1........... $BASESYS1" simonote.sh "# COB_LIBS........... $COB_LIBS" simonote.sh "# COB_LIBRARY_PATH... $COB_LIBRARY_PATH" simonote.sh "# SIMONOTE........... $SIMONOTE" # * # * Prepare the environment, map the file names... export SYSUT1=$BASESYS1/SIMOSAM1/DEVL/DATA/EBC1/SIMOTIME.DATA.SQVRECD1.dat export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/TXT1/SIMOTIME.HEXDUMP.SQVRECD5.txt export SYSUT3=$BASESYS1/SIMOSAM1/DEVL/DATA/TXT1/SIMOTIME_CNTL_F5249105.txt simonote.sh "# DATATAKE is $SYSUT1" simonote.sh "# DATADUMP is $SYSUT2" # * # * ******************************************************************** # * Step 2 of 3, Run the program. # * if [ -f "$SYSUT2" ] then rm $SYSUT2 fi cobcrun HXV32KC5 | tee $SYSUT2 rc=$? if [ $rc != 0 ] then simonote.sh "# ABENDING $name - Return Code is $rc" JOBSTATUS=$rc else ((AOK_Count++)) fi # * # * ******************************************************************** # * Step 3 of 3, End of Job Processing. # * if [ "$JOBSTATUS" = "0" ] then simonote.sh "# Finished Job Name $JOBNAME" else simonote.sh "# ABENDING Job Name $JOBNAME" fi
The following is a listing of the Bash Script member (hxls1ks1.sh) that is used to produce a Hex-Dump view of records within an ASCII/Text file containing variable length records.
#!/bin/bash JOBNAME=hxls1ks1 # * ******************************************************************* # * Bash Script File - provided by SimoTime Technologies * # * (C) Copyright 1987-2017 All Rights Reserved * # * Web Site URL: http://www.simotime.com * # * e-mail: helpdesk@simotime.com * # * ******************************************************************* # * # * Text - Execute program, Hex Dump of an ASCII/Text file # * Author - SimoTime Technologies # * Date - November 11, 2003 # * Version - 06.07.16 # * # * Prepare the environment by mapping the file names. # * Execute the Hex Dump program. # * # * ******************************************************************** # * Step 1 of 3, Prepare the System Environment. # * JOBSTATUS=0 for textstring in $(cat ENV4SYS1.cfg); do # # * The following statement will replace all occurences # # * of USD_BASESYS1 with the value of the BASESYS1 # # * environment variable. textstring=${textstring//USD_BASESYS1/$BASESYS1} # # * The following statement will replace all occurences # # * of USD_JOBNAME with the value of the JOBNAME # # * environment variable. textstring=${textstring/USD_JOBNAME/$JOBNAME} export $textstring rc=$? if [ $rc != 0 ] then simonote.sh "# $textstring - Return Code is $rc" JOBSTATUS=$rc fi done # * simonote.sh "# **************************************************************$JOBNAME" simonote.sh "# Starting Job Name $JOBNAME" simonote.sh "# BASESYS1........... $BASESYS1" simonote.sh "# COB_LIBS........... $COB_LIBS" simonote.sh "# COB_LIBRARY_PATH... $COB_LIBRARY_PATH" simonote.sh "# SIMONOTE........... $SIMONOTE" # * # * Prepare the environment, map the file names... export SYSUT1=$BASESYS1/SIMOSAM1/DEVL/DATA/TXT1/SIMOTIME.DATA.TXVRECT2.txt export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/TXT1/SIMOTIME_HEXDUMP_TXVRECT2.txt simonote.sh "# DATATAKE is $SYSUT1" simonote.sh "# DATADUMP is $SYSUT2" # * # * ******************************************************************** # * Step 2 of 3, Run the program. # * if [ -f "$SYSUT2" ] then rm $SYSUT2 fi cobcrun SIMOZAPS HEXCESS $SYSUT1 VIEW=1 STOP=9999999 | tee $SYSUT2 rc=$? if [ $rc != 0 ] then simonote.sh "# ABENDING $name - Return Code is $rc" JOBSTATUS=$rc else ((AOK_Count++)) fi # * # * ******************************************************************** # * Step 3 of 3, End of Job Processing. # * if [ "$JOBSTATUS" = "0" ] then simonote.sh "# Finished Job Name $JOBNAME" else simonote.sh "# ABENDING Job Name $JOBNAME" fi
The following is a listing of the Bash Script member (hxls1ks1.sh) used in this example.
#!/bin/bash JOBNAME=hxls1ks1 # * ******************************************************************* # * Bash Script File - provided by SimoTime Technologies * # * (C) Copyright 1987-2017 All Rights Reserved * # * Web Site URL: http://www.simotime.com * # * e-mail: helpdesk@simotime.com * # * ******************************************************************* # * # * Text - Execute program, Hex Dump of an ASCII/Text file # * Author - SimoTime Technologies # * Date - November 11, 2003 # * Version - 06.07.16 # * # * Prepare the environment by mapping the file names. # * Execute the Hex Dump program. # * # * ******************************************************************** # * Step 1 of 3, Prepare the System Environment. # * JOBSTATUS=0 for textstring in $(cat ENV4SYS1.cfg); do # # * The following statement will replace all occurences # # * of USD_BASESYS1 with the value of the BASESYS1 # # * environment variable. textstring=${textstring//USD_BASESYS1/$BASESYS1} # # * The following statement will replace all occurences # # * of USD_JOBNAME with the value of the JOBNAME # # * environment variable. textstring=${textstring/USD_JOBNAME/$JOBNAME} export $textstring rc=$? if [ $rc != 0 ] then simonote.sh "# $textstring - Return Code is $rc" JOBSTATUS=$rc fi done # * simonote.sh "# **************************************************************$JOBNAME" simonote.sh "# Starting Job Name $JOBNAME" simonote.sh "# BASESYS1........... $BASESYS1" simonote.sh "# COB_LIBS........... $COB_LIBS" simonote.sh "# COB_LIBRARY_PATH... $COB_LIBRARY_PATH" simonote.sh "# SIMONOTE........... $SIMONOTE" # * # * Prepare the environment, map the file names... export SYSUT1=$BASESYS1/SIMOSAM1/DEVL/DATA/TXT1/SIMOTIME.DATA.TXVRECT2.txt export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/TXT1/SIMOTIME_HEXDUMP_TXVRECT2.txt simonote.sh "# DATATAKE is $SYSUT1" simonote.sh "# DATADUMP is $SYSUT2" # * # * ******************************************************************** # * Step 2 of 3, Run the program. # * if [ -f "$SYSUT2" ] then rm $SYSUT2 fi cobcrun SIMOZAPS HEXCESS $SYSUT1 VIEW=1 STOP=9999999 | tee $SYSUT2 rc=$? if [ $rc != 0 ] then simonote.sh "# ABENDING $name - Return Code is $rc" JOBSTATUS=$rc else ((AOK_Count++)) fi # * # * ******************************************************************** # * Step 3 of 3, End of Job Processing. # * if [ "$JOBSTATUS" = "0" ] then simonote.sh "# Finished Job Name $JOBNAME" else simonote.sh "# ABENDING Job Name $JOBNAME" fi
The following is a listing of the Bash Script member (hxls1ks1.sh) used in this example.
#!/bin/bash JOBNAME=hxls1ks1 # * ******************************************************************* # * Bash Script File - provided by SimoTime Technologies * # * (C) Copyright 1987-2017 All Rights Reserved * # * Web Site URL: http://www.simotime.com * # * e-mail: helpdesk@simotime.com * # * ******************************************************************* # * # * Text - Execute program, Hex Dump of an ASCII/Text file # * Author - SimoTime Technologies # * Date - November 11, 2003 # * Version - 06.07.16 # * # * Prepare the environment by mapping the file names. # * Execute the Hex Dump program. # * # * ******************************************************************** # * Step 1 of 3, Prepare the System Environment. # * JOBSTATUS=0 for textstring in $(cat ENV4SYS1.cfg); do # # * The following statement will replace all occurences # # * of USD_BASESYS1 with the value of the BASESYS1 # # * environment variable. textstring=${textstring//USD_BASESYS1/$BASESYS1} # # * The following statement will replace all occurences # # * of USD_JOBNAME with the value of the JOBNAME # # * environment variable. textstring=${textstring/USD_JOBNAME/$JOBNAME} export $textstring rc=$? if [ $rc != 0 ] then simonote.sh "# $textstring - Return Code is $rc" JOBSTATUS=$rc fi done # * simonote.sh "# **************************************************************$JOBNAME" simonote.sh "# Starting Job Name $JOBNAME" simonote.sh "# BASESYS1........... $BASESYS1" simonote.sh "# COB_LIBS........... $COB_LIBS" simonote.sh "# COB_LIBRARY_PATH... $COB_LIBRARY_PATH" simonote.sh "# SIMONOTE........... $SIMONOTE" # * # * Prepare the environment, map the file names... export SYSUT1=$BASESYS1/SIMOSAM1/DEVL/DATA/TXT1/SIMOTIME.DATA.TXVRECT2.txt export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/TXT1/SIMOTIME_HEXDUMP_TXVRECT2.txt simonote.sh "# DATATAKE is $SYSUT1" simonote.sh "# DATADUMP is $SYSUT2" # * # * ******************************************************************** # * Step 2 of 3, Run the program. # * if [ -f "$SYSUT2" ] then rm $SYSUT2 fi cobcrun SIMOZAPS HEXCESS $SYSUT1 VIEW=1 STOP=9999999 | tee $SYSUT2 rc=$? if [ $rc != 0 ] then simonote.sh "# ABENDING $name - Return Code is $rc" JOBSTATUS=$rc else ((AOK_Count++)) fi # * # * ******************************************************************** # * Step 3 of 3, End of Job Processing. # * if [ "$JOBSTATUS" = "0" ] then simonote.sh "# Finished Job Name $JOBNAME" else simonote.sh "# ABENDING Job Name $JOBNAME" fi
The COBOL programs used in the batch jobs are generated using SIMOTIME Technologies.
| ||||||||||||||||||||||
A List of Programs that Process Numeric Data |
The SIMOTIME Technologies have the ability to generate programs that will do File Format conversion and Record Content conversion. Depending on the conversion requirements the generation process may generate the COBOL Source Code for a single program or a set of programs consisting of a Main program and a Called program.
If the records in the file contain all Text-oriented data the Record Content conversion can be done at the record level. For this requirement the generation process can generate a single program to do both the File Format and Record Content conversion.
If the records in the file contain numeric values that are stored in Packed-Decimal or Binary format the Record Content conversion will need to be done at the field level. For this requirement the generation process will generate two (2) programs. The Main program will perform the file I/O, do the File Format conversion and transfer control to the Called program to do the Record Content conversion.
The input for this generated COBOL program is an ASCII-encoded, Record Sequential file with fixed-length fields and fixed-length records. The output file is a Line Sequential (LSEQ or ASCII/Text) file.
This file format is supported by Micro Focus and GnuCOBOL.
The following is a listing of the Process Control File (NBRMIX06.pcf) used to generate the COBOL Source member.
* PCFNAME=NBRMIX06 *********************************************************************** * A Process Control File * * Generate a Data File Conversion Program * * SimoTime Technologies * * (C) Copyright 1987-2019 All Rights Reserved * * Web Site URL: http://www.simotime.com * * e-mail: helpdesk@simotime.com * *********************************************************************** * SYSUT1 - a Record Sequential file, 1024-byte FFL formatted records. * SYSUT2 - an ASCII/Text file, 1024-byte CSV formatted records. *********************************************************************** * This set of specification will generate a set of programs to read a * file with 1024-byte FFL formatted records and write to a file of * 1024-byte CSV formatted records file . * * The following group of statements will define the high level * functions and processes to be performed. * &SIMOPREP call ..\..\ENV1BASE &USERPREP call USERCONV &CONFORM IBM ©FILE NBRMIXB1.cpy &HTMLFILE nbrmixb1.htm *USRMODEL SYSMASK3.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 Extract Fixed-Field to CSV Format &PROGID NBRMIXC6 &SYSUT1 org=Sequential recfm=FIXED rlen=1024 &SYSUT2 org=ASCII/Text recfm=FIXED rlen=1024 * * 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. * This is for CSV Formatted output records. * &EXTCALL NBRMIXR6 &EXTREC NBRMIX-RECORD &EXTLREC 1024 &EXTFMT CSV , &EXTINIT SPACES &EXTHDR YES * * The following group of statements will define the fields to be * extracted from the input file and written to the output file. * conversion program to be generated. * This is for CSV Formatted output records. * &EXTRACT NBRMIX-FLD-TXT-ZDU-5-0 &EXTRACT NBRMIX-FLD-ZDU-5-0 &EXTRACT NBRMIX-FLD-TXT-ZDS-5-0 &EXTRACT NBRMIX-FLD-ZDS-5-0 &EXTRACT NBRMIX-FLD-TXT-PKU-5-0 &EXTRACT NBRMIX-FLD-PKU-5-0 &EXTRACT NBRMIX-FLD-TXT-PKS-5-0 &EXTRACT NBRMIX-FLD-PKS-5-0 &EXTRACT NBRMIX-FLD-TXT-BNU-5-0 &EXTRACT NBRMIX-FLD-BNU-5-0 &EXTRACT NBRMIX-FLD-TXT-BNS-5-0 &EXTRACT NBRMIX-FLD-BNS-5-0 &EXTRACT NBRMIX-FLD-TEXT * &END
The following shows the format of the cobc command that is used to compile the program.
cobc -fixed -std=ibm progname.cbl -o progname.so -I SIMOSAM1/DEVL/COBCPY1
The input for this generated COBOL program is a Line Sequential (LSEQ or ASCII/Text) file. The output file is an ASCII-encoded, Record Sequential file with fixed-length fields and fixed-length records.
This file format is supported by Micro Focus and GnuCOBOL.
The following is a listing of the Process Control File (NBRMIX08.pcf) used to generate the COBOL Source member.
* PCFNAME=NBRMIX08 *********************************************************************** * A Process Control File * * Generate a Data File Conversion Program * * SimoTime Technologies * * (C) Copyright 1987-2019 All Rights Reserved * * Web Site URL: http://www.simotime.com * * e-mail: helpdesk@simotime.com * *********************************************************************** * SYSUT1 - an ASCII/Text file with 80-byte CSV formatted records. * SYSUT2 - a Record Sequential file with 80-byte FFL formatted records. *********************************************************************** * This set of specification will generate a set of programs to read a * file of 80-byte CSV formatted records and write to a file with * 80-byte FFL formatted records. * * The following group of statements will define the high level * functions and processes to be performed. * &SIMOPREP call ..\..\ENV1BASE &USERPREP call USERCONV &CONFORM IBM ©FILE NBRMIXB1.cpy &HTMLFILE nbrmixb1.htm *USRMODEL SYSMASK3.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 Import CSV to Fixed-Field Format &PROGID NBRMIXC8 &SYSUT1 org=ASCII/Text recfm=FIXED rlen=1024 &SYSUT2 org=Sequential recfm=FIXED rlen=1024 * * 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. * This is for CSV Formatted input records. * &IMPCALL NBRMIXR8 &IMPREC NBRMIX-RECORD &IMPLREC 80 &IMPFMT CSV , &IMPINIT SPACES &IMPHDR YES * * The following group of statements will define the fields to be * imported from the input file and written to the output file. * conversion program to be generated. * This is for CSV Formatted input records. * &IMPORT NBRMIX-FLD-TXT-ZDU-5-0 &IMPORT NBRMIX-FLD-ZDU-5-0 &IMPORT NBRMIX-FLD-TXT-ZDS-5-0 &IMPORT NBRMIX-FLD-ZDS-5-0 &IMPORT NBRMIX-FLD-TXT-PKU-5-0 &IMPORT NBRMIX-FLD-PKU-5-0 &IMPORT NBRMIX-FLD-TXT-PKS-5-0 &IMPORT NBRMIX-FLD-PKS-5-0 &IMPORT NBRMIX-FLD-TXT-BNU-5-0 &IMPORT NBRMIX-FLD-BNU-5-0 &IMPORT NBRMIX-FLD-TXT-BNS-5-0 &IMPORT NBRMIX-FLD-BNS-5-0 &IMPORT NBRMIX-FLD-TEXT * &END
The following shows the format of the cobc command that is used to compile the program.
cobc -fixed -std=ibm progname.cbl -o progname.so -I SIMOSAM1/DEVL/COBCPY1
The input for this generated COBOL program is a Line Sequential (LSEQ or ASCII/Text) file. The output file is an ASCII-encoded, Record Sequential file with fixed-length fields and fixed-length records.
This file format is supported by Micro Focus and GnuCOBOL.
The following is a listing of the Process Control File (NBRMIX09.pcf) used to generate the COBOL Source member.
* PCFNAME=NBRMIX09 *********************************************************************** * A Process Control File * * Generate a Data File Conversion Program * * SimoTime Technologies * * (C) Copyright 1987-2019 All Rights Reserved * * Web Site URL: http://www.simotime.com * * e-mail: helpdesk@simotime.com * *********************************************************************** * SYSUT1 - an ASCII/Text file with 80-byte CSV formatted records. * SYSUT2 - a Record Sequential file with 80-byte FFL formatted records. *********************************************************************** * This set of specification will generate a set of programs to read a * file of 80-byte CSV formatted records and write to a file with * 80-byte FFL formatted records. * * The following group of statements will define the high level * functions and processes to be performed. * &SIMOPREP call ..\..\ENV1BASE &USERPREP call USERCONV &CONFORM IBM ©FILE NBRMIXB2.cpy &HTMLFILE nbrmixb2.htm *USRMODEL SYSMASK3.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 Import CSV to Fixed-Field Format &PROGID NBRMIXC9 &SYSUT1 org=ASCII/Text recfm=FIXED rlen=1024 &SYSUT2 org=Sequential recfm=FIXED rlen=1024 * * 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. * This is for CSV Formatted input records. * &IMPCALL NBRMIXR9 &IMPREC NBRMIX-RECORD-2 &IMPLREC 80 &IMPFMT CSV , &IMPINIT SPACES &IMPHDR YES * * The following group of statements will define the fields to be * imported from the input file and written to the output file. * conversion program to be generated. * This is for CSV Formatted input records. * &IMPORT NBRMIX-FLD-TXT-ZDU-5-0 &IMPORT NBRMIX-FLD-ZDU-5-0 &IMPORT NBRMIX-FLD-TXT-ZDS-5-0 &IMPORT NBRMIX-FLD-ZDS-5-0 &IMPORT NBRMIX-FLD-TXT-PKU-5-0 &IMPORT NBRMIX-FLD-PKU-5-0 &IMPORT NBRMIX-FLD-TXT-PKS-5-0 &IMPORT NBRMIX-FLD-PKS-5-0 &IMPORT NBRMIX-FLD-TXT-BNU-5-0 &IMPORT NBRMIX-FLD-BNU-5-0 &IMPORT NBRMIX-FLD-TXT-BNS-5-0 &IMPORT NBRMIX-FLD-BNS-5-0 &IMPORT NBRMIX-FLD-TEXT-6 * &END
The following shows the format of the cobc command that is used to compile the program.
cobc -fixed -std=ibm progname.cbl -o progname.so -I SIMOSAM1/DEVL/COBCPY1
The SIMOTIME Technologies have the ability to generate programs that will do File Compare processing on a record by record basis. Depending on the comparison requirements the generation process may generate the COBOL Source Code for a single program that will do a full compare of the record or a partial compare of a user-defined string of data within a record.
The input for this generated COBOL program is two (2) Line Sequential (LSEQ or ASCII/Text) files. The record structure for the input files is a fixed-field length. The output file is a Line Sequential files that shows the results of the compare of the two (2) input files.
The compare process will do a partial record compare. The compare will start at position 12 of each record and compare 103 bytes of data.
The following is a listing of the Process Control File (NBRMIXP3.pcf) used to generate the COBOL Source member.
* PCFNAME=NBRMIXP3 *********************************************************************** * A Process Control File * * Generate a Data File Comparison Program * * SimoTime Technologies * * (C) Copyright 1987-2019 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 SYSCOMP6.txt * * The following group of statements will define the behavioral * characteristics and environment variable for the file I/O * functions within the Program to be generated. * *HEAD34 ....:....1....:....2....:....3.... &HEAD34 Compare LSEQ, max=1024 with SYSUT3 &PROGID NBRMIXP3 &SYSUT1 org=ASCII/Text recfm=VARIABLE rmin=1 rmax=1024 RECMODE RECVARY &SYSUT2 org=ASCII/Text recfm=VARIABLE rmin=1 rmax=1024 RECMODE RECVARY &SYSUT3 org=ASCII/Text recfm=FIXED rlen=80 * * The following group of statements will define the behavioral * characteristics and environment variable for the compare functions * within the Program to be generated. * * ..:....1....:....2....:....3....:....4....:....5....:....6.... *KEYFIELD SYSUT1 pos 1 len 12 SYSUT2 pos 1 len 12 &DELTAMAX 10 EOF &IFNECODE 0016 * * The following group of statements will define the presentation * characteristics for the Hex-Dump Format and Output Devices. * &DFORMAT ASC HEX NOEBC NEDETAIL RPI &DISPLAY SYSOUT &SYSLOG ENABLED * &END
The following shows the format of the cobc command that is used to compile the program.
cobc -fixed -std=ibm progname.cbl -o progname.so -I SIMOSAM1/DEVL/COBCPY1
TAG
The input for this generated COBOL program is an ASCII-encoded, Record Sequential file with fixed-length fields and fixed-length records.
This file format is supported by Micro Focus and GnuCOBOL.
The following is a listing of the Process Control File (NBRMIXT1.pcf) used to generate the COBOL Source member.
*********************************************************************** * NBRMIXT1.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 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 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 ©FILE NBRMIXB1.cpy &HTMLFILE nbrmixb1.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, Numeric Fields &PROGID NBRMIXT1 &SYSUT1 org=Sequential recfm=FIXED rmax=1024 * * 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 NBRMIXN1 &NUMREC NBRMIX-RECORD * * The following group of statements will define the type of processing * and the name of the numeric fields. * &UT1TOTAL NBRMIX-FLD-ZDU-5-0 &UT1TOTAL NBRMIX-FLD-ZDS-5-0 &UT1TOTAL NBRMIX-FLD-PKU-5-0 &UT1TOTAL NBRMIX-FLD-PKS-5-0 &UT1TOTAL NBRMIX-FLD-BNU-5-0 &UT1TOTAL NBRMIX-FLD-BNS-5-0 * &END
The following shows the format of the cobc command that is used to compile the program.
cobc -fixed -std=ibm progname.cbl -o progname.so -I SIMOSAM1/DEVL/COBCPY1
TAG
The input for this generated COBOL program is an ASCII-encoded, Record Sequential file with fixed-length fields and fixed-length records.
This file format is supported by Micro Focus and GnuCOBOL.
The following is a listing of the Process Control File (NBRMIXT2.pcf) used to generate the COBOL Source member.
*********************************************************************** * NBRMIXT2.pcf - a Process Control File * * Accumulate Record Counts and Totals for Numeric Fields * * (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 1024-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 ©FILE NBRMIXB2.cpy &HTMLFILE nbrmixb2.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, Numeric Fields &PROGID NBRMIXT2 &SYSUT1 org=Sequential recfm=FIXED rmax=1024 * * 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 NBRMIXN2 &NUMREC NBRMIX-RECORD-2 * * The following group of statements will define the type of processing * and the name of the numeric fields. * &UT1TOTAL NBRMIX-FLD-ZDU-5-0 &UT1TOTAL NBRMIX-FLD-ZDS-5-0 &UT1TOTAL NBRMIX-FLD-PKU-5-0 &UT1TOTAL NBRMIX-FLD-PKS-5-0 &UT1TOTAL NBRMIX-FLD-BNU-5-0 &UT1TOTAL NBRMIX-FLD-BNS-5-0 * &END
The following shows the format of the cobc command that is used to compile the program.
cobc -fixed -std=ibm progname.cbl -o progname.so -I SIMOSAM1/DEVL/COBCPY1
TAG
TAG
The logical hex-dump is intended for application programmers and simply presents the individual records within a file.
The physical hex-dump is intended for system programmers and presents the individual records within a file along with the embedded structural information about the file. The SIMOZAPS Utility program (a part of the SIMOTIME suite of Utility programs) is used on a Linux, UNIX or Windows System to produce a Physical Hex-Dump of a data file.
The logical hex-dump is intended for application programmers and simply presents the individual records within a file.
The following is a listing of the Process Control File (HXV32K05.pcf) used to generate a HEX-Dump program.
*********************************************************************** * HXV32K05.pcf - a Process Control File * * Hex-Dump for a Sequential File with Variable-Length records * * (C) Copyright 1987-2019 All Rights Reserved * * Web Site URL: http://www.simotime.com * * e-mail: helpdesk@simotime.com * *********************************************************************** * SYSUT1 - Record Sequential file, 4-32760 variable-length records. * * SYSUT2 - Line Sequential file, 080-byte maximum length records. * * SYSUT3 - Line Sequential file, 32760-byte maximum length records. * *********************************************************************** * This Process Control File will be used to generate a COBOL program * that will do a hexadecimal dump of the user-defined records * contained in a record sequential file. * * 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 Y4X32RS1.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 Batch, HEX-Dump RSEQ LRECL=4x32760 &PROGID HXV32KC5 &UT1READ SEQUENTIAL &SYSUT1 name=SYSUT1 org=Sequential recfm=variable rmin=4 rmax=32760 RECMODE RECVARY &SYSUT2 name=SYSUT2 org=ASCII/Text recfm=variable rmin=4 rmax=32760 TRUNC=SYSUT1 &SYSUT3 name=SYSUT3 org=ASCII/Text recfm=FIXED rlen=080 * * WIP... * *HEXOPEN OUTPUT or EXTEND &TRANSVREC ENABLE trunc move conv &HEXDUMP SYSUT1 pos 0001 len 0256 *HEXFIRST *HEXFINAL *HEXLIMIT * &END
The following is a listing of the Bash Script member (HXLS1K05.pcf) used to generate a HEX-Dump program..
*********************************************************************** * HXLS1K05.pcf - a Process Control File * * Hex-Dump for a Sequential File with Variable-Length records * * (C) Copyright 1987-2019 All Rights Reserved * * Web Site URL: http://www.simotime.com * * e-mail: helpdesk@simotime.com * *********************************************************************** * SYSUT1 - Record Sequential file, 4-32760 variable-length records. * * SYSUT2 - Line Sequential file, 080-byte maximum length records. * * SYSUT3 - Line Sequential file, 32760-byte maximum length records. * *********************************************************************** * This Process Control File will be used to generate a COBOL program * that will do a hexadecimal dump of the user-defined records * contained in a record sequential file. * * 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 Y4X32RS1.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 Batch, HEX-Dump LSEQ LRECL=1024 &PROGID HXLS1KC5 &UT1READ SEQUENTIAL &SYSUT1 name=SYSUT1 org=ASCII/Text recfm=variable rmin=4 rmax=1024 RECMODE RECVARY &SYSUT2 name=SYSUT2 org=ASCII/Text recfm=variable rlen=1024 TRUNC=SYSUT1 &SYSUT3 name=SYSUT3 org=ASCII/Text recfm=FIXED rlen=080 * * WIP... * *HEXOPEN OUTPUT or EXTEND &TRANSVREC ENABLE trunc move conv &HEXDUMP SYSUT1 pos 0001 len 0256 *HEXFIRST *HEXFINAL *HEXLIMIT * &END
The physical hex-dump is intended for system programmers and presents the individual records within a file along with the embedded structural information about the file. The SIMOZAPS Utility program (a part of the SIMOTIME suite of Utility programs) is used on a Linux, UNIX or Windows System to produce a Physical Hex-Dump of a data file.
This section provides information about program members that are used by this suite of programs and shared with other tasks or applications. These ancillary program members are available as a separate package or as part of the SIMOTIME Enterprise package.
This link provides detailed information for the Common or Shared program members.
The following members are for the Windows Environment. The Job Scripts use Command Files.
The following (ENV1BASE.cmd) is a Windows Command file that will set the commonly used environment variables. This member is used to provide a single point for managing the commonly used environment variables.
@echo OFF rem * ******************************************************************* rem * ENV1BASE.cmd - a Windows Command File * rem * This program is provided by SimoTime Technologies * rem * (C) Copyright 1987-2021 All Rights Reserved * rem * Web Site URL: http://www.simotime.com * rem * e-mail: helpdesk@simotime.com * rem * ******************************************************************* rem * rem * Text - Provide a single point to set common environment variables. rem * Author - SimoTime Technologies rem * Date - January 24, 1996 rem * rem * Set the commonly used environment variables. This is used to provide rem * a single point for managing the commonly used environment variables. rem * set SimoLIBR=c:\SimoLIBR set BASELIB1=c:\SIMOSAM1\DEVL set BASELIB8=c:\SimoSAM8 set BaseWIP1=c:\SimoSAM1\WIP1 set DATAZERO=c:\SIMODATA\DEVL\DATA\ZERO set BASEAPP=%BaseLib1% set BASESYS=%BaseLib1%\SYS1 set BASECAT=%BaseLib1%\DATA set UMAPALIB=%BASECAT%\ASC1 set UMAPELIB=%BASECAT%\EBC1 set SYSLOG=%BASESYS%\LOGS\SYSLOG_USER.DAT set SYSOUT=%BASEAPP%\LOGS\SYSOUT_SIMSAM01.txt set SLZMSG=%BASEAPP%\LOGS\SLZMSG_USER.TXT set PostNOTE=%BASEAPP%\LOGS\JOBLOG_SIMONOTE.TXT set SIMONOTE=%BASEAPP%\LOGS\JOBLOG_SIMONOTE.txt set USERPOST=%BASEAPP%\LOGS\ASSIGNED_USER_POST_FILE.txt if [%1]==[] goto NO_POST set SYSOUT=%BaseLib1%\LOGS\SYSOUT_%1.txt call SIMONOTE "+ ENV1BASE *" call SIMONOTE "+ ENV1BASE ********************************************************************%1" call SIMONOTE "+ ENV1BASE is preparing the System Environment..." call SIMONOTE "+ SIMOLIBR is %SIMOLIBR%" call SIMONOTE "+ MIFOSYS1 is %MIFOSYS1%" call SIMONOTE "+ BASELIB1 is %BASELIB1%" :NO_POST call SIMONOTE "+ SIMONOTE Job Log File is %SIMONOTE% " rem * set MQBASE=C:\Program Files\IBM\WebSphere MQ rem * rem * Set the location for the Apache-Tomcat Server... set CATALINA_HOME=C:\APACHETC\apache-tomcat-7.0.52 rem set CATALINA_HOME=C:\Program Files (x86)\Java\jdk1.8.0_112 rem * rem * Set the Environment for the Java Environment... rem set JAVABASE=C:\APACHETC\apache-tomcat-7.0.52 set JAVABASE=C:\Program Files (x86)\Java\jdk1.8.0_112 set JAVASDK="%JAVABASE%\bin" set JAVA_HOME=%JAVABASE% set JRE_HOME=%JAVABASE% set SIMOTCAT=%CATALINA_HOME%\webapps\simotcat set SIMPACKS=%CATALINA_HOME%\webapps\simotcat\WEB-INF\classes\simpacks rem * rem * Set the environment for the Micro Focus technology... set MIFOEDEV=C:\Program Files (x86)\Micro Focus\Enterprise Developer set MIFOVCBL=C:\Program Files (x86)\Micro Focus\Visual COBOL Build Tools set MIFOESTU=C:\Program Files (x86)\Micro Focus\Studio Enterprise Edition 6.0 set MIFOEMFE="C:\Program Files (x86)\Micro Focus\Mainframe Express" rem * rem * Large file support, performance tuning and record locking of the File Handler set EXTFH=%BASESYS%\CONFIG\EXTFHBIG.CFG rem * rem * For IMS Support set ES_IMSLIB=%BASEAPP%\IMSLIB set ES_ACBLIB=%BASEAPP%\IMSLIB rem * rem * EZASOKETS Check EZASOKETS Enabled box or set ES_EZASOKET_SUPPORT=YES set EZACONFG=BASESYS1\CONFIG\EZACONFG.dat rem * rem * Resource Allocation and Performance for SORT and non-Relational Data rem set MFJSENGINE=SYNCSORT set SORTSCHEME=1 set SORTSPACE=750000000 set TMP=C:\SORTWORK rem * set ES_ALLOC_OVERRIDE=%BASESYS%\CONFIG\CATMAPA1.cfg rem * For CORE_ON_ERROR function, ABEND Dump rem * set COBCONFIG_=%BASESYS%\CONFIG\diagnose.cfg rem * rem * Consolidated Trace Facility (CTF) rem * set MFTRACE_CONFIG=%BASESYS%\CONFIG\ctf.cfg rem * set MFTRACE_LOGS=c:\ctflogs rem * rem * For Job Restart, ABEND Recovery set MF_UCC11=Y set ES_JES_RESTART=Y rem * rem * Set environment for MFBSI (Micro Focus Batch Scheduling Interface) set ES_EMP_EXIT_1=mfbsiemx set MFBSI_DIR=%BASESYS%\LOGS\%JESSERVERNAME% set MFBSIEOP_CMD=ENABLE set MFBSIEOP_CSV=ENABLE set MFBSIEOP_HTM=ENABLE set MFBSIEOP_XML=ENABLE rem * rem * Set Behavior and Trace Flags for GETJOBDD rem * Position=12345678/12345678 set JDDFLAGS=nnnWnnnn/YYnnnnnn rem * rem * If not already set then set the PATH for Micro Focus Directories if "%SIMOPATH%" == "Y" goto JUMPPATH if "%MIFOSYS1%" == "EDEV" goto JUMPEDEV if "%MIFOSYS1%" == "VCBL" goto JUMPVCBL if "%MIFOSYS1%" == "ESTU" goto JUMPESTU if "%MIFOSYS1%" == "EMFE" goto JUMPEMFE :JUMPEDEV set path=%BASESYS%\LOADLIB;%MIFOEDEV%\bin;%JAVASDK%;%BASEAPP%\JAVA;%PATH%; set CobCpy=%BASEAPP%\CobCpy1;%BASEAPP%\CobCpy2;%BASEAPP%\CobCpy6;%SimoLIBR%;%MIFOEDEV%\CPYLIB set MIFOBASE=%MIFOEDEV% goto JUMPPATH :JUMPVCBL set path=%MIFOVCBL%\bin;%MIFOVCBL%;%JAVASDK%;%BASEAPP%\JAVA;%PATH%; set MIFOBASE=%MIFOVCBL% goto JUMPPATH :JUMPESTU set MIFOBASE=%MIFOESTU%\Base set MIFOBIN=%MIFOBASE%\bin set path=%BASESYS%\LOADLIB;%MIFOBASE%;%MIFOBIN%;%JAVASDK%;%BASEAPP%\JAVA;%PATH%; set CobCpy=%BASEAPP%\CobCpy1;%BASEAPP%\CobCpy2;%BASEAPP%\CobCpy6;%SimoLIBR%;%MIFOBASE%\SOURCE goto JUMPPATH :JUMPEMFE set MIFOBASE=%MIFOEMFE%\Base set MIFOBIN=%MIFOBASE%\bin set path=%BASESYS%\LOADLIB;%MIFOBASE%;%MIFOBIN%;%JAVASDK%;%BASEAPP%\JAVA;%PATH%; set CobCpy=%BASEAPP%\CobCpy1;%BASEAPP%\CobCpy2;%BASEAPP%\CobCpy6;%SimoLIBR%;%MIFOBASE%\SOURCE goto JUMPPATH rem * :JUMPPATH set SIMOPATH=Y rem * set MAINFRAME_FLOATING_POINT=true set COBIDY=%BASEAPP%\COBIDY set COBPATH=.;%BASEAPP%\LOADLIB;%BASEAPP%\LOADLIB\GNTS;%BASESYS%\LOADLIB;%SimoLIBR% set LIBPATH=.;%BASEAPP%\LOADLIB;%BASEAPP%\LOADLIB\GNTS;%BASESYS%\LOADLIB;%SimoLIBR% set TXDIR=%BASESYS%\LOADLIB;%MIFOBASE% set CobCpy=%BASEAPP%\CobCpy1;%BASEAPP%\CobCpy2;%BASEAPP%\CobCpy6;%SimoLIBR% rem * set USERCLASS=%BASELIB1%\LOADLIB set CLASSPATH=. set CLASSPATH=%CLASSPATH%;%JAVABASE% set CLASSPATH=%CLASSPATH%;%JAVABASE%\lib set CLASSPATH=%CLASSPATH%;\%USERCLASS%\simpacks set CLASSPATH=%CLASSPATH%;C:\APACHETC\apache-tomcat-7.0.52\webapps\simotcat\WEB-INF\classes set CLASSPATH=%CLASSPATH%;C:\APACHETC\apache-tomcat-7.0.52\webapps\simotcat\WEB-INF\classes\simpacks rem * if "%MIFOSYS1%" == "ESTU" set CLASSPATH=%CLASSPATH%;%MIFOBIN% if "%MIFOSYS1%" == "EDEV" set CLASSPATH=%CLASSPATH%;%MIFOEDEV% if "%MIFOSYS1%" == "VCBL" set CLASSPATH=%CLASSPATH%;%MIFOVCBL% if "%MIFOSYS1%" == "VCBL" set CLASSPATH=%CLASSPATH%;%MIFOVCBL%\bin\mfcobol.jar rem * set JobStatus=0000 call SIMONOTE "+ ENV1BASE is returning to caller"
The following (SIMONOTE.cmd) is a Windows Command file that may be called from other scripts and expects a single parameter enclosed in double quotes. The double quotes will be removed. The text message will be displayed to the screen. Before writing to the log file a date and time stamp will be inserted in front of the message text.
@echo OFF rem * ******************************************************************* rem * SIMONOTE.cmd - a Windows Command File * rem * This program is provided by SimoTime Technologies * rem * (C) Copyright 1987-2019 All Rights Reserved * rem * Web Site URL: http://www.simotime.com * rem * e-mail: helpdesk@simotime.com * rem * ******************************************************************* rem * rem * Text - Display message on screen and write to a log file. rem * Author - SimoTime Technologies rem * rem * This script may be called from other scripts and expects a single rem * parameter enclosed in double quotes. The double quotes will be rem * removed. Before writing to the log file a date and time stamp rem * will be inserted in front of the message text. rem * rem * Note: The tilde (~) removes leading/trailing double-quotes. rem * if "%SimoNOTE%" == "" set SimoNOTE=c:\SimoLIBR\LOGS\SimoTime.LOG echo %date% %time% %~1>> %SimoNOTE% echo %~1
The following members are for the Linux Environment. The Batch Job Scripts use Bash Script Files.
The following shows the snippet of code that is used at the start of a batch job. This snippet of code will access a configuration file (ENV4SYS1.cfg) and set the base system environment for batch job execution.
#!/bin/bash JOBNAME=jobname for textstring in $(cat ENV4SYS1.cfg); do # # * The following statement will replace all occurences # # * of USD_BASESYS1 with the value of the BASESYS1 # # * environment variable. textstring=${textstring//USD_BASESYS1/$BASESYS1} # # * The following statement will replace all occurences # # * of USD_JOBNAME with the value of the JOBNAME # # * environment variable. textstring=${textstring/USD_JOBNAME/$JOBNAME} export $textstring rc=$? if [ $rc != 0 ] then simonote.sh "# $textstring - Return Code is $rc" JOBSTATUS=$rc fi done
The following shows the content of the configuration file (ENV4SYS1.cfg) that is used to set the base environment. This member is used to provide a single point for managing the commonly used system environment variables.
BASESYS1=/home/larry/SIMOSY76 COB_LIBS=USD_BASESYS1/SIMOSAM1/DEVL/LOADLIB:USD_BASESYS1/SIMOLIBR COB_LIBRARY_PATH=USD_BASESYS1/SIMOSAM1/DEVL/LOADLIB:USD_BASESYS1/SIMOLIBR SIMONOTE=USD_BASESYS1/SIMOSAM1/DEVL/LOGS/JOBLOG_SIMONOTE_USD_JOBNAME.txt
When the configuration file is processed by a batch job script the "USD_" text string will be replaced by a the "$" symbol.
The following (simonote.sh) is a Linux Bash script file that may be called from other scripts and expects a single parameter enclosed in double quotes. The double quotes will be removed. The text message will be displayed to the screen. Before writing to the log file a date and time stamp will be inserted in front of the message text.
#!/bin/bash # * ******************************************************************* # * simonote.sh - a Bash Script File * # * This program is provided by SimoTime Technologies * # * (C) Copyright 1987-2018 All Rights Reserved * # * Web Site URL: http://www.simotime.com * # * e-mail: helpdesk@simotime.com * # * ******************************************************************* # * # * Text - Display message on screen and write to a log file. # * Author - SimoTime Technologies # * # * This script may be called from other scripts and expects a single # * parameter enclosed in double quotes. The double quotes will be # * removed. Before writing to the log file a date and time stamp # * will be inserted in front of the message text. # * # * Note: The tilde (~) removes leading/trailing double-quotes. # * # * "$simonote" == "" export SimoNOTE=/SIMOLIBR/LOGS/JESLOG_BASHUSER.txt if [ "$SIMONOTE" = "" ] then export SIMONOTE=SIMONOTE_JOBLOG_BASHUSER.txt fi echo $(date +'%Y/%m/%d') - $(date +'%r') $1>> $SIMONOTE echo $1
This document will describe and demonstrate how to process data strings containing numeric values. The processing techniques include the creation, conversion and viewing in a Hex Dump format. The numeric formats include Zoned Decimal (USAGE IS DISPLAY), Packed Decimal (USAGE IS COMP-3) and Binary (USAGE IS COMP). This document may be used as a tutorial for new programmers or as a quick reference for experienced programmers.
In the world of programming there are many ways to solve a problem. This documentation and software were developed and tested on systems that are configured for a SIMOTIME environment based on the hardware, operating systems, user requirements and security requirements. Therefore, adjustments may be needed to execute the jobs and programs when transferred to a system of a different architecture or configuration.
SIMOTIME Services has experience in moving or sharing data or application processing across a variety of systems. For additional information about SIMOTIME Services or Technologies please contact us using the information in the Contact or Feedback section of this document.
Software Agreement and Disclaimer
Permission to use, copy, modify and distribute this software, documentation or training material for any purpose requires a fee to be paid to SimoTime Technologies. Once the fee is received by SimoTime the latest version of the software, documentation or training material will be delivered and a license will be granted for use within an enterprise, provided the SimoTime copyright notice appear on all copies of the software. The SimoTime name or Logo may not be used in any advertising or publicity pertaining to the use of the software without the written permission of SimoTime Technologies.
SimoTime Technologies makes no warranty or representations about the suitability of the software, documentation or learning material for any purpose. It is provided "AS IS" without any expressed or implied warranty, including the implied warranties of merchantability, fitness for a particular purpose and non-infringement. SimoTime Technologies shall not be liable for any direct, indirect, special or consequential damages resulting from the loss of use, data or projects, whether in an action of contract or tort, arising out of or in connection with the use or performance of this software, documentation or training material.
This section includes links to documents with additional information that are beyond the scope and purpose of this document. The first group of documents may be available from a local system or via an Internet connection, the second group of documents will require an Internet connection.
Note: A SIMOTIME License is required for the items to be made available on a local system or server.
The following links may be to the current server or to the Internet.
Note: The latest versions of the SimoTime Documents and Program Suites are available on the Internet and may be accessed using the icon. If a user has a SimoTime Enterprise License the Documents and Program Suites may be available on a local server and accessed using the icon.
Explore the Numbers Connection for additional information about the structure and processing of numeric data items (or numeric fields).
Explore The ASCII and EBCDIC Translation Tables. These tables are provided for individuals that need to better understand the bit structures and differences of the encoding formats.
Explore The File Status Return Codes that are used to interpret the results of accessing VSAM data sets and/or QSAM files.
The following links will require an internet connect.
This suite of programs and documentation is available to download for review and evaluation purposes. Other uses will require a SIMOTIME Software License. Link to an Evaluation zPAK Option that includes the program members, documentation and control files.
A good place to start is The SimoTime Home Page for access to white papers, program examples and product information. This link requires an Internet Connection
Explore The Micro Focus Web Site for more information about products (including Micro Focus COBOL) and services available from Micro Focus. This link requires an Internet Connection.
Explore the GnuCOBOL Technologies available from SourceForge. SourceForge is an Open Source community resource dedicated to helping open source projects be as successful as possible. GnuCOBOL (formerly OpenCOBOL) is a COBOL compiler with run time support. The compiler (cobc) translates COBOL source to executable using intermediate C, designated C compiler and linker. This link will require an Internet Connection.
Explore the Glossary of Terms for a list of terms and definitions used in this suite of documents and white papers.
This document was created and is maintained by SimoTime Technologies. If you have any questions, suggestions, comments or feedback please use the following contact information.
1. | Send an e-mail to our helpdesk. |
1.1. | helpdesk@simotime.com. |
2. | Our telephone numbers are as follows. |
2.1. | 1 415 763-9430 office-helpdesk |
2.2. | 1 415 827-7045 mobile |
We appreciate hearing from you.
SimoTime Technologies was founded in 1987 and is a privately owned company. We specialize in the creation and deployment of business applications using new or existing technologies and services. We have a team of individuals that understand the broad range of technologies being used in today's environments. Our customers include small businesses using Internet technologies to corporations using very large mainframe systems.
Quite often, to reach larger markets or provide a higher level of service to existing customers it requires the newer Internet technologies to work in a complementary manner with existing corporate mainframe systems. We specialize in preparing applications and the associated data that are currently residing on a single platform to be distributed across a variety of platforms.
Preparing the application programs will require the transfer of source members that will be compiled and deployed on the target platform. The data will need to be transferred between the systems and may need to be converted and validated at various stages within the process. SimoTime has the technology, services and experience to assist in the application and data management tasks involved with doing business in a multi-system environment.
Whether you want to use the Internet to expand into new market segments or as a delivery vehicle for existing business functions simply give us a call or check the web site at http://www.simotime.com
Return-to-Top |
Numeric Data Structures, Packed, Binary and Zoned Decimal |
Copyright © 1987-2025 SimoTime Technologies and Services All Rights Reserved |
When technology complements business |
http://www.simotime.com |