excel - 从 VBA 返回 SAP 初始屏幕
问题描述
我有一个使用内置 sap 脚本创建的 SAP 代码的 excel 宏。它工作正常,但我需要在不同的表上多次执行这些步骤。我遇到的问题是我不能简单地触发第一步,因为当时给定屏幕的参考无效,首先我需要获取初始屏幕才能这样做,但我不知道该怎么做那。
我试图记录 SAP Gui 的“返回”动作,但这些动作似乎每次都不相同,我不能依赖它们。在 sap 相关网站上,我找到了如何引用屏幕,但我不知道如何在我的代码中使用它。其中一种方法是: session.findById("wnd[0]").Name
Sub SimpleSAPExport()
' attach to sap session
Set SapGuiAuto = GetObject("SAPGUI") 'Get the SAP GUI Scripting object
Set SAPApp = SapGuiAuto.GetScriptingEngine 'Get the currently running SAP
GUI Set SAPCon = SAPApp.Children(0)
Set session = SAPCon.Children(0)
If Not IsObject(session) Then MsgBox "nok"
End If
'start transactiom
session.FindById("wnd[0]/tbar[0]/okcd").Text = "BPMDG/UTL_BROWSER"
session.FindById("wnd[0]/tbar[0]/btn[0]").Press
session.FindById("wnd[0]").Maximize
session.FindById("wnd[0]/usr/ctxtP_TABNAM").Text = "ska1"
'.
'.
session.FindById("wnd[1]/usr/ctxtDY_PATH").Text = "c:\vba\sapgui\"
session.FindById("wnd[1]/usr/ctxtDY_FILENAME").Text = "ska1-oa01.txt"
' would need to go start transaction-part
解决方案
您可以尝试以下方法:
...
session.FindById("wnd[0]/tbar[0]/okcd").Text = "/nBPMDG/UTL_BROWSER"
session.FindById("wnd[0]/tbar[0]/btn[0]").Press
...
问候, ScriptMan
推荐阅读
- parse-platform - Parse Cloud 函数从 Parse Server 2.8.4 升级到 3.0+ 后返回空对象
- docker - 如果容器已经存在,则需要 pod
- r - 如何使用 DAAG 包在 R 中执行重复的 k 折交叉验证?
- linux - sd_journal_print 未正确记录
- apache - Apache 拒绝连接
- javascript - 为什么选择选项没有显示数字?
- blazor-server-side - 未找到 Blazor 路线 - 如何前往站点基地?
- spring-boot - Spring Boot + WebFlux。如何显示一个简单的 index.jsp?
- javascript - 运行反应应用程序时出现 Chokidar UNKNOWN 错误
- mongodb - 在 webapp 中嵌入 CSV 文件或连接到 MongoDB 更好吗?