DEE Responses

Common JSON format across all the results

All the results returned by the REST API are nested within the Response object’s entity field as follows:

{
  "status": "http status code: 200, 400, 500, ...",
  "entity": {
    ...
  }
}

note

All responses are contained within a Response object. The entity field contains the actual response data. The status field contains the HTTP status code of the response. The responses may contain additional data from the Response object.

In case of an error, the following structure is sent (we can see that the Response’s status field is set to 500):

{
  "status": 500,
  "entity": {
    "errorChain": [
      {
        "type": "",
        "message": ""
      },
      ...
    ],
    "stackTrace": ""
  }
}

Endpoints and Responses

The following matrix outlines the different endpoints and the information their response contains.

Endpoint Response
submitTasks Return the list of task ids (String) as a result
submitOrders Return the list of task ids (String) as a result
submitTemplateOrders Return the list of task ids (String) as a result
addTemplateOrder Does not return any specific value
removeTemplateOrder Does not return any specific value
clearOldCompletedTasks Returns the number of tasks cleared
isTaskCompleted Simply return a boolean.
isTaskListCompleted Simply return a boolean.
getTaskStatus Return a result based on the DeeTaskInfoDTO and DeeResultFileInfoDTO classes.
getTaskListStatus Return a result based on the DeeTaskInfoDTO and DeeResultFileInfoDTO classes.
cancelTask Return a result based on the DeeTaskInfoDTO and DeeResultFileInfoDTO classes.
cancelTaskList Return a result based on the DeeTaskInfoDTO and DeeResultFileInfoDTO classes.

Enhanced Drillthrough Endpoints and Responses

Here are the endpoints exposed by the Enhanced Drillthrough component of the Extraction Engine:

Endpoint Response
executeSearchFacts Returns list of Object[] representing the extracted attributes for each fact that fell into the query scope
executeEnhancedDrillthrough Returns no content, just an ok or error status
retrieveEnhancedDrillthroughResult Returns the current status of the task in an EnhancedDrillthroughTaskInfoDTO object.
cancelEnhancedDrillthrough Returns the last status of the task if the query has been cancelled, nothing otherwise
getEnhancedDrillthroughMaxRows/{pivotId} Returns the max rows value for the specified cube
executeEnhancedCount Returns the number of aggregate DTO’s returned as results of the query

Response Examples

Below are examples for the different endpoints.

Submit calls

The methods submitTasks, submitOrders and submitTemplateOrders return the list of task ids (String) as a result.

Example response for submitTasks:

{
  "status": 200,
  "entity": [
    "1612394532198_2"
  ]
}

Template calls

The methods addTemplateOrder and removeTemplateOrder do not return any specific value.

Clean-up calls

The method clearOldCompletedTasks returns the number of tasks cleared.

Example response:

{
  "status": 200,
  "entity": 1
}

Check if task(s) is completed

The methods isTaskCompleted and isTaskListCompleted simply return a boolean.

Example response for isTaskCompleted:

{
  "status": 200,
  "entity": true
}

Status calls

The methods getTaskStatus, getTaskListStatus, cancelTask and cancelTaskList return a result based on the DeeTaskInfoDTO and DeeResultFileInfoDTO classes.

info

Below are examples of a Json response DTO objects:

JSON Status Call Result Format

{
  "status": 200,
  "entity": {
    "taskId": "1",
    "taskOwner": "admin",
    "taskStatus": "RUNNING",
    "statusLastUpdateTime": "24/01/2020 12:58:23",
    "orderName": "orderName",
    "orderDescription": "orderDesc",
    "taskCreationTime": "24/01/2020 12:58:23",
    "taskRunStartTime": "24/01/2020 12:58:23",
    "taskRunStopTime": "24/01/2020 12:58:23",
    "taskExceptionMessage": "exceptionMessage",
    "taskExceptionDetails": "exceptionDetails",
    "dataSetDescription": "dataSetDesc",
    "dataRawSize": "2000",
    "resultFile": [
      {
        "url": "http://path/to/file",
        "size": 2000,
        "linesCount": 10
      }
    ]
  }
}

Enhanced Drillthrough REST Responses

Execute Search Facts Query

Returns list of Object[] representing the extracted attributes for each fact that fell into the query scope

Execute Enhanced Drillthrough Query

Returns no content, just an ok or error status

Retrieve Enhanced Drillthrough Result

The REST service returns a JSON object following the EnhancedDrillthroughTaskInfoDTO definition.

Example of output:

{
  "status": 200,
  "entity": {
    "taskOwner": "admin",
    "taskStatus": "SUCCESS",
    "dataRawSize": "2000",
    "taskException": "",
    "resultFiles": [
      {
        "url": "",
        "size": 2000,
        "linesCount": -1
      }
    ]
  }
}

Cancel Enhanced Drillthrough

The REST service returns a JSON object following the EnhancedDrillthroughTaskInfoDTO definition.

Example of output:

{
  "status": 200,
  "entity": {
    "taskOwner": "admin",
    "taskStatus": "CANCELLED",
    "dataRawSize": "",
    "taskException": "",
    "resultFiles": []
  }
}

Get Enhanced Drillthrough Max Rows

This returns the maximum number of rows the enhanced drill-through is allowed to extract for a specific cube.

Example of output:

{
  "status": 200,
  "entity": 10
}

Execute Enhanced Count

This retrieves the contributors.COUNT for a particular location, with some custom logic to ensure appropriate count calculation when dealing with analysis dimensions in the target cube.

Example of output:

{
  "status": 200,
  "entity": 10
}