Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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">
                <Inclusion>
                                <FieldEqualsTo Field="35">
                                                <Val>D</Val>
                                                <Val>G</Val>
                                                <Val>F</Val>
                                                <Val>8</Val>
                                                <Val>9</Val>
                                </ FieldEqualsTo>
                </Inclusion>
              <Exclusion/>
</Condition>

 

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">
              <Inclusion/>
                <Exclusion>
                                <FieldEqualsTo Field="35">
                                                <Val>D</Val>
                                                <Val>G</Val>
                                                <Val>F</Val>
                                                <Val>8</Val>
                                                <Val>9</Val>
                                </ FieldEqualsTo>
                </Exclusion>
</Condition>

 

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>
                <Val>D</Val>
                <Val>G</Val>
                <Val>F</Val>
</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>
                <Val>20109</Val>
                <Val>20049</Val>
</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”>
                <Val>R</Val>
                <Val>T</Val>
</FieldContains>

 

<FieldContains> element checks if multi string value in the given field contains one of the value from given <Val> list.

<FieldContains Field=”18” Delimiter=”|”>
                <Val>R</Val>
                <Val>T</Val>
</FieldContains>

 

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.