是否可以基于 icCube 中的其他平面层次结构创建层次结构(向下钻取结构)?
Is it possible to create a hierarchy (drill-down structure) based on other flat hierarchies in icCube?
我想构建尽可能深的层次结构,以便为用户 "navigation paths" 提供他们的数据。
我经常被屏蔽,因为由于源数据的限制,元数据无法正确地放入多级层次结构中。或者如果我设法解决它,我只能做一个导航路径,而不是混合级别的替代方案。
例如考虑以下成本中心结构:
业务部门 > 经理 > 部门 > 成本中心
为了强制执行此结构,我必须在 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+ 类别功能):
层级/导航路径:
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 中可以做这样的事情吗?
如果我们想要此功能用于报告,那么创建一个新的 'physical' 层次结构并不是最好的主意。在这里我将解释一个基于icCube报告的解决方案。
第一点是在服务器中定义我们的导航策略。为此,您可以使用 declared function 来负责 'branching'。作为参数,我们将采用要向下钻取的 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
一旦我们有了这个,我们就可以去报告并在任何小部件中使用这个策略:
您已经在报告中定义了一个策略,该策略在服务器中定义并且可以在任何报告中重复使用
我想构建尽可能深的层次结构,以便为用户 "navigation paths" 提供他们的数据。
我经常被屏蔽,因为由于源数据的限制,元数据无法正确地放入多级层次结构中。或者如果我设法解决它,我只能做一个导航路径,而不是混合级别的替代方案。
例如考虑以下成本中心结构: 业务部门 > 经理 > 部门 > 成本中心
为了强制执行此结构,我必须在 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+ 类别功能):
层级/导航路径:
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 中可以做这样的事情吗?
如果我们想要此功能用于报告,那么创建一个新的 'physical' 层次结构并不是最好的主意。在这里我将解释一个基于icCube报告的解决方案。
第一点是在服务器中定义我们的导航策略。为此,您可以使用 declared function 来负责 'branching'。作为参数,我们将采用要向下钻取的 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
一旦我们有了这个,我们就可以去报告并在任何小部件中使用这个策略:
您已经在报告中定义了一个策略,该策略在服务器中定义并且可以在任何报告中重复使用