Bloomberg
Overview
The Bloomberg Groups are visual color-coded named groups (much like the io.Connect Channels) which the user can select from the UI of Bloomberg apps. They provide data synchronization across Bloomberg apps (e.g., if two apps are in the same colored group, when an instrument changes in one app, the other app is updated respectively). The Bloomberg Adapter provides configurable mapping between the Bloomberg Groups and the io.Connect Channels.
⚠️ Note that the io.Connect Channels are mapped via configuration to the default names of the Bloomberg Groups. Therefore, modifying the default name of a group in the Bloomberg Terminal will cause the respective mapping between the Bloomberg Groups and the io.Connect Channels to break. Any change you make to a Bloomberg Group name must be reflected in the io.Connect Channel definitions which contain the mappings to the respective Bloomberg Groups.
Groups Operations
Get Group Names
To get the known Bloomberg Groups as a list of names, use the "T42.BBG.GetGroups" method.
The "T42.BBG.GetGroups" method doesn't accept any arguments and returns an array of strings with the available Bloomberg Group names.
Example:
const result = await io.interop.invoke("T42.BBG.GetGroups");
// Example value: ["Group-B", "Group-A"]
const groups = result.returned.Result;
if (groups && groups.length > 0) {
// Use the Bloomberg groups here.
};Get Group Context
To get the context of a Bloomberg Group by name, use the "T42.BBG.GetGroupContext" method.
The "T42.BBG.GetGroupContext" method accepts as an argument an object with the following properties:
| Property | Type | Description |
|---|---|---|
group |
string |
Required. The name of the Bloomberg Group whose context to retrieve. |
The "T42.BBG.GetGroupContext" method returns the context of the group as a string.
Example:
const invocationArgs = { group: "Group-A" };
const result = await io.interop.invoke("T42.BBG.GetGroupContext", invocationArgs);
// Example value: "VOD LN Equity"
const context = result.returned.Result;Update Group Context
To update the context of a Bloomberg Group by name, use the "T42.BBG.SetGroupContext" method.
The "T42.BBG.SetGroupContext" method accepts as an argument an object with the following properties:
| Property | Type | Description |
|---|---|---|
context |
string |
Required. The context value with which to update the group (e.g., a security identifier). |
group |
string |
Required. The name of the Bloomberg Group to update. |
The "T42.BBG.SetGroupContext" method returns void.
Example:
const invocationArgs = {
group: "Group-A",
context: "BARC LN Equity"
};
await io.interop.invoke("T42.BBG.SetGroupContext", invocationArgs);Streaming Events
To subscribe for and be notified about Bloomberg Group changes, use the "T42.BBG.GroupsChanged" streaming method. An interop-enabled app can subscribe to this stream and receive updates whenever a group context changes.
The "T42.BBG.GroupsChanged" method doesn't accept any arguments and pushes data with an array of objects with the following properties:
| Property | Type | Description |
|---|---|---|
name |
string |
The name of the changed group. |
value |
string |
The new context value of the group. |
Example:
const subscription = await io.interop.subscribe("T42.BBG.GroupsChanged");
subscription.onData(handleGroupChanges);
function handleGroupChanges(streamData) {
// Example value: [{ name: "Group-A", value: "VOD LN Equity" }]
const changes = streamData.data.groups;
// Handle group changes here.
};Channel Mapping
By default, all Bloomberg Groups are mapped to io.Connect Channels. The io.Connect Channels and the respective mappings to the Bloomberg Groups are defined in the io.Connect Channel definitions.
To map a Bloomberg Group to an io.Connect Channel, use the "blpGroup" property of the "meta" object in the Channel definition. It's possible to configure the mappings so that the Bloomberg Groups will synchronize only with the io.Connect Channels, or with both the io.Connect Channels and the FDC3 User Channels.
Synchronization with io.Connect Channels
The following example demonstrates mapping an io.Connect Channel to a Bloomberg Group:
⚠️ Note that this mapping will enable context synchronization of the Bloomberg Groups only with the io.Connect Channels. If you want to map the Bloomberg Groups so that they will be synchronized both with the io.Connect Channels and the FDC3 User Channels, see the Synchronization with io.Connect Channels & FDC3 User Channels section.
{
"name": "Red",
"meta": {
"color": "red",
"blpGroup": {
"name" : "Group-G",
"readDataFieldPath" : "data.partyPortfolio.ric",
"writeDataFieldPath" : "data.partyPortfolio.ric",
"read" : "ric",
"write": "ric"
}
}
}The "blpGroup" object has the following properties:
| Property | Type | Description |
|---|---|---|
"name" |
string |
The name of the Bloomberg Group to bind to the respective io.Connect Channel. |
"read" |
"ric" | "blp" |
The type of the context to read (RIC or Bloomberg ticker). |
"readDataFieldPath" |
string |
Specifies the field path to the io.Connect Channel data from where the Bloomberg Adapter will read the updated Channel context value and then update the Bloomberg Group context. |
"write" |
"ric" | "blp" |
The type of the context to write (RIC or Bloomberg ticker). |
"writeDataFieldPath" |
string |
Specifies the field path to the io.Connect Channel data where the Bloomberg Adapter will write the data retrieved from the updated Bloomberg Group context. |
Synchronization with io.Connect Channels & FDC3 User Channels
The following example demonstrates how to map a Bloomberg Group to an io.Connect Channels so that the Bloomberg Groups will synchronize both with the io.Connect Channels and the FDC3 User Channels:
{
"name": "Red",
"meta": {
"color": "red",
"blpGroup": {
"name": "Group-G",
"readDataFieldPath": "data.fdc3_fdc3&instrument.id.BBG",
"writeDataFieldPath": "data.fdc3_fdc3&instrument.id.BBG",
"read": "blp",
"write": "blp",
"updateObjectFieldPath": "data.fdc3_fdc3&instrument",
"updateObject": {},
"postUpdate": { "latest_fdc3_type": "fdc3&instrument" }
}
}
}You can map all other Bloomberg Groups in a similar way, updating only the values for the name of the Bloomberg Group and for the name and color of the respective io.Connect Channel.