我目前维护RFC函数模块通过Java连接器的SAP调用。我当前的模块返回一张文档表,每行都有一些数据和其他项目表。
当通过JCO 3.0进行内省该模块时,它确实只显示顶层表,但不显示一个:
POSITIONS () (com.sap.conn.jco.JCoTable)
introspection errror
java.lang.IllegalStateException: Trying to access row values in a table
which does not have any rows yet
定义了内表。出于性能目的,我启用了模块使用Basxml。
如何使JCO与嵌套结构一起工作?还是不可能?
一般而言。JCO能够处理嵌套结构和表。
在这种情况下,您的嵌套jcotable似乎是空的,即没有行。在一个空表上,您无法调用单个字段的任何getter-或setter方法。
在使用任何Getter-Method之前,只需使用JCoTable.isEmpty()
或JCoTable.getNumRows()>0
检查即可。并确保在使用JCotable对象上使用任何setter方法之前,请先用JCoTable.appendRow()
附加一行。