Friday, September 30, 2011

Cobol on the Bus Part 3

This time I have a somewhat more complex payload -

01 XXX.
05 XXX-STRUCT.
10 XXX-USER PIC X(04).
10 XXX-CODE PIC 9(08).

05 YYY-TAB.
07 YYY-DETAIL OCCURS 2 TIMES.
10 YYY-A PIC X(01).
10 YYY-B PIC S9(16)v9(2).
10 YYY-C PIC S9(16)v9(2).
10 YYY-D PIC S9(16)v9(2).
10 YYY-E PIC S9(3)v99.
05 YYY-END PIC 9(04).

I create a new OSB project in OEPE and import this copybook via MFL.






Test




Normally one would generate the non-XML data first -




and lo and behold - we get the following error.



The error - Too many digits - is understandable once we do the following -

Generate XML data






yyy-e has been defined as PIC S9(3)v99 e.g. 433.30
The generated XML value is 4333

Change this to 433.3 (the 2 occurances) and transform xml to non-xml






I change the non-xml value of user and click transform
Now I get the error -



yyy-b is defined as follows -
YYY-B PIC S9(16)v9(2).


MFL wise - It is defined as follows -




Change it (and the other signed fields) as follows -



Re-test - Generate XML

Change yyy-e values to include decimal point.



Transform XML to non-XML

Change the xxx-user value and Transform non-XML to XML



Naturally all these settings are contingent on the Mainframe sending the Cobol on to the bus. This could be over TCP-IP so you could use the Socket adapter, or maybe MQ is being used. Also one needs test data from the mainframe to see how the sign is being handled etc.

However, in the context of a POC...

No comments: