需求:如何在BW中做到在采购定单报表上显示创建者和采购员呢?
在系统中都有一张表(如Usertable)存储着公司所有员工的信息,都有员工号(如EmployeeID)来惟一决定一个员工。在各个事务的数据表上存着的是EmployeeID,而非真实姓名,但报表往往需要显示的是真实名字。自己写SQL很容易,将Usertable另起一个别名,关联采购单的创建者,再另起一个别名关联采购单的采购员就可以实现了。
但在BW中这种问题是如何实现的呢?早就有耳闻用信息对象的参考特征可以实现,但没理清其中的逻辑。昨晚跟同事讨论了一下,她启发了我,我形成了一个思路,今天试了一下,果然神马。
思路如下:
1、创建一上信息对象存储所有员工的信息,如ZUSER,其中有对应的属性,文本信息。
2、创建采购单上的创建者对应的IO,如ZCREATOR,参考特征:ZUSER。
3、创建采购单上的创建者对应的IO,如ZBUYER,参考特征:ZUSER。
5、加载数据时,创建者和采购员加载其员工号。即BW这边DSO或CUBE存储的是员工的EmployeeID。
6、在Query Designer 中,可以根据要求来显示特征(ZCREATOR,ZBUYER)的代码或文本。
后来想想,其实参考特征的原理跟SQL一样,就如ZCREATOR,它参考特征ZUSER,表示它们共有一张表,ZCREATOR只是ZUSER的一个别名而已。
殊途同归......。