BCS MVS File Conversion Copy Variable To Fixed Records


There are those occasions when file conversions may be necessary. When that time comes simply use a COBOL program to solve the problem.
By placing the programs in the load library makes them available to any required programming situation, The main program simply issues the call and the linkage editor resolves all external references. This approach is what I like to call quick and dirty.
[codesyntax lang=”cobol”]
000100 IDENTIFICATION DIVISION. 00010000
000200 PROGRAM-ID. ABM00002. 00020004
000300 AUTHOR. ARCH BROOKS. 00030000
000400 INSTALLATION BROOKS COMPUTING SYSTEMS, LLC. 00040000
000500 DATE-WRITTEN. 09/15/2014. 00050000
000600 DATE-COMPILED. 09/15/2014. 00060000
000700 ENVIRONMENT DIVISION. 00070000
000800 CONFIGURATION SECTION. 00080000
000900 SOURCE-COMPUTER. IBM-Z-OS. 00090000
001000 OBJECT-COMPUTER. IBM-Z-OS. 00100000
001100 DATA DIVISION. 00110000
001200 WORKING-STORAGE SECTION. 00120000
001201 01 EOF-SW PIC X. 00120100
001210 01 CMDBUF PIC X(80). 00121000
001220 PROCEDURE DIVISION. 00122000
001230 MOVE ‘ ‘ TO EOF-SW. 00123002
001231 CALL ‘ABS00002’. 00123101
001232 CALL ‘ABS00003’. 00123203
001233 PERFORM 0010-DO-IO UNTIL EOF-SW NOT EQUAL SPACES. 00123303
001234 CALL ‘ABS0002B’. 00123405
001235 CALL ‘ABS0003B’. 00123505
001236 GOBACK. 00123603
001237 0010-DO-IO. 00123703
001238 CALL ‘ABS0002A’ USING CMDBUF EOF-SW. 00123803
001239 IF EOF-SW = SPACES THEN 00123906
001240 CALL ‘ABS0003A’ USING CMDBUF. 00124006
[/codesyntax]
The input sub program is listed below.
[codesyntax lang=”cobol”]

000100 IDENTIFICATION DIVISION.                                         00010000
000200 PROGRAM-ID.    ABS00002.                                         00020000
000300 AUTHOR.        ARCH BROOKS.                                      00030000
000400 INSTALLATION   BROOKS COMPUTING SYSTEMS, LLC.                    00040000
000500 DATE-WRITTEN.  09/15/2014.                                       00050000
000600 DATE-COMPILED. 09/15/2014.                                       00060000
000700 ENVIRONMENT DIVISION.                                            00070000
000710 INPUT-OUTPUT SECTION.                                            00071000
000720 FILE-CONTROL.                                                    00072000
000730     SELECT V-FILE ASSIGN TO UT-S-VSINP                           00073021
000740     ORGANIZATION IS SEQUENTIAL.                                  00074002
001100 DATA DIVISION.                                                   00110000
001110 FILE SECTION.                                                    00111000
001120 FD  V-FILE                                                       00112005
001121     DATA RECORD IS V-RECORD                                      00112116
001122     RECORDING MODE IS V                                          00112210
001123     RECORD IS VARYING IN SIZE FROM 1 TO 80 CHARACTERS.           00112319
001130 01  V-RECORD PIC X(80).                                          00113015
001200 WORKING-STORAGE SECTION.                                         00120000
001210 LINKAGE SECTION.                                                 00121000
001211 01  EOF-SW PIC X.                                                00121120
001220 01  LSBUF PIC X(80).                                             00122000
001300 PROCEDURE DIVISION.                                              00130020
001310     OPEN INPUT V-FILE.                                           00131006
001400     GOBACK.                                                      00140000
001500     ENTRY 'ABS0002A' USING LSBUF, EOF-SW.                        00150020
001600     READ V-FILE INTO LSBUF                                       00160000
001700         AT END MOVE 'X' TO EOF-SW.                               00170000
001800     GOBACK.                                                      00180000
001900     ENTRY 'ABS0002B'.                                            00190007
002000     CLOSE V-FILE.                                                00200000
002100     GOBACK.                                                      00210000

[/codesyntax]
The output sub program is listed here.
[codesyntax lang=”cobol”]

000100 IDENTIFICATION DIVISION.                                         00010000
000200 PROGRAM-ID.    ABS00003.                                         00020000
000300 AUTHOR.        ARCH BROOKS.                                      00030000
000400 INSTALLATION   BROOKS COMPUTING SYSTEMS, LLC.                    00040000
000500 DATE-WRITTEN.  09/15/2014.                                       00050000
000600 DATE-COMPILED. 09/15/2014.                                       00060000
000700 ENVIRONMENT DIVISION.                                            00070000
000710 INPUT-OUTPUT SECTION.                                            00071000
000720 FILE-CONTROL.                                                    00072000
000730     SELECT F-FILE ASSIGN TO UT-S-FSOUT                           00073000
000740     ORGANIZATION IS SEQUENTIAL.                                  00074000
000750 DATA DIVISION.                                                   00075000
000760 FILE SECTION.                                                    00076000
000770 FD  F-FILE                                                       00077000
000780     DATA RECORD IS F-RECORD                                      00078000
000790     RECORDING MODE IS F.                                         00079000
000900 01  F-RECORD PIC X(80).                                          00090000
001000 WORKING-STORAGE SECTION.                                         00100000
001100 LINKAGE SECTION.                                                 00110000
001200 01  EOF-SW PIC X.                                                00120000
001210 01  LSBUF PIC X(80).                                             00121000
001220 PROCEDURE DIVISION.                                              00122000
001230     OPEN OUTPUT F-FILE.                                          00123000
001240     GOBACK.                                                      00124000
001250     ENTRY 'ABS0003A' USING LSBUF, EOF-SW.                        00125000
001251     WRITE F-RECORD FROM LSBUF.                                   00125100
001280     GOBACK.                                                      00128000
001290     ENTRY 'ABS0003B'.                                            00129000
001300     CLOSE F-FILE.                                                00130000
001400     GOBACK.                                                      00140000

[/codesyntax]
These programs may be easily copied and modified which will make them usable for many input output usages. They have been tested and work flawlessly without much forethought.
Mr. Arch Brooks, Software Engineer, Brooks Computing Systems, LLC authored this article.

Leave a Reply

Your email address will not be published. Required fields are marked *