EducationSoftwareStrategy.com
StrategyCommunity

Knowledge Base

Product

Community

Knowledge Base

TopicsBrowse ArticlesDeveloper Zone

Product

Download SoftwareProduct DocumentationSecurity Hub

Education

Tutorial VideosSolution GalleryEducation courses

Community

GuidelinesGrandmastersEvents
x_social-icon_white.svglinkedin_social-icon_white.svg
Strategy logoCommunity

© Strategy Inc. All Rights Reserved.

LegalTerms of UsePrivacy Policy
  1. Home
  2. Topics

KB483583: Nested Derived Attributes created with Case Function may have incorrect relationship and join order


Qinyi Chen

Quality Engineer, Principal • Strategy


When users create two derived attributes that share the same derived attribute as a component attribute, in some situations, the relationship generated between them can be wrong and leads to incorrect join order when they are put into the same template.

Starting with the release of Strategy ONE (March 2024), dossiers are also known as dashboards.

Glossary

  • Derived Attributes

Steps to Reproduce


1. Open Strategy Web. We use Strategy Tutorial objects in the following steps.
2. Create a new Intelligent Cube C01 using Existing objects: Catalog, Customer City, Customer Gender

ka0PW0000001JZ8YAM_0EM2R000000lpF8.jpeg

3. Create the first derived attribute DA1, which is going to be used as the child attribute:

ka0PW0000001JZ8YAM_0EM2R000000lpFD.jpeg

3. Create 2 derived attributes DA2 and DA3, both using DA1 as a child component. Note that these 2 DA are not usually identical, but for the demonstration purpose, they are identical in this example:

ka0PW0000001JZ8YAM_0EM2R000000lpFS.jpeg
ka0PW0000001JZ8YAM_0EM2R000000lpvs.jpeg

4. Add DA2, DA3, and the Row Count metric to the grid, the grid can look like:

ka0PW0000001JZ8YAM_0EM2R000000lpFc.jpeg

As DA2 and DA3 are defined identically, DA3 should be equal to DA2 and their mapping should be one to one.
* Note that the behavior depends on the derived attribute's ID, so the behavior can be random. It's possible that the defect only shows when the dossier is saved as a new one or downloaded and imported; as the derived attribute IDs change, and the defect is displayed. 

Cause


This is a known issue in Strategy 2019 and previous versions.
In the above case, 2 derived attributes, DA2 and DA3, defined on other derived attribute DA1 and the structure is similar to: 

ka0PW0000001JZ8YAM_0EM2R000000mjWy.jpeg

When Data Engine generates relations between DA2 and DA3, it will choose which one to process first based on the derived attribute ID. If it choose to process DA2 first, it will generate a relation table on <DA2, DA1, A, B>, and then it will process DA3. Since DA3 is connected to DA1, Data Engine will only generate <DA3, DA1> and then join the two temp relations <DA2, DA1, A, B> <DA3, DA1> on DA1. In some situation it will lead to wrong results.

Solution

  • Upgrade to Strategy 2020 or above. We recommend the latest version.
  • Set Data Engine Version setting to 12 or above.
    • The project level setting Data Engine Version can only be enabled through Workstation. For more details on enabling the setting, see Change Data Engine Version.


In the new fix, Data Engine will first generate <DA2, DA1, A, B>, then generate <DA3, DA1, A, B>, and join the two temp relations using attribute DA1, A, B, this will result in expected results.
Strategy Internal Reference Number for this technical note is KB483583 and DE136699.


Comment

0 comments

Details

Knowledge Article

Published:

August 29, 2019

Last Updated:

March 21, 2024