2

我在 SAP 中看到以下搜索树:

SAP 对象管理器搜索树

我正在尝试验证该树的内容,主要是我想获取为节点显示的文本。我正在使用getNodeText() [MicroFocus]来获取节点的文本,但它为所有节点返回一个空字符串。

作为替代方案,我尝试使用getItemText() [MicroFocus]"HierarchyHeader"作为itemName参数。仍然没有运气。

所以从 Silk4J 的角度来看,树看起来像这样,这使得无法识别节点:

Silk4J 的 SAP 对象管理器搜索树

我什至尝试使用getNodeAbapImage() [MicroFocus]返回的图标来识别节点,但这也返回一个空字符串。

现在我没有任何机会识别搜索树中的节点。有没有办法获取节点文本?解决方法也是可以接受的。

我正在使用 Silk4J 15.5 修补程序 5 (15.5.5.7099)。

4

1 回答 1

2

我使用 SAP 脚本记录器查看单击某些节点时它生成的脚本,并记录了以下内容:

session.findById("wnd[0]/...").selectItem "          2","&Hierarchy"

然后我尝试使用"&Hierachy"而不是"HierarchyHeader"ingetItemText()并且它起作用了。

接下来,我找出了文本的"&Hierarchy"来源,这样我就没有硬编码的魔法常数了。我发现它是getColumnNames().get(0)。由于树类型COLUMN仅显示一列,因此索引应始终为0.

由于getNodeText()适用于 SAP 中的其他一些树,因此我实施了以下后备策略:

@Override
public String getNodeText(String nodeKey)
{
    String nodeText = tree.getNodeText(nodeKey);
    if (StringUtils.isEmpty(nodeText))
    {
        nodeText = getItemText(nodeKey, tree.getColumnNames().get(0));
    }
    return nodeText;
}
于 2015-03-23T13:28:43.407 回答