PerformancePoint Service 时间智能公式与CUBE的时间维度的异常笔记
公司里有个SQL Server cube,然后基于Sharepoint 2010 的PerformancePoint Service弄个个业务智能中心网站。应该说展示效果还可以的。
但是在使用时间智能公式的时候,出现了一个问题。
时间智能公式用day的时候,返回:无结果。
但是year和month是可以的,如下图:
所有的时间维度的层级结构关联关系设置都是正确的,如图:
但是day公式不能用的话,在PPS上做同比和环比就比较麻烦,当然你也可以写MDX。找了很久原因,我们还有另外一个成本和费用的CUBE,那个CUBE的时间智能公式都是正常可以用的。感觉非常奇怪。
搞了一个晚上,发现是两个CUBE的时间维度的组织方式不一样。在取不到day的Cube中,时间维度的聚合只包含事实表中有的时间,也就是说如果事实表中某天没有事实数据,那么聚合后不会在时间维度中显示这一天。而且我们的ETL是0点同步的,然后处理Cube,白天的时候肯定不会有当日的数据。所以公式关键字day取不到信息。
但是我觉得这个可能有问题,如果这样不行,那么时间智能公式使用上就有限制,比如做数据同比的时候,碰上2月份的话就有问题,如果今天正好是2月29日,那么同比去年同一天的话,这样使用公式肯定会出错的。但是我还没试过。
暂时我外挂了一个独立时间维度表,里面包含了2001-2020年所有的年季月日信息,之前的问题解决了。
这个问题昨天在微软开了case,今天被靠知PPS相关的问题在国内没有技术支持,要转到国外去。昨天运气好,让我想到了原因。
来,看一下效果吧:
PerformancePoint 记分卡 KPI指示器
PerformancePoint 分解树: