一个 RFC 调用正在返回数据,但另一个没有
One RFC call is returning data, but another is not
我使用两个不同的 BAPI 从 SAP 获取数据。当我使用 BAPI_SALESORDER_GETLIST
时,它工作得很好。但是当我使用 BAPI_BILLINGDOC_GETLIST
时,我没有得到任何数据。这就是我尝试调用 BAPI 的方式:
DataTable table = null;
SapConfig cfg = new SapConfig();
if (RfcDestinationManager.TryGetDestination("SAP") == null)
RfcDestinationManager.RegisterDestinationConfiguration(cfg);
RfcDestination dest = RfcDestinationManager.GetDestination("SAP");
RfcRepository repo = dest.Repository;
IRfcFunction fnc = repo.CreateFunction("BAPI_BILLINGDOC_GETLIST");
IRfcStructure param = fnc.GetStructure("REFDOCRANGE");
param.SetValue("SIGN", "I");
param.SetValue("OPTION", "EQ");
param.SetValue("REF_DOC_LOW", salesOrderNumber);
param.SetValue("REF_DOC_HIGH", "");
fnc.Invoke(dest);
table = fnc.GetTable("BILLINGDOCUMENTDETAIL").ToDataTable();
return table;
据我所知,一切看起来都不错。我与 SAP 团队取得了联系,他们确保我使用的帐户可以访问所有内容,并且我们 运行 SAP 中的 BAPI 运行良好。
所以 SAP 看起来不错。关于我在这里做错了什么有什么想法吗?
请检查参数值是否正确。有时 SAP 功能模块希望提交的文档编号带有前导零。您可以在交易 SE37
中测试功能模块以检查您的参数。
我使用两个不同的 BAPI 从 SAP 获取数据。当我使用 BAPI_SALESORDER_GETLIST
时,它工作得很好。但是当我使用 BAPI_BILLINGDOC_GETLIST
时,我没有得到任何数据。这就是我尝试调用 BAPI 的方式:
DataTable table = null;
SapConfig cfg = new SapConfig();
if (RfcDestinationManager.TryGetDestination("SAP") == null)
RfcDestinationManager.RegisterDestinationConfiguration(cfg);
RfcDestination dest = RfcDestinationManager.GetDestination("SAP");
RfcRepository repo = dest.Repository;
IRfcFunction fnc = repo.CreateFunction("BAPI_BILLINGDOC_GETLIST");
IRfcStructure param = fnc.GetStructure("REFDOCRANGE");
param.SetValue("SIGN", "I");
param.SetValue("OPTION", "EQ");
param.SetValue("REF_DOC_LOW", salesOrderNumber);
param.SetValue("REF_DOC_HIGH", "");
fnc.Invoke(dest);
table = fnc.GetTable("BILLINGDOCUMENTDETAIL").ToDataTable();
return table;
据我所知,一切看起来都不错。我与 SAP 团队取得了联系,他们确保我使用的帐户可以访问所有内容,并且我们 运行 SAP 中的 BAPI 运行良好。
所以 SAP 看起来不错。关于我在这里做错了什么有什么想法吗?
请检查参数值是否正确。有时 SAP 功能模块希望提交的文档编号带有前导零。您可以在交易 SE37
中测试功能模块以检查您的参数。