【发布时间】:2016-01-16 15:32:42
【问题描述】:
我正在使用 SAP GUI 脚本代码通过 SAP 表单提交批量记录。它从excel文件中逐条提取记录并提交到SAP系统中。
我的问题:
我想在其中包含错误处理。因此,如果在任何特定记录提交时发生任何错误,脚本不应停止。在注释字段中放置适当的消息后,它应该移动到下一行。
谁能说明如何识别 SAP 是否面临错误或警告?
如果发生错误,如何摆脱它,即如何处理并移至下一个记录提交。
【问题讨论】:
我正在使用 SAP GUI 脚本代码通过 SAP 表单提交批量记录。它从excel文件中逐条提取记录并提交到SAP系统中。
我的问题:
我想在其中包含错误处理。因此,如果在任何特定记录提交时发生任何错误,脚本不应停止。在注释字段中放置适当的消息后,它应该移动到下一行。
谁能说明如何识别 SAP 是否面临错误或警告?
如果发生错误,如何摆脱它,即如何处理并移至下一个记录提交。
【问题讨论】:
不幸的是,由于找不到对象,错误继续下一步将无济于事,
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
【讨论】:
是的,你可以这样做。
在底部查找状态栏
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 将停止并且用户可以在状态栏中看到错误。你可以做任何你想做的事。
【讨论】:
答案基本上是 On Error Resume Next,但您可以在此处阅读更多内容...https://scn.sap.com/thread/3270803。 On Error Resume Next 将忽略所有错误。可以通过If来做条件。
【讨论】: