我正在使用SAP GUI脚本代码通过SAP表单提交批量记录。它从excel文件中逐条提取记录,并在SAP系统中提交。
我的问题是:
我想在其中包含错误处理功能。因此,如果在提交任何特定记录时出现任何错误,脚本都不会停止。它应该移动到下一行后,将适当的信息放入注释字段。
有没有人能说明一下如何识别SAP是否面临一些错误或警告?
如果发生错误,如何摆脱它,即如何处理它,并移动到下一个记录提交。
发布于 2017-04-05 20:23:34
是的,你可以这样做。
在botton中查找状态栏

SAP中的GUI脚本帮助部分非常有帮助,它将非常详细地向您解释事情。
GuiStatusBarObject --> Members --> Message Type

我们可以根据您的需要使用这些属性,如果您需要下一步移动,停止或通知用户,您可以使用这些消息类型并相应地工作。
如果错误发生在SAP本身,SAP脚本不会抛出错误,它只会在找不到元素或其他问题时抛出错误。
示例代码:
Public Sub get_status_bar_value_exit_if_Error()
Dim usr_resp As String
If (session.findById("wnd[0]/sbar").messagetype = "E" Or session.findById("wnd[0]/sbar").messagetype = "W") Then
usr_resp = MsgBox(session.findById("wnd[0]/sbar").Text & Chr(13) & "Show the Error in SAP ?", vbYesNo)
If usr_resp = vbYes Then
Else
Call go_to_Sap_home
End If
End
End If
End Sub在这里,如果用户选择不在SAP中看到错误,我选择退出当前任务并返回主页,否则SAP将暂停,用户可以在状态栏中看到错误。你可以做任何你想做的事。
发布于 2020-08-15 01:33:45
不幸的是,由于错误恢复next不能找到对象的事实,
If (session.findById("wnd[0]/sbar").messagetype = "E" Or session.findById("wnd[0]/sbar").messagetype = "W") Then
usr_resp = MsgBox(session.findById("wnd[0]/sbar").Text & Chr(13) & "Show the Error in SAP ?", vbYesNo)
If usr_resp = vbYes Then
Else
Call go_to_Sap_home
End If
this helped发布于 2016-02-23 11:54:38
答案基本上是Error Resume Next,但你可以在这里阅读更多...https://scn.sap.com/thread/3270803。On Error Resume Next本身将忽略所有错误。您可以通过If创建条件。
https://stackoverflow.com/questions/33194893
复制相似问题