|
From: Tirthankarg <Tir...@sy...> - 2007-05-07 01:41:41
|
Hi,
=20
I am trying to build and E message using quickfix NewOrderList (in FIX =
4.4)
. My idea was to create the E message using NewOrderList and then
reconverting it to a string and trying to recreate a Message object from =
the
string, for the sake of cross-verification. It seems if I create a
NewOrderList with a single order in the group it works while if I try 2
orders, it gives me a body length mismatch error, when I try to create =
the
Message object. Can someone please help me in spotting what is wrong in =
the
way I am using NewOrderList.
=20
The code snippet is as under:
=20
NewOrderList newOrderList=3Dnew NewOrderList();
NewOrderList.NoOrders NOLOrders=3Dnew NewOrderList.NoOrders();
=20
newOrderList.set(new ListID("Test125"));
newOrderList.set(new BidType(3));
newOrderList.set(new TotNoOrders(2));
StringField sf2 =3Dnew StringField(5551);
sf2.setValue("Test_Portfolio23:30:60:60");
newOrderList.setField(sf2);
sf2 =3Dnew StringField(5552);
sf2.setValue("1");
newOrderList.setField(sf2);
=20
=20
//// adding the first order =20
NOLOrders.set(new ClOrdID("321"));
NOLOrders.set(new ListSeqNo(1));
NOLOrders.set(new Symbol("MJSFT"));
NOLOrders.set(new Side(Side.BUY));
NOLOrders.set(new OrderQty(30));
newOrderList.addGroup(NOLOrders);
=20
// adding a second order
NOLOrders.set(new ClOrdID("221"));
NOLOrders.set(new ListSeqNo(2));
NOLOrders.set(new Symbol("IBM"));
NOLOrders.set(new Side(Side.BUY));
NOLOrders.set(new OrderQty(30));
=20
newOrderList.addGroup(NOLOrders);=20
=20
DataDictionary dd =3D new DataDictionary("FIX44.xml");
Message m =3D new Message(newOrderList.toString());
|