如何从quickfixj FIX.4.2 executionreport中检索标记值

时间:2012-12-14 12:50:20

标签: java quickfix fix-protocol

我希望通过检索每个标记的值来将 fix4.2 消息保留到数据库。我正在使用修复消息的 ExecutionReport 对象。 我正在使用 exec.getString(1)检索帐户的标记值,并且此标记值不存在于消息中,因此它会抛出FieldNotFound异常。 在Fiximate中,我发现该帐户不是必填字段。

我也尝试使用 exec.getAccount()。getValue(),但是得到了相同的异常。 我发现所有这些方法都抛出了FieldNotFound异常。

如果修复消息中不存在非必填字段,是否可以将标记值检索为 null

任何帮助都将受到高度赞赏。

提前致谢。

此致 Shadab

1 个答案:

答案 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)