BPEL
设计器开发人员指南
由
维护
最后更新:2008 年 4 月
本文适用于 NetBeans
IDE 6.1 发行版
目录
关于 BPEL
映射器
BPEL
流程的“设计”、“源”或“日志”视图提供了“BPEL
映射器”选项卡。
BPEL
映射器为处理和定向 BPEL
流程数据提供了一个框架。本框架由以下几个部分组成:
菜单栏。菜单栏提供运算符、必需的元素和用于创建
BPEL
映射的
XPath
函数。您还可以增强或扩展
BPEL
映射,方法是合并由
Xpath
函数组成的谓词。
源树窗格。源树窗格位于左侧,其中包含一个树组件,该组件提供对业务流程的数据变量和合作伙伴链接的访问。
映射窗格。映射窗格包含一个用于创建
BPEL
映射的面板。从菜单栏中选择函数时,映射窗格中将出现一个函数框。如果该函数接受任何参数,则在函数框的左侧会为每个数提供一个连接器。如果参数是可选的,则会在参数名称后面显示一个问号。并且在函数框的右侧会为结果提供一个连接器。BPEL
映射器提供了以下业务流程元素:
目标树窗格。此窗格位于右侧。目标窗格的树组件依赖要映射的业务元素。窗格包含以下组件:
打开 BPEL
映射器窗口:
如果您希望同时查看流程的映射器和图,可以将映射器放置在一个单独的窗口中。有关更多信息,请参阅
克隆文档视图。
创建 BPEL
映射
您可以直接创建源树窗格到目标树窗格的映射,而无需使用任何函数。此类映射包含以下几种方式:
变量到变量
部件到部件
XSD
元素到 XSD
元素
XSD
属性到 XSD
属性
还可以在 BPEL
映射器的菜单栏中,创建使用一个或多个
XPath
函数 的映射。例如,如果
BPEL
流程中包含了等待一段时间的等待活动,则可以使用
Duration
Literal
函数来指定持续时间。
在不使用任何函数的情况下创建映射:
在源树窗格中,展开树组件,直至出现要映射的源节点。
如果目标树窗格也包含了树组件,则展开树组件,直至出现要映射的目标节点。
选择源树中的节点,并将指针拖动到目标树窗格中的节点。
一个链接将连接这些节点。
在映射中使用函数:
单击包含该函数的下拉菜单。
单击该函数。
函数框将出现在映射窗格中。
将任何参数映射到函数框左侧的相应连接器。源可以是源树窗格中的节点,也可以是另一个函数框的输出。如果参数是可选的,则会在参数名称后面显示一个问号。
从函数框右侧映射结果。目标可以是目标树窗格中的节点,也可以是另一个函数框的输入。
最小化映射中的链接或函数:
选择该链接或函数。
单击链接与目标树窗格连接处的减号图标。
删除映射中的链接或函数:
选择该链接或函数。
按下 Delete
键。
使用谓词
您可以使用 BPEL
映射器来创建由 XPath
函数组成的谓词。
谓词将条件应用于可能具有多个值的节点。结果是满足条件的一部分节点。
例如,假定节点表示某种产品的数量。如果要选择数量大于 50
件的所有产品,则可以使用 greater
than
和 number
literal
函数来定义条件。
只有某些类型的节点才允许创建谓词。这些节点的上下文菜单包含“新建谓词”选项。展开源树窗格中的树组件时,可以创建谓词的节点将标记有星号(*)。
创建谓词后,您可以在赋值中使用谓词。例如,可以将数据从源树窗格中的谓词复制到目标树窗格中的节点。
您可以编辑或删除现有的谓词。
创建谓词:
在源树窗格中,右键单击某个节点,然后选择“新建谓词”。
将显示谓词编辑器。
使用 XPath
函数来创建谓词条件。将结果映射到标树窗格中的谓词节点。
单击“确定”。
编辑器将谓词添加到原始节点的正下方。条件将显示在方括号中。
编辑谓词:
在源树窗格中,右键单击该谓词节点,然后选择“编辑谓词”。
修改条件。
单击“确定”。
删除谓词:
在源树窗格中,右键单击该谓词节点,然后选择“删除谓词”。
单击“确定”。
XPath
函数引用
BPEL
映射器的菜单栏中提供了 XPath
函数集合。这些函数均基于 XPath
1.0 规范。此外,菜单还包含一些
XPath
扩展函数。
每个函数具有零个或多个参数。每个函数都返回单个结果。
该页面显示的下拉菜单选项如下所示:运算符、布尔值、字符串、节点、数值、日期和时间、BPEL。
运算符
“运算符”菜单包含了以下函数:
Greater
Greater
or Equal
Result
Less
or Equal
Addition
Subtraction
Multiplication
Division
Remainder
Negative
Not
Equal
Equal
布尔值
“布尔值”菜单包含了以下函数:
Logical
And
使用以下逻辑:如果两个参数均为
true,则该函数返回
true。如果有一个参数为
false,则该函数返回
false。
Logical
Or
使用以下逻辑:如果有一个参数为
true,则该函数返回
true。如果两个参数均为
false,则该函数返回
false。
Logical
Not
使用以下逻辑:如果参数为
false,则该函数返回
true。如果参数为
true,则该函数返回
false。
Language
依据上下文节点的语言与参数中指定的语言之间的关系(与之相同或者是它的子语言)返回
true
或 false。
Logical
False
返回 false。
Logical
True
返回 true。
Boolean
将参数转换为布尔值。有关此逻辑的详细信息,请参见
XPath
1.0 规范。
字符串
“字符串”菜单包含了以下函数:
Contains
使用以下逻辑:如果第一个参数字符串不包含第二个参数字串,则该函数返回空字符串。否则,函数返回
false。
Normalize
Space
返回包含空白的参数字符串,这些空白将按照以下方法进行规格化:去除前导和结尾的空白并使用单个空格替换一系列空白字符。
String
将对象转换为字符串。
Starts
With
使用以下逻辑:如果第一个参数字符串以第二个参数字符串开头,则该函数返回
true。否则,函数返回
false。
String
Length
返回字符串中的字符数。
Substring
返回第一个参数的子串,该子串的起始位置由第二个参数指定,其长度由第三个参数指定。第一个字符的位置为
1,第二个字符的位置为
2,依此类推。第三个参数是可选的。如果未指定第三个参数,则该函数返回的子串由第二个参数指定的位置开始,一直延续到字符串结束。
Substring
Before
返回第一个参数字符串的子串,当第一个参数字符串中首次出现第二个参数字符串时,子串即为该位置前面的内容。如果第一个参数字符串不包含第二个参数字串,则该函数返回空字符串。
Substring
After
返回第一个参数字符串的子串,当第一个参数字符串中首次出现第二个参数字符串时,子串即为该位置后面的内容。如果第一个参数字符串不包含第二个参数字串,则该函数返回空字符串。
Translate
返回第一个参数字符串,如果该字符串含有第二个参数字符串中的字符,则这些字符将被第三个参数字符串中相应位置的字符所替换。
Concat
返回连接的参数。
String
Literal
用于输入字符串类型。
节点
“节点”菜单包含了以下函数:
Local
Name
返回参数节点集(最初使用文档顺序排列)中的节点展开名称的本地部件(展开的名称包含本地部件和名称空间
URI)。(展开的名称包含本地部件和名称空间
URI)。
Name
返回表示参数节点集(最初使用文档顺序排列)中的节点展开名称的限定名称(展开的名称包含本地部件和名称空间
URI)。
Namespace
URI
返回参数节点集(最初使用文档顺序排列)中的节点展开名称的名称空间
URI(展开的名称包含本地部件和名称空间
URI)。
Position
返回上下文位置。
Last
返回上下文大小
Count
返回参数节点集中的节点数。
数值
“数值”菜单包含了以下函数:
Number
将参数转换为数值。有关此逻辑的详细信息,请参见
XPath
1.0 规范。
Numeric
Literal
使您能够输入字面数值。
Round
返回与参数最接近的整数数字。
Sum
对于参数节点集中的每个节点,返回将节点字符串值转换为数值后所得结果的和。
Floor
返回不大于该参数的最大整数值。
Ceiling
返回不小于该参数的最小整数值。
日期和时间
“日期时间”菜单包含了以下函数:
BPEL
BPEL 菜单包含以下
XPath 扩展函数:
映射示例
这些示例说明了多种不同的映射用例:
分配活动用例
假定您希望 BPEL
流程复制从合作伙伴接收的数据。请执行以下任务:
在接收活动后面添加一个分配活动。
选择该分配活动,并使用编辑器定义一个或多个分配副本。要打开映射器,请双击
Assign
活动或选择工具栏中的“映射器”选项卡。
以下示例说明了不使用任何 XPath
函数的分配副本。输入变量的值将复制给输出变量。请注意,左窗格和右窗格都包含相同的树组件。
现在,使用一些
XPath
表达式。删除创建的链接:
从映射器菜单中选择“字符串”>
“Concat”。映射窗格中将出现一个函数框。
从映射器菜单中选择“字符串”>“字符串字面值”,映射窗格中将出现另一个函数框。
双击“字符串字面值”函数框,并在其中键入
THE
VALUE。
从“字符串字面”函数框画一条线连接到
Concat
函数框的传入连接器。
从源树中的变量再画一条线连接到
Concat 框。
从 Concat
框画一个传出连接到目标树中的变量。目标变量现在拥有一个值,它由字符串字面值和源变量值组成。
以下示例说明了使用 concat
XPath 函数的分配副本。输入变量值将连接到字符串字面值
THE
VALUE :
的末尾并复制到输出变量中。
If
活动场景
假定您希望仅当某个条件为 true
时才执行一系列步骤。请执行以下任务:
在 BPEL
流程中添加一个 If
活动。
在 If
活动内添加一些步骤。
选择该分配活动,并使用编辑器定义一个或多个分配副本。要打开映射器,请双击
IF
活动或选择工具栏中的“映射器”选项卡。
以下示例说明了该条件的映射。此映射使用 Not
XPath 函数,该函数位于菜单栏的“布尔值”部分中。如果此航线包含机票预订,则
Not
XPath 函数将返回 true。结果将被映射到右窗格中的“结果”节点。

谓词用例
假定您希望 BPEL
流程复制客户方(不超过 2
人)行程的行程数据。则输入记录会包含一个变量,用于指定客户方的旅客人数。请执行以下任务:
在“BPEL映射器”窗口的左窗格中,右键单击标记为星号(*)的重复节点,然后选择“新建谓词”。
将显示“谓词编辑器”窗口。
在中间窗格中添加 Less
Than
XPath 函数。
在中间窗格中添加 number
literal
XPath 函数。将值设置 3。
将变量节点映射到 Less
Than
XPath 函数的第一个参数。
将 number
literal
XPath 函数的结果映射到 Less
Than
XPath 函数的第二个参数。
将 Less
Than
XPath 函数的结果映射到右窗格中的“结果”节点。
单击“确定”。
单击“确定”。
以下示例说明了映射在“谓词”窗口中的显示方式。单击“确定”后,您就可以在分配副本中使用谓词节点了。
如果 BPEL
流程收到了以下 XML,则谓词将选择第一个
Air
标记。
<Air>
<NumberInParty>2</NumberInParty>
</Air>
<Air>
<NumberInParty>4</NumberInParty>
</Air>
<Air>
<NumberInParty>6</NumberInParty>
</Air>
返回顶部
将反馈发送给我们