0

所以我试图在 FIX 消息中生成重复组,但我需要一种方法来确定每个重复组需要哪些字段,因此我不必对所有内容进行硬编码。出于某种原因,quickfix DataDictionary类的方法

isRequiredField((java.lang.String msgType, int field)

不适用于重复组中的必填字段。例如

isRequiredField("V", 269)

给出错误,即使认为它是必需的。Fix 4.2 XML 也有它,所以为什么 isRequiredField 方法返回 false?

4

1 回答 1

1

我认为您需要getGroup(java.lang.String msg, int field),其中 field 是组计数器字段的标签。

这会给你一个DataDictionary.GroupInfo对象,你可以调用它getDataDictionary().isRequiredField(msgType,field)(使用相同的消息类型)。

无论如何,我认为这会奏效。文档对此并没有明确说明。

但是你为什么要这样做?

老实说,我不确定你为什么认为你需要这样做。根本不需要动态查询哪些字段是必需的。接收时,引擎会为您检查需要/不需要。发送时,无论如何您都必须为所有必填字段设置值(您不能动态地这样做!)。

除非您正在编写某种 DD 分析工具,否则我认为您正在花时间研究红鲱鱼。

于 2013-06-15T01:09:13.347 回答