创建一个材料.NET Connector SAP
本文关键字:材料 NET Connector SAP 一个 创建 | 更新日期: 2023-09-27 18:25:03
请告诉我有人做了这件事。我正在尝试通过.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()
时,它不会创建材质,也不会抛出异常,只是什么都不做。很明显,我做的事情不对,我根本不知道是什么。有人请帮忙!
我目前无法访问SAP系统,但据我所知,你必须在事务范围内调用bapi,例如在创建材料后调用bapi_TRANSACTION_COMMIT。但也许.net连接器有另一种方法。。。
希望这能有所帮助。
您需要根据输出类型从函数中获取值。以下是输出类型的示例。(表)
function.Invoke(rfcDest);
IRfcTable TableResult = function.GetTable("TAG_NAME_OR_METADATA_NAME");