[Quickfix-developers] [qfj] Ordering of nested repeating groups in NewOrderCross
Brought to you by:
orenmnero
|
From: Brad H. <Bra...@gb...> - 2006-03-21 04:56:49
|
> 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.
>=20
Here's an example of the message that quickfix is outputting.
8=3DFIX.4.4=20
9=3D244=20
35=3Ds=20
34=3D5=20
49=3Dsender=20
52=3D20060319-09:08:20.881=20
56=3Dtarget=20
22=3D8=20
40=3D2=20
44=3D9=20
48=3DABC=20
55=3DABC=20
60=3D20060319-09:08:19=20
548=3D184214=20
549=3D2=20
550=3D0=20
552=3D2=20
54=3D1=20
38=3D9=20
453=3D2=20
448=3D8=20
447=3DD=20
452=3D4=20
448=3DAAA35777=20
447=3DD=20
452=3D3=20
54=3D2=20
38=3D9=20
453=3D2=20
448=3D8=20
447=3DD=20
452=3D4=20
448=3Daaa=20
447=3DD=20
452=3D3=20
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
public static class NoSides extends Group {
public NoSides() {
super(552, 54,
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 } );
}
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,
Brad.
Here's how we're creating a NoSides group:
// side, brokerCode, bookingRef, unitQty passed in..
NoSides sides =3D new NoSides();
sides.set(new Side(side)));=20
=09
// Add PartyIDs
quickfix.fix44.NewOrderCross.NoSides.NoPartyIDs partyIds
=3D=20
new
quickfix.fix44.NewOrderCross.NoSides.NoPartyIDs();=09
partyIds.set(new PartyID(brokerCode));
partyIds.set(new
PartyIDSource(PartyIDSource.PROPRIETARY_CUSTOM_CODE));
partyIds.set(new PartyRole(PartyRole.CLEARING_FIRM));=09
=09
sides.addGroup(partyIds);
=09
partyIds.set(new PartyID(bookingRef));
partyIds.set(new
PartyIDSource(PartyIDSource.PROPRIETARY_CUSTOM_CODE));
partyIds.set(new PartyRole(PartyRole.CLIENT_ID));=09
=09
sides.addGroup(partyIds);
sides.set(new OrderQty(unitQty));
=09
message.addGroup(sides);
|