ibm bpm - выполнить тип возвращаемого SQL-оператора - PullRequest
0 голосов
/ 11 июня 2018

как управлять результатом запроса, который возвращает целое число "select count(*) from table"?

1) Я пытался связать выходные данные службы SQL Execute Statement с целочисленной переменной и не 'т работа.(несоответствие типов)

2) Я также пытался использовать такие типы, как 'SQLResult', SQLResultRow, SQLResultColumn, но они не работают:

Причина: com.lombardisoftware.core.TeamWorksException:Тип ismatch, значение "[Element:]" должно быть, и экземпляр типа с указанием типа найден IBM BPM Java Class найден: org.jdom.Element

3) Я пытался связать вывод с XMLElementпеременная, и я получил это значение

5

так что теперь ... как я могу получить доступ к атрибуту recordCount этого узла?

в любом случае, мне не нравится манипулировать переменной XMLType, когда используются типы SQLResult, SQLResultRow, SQLResultColumn?

****** РЕДАКТИРОВАНИЕ *******

, даже если я получаю результат в виде XMLElement .. я не могу им манипулировать.

методы типа: tw.local.result[0].rows[0].column[0].getText() не работают (также intellisense) XMLElement в качестве атрибута "recordCount" но я не знаю, как получитьего значение ..

В любом случае, единственный обходной путь, который я нашел, - это изменить запрос, чтобы он возвращал нормальный набор записей (не скалярное значение) select field from table вместо select count(field) from table, чтобы я моготобразить выходное значение в список объектов и подсчитать его length ...

безобразно и грязно: - (*

кто-нибудь знает, как манипулировать элементом XMLE в блоке скрипта?

Ответы [ 2 ]

0 голосов
/ 10 сентября 2018

Использовать Тип возвращаемого значения в качестве XMLElement , затем связать XMLElement в отображении вывода.

Например: если вы используете tw.local.output в качестве отображения вывода (типа XMLElement) затем

log.info("Count "+tw.local.output.xpath('/resultSet/record/column').item(0).getText());

Это напечатает счет Если вы хотите получить "recordCount" Атрибут, затем используйте

tw.local.output.getAttribute("recordCount");
0 голосов
/ 11 августа 2018

Пожалуйста, попробуйте это.

Привязать выходную переменную из оператора sql execute к типу 'ЛЮБОЙ'.

имя переменной - результат (ЛЮБОЙ)

Запрос - выберите количество (поле) как COUNTVAL из таблицы

tw.local.totalCount = tw.local.result [0] .rows [0] .indexedMap.COUNTVAL;

...