RE: [Quickfix-developers] [qfj] Ordering of nested repeating groups in NewOrderCross
Brought to you by:
orenmnero
|
From: Steve B. <sb...@sm...> - 2006-03-22 09:34:13
|
Hello Brad,
=20
I've committed a fix for this problem in the QFJ HEAD and added a unit
test based on your email
report. It appears the problem also exists in the C++ code. Oren will be
investigating and making
any necessary changes there.
=20
Thanks for the report,
=20
Steve Bate
________________________________
From: qui...@li...
[mailto:qui...@li...] On Behalf Of
Brad Harvey
Sent: Tuesday, March 21, 2006 5:57 AM
To: qui...@li...
Subject: [Quickfix-developers] [qfj] Ordering of nested
repeating groups in NewOrderCross
=09
=09
Hi Everyone,=20
I'm having some problems sending a valid NewOrderCross (s)
message using quickfix/j 1.0.0 beta3. The nested Party group is being
added at the very end of the Side group, but I need the 38 tag
(OrderQty) to be after the Party group.
Here's an example of the message that quickfix is outputting.=20
8=3DFIX.4.4
9=3D244
35=3Ds
34=3D5
49=3Dsender
52=3D20060319-09:08:20.881
56=3Dtarget
22=3D8
40=3D2
44=3D9
48=3DABC
55=3DABC
60=3D20060319-09:08:19
548=3D184214
549=3D2
550=3D0
552=3D2
54=3D1
38=3D9
453=3D2
448=3D8
447=3DD
452=3D4
448=3DAAA35777
447=3DD
452=3D3
54=3D2
38=3D9
453=3D2
448=3D8
447=3DD
452=3D4
448=3Daaa
447=3DD
452=3D3
10=3D100=20
The data dictionary has them specified in the correct order. I
can see how the ordering of fields within a group is decided:
// from NewOrderCross=20
public static class NoSides extends Group {=20
public NoSides() {=20
super(552, 54,=20
new int[] {54, 11, 526, 583, 229, 75, 1, 660, 581,
589, 590, 591, 70, 854, 38, 152, 516, 468, 469, 12, 13, 479, 497, 528,
529, 582, 121, 120, 775, 58, 354, 355, 77, 203, 544, 635, 377, 659, 0 }
);
}=20
But none of the tags in the nested group are in here (453, 448,
447, 452). How do we put the nested group in the correct spot?
Many thanks,=20
Brad.=20
Here's how we're creating a NoSides group:=20
// side, brokerCode, bookingRef, unitQty passed
in..=20
NoSides sides =3D new NoSides();=20
sides.set(new Side(side)));=20
=20
// Add PartyIDs=20
quickfix.fix44.NewOrderCross.NoSides.NoPartyIDs
partyIds =3D=20
new
quickfix.fix44.NewOrderCross.NoSides.NoPartyIDs(); =20
partyIds.set(new PartyID(brokerCode));=20
partyIds.set(new
PartyIDSource(PartyIDSource.PROPRIETARY_CUSTOM_CODE));=20
partyIds.set(new
PartyRole(PartyRole.CLEARING_FIRM)); =20
=20
sides.addGroup(partyIds);=20
=20
partyIds.set(new PartyID(bookingRef));=20
partyIds.set(new
PartyIDSource(PartyIDSource.PROPRIETARY_CUSTOM_CODE));=20
partyIds.set(new
PartyRole(PartyRole.CLIENT_ID)); =20
=20
sides.addGroup(partyIds);=20
sides.set(new OrderQty(unitQty));=20
=20
message.addGroup(sides);=20
|