Various Numeric Formats Create 80-Byte Sequential Test Files |
The SimoTime Home Page |
The primary objective of this test case is to show the level of support/compatibility of the various numeric formats that are used on a Mainframe System and supported on a Linux, UNIX or Windows System with Micro Focus Enterprise Server. This test case will use a documented process to describe and demonstrate how to create a set of record sequential files with records that contain fields that are text strings and numeric strings in a variety of formats. For example, the text strings may be ASCII or EBCDIC encoded. The numeric strings may be signed or unsigned (implied positive) and may be zoned decimal, packed-decimal or binary.
A secondary objective is to describe and demonstrate how the programs that do the various file format and record content conversions are generated and deployed.
1. | Create the Data to be used as Input for this Test Case. |
1.1. | Create a Line Sequential file with a text and a numeric string. |
1.2. | Create a Record Sequential file with ASCII-encoded text fields and numeric fields with packed and binary formats. The line sequential file created in the previous step will be used to create this file. |
1.3. | Create a Record Sequential with EBCDIC-encoded text fields and numeric fields with packed and binary formats. The record sequential file created in the previous step will be used to create this file. |
1.4. | Allow the files to be shared by other test cases and other users. |
2. | Describe and Demonstrate how to generate Data File Create and Convert Programs. |
2.1. | Create a Process Control File (PCF) that contains the specifications for creating or converting a non-relational data file. |
2.2. | Generate the programs that will create and view the data files to be used for testing by this test case and other test cases. |
3. | Review the Results |
3.1. | Review/view the new data files. |
3.2. | Compare the actual results obtained with a known expected result. |
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
The programs used to create the test files are COBOL programs. The programs were generated on a Windows System with Micro Focus Studio and SimoTime Technologies. The generated programs may be compiled and executed on an IBM Mainframe System running ZOS or VSE. The programs may be compiled and executed on a Linux, UNIX or Windows System using Micro Focus Technologies.
This test case includes JCL Members for executing on a Mainframe System with ZOS or a Linux, UNIX or Windows System with Micro Focus Server and the Mainframe Sub-System option. Sample command files are included for executing in a native mode on a Windows System.
The following provides an overview of the JCL Members that will be used in a mainframe-oriented environment.
The following JCL Member (TC05MKJ1.jcl) will set the environment then read an ASCII-encoded Record Sequential file and create an EBCDIC-encoded Record Sequential file. The record content will have numeric fields that are packed and binary formats.
//TC05MKJ1 JOB SIMOTIME,ACCOUNT,CLASS=1,MSGCLASS=0,NOTIFY=&SYSUID //* ******************************************************************* //* This JCL Member is provided by SimoTime Technologies * //* (C) Copyright 1987-2019 All Rights Reserved * //* Web Site URL: http://www.simotime.com * //* e-mail: helpdesk@simotime.com * //* ******************************************************************* //* This is a multiple-step job. //* Step 1 of 4 - Initialize the environment //* Step 2 of 4 - Create Primary test data for input (ASCII-encoded) //* Step 3 of 4 - Expand Primary file into a file that includes //* various numeric formats. //* Step 4 of 4 - Convert ASCII-encoded text to EBCDIC-encoded text. //* //* *************************************************************1 of 4 //* Step 1 of 4, //* Initialize the environment. //JOBSETUP EXEC PGM=IEFBR14 //TC05RS80 DD DSN=SIMOTIME.DATA.TC05RS80, // DISP=(MOD,DELETE,DELETE), // UNIT=SYSDA,SPACE=(TRK,0), // DCB=(DSORG=PS,RECFM=FB,LRECL=80) //TC05RSA1 DD DSN=SIMOTIME.DATA.TC05RSA1, // DISP=(MOD,DELETE,DELETE), // UNIT=SYSDA,SPACE=(TRK,0), // DCB=(DSORG=PS,RECFM=FB,LRECL=80) //TC05RSE1 DD DSN=SIMOTIME.DATA.TC05RSE1, // DISP=(MOD,DELETE,DELETE), // UNIT=SYSDA,SPACE=(TRK,0), // DCB=(DSORG=PS,RECFM=FB,LRECL=80) //* //* *************************************************************2 of 4 //* Step 2 of 4, //* Create a Primary Test File ... //* //CRTFILE1 EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSIN DD DUMMY //* :....1....:....2....:....3....:....4....:....5....:....6....:....7. //SYSUT1 DD * 000010*0012345+ 000020*0000615+ 000030*0000987- /* //SYSUT2 DD DSN=SIMOTIME.DATA.TC05RS80,DISP=(NEW,CATLG,DELETE), // STORCLAS=MFI, // SPACE=(TRK,5), // DCB=(RECFM=FB,LRECL=80,DSORG=PS) //SYSOUT DD SYSOUT=* //* //* *************************************************************3 of 4 //* Step 3 of 4, //* Expand Primary Test File to Record Sequential with ASCII-encoded //* text fields and numeric fields with COMP and COMP-3 Formats. //EXPANDS1 EXEC PGM=TC05MKC1 //SYSUT1 DD DSN=SIMOTIME.DATA.TC05RS80,DISP=SHR //SYSUT2 DD DSN=SIMOTIME.DATA.TC05RSA1, // DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA,SPACE=(TRK,0), // DCB=(DSORG=PS,RECFM=FB,LRECL=80) //SYSOUT DD SYSOUT=* //* //* *************************************************************4 of 4 //* Step 4 of 4, //* Convert ASCII-encoded file with numerice fields that are COMP //* and COMP-3 Formats to an EBCDIC-encoded file. //UTCONVS1 EXEC PGM=TC05AEC1 //SYSUT1 DD DSN=SIMOTIME.DATA.TC05RSA1,DISP=SHR //SYSUT2 DD DSN=SIMOTIME.DATA.TC05RSE1, // DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA,SPACE=(TRK,0), // DCB=(DSORG=PS,RECFM=FB,LRECL=80) //SYSOUT DD SYSOUT=* //*
The following JCL Member (TC05HXJ1.jcl) will read the ASCII-encoded and EBCDIC-encoded Test Files and create "DUMP" files in a HEX-Dump format. Since the HEX-DUMP files are all text data they may be easily viewed from the Micro Focus Enterprise Server Catalog display screen.
//TC05HXJ1 JOB SIMOTIME,CLASS=1,MSGCLASS=0,NOTIFY=CSIP1 //* ******************************************************************* //* TC05HXJ1.jcl - a Job Control Language Member * //* This program is provided by SimoTime Technologies * //* (C) Copyright 1987-2019 All Rights Reserved * //* Web Site URL: http://www.simotime.com * //* e-mail: helpdesk@simotime.com * //* ******************************************************************* //* //* Subject: Read RSEQ/80 and write to RSEQ HEX-Dump. All the records in //* the file are dumped. //* Author: SimoTime Technologies //* Date: January 24, 1996 //* //* ******************************************************************* //* Step 1 of 2, Delete previously created HEX-Dump file, //* use IEFBR14 with a DD Statement //* //JOBSETUP EXEC PGM=IEFBR14 //TC05DMP1 DD DSN=SIMOTIME.DATA.TC05DMP1,DISP=(MOD,DELETE,DELETE), // STORCLAS=MFI, // SPACE=(TRK,5), // DCB=(RECFM=F,LRECL=512,DSORG=PS) //TC05DMP2 DD DSN=SIMOTIME.DATA.TC05DMP2,DISP=(MOD,DELETE,DELETE), // STORCLAS=MFI, // SPACE=(TRK,5), // DCB=(RECFM=F,LRECL=512,DSORG=PS) //* //********************************************************************* //* Step 2 of 2, Dump all the records in the ASCII-encoded file //* //ASCDUMP EXEC PGM=HX80DUMP //SYSUT1 DD DSN=SIMOTIME.DATA.TC05RSA1,DISP=SHR //SYSUT2 DD DSN=SIMOTIME.DATA.TC05DMP1, // DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA,SPACE=(TRK,0), // DCB=(DSORG=PS,RECFM=FB,LRECL=80) //SYSOUT DD SYSOUT=* //* //* //********************************************************************* //* Step 3 of 3, Dump all the records in the EBCDIC-encoded file //* //EBCDUMP EXEC PGM=HX80DUMP //SYSUT1 DD DSN=SIMOTIME.DATA.TC05RSE1,DISP=SHR //SYSUT2 DD DSN=SIMOTIME.DATA.TC05DMP2, // DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA,SPACE=(TRK,0), // DCB=(DSORG=PS,RECFM=FB,LRECL=80) //SYSOUT DD SYSOUT=* //*
The following provides an overview of the CMD Files that will be used in a Windows environment.
The following CMD file (TC05MKW1.cmd) will set the environment then read an ASCII-encoded Record Sequential file and create an EBCDIC-encoded Record Sequential file. The record content will have numeric fields that are packed and binary formats.
@echo OFF rem * ******************************************************************* rem * TC05MKW1.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 * This is a multiple-step job. rem * Step 1 of 6 - Initialize the environment rem * Step 2 of 6 - Create a primary test data file with one text rem * string and one numeric string followed mby a plus rem * or minus sign. This step uses the Windows ECHO rem * command to create an ASCII/Text (or Line Sequential) rem * file. The records do not contain binary data. rem * Step 3 of 6 - Convert the Line Sequential file created in the rem * previous step to a Record Sequential file. rem * Step 4 of 6 - Convert the file created in the previous step rem * by modifying the records to contain additional rem * numeric fields using a BINARY and Packed-Decimal rem * format. rem * Step 5 of 6 - Convert the file created in the previous steps. rem * The ASCII-encoded text strings will be rem * converted to EBCDIC-encoding and the integrity rem * of the numeric fileds will be maintained. rem * Step 6 of 6 - End of Job Processing rem * rem * *************************************************************1 of 6 rem * Step 1 of 6, rem * Initialize the environment. set CmdName=RS80MKW1 call ..\Env1BASE %CmdName% if "%SYSLOG%" == "" set syslog=c:\SimoLIBR\LOGS\SimoTime.LOG set JobStatus=0000 rem * call SimoNOTE "*******************************************************%CmdName%" call SimoNOTE "Starting JobName %CmdName%, User is %USERNAME%" call SimoNOTE "Continue Step 1 of 6, Initialize the environment." set GETLS080=%BASELIB1%\DATA\TXT1\SIMOTIME.DATA.TC05LS80.txt set PUTRS080=%BASELIB1%\DATA\ASC1\SIMOTIME.DATA.TC05RS80.dat if exist %GETLS080% del %GETLS080% if exist %PUTRS080% del %PUTRS080% rem * rem * *************************************************************2 of 6 rem * Step 2 of n, rem * Create test data for input. call SimoNOTE "Continue Step 2 of 6, Create test data for input." rem * ....:....1....:....2....:....3.... echo 000010*0012345+>%GETLS080% echo 000020*0000615+>>%GETLS080% echo 000030*0000987->>%GETLS080% rem * rem * *************************************************************3 of 6 rem * Step 3 of 6, rem * Convert Line Sequential to Record Sequential. call SimoNOTE "Continue Step 3 of 6, Convert LSEQ to RSEQ." run CV80ALAR if not "%ERRORLEVEL%" == "0" set JobStatus=0010 if not "%JobStatus%" == "0000" goto :EOJNOK if exist %SYSUT2% call SimoNOTE "Produced DataSet %PUTRS080%" rem * rem * *************************************************************4 of 6 rem * Step 4 of 6, rem * Convert Display/Text, Create Numbers for Packed and Binary Values. call SimoNOTE "Continue Step 4 of 6, Convert Text, create Numbers." set SYSUT1=%BASELIB1%\DATA\ASC1\SIMOTIME.DATA.TC05RS80.dat set SYSUT2=%BASELIB1%\DATA\ASC1\SIMOTIME.DATA.TC05RSA1.dat if exist %SYSUT2% del %SYSUT2% run TC05MKC1 if not "%ERRORLEVEL%" == "0" set JobStatus=0010 if not "%JobStatus%" == "0000" goto :EOJNOK if exist %SYSUT2% call SimoNOTE "Produced DataSet %SYSUT2%" rem * rem * *************************************************************5 of 6 rem * Step 5 of 6, rem * Convert Text from ASC to EBC, Maintain numeric integrity. call SimoNOTE "Continue Step 5 of 6, Convert Text from ASC to EBC." set SYSUT1=%BASELIB1%\DATA\ASC1\SIMOTIME.DATA.TC05RSA1.dat set SYSUT2=%BASELIB1%\DATA\EBC1\SIMOTIME.DATA.TC05RSE1.dat if exist %SYSUT2% del %SYSUT2% run TC05AEC1 if not "%ERRORLEVEL%" == "0" set JobStatus=0020 if not "%JobStatus%" == "0000" goto :EOJNOK if exist %SYSUT2% call SimoNOTE "Produced DataSet %SYSUT2%" goto EOJAOK rem * rem * *************************************************************6 of 6 rem * Step 6 of 6, rem * End of Job Processing. :EOJNOK call SimoNOTE "ABENDING JobName %CmdName%, JobStatus %JobStatus%" call SimoNOTE "ABENDING Message JobStatus %JobStatus%" goto :EOJ :EOJAOK call SimoNOTE "Finished JobName %CmdName%" :EOJ call SimoNOTE "Conclude SysLog is %SYSLOG%" if not "%1" == "nopause" pause
The following CMD file TC05HXW1.cmd) will read the ASCII-encoded and EBCDIC-encoded Test Files and create "DUMP" files in a HEX-Dump format. NOTEPAD will be started to display the content of the HEX-DUMP Files.
@echo OFF rem * ******************************************************************* rem * TC05HXW1.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 * This is a multiple-step job. rem * Step 1 - Initialize the environment rem * Step 2 - Read an ASCII-encoded RSEQ/80, Produce a HEX-Dump output rem * Step 3 - Convert Record Sequential Dump file to ASCII/Text and rem * display the file using NotePAD rem * Step 4 - Read an EBCDIC-encoded RSEQ/80, Produce a HEX-Dump output rem * Step 5 - Convert Record Sequential Dump file to ASCII/Text and rem * display the file using NotePAD rem * Step 6 - End of Job Processing rem * rem * *************************************************************1 of 6 rem * Step 1 of 6, rem * Initialize the environment. set CmdName=TC05HXW1 call ..\Env1BASE %CmdName% rem * call SimoNOTE "*******************************************************%CmdName%" call SimoNOTE "Starting JobName %CmdName%, User is %USERNAME%" call SimoNOTE "Continue Step 1 of 3, Initialize the environment." if "%SYSLOG%" == "" set syslog=c:\SimoLIBR\LOGS\SimoTime.LOG set JobStatus=0000 rem * rem * *************************************************************2 of 6 rem * Step 2 of 6, rem * Dump the File. call SimoNOTE "Continue Step 2 of 6, Dump the ASCII-encoded File." set SYSUT1=%BASELIB1%\DATA\APPL\SIMOTIME.DATA.TC05RSA1.dat set SYSUT2=%BASELIB1%\DATA\APPL\SIMOTIME.DATA.TC05DMP1.dat if exist %SYSUT2% del %SYSUT2% run HX80DUMP if not "%ERRORLEVEL%" == "0" set JobStatus=0010 if not "%JobStatus%" == "0000" goto :EOJNOK rem * rem * *************************************************************3 of 6 rem * Step 3 of 6, rem * Convert to ASCII/Text. call SimoNOTE "Continue Step 3 of 6, Convert to ASCII/Text." set GETRS080=%BASEAPP%\DATA\APPL\SIMOTIME.DATA.TC05DMP1.dat set PUTLS080=%BASEAPP%\DATA\TXT1\SIMOTIME.DATA.TC05DMP1.txt if exist %PUTLS080% erase %PUTLS080% run CV80ARAL if not "%ERRORLEVEL%" == "0" set JobStatus=0015 if not "%JobStatus%" == "0000" goto :EojNOK if exist %PUTLS080% start NOTEPAD %PUTLS080% rem * rem * *************************************************************4 of 6 rem * Step 4 of 6, rem * Dump the File. call SimoNOTE "Continue Step 4 of 6, Dump the EBCDIC-encoded File." set SYSUT1=%BASELIB1%\DATA\APPL\SIMOTIME.DATA.TC05RSE1.dat set SYSUT2=%BASELIB1%\DATA\APPL\SIMOTIME.DATA.TC05DMP2.dat if exist %SYSUT2% del %SYSUT2% run HX80DUMP if not "%ERRORLEVEL%" == "0" set JobStatus=0010 if not "%JobStatus%" == "0000" goto :EOJNOK rem * rem * *************************************************************5 of 6 rem * Step 5 of 6, rem * Convert to ASCII/Text. call SimoNOTE "Continue Step 5 of 6, Convert to ASCII/Text." set GETRS080=%BASEAPP%\DATA\APPL\SIMOTIME.DATA.TC05DMP2.dat set PUTLS080=%BASEAPP%\DATA\TXT1\SIMOTIME.DATA.TC05DMP2.txt if exist %PUTLS080% erase %PUTLS080% run CV80ARAL if not "%ERRORLEVEL%" == "0" set JobStatus=0015 if not "%JobStatus%" == "0000" goto :EojNOK if exist %PUTLS080% start NOTEPAD %PUTLS080% goto EOJAOK rem * rem * *************************************************************6 of 6 rem * Step 6 of 6, rem * End of Job Processing. :EOJNOK call SimoNOTE "ABENDING JobName %CmdName%, JobStatus %JobStatus%" call SimoNOTE "ABENDING Message JobStatus %JobStatus%" goto :EOJ :EOJAOK call SimoNOTE "Finished JobName %CmdName%" :EOJ
The following shows the record content of the HEX-Dump files for the Test Files. For each record in the primary Test File the HEX-Dump file contains four lines of information. The first line is the possible ASCII translation. The second and third lines are the HEX-Dump information. The second line contains the high-order nibble and the third line contains the low-order nibble of each byte in the record. The fourth line is the possible EBCDIC translation.
The following show the content of the HEX-Dump file for the ASCII-encoded Test File.
000010*0012345+*ZDU=0012345*ZDS=0012345*BNU=..09*BNS=..09*PDU=..4_*PDS=..4\*END* 33333323333333225453333333325453333333324453003324453003325453013525453013524442 000010A0012345BAA45D0012345AA43D0012345A2E5D0009A2E3D0009A045D024FA043D024CA5E4A ................!...........!............+........+.......&........&......*..+.. * 000020*0000615+*ZDU=0000615*ZDS=0000615*BNU=...g*BNS=...g*PDU=..a_*PDS=..a\*END* 33333323333333225453333333325453333333324453000624453000625453006525453006524442 000020A0000615BAA45D0000615AA43D0000615A2E5D0027A2E3D0027A045D001FA043D001CA5E4A ................!...........!............+........+.......&...../..&...../*..+.. * 000030*0000987-*ZDU=0000987*ZDS=000098w*BNU=....*BNS=...%*PDU=....*PDS=...}*END* 33333323333333225453333333325453333333724453000D24453FFF225453009725453009724442 000030A0000987DAA45D0000987AA43D0000987A2E5D003BA2E3DFFC5A045D008FA043D008DA5E4A ................!...........!............+........+.......&.....q".&.....q'..+.. *
The following show the content of the HEX-Dump file for the EBCDIC-encoded Test File.
......\.......N\...~.......\...~.......\...~..09\...~..09\...~..4_\...~..4\\...\ FFFFFF5FFFFFFF45ECE7FFFFFFF5ECE7FFFFFFF5CDE700335CDE700335DCE701355DCE701355CDC5 000010C0012345EC944E0012345C942E0012345C254E0009C252E0009C744E024FC742E024CC554C 000010*0012345+*ZDU=0012345*ZDS=0012345*BNU=....*BNS=....*PDU=....*PDS=...**END* * ......\.......N\...~.......\...~.......\...~...g\...~...g\...~..a_\...~..a\\...\ FFFFFF5FFFFFFF45ECE7FFFFFFF5ECE7FFFFFFF5CDE700065CDE700065DCE700655DCE700655CDC5 000020C0000615EC944E0000615C942E0000615C254E0027C252E0027C744E001FC742E001CC554C 000020*0000615+*ZDU=0000615*ZDS=0000615*BNU=....*BNS=....*PDU=../.*PDS=../**END* * ......\.......`\...~.......\...~.......\...~....\...~...%\...~....\...~...}\...\ FFFFFF5FFFFFFF65ECE7FFFFFFF5ECE7FFFFFFD5CDE7000D5CDE7FFF25DCE700975DCE700975CDC5 000030C00009870C944E0000987C942E0000987C254E003BC252EFFC5C744E008FC742E008DC554C 000030*0000987-*ZDU=0000987*ZDS=000098P*BNU=....*BNS=....*PDU=..q"*PDS=..q'*END* *
WIP1
A part of the preparation process is to generate the programs that are used to create and manage the test files used in the test case.
WIP2
*********************************************************************** * This Process Control File is provided by SimoTime Enterprises * * (C) Copyright 1987-2019 All Rights Reserved * * Web Site URL: http://www.simotime.com * * e-mail: helpdesk@simotime.com * *********************************************************************** * SYSUT1 is a Line Sequential File, 80-byte records. * * SYSUT2 is a Record Sequential file, 80-byte fixed-length 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 * * 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 Expand an RSEQ/80 to RSEQ/80 File &PROGID TC05MKC1 &SYSUT1 org=Sequential recfm=FIXED rlen=80 &SYSUT2 org=Sequential recfm=FIXED rlen=80 * &TRANSCOPY from pos 01 len 15 to pos 01 len 15 &TRANSFILL pos 16 len 5 '*ZDU=' &TRANSZADD from pos 08 len 7 dec 0 fmt ZDT to pos 21 len 7 dec 0 fmt ZDU &TRANSFILL pos 28 len 5 '*ZDS=' &TRANSZADD from pos 08 len 7 dec 0 fmt ZDT to pos 33 len 7 dec 0 fmt ZDS &TRANSFILL pos 40 len 5 '*BNU=' &TRANSZADD from pos 08 len 7 dec 0 fmt ZDT to pos 45 len 7 dec 0 fmt BNU &TRANSFILL pos 49 len 5 '*BNS=' &TRANSZADD from pos 08 len 7 dec 0 fmt ZDT to pos 54 len 7 dec 0 fmt BNS &TRANSFILL pos 58 len 5 '*PDU=' &TRANSZADD from pos 08 len 7 dec 0 fmt ZDT to pos 63 len 7 dec 0 fmt PDU &TRANSFILL pos 67 len 5 '*PDS=' &TRANSZADD from pos 08 len 7 dec 0 fmt ZDT to pos 72 len 7 dec 0 fmt PDS &TRANSFILL pos 76 len 5 '*END*' * &END
The following (TC05AE01.pcf) is the Process Control File that is used to generate the program that will convert a sequential file with 80-byte records from ASCII to EBCDIC. The records contain packed/binary numbers.
*********************************************************************** * TC05AE01.pcf - a Process Control File * * SimoTime Program Generation Technologies * * (C) Copyright 1987-2019 All Rights Reserved * * Web Site URL: http://www.simotime.com * * e-mail: helpdesk@simotime.com * *********************************************************************** * SYSUT2 is a Record Sequential, 80-byte, fixed-field length file * with ASCII-encoded text fields and Packed-Decimal and BINARY * numeric fields. * SYSUT2 is a Record Sequential, 80-byte, fixed-field length file * with EBCDIC-encoded text fields and Packed-Decimal and BINARY * numeric fields. * * This procdedure will generate the IO Program, the callable convert * routine and the HTML Documentation for the data file structure. * The primary purpose for this program is to convert an ASCII-encoded, * record sequential file to an EBCDIC-encoded, record sequential copy * while maintaining the integrity of the numeric fields. *********************************************************************** * &SIMOPREP call ..\..\ENV1BASE &USERPREP call USERCONV &CONFORM IBM ©FILE TC05RSB1.cpy &HTMLFILE tc05rsb1.htm &DIALECT C2 *HEAD34 ....:....1....:....2....:....3.... &HEAD34 Convert RSEQ/80, ASC-EBC, NBR-Fmts &IOMODNAME TC05AEC1 &SYSUT1 org=Sequential recfm=FIXED rlen=80 &SYSUT2 org=Sequential recfm=FIXED rlen=80 &PACKEDFLD SPACECONVERT &TransCALL TC05AER1 &TransMODE A2E * &END
The following (HX80DUMP.pcf) is the Process Control File that is used to generate the program that will provide a Hex-Dump of a sequential file with 80-byte records.
*********************************************************************** * HX80DUMP.pcf - a Process Control File * * SimoTime Program Generation Technologies * * (C) Copyright 1987-2019 All Rights Reserved * * Web Site URL: http://www.simotime.com * * e-mail: helpdesk@simotime.com * *********************************************************************** * SYSUT1 - a Record Sequential file with 80-byte, fixed-length records. * SYSUT2 - a Record Sequential file with 80-byte, fixed-length records. * * The DIALECT statement specifies the use of COBOL/2 compliant code * for the generated conversion program. * ********************************************************************* &SIMOPREP call ..\..\ENV1BASE &USERPREP call USERCONV &CONFORM IBM &Dialect C2 *HEAD34 ....:....1....:....2....:....3.... &HEAD34 RSEQ/80 input to Hex Dump Output &progid HX80DUMP &sysut1 org=Sequential recfm=fixed rlen=80 &sysut2 org=Sequential recfm=fixed rlen=80 * * -------------------------------------------------------------------- * The following statement incorporate the use of the "User Exit" * functions of the conversion program generator. * The USR keyword of the TRANSMODE statement causes the generator * to do the following. * 1. Process the USERDATA statement to create the Data Definitions * in WORKING STORAGE of the generated program. * 2. Process the USEREXEC statement to do the processing logic in * the PROCEDURE DIVISION of the generated program. * &transmode USR &USERDATA HEX4WSUI.inc &USEREXEC HEX080UI.inc * &END
WIP1
The following source member TC05RSB1.cbl) is the COBOL Copy File that defines the record structure for the test files.
***************************************************************** * TC05RSB1.CPY is a COBOL Copy File * * Copy File for an 80-byte, fixed-length record. * * This is a VSAM Keyed=Sequential-Data-Set or Key-Indexed File. * * Copyright (C) 1987-2019 SimoTime Technologies * * All Rights Reserved * ***************************************************************** * Provided by SimoTime Technologies * * Our e-mail address is: helpdesk@simotime.com * * Also, visit our Web Site at http://www.simotime.com * ***************************************************************** * Each of the field names is created using three words. * 1st Word - TC05 identifies a field as part of the TC05RS80 * record. * 2nd Word - TAG a record TAG or identifier. * ZDT Zoned-Decimal-Trailing Sign * ZDU Zoned-Decimal-Unsigned * ZDS Zoned-Decimal-Signed * BNU BiNary-Unsigned * BNS BiNary-Signed * PDU Packed-Decimal-Unsigned * PDS Packed-Decimal-Signed * 3rd Word - TXT the field contains text data * LIT the field contains a literal value used * as an eye-catcher between fields * NBR the field contains a numeric value * END the field contains a literal value that * indicates the end of the record * 01 TC05RS80-RECORD. 05 TC05-BASE. 10 TC05-TAG-TXT PIC X(6). 10 TC05-TAG-LIT PIC X. 10 TC05-ZDT-NBR PIC S9(7) SIGN TRAILING SEPARATE. 05 TC05-GENR. 10 TC05-ZDU-LIT PIC X(5). 10 TC05-ZDU-NBR PIC 9(7). 10 TC05-ZDS-LIT PIC X(5). 10 TC05-ZDS-NBR PIC S9(7). * 10 TC05-BNU-LIT PIC X(5). 10 TC05-BNU-NBR PIC 9(9) COMP. 10 TC05-BNS-LIT PIC X(5). 10 TC05-BNS-NBR PIC S9(9) COMP. * 10 TC05-PDU-LIT PIC X(5). 10 TC05-PDU-NBR PIC 9(7) COMP-3. 10 TC05-PDS-LIT PIC X(5). 10 TC05-PDS-NBR PIC S9(7) COMP-3. * 10 TC05-TAG-END PIC X(5). * *** TC05RSB1 - End-of-Copy File - - - - - - - - - - - TC05RSB1 * ***************************************************************** *
This section describes the command files that are used or called from other command files to perform various system or sub-system oriented tasks. For example, setting the commonly used environment variables in a single, callable command simplifies the process and makes it easier to adjust if the environment changes.
Explore How to use Common or Shared Routines that perform repetitive tasks in a consistent manner. This link will provide information about setting common environment variables and many other utilitarian tasks.
The following (ENV1BASE.cmd) is the Windows Command file that is used to set the environment variables that are commonly used across the application.
@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 typically called from other command files to display a message to the screen and write the message to a log file with a time stamp.
@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 primary objective of this test case is to show the level of support/compatibility of the various numeric formats that are used on a Mainframe System and supported on a Linux, UNIX or Windows System with Micro Focus Enterprise Server. 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 An Enterprise System Model that describes and demonstrates how Applications that were running on a Mainframe System and non-relational data that was located on the Mainframe System were copied and deployed in a Microsoft Windows environment with Micro Focus Enterprise Server.
Explore the COBOL Connection for more examples of COBOL programming techniques and sample code.
Explore The ASCII and EBCDIC Translation Tables. These tables are provided for individuals that need to better understand the bit structures and differences of the encoding formats.
Explore The File Status Return Codes that are used to interpret the results of accessing VSAM data sets and/or QSAM files.
The following links will require an internet connection.
A good place to start is The SimoTime Home Page for access to white papers, program examples and product information. This link requires an Internet Connection
Explore The Micro Focus Web Site for more information about products (including Micro Focus COBOL) and services available from Micro Focus. This link requires an Internet Connection.
Explore the Glossary of Terms for a list of terms and definitions used in this suite of documents and white papers.
This document was created and is maintained by SimoTime Technologies. If you have any questions, suggestions, comments or feedback please use the following contact information.
1. | Send an e-mail to our helpdesk. |
1.1. | helpdesk@simotime.com. |
2. | Our telephone numbers are as follows. |
2.1. | 1 415 763-9430 office-helpdesk |
2.2. | 1 415 827-7045 mobile |
We appreciate hearing from you.
SimoTime Technologies was founded in 1987 and is a privately owned company. We specialize in the creation and deployment of business applications using new or existing technologies and services. We have a team of individuals that understand the broad range of technologies being used in today's environments. Our customers include small businesses using Internet technologies to corporations using very large mainframe systems.
Quite often, to reach larger markets or provide a higher level of service to existing customers it requires the newer Internet technologies to work in a complementary manner with existing corporate mainframe systems. We specialize in preparing applications and the associated data that are currently residing on a single platform to be distributed across a variety of platforms.
Preparing the application programs will require the transfer of source members that will be compiled and deployed on the target platform. The data will need to be transferred between the systems and may need to be converted and validated at various stages within the process. SimoTime has the technology, services and experience to assist in the application and data management tasks involved with doing business in a multi-system environment.
Whether you want to use the Internet to expand into new market segments or as a delivery vehicle for existing business functions simply give us a call or check the web site at http://www.simotime.com
Return-to-Top |
Create 80-Byte Sequential Test Files with Text and Numeric Strings |
Copyright © 1987-2025 SimoTime Technologies and Services All Rights Reserved |
When technology complements business |
http://www.simotime.com |