June 30, 2016 \ Ananth TM COBOL files in CFF stage It could be a complex cobol copybook structure which has a good mix of occurs, redefines and level 88, COMP and COMP3. Note Packed (Comp-3) Binary (Comp) Or it could be a simple one such as below: ******************************** * COBOL DECLARATION FOR ORDERS * ******************************** 01 HEADER. 05 RECTYPE PIC X(1). 05 NAME PIC X(20). 05 ORDDATE PIC X(10). 01 DETAIL. 05 ORDERNUM PIC S9(5). 05 RECTYPE PIC X(1). 05 PRODUCTID PIC S9(5). 05 QTY PIC S9(5). But the main issue is that the source file would be in a native EBCDIC binary format and not ASCII. The source text file is generated from Mainframe and uses EBDIC format. Each row has different type of data columns and varies depending on available data. Mostly a header, one or more type of detail records and a trailer record. what stage? Either way, use a CFF stage, import the copybook layout and view the source content through CFF (server) stage. Using sequential stage could throw errors such as import error, buffer overrun, etc. Seq file stage does do the EBCIDIC to ACII conversion, but not well if it has odd fields like packed decimal and such. endianness endianness (Byte Order) setting would need to be checked for Binary/Comp fields. The same file definition could change based on the byte order 849 = x0351 Big Endian 20739 = x5103 Little Endian more details on Endianness https://en.wikipedia.org/wiki/Endianness Convertion to ASCII string COMP-3 is a decimal storage format. When a decimal is converted to a string, it will contain a decimal point. If the scale of the decimal is 0, that decimal point will still be present in the string as the last byte. If the scale is 0, you can likely just convert the decimal to an integer column before writing to your output. Check with the mainframe whether they are using CCSID 037 or CCSID 500 or others. Sometime simple COBOL files can be read as binary data type and by using ASCII function in the transformer stage. Make sure “Unicode” is used in column property IBM037 or IBM500 is used in NLS (default is probably UTF-8) More COBOL notes CCSID 500 — This is an EBCDIC code page, used mainly on z/OS. It is known as the ‘International’ codepage. The related CCSID with Euro support is 1148. CCSID 037 — This is another popular EBCDIC code page, used on OS/400 and VSE/ ESA. It is the ‘US English’ codepage. The related CCSID with Euro support is 1140.