For a deeper look into our Eikon Data API, look into:

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials |  Articles

question

Upvotes
Accepted
104 8 9 13

get_symbology exists with error instead of silently

I have a loop going through a list of ISIN/SEDOL names I want converted to RICs. Once it encounters an ISIN it deems invalid I get an error as below and the loop exists.

Error in print.default("HTTP Error, code= ", response$status_code, sep = "") : 
  invalid 'digits' argument 

I tried using a try clause with the silent option on but the get_symbology stops working after the first fail and the following code gives me NAs for all calls after the first error. If I do the calls one by one for each ISIN the commands work properly but I have a long list and want the loop to work.

RIC_vec <- vector("character",length = N)
for (i in 1:N) {
  RIC_ID <- try(get_symbology(comps[i,2][[1]],
                          from_symbol_type = "ISIN",
                          to_symbol_type = "RIC"),silent=T)
  print(i)
  if ("RIC" %in% names(RIC_ID)) {
    RIC_vec[i] <- RIC_ID[1,2]} 
  else {
    RIC_vec[i] <- NA}
} 

I'm using the eikonapir package in R.

Thanks,

Claudiu

eikonpythonworkspaceworkspace-data-apirefinitiv-dataplatform-eikonricsreikon-data-api-r
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.

@claudiu

From the problem statement, you got the error when calling the get_symbology function with a list of ISIN symbols. However, it works fine if it is called one by one.

Please share a list of symbols used by the application and let me know how many symbols in each request.

Upvotes
Accepted
39.3k 76 11 27

@claudiu
In order to understand what's going on here we need a way of reproducing the issue on our end. Would you be able to provide a complete sample code that reliably recreates the issue for you and that we could run to reproduce it? I just tried to simulate the issue by including an invalid ISIN in the character vector and running the code below.

> isins = c("US0378331005","akuebfkn","FR0000121501")
> for (i in 1:3) {
+     print(isins[i])
+     RIC <- try(get_symbology(isins[i],
+         from_symbol_type = "ISIN",to_symbol_type = "RIC"),silent=T)
+     print(i)
+     print(RIC)
+ }

The code ran gracefully as expected and produced the following output

[1] "US0378331005"
[1] 1
        Symbol    RIC
1 US0378331005 AAPL.O
[1] "akuebfkn"
[1] 2
    Symbol                   error
1 akuebfkn No best match available
[1] "FR0000121501"
[1] 3

I also tried to replicate the issue you describe by forcing get_symbology method to return an error. For this purpose I used invalid app key in set_app_id method. Again I couldn't reproduce the behavior you describe. In this test case every get_symbology call failed, but the loop ran all the way through thanks to try function.
It might be helpful to print the try-error object to understand what happens on your end.

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
104 8 9 13

To clarify, the error is for calling get_symbology with one ISIN item only. It is done in a loop, see code example above, each time with single ISIN. The error fails at different times during the loop if run several times so it may be a connectivity or response from server issue. The ISINs are OK since I manage to call get_symbology directly (not in loop) on the "failed" ISIN and get a correct answer. The question is if this is some server related issue how to workaround it and why doesn't the get_symbology command fail gracefully instead of exiting the program?

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.