2012-12-05 75 views
0

我試圖在數據源發生負載時在DSO中填充infoobject 0LOGSYS。這個想法是,你可以告訴哪些源系統的數據是從一定的需求加載的。截至目前,我已經爲0LOGSYS的轉換規則建立了一個例程。沒有語法錯誤,一切都在加載過程中運行,但沒有填充數據。試圖調試,但由於某種原因,我的BREAKPOINT沒有得到提取。從轉換規則中填充0LOGSYS

這是我在例程中放置的代碼。此外,我試圖做到這一點,而不分配任何源字段,所以也許這是造成問題。但不知道。

TYPE-POOLS: RSSM. 

Data: G_S_MINFO TYPE RSSM_S_MINFO. 

CALL FUNCTION 'RSDG_ID_GET_FROM_LOGSYS' 

EXPORTING 

i_source_system = G_S_MINFO-LOGSYS 

IMPORTING 

e_soursysid = RESULT 

EXCEPTIONS 

id_not_found = 1. 

回答

1

解決這個不同的方式。可以通過在每個轉換例程開始時自動實例化的「if_rsbk_request_admintab_view」方法從任何請求中提取運行時屬性。這是我在例程中輸入的代碼。

*declaring a local variable like the result type LOGSYS 
Data: lvSource like RESULT. 

*runs a method to get the source system from the runtime attributes of 
*the request 
*"p_r_request" is an instance of "if_rsbk_request_admintab_view" which 
*has many different methods for runtime attributes 
lvSource = p_r_request->GET_LOGSYS(). 
RESULT = lvSource. 
0

如果這是完整的源代碼,沒有任何返回結果並不奇怪。您聲明一個名爲G_S_MINFO的新結構化變量,請勿爲其分配任何值並返回其內容。除非你從你的代碼示例中刪除了應該用變量填充變量的步驟,否則如果返回的是初始值以外的東西,那將是一個嚴重的錯誤。

編輯:即使有更新的代碼,我仍然懷疑這將工作。現在,您將G_S_MINFO-LOGSYS傳遞給一個功能模塊,該功能模塊可以查找某個系統ID而無需初始化它。垃圾進垃圾出。或者在這種情況下,初始值爲,初始值爲out。

+0

對不起,我更新了我所擁有的 – Jared