Re: [Quickfix-developers] [qfj] Ordering of nested repeating groups in NewOrderCross
Brought to you by:
orenmnero
|
From: Oren M. <or...@qu...> - 2006-03-22 09:57:13
|
A fix has been checked in for C++, JNI and .NET
--oren
On Mar 22, 2006, at 3:35 AM, Steve Bate wrote:
> Hello Brad,
>
> 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.
>
> Thanks for the report,
>
> 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
>
> Hi Everyone,
>
> 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.
>
> 8=FIX.4.4
> 9=244
> 35=s
> 34=5
> 49=sender
> 52=20060319-09:08:20.881
> 56=target
> 22=8
> 40=2
> 44=9
> 48=ABC
> 55=ABC
> 60=20060319-09:08:19
> 548=184214
> 549=2
> 550=0
> 552=2
> 54=1
> 38=9
> 453=2
> 448=8
> 447=D
> 452=4
> 448=AAA35777
> 447=D
> 452=3
> 54=2
> 38=9
> 453=2
> 448=8
> 447=D
> 452=4
> 448=aaa
> 447=D
> 452=3
> 10=100
>
> 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 = new NoSides();
> sides.set(new Side(side)));
>
> // Add PartyIDs
> quickfix.fix44.NewOrderCross.NoSides.NoPartyIDs
> partyIds =
> new
> quickfix.fix44.NewOrderCross.NoSides.NoPartyIDs();
> partyIds.set(new PartyID(brokerCode));
> partyIds.set(new PartyIDSource
> (PartyIDSource.PROPRIETARY_CUSTOM_CODE));
> partyIds.set(new PartyRole(PartyRole.CLEARING_FIRM));
>
> sides.addGroup(partyIds);
>
> partyIds.set(new PartyID(bookingRef));
> partyIds.set(new PartyIDSource
> (PartyIDSource.PROPRIETARY_CUSTOM_CODE));
> partyIds.set(new PartyRole(PartyRole.CLIENT_ID));
>
> sides.addGroup(partyIds);
>
> sides.set(new OrderQty(unitQty));
>
> message.addGroup(sides);
>
>
|