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

3
我希望能够尽可能地构建层次结构,以为用户提供“导航路径”来查找他们的数据。但由于源数据约束,元数据无法正确放置到多级层次结构中,因此我经常会遇到阻碍。或者即使我设法解决了这个问题,也只能创建一条导航路径而不能混合不同级别的路径。
例如,考虑以下成本中心结构:业务单元>经理>部门>成本中心。
为了强制执行这个结构,我必须在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的MDX+ Category函数),定义以下层次结构:

层次结构/导航路径:

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个回答

3
创建一个新的“物理”层次结构并不是我们想要用于报告的最佳选择。在这里,我将解释一种基于icCube报告的解决方案。
第一步是在服务器上定义我们的导航策略。为此,您可以使用已声明函数,该函数将负责“分支”。作为参数,我们将采用我们想要钻取的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

在报告中,您定义了一种策略,该策略在服务器中定义,并可在任何报告中重复使用。


谢谢,这是一个非常好的解决方案。我希望将其应用于MDX过滤器(层次结构)和应用程序菜单中的全局过滤器。目前来看,这个方案可以使用。 - Arthur

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接