Versions Compared

Key

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

Table of Contents

...

The values of the attributes have to coincide with values defined for properties: FixLayer.FixEngine.Session.<Name>.SenderCompID and FixLayer.FixEngine.Session.<Name>.TargetCompID (and optionally FixLayer.FixEngine.Session.<Name>.SessionQualifierValue) which were configured for FIX Sessions.

...

Detailed information can be found here: How to use JavaScript as a condition or action in the Business Rule

LDAPAuthenticate

Tries to login on LDAP server with given user/password and returns "true" if succeed otherwise "false". Can be used, for example, to authenticate a session via LDAP.

Note
Please note: this condition is supported only in Linux, openldap package is required

...

XML Attrubute
Required/
default value
Description
URLrequiredLDAP server URL
TemplateDNrequiredTemplate of LDAP Distinguished Name to bind to.
The %USER% mark will be replaced with contents of UserField
UserField"553"User tag
PasswordField"554"Password tag

Action element

The section denotes instructions (as XML elements) that must be performed when a Rule is being applied to a message. <Action> is a required section and must contain at least one of the instructions described below. Each instruction is a command executed with the given message. Before applying the instructions, the FixEdge creates a copy of the initial FIX message, and the instructions are applied to this copy of the FIX message.

The instructions are applied to the copy sequentially, in order set in <Action> element. If the copy of the FIX message was transformed by the one instruction, the next instruction is applied to the changed message. So, the copy of the FIX message can be transformed step by step by applying the instructions, and then the transformed message can be sent to the required destination.

If the instruction (command) cannot be executed then the error will occur.

ActionIfTrue and ActionIfFalse elements

...


Code Block
languagehtml/xml
<Rule>
    <Source>
        <!-- ... -->
    </Source>
    <Condition>
        <EqualField Field="35" Value="D"/>
    </Condition>
    <Action>
       <SetField Field="50" Value="Updated_message"/>
       <CopyField SourceField="49" TargetField="9999" IsRequiredField="Y"/> 
    </Action>
</Rule>


Using <Action> element:

Instructions in <Action> section will be applied to FIX message only when <Condition>=true


Code Block
languagehtml/xml
<Rule>
    <Source>
        <!-- ... -->
    </Source>
    <Condition>
        <EqualField Field="35" Value="D"/>
    </Condition>
    <ActionIfTrue>
       <SetField Field="50" Value="Updated_message"/>
       <CopyField SourceField="49" TargetField="9999" IsRequiredField="Y"/> 
    </ActionIfTrue>
</Rule>


Using <ActionIfTrue> element:

It means the same as using <Action> element in the previous example.  


Code Block
languagehtml/xml
<Rule>
    <Source>
        <!-- ... -->
    </Source>
    <Condition>
        <EqualField Field="35" Value="D"/>
    </Condition>
    <ActionIfTrue>
       <SetField Field="50" Value="Updated_message"/>
       <CopyField SourceField="49" TargetField="9999" IsRequiredField="Y"/> 
    </ActionIfTrue>
    <ActionIfFalse>        
        <CopyField SourceField="56" TargetField="49" IsRequiredField="Y"/> 
        <MoveField SourceField="9999" TargetField="56"/>
    </ActionIfFalse>
</Rule>


Using <ActionIfTrue> and <ActionIfFalse> jointly:

Instructions in <ActionIfTrue> section will be applied to FIX message when <Condition>=true.

When <Condition>=false the instructions in <ActionIfFalse> section will be applied to FIX message


Code Block
languagehtml/xml
<Rule>
    <Source>
        <!-- ... -->
    </Source>
    <Condition>
        <EqualField Field="35" Value="D"/>
    </Condition>
    <ActionIfFalse>        
        <CopyField SourceField="56" TargetField="49" IsRequiredField="Y"/> 
        <MoveField SourceField="9999" TargetField="56"/>
    </ActionIfFalse>
</Rule>


Using <ActionIfFalse> element:

Only one <ActionIfFalse> block is also allowed

Session instructions

StartSession

Executes sync FIX session create/connect by means of one of 3 variants:

  • by SenderCompID/TargetCompID which are taken from routed message:

    Code Block
    languagexml
    <StartSession />


  • by specified SenderCompID/TargetCompID:

    Code Block
    languagexml
    <StartSession SenderCompID="Sender" TargetCompID="Target" />


  • by specified SenderCompID/TargetCompID/SessionQualifier :

    Code Block
    languagexml
    <StartSession SenderCompID="Sender" TargetCompID="Target" SessionQualifier="Q1" />


  • by the session name:

    Code Block
    languagexml
    <StartSession Name="SESSION_NAME" />


DisconnectSession

Executes async FIX session disconnect:

  • by SenderCompID/TargetCompID which are taken from routed message:

    Code Block
    languagexml
    <DisconnectSession Reason="Manual disconnect" />


  • by specified SenderCompID/TargetCompID:

    Code Block
    languagexml
     <DisconnectSession SenderCompID="Sender" TargetCompID="Target" Reason="Manual disconnect" />


  • by the session name:

    Code Block
    languagexml
    <DisconnectSession Name="SESSION_NAME" Reason="Manual disconnect" />


TerminateSession

Executes async FIX session terminate:

  • by SenderCompID/TargetCompID which are taken from routed message:

    Code Block
    languagexml
    <TerminateSession Reason="Manual disconnect" />


  • by specified SenderCompID/TargetCompID:

    Code Block
    languagexml
     <TerminateSession SenderCompID="Sender" TargetCompID="Target" Reason="Manual disconnect" />


  • by the session name

    Code Block
    languagexml
    <TerminateSession Name="SESSION_NAME" Reason="Manual disconnect" />


Note please:

  1. The session will not be visible in FIXICC or manageable (start, disconnect, etc) from FIXICC/BL/JS/scheduler.
  2. The termination and the disconnection occur with async way after rule completion. In case of fail <OnRuleFailEvent> will be called.

Sending instructions

Send

Sends a  FIX message to a specified destination. Destination, like the <Source> element, can define  FIX Session or a Transport Client (i.e. Transport Adaptor Session) by means of one of 3 variants:

...

Both of them can take one of the following values:

  • FIX Versions: FIX.4.0, FIX.4.1, FIX.4.2, FIX.4.3, FIX.4.4, FIX.5.0, FIX.5.0.SP1, FIX.5.0.SP2, FIXLatest
  • Custom FIX Versions: ARCA_FIX.4.1, AUBREY_FIX.4.2, PHLX_FIX.4.2, PHEQ_FIX.4.2, ISE_FIX.4.2, NYSE_FIX.4.2, SIGSRS_FIX.4.2, CME_FIX.4.2, BLOOMBERG_FIX.4.4, RENC_FIX.4.4, EBS_FIX.5.0
  • FIXML Versions: FIXML.4.1, FIXML.4.2, FIXML.4.3, FIXML.4.4, FIXML.5.0, FIXML.5.0.SP2, FIXML.FIXLatest
  • Custom FIXML Versions: CME_FIXML.4.4, LCH_FIXML.4.2, OSLO_FIXML.5.0.SP2

FIXEdge C++ has the capability to convert FIXML to FIX, with a FIX version that is compatible with the FIX protocol.

...