是否可以基于icCube中的其他平面层次结构创建层次结构(向下钻取结构)?

时间:2018-02-13 08:54:11

标签: mdx drilldown iccube

我希望尽可能多地构建层次结构,以便为用户提供导航路径"他们的数据。

通常,由于源数据限制,元数据无法正确放入多级层次结构中,因此我被阻止。或者,如果我设法解决它,我只能制作一个导航路径,而不是混合水平的替代方案。

考虑以下成本中心结构: <业务部门>经理&gt;部门&gt;成本中心

为了强制执行这种结构,我必须在ETL中做很多准备工作,以确保这些关系一直存在。

在icCube中是否可以为此(和类似)示例定义4个层次结构:

- Business Unit -> flat Business Unit -- links to fact
- Manager -> flat hierarchy Manager -- links to fact
- Department -> flat hierarchy Department -- links to fact
- Cost Center -> flat hierarchy Cost Center -- links to fact

并作为下一步,根据这些层次结构定义以下层次结构(有点类似于icCube&#39; MDX +类别功能):

层次/导航路径:

Cost Center (BMDC) 
level 1: [Business Unit]
level 2: drill down to [Manager]
level 3: drill down to [Department]
level 4: drill down to [Cost Center]

但也是:

Cost Center (MBDC)
level 1: [Manager]
level 2: [Business Unit] (that belong to this manager)
level 3: [Department] (that belong to this Business Unit)
level 4: [Cost Center] (that belong to this Department)

或像这样缓慢变化的结构:

Cost Center (Year)
level 1: [Year]
level 2: [Business Unit]
level 3: [Cost Center]

或者只是一个有用的最终用户导航路径:

Product - Customer
level 1: [Product]
level 2: [Customer]

然后,作为逻辑下一步,我想在仪表板过滤器中使用这些导航路径来显示最终用户导航的层次结构。在我看来非常强大。

在icCube中可以做到这样吗?

1 个答案:

答案 0 :(得分:3)

创建新的&#39;物理&#39;如果我们希望此功能用于报告,则层次结构不是最佳选择。在这里,我将解释基于icCube报告的解决方案。

第一点是在服务器中定义我们的导航策略。为此,您可以使用declared function来负责分支&#39;。作为参数,我们将采用我们想要向下钻取的MDX成员(_member)。

类似的东西:

CREATE FUNCTION ic3N_Simple(member_) as
     CASE
        WHEN member_.hierarchy is [Customers].[Geography] THEN [Time].[Calendar].[Year]
        WHEN member_.hierarchy is [Time].[Calendar] THEN Tail([Product].[Category],4)
        ELSE member_.children
     END

一旦我们了解了这一点,我们就可以转到报告,并在任何小部件中使用此策略:

icCube Drilldown example

您已在服务器中定义的报告中定义了一个策略,可以在任何报告中重复使用