...
Table of Contents |
---|
BLLanguageExtension Handler
Message transformation configuration is an XML file with rules for FIX tag/value manipulations. The root element is <Mapping> element. It encloses all other elements in configuration file.
...
There are two optional action blocks – ActionIfTrue and ActionIfFalse. Success actions will be executed one-by-one once rule’s conditions evaluated as true. Otherwise, ActionIfFalse actions sequence will be executed.
<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.
...
| 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.
| |||||
| 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.
|
...
<FieldEqualsTo> check
| There is an attribute (mandatory) in the check - "Field". <FieldEqualsTo> element checks if tag is equal to the value from given <Val> list. |
...
<MsgType> check
| <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.
|
...
<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. |
...
|
<FieldContains> check
| <FieldContains> element checks if multi string value in the given field contains one of the value from given <Val> list. | ||||||||||
| The “Delimiter” attribute contains the delimiter used in multi value string. It is optional; default value is space.
|
...
<FieldIsGreaterThan> check
...
| <FieldIsGreaterThan> checks if given field greater than “Value”. Absence of the tag defined by “Field” cause fail. |
...
<FieldIsLessThan> check
| <FieldIsLessThan> checks if given field less than “Value”. Absence of the tag defined by “Field” cause fail. |
...
<FieldBeginsWith> check
| <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. |
...
<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. |
...
<FieldIsToday> check
<FieldIsToday Field=“42” />
| <FieldIsToday> checks if “Field” contains date/time value in UTC and equals to Today.
|
...
<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. |