For a deeper look into our DataScope Select REST API, look into:

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials

question

Upvotes
Accepted
54 3 5 9

On demand extraction via HTTP requests with list and template ids?

Is there a way to perform an on demand extraction - via HTTP request - without explicitly write both instruments and fields (template) lists? Ideally, we would like to perform on demand extractions passing a list id and a report template id at the request.

dss-rest-apidatascope-selectdssrest-apihttpon-demand-extraction
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
465 3 5 3

This example should help. Unfortunately we do not have any examples on the help site for this feature.

{
  "ExtractionRequest":{
    "@odata.type":"#ThomsonReuters.Dss.Api.Extractions.ExtractionRequests.FundAllocationExtractionRequest",
    "ContentFieldNames":[ "FundSERVDO","FundSERVFE","FundSERVIS"],
    "IdentifierList":{ 
        "@odata.type":"#ThomsonReuters.Dss.Api.Extractions.ExtractionRequests.InstrumentListIdentifierList",
        "InstrumentListId":"0x056354c268de2e3f"
    },
    "Condition":{ 
        "FundAllocationTypes":[ "Currency","IndustrySector","InvestmentCountry"]
    }
  }
}
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.

Tested it and it indeed works, many thanks! I assume I can include a report template id in an homologous way to the included list id at the example?

The REST API does not provide data formatting like a scheduled extraction, and so there is a lot of information in a Report Template that would not be put into play, which may be confusing to some users. What would be needed is a means to say GetFieldNamesFromReportTemplate(id).

There are 2 options: Fetch your stored RT and then enumerate the field list into the On Demand extraction, or, use an existing list and template with an immediate extraction. The first option does cause the wire transfer of the template each time, and the second on only returns the results via a formatted file.

A new REST API tutorial 7 illustrating the use of an existing instrument list has been created.

Upvotes
13.7k 26 8 12

@carla.martinez

I don't believe this is possible via an on demand extraction. But you could create a report template (or use an existing one), and then schedule an immediate extraction (this requires the instrument list Id and the report template id). This is explained in detail in REST API Tutorial 8.

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
1.1k 4 3 5

A little color commentary...

The reason for this is that On Demand is intended to be "an extraction in isolation" aka transactional. There is no persistence of any kind beyond the call to make it wholly self-contained.

One word of caution: Running immediate extractions means that the client should not modify or delete either the instrument list or the report template until all immediate extractions referencing them are complete.

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
1.1k 4 3 5

Correction: I now understand that On Demand will support referencing stored lists - you need to use a InstrumentListIdentifierList in place of a InstrumentIdentifierList in your call.

My cautionary comments apply.

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.

I was not aware of this feature. This is good to know !