2015-03-23 4 views
1

Я вижу следующее дерево поиска в SAP:getNodeText() не возвращает текст для диспетчера объектов дерева поиска

SAP object manager search tree

Я пытаюсь проверить содержимое этого дерева, в основном, я хочу, чтобы получить текст, отображаемый для узлов. Я использую getNodeText() [MicroFocus], чтобы получить текст узла, но он возвращает пустую строку для всех узлов.

В качестве альтернативы, я попробовал getItemText() [MicroFocus] с "HierarchyHeader" как параметр itemName. Еще не повезло.

Так что с Silk4J точки зрения, дерево выглядит так, что делает невозможным идентифицировать узлы:

SAP object manager search tree from Silk4J

Я даже пытался идентифицировать узлы с помощью значка возвращенного getNodeAbapImage() [MicroFocus], но это также возвращает пустую строку.

На данный момент у меня нет возможности идентифицировать узлы в дереве поиска. Есть ли способ получить текст узла? Обходной путь также является приемлемым.

Я использую Silk4J 15.5 Hotfix 5 (15.5.5.7099).

ответ

1

Я использовал скрипт рекордером SAP, чтобы увидеть, что сценарий он генерирует, когда я нажимаю некоторые узлы и следующее было записано:

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

Затем я попытался использовать "&Hierachy" вместо "HierarchyHeader" в getItemText(), и она работала.

Далее я выяснил, откуда приходит текст "&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; 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^