所以我试图在FIX消息中生成重复组,但是我需要一种方法来确定每个重复组所需的字段,因此我不需要对所有内容进行硬编码。出于某种原因,quickfix DataDictionary类的方法
isRequiredField((java.lang.String msgType, int field)
不适用于重复组中的必填字段。例如
isRequiredField("V", 269)
假设是假的,即使它是required。 Fix 4.2 XML也根据需要提供了它,为什么isRequiredField方法返回false?
答案 0 :(得分:1)
我认为您需要getGroup(java.lang.String msg, int field)
,其中field是群组计数器字段的标记。
这将为您提供一个DataDictionary.GroupInfo
对象,您可以调用getDataDictionary().isRequiredField(msgType,field)
(使用相同的消息类型)。
我认为无论如何都会奏效。 docs没有明确说明这一点。
但你为什么要这样做?
说实话,我不确定你为什么认为你需要这样做。根本不需要动态查询所需的字段。接收时,引擎会检查您所需的/不需要的。当您发送时,您必须将值设置为所有必需字段(您无法动态地执行此操作!)。
除非您正在编写某种DD分析工具,否则我认为您正在花时间研究红鲱鱼。