question

Upvotes
Accepted
1 0 0 0

client is trying to snap PUTCALLIND field (109 field id) for the RIC S1R955U3 and they are getting “ThomsonReuters.RFA.Common.InvalidUsageException” error or blank state

case-12900056.pngHi Team, client is trying to snap PUTCALLIND field (109 field id) for the RIC S1R955U3 and they are getting “ThomsonReuters.RFA.Common.InvalidUsageException” error or blank state. How can client get PUTCALLIND field value for the RIC?

rfa#producterrorFID
case-12900056.png (242.3 KiB)
icon clock
10 |1500

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

Hello @lyka.bulawan

Thank you for your participation in the forum. Is the reply below satisfactory in resolving your query?


If so please can you click the 'Accept' text next to the appropriate reply? This will guide all community members who have a similar question.

Thanks,


AHS

@lyka.bulawan

Hi,

Please be informed that a reply has been verified as correct in answering the question, and marked as such.

Thanks,

AHS

1 Answer

· Write an Answer
Upvote
Accepted
22.1k 59 14 21

Hi @lyka.bulawan,

I can see the field PUTCALLIND (109) in the image response for this ric: S1R955U3, so RFA should be able to extract the field value. The value is an enumeration.

It might be possible that the fieldlist payload is blank or invalid - which can be confirmed by the Refinitiv content team only. For their application you can ask the client to implement a blank check before trying to decode the fieldlist by using FieldList.isBlank() method.

icon clock
10 |1500

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

Hi Gurpeet, thank you for checking this query. Had shared this insight to client and hopefully this will solve the issue they are having. Once again, thank you for your assistance!

Hi @Gurpreet ,

If PUTCALLIND value is an enumeration, please let us know how to read the enumeration values using RFA. Below is the current code used to read the field values.


foreach (FieldEntry entry in fldValueList)

{


ThomsonReuters.RFA.Common.Data dataEntry = null;

dataEntry = entry.GetData(RDMFidDef.StringToOMMType(new RFA_String(“REAL”)));


}

Hi @lyka.bulawan,

RFA sample code shows how to get data and ignore InvalidUsageException in the StarterConsumer code which ships with the RFA.NET SDK package.

// Decode Payload
if ((respMsg.HintMask & RespMsg.HintMaskFlag.Payload) != 0)
{
  ThomsonReuters.RFA.Common.Data payload = respMsg.Payload;
  if (payload.DataType == DataEnum.FieldList)
  {
    FieldList fieldList = payload as FieldList;
    Console.WriteLine("FieldList's entry count: " + fieldList.StandardDataCount);
    short fieldId;
    foreach (FieldEntry fieldEntry in fieldList)
    {
      fieldId = fieldEntry.FieldID;
      try
      {
        RDMFidDef fidDef = rdmFieldDictionary.GetFidDef(fieldId);
        ThomsonReuters.RFA.Common.Data dataEntry = fieldEntry.GetData(fidDef.OMMType);
        if (dataEntry.DataType == DataEnum.DataBuffer)
        {
          DataBuffer dataBuffer = dataEntry as DataBuffer;
          Console.Write("\tFieldEntry: {0,-10} {1,-8}\t", fidDef.Name, "(" + fieldId + ")");
          Console.WriteLine(dataBuffer.GetAsString().ToString());
        }
      }
      catch (InvalidUsageException)
      {
      }
    }
  }
}


Show more comments

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

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