XAE Version 3 Prerequisites

Contents:

Upgrade to XAE Version 3

To upgrade to Version 3, set the platform setting for the XAE value to 3 (see Platform Settings).

Check Project Compatibility in a Different XAE Version

When preparing to change the XAE version, check whether your reports will be compatible with a different XAE version. Use the API for checking project compatibility to retrieve a list of your project reports with their compatibility status to the target XAE version.

https://secure.gooddata.com/gdc/projects/{project_id}/checkXaeCompatibility

POST
{
  "checkXaeCompatibilityRequest": {
    "targetXaeVersion": "3",
    "offset": 0,
    "limit": 0
  }
}

status: results_wont_change | results_may_change | fails_with_target_version | fails_with_current_version

For each report, one of the following status messages is displayed:

  • results won't change: The report will return the same result as currently configured.
  • results may change: The report will work, but will return a different result as currently configured.
  • fails with target version: The report will fail in the target XAE version.
  • fails with current version: The report is failing in the current XAE version.

Incompatibilities in Previous XAE Versions

CASE and IF in XAE

Before upgrading to a higher version of XAE supporting M:N, check your current metrics (see Check Project Compatibility in a Different XAE Version).

CASE metrics (see CASE) constructed using an earlier version of XAE can be problematic for Version 3.

Here is an example of incorrect usage of CASE in the following logical data model:


The following report use the wrong CASE statement because the WHEN conditions are not related to report dimensionality:

  • How: employee_name
  • What: SELECT CASE WHEN activity_type IN (email, meeting) THEN SUM(Amount) ELSE SUM(Loss) END

In XAE version 3, the report will not be computed.

Instead, you want to put the CASE statement inside the SUM aggregation:

  • How: employee_name
  • What: SELECT SUM( SELECT CASE WHEN activity_type IN (email, meeting) THEN Amount ELSE Loss END )

On the other hand, the following report is valid in all XAE versions (note that the How attribute is directly related to the attribute in the condition):

  • How: activity_id
  • What: SELECT CASE WHEN activity_type IN (email, meeting) THEN SUM(Amount) ELSE SUM(Loss) END

Strict Validation of "=" Filters

With enhanced filter validation for MAQL, the metric editor checks that a relation in a filter compares an attribute to the corresponding attribute values and not to attribute values of a different attribute (as this is never the desired state).

Metrics with invalid filters that were created before June 28, 2018, will continue to work. However, if you want to edit such metrics, you will have to edit them to fix the filters.

It will still be possible to compare different date attributes.

Example:

Correct: ... WHERE Priority = High(Priority)

Incorrect: ... WHERE State = High(Priority)

Improved COUNT and Filtering

Update usage of the COUNT function in your metrics to enable improved count and filtering (see COUNT Improvements).