excel 使用SAP GUI脚本处理SAP GUI中的错误

esyap4oy  于 2023-06-25  发布在  其他
关注(0)|答案(3)|浏览(208)

我正在使用SAP GUI脚本代码通过SAP表单进行批量记录提交。它从Excel文件中逐个提取记录并提交到SAP系统中。
我的问题:
我想把错误处理包括进去。因此,如果在任何特定记录提交时发生任何错误,脚本不应停止。在注解字段中放置适当的消息后,它应该移动到下一行。
有没有人能告诉我们如何识别SAP GUI是否面临一些错误或警告?
如果发生错误,如何摆脱它,即如何处理并转移到下一个记录提交?

du7egjpx

du7egjpx1#

是的,你可以这么做。
在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将停止,用户可以看到错误的状态栏。你可以做任何你想做的事

mccptt67

mccptt672#

不幸的是在错误时恢复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
bkhjykvo

bkhjykvo3#

答案基本上是在错误恢复下一个,但你可以在这里阅读更多... https://scn.sap.com/thread/3270803 . On Error Resume Next会忽略所有错误。你可以通过If来设置条件。

相关问题