如何使用 SAP GUI 脚本自动禁用 Excel 显示

How to disable the Excel display with SAP GUI Scripting automatically

我最近发现了 SAP GUI 脚本。首先,我开始记录简单的交易,因为我想测试是否可以在不同 windows 和 SAP 用户的不同 PC 上执行脚本。在测试阶段我遇到了一个更大的问题。

在我公司,每个用户都有 Office 集成,它允许您在 SAP 中显示(f.e。利润中心报告为)Excel 文档。此显示设置永久保存。

现在的主要问题是,如果您在 Excel 显示停用的情况下录制脚本,而一些其他用户在 Excel 显示激活的情况下执行脚本,脚本将不会处理.

通常我通过以下方式手动禁用 Excel 显示设置:

我尝试用 SAP GUI 脚本记录器记录这个过程,但它没有记录整个过程。

只记录这个

session.findById("wnd[0]").maximize
session.findById("wnd[0]/mbar/menu[4]/menu[2]/menu[3]").select

脚本不记录参数值的变化

有没有办法(通过添加代码行等)将 Excel 显示设置从活动状态自动禁用为非活动状态?

SAP GUI 脚本记录器仅在第一种模式下记录命令。命令后

session.findById("wnd[0]/mbar/menu[4]/menu[2]/menu[3]").select

开启新模式。

但您也可以直接开始交易并保持第一种模式。

例如:

session.findById("wnd[0]/tbar[0]/okcd").text = "/nsu3"
session.findById("wnd[0]").sendVKey 0

既然你知道了,问题就可以解决如下:

session.findById("wnd[0]").maximize
session.findById("wnd[0]/tbar[0]/okcd").text = "/nsu3"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/tabsTABSTRIP1/tabpPARAM").select
session.findById("wnd[0]/usr/tabsTABSTRIP1/tabpPARAM/ssubMAINAREA:SAPLSUID_MAINTENANCE:1104/cntlG_PARAMETER_CONTAINER/shellcont/shell").pressToolbarButton "&FIND"
session.findById("wnd[1]/usr/chkGS_SEARCH-EXACT_WORD").selected = true
session.findById("wnd[1]/usr/txtGS_SEARCH-VALUE").text = "G_RW_DOCUMENT_TYPE"
session.findById("wnd[1]/usr/chkGS_SEARCH-EXACT_WORD").setFocus
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[1]").close

myRow = session.findById("wnd[0]/usr/tabsTABSTRIP1/tabpPARAM/ssubMAINAREA:SAPLSUID_MAINTENANCE:1104/cntlG_PARAMETER_CONTAINER/shellcont/shell").currentCellRow
session.findById("wnd[0]/usr/tabsTABSTRIP1/tabpPARAM/ssubMAINAREA:SAPLSUID_MAINTENANCE:1104/cntlG_PARAMETER_CONTAINER/shellcont/shell").modifyCell myRow,"PARVA","0"      'instead of "XLS"
session.findById("wnd[0]/usr/tabsTABSTRIP1/tabpPARAM/ssubMAINAREA:SAPLSUID_MAINTENANCE:1104/cntlG_PARAMETER_CONTAINER/shellcont/shell").currentCellColumn = "PARVA"
session.findById("wnd[0]/tbar[0]/btn[11]").press

问候,ScriptMan