【发布时间】:2020-03-28 03:39:51
【问题描述】:
我需要一些帮助才能使我的 RFC 调用正常工作。我的连接工作正常,BAPI_ACTIVITYTYPE_GETLIST 和 BAPI_ACTIVITYTYPE_GETDETAIL 也正常工作。但是下面的一段代码给了我一个空的 RETURN 表。也没有提交到数据库的更改。
我已经尝试了一切,但我似乎无法让它工作。
ActivityTypeStruct 是一个结构,它存储了我从之前的BAPI_ACTIVITYTYPE_GETDETAIL 得到的单个 ActivityType 的所有数据。
public void Change(ActivityTypeStruct currentActivityType)
{
IRfcFunction transaction = repo.CreateFunction("BAPI_TRANSACTION_COMMIT");
IRfcFunction function = repo.CreateFunction("BAPI_ACTTYPE_CHANGEMULTIPLE");
function.SetValue("COAREA", "1000");
IRfcTable table = function.GetTable("ACTIVITYTYPELIST");
table.Append();
table.SetValue("ACTTYPE", currentActivityType.actType);
table.SetValue("DESCRIPT", "Test-Description");
table.SetValue("VALID_FROM", currentActivityType.valid_from);
table.SetValue("VALID_TO", currentActivityType.valid_to);
function.Invoke(dest);
transaction.Invoke(dest);
var returnValue = function.GetTable("RETURN");
var returnValue2 = transaction.GetStructure("RETURN");
}
BAPI_ACTTYPE_CREATEMULTIPLE 有同样的问题。一个解决方案可能会解决这两种方法。
【问题讨论】:
-
BAPI_TRANSACTION_COMMIT 必须在 BAPI_ACTTYPE_CHANGEMULTIPLE 之后调用
-
感谢您的回答。我试过了,但似乎没有解决问题。
-
哪些消息让您返回 RETURN?
-
如果表 RETURN 为空,则表示一切正常,所以我没有其他想法。
-
你应该总是首先在SAP系统本地运行BAPI,如果它执行良好,然后才继续在C#中测试它。它不起作用可能有多种原因,有些可能与 RFC 有关。尽可能排除所有可能的原因总是更好
标签: c# erp sap-erp saprfc bapi