2013-01-08 51 views
1

我使用RFC_READ_TABLE向我的軟件輸出數據,但有很多次,當RFC返回和異常時,它不返回描述。例如,搜索不存在的表或查詢大量列。它始終返回相同的標題RfcAbapException沒有詳細信息,也沒有InnerException。RFC異常返回空字符串C#

我的項目中引用的SAP dll版本爲2.0。

編輯:

所以問題是:爲什麼不返回一個異常的細節?

+0

要糾正這一點。但問題是:爲什麼不返回一個異常細節? –

+0

你必須告訴我們代碼。 – Hogan

+0

如果在SAP DLL中引發異常,我將如何向您展示代碼.... –

回答

1

據我所知,RfcAbapException中沒有描述。而是返回可以解碼的代碼。像這樣:

catch (RfcAbapException ex) 
    { 
    switch (ex.AbapException) 
    { 
    case (SAPProxy1.No_Function_Found): 
     MessageBox.Show("abap call failed because no function found"); 
     break; 
    case(SAPProxy1.Nothing_Specified): 
     MessageBox.Show("abap call failed because nothing specified"); 
     break; 
    default: 
     MessageBox.Show("Some unknown abap error occurred (" 
         +ex.AbapException.ToString()+")"); 
     break; 
    } //switch 
} 

參見original source

+0

所有這一切都很好。整個公司沒有任何關於此的怪異文件。謝謝,這將拯救我的生命。這真的有幫助。謝謝。 –

+0

@vwegert - 當鏈接中的'nw'大寫時,瀏覽器是否做了一些不同的事情?我的心被炸燬了。 – Hogan

+0

@AndréSilva - yw,祝你好運! – Hogan

2

請檢查系統中是否存在與例外情況相關的短轉儲(交易ST22)。如果有的話,這是或多或少的設計。正如我在this answer(儘管不詳細)中試圖解釋的那樣,短轉儲使ABAP處理器處於無效狀態。它不能將任何類型的消息返回給調用者,或者將任何數據返回給調用者是不明智的,因爲它可能是無效的甚至是安全問題。在這種情況下,調用將會失敗並顯示未指定的錯誤消息。 Hogan在其他答案中提到的代理異常代碼在這種情況下不會有任何幫助,因爲它們僅爲RFC模塊的命名例外生成,而不是基本系統或編程錯誤。