我正在尝试通过函数RFC_READ_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);
谁能指出我的错误?
您收到此错误是因为所选字段不适合结构 DATA,即 TAB512。此外,功能模块RFC_READ_TABLE还会限制读取超过每行数据 512 字节的情况。
您已将选项应用于选择记录,但未使用字段限制所选字段。如果您将限制所选字段,那么您将不会遇到错误超出数据缓冲区。还建议使用 ROWCOUNT 限制记录数。