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.

Best Answer

  • 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"]
    }
    }
    }

Answers

  • 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.

  • 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.

  • 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.

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

  • 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.