首页 > 解决方案 > The purpose of NON_EMPTY_BEHAVIOR

问题描述

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.

标签: iccube

解决方案


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 ... )


推荐阅读