Converting between export/import format and API format

Hi,

I'm a user of DSS to create some market data extracts (at the moment focusing on intraday summaries for future chians).

The way as manage my configurations, particularly for report and schedule definition is as follows:

  1. Create a sample online (e.g. "DATA-TY")
  2. Export it (e.g. "DATA-TY.xml") and create a template from it (e.g. "DATA-generic.xml")
  3. Use text tools such as vscode to quickly duplicate into similar files (e.g. "DATA-TU.xml", "DATA-FV.xml", ...)
  4. Upload all these files, e.g. to create schedules

My problem is that step 4 can be very cumbersome, and needs to redone every time I change a small thing in my templates. I'm therefore wondering if there is an API call for importing (report and schedule) definitions that were exported from the UI?

Looking at the API reference I only see odata json-type endpoints, without a straightforward way of converting back and forth between this and the xml formats (which again are what I get when I export/import). Am I missing something? What is the best way to automate transforming a local "DATA-TY.xml" into an online report definitions?

Tagged:

Best Answer

  • Jirapongse
    Jirapongse admin
    Answer ✓

    @Maxime Legrand

    Thanks for reaching out to us.

    I checked the DSS API Reference Tree and found the import and export functions of the Report Template.

    1678942023895.png

    Therefore, you can use the DSS REST API to import and export report templates.

    Instead of exporting and importing, you can use the API to create report templates directly.

    1678942197241.png


    I think it is more convenient than exporting and importing.

    Moreover, you can use on-demand extraction to extract data. The on-demand extraction doesn't require a pre-defined instrument list or report template to perform an extraction. The on-demand extraction is a once-off extraction containing an instrument list and report template settings. For example, the following is an on-demand extract to extract TickHistoryIntradaySummaries data.

    {
      "ExtractionRequest": {
        "@odata.type": "#DataScope.Select.Api.Extractions.ExtractionRequests.TickHistoryIntradaySummariesExtractionRequest",
        "ContentFieldNames": [
          "Close Ask",
          "Close Bid",
          "High",
          "High Ask",
          "High Bid",
          "Last",
          "Low",
          "Low Ask",
          "Low Bid",
          "No. Asks",
          "No. Bids",
          "No. Trades",
          "Open",
          "Open Ask",
          "Open Bid",
          "Volume"
        ],
        "IdentifierList": {
          "@odata.type": "#DataScope.Select.Api.Extractions.ExtractionRequests.InstrumentIdentifierList",  
          "InstrumentIdentifiers": [{
            "Identifier": "IBM.N",
            "IdentifierType": "Ric"
          }],
          "ValidationOptions": null,
          "UseUserPreferencesForValidationOptions": false
        },
        "Condition": {
          "MessageTimeStampIn": "GmtUtc",
          "ReportDateRangeType": "Range",
          "QueryStartDate": "2023-03-01T00:00:00.000Z",
          "QueryEndDate": "2023-03-02T00:00:00.000Z",
          "SummaryInterval": "OneHour",
          "TimebarPersistence": true,
          "DisplaySourceRIC": true
        }
      }
    }

    As you see, the request contains the instrument list (IBM.N) and the content fields and conditions of the TickHistoryIntradaySummaries report template.

    I hope that this information is of help.

Answers

  • Hi @Jirapongse,

    Thank you, I don't think I appreciated how useful the API reference tree was! I'll explore that avenue.

    I know the json way but was trying to get things that are compatible with manual operations.

    Best,
    Maxime