我希望通过检索每个标记的值来将 fix4.2 消息保留到数据库。我正在使用修复消息的 ExecutionReport 对象。 我正在使用 exec.getString(1)检索帐户的标记值,并且此标记值不存在于消息中,因此它会抛出FieldNotFound异常。 在Fiximate中,我发现该帐户不是必填字段。
我也尝试使用 exec.getAccount()。getValue(),但是得到了相同的异常。 我发现所有这些方法都抛出了FieldNotFound异常。
如果修复消息中不存在非必填字段,是否可以将标记值检索为 null 。
任何帮助都将受到高度赞赏。
提前致谢。
此致 Shadab
答案 0 :(得分:1)
您没有说明您正在使用哪个QuickFIX端口(例如,原始QF用于C ++,QF / J用于Java,QF / n用于C#)。
如果不需要字段,则只需先测试其存在。
C ++: exec.isSetField(1)
或exec.isSetField(field)
(可能还有一个exec.isSetAccount()
,不确定)
Java: exec.isSetField(1)
或exec.isSetAccount()
或exec.isSetField(field)
C#: exec.IsSet(1)
或exec.IsSetAccount()
或exec.IsSetField(field)