Do you have an example on how to use : " rtmesBuffer" ? RMTES Decoder EMA provides a built in R

Do you have an example on how to use : " rtmesBuffer" ? RMTES Decoder EMA provides a built in RMTES decoder. If desired, application may cache RmtesBuffer objects and apply all the received changes to them

Best Answer

Answers

  • Hi,

    Have you checked out the example 310 MarketPriceRmtes?

    C+ folder: Ema\Examples\Training\Consumer\300_Series_Examples\310__MarketPrice__Rmtes?

    Java folder:

    Ema\Src\examples\java\com\thomsonreuters\ema\examples\training\consumer\series300\example310__MarketPrice__Rmtes

    It extracts a RMTES_STRING type field and applies it to a RmtesBuffer.

    Hope that helps.

  • Hello @arnaud.mazzucco

    EMA Java provides example310__MarketPrice__Rmtes application
    located in <Elektron SDK Java pakckage>\Ema\Src\examples\java\com\thomsonreuters\ema\examples\training\consumer\series300\example310__MarketPrice__Rmtes.
    The application showcases processing of RWF RMTES_STRING data type by using RmtesBuffer
    interface.

    The example of the application's output:

    Received Update. Item Handle: 1 Closure: 0
    Item Name: N2_UBMS
    Service Name: API_ELEKTRON_EPD_RSSL
    Fid: 264 Name = BCAST_TEXT DataType: Rmtes Value: 株式会社エスプール: 平成29年11月期 第1四半期決算短信〔日本基準〕(連結) (Completed): <2471.T>

    Received Update. Item Handle: 1 Closure: 0
    Item Name: N2_UBMS
    Service Name: API_ELEKTRON_EPD_RSSL
    Fid: 264 Name = BCAST_TEXT DataType: Rmtes Value: DJ Eurex Interest Rates Futures Hourly Price Update

    For more details of RmtesBuffer interface, please refer to <Elektron SDK Java
    pakckage>\Ema\Docs\refman\emajava\com\thomsonreuters\ema\access\RmtesBuffer.html

  • For instance I am trying to use rmtes buffer for ric : 66380bk.HKd on ELEKTRON_DD :
    This is what I receive from the refreshMsg :

    fid="316"name="ROW80_2"dataType="Rmtes"value=" BID ASK fid="317"name="ROW80_3"dataType="Rmtes"value=" 9705 -5s | 9705 fid="318"name="ROW80_4"dataType="Rmtes"value=" -1s 9053 | +1s fid="319"name="ROW80_5"dataType="Rmtes"value=" 9705 9705 | 9705 fid="320"name="ROW80_6"dataType="Rmtes"value=" 2310 | +2s fid="321"name="ROW80_7"dataType="Rmtes"value=" -2s | fid="322"name="ROW80_8"dataType="Rmtes"value=" | +3s fid="323"name="ROW80_9"dataType="Rmtes"value=" -3s | fid="324"name="ROW80_10"dataType="Rmtes"value="" | +4s fid="325"name="ROW80_11"dataType="Rmtes"value="" -4s | 9705 fid="326"name="ROW80_12"dataType="Rmtes"value="" 8130 |

    But the updateMsg is like this :

    fid="319" name="ROW80_5" dataType="Rmtes" value="69705"

    It means that I don't receive a filed update, just a few characters => I can't rebuild the field and check what has been updated.

    Do you have a solution for this Kind of issue ? The buffer does not work for that, ot the usage you show in the example does not address my issue.

    Thansk a lot



  • Hi @arnaud.mazzucco

    So, just to be clear - are you maintaining a unique instance of RmtesBuffer for each Field (for each RIC if consuming multiple RICs) and then using apply() method to update the corresponding instance of the RmtesBuffer as and when an update arrives for that particular field (for that RIC)?

    And once you apply() the update, you then extract the string from the RmtesBuffer to get the full field for display purposes?

  • Yes, exactly!

  • Hello @arnaud.mazzucco
    "

    Please see my response in the email.

  • Hello Umer,

    I modified example120__MarketPrice__FieldListWalk as the attached file and tested with 2899bk.HKd

    class AppClient implements OmmConsumerClient
    {
    TreeMap <Integer, RmtesBuffer> rmtesMap = new TreeMap <Integer, RmtesBuffer>();

  • void decode(FieldList fieldList)
    {
    Iterator<FieldEntry> iter = fieldList.iterator();
    FieldEntry fieldEntry;
    while (iter.hasNext())
    {
    fieldEntry = iter.next();
    if(fieldEntry.loadType()==DataTypes.RMTES & fieldEntry.code()!=Data.DataCode.BLANK) {
    if(!rmtesMap.containsKey(fieldEntry.fieldId())) {
    rmtesMap.put(fieldEntry.fieldId(), EmaFactory.createRmtesBuffer());
    }
    rmtesMap.get(fieldEntry.fieldId()).apply(fieldEntry.rmtes());
    }

    }

  • //prints all RMTES fields(the field id with its value) in the map on the console to display the page
    for (Integer fieldId: rmtesMap.keySet()){
    System.out.print(fieldId+":");
    System.out.println(rmtesMap.get(fieldId).toString());
    }

  • Hi @arnaud.mazzucco

    I understand my colleague has been in contact with you directly.

    Just to confirm that this appears to be an issue with EMA Java and a fix request has been raised.

    Regards,
    Umer