Order Rejects via Execution Reports(35=8)

Imported from previous forum

[ original email was from chulanga Attanayake - chulanga@millenniumit.com ]
In certain scenarios an SOR generates low level order rejects via Execution Reports as it cannot access the Business Processing Engine. However as the processing engine is the component which generates OrderIDs for these kind of Order Rejects via Execution reports the OrderID is stamped as 'None".

E.g. If an invalid value is received for the Symbol field the order is rejected at low level as it doesn’t have sufficient information to access the processing engine. In this reject the OrderID is stamped as None"

Since the Order has not reached the processing engine is this a FIX violation? or are there alternative solutions to avoid these scenarios

I would appreciate if someone could provide feedback

In certain scenarios an SOR generates low level order rejects via Execution Reports as it cannot access the Business Processing Engine. However as the processing engine is the component which generates OrderIDs for these kind of Order Rejects via Execution reports the OrderID is stamped as 'None".

E.g. If an invalid value is received for the Symbol field the order is rejected at low level as it doesn’t have sufficient information to access the processing engine. In this reject the OrderID is stamped as None"

Since the Order has not reached the processing engine is this a FIX violation? or are there alternative solutions to avoid these scenarios

IMHO, an empty field 37/OrderID is OK. But what about the 17/ExecID which should be a unique identifier. Here I would use e.g. the current timestamp and an increasing sequence number etc. to make it unique
and different from the other IDs generated by the processing engine.

Cheers, Jörg

Regarding FIX specifications, omiting OrderID is not really “OK” since this field is required for execution reports. For practical purposes, we use to omit it in such rejection case. A “NONE” value is not ideal because it can be a valid value (technically speaking). In any case, FIX specifications would be improved if they discuss this point.

Regards,
Xavier.

In certain scenarios an SOR generates low level order rejects via Execution Reports as it cannot access the Business Processing Engine. However as the processing engine is the component which generates OrderIDs for these kind of Order Rejects via Execution reports the OrderID is stamped as 'None".

E.g. If an invalid value is received for the Symbol field the order is rejected at low level as it doesn’t have sufficient information to access the processing engine. In this reject the OrderID is stamped as None"

Since the Order has not reached the processing engine is this a FIX violation? or are there alternative solutions to avoid these scenarios

IMHO, an empty field 37/OrderID is OK. But what about the 17/ExecID which should be a unique identifier. Here I would use e.g. the current timestamp and an increasing sequence number etc. to make it unique
and different from the other IDs generated by the processing engine.

Cheers, Jörg