And*_*ASM 31
这一切都取决于您对SAP系统的访问权限.导出数据的ABAP程序和/或宏可以调用的RFC直接获取数据或让SAP创建文件可能是最好的.
然而,作为一般规则,寻求此类答案的人们正在寻找一种直接的解决方案,不需要他们的IT部门花费数月时间来定制他们的SAP系统.
在这种情况下,您可能希望使用SAP GUI Scripting.SAP GUI脚本允许您以与自动化Excel相同的方式自动化Windows SAP GUI.实际上,您可以直接从Excel宏调用SAP GUI.在这里阅读更多内容.SAP GUI有一个像Excel一样的宏录制工具.它在VBScript中记录宏,它几乎与Excel VBA相同,通常可以直接复制并粘贴到Excel宏中.
这是一个基于我有权访问的SAP系统的简单示例.
Public Sub SimpleSAPExport()
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) 'Get the first system that is currently connected
Set session = SAPCon.Children(0) 'Get the first session (window) on that connection
'Start the transaction to view a table
session.StartTransaction "SE16"
'Select table T001
session.findById("wnd[0]/usr/ctxtDATABROWSE-TABLENAME").Text = "T001"
session.findById("wnd[0]/tbar[1]/btn[7]").Press
'Set our selection criteria
session.findById("wnd[0]/usr/txtMAX_SEL").text = "2"
session.findById("wnd[0]/tbar[1]/btn[8]").press
'Click the export to file button
session.findById("wnd[0]/tbar[1]/btn[45]").press
'Choose the export format
session.findById("wnd[1]/usr/subSUBSCREEN_STEPLOOP:SAPLSPO5:0150/sub:SAPLSPO5:0150/radSPOPLI-SELFLAG[1,0]").select
session.findById("wnd[1]/tbar[0]/btn[0]").press
'Choose the export filename
session.findById("wnd[1]/usr/ctxtDY_FILENAME").text = "test.txt"
session.findById("wnd[1]/usr/ctxtDY_PATH").text = "C:\Temp\"
'Export the file
session.findById("wnd[1]/tbar[0]/btn[0]").press
End Sub
Run Code Online (Sandbox Code Playgroud)
要帮助查找元素的名称,wnd[1]/tbar[0]/btn[0]
可以使用脚本录制.单击自定义本地布局按钮,它可能看起来像这样:
然后找到脚本录制和播放菜单项.
在该More
按钮内,您可以查看/更改记录VB脚本的文件.输出格式有点乱,它记录选择文本,在文本字段内单击等内容.
如果直接复制到VBA宏中,则提供的脚本应该有效.它使用后期绑定,该行Set SapGuiAuto = GetObject("SAPGUI")
定义了SapGuiAuto对象.
但是,如果要使用早期绑定,以便VBA编辑器可能显示正在使用的对象的属性和方法,则需要sapfewse.ocx
在SAP GUI安装文件夹中添加引用.
归档时间: |
|
查看次数: |
158071 次 |
最近记录: |