This topic applies only to the IBM Business Process Manager Advanced configuration.

示例:“数据库查找”调解原语

“数据库查找”原语用于从数据库中搜索值,并将其存储在消息中。此示例说明如何在调解流编辑器中使用“数据库查找”原语。

在示例中,我们希望从员工数据库中检索员工的工资。让我们假设以下情况:
  • 客户机应用程序将员工的序列号 (049728) 传入到消息体的 serialNumber 字段中。
  • 在 EmployeeDatabase 中存在 serialNumber = '049728' 且 salary = '$50,000' 的员工记录。
  • 我们希望从数据库中检索员工的工资,方法是使用消息的 serialNumber 字段在数据库中查找记录。
  • 然后,我们希望从数据库中检索员工记录的 SALARY 列的值,并将其置于消息体中。
以下是对应的 SQL 语句:
select SALARY from EMPLOYEE_TABLE where SERIAL_NUMBER = '049728'

类型为 long 的结果 '50000' 将存储在消息体的 salary 字段中。

数据库查找详细信息

在“属性”视图的“详细信息”页面中,为原语指定以下这些属性。

数据源字段中,输入数据源的 JNDI 名称。在该示例中为 jdbc/sample/EmployeeDatabase

字段中,输入数据库表的名称,包括模式名称。在该示例中为 myschema.EMPLOYEE_TABLE

搜索列字段中,输入与搜索字符串匹配的数据库列的名称。在该示例中,此列为 SERIAL_NUMBER

搜索位置字段中,输入消息体中字段的 XPath 位置。此字段的值是搜索字符串。单击编辑以启动 XPath 表达式构建器来构建所需的 XPath 表达式。在本例中,这是消息体中 serialNumber 的值 (049728)。

在表中,单击添加以定义将从其中检索值的数据库列、值的信息类型以及消息中将存储检索到的值的位置。每个数据元素具有三个属性:
  • 指定要从其中获取元素值的数据库列的名称。在该示例中,这是 SALARY。
  • 类型指定元素值的类型。在该示例中,类型为 int。
  • 目标位置指定 XPath 1.0 表达式,描述存储数据库值的消息元素的路径位置。该 XPath 表达式的求值结果必须是消息中的单个元素。在该示例中,检索到的工资值将存储在消息体中的 salary 字段内。

有关更多信息,请参阅“数据库查找”调解原语