JCo RFC_READ_TABLE 数据缓冲区超出
JCo RFC_READ_TABLE Data Buffer Exceeded
我正在尝试通过函数 RFC_READ_TABLE 从 Table VBRK 获取数据,但总是出现数据缓冲区超出异常。
final JCoConnection managedConnection2 = sapCoreJCoManagedConnectionFactory.getManagedConnection("JCoStateless",
getClass().getName(), rfcDestination);
final JCoFunction function2 = managedConnection2.getFunction("RFC_READ_TABLE");
final JCoParameterList importParameterList2 = function2.getImportParameterList();
importParameterList2.setValue("QUERY_TABLE", "VBRK");
final JCoParameterList tableParameterList2 = function2.getTableParameterList();
final JCoTable optionsTable = tableParameterList2.getTable("OPTIONS");
String selectionFilter = "VBELN EQ '" + "0123456789" + "'";
optionsTable.appendRow();
optionsTable.setValue("TEXT", selectionFilter);
//execute function RFC_READ_TABLE
managedConnection2.execute(function2);
有人能指出我的错误吗?
您收到此错误是因为所选字段不适合结构数据,即 TAB512。此外,函数模块 RFC_READ_TABLE 还会限制读取每行数据超过 512 字节的情况。
您已将 OPTIONS 应用到 SELECT 记录,但您没有使用 FIELDS 限制 SELECTED 字段.如果您将限制 SELECTED 字段,那么您将不会遇到超出数据缓冲区的错误。还建议使用 ROWCOUNT.
限制记录数
我正在尝试通过函数 RFC_READ_TABLE 从 Table VBRK 获取数据,但总是出现数据缓冲区超出异常。
final JCoConnection managedConnection2 = sapCoreJCoManagedConnectionFactory.getManagedConnection("JCoStateless",
getClass().getName(), rfcDestination);
final JCoFunction function2 = managedConnection2.getFunction("RFC_READ_TABLE");
final JCoParameterList importParameterList2 = function2.getImportParameterList();
importParameterList2.setValue("QUERY_TABLE", "VBRK");
final JCoParameterList tableParameterList2 = function2.getTableParameterList();
final JCoTable optionsTable = tableParameterList2.getTable("OPTIONS");
String selectionFilter = "VBELN EQ '" + "0123456789" + "'";
optionsTable.appendRow();
optionsTable.setValue("TEXT", selectionFilter);
//execute function RFC_READ_TABLE
managedConnection2.execute(function2);
有人能指出我的错误吗?
您收到此错误是因为所选字段不适合结构数据,即 TAB512。此外,函数模块 RFC_READ_TABLE 还会限制读取每行数据超过 512 字节的情况。
您已将 OPTIONS 应用到 SELECT 记录,但您没有使用 FIELDS 限制 SELECTED 字段.如果您将限制 SELECTED 字段,那么您将不会遇到超出数据缓冲区的错误。还建议使用 ROWCOUNT.
限制记录数