Why is data from Issue dimension different from Realized dimension?

The following returns all of the issues that Realize the current member:

  Generate(
       [Realized].[Realized].GetMembersByKeys([Issue].CurrentMember.Get("Realized")),
       [Realized].CurrentMember.GetString("KEY"), ",")

However, the version below only returns SOME of the issues that Realize the current member (I can’t guess/explains which ones it is omitting):

  Generate(
       [Issue].[Issue].GetMembersByKeys([Issue].CurrentMember.Get("Realized")),
       [Issue].CurrentMember.GetString("KEY"), ",")

Any thoughts on the difference between these?

David

The first formula finds all linked issue members in Realized dimension for one particular issue. This should match the value of Issue property Issue realized exactly. Realized dimension shows you reference to linked issues (issue keys only).

The second formula finds all linked issue members in Issue dimension. However, it can find any reference there if the linked issue itself is imported into account. Issue dimension holds all issue properties (name, field values, etc.)

Please take into account. You can access linked issue properties (any field value of linked issue) if you import linked issue itself in the report. Please check import options for the account: project selection and JQL query if linked issues match import options.

Daina / support@eazybi.com

  • You’re right that the first version matches

[Issue].CurrentHierarchyMember.Get("Realized")

exactly.

  • You’re also right that the missing links in my second version were to issues that had not been imported into the account.

  • I guess I’m still thinking of the Calculated Members as being applied to ever Row. So if I have Issue as the Row Dimension, why can’t I just do something like the following?

    Generate(
         CurrentMember.Get("Realized"), ...
    

Like doesn’t CurrentMember already know which Dimension it is in?

  • Why can I not operate on everything in the Dimension directly (versus having to go through the Level)? I.e. why not just:

    Generate(
    [Realized].GetMembersByKeys([Issue].CurrentMember.Get(“Realized”)), …

  • I guess don’t understand the second argument of ‘generate’.

I am trying to think of it like:

  Generate(
       SetOfThings,
       FunctionToApplyToEachItemInSetOfThings,
        "delimiter of the results")

so for example:

  Generate(
       [Issue].[Issue].GetMembersByKeys([Issue].CurrentMember.Get("Realized")),
       CurrentMember.GetString("KEY"), ",")

So I don’t understand why I needed either:

[Issue].CurrentMember.GetString("KEY")

or

[Realized].CurrentMember.GetString("KEY")

Why does the Dimension have to be listed there if generate() is applying a function to the set in its first argument?

Lots of questions… but I’m hoping understanding this will help me do a lot more than just this!

Thanks,
David

@daina.tupule Any thoughts on this?

Any dimension makes content for any report. If a dimension is not added to report, you can still access it with CurrentMember. In many cases, you have several dimensions in your report. Therefore you would like to address one dimension in particular with this function.

The function GetMembersByKeys (similar to GetMemberByKey) is designed and works with a particular dimension level only.

The second argument of Generate function, in this case, is a string expression you can apply for any member of a set (the first argument) to create a string as a result. You can put any string there. However, in most cases, you would like to represent each member of a set in the result. Therefore, typically you address property (key, name, etc.) of a member of a set for this.

Daina / support@eazybi.com