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.

Tagged:

Best Answer

  • warat.boonyanit
    Answer ✓

    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.

Welcome!

It looks like you're new here. Sign in or register to get started.

Welcome!

It looks like you're new here. Sign in or register to get started.