different value for Checbox uncheck in Amend order

I want to support below checkbox control in ATDL file.

A checkbox control with valid values:
D = Off (no FIX tag required)
N = Off (should only be sent on amends where the control is being switched from On to Off)
Y = On

i.e.
In new order message:

  • if checkbox is unchecked, the Fixtag value should be D or empty.
  • if Checkbox is checked, the Fixtag value should be Y

In replace message:

  • if Checkbox is unchecked from checked, the Fixtag value should be N.
  • if checkbox ix checked, the FixTag value should be Y.

Can you please let me know how to achieve this?

Provided that the FIXatdl implementation supports it, FIXatdl defined the ability to feed-in/check some standard FIX fields and their values. Thus, you could write a StateRule that uses < Edit field=FIX_MsgType operator=“EQ” value=“G” > to test for FIX Order Cancel/Replace Request (“G”) vs. FIX New Order Single (“D”).

(from the FIXatdl spec’s Attribute Definition section)
|Edit/@field|
Field name for comparison.
When the edit is used within a stateRule, this field must refer to the ID of a Control. When the edit is used within a strategyEdit, this field must refer to either the name of a parameter or a standard FIX field name. When referring to a standard FIX tag then the name must be pre-pended with the string “FIX_”, e.g. “FIX_OrderQty”.

Thank you for the reply.

When I try to use Fix_MsgType in StateRule I get error in ATDL4Net renderer. (As per spec we cannot use FIX_ in stateRule)


An exception was thrown in a DependencyProperty event handler; details:

No parameter with name or control with Id ‘FIX_MsgType’ was found for EditRef Field value in strategy unknown.


Also to set the value to N when amend order I tried below code which does not work. Can you please let me know how can I conditionally set value on checkbox?

<lay:Control xsi:type="CheckBox_t" ID="c_Check1" label="Check1" parameterRef="Check1" checkedEnumRef="e_Checked" uncheckedEnumRef="e_UnChecked">
				<flow:StateRule value="e_UnCheckedAmend">
					<val:Edit logicalOperator="AND">
						<val:Edit field="FIX_MsgType" operator="EQ" value="G" />
						<val:Edit field="c_Check1" operator="EQ" value="false" />
					</val:Edit>
				</flow:StateRule>
			</lay:Control>

Hi

Does ATDL support this kind of behavior? Or is there any way to implement this?