Closed Dionisos94 closed 1 year ago
The first field defined in a repeating group must always be (1) present, and (2) consistent, i.e. it must always be the same field. They can change their DD so that the field is different than the standard definition, and that's ok, but they can't make the first field optional.
You cannot get around this constraint. If your counterparty is telling you that the first field of a group is sometimes optional, then they are violating FIX. There are some FIX-violating behaviors that QF can handle, but I'm afraid that this will never be one of them.
The various configs that you are guessing at are not related to your problem. They are documented at http://quickfixn.org/tutorial/configuration.html
QF/n doesn't have a setting for checkUnorderedGroupFields
, because it does not support false
. Fields in a group must be in the DD-defined order. (Even when false
is supported, the first field must always be present, per the FIX5 specification.)
Hello,
Context : I need to implement a FIX Dictionary furnished by one client in my code. Unhappily, the furnished Dictionary breaks the FIX standards by making some fields that are normaly Required as... Not Required. An example of that is Repeating Group 711 (Underlying Instrument Block), which normaly start by the Required field 311 (Underlying Symbol).
Source : https://btobits.com/fixopaedia/fixdic44/block_Underlying_Instrument_.html
Issue The dictionary of my client set tag 311 as NotRequired
When I try to parse this message with the function
message.FromString(fixString, false, clientDataDict, clientDataDict, null)
, an exception is raised :QuickFix.GroupDelimiterTagException : Group 711's first entry does not start with delimiter 311
I am pretty sure that this error in a check internal to QuickFix and is not due to the dictionary I furnish. Am I wrong ?
If this is an internal check, is there a way for me to disable it ? I tried setting the following but it seems not to be enough :
My client is using Quickfix/j and is setting also the flag to False. I guess it is what it is missing in my code. https://github.com/quickfix-j/quickfixj/blob/master/quickfixj-core/src/main/java/quickfix/DataDictionary.java However, I don't find this property in QuickFix/n.
Is there a way to avoid QuickFix to check groups ?
Thank you