Hi Fady,
I am trying to process some host data which contain Zoned decimal values, I am getting some exception which seems to be related to charset used to process the bytes.
Would you help me in this. Thanks.
Caused by: com.legstar.coxb.transform.HostTransformException: ConversionException for element:DetStrEventMls Cobol name:DET-STR-EVENT-MLS Reason:Host data contains a byte that is not a valid zoned decimal byte. Host data at offset 94=0x303030303030323743
at com.legstar.coxb.transform.AbstractHostToJavaTransformer.transform(AbstractHostToJavaTransformer.java:273)
at com.legstar.coxb.transform.AbstractHostToJavaTransformer.transform(AbstractHostToJavaTransformer.java:195)
at com.legstar.coxb.transform.AbstractHostToJavaTransformer.transform(AbstractHostToJavaTransformer.java:150)
at com.legstar.coxb.transform.AbstractHostToJavaTransformer.transform(AbstractHostToJavaTransformer.java:132)
... 30 more
Caused by: ConversionException for element:DetStrEventMls Cobol name:DET-STR-EVENT-MLS Reason:Host data contains a byte that is not a valid zoned decimal byte. Host data at offset 94=0x303030303030323743
at com.legstar.coxb.convert.simple.CobolSimpleConverter.throwHostException(CobolSimpleConverter.java:60)
at com.legstar.coxb.convert.simple.CobolZonedDecimalSimpleConverter.fromHost(CobolZonedDecimalSimpleConverter.java:107)
at com.legstar.coxb.impl.visitor.CobolUnmarshalVisitor.visit(CobolUnmarshalVisitor.java:293)
at com.legstar.coxb.impl.CZonedDecimalBinding.accept(CZonedDecimalBinding.java:51)
at com.legstar.coxb.impl.visitor.CobolUnmarshalVisitor.visit(CobolUnmarshalVisitor.java:91)
at com.legstar.coxb.common.CComplexBinding.accept(CComplexBinding.java:72)
at com.legstar.coxb.transform.AbstractHostToJavaTransformer.transform(AbstractHostToJavaTransformer.java:253)
... 35 more
1. Two Host data samples
DET15429 RT32000434086 MPCGR 152013-02-15-07.00.00.0000002013-08-26-03.33.42.557440REGULAR 00000027C
DET 000164257 2013-02-15-06.30.00.0000002013-08-26-03.33.42.495806COMPDAY 00000013{
2. Code that process this:
StrtDetLayoutTransformers layoutTf = new StrtDetLayoutTransformers();
try
{
StrtDetLayout outData = layoutTf.toJava(messageText.getBytes(), "ASCII"); // I tried using EBCDIC here, but did not worked out. Do I need to use any specific version
return outData;
}
catch (Exception e)
{
throw new CouldNotParseException(e);
}
3. Layout
01 STRT-DET-LAYOUT.
05 DET-MSG-HDR PIC X(03) VALUE SPACES.
05 DET-CIRC7R PIC X(06) VALUE SPACES.
05 DET-BOARD-ID PIC X(04) VALUE SPACES.
05 DET-EMP-NBR PIC X(09) VALUE SPACES.
05 DET-TRN-SYM PIC X(10) VALUE SPACES.
05 DET-ORDER-TS PIC X(26) VALUE SPACES.
05 DET-TS PIC X(26) VALUE SPACES.
05 DET-STR-EVENT-TYP PIC X(10) VALUE SPACES.
05 DET-STR-EVENT-MLS PIC S9(09).
Thanks,
Sridhar.