First, whoever creates the file to begin with is "breaking" a basic standard in COBOL: with multiple record types in one file, always, always make every record type the same length when the file is being written. This is just common sense. The copybook (COBOL FD in Import, usually with the file extension of ".cfd") then has a series of redefines on the basic record length, with a "FILLER" field as the last entry or each redefine to pad out that particular record type to the correct length.
FYI: The data control block is not a part of the physical file. It is contained in the file catalog. It is set and referenced in the job control language code (JCL) of the mainframe job that defines it, not in the COBOL programs or in the copybook or other record definitions. "Implicit" means that DataStage reads the file byte-by-byte, filling in each column in your table definition until it gets to the last byte of the last column, then assumes that the record is complete and begins to fill in the table again at position 1 with the next byte.
Sample data control block in JCL:
Code: Select all
DCB=(RECFM=FB,LRECL=110)
Code: Select all
Record format . . . : FB
Record length . . . : 110
Given that, one solution is to import three table definitions, one each for header (78 bytes), details (81) and trailer (81). Load them to your CFF separately for each output link. I would guess that this is what is meant by the records becoming fixed-length. After you get that done and after compiling the job go to the Job Properties, Generated OSH tab and find the record schemas. They should, if I understand Aruna correctly, show that your schemas all have the record type of implicit. If not, ask Aruna. I am a bit beyond my understanding of CFF already.