4

I need the clarification about the meaning and purpose of NON_EMPTY_BEHAVIOR when defining calculated member. As I understood so far the purpose of NON_EMPTY_BEHAVIOR is to tell icCube that if NON_EMPTY_BEHAVIOR measure is null then entire calculated measure is null, so icCube does not need to evaluate calculation any further? Is that right?

Thanks.

vldmrrdjcc
  • 2,082
  • 5
  • 22
  • 41

1 Answers1

3

The NON_EMPTY_BEHAVIOR property is used in calculated members to speed up some internal calculations. It defined a measure, or measure group, that has the same empty behavior as the calculated member.

An example,

MEMBER [Calculated] as [Measures].[Amount] * 23

As we can see from the formula when [Amount] is empty [Calculated] member will be empty. you could have another case :

MEMBER [Calculated] as [Measures].[Amount] * [Fx Rates].[Euros]

Here it's going to be empty if any of the two members is empty, for simplicity you could again define your NON_EMPTY_BEHAVIOR only on [Amount] as you know the is always an Fx rate.

So we coud define in icCube

MEMBER [Calculated] as [Measures].[Amount] * [Fx Rates].[Euros], NON_EMPTY_BEHAVIOR='Amount'

What is the use ?

It's mainly used in icCube to speed up axis NON EMPTY tag and when callling NonEmptyX function.

Pay attention that if you define it wrongly, using a wrong measure, you might find yourself with less members than expected ( NON EMPTY on axis, NonEmptyX function ... )

ic3
  • 7,917
  • 14
  • 67
  • 115