簡體   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