2011-07-04 60 views
2

隨着越過對象實例RFC功能模塊

call function 'functionname' 
    starting new task 'taskname' 
    exporting ... tables ... 

其中函數必須被標記爲RFC ABAP的幫助下,我可以啓動一個獨立的任務的電流的,例如獨立運行批量執行。

我想交出一個Object實例,但通過默認方式,RFC函數不接受這些參數。

有沒有人在那裏想要傳遞一個對象實例,並找到了解決辦法?

今天我的解決方法是:我傳遞Workareas /結構化數據,並在被調用的函數中,我重新創建對象並將數據提供給它們,我手動執行「編組」。

也許有更好的方法呢?

或者 - 作爲替代方案 - 我可以在單獨的後臺任務中運行對象實例的方法嗎?

Best rergards! 我正在使用SAP R3 4.6C

+0

你好哈特穆特,只是出於興趣:這是你正在運行的評估版本或這仍然是使用4.6C一個實際的客戶端? – mydoghasworms

+0

這真的是4.6C - 相當古老,但像一個魅力運行 - 我不使用評估版 – Hartmut

回答

4

不確定這是否在4.6C上可用,但可以嘗試序列化對象並將其存儲在具有EXPORT TO DATABASE的羣集中,然後將記錄的密鑰傳遞給函數,從那裏你可以重新實現它。

請參閱SAP幫助此鏈接:http://help.sap.com/abapdocu_70/en/ABAPEXPORT_DATA_CLUSTER_PARAM.htm

根據幫助:

要導出的對象,這是 通過引用變量引用,使用 聲明CALL_TRANSFORMATION到 序列化和出口這些對象如果 這些對象的類實現了 接口IF_SERIALIZABLE_OBJECT。

(請注意,我不知道調用轉換爲4.6C可用。試試吧,讓我們知道!)

+0

如果我沒有記錯的話,這隻能在Basis發行版2004s(是否ECC5?)中可用。但值得一試。 – Esti

+0

我會盡快嘗試 - 謝謝你的答案! – Hartmut

+0

不幸的是,CALL TRANSFORMATION是*不可*在4.6C – Hartmut

1

我不知道這是否會在4.6C工作(我使用更新的版本),但我會執行以下操作:

i)通過SE11創建結構。
ii)結構的組件(字段)應該支持TYPE REF TO選項。這意味着,你應該能夠在這裏指定一個類名。
iii)將結構(您剛剛創建的)傳遞給RFC。

希望工作在4.6C。

+1

嘿Guven我真的希望那可行,但事實並非如此。 +1的意願.... –

2

我意識到這個線程大約5歲,所以我在這裏做了一些線程死靈法術,但它仍然出現在「abap rfc對象」的第一對夫婦命中,所以我希望每個人都原諒我。

在現代ABAP中執行此操作的正確方法可能是使用IF_SERIALIZABLE_OBJECT接口。它基本上允許您將對象轉換爲XML字符串,然後可以將其作爲導入字符串參數傳遞到FM中,並反序列化回目標系統中的對象。

指南: https://rvanmil.wordpress.com/2011/05/20/serialization/