i want to know how to dynamically change the file buffer variables in cobol based on the data that i get from REXX.
My requirement is like this:
i have a cobol program that is getting executed from REXX. all the logical DD name were allocated in rexx itself. the DD name for the PS files that i'm assigning were dynamic with various RECL values everytime. Now, after assigning DD name i called COBOL for File handling operations on that PS file. when i tried to open the file i'm getting error in cobol with status code - 39.
below is snapshot of error.
MQCONN SUCCESFUL
MFRIVSRBS SUCCESFUL
IGZ0201W A file attribute mismatch was detected. File INFILE in program DLVSPSQC had a record length of 4088 and the file specified in the ASSIGN clause had a record length of 110.
INPUT FILE NOT OPENED
ERROR CODE : 39
MQDISC SUCCESFUL
MFRIVSRBS SUCCESFUL
IGZ0201W A file attribute mismatch was detected. File INFILE in program DLVSPSQC had a record length of 4088 and the file specified in the ASSIGN clause had a record length of 110.
INPUT FILE NOT OPENED
ERROR CODE : 39
MQDISC SUCCESFUL
the rexx i wrote for calling this cobol is shown below.
"ALLOC DA('"INPUT"') DD(INF) SHR"
"ALLOCATE DSN('XXXXX.TOOLS.PS1') RECFM(F B) DSORG(PS) TR
LRECL("RECL") SP(5 5) NEW "
"ALLOC DA('XXXXX.TOOLS.PS1') DD(INFILE) MOD"
SAY RC
"REPRO IFILE(INF) OFILE(INFILE)"
SAY RC
/*CALLING PUT MESSAGE AND TRANSFERRING PS CONTENT TO QUEUE*/
"CALL 'OPERN.TEST.LOADLIB(DLVSPSQC)'"
"ALLOCATE DSN('XXXXX.TOOLS.PS1') RECFM(F B) DSORG(PS) TR
LRECL("RECL") SP(5 5) NEW "
"ALLOC DA('XXXXX.TOOLS.PS1') DD(INFILE) MOD"
SAY RC
"REPRO IFILE(INF) OFILE(INFILE)"
SAY RC
/*CALLING PUT MESSAGE AND TRANSFERRING PS CONTENT TO QUEUE*/
"CALL 'OPERN.TEST.LOADLIB(DLVSPSQC)'"
Here INPUT is a VSAM and RECL is a dynamic value generated based on VSAM LRECL.
i want to declare file buffer size based on this RECL variable in rexx.