用于从 SAP IE03 中的设备下载附件的脚本

Script to download attachment from Equipment in SAP IE03

提问人:syed jee 提问时间:11/1/2023 最后编辑:JohnMsyed jee 更新时间:11/5/2023 访问量:49

问:

我有一个脚本可以通过“IE03”从设备下载附件。当我运行该命令时,它运行良好,直到有一个没有附件的设备,所以我想跳过它并在循环中移动到下一行。

问题出在这条线上:

session.findById("wnd[0]/titl/shellcont/shell").selectContextMenuItem "%GOS_VIEW_ATTA" )

以下是程序

Private Sub CommandButton1_Click()

' Define all variables

Dim SapGuiAuto, Application, Connection, session As Object

Set SapGuiAuto = GetObject("SAPGUI")

Set Application = SapGuiAuto.GetScriptingEngine

Set Connection = Application.Children(0)

Set session = Connection.Children(0)

Dim i, start_line, finish_line As Integer

start_line = 64

finish_line = 364

' Start processing

For i = start_line To finish_line ' start of loop

session.findById("wnd[0]").maximize

session.findById("wnd[0]/tbar[0]/okcd").Text = "/NIE03"

session.findById("wnd[0]").sendVKey 0

session.findById("wnd[0]/usr/ctxtRM63E-EQUNR").Text = Cells(i, 1).Value

session.findById("wnd[0]").sendVKey 0

session.findById("wnd[0]/titl/shellcont/shell").pressContextButton "%GOS_TOOLBOX"

session.findById("wnd[0]/titl/shellcont/shell").selectContextMenuItem "%GOS_VIEW_ATTA"

session.findById("wnd[1]/usr/cntlCONTAINER_0100/shellcont/shell").selectedRows = "0"

session.findById("wnd[1]/usr/cntlCONTAINER_0100/shellcont/shell").pressToolbarButton "%ATTA_EXPORT"

session.findById("wnd[1]/usr/ctxtDY_PATH").Text = "C:\Users\GGC8045\OneDrive - MDLZ\desktop\Chicago 8364\DOCUMENTS"

session.findById("wnd[1]/usr/ctxtDY_FILENAME").Text = Cells(i, 1).Value

session.findById("wnd[1]/usr/ctxtDY_FILENAME").caretPosition = 8

session.findById("wnd[1]/tbar[0]/btn[0]").press

session.findById("wnd[1]/tbar[0]/btn[12]").press

session.findById("wnd[0]").sendVKey 12

session.findById("wnd[0]").sendVKey 12

Cells(i, 5).Value = "Done at " & Now()

Next i ' end of loop

End Sub
Excel VBA SAP-GUI

评论

0赞 easleyfixed 11/1/2023
如果你能读到你点击的那个sap标签,它就不是这个问题的正确标签,看看你是否能找到正确的标签,以便通知专门从事此工作的人。
0赞 devlin carnate 11/1/2023
一个好的开始是用你正在使用的编码语言(VB?)来标记它。此外,设置代码的格式。从你对问题的描述来看,听起来你只需要使用一个条件语句来检查附件是否存在。如果您的代码展示了您这样做的最佳尝试,那将会很有帮助......
0赞 Tim Williams 11/1/2023
您的代码遇到的具体“问题”是什么?当没有执着时,实际上会发生什么
0赞 syed jee 11/1/2023
@TimWilliams当没有附加时,此警报会出现“运行时错误'619'”,程序在此处停止 session.findById(“wnd[1]/usr/cntlCONTAINER_0100/shellcont/shell”).selectedRows = “0”
0赞 syed jee 11/1/2023
@TimWilliams实际上,我想从所有设备下载所有附件,但有些设备没有附件,并且在SAP中的那个位置,它无法进入下一步

答: 暂无答案