繁体   English   中英

通过 SAP GUI 脚本处理 SAP 错误

[英]SAP Error handling by SAP GUI Scripting

我正在使用 SAP GUI 脚本代码通过 SAP 表单批量提交记录。 它从excel文件中一一挑选记录并提交到SAP系统中。

我的问题:

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

任何人都可以说明如何确定 SAP 是否面临错误或警告?

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

是的,你可以这样做。

在 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 将停止并且用户可以在状态栏中看到错误。 你可以做任何你想做的事情。

不幸的是,由于找不到对象,因此错误恢复 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

答案基本上是 On Error Resume Next 但您可以在此处阅读更多内容... https://scn.sap.com/thread/3270803 On Error Resume Next 单独将忽略您的所有错误。 您可以通过 If 设置条件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM