BPC的Drill through功能在75版本中就已经具备,简单言之,就是在BPC页面中,将上下文环境的维度成员作为参数,传递到预先设计好的Drill through地址。这个地址可以是一个普通的URL,通常会是BW Bex查询或者ECC的一个事务代码。BPC目前也只支持URL方式的跳转。
1,到Bex Query的Drill through
首先新建一个BW Query,ZDT_PLANNING,同时新建两个变量,分别对应科目编号和时间,ZDTACCT,ZDTTIME。在BPC Admin控制台中选择Drill through
Drill through是在Application级别的,所以定义时相应的维度也是这个Application中的维度,添加一个新的Drill through。当然了,首先要具备相应的Task access权限。
新建一个Drill through
在定义处填入URL,比如http: //<host>:<port>/sap/bw/bex?&query=<query_name>
因为BW Query的参数是类似于VAR_NAME_1, VAR_VALUE_EXT_1,我们就通过定义这样的参数格式将BPC的参数值传递给BW Query。例如第一个参数值就是P_ACCT的成员ID,第二个参数值是TIME的成员ID。
点击测试按钮,参数名与参数值将会出现在如下窗口中,我们可以输入两个测试用的参数值。
运行测试,就会打开BW报表,参数值就是我们在测试窗口中输入的。
新建完毕这个drill through之后,我们就在evdre中新建一张报表来测试它。
鼠标点中某一个报表单元格,然后点击菜单上的drill through,当然用户已经具备执行drill through的相关task profile。
选中单元格的上下文维度成员会作为参数传递给BW报表,打开展示如下。
2,到ECC事务的Drill through
我们将新建一个到ECC FAGLB03事务的钻取,它所需要的参数是ECC的公司代码和科目代码。由于ECC的科目编号与BPC的科目编号未必是相同的,我们可以先新建相关的主数据属性来记录匹配关系。首先为维度P_CC新建一个ECC_COMP_CODE的属性。
维护主数据的相应属性值。
接下来为维度P_ACCT维护一个ECC_ACCT的属性,对应预算科目的ECC科目代码。
维护主数据的相应属性值。
定义一个新的drill through,如下图。
输入webgui访问事务的URL,实例如下http:// <host>:<port>/sap/bc/gui/sap/its/webgui?sap-language=EN&sap-client=<Client>&~transaction=<TransactionCode>
定义代表公司代码、科目、时间的参数,注意参数名是指定的,~okcode也是一个全局的参数,必须要被传送给显示程序的。
输入测试用的参数值。
可以看到在打开的web事务中,相应的参数值被传递给了事务FAGLB03。
接下来,还是新建一个evdre报表来测试这个钻取。
点击菜单上的Drill through之后,选取刚新建的这个钻取。
所选中单元格数据的上下文维度成员属性值就被传递给了web事务,打开如下。
通过上文介绍的两种方式,我们就可以定义一些钻取到BEX报表,或者ECC事务,对于数据的有效性做了一个很好的佐证。