如何评估 JCoStructure?

How to evaluate a JCoStructure?

我有以下结构:

|----------|----------|----|---|
| STRUCTURE 'NameOfStructur'   |
|----------|----------|----|---|
|Num       |A         |B   |C  |
|----------|----------|----|---|
|0123456789|0123456789|0123|456|
|----------|----------|----|---|
|          |          |    |   |
|----------|----------|----|---|

我用它打印:

JCoStructure struct = exportParameters.getStructure(paramName);
System.out.println(struct.toString());

并与:

JCoStructure struct = exportParameters.getStructure(paramName);

JCoFieldIterator fieldIt = struct.getFieldIterator();

while (fieldIt.hasNextField()) {
    JCoField field = fieldIt.nextField();
    System.out.println(field.getName());
}

我收到了属性名称(NumABC),但我仍然无法从该结构中获取值。 field.getValue() 只是 returns nullfield.toString() 提供了对象参考值。

有人知道如何接收这些值吗?

答案很简单,

|0123456789|0123456789|0123|456|

就像在每个 "empty" 和非空 table/structure 上用 "toString()" 打印时的分型线。认为这是我们的 test-sap-system 上的条目。所以这是完全正确的,我会为每个条目收到一个 "null",因为这些数据结构还为空。

所以基本上 @Trixx 关于如何从 JCoStructures/JCoFields 检索值是完全正确的,但我的问题不是我无法从文档中检索正确的方法,而是没有记录打印出来的线是分隔线,而不是我认为的示例数据元组。

JCoField.getName() 获取字段的名称,并为字段的值使用适当的 getter 方法,例如JCoField.getString() 应该始终有效。如果可行,其他 getter 方法将即时进行类型转换,例如如果字段包含字符串“623521”作为值,JCoField.getInt() 将工作并且 return 原始 int 623521。

在您的示例中,结构中的所有字段当前都是空的,因此 JCoField.getString() 将 return“”。

顺便说一句,您不需要使用字段迭代器。您还可以使用字段名称或其索引直接从 JCoStructure 访问字段值,例如使用 JCoStructure.getString("Num")JCoStructure.getString(0).