ibm bpm - 执行sql语句返回类型

时间:2018-06-11 10:13:03

标签: ibm-bpm

如何管理返回整数“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变量,我已经得到了这个值

  

< resultSet recordCount = \“1 \”columnCount = \“1 \”> 5< / columnn>< /记录>< /&的resultSet GT;

所以现在......如何访问此节点的recordCount属性?

无论如何,我不喜欢操纵XMLType的变量,何时使用类型SQLResult, SQLResultRow, SQLResultColumn

  

******编辑*******

即使我得到XMLElement的结果..我无法操纵它。

像<{1}}这样的方法不起作用(智能感知) XMLElement 作为属性“recordCount”,但我不知道如何获得他的价值..

无论如何,我找到的唯一解决方法是更改​​查询以返回正常的记录集(不是标量值) tw.local.result[0].rows[0].column[0].getText()代替select field from table 所以我可以将输出值映射到一个对象列表,然后计算它的select count(field) from table ...

丑陋又脏兮兮的: - (

任何人都知道如何操作脚本块中的XMLElement?

2 个答案:

答案 0 :(得分:1)

请尝试这个。

将sql execute语句的输出变量绑定为'ANY'类型。

变量名-结果(任意)

查询-从表中选择count(字段)作为COUNTVAL

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

答案 1 :(得分:0)

使用返回类型作为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");