
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博客 ” ,链接:https://blog.itpub.net/11571477/viewspace-711824/ ,如需转载,请注明出处,否则将追究法律责任。