Fidessa

Overview

The Fidessa Tracking Groups are mapped via configuration to the io.Connect Channels which allows passing context between Fidessa apps and interop-enabled apps.

Below is an example configuration of an io.Connect Channel which shows that the "Red" io.Connect Channel is mapped to Fidessa Tracking Group 5.

{
    "name": "Red",
    "meta": {
        "color": "red",
        "fidessaGroup": {
            "index": 5,
            "readDataFieldPath": "",
            "writeDataFieldPath": ""
        }
    }
}
Property Type Description
"index" number The index of the Fidessa Tracking Group which to map to the respective io.Connect Channel.
"readDataFieldPath" string Specifies the field path to the io.Connect Channel data from where the Fidessa Adapter reads the updated Channel value and then updates the Fidessa Tracking Group context.
"writeDataFieldPath" string Specifies the field path to the io.Connect Channel data where the Fidessa Adapter writes the updated Fidessa Tracking Group context.

The mapping between the io.Connect Channels and the Fidessa Tracking Groups is preconfigured (in the channels.json file located in the %LocalAppData%\interop.io\io.Connect Desktop\Desktop\config folder), but you can decide to assign different Fidessa Tracking Groups to different io.Connect Channels. For more information on configuring the io.Connect Channels, see the Developers section.

Context Shape

The context passed from the Fidessa Adapter to the interop-enabled apps and vice versa has the following shape:

{
    instrument: {
        // "VOD.L" or { fim: "VOD.L", bloomberg: "VOD:LN", ... }
        id: string | object;
        [prop: string] : any
    },
    client: string | object,
    order: {
        fidessaReference: string
    }
}

Handling Channel Context

On how to update and subscribe for changes to a Channel context, see the io.Connect Channels API.

Channel Updates

A Channel is updated every time the user selects an instrument, order or counterparty in a Fidessa app or in an interop-enabled app.

When an update from a Fidessa app arrives, the mapping service handles the conversion of instrument codes from FIM (Fidessa Instrument Mnemonic) to other standards (Bloomberg, Reuters Instrument Code, etc.). For instance, when a Fidessa app returns "VOD.L", the Application Adapter translates that mnemonic to other standards as well and updates the context object accordingly:

{
    instrument: {
        id: {
            bloomberg: "VOD:LN",
            fim: "VOD.L",
            ric: "VOD.L"
        }
    }
}

If there is no active mapping service, the value for the instrument.id property is the string literal received from Fidessa:

{
    instrument: {
        id: "VOD.L"
    }
}

When an interop-enabled app updates the Channel context, the Fidessa Adapter first tries to retrieve the instrument ID from the configured "fimPath" (see Connection Settings) and if no instrument ID is available there, the value of the instrument.id property is sent to the mapping service. If no mapping service is available, or if the mapping service returns an object which doesn't contain an instrument.id.fim property, the update is ignored.