question

Upvotes
Accepted
19 7 10 11

How to get all available fields for a given RIC with C# and RDP library

Hi,

I am trying to retrieve a list of all available fields for a given RIC. I have tried to do this:

public string[] GetFields(string ric)
{
    IDataSetResponse response = Summaries.Definition(ric)
                                            .Interval(Summaries.Interval.P1D)
                                            .GetData();

    List<string> availableFields = new List<string>();
    foreach (DataColumn column in response.Data.Table.Columns)
    {
        availableFields.Add(column.ColumnName);
    }

    return availableFields.ToArray();
}

But it does't retrieve all the fields that I see when I use the Quote App on Eikon. For example, when I call the method with the RIC "EUROIS6Y3MZ=R", I get the following fields:

string[] fields = { "DATE", "MATUR_DATE", "DISC_FACT", "ZERO_YLD1", "START_DT"};

However, when I use the Quote app on Eikon I see a huge list:

Is there a way to retrieve ALL available fields for a given RIC?

Thanks in advance.

rdp-apirefinitiv-data-platformc#.netfields
1614163813310.png (81.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.

Upvotes
Accepted
4.3k 2 4 5

Hi,

The RDP API you're using is sending request to Historical Pricing that returns a limited list of fields, and the Quote app is retrieving data for streaming datafeed.
If you want to get same from streaming feed, you can use OMMItemStream class to subscribe to "EUROIS6Y3MZ=R", you should receive same - or almost same - list than Quote.

Note that there isn' t any way to get ALL fields but only available fields at one moment.
The initial list can be completed with new fields in update messages (that's the case with Quote app)

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.

Upvote
11.7k 57 39 60

Hi @YERAY SOSA ALONSO,

As @pierre.faurel pointed out, in your example above, you are requesting historical pricing. If you interested in retrieving the real-time pricing fields as your screenshot shows above, you have a couple of options.

1. You can use the following call to retrieve pricing data from the snapshot service within RDP - this based on the 2.2.01-Pricing-Snapshot example:

var response = Snapshot.Definition("EUROIS6Y3MZ=R").GetData();
if (response.IsSuccess)
     Console.WriteLine(response.Data.Prices["EUROIS6Y3MZ=R"].Fields());

2. You can use the following call to retrieve pricing data from the streaming service within RDP - this is based on the 2.2.02-Pricing-StreamingCache example:

var stream = StreamingPrices.Definition("EUROIS6Y3MZ=R");
if (stream.Open() == Stream.State.Opened)
     Console.WriteLine(stream["EUROIS6Y3MZ=R"].Fields());


1614183569285.png (53.9 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.