FeaturesPluginsDocs & SupportCommunityPartners

BPEL 设计器开发人员指南

目录

此页面上的内容适用于 NetBeans IDE 6.1

关于 BPEL 映射器

BPEL 流程的“设计”、“源”或“日志”视图提供了“BPEL 映射器”选项卡。

BPEL 映射器为处理和定向 BPEL 流程数据提供了一个框架。本框架由以下几个部分组成:

  • 菜单栏。菜单栏提供运算符、必需的元素和用于创建 BPEL 映射的 XPath 函数。您还可以增强或扩展 BPEL 映射,方法是合并由 Xpath 函数组成的谓词。

  • 源树窗格。源树窗格位于左侧,其中包含一个树组件,该组件提供对业务流程的数据变量和合作伙伴链接的访问。

  • 映射窗格。映射窗格包含一个用于创建 BPEL 映射的面板。从菜单栏中选择函数时,映射窗格中将出现一个函数框。如果该函数接受任何参数,则在函数框的左侧会为每个数提供一个连接器。如果参数是可选的,则会在参数名称后面显示一个问号。并且在函数框的右侧会为结果提供一个连接器。BPEL 映射器提供了以下业务流程元素:

    • 分配活动。可以定义一个或多个分配副本。

    • If 活动。您可以定义条件

    • If 活动内的 ElseIf 元素。您可以定义条件

    • ForEach 活动。您可以定义条件

    • RepeatUntil 活动。您可以定义条件

    • While 活动。您可以定义条件

    • 等待活动。可以指定截止期限或持续时间。

    • onAlarm 事件。可以指定截止期限或持续时间。

  • 目标树窗格。此窗格位于右侧。目标窗格的树组件依赖要映射的业务元素。窗格包含以下组件:

    • 对于分配活动,右窗格包含的树组件与左窗格相同。

    • 对于 If 活动、ElseIf 元素、ForEach 活动、RepeatUntil 活动以及 While 活动,右窗格都包含“结果”节点。

    • 对于等待活动和 onAlarm 事件,右侧窗格包含一个 Deadline 或 Duration 节点。

打开 BPEL 映射器窗口:

  • 打开 BPEL 图开执行以下操作:

    • 双击需要 BPEL 映射器的元素。这将打开“映射器”选项卡。

    • 选择需要映射器的元素,并在图工具栏中单击“映射器”选项卡。

如果您希望同时查看流程的映射器和图,可以将映射器放置在一个单独的窗口中。有关更多信息,请参阅 克隆文档视图

创建 BPEL 映射

您可以直接创建源树窗格到目标树窗格的映射,而无需使用任何函数。此类映射包含以下几种方式:

  • 变量到变量

  • 部件到部件

  • XSD 元素到 XSD 元素

  • XSD 属性到 XSD 属性

还可以在 BPEL 映射器的菜单栏中,创建使用一个或多个 XPath 函数 的映射。例如,如果 BPEL 流程中包含了等待一段时间的等待活动,则可以使用 Duration Literal 函数来指定持续时间。

在不使用任何函数的情况下创建映射:

  1. 在源树窗格中,展开树组件,直至出现要映射的源节点。

  2. 如果目标树窗格也包含了树组件,则展开树组件,直至出现要映射的目标节点。

  3. 选择源树中的节点,并将指针拖动到目标树窗格中的节点。

    一个链接将连接这些节点。

在映射中使用函数:

  1. 单击包含该函数的下拉菜单。

  2. 单击该函数。

    函数框将出现在映射窗格中。

  3. 将任何参数映射到函数框左侧的相应连接器。源可以是源树窗格中的节点,也可以是另一个函数框的输出。如果参数是可选的,则会在参数名称后面显示一个问号。

  4. 从函数框右侧映射结果。目标可以是目标树窗格中的节点,也可以是另一个函数框的输入。

最小化映射中的链接或函数:

  1. 选择该链接或函数。

  2. 单击链接与目标树窗格连接处的减号图标。

删除映射中的链接或函数:

  1. 选择该链接或函数。

  2. 按下 Delete 键。

使用谓词

您可以使用 BPEL 映射器来创建由 XPath 函数组成的谓词。

谓词将条件应用于可能具有多个值的节点。结果是满足条件的一部分节点。

例如,假定节点表示某种产品的数量。如果要选择数量大于 50 件的所有产品,则可以使用 greater thannumber literal 函数来定义条件。

只有某些类型的节点才允许创建谓词。这些节点的上下文菜单包含“新建谓词”选项。展开源树窗格中的树组件时,可以创建谓词的节点将标记有星号(*)。

创建谓词后,您可以在赋值中使用谓词。例如,可以将数据从源树窗格中的谓词复制到目标树窗格中的节点。

您可以编辑或删除现有的谓词。

创建谓词:

  1. 在源树窗格中,右键单击某个节点,然后选择“新建谓词”。

    将显示谓词编辑器。

  2. 使用 XPath 函数来创建谓词条件。将结果映射到标树窗格中的谓词节点。

  3. 单击“确定”。

    编辑器将谓词添加到原始节点的正下方。条件将显示在方括号中。

编辑谓词:

  1. 在源树窗格中,右键单击该谓词节点,然后选择“编辑谓词”。

  2. 修改条件。

  3. 单击“确定”。

删除谓词:

  1. 在源树窗格中,右键单击该谓词节点,然后选择“删除谓词”。

  2. 单击“确定”。

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 返回不小于该参数的最小整数值。

日期和时间

“日期时间”菜单包含了以下函数:

  • Current Date 提供当前日期。

  • Current Time 提供当前时间。

  • Current Date and Time 提供当前日期和时间。

  • Duration Literal 用于输入持续时间类型。请使用 XML 架构规范中指定的格式。

BPEL

BPEL 菜单包含以下 XPath 扩展函数:

  • doXslTransform它是在 WS-BPEL 规范中定义的一个 XPath 扩展函数。它可以在 BPEL Assign 活动中调用 XSLT 转换。

  • Wrap with Service Reference它是一个特殊的 doXslTransform 函数,用于将数据转换为 ServiceRefType。该函数的初衷是简化 动态寻址 的使用。

  • doMarshal 对对象执行串行化。

  • doUnMarshal 对对象执行并行化。

映射示例

这些示例说明了多种不同的映射用例:

分配活动用例

假定您希望 BPEL 流程复制从合作伙伴接收的数据。请执行以下任务:

  1. 在接收活动后面添加一个分配活动。

  2. 选择该分配活动,并使用编辑器定义一个或多个分配副本。要打开映射器,请双击 Assign 活动或选择工具栏中的“映射器”选项卡。

    以下示例说明了不使用任何 XPath 函数的分配副本。输入变量的值将复制给输出变量。请注意,左窗格和右窗格都包含相同的树组件。

    分配活动的直接映射

  3.  现在,使用一些 XPath 表达式。删除创建的链接:

    • 选择映射窗格中的链接(它会变绿)并按下 Delete 键。

  4. 从映射器菜单中选择“字符串”> “Concat”。映射窗格中将出现一个函数框。

  5. 从映射器菜单中选择“字符串”>“字符串字面值”,映射窗格中将出现另一个函数框。

  6. 双击“字符串字面值”函数框,并在其中键入 THE VALUE

  7. 从“字符串字面”函数框画一条线连接到 Concat 函数框的传入连接器。

  8. 从源树中的变量再画一条线连接到 Concat 框。

  9. 从 Concat 框画一个传出连接到目标树中的变量。目标变量现在拥有一个值,它由字符串字面值和源变量值组成。

    以下示例说明了使用 concat XPath 函数的分配副本。输入变量值将连接到字符串字面值 THE VALUE : 的末尾并复制到输出变量中。

    映射分配活动与 XPath 函数

If 活动场景

假定您希望仅当某个条件为 true 时才执行一系列步骤。请执行以下任务:

  1. 在 BPEL 流程中添加一个 If 活动。

  2. 在 If 活动内添加一些步骤。

  3. 选择该分配活动,并使用编辑器定义一个或多个分配副本。要打开映射器,请双击 IF 活动或选择工具栏中的“映射器”选项卡。

以下示例说明了该条件的映射。此映射使用 Not XPath 函数,该函数位于菜单栏的“布尔值”部分中。如果此航线包含机票预订,则 Not XPath 函数将返回 true。结果将被映射到右窗格中的“结果”节点。

映射 If 活动

谓词用例

假定您希望 BPEL 流程复制客户方(不超过 2 人)行程的行程数据。则输入记录会包含一个变量,用于指定客户方的旅客人数。请执行以下任务:

  1. 在“BPEL映射器”窗口的左窗格中,右键单击标记为星号(*)的重复节点,然后选择“新建谓词”。

    将显示“谓词编辑器”窗口。

  2. 在中间窗格中添加 Less Than XPath 函数。

  3. 在中间窗格中添加 number literal XPath 函数。将值设置 3

  4. 将变量节点映射到 Less Than XPath 函数的第一个参数。

  5. number literal XPath 函数的结果映射到 Less Than XPath 函数的第二个参数。

  6. Less Than XPath 函数的结果映射到右窗格中的“结果”节点。 单击“确定”。

  7. 单击“确定”。

以下示例说明了映射在“谓词”窗口中的显示方式。单击“确定”后,您就可以在分配副本中使用谓词节点了。

谓词映射

如果 BPEL 流程收到了以下 XML,则谓词将选择第一个 Air 标记。

<Air>
<NumberInParty>2</NumberInParty>
</Air>
<Air>
<NumberInParty>4</NumberInParty>
</Air>
<Air>
<NumberInParty>6</NumberInParty>
</Air>

返回顶部

将反馈发送给我们


Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Virtual Box - full virtualizer  Open ESB - The Open Enterprise Service Bus Powered by