Reading EBCDIC file and Flattening it.
Posted: Wed Sep 19, 2007 11:45 am
Hi,
I have a complex cobol file in ebcdic format. i have trouble reading the COMP fields.
Here is the copybook ETI generated:
01 DCLFRGN-EXCHNG.
05 RECORD-ID PIC X(4).
05 PRTITION-NO PIC S9(4) COMP.
05 SESS-DT PIC S9(9) COMP.
05 SESS-TR PIC S9(9) COMP.
05 SESS-TM PIC S9(9) COMP.
05 TXN-SESS-ID PIC S9(4) COMP.
05 SEQ-NO PIC S9(4) COMP.
05 TXN-ID PIC S9(4) COMP.
05 SUB-TXN-NO PIC S9(4) COMP.
05 DEAL-NO-NULL PIC X(1).
05 DEAL-NO PIC S9(9) COMP.
05 DEAL-TYP-NULL PIC X(1).
05 DEAL-TYP PIC X(1).
05 HAS-AMT-NULL PIC X(1).
05 HAS-AMT PIC S9(16)V9(2) COMP-3.
05 HAS-CRNCY-CD-NULL PIC X(1).
05 HAS-CRNCY-CD PIC X(3).
05 HAS-INSTRMT-TYP-NULL PIC X(1).
05 HAS-INSTRMT-TYP PIC X(3).
05 WANTS-AMT PIC S9(16)V9(2) COMP-3.
05 WANTS-CURRENCY-COD PIC X(3).
05 WANTS-INSTRMT-TYP-N PIC X(1).
05 WANTS-INSTRMT-TYP PIC X(3).
05 ACTL-RT-NULL PIC X(1).
05 ACTL-RT PIC S9(18) COMP-3.
05 ACTL-RT-NO-OF-DECS-N PIC X(1).
05 ACTL-RT-NO-OF-DECS PIC S9(4) COMP.
05 SUG-RT-NULL PIC X(1).
05 SUG-RT PIC S9(18) COMP-3.
05 SUG-RT-NO-OF-DECS-N PIC X(1).
05 SUG-RT-NO-OF-DECS PIC S9(4) COMP.
05 SETL-RT PIC S9(18) COMP-3.
05 SETL-RT-NO-OF-DECS PIC S9(4) COMP.
05 TXN-STS-NULL PIC X(1).
05 TXN-STS PIC S9(4) COMP.
05 TXN-REAS-FOR-FAIL-N PIC X(1).
05 TXN-REAS-FOR-FAIL-LEN PIC S9(4) COMP.
05 TXN-REAS-FOR-FAIL-TEXT PIC X(256).
05 TXN-TYP PIC S9(4) COMP.
05 DEAL-GL-TYP PIC S9(4) COMP.
05 PROF-AMT PIC S9(16)V9(2) COMP-3.
05 DEAL-HOE-EQUIV-AMT-N PIC X(1).
05 DEAL-HOE-EQUIV-AMT PIC S9(16)V9(2) COMP-3.
This is the generated definition in DS:
RECORD-ID Char(4)
PRTITION-NO SmallInt(4)
SESS-DT Integer(9)
SESS-TR Integer(9)
SESS-TM Integer(9)
...
as you see SESS-DT must be in format YYYYMMDD, but what i get is:
3507224576
and for SESS-TM I get 2545994242 which is absord.
Any suggestions?
I have a complex cobol file in ebcdic format. i have trouble reading the COMP fields.
Here is the copybook ETI generated:
01 DCLFRGN-EXCHNG.
05 RECORD-ID PIC X(4).
05 PRTITION-NO PIC S9(4) COMP.
05 SESS-DT PIC S9(9) COMP.
05 SESS-TR PIC S9(9) COMP.
05 SESS-TM PIC S9(9) COMP.
05 TXN-SESS-ID PIC S9(4) COMP.
05 SEQ-NO PIC S9(4) COMP.
05 TXN-ID PIC S9(4) COMP.
05 SUB-TXN-NO PIC S9(4) COMP.
05 DEAL-NO-NULL PIC X(1).
05 DEAL-NO PIC S9(9) COMP.
05 DEAL-TYP-NULL PIC X(1).
05 DEAL-TYP PIC X(1).
05 HAS-AMT-NULL PIC X(1).
05 HAS-AMT PIC S9(16)V9(2) COMP-3.
05 HAS-CRNCY-CD-NULL PIC X(1).
05 HAS-CRNCY-CD PIC X(3).
05 HAS-INSTRMT-TYP-NULL PIC X(1).
05 HAS-INSTRMT-TYP PIC X(3).
05 WANTS-AMT PIC S9(16)V9(2) COMP-3.
05 WANTS-CURRENCY-COD PIC X(3).
05 WANTS-INSTRMT-TYP-N PIC X(1).
05 WANTS-INSTRMT-TYP PIC X(3).
05 ACTL-RT-NULL PIC X(1).
05 ACTL-RT PIC S9(18) COMP-3.
05 ACTL-RT-NO-OF-DECS-N PIC X(1).
05 ACTL-RT-NO-OF-DECS PIC S9(4) COMP.
05 SUG-RT-NULL PIC X(1).
05 SUG-RT PIC S9(18) COMP-3.
05 SUG-RT-NO-OF-DECS-N PIC X(1).
05 SUG-RT-NO-OF-DECS PIC S9(4) COMP.
05 SETL-RT PIC S9(18) COMP-3.
05 SETL-RT-NO-OF-DECS PIC S9(4) COMP.
05 TXN-STS-NULL PIC X(1).
05 TXN-STS PIC S9(4) COMP.
05 TXN-REAS-FOR-FAIL-N PIC X(1).
05 TXN-REAS-FOR-FAIL-LEN PIC S9(4) COMP.
05 TXN-REAS-FOR-FAIL-TEXT PIC X(256).
05 TXN-TYP PIC S9(4) COMP.
05 DEAL-GL-TYP PIC S9(4) COMP.
05 PROF-AMT PIC S9(16)V9(2) COMP-3.
05 DEAL-HOE-EQUIV-AMT-N PIC X(1).
05 DEAL-HOE-EQUIV-AMT PIC S9(16)V9(2) COMP-3.
This is the generated definition in DS:
RECORD-ID Char(4)
PRTITION-NO SmallInt(4)
SESS-DT Integer(9)
SESS-TR Integer(9)
SESS-TM Integer(9)
...
as you see SESS-DT must be in format YYYYMMDD, but what i get is:
3507224576
and for SESS-TM I get 2545994242 which is absord.
Any suggestions?