<group name="73Tag" required="N">
<field name="11Tag" required="N"/>
<field name="37Tag" required="N"/>
<field name="44Tag" required="N"/>
<field name="66Tag" required="N"/>
<field name="77Tag" required="N"/>
<component name="122Tag" required="N"/>
<field name="67Tag" required="N"/>
<field name="87Tag" required="N"/>
<field name="97Tag" required="N"/>
</group>
交易对手正在发送标签 73 和 37 标签,但没有发送 11 标签或该组中的任何其他标签。当我尝试使用quickfixj 解析时抛出错误。谁能告诉我如何避免这种情况以及我可以进行哪些更改,这样使用此数据字典就不会在任何地方发生这种情况?我认为必需的 N 意味着它并不总是期望该标签。
错误说:
QuickFixJ:无法解析 FIX 消息:quickfix.FieldException:组 73 必须设置分隔符字段 11
我尝试定义这些标志但没有帮助:
DataDictionary dataDictionary = new DataDictionary(QuickFixJConstants.FIX44_XML);
dataDictionary.setAllowUnknownMessageFields(true);
dataDictionary.setCheckFieldsOutOfOrder(false);
dataDictionary.setCheckUnorderedGroupFields(false);
组中的第一个标签始终是必需的。 对于小组的第一个成员来说并不那么重要,但对于了解第二个成员何时开始至关重要。
听起来你的交易对手已经更改了默认的DD(这很正常,他们都这样做)。 如果他们要以标签 37 开始第 73 组,那么您需要修复您的 DD,以便第 73 组以标签 37 开始!
我假设你的交易对手有文件。 您需要掌握它并检查它们的所有消息/字段定义,并相应地更新您的 DD。 否则你可能会遇到很多本可以避免的解码问题。