請告訴我有人在那裏做了這個。我正嘗試通過.NET Connector 3.0與SAP進行接口。我可以通過遠程函數調用讀取數據,但我無法弄清楚如何編寫任何內容,例如創建或編輯材料。通過一些研究,我已經確定BAPI_MATERIAL_SAVEDATA是我需要使用的rfc,但不能爲我的生活弄清楚如何。這是我想要的:創建一個材質的.NET連接器SAP
function = destination.Repository.CreateFunction("BAPI_MATERIAL_SAVEDATA");
IRfcStructure structure = function.GetStructure("HEADDATA");
structure.SetValue("material", "000000000000000888");
structure.SetValue("ind_sector", "U");
structure.SetValue("matl_type", "ERSA");
structure.SetValue("basic_view", "X");
structure = function.GetStructure("CLIENTDATA");
structure.SetValue("matl_group", "01");
structure.SetValue("base_uom", "EA");
structure = function.GetStructure("CLIENTDATAX");
structure.SetValue("matl_group", "X");
structure.SetValue("base_uom", "X");
function.Invoke(destination);
我基於各種VB和ABAP示例拼湊在一起。問題是它什麼也沒做。當調用function.Invoke()
時,它不會創建一個材質,它不會引發異常,它什麼也不做。很明顯,我沒有做正確的事情,因爲我沒有絲毫的想法。有人請幫忙!
是的,如果BAPI_MATERIAL_SAVEDATA成功返回,則嘗試調用BAPI_TRANSACTION_COMMIT。 – Esti 2012-02-18 03:54:24
謝謝你的迴應。顯然我在這裏誤解了這個問題。如果失敗,我期待函數拋出異常,但我意識到情況並非如此。我檢查了函數的返回值,實際上它失敗了,並告訴我爲什麼。它說「沒有描述已被轉移」,但我不知道我想把它放在哪裏。 MATERIALDESCRIPTION表?如果是這樣,它不會讓我修改這張表。有什麼想法嗎? – Nick 2012-02-21 18:42:30
您必須使用 訪問表MATERIALDESCRIPTION,是的,IRfcTable matdescr = function.GetTable(「MATERIALDESCRIPTION」); 然後添加一個新行,輸入數據(不要忘記包含語言!)並像通常那樣調用該函數。 – chrisdennig 2012-02-22 12:25:51