我使用SAP GUI Scripting代码通过SAP表单提交批量记录。它从excel文件中逐个选择记录并在SAP系统中提交。
我的问题:
我想在其中包含错误处理。因此,如果在任何特定记录提交时发生任何错误,脚本就不应该停止。在评论字段中输入适当的消息后,它应该移动到下一行。
有人可以说明如何识别SAP是否面临一些错误或警告?
如果出现错误,如何摆脱它,即如何处理它并转移到下一个记录提交。
答案 0 :(得分:1)
是的,你可以做到。
在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将暂停,用户可以在状态栏中看到错误。你可以做任何你想做的事。
答案 1 :(得分:0)
不幸的是,由于找不到对象,因此下次恢复错误将无济于事,
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
答案 2 :(得分:-2)
答案基本上是On Error Resume Next,但你可以在这里阅读更多内容...... https://scn.sap.com/thread/3270803。 On Error Resume Next将忽略所有错误。你可以通过If。
制定条件