【问题标题】:Report Action Condition Appears to intermittently Evaluate False报告操作条件出现间歇性评估错误
【发布时间】:2015-07-13 17:18:34
【问题描述】:

我有一个 SSAS 2012 多维数据集,它有一个报告操作。根据要求用户选择特定的Scenario,此操作应有条件可用。

动作本身运行良好,我遇到的问题是我为动作定义的条件仅在大部分时间起作用。

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

            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

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

动作中的条件MDX为:

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

在运行 SQL 分析器时,如果我右键单击行为正确的单元格,然后单击“显示详细信息”,则发送的 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 值,我认为这是正确的,因为我们从 Account 中选择相同的成员,只是场景不同。在一种情况下,条件似乎评估为真,而在第二种情况下,它似乎评估为假,因为操作不可用。

诚然,我不太擅长 MDX。但是,由于大部分时间该操作是可用的,我相信该表达式是有效的并且有效,否则,该操作将永远不可用。 (当我输入一个虚假的条件时就是这种情况)。

作为健全性检查,如果我将 MDX 条件设置为 TRUE,则该操作始终如预期的那样可用。如果我将Account 切换到另一个维度,并钻到最低级别,我将无法重现这一点。在某些情况下,它似乎以某种方式与最低帐户级别下的成员相关。

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

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

【问题讨论】:

    标签: sql-server sql-server-2012 ssas mdx


    【解决方案1】:

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

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

    尝试以下方法:

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

    【讨论】:

    • 这正是问题所在!做出这种改变解决了这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-22
    • 2018-11-18
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-16
    相关资源
    最近更新 更多