[QFJ-608] Out of Order in repeating group if first tag of repeating group is not set (even if it is not a mandatory field) Created: 10/Jun/11 Updated: 15/Nov/12 Resolved: 11/Jun/11 |
|
Status: | Closed |
Project: | QuickFIX/J |
Component/s: | Engine |
Affects Version/s: | 1.5.0 |
Fix Version/s: | None |
Type: | Bug | Priority: | Minor |
Reporter: | John | Assignee: | Unassigned |
Resolution: | Not a bug | Votes: | 0 |
Labels: | None | ||
Environment: |
JDK 1.6_24 |
Description |
In quickfix.Message, parseGroup(...) the code looks for the first field in the group as defined by the dictionary. If it is not defined, then a "REPEATING_GROUP_FIELDS_OUT_OF_ORDER" exception is triggered. I made a TradeCaptureReport message. This type of message has a "Symbol" field in the "Instrument" component. My workaround is to put the "LegSymbol" field for each group. It makes the message bigger with no added value. If there is a reason to make this check, could somebody explain ? Thanks, |
Comments |
Comment by Steve Bate [ 11/Jun/11 ] |
The InstrumentLeg component can be used either in a repeating group or not (see the AssignmentReport and FinancingDetails messages, for example). Theoretically, it could also be used in a repeating where it's not the first element of the group but I don't know of any examples of that. When the InstrumentGroup component is the first element of a repeating group then the first element of the component is conditionally required. It's how FIX messages determine the start of each group in a repeating group. See the FIX specifications for more details. |
Comment by Steve Bate [ 11/Jun/11 ] |
Just curious, but I'm wondering why you have a multileg TradeCaptureReport where each leg has the same symbol as the top-level instrument. The typical scenario would be something like a multileg option strategy trade where the top-level instrument is the underlying instrument symbol and the leg symbols are the option symbols for each leg. |
Comment by John [ 14/Jun/11 ] |
Hi, For our use case, NoSides contains a trade and NoLegs contains the information for the quote that the client selected for the trade (so we are using a field that was not meant for that). Why ? Because the dialog is internal to the firm and well specified/documented. So we decided not to add our own fields, having a structure, that suited well our needs, already present. I completely lack the financial knowledge but I thought that we could set the "root" symbol for the full capture or one by "leg". Either the one or the other since I do not see what the "main" symbol is worth if each leg declares a different symbol. |
Comment by John [ 14/Jun/11 ] |
Your question made look closely the message fields and we might use the "UndInstrmtGrp" which is I think exactly what we are doing (How could I not see it !!!). Thanks again |