question

Upvotes
Accepted
3 3 4 7

Assistance on C# .Net technology for integration

Dear Team,

We are looking for integration of Reuter into our application for Real time data. We are using C# .Net technology for integration.This implementation is for QNB. We are using below details for getting real time data.

RMDS Server IP TREP

port:

DACS ID

servicename : IDN_RDF

We are using "QuickStartConsumer" sample code for integration that Reuter has provided. but we didn't understand how to pass multiple instruments and multiple fields in request so that we will be getting real time extraction for that fields. Your technical support will help us for integration. Please let me know if you want more details from my side

Thanks,

Vaibhav Korade.

treprfarfa-apic#
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

1 Answer

Upvotes
Accepted
4.4k 10 6 9

Hi @vaibhav.korade
You can request an instrument by passing an OMMItemIntSpec that contain request message to the RegisterClient() call.

reqMsg.MsgModelType = ThomsonReuters.RFA.RDM.RDM.MESSAGE_MODEL_TYPES.MMT_MARKET_PRICE; 
reqMsg.InteractionType = ReqMsg.InteractionTypeFlag.InitialImage | ReqMsg.InteractionTypeFlag.InterestAfterRefresh;
attribInfo.NameType = ThomsonReuters.RFA.RDM.RDM.INSTRUMENT_NAME_TYPES.INSTRUMENT_NAME_RIC;
attribInfo.Name = new RFA_String("TRI.N");
attribInfo.ServiceName = new RFA_String("IDN_RDF");
reqMsg.AttribInfo = attribInfo;
ommItemIntSpec.Msg = reqMsg;
long itemHandle = ommConsumer.RegisterClient(eventQueue, ommItemIntSpec, this);

But if you want to request multiple instruments within a single request. You have to use batch request.

reqMsg.MsgModelType = ThomsonReuters.RFA.RDM.RDM.MESSAGE_MODEL_TYPES.MMT_MARKET_PRICE;
reqMsg.InteractionType = ReqMsg.InteractionTypeFlag.InitialImage | ReqMsg.InteractionTypeFlag.InterestAfterRefresh;
attribInfo.NameType = ThomsonReuters.RFA.RDM.RDM.INSTRUMENT_NAME_TYPES.INSTRUMENT_NAME_RIC;
attribInfo.ServiceName = new RFA_String("IDN_RDF");
reqMsg.AttribInfo = attribInfo;
//Set Batch Request Flag
reqMsg.IndicationMask = ReqMsg.IndicationMaskFlag.Batch;
//Set itemList in payload.
ElementList elementList = new ElementList();
ElementEntry element = new ElementEntry();
ElementListWriteIterator elwiter = new ElementListWriteIterator();
elwiter.Start(elementList);
ArrayWriteIterator arrWIt = new ArrayWriteIterator();
ThomsonReuters.RFA.Data.Array elementData = new ThomsonReuters.RFA.Data.Array();
//Encode a ItemList for batch
arrWIt.Start(elementData);
DataBuffer dataBuffer = new DataBuffer();
ArrayEntry arrayEntry = new ArrayEntry();
{
dataBuffer.Clear();
arrayEntry.Clear();
dataBuffer.SetFromString(new RFA_String("JPY="), DataBuffer.DataBufferEnum.StringAscii);
arrayEntry.Data = dataBuffer;
arrWIt.Bind(arrayEntry);
}
{
dataBuffer.Clear();
arrayEntry.Clear();
dataBuffer.SetFromString(new RFA_String("EUR="), DataBuffer.DataBufferEnum.StringAscii);
arrayEntry.Data = dataBuffer;
arrWIt.Bind(arrayEntry);
}
arrWIt.Complete();
element.Name = RDM.RDM.REQUEST_MSG_PAYLOAD_ELEMENT_NAME.ENAME_BATCH_ITEM_LIST;
element.Data = elementData; elwiter.Bind(element);
elwiter.Complete();
reqMsg.Payload = elementList;
ommItemIntSpec.Msg = reqMsg;
long itemHandleBatch = ommConsumer.RegisterClient(eventQueue, ommItemIntSpec, this);

There is an example called “StarterConsumer_BatchView”. This example shows how to use batch request.

Once you request instruments, API will send request message to server and server will response with either refresh message, if the request is success, or status message, if the request is fail (for example: no permission).
The response message will enter the ProcessEvent() callback which you can extract the message from the event. See QuickStartConsumer’s ProcessEvent() for example.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

Click below to post an Idea Post Idea