[需要帮助,我正在尝试使用RFC_READ_TABLE从SAP获取销售数据,但是不知道如何将OPTIONS和FIELDS参数传递给SAP。这是我的应用的示例代码。
连接正在运行,执行后,我有一个异常“ DATA_BUFFER_EXCEEDED”]
public void RFC_READ_TABLE()
{
try
{
ECCDestinationConfig cfg = new ECCDestinationConfig();
RfcDestinationManager.RegisterDestinationConfiguration(cfg);
RfcDestination dest = RfcDestinationManager.GetDestination("ABI_ERP");
RfcRepository repo = dest.Repository;
IRfcFunction fn = repo.CreateFunction("RFC_READ_TABLE");
fn.SetValue("QUERY_TABLE", "VBAP");
fn.GetTable("DATA");
fn.Invoke(dest);
var companyCodeList = fn.GetTable("VBAP");
var companyDataTable = companyCodeList.ToDataTable("VBAP");
dataGridView1.DataSource = companyDataTable;
}
catch (RfcBaseException x)
{
MessageBox.Show("Some problems in programe execution. Check entered data, and try again." +
"\n" +
"\n<SAP Remote Execution Error>" +
"\n" +
"\nAdditional Information on Error: " + x.Message, "Oops, Runtime Error");
}
}
RFC_READ_TABLE
并不是用于读取销售订单数据的理想功能模块(它实际上是为快速n'-dirty表读取而其他不存在的功能而设计的)。我将研究以下启用RFC的功能模块:
BAPI_SALESORDER_GETLIST
-获取销售文件清单BAPISDORDER_GETDETAILEDLIST
-阅读单个销售单据的详细信息如果您查看功能组2032
或在交易BAPI
中的销售和分销-> 销售-> 销售订单,您会发现其他可能有帮助的产品。] >
通过使用RFC_READ_TABLE的'选项'和'字段'表选项来缩小查询范围。
您应该只定义真正需要的列,例如在SQL中的SELECT
之后,即销售单据,物料和物料编号: