使用VBA在Data Manager中按属性过滤-BPC 10.1

2020-09-26 17:17发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我已经阅读了其他主题...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我已经阅读了其他主题( https://archive.sap .com/discussions/thread/3312072 ),则无法通过VBA通过特定尺寸的过滤器来调用数据管理器。

由于该帖子有些过时,所以我想知道BPC 10.1中是否仍然存在此约束。

例如,我想调用一个数据管理器,其中包含要选择的维度国家/地区,并且仅显示特定区域中的那些国家(区域是维度国家/地区的财产),而不显示国家的完整列表

此致

布鲁诺

2条回答
jovirus
2020-09-26 18:08

PS。

"获取所需成员的列表(使用特殊的隐藏报告或循环维度的所有成员):"-我添加了一个新博客:

https://blogs.sap.com/2017/09/21/bpc-nw-10-vba-function-to-get-dimension-members-list-by-property-value /

或者您可以仅将OpenFilteredMemberSelector API函数用于步骤1和2:

公共子SelectMembers()
     Dim strMembers作为字符串
     Dim strMem()作为字符串
     调光温度只要
     尽可能长的Dim lngTemp1
    
     strMembers = epm.OpenFilteredMemberSelector(epm.GetActiveConnection(ThisWorkbook.Worksheets(" Sheet1"))," SOMEDIMNAME",""," SOMEPROPERTYNAME = SOMEPROPERTYVALUE",True)
     strMembers = Left(strMembers,Len(strMembers)-1)'删除最后一个";"
     strMem = Split(strMembers,";")'字符串到字符串数组
     对于lngTemp = 0到UBound(strMem)
         lngTemp1 = InStrRev(strMem(lngTemp)," [")
         strMem(lngTemp)=中(strMem(lngTemp),lngTemp1 + 1,Len(strMem(lngTemp))-lngTemp1-1)
     下一个lngTemp
     strMembers = Join(strMem,",")
     MsgBox strMembers
 结束Sub 

生成的成员strMembers的逗号分隔列表可以在ExeceuteDM调用中使用:

 strAnsw(0)="%SELECTION%P | DIMENSION:AUDIT_TRAIL | AT_BPC_INPUT | DIMENSION:CATEGORY | FH2 | DIMENSION:COMPANY_CODE |"  &strMembers&" | DIMENSION:COORDER | IO_NONE | DIMENSION:COST_CENTER | CC_NONE | DIMENSION:CURRENCY | LC | DIMENSION:FUNCTIONAL_AREA | FA_NONE | DIMENSION:PROFIT_CENTER | PC_NONE | DIMENSION:P_ACCOUNT || DIMENSION,2013.03.2013。  DIMENSION:TRADING_PARTNER | TP_NONE
 ExeceuteDM strAnsw,... 

一周热门 更多>