声明:原创作品,转载时请注明文章来自SAP师太技术博客:www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4296324.html
MultiProvider、InfoSet、VirtualProvider:三者都不存数据
如果不作识别,则激活时会报错:
下面以CUBE+CUBE现演示MultiProvider:
下面去掉一个勾试试:
两边都有的维度数据会放在同一字段中存储,去掉其中某些字段的钩就表示所在底层Cube数据不会存储到所对应的上层Multi Cube中去,只有勾上了的都会存
但要注意:如果有只有一条记录 时,一定要勾上的(如果只有一个底层Cube有这个字段都不勾上话,那上层Multi Cube需要这个字段就没有意思),如下面的勾就不能去掉:
ZZJ_CUST、ZZJMAT、ZZJ_SALE相同的合并(由于转换规则中价格是取Max,所以还是5),所以显示时报表比BW显示的要少一条。
下面将多立方体中的 物料 与 销售 删除掉,继续测试:
(相同行在联接前合并了,转换里设置的价格合并方式为Max,数量为Sum)
从上面的试验可以看出,BW里显示的数据是Union的形式组织的(数据来自于两个InfoProvider:ZCU_PRI 与 ZCUB_QUT),到了报表层面显示时,用的是Full Join的方式(注:实质上还是Union,而并不是通过Join的方式将相同维度的行关联起来的,但从展示的数据行合并后报表结果来看,感觉像是通过Full Join关联,其实不然)。
注:不同Basic InfoProvider在Union之前,会将维度相同的数据合并后再进行Union