Discussion Forums

Re: Required Component block but all fields are optional
Hanno Klein / Deutsche Börse Systems <>
6 Mar 2008 3:58AM ET

It is a little tricky due to the fact that the Instrument block is often present as first element of a repeating group (e.g. SecListGrp of SecurityList message). The first field of a repeating group is mandatory which in the case of would be Symbol. SecurityID is legitimate as well but for tag=value syntax you need to use the Symbol field with "[N/A]" for technical reasons.

In other cases, e.g. NewOrderSingle, it is not part of a repeating group but the block is defined as mandatory (Req'd), i.e. you must identify a security. The spec still says "*** = Required status should match "Req'd" setting for component block in the message definition" but the field Symbol only has the value "***" up to FIX 4.3. As of FIX 4.4 it is "N" which seems to say that it is not required in such cases. However, common sense says that a required block must be visible by the presence of at least one field in the block even if all fields have Req'd="N". As long as the repeating group issue for tag=value syntax exists, I would always use Symbol="[N/A]" if you do not have a symbol but want to be on the safe side. With FIXML you do not have this kind of restriction.

In yet other cases, e.g. MDIncGrp (Market Data Incremental Refresh), the comment will tell you when to specify which fields of the Instrument block (or other fields).

Regards,
Hanno.

> Good day!
>
> Under Fix50 the Instrument component block is required in some
> message types. Looked into the fields in Instrument and found out
> that all are optional. Is it safe to say that since this is the case,
> I may have no Instrument in my message type? (even though it is a
> required component block)


Required Component block but all fields are optional
bernie terrado / nyfix   6 Mar 2008 1:29AM ET
Re: Required Component block but all fields are optional
Hanno Klein / Deutsche Börse Systems   6 Mar 2008 3:58AM ET