BPC的Member Access Profile只能针对某一个维度的某些成员赋予权限控制,如果用户可以访问地区维度的美国和欧洲,以及账户维度的个人费用和广告费用,那么他就可以看到美国的广告费用以及欧洲的个人费用。而这是我们需求中所不允许的。
下面将从BW端新建SQE的BADI讲起,直到在BPC中新建report来检查是否实现了此功能。
一、登录BW端,进入SE18界面:
二、显示这个BADI的定义,展开定义树:
三、创建此BADI定义的一个实现体:
四、输入enhancement implementation的名字和描述:
五、此时,需要指定如需这个BADI要传输则开发包是什么,或者不参与传输时作为local object存储:
六、指定BADI implementation的名字、描述及实现类,同样也要指定开发包:
七、现在就新建出了一个BADI implementation,但是还没有激活的内容:
八、打开BADI implementation的菜单树:
九、双击下面的"Filter Val":
十、选中编辑按钮,然后点击"Combination":
十一、选中显示的两个参数:
十二、双击"Application_ID"这一行,然后输入filter的值:
十三、然后为"APPSET_ID"输入filter值,保存并激活已经更改的这些对象;
十四、在BADI implementation中双击"Implementing Class":
十五、双击implementing class的名字:
十六、选择编辑这个类,然后双击"POST_PROCESS"方法名,加入实现方法代码:
具体代码在附件中,激活刚刚新建的类。接下来就可以在BPC的报表中看到如上需求的结果了。
/Files/libihui422/SQE_BADI_SAMPLE.txt
一、为用户创建两个Member Access Profile,一个叫US_MAP,可以访问地区维度的US和账户维度的个人费用(CE0004000)。另一个叫EMEA_MAP,可以访问地区维度的EMEA和账户维度的广告费用(CE0004200):
二、先展示一下当我们前面新建的SQE BADI没有生效时,两条规则对于同一个用户是叠加的,用户可以读取到US和EMEA里面两个账户的所有值:
三、当新建的SQE BADI生效后,报表内容就改变了:
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11571477/viewspace-711824/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/11571477/viewspace-711824/