报告操作条件似乎间歇性评估错误

Report Action Condition Appears to intermittently Evaluate False

我有一个 SSAS 2012 多维数据集,它有一个报告操作。此操作应有条件地可用,具体取决于用户被要求 select 特定 Scenario.

动作本身工作正常,我遇到的问题是我为动作定义的条件仅在大部分时间

在 Excel 中浏览多维数据集时,如果我将 Activity(一个度量)添加到值,并且我将场景跨列放置,只要我右键单击一个 activity单元格(不包括总计),则操作按预期可用。显示的几列示例数据:

            2010 Actuals    2011 Actuals
Activity    -13,812,430     11,938,733

在浏览多维数据集时,如果除了上述配置之外,我在行上放置一个帐户层次结构,并展开最低级别,则该操作将对某些单元格不可用,但对大多数其他单元格可用。显示的几列示例数据:

Row Labels  2010 Actuals    2011 Actuals
123 - ABC   -1,889          41,251
456 - DEF   -562,243       -2,053,282
789 - GHI   -25,000        -12,454

由于操作条件只需要 select 编辑特定场景(2010 年实际数据、2011 年实际数据等),我希望右键单击示例数据中的任何度量值都会有可用的动作。该操作适用于 6 个单元格中的 5 个,但不适用于 456 - DEF 2011 Actuals这可能是什么原因造成的?

动作中的条件MDX为:

[Scenario].[SA - Scenario].CurrentMember <> [Scenario].[SA - Scenario].[All]

虽然 运行 SQL 探查器,如果我右键单击一个行为正确的单元格,然后单击 'show details',发送的 MDX 是:

    DRILLTHROUGH MAXROWS 
    1000 SELECT FROM [SomeName] WHERE 
    ([Measures].[Activity]
    ,[Account].[A1 - Level 1].[Level 1].&[Balance Sheet].&[Assets].&[Current Assets].&[Cash].&[Cash in Bank].&[456 - DEF]
    ,[Scenario].[SA - Scenario].[Scenario].&[79])

如果我单击 没有 可用操作的单元格,则发送的 MDX 是:

    DRILLTHROUGH MAXROWS 
    1000 SELECT FROM [SomeName] WHERE 
    ([Measures].[Activity]
    ,[Account].[A1 - Level 1].[Level 1].&[Balance Sheet].&[Assets].&[Current Assets].&[Cash].&[Cash in Bank].&[456 - DEF]
    ,[Scenario].[SA - Scenario].[Scenario].&[80])

为单元格发送的 MDX 之间的唯一区别似乎是 Scenario 值,我认为这是正确的,因为我们 select 来自帐户的同一成员,只是一个不同的场景。在一种情况下,条件似乎评估为真,而在第二种情况下,它似乎评估为假,因为操作不可用。

不可否认,我对 MDX 不是很好。但是,由于大部分时间 操作可用,我相信表达式是有效的并且有效,否则操作永远不可用。 (这是我伪造条件时的情况)。

作为完整性检查,如果我将 MDX 条件设置为 TRUE,该操作始终可用,正如人们所期望的那样。如果我将 Account 切换到另一个维度,并钻到最低级别,我将无法重现这一点。在某些情况下,它似乎与最低帐户级别下的成员有某种关系。

与其他维度相比,我查看了帐户维度的设置方式,但我没有发现任何结构不同的地方。

还有什么可能导致我尚未调查的这种行为?

您的表达式将评估当前情景和总计的度量并比较两个数字:

[Scenario].[SA - Scenario].CurrentMember <> [Scenario].[SA - Scenario].[All]

尝试以下操作:

Not ([Scenario].[SA - Scenario].CurrentMember Is [Scenario].[SA - Scenario].[All])