有人会给我发一个示例C#代码来使用BAPI更新SAP Subsystem中的表记录。我可以使用下面链接中解释的示例从SAP表中选择记录 Step by step tutorial to use SAP. net Connector with VS 2008
我在论坛中检查了几个主题但是无法获得有关相同内容的可理解的说明。
答案 0 :(得分:2)
您的问题包含多个部分,让我尝试解释每个部分。
首先,您需要定义需要调用哪个BAPI来更新SAP表。找到它后,请确保它已启用RFC。如果不是,您将需要创建一个支持RFC的包装器功能模块,并且只需调用此BAPI。
当您找到BAPI时,实际上使用.net连接器调用它非常简单。这里有一个非常完整的例子:https://www.codeproject.com/Articles/824928/SAP-Net-Connector-NCo-Example
但总的来说,您需要使用RfcDestinationManager设置与SAP的连接(“目标”)。设置目标后,检索存储库,然后检索功能模块,如下所示:
rfcDestination = RfcDestinationManager.GetDestination(destinationName);
RfcRepository rfcRepository = rfcDestination.Repository;
IRfcFunction rfcFunction = rfcRespository.CreateFunction("BAPI_WHATEVER");
然后您可以使用SetValue函数填充功能模块的参数:
rfcFunction.SetValue("fieldName", value);
完成参数后,调用Invoke函数实际执行调用。
rfcFunction.Invoke(rfcDestination);
调用之后,您可以使用GetValue函数或Tables属性来检索返回值:
var value = rfcFunction.GetValue("fieldName");
有了这个,您应该拥有调用更新SAP表的BAPI所需的一切。