拜托告诉我是有人干的。我正在尝试通过.NET Connector 3.0与SAP接口。我可以通过远程函数调用很好地读取数据,但我不知道如何编写任何东西,例如创建或编辑材料。通过一些研究,我已经确定BAPI_MATERIAL_SAVEDATA
是我需要使用的RFC,但我一生都不能弄清楚如何使用。这就是我的尝试:
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()
时,它不会创建材质,也不会抛出异常,它什么都不做。很明显我做错了什么事,因为我根本不知道是什么。快来人啊!
2条答案
按热度按时间tvz2xvvm1#
我目前还没有访问SAP系统的权限,但据我所知,你必须在事务范围内调用bapi,例如。创建材质后调用BAPI_TRANSACTION_COMMIT。但也许.net连接器有另一种方法。。
希望这能帮上忙。
pu82cl6c2#
您需要根据输出类型从函数中获取值。下面是输出类型的示例。(表)