SAP GUI Scripting处理SAP错误

时间:2015-10-18 06:09:29

标签: excel excel-vba scripting sap vba

我使用SAP GUI Scripting代码通过SAP表单提交批量记录。它从excel文件中逐个选择记录并在SAP系统中提交。

我的问题:

我想在其中包含错误处理。因此,如果在任何特定记录提交时发生任何错误,脚本就不应该停止。在评论字段中输入适当的消息后,它应该移动到下一行。

有人可以说明如何识别SAP是否面临一些错误或警告?

如果出现错误,如何摆脱它,即如何处理它并转移到下一个记录提交。

3 个答案:

答案 0 :(得分:1)

是的,你可以做到。

在botton

中查找状态栏

enter image description here

SAP中的GUI脚本帮助部分非常有用,它将非常详细地解释您的事情。

GuiStatusBarObject --> Members --> Message Type

enter image description here

我们可以根据您的需要使用这些属性,如果您需要移动,停止或通知用户您可以使用这些消息类型并相应地工作。

如果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。

制定条件