1.1. <Condition> elements
Conditions are used for rule triggering. <Condition> element can consist of two elements - <Inclusions> and <Exclusions> (both are mandatory). Check's value for <Inclusions> tag is calculated as is. Check's value for <Exclusions> tag is inverted (logical NOT) after calculation. There is only one attribute ("Name", optional) in this element. It is unique within current XML configuration file.
...
<Condition Name="IsOrderFlow">
| There is only one concrete check in the example - the FieldEqualsTo check. The condition is evaluated as true in case of 35th tag in a message is equal to one of D, G, F, 8, 9 value only.
|
<Condition Name="NotIsOrderFlow">
| In the example the condition is evaluated as true in case of 35th tag in a message is not equal to one of D, G, F, 8, 9 value only.
|
1.1.1. <FieldEqualsTo> check
<FieldEqualsTo Field="35"> <Val>D</Val> <Val>G</Val> <Val>F</Val> </FieldEqualsTo>
| There is an attribute (mandatory) in the check - "Field". <FieldEqualsTo> element checks if tag is equal to the value from given <Val> list. |
1.1.2. <MsgType> check
<MsgType>
| <MsgType> element checks if MsgType (35) of current FIX message is equal to one of the value from given <Val> list. Actually it does the same as FieldEqualsTo check but a bit faster.
|
1.1.3. <FieldExists> check
<FieldExists>
| <FieldExists> element checks given fields presence in message and results in true if at least one field is present. |
<FieldExists Field=“20109” /> | Slightly different syntax with the Field attribute. |
1.1.4. <FieldContains> check
<FieldContains Field=”18”>
| <FieldContains> element checks if multi string value in the given field contains one of the value from given <Val> list. |
<FieldContains Field=”18” Delimiter=”|”>
| The “Delimiter” attribute contains the delimiter used in multi value string. It is optional; default value is space. |
1.1.5. <FieldIsGreaterThan> check
<FieldIsGreaterThan Field=”44” Value=”100”/> | <FieldIsGreaterThan> checks if given field greater than “Value”. Absence of the tag defined by “Field” cause fail. |
1.1.6. <FieldIsLessThan> check
<FieldIsLessThan Field=”44” Value=”100”/> | <FieldIsLessThan> checks if given field less than “Value”. Absence of the tag defined by “Field” cause fail. |
1.1.7. <FieldBeginsWith> check
<FieldBeginsWith Field=“6780” StartPos=“6” CaseSensitive= “true”> <Val>L</Val> <Val>N</Val> <Val>BC</Val> </FieldBeginsWith> | <FieldBeginsWith> checks if “Field” begins with one of the substring from given list. “Field” and “StartPos” attributes are mandatory. The “StartPos” attribute refers to symbols within a string from 0. Default value for “CaseSensetive” attribute is “true”. The attribute is optional. |
1.1.8. <FieldLengthGreaterOrEqual> check
<FieldLengthGreaterOrEqual Field="6780" Length="7"/> | <FieldLengthGreaterOrEqual> checks if the length of the “Field” tag is greater or equal to the “Length” attribute. Both attributes are mandatory. |
1.1.9. <FieldIsToday> check
<FieldIsToday Field=“42” />
| <FieldIsToday> checks if “Field” contains date/time value in UTC and equals to Today.
|
1.1.10. <FieldCheckBits> check
<FieldCheckBits Field="5047" Value="0x02000000" /> | <FieldCheckBits> treats the Field as integer and checks if it contains the HEX value defined by the “Value” attribute. Bitwise AND operation is used within the check. |