SAP BPC表单中使用VBA函数

『运维心得』BPC-EPM-AddIn专家看过来 最近在搞BPC,安装Office所需的EPM-AddIn的过程中,碰到了一些奇怪的问题。 查了BPC专家提供的安装说明文档,文档里要么没有提到我们碰到的问题,要么就是说framework版本不一致,需要重新安装,但是无数次安装后,始终无法找到解决方案。 最后,通过一个意外的小彩蛋,找到了一些解决办法,一一罗列如下,基本可以解决BPC在安装过程中碰到的所有问题,节约大量重新安装和测试的时间,也请BPC专家们批评指正。 阅读详情

EvMNU 语法

EvMNU(MacroName,DisplayName,Parameter)

位置:

  • MacroName 是由“计划与合并”提供的菜单命令,例如 OPENFILESETCVMNU_eSUBMIT

  • DisplayName 是用户点击以启动菜单任务的文本。显示名称为可选。

  • 参数是宏参数。某些宏需要诸如文件名称或成员名称等信息才能正常运行。

示例:

  • 将当前视图设置为特定维度的特定成员。在此示例中没有显示的名称。

    EvMNU(“SETCV”,,”ENTITY=SalesUS;TIME=2004.JAN”)

  • 创建一个名为〖分析〗的超链接,可以打开 A01Entity.xls 工作簿:

    EvMNU("OPENFILE","Analysis",,"/REPORTS/WIZARD/Reports/Wizard/Local/Analysis/A01Entity.xlt")

  • 使用 & 运算符将多个 EvMNU 函数串联在一起。您可以按如下方式为您正在打开的文件设置当前视图:

    =EVMNU("SETCV",,"CATEGORY=PLAN;TIME=2005.Q4")&EVMNU("OPENFILE","open file","/REPORTS/WIZARD/Local/Analysis/A01Entity.xlt")

大多数“计划与合并”命令都以前缀 MNU_ 开头。但是,以下命令也可以使用:

  • OPENFILE

    打开一个本地文件。

    缺省为“C:/Documents and Settings/<Local user>/My Documents/PC_NW/<Logon user>/AppInfo/<appset>/<app>/eExcel”目录,除非定义了完整路径。

    EvMNU(OPENFILE,”optional text”,{path})

    例如,evMNU(“OPENFILE”,,"c:/Documents and Settings/<Local user>/My Documents/PC_NW/<Logon user>/AppInfo/<appset>/<app>/eExcel")

  • CLOSEEXCEL

    关闭 Microsoft Excel。

    EvMNU(CLOSEEXCEL,,)

  • OPENWEBFOLDER

    打开 /<appset/<app>/eExcel 文件夹。您不能更改缺省路径。

    EvMNU(OPENWEBFOLDER,”optional text”)

  • SETCV

    设置当前视图。

    EvMNU(SETCV,,dimension=member)

EVMNU的使用方法是在EXCEL中的单元格内输入=EvMNU(MacroName,DisplayName,Parameter) ,然后双击或单击单元格就会执行MacroName对应的宏.

 

另外一种使用菜单命令的方法是,拖一个表单按钮到excel中,然后为按钮指定宏为MNU_eXXXX_XXXXX,这样点击按钮MNU菜单命令就会被执行.

有的时候我们可能会需要在VBA中调用MNU菜单命令,比如先进行一些针对单元格的校验然后再执行发送数据命令,这种情况下,我们需要在VBA代码中输入语句Application.Run "mnu_{command}".

如调用BUDGET2COST脚本:

Application.Run "MNU_eData_SELECTPACKAGE", "BUDGET2COST", "/CPMB/DEFAULT_FORMULAS", "company", "Data Management"


BPC还提供了几个事件函数,类似于MFC中的事件响应函数:

解决方案提供了以下 VBA 函数,用于执行 MNU 命令之前或之后的命令:

  • BEFORE_CHANGECVW

    您可以使用 BEFORE_CHANGECVW 函数在更改当前视图前执行定制操作。

    Option Explicit

    Function BEFORE_CHANGECVW(Argument As String)

    'Process content

    MsgBox Argument

    BEFORE_CHANGECVW = True

    End Function

  • AFTER_CHANGECVW

    您可以使用 AFTER_CHANGECVW 函数在更改当前视图后执行定制操作。

    Function AFTER_CHANGECVW(Argument As String)

    MsgBox Argument

    AFTER_CHANGECVW = True

    End Function

  • BEFORE_REFRESH

    您可以使用 BEFORE_REFRESH 函数在用户更改当前视图后执行定制操作。

    Function BEFORE_REFRESH(Argument As String)

    MsgBox Argument

    BEFORE_REFRESH = True

    End Function

  • AFTER_REFRESH

    您可以使用 AFTER_REFRESH 函数在 Excel 界面刷新数据后执行定制操作。

    Function AFTER_REFRESH(Argument As String)

    MsgBox Argument

    AFTER_REFRESH = True

    End Function

  • BEFORE_SEND

    您可以使用 BEFORE_SEND 函数在 Excel 界面发送数据前执行定制操作。

    Function BEFORE_SEND(Argument As String)

    MsgBox Argument

    BEFORE_SEND = True

    End Function

  • AFTER_SEND

    您可以使用 AFTER_SEND 函数在 Excel 界面发送数据后执行定制操作。

    Function AFTER_SEND(Argument As String)

    MsgBox Argument

    AFTER_SEND = True

    End Function

  • BEFORE_EXPAND

    除了用于联机报告,该事件还可以用于在批处理开始时执行定制代码,例如帐簿发布或脱机分配。

    Function BEFORE_EXPAND(Argument As String)

    MsgBox Argument

SAP BPC顾问核心能力与实战经验分享 SAP BPC(Business Planning and Consolidation)作为企业财务数字化转型的核心工具,其顾问需要兼具财务专业素养与技术实现能力。从技术原理看,BPC通过维度建模、业务规则引擎和数据集成实现预算编制与合并报表自动化。在工程实践中,顾问需掌握Logic Script编程、BAdI增强开发等核心技术,同时应对数据质量治理、系统性能优化等挑战。典型应用场景包括制造业弹性预算调整、跨国集团合并报表等,其中Excel模板兼容性处理和AGGR函数性能调优成为高频痛点。随着SAP S/4 阅读详情

相关推荐

SAP GUI脚本+VBA自动化避坑指南:从录制脚本到稳定运行的5个关键步骤

本文详细介绍了SAP GUI脚本与VBA自动化开发的5个关键步骤,从录制脚本到稳定运行的全流程避坑指南。内容涵盖模块化设计、动态元素定位、错误处理框架等核心技巧,帮助用户实现高效稳定的SAP自动化操作,特别适合需要批量处理SAP数据的Excel高级用户。

weixin_42628688的博客 367

SAP BPC的预算与合并报表解决方案

内容概要:SAP BPC是针对大规模企业管理而定制的企业绩效管理系统(EPM)的关键组件,其功能涵盖了全面预算管理和合并报表两大领域。 文档中阐述了如何构建包含战略计划、目标制定和监测在内的完整预算编制流程,并讨论了系统在多层集团环境下进行数据整合的能力。 它还特别强调了SAP BPC与不同核算系统的对接能力,以及在预算控制方面的作用。 另外,针对合并报表部分提出了高效的实施方案和技术支持措施。

SAP GUI脚本+VBA避坑指南:从录制到稳定运行,我踩过的那些坑

本文详细介绍了SAP GUI脚本与VBA结合的自动化开发实践,从环境配置到企业级应用开发,涵盖脚本录制、对象连接、动态元素定位等核心技巧。特别针对SAP GUI和VBA自动化中的常见陷阱提供解决方案,帮助开发者实现高效稳定的ERP系统自动化流程,大幅提升企业运营效率。

weixin_30765577的博客 123

SAP GUI 脚本 VBA

在Excel中用VBA编写SAP GUI脚本,实现办公自动化

qq_43156252的博客 1万+

VBA 操作SAP

一、吐槽 之前曾用autoit操作SAP,但那样的话,用户的界面被autoit控制,就不能随便乱动。因此想做一个静态连接SAP,然后读取,操作SAP的程序。为后期自动化做准备,找了很多资料,尝试了不少语言,最后选择了VBA。 在我看来SAP是一个数据库管理系统,记得20年前刚解除计算机,曾学了一点foxbase,做过一个图书馆管理系统。当然SAP很复杂,因为SAP本身有自己的ABAP语言(之...

yuwanfei的博客 1万+

VBA直连SAP RFC 接口实例

VBA 调用 SAP API的RFC函数:RFC_READ_TABLE。

秋成的博客 1814

VBA驱动SAP GUI自动化:查找页面元素FindAllByName

之所以这里用到FindAllByName()而不是我们熟悉的FindById()方法,是因为当我们使用FindById()去查找某个页面中没有的元素时,程序会直接报错异常,而VBA的异常响应能力天生不足,使用FindAllByName()则完全不会存在这个问题。从上图中可以看到,FindAllByName()方法接收两个参数,一个是元素的Name,另一个是元素的Type,而返回值是一个GuiComponentCollection对象,相当于一个数组。举个小爬在实际工作中碰到的例子。我们可以点击工具中的。

sinat_40572875的博客 1760

[转]SAP BPC表单使用VBA函数

EvMNU 语法 EvMNU(MacroName,DisplayName,Parameter) 位置: MacroName 是由“计划与合并”提供的菜单命令,例如 OPENFILE、SETCV 和 MNU_e...

cmfqca2919的博客 574

BPC EPM表单常规设置

Excel 右侧文件-选项-加载项- 管理下拉选择“COM加载项”,选中 EPM add-in for Microsoft Office / Analysis 点击删除,关闭excel。5.1 下载安装包后,如果已经安装过EPM插件,需先删除插件再重新安装,删除参考上文4.1(双击安装包 Deselect all后next即可卸载)。完成以上安装后,打开Excel,如无EPM及AO菜单项(见下图),则需要修改COM加载项,否则跳过此步骤。

weixin_44488640的博客 900

SAP BPC最佳实践-BPC安装及配置的常见问题

一,BPC安装的环境要求: A. 服务器安装要求 ABAP应用服务器 -NW BI 7.0EHP1 -任何NW所支持的数据库系统 -任何NW所支持的操作系统 .NET应用服务器 -操作系统:Windows Server2003,Enterprise Edition(32-bit x86), Windo...

weixin_34124651的博客 1101

使用EXCEL VBA调用SAPfunction:BAPI_GOODSMVT_GETITEMS

但是如果开发把exports里面的入参做成和表类似的结构,就没有成功过了,不知道是不是exports不支持和tables一样的写法,毕竟我也没有找到标准function这么写的,只能靠猜测了。这里有个很有意思的地方,写成ch.value(y,sheets("items").cells(2,s))就报错,把其中sheets("items").cells(2,s)先赋给a,再写成ch.value(y,a)就不报错。“4.显示到EXCEL”的部分,这部分和与SAP的连接无关,主要是VBA的写法。

weixin_56024187的博客 1004

VBA调用SAP RFC实现数据读取&写入

VBA调用SAP RFC实现数据读取&写入

willieyuan的博客 4336

SAP接口编程案例 - VBA批量更新销售订单定价类型

碰到一个需求,需要对销售订单的定价类型进行批量更新,对这种临时批量处理,考虑到数据源一般放在 Excel 中,使用 VBA 来调用 BAPI 实现不失为一种快捷的方式。

王敏的专栏 2155

EXCEL技术VBA一键获取SAP系统数据

1.第一步 在SAP系统建立一个可远程调用的函数RFC 2.第二步 就是在EXCEL里面的操作了 找到开发工具 点击Visual Basic (切记EXCEL要启用宏 在信任中心里面) 3.第三步 在EXCEL里面写代码 格式差不多大同小异 Sub 点击刷新() '设置登录信息 Set R3 = CreateObject(“SAP.Functions”) R3.Connection.Syst...

weixin_42808203的博客 1万+

BPC中常用的VBA代码(喜欢请点赞)

Range("B1:Z23").PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=True, Transpose:=False 进行粘贴操作。Range(API.GetDataBottomRightCell(ActiveSheet, "000")).Row 获取EPM报表右下单元格行数。Cells(47, 1).Address(False, False) 值为A47。复制粘贴之后需要吧剪切状态取消掉 用到。

weixin_44488640的博客 439

SAP资产负债表实现方案探索 - 基于 VBA 自定义函数方法

本篇接着SAP资产负债表实现方案探索 - 基于 Excel-DNA 自定义函数方法 这篇博文,继续介绍通过 VBA 编写自定义函数来实现资产负债表的方法。在上一篇文章中,整个解决方案的思路可以分为两个步骤:(1)SAP 提供 Restful Service,允许外部获取 json 格式的科目余额表;(2) Excel 通过自定义函数从 Restful Service 中获取所需要的数据。 因为上一篇已经介绍了在 SAP 中如何提供 SAP Restful 服务,这里就不重复了,直接从在 Excel 中通过

王敏的专栏 1727
上一篇: SAP BPC330教程学习(三)
下一篇: 如何将Windows Server域(AD活动目录)中的用户导出并导入至Outlook2010通讯簿
xingzhian
博客等级 码龄22年 21粉丝 32原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值