使用 Oracle JDeveloper 10g BPEL Designer 对贷款流流程进行建模和部署

本教程讲述了如何使用 Oracle JDeveloper 10g BPEL Designer 调用 United Loan、Star Loan 和 Credit Rating 等 Web 服务。 本教程使用 JDeveloper 创建一个名为 MyLoanProcess 的 BPEL 流程。

大约 1 个小时

主题

本教程包括下列主题:

创建一个新的 BPEL 项目和 BPEL Process Manager 连接

创建合作伙伴链接

添加新的流程变量
设计贷款流流程
部署和测试贷款流流程

将光标置于此图标上可以加载和查看本教程的所有屏幕截图。(警告:因为此操作会同时加载所有屏幕截图,所以根据 Internet 连接的不同,响应时间可能会比较慢。)

注意:此外,还可以在下列步骤中将光标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。

概述

本教程演示了如何使用 Oracle JDeveloper 10g BPEL Designer 设计贷款流 BPEL 流程。 MyLoanProcess 通过与客户贷款申请同步调用 CreditRatingService 执行信用检查。 然后由下面两个 Web 服务异步处理与信用等级一起(从 CreditRatingService)返回的贷款申请:

UnitedLoan Web 服务
StarLoan Web 服务

返回主题列表

同步调用 CreditRatingService 流程之后,首先使用一个信用评级值修改客户提供的贷款申请文档。 修改后的贷款文档由 UnitedLoanStarLoan Web 服务并行处理。 每个贷款提供商 Web 服务都会返回一个贷款意向,即接受贷款申请的文档或由客户进行处理。

返回主题列表

前提条件

开始本教程之前,您应该:

1.

将 Oracle JDeveloper BPEL Designer 和 Oracle BPEL PM 服务器安装到名为 D:\JDeveloper\JDevBPEL 的目录。


2.

按照下列方式启动 Oracle BPEL PM 服务器:
开始 > 程序 > Oracle - OracleBPM > Oracle BPEL Process Manager 10.1.2 > Start BPEL PM Server


3.

双击 BPEL Designer 桌面图标,启动 Oracle JDeveloper 10g BPEL Designer:

注意:您可以选择开始 > 程序 > Oracle - OracleBPM > Oracle BPEL Process Manager 10.1.2 > BPEL Designer 来启动 Oracle JDeveloper 10g BPEL Designer。

4.

通过在命令窗口中输入下列命令,将 CreditRatingServiceStarLoanUnitedLoan Web 服务部署到 Oracle BPEL PM 服务器中:

D:
cd \JDeveloper\JDevBPEL\integration\bpm\orabpel\samples\demos\LoanDemo
obant

注意:通过执行 LoanDemo 目录中的 obant 脚本可部署名为 LoanFlow 的 BPEL 流程。 但为避免与本教程中创建的 MyLoanProcess BPEL 流程混淆,已从 BPEL 服务器删除了该 LoanFlow BPEL 流程。

5.

要验证是否已部署 CreditRatingServiceStarLoanUnitedLoan 等 Web 服务,选择开始 > 程序 > Oracle - OracleBPM > Oracle BPEL Process Manager 10.1.2 > BPEL Console。 BPEL Console 在 Dashboard 页面的 Deployed BPEL Process 列中显示了这些 Web 服务的名称:

6.

右键单击该 LoanFlow.xsd 链接下载该链接并将该链接或目标保存到名为 C:\Hands_on_Labs\bpel_jdev\support_files 的目录或者您选择的临时目录中的一个文件。

返回主题列表

创建一个新的 BPEL 项目和 BPEL Process Manager 连接

要创建一个新的 BPEL 项目,执行下列步骤:

1.

在 Oracle JDeveloper 10g BPEL Designer 菜单中,选择 File > New

将光标放在该图标上可以查看该图像

2.

New Gallery 中,单击 General 类别,然后选择 Workspace 项。

将光标放在该图标上可以查看该图像

单击 OK

3.

Create Workspace 对话框中,应用下列域值:

Workspace NameMyLoanProcessWS

Directory Name: 接受自动匹配所输入工作区名称的值。
选择 Add a New Empty Project 以取消选中该复选框。

Open in New Navigator 复选框保持不选中状态。

将光标放在该图标上可以查看该图像

单击 OK

4.

新工作区 MyLoanProcessWS 出现在 JDeveloper Applications - Navigator 窗格中的 Applications 文件夹下。 按 [Ctrl] + [S] 保存该新工作区:

注意:您可以选择 File > Save 保存选择的文件,还可以选择 File > Save All 保存对该项目中所有文件所做的更改。

5.

要创建一个新的 BPEL 项目,右键单击 Applications - Navigator 中的 MyLoanProcessWS,然后选择 New Project

将光标放在该图标上可以查看该图像

6.

New Gallery 窗口中,单击 General 下面的 Projects,然后选择 BPEL Process Project 项:

将光标放在该图标上可以查看该图像

单击 OK

7.

BPEL Process Project 对话框中,输入下列值:

BPEL Process NameMyLoanProcess

Namespacehttp://xmlns.oracle.com/MyLoanProcess,它自动镜像该 BPEL 流程的名称。 不要更改该值。
Template默认情况下选中 Asynchronous BPEL Process。 接受该值。

Project Content 区域中,应该选中了 Use Default 复选框。

单击 OK

8.

在 Navigator 中,会创建下面三个文件:

bpel.xml 包含该 BPEL 项目的合作伙伴链接绑定。

MyLoanProcess.bpel 包含描述该 BPEL 流程的 BPEL 元素。
MyLoanProcess.wsdl 将该 BPEL 流程的接口描述为一个 Web 服务。

JDeveloper 自动在 Diagram View 页面中打开 MyLoanProcess.bpel

选择 File > Save All 保存这些新项目文件。

9.

MyLoanProcess.bpel 最初的 BPEL 流程活动显示在 Diagram View 页面中:

注意:Diagram View 页面用于直观地创建和编辑该 BPEL 流程。

10.

要在 Structure 窗格中查看 MyLoanProcess.bpel 的 BPEL 结构,单击 Diagram View 选项卡。

要将 XML Schema 文档导入该 BPEL 项目目录,选择 Structure 窗格中的 Project Schemas

单击 Import

11.

Open 窗口中,使用 Location 域导航到 C:\Hands_on_Labs\bpel_jdev\support_files 目录(或者您将文件下载的临时目录)。 选择 LoanFlow.xsd

选择 Open

12.

Copy Schema 消息窗口中,单击 Yes 将该模式复制到该项目目录:

13.

Applications - Navigator 窗格中,展开 Miscellaneous Files 节点,可看到 LoanFlow.xsd 文件成为了该项目中的一个文件:

在该 BPEL 流程的 Diagram View 窗口单击可看到 LoanFlow.xsd 条目位于 Structure 窗口中 Project Schemas 节点下。

该 XML 模式文件提供 loanApplicationloanOffer 类型的定义,这两个类型分别用于定义该 BPEL 流程的输入和响应文档的结构。

选择 File > Save All 保存对该项目和工作区所做的更改。

14.

双击 Applications - Navigator 中的 MyLoanProcess.bpel

单击工具栏中的 Message Types 图标

15.

要设置贷款请求的消息类型,在 Message Types 窗口中选择 MyLoanProcessRequestMessage

单击 Edit

16.

Edit Message Type 窗口中,选择 payload

单击 Edit

17.

Edit Message Part - payload 窗口中,选择 Element

单击 Browse Elements 图标。

18.

Type Chooser 窗口中,展开 Project Schema Files,然后展开 LoanFlow.xsd,然后选择 loanApplication

单击 OK

19.

Edit Message Part - payload 窗口中,单击 OK

20.

Edit Message Type 窗口中,单击 OK

21.

要设置该 BPEL 流程的响应消息类型,在 Message Types 窗口中选择 MyLoanProcessResponseMessage

单击 Edit

22.

在响应消息的 Edit Message Type 窗口中,选择 payload

单击 Edit

23.

Edit Message Part - payload 窗口中,选择 Element

单击 Browse Elements 图标。

24.

Type Chooser 窗口中,展开 Project Schema Files,然后展开 LoanFlow.xsd,然后选择 loanOffer

单击 OK

25.

要关闭 Edit Message Part - payload 窗口,单击 OK。 在 Edit Message Type 窗口中,单击 OK。 在 Message Type 窗口中,单击 Close

26.

要创建与 BPEL Process Manager 的连接,选择 View > Connection Navigator

注意:Applications - Navigator 选项卡替换为了 Connections - Navigator 选项卡。

27.

右键单击 BPEL Process Manager Server 节点,然后从上下文菜单中选择 New BPEL Process Manager Server Connection

28.

Create BPEL Process Manager Server Connection - Welcome 页面中,仔细查看 Welcome 页面中的信息:

单击 Next

29.

Create BPEL Process Manager Server Connection - Step 1 of 3: Name 窗口的 BPEL Process Manager Connection Name 域中,输入 BPEL_conn

单击 Next

30.

Create BPEL Process Manager Server Connection - Step 2 of 3: Connection 窗口中,接受 User NameHost NamePort Number 等域的默认值。

Password 域中输入 welcome

注意: Password 域中输入的字符显示为星号 (*)。

单击 Next

31.

Create BPEL Process Manager Server Connection - Step 3 of 3: Test Connection 窗口中,单击 Test Connection

32.

等待文本 Success 出现在 Status 域中:

单击 Finish

33.

新的 BPEL_conn 即被添加到 Connections - Navigator 窗格 BPEL Process Manager Server 节点下:

单击 Application 选项卡切换到 Applications - Navigator,查看 MyLoanProcess BPEL 项目文件。

返回主题列表

创建合作伙伴链接

要为该 BPEL 流程调用的每个 Web 服务创建合作伙伴链接,执行以下步骤:

1.

MyLoanProcess.bpel 显示在 Diagram View 中,从 Component Palette 列表中选择 Process Activities

将光标放在该图标上可以查看该图像

2.

要为 CreditRatingService Web 服务创建合作伙伴链接,将 PartnerLink 对象从 Component Palette 拖至 BPEL 流程活动右侧的 Partner Links 区域:

将光标放在该图标上可以查看该图像

3.

Create Partner Link 窗口中,单击 WSIL Browser 图标 打开 WSDL Chooser

将光标放在该图标上可以查看该图像

4.

WSDL Chooser 窗口下的 WSIL Explorer 节点中,展开 BPEL_connprocessdefault 等节点。 选择 CreditRatingService

将光标放在该图标上可以查看该图像

单击 OK

5.

Create Partner Link 窗口中,WSDL FilePartner Link Type 域使用您在 WSDL Chooser 中的选择进行填充。 输入或选择下列域值:

NamecreditRatingService

My Role----- Not Specified -----

Partner RoleCreditRatingServiceProvider

creditRatingService 合作伙伴链接框出现在 Diagram View 中该 BPEL 流程右侧的 Partner Links 区域:

6.

要为 UnitedLoan Web 服务创建合作伙伴链接,请将 PartnerLink 对象从 Component Palette 拖至 BPEL 流程活动右侧的 Partner Links 区域:

7.

Create Partner Link 窗口中,单击 WSIL Browser 图标 。 在 WSDL Chooser 中,展开 BPEL_connprocessdefault 节点。 选择 UnitedLoan

单击 OK

8.

UnitedLoan Web 服务的 Create Partner Link 窗口中,输入或选择下列域值:

NameunitedLoanService

My RoleLoanServiceRequester

Partner RoleLoanServiceProvider

单击 OK

unitedLoanService 合作伙伴链接框被添加到 Diagram View 中该 BPEL 流程右侧的 Partner Links 区域:

9.

要为 StarLoan Web 服务创建合作伙伴链接,将 PartnerLink 对象从 Component Palette 拖至右侧的 Partner Links 区域:

10.

Create Partner Link 窗口中,单击 WSIL Browser 图标 。 在 WSDL Chooser 中,展开 BPEL_connprocessdefault 等节点。 选择 StarLoan

单击 OK

11.

StarLoan Web 服务的 Create Partner Link 窗口中,输入或选择下列域值:

NamestarLoanService

My RoleLoanServiceRequester

Partner RoleLoanServiceProvider

单击 OK

starLoanService 合作伙伴链接框被添加到 Diagram View 中该 BPEL 流程右侧的 Partner Links 区域:

选择 File > Save All 保存对这些项目文件所做的更改。

返回主题

添加新的流程变量

要为 MyLoanProcess BPEL 流程中的活动创建变量,执行以下步骤:

1.

MyLoanProcess.bpel - Structure 窗格中,展开 Variables 节点、Process 子节点以及它的 Variables 子节点,查看定义为 inputVariableoutputVariable 的两个变量:

将光标放在该图标上可以查看该图像

2.

要为 CreditRatingService 创建输入变量,在 Structure 窗格中,选择 Process 子节点下的 Variables。 然后单击 Create

将光标放在该图标上可以查看该图像

3.

Create Variable 窗口的 Name 域中,输入 crInput,选择 Message Type,然后单击 Browse Message Types 图标

4.

Type Chooser 窗口中,展开 Message TypesPartner LinkscreditRatingServiceCreditRatingServiceMessage Types。 选择 CreditRatingServiceRequestMessage

单击 Ok

5.

Create Variable 窗口中,单击 OK

crInput 变量出现在 Structure 窗格中的 BPEL 流程变量列表中。

6.

CreditRatingService 创建输出变量,然后在 Structure 窗格中,选择 Process 子节点下的 Variables。单击 Create

Create Variable 窗口的 Name 域中输入 crOutput。 选择 Message Type,其值为从 CreditRatingServiceMessage Types 节点选择的 CreditRatingServiceResponseMessage

单击 OK

7.

CreditRatingService 创建一个错误变量,选择 Variables,然后单击 Create

Create Variable 窗口的 Name 域中输入 crError。 选择 Message Type,其值为从 CreditRatingServiceMessage Types 树选择的 CreditRatingServiceFaultMessage

单击 OK

选择 File > Save All 保存对这些项目文件所做的更改。

8.

UnitedLoanStarLoan Web 服务创建贷款申请输入变量,选择 Variables,然后单击 Create

Create Variable 窗口的 Name 域中输入 loanApplication。 选择 Message Type,其值为从 UnitedLoanServiceMessage Types 树选择的 LoanServiceRequestMessage

单击 OK

9.

UnitedLoan Web 服务创建一个错误变量,选择 Variables,然后单击 Create

Create Variable 窗口的 Name 域中输入 unitedOffer。 选择 Message Type,其值为从 UnitedLoanServiceMessage Types 树选择的 LoanServiceResultMessage

单击 OK

10.

StarLoan Web 服务创建贷款意向输出变量,选择 Variables,然后单击 Create

Create Variable 窗口的 Name 域中输入 starOffer。 选择 Message Type,其值为从 StarLoanServiceMessage Types 树选择的 LoanServiceResultMessage

单击 OK

选择 File > Save All 保存对这些项目文件所做的更改。

11.

MyLoanProcess.bpelStructure 窗格中,验证在 BPEL Structure > Variables > Process > Variables 节点下是否定义了八个流程变量(如附带的屏幕截图所示):

返回主题列表

设计贷款流流程

在创建该 BPEL 流程期间,您应该定期保存对 MyLoanProcess.bpel 文件和项目所做的更改。 每完成一个新 BPEL 活动的所有步骤都要选择 File > Save All 保存所做的更改。

本节包括下列子主题:

调用同步的 CreditRatingService Web 服务
为 CreditRatingService 添加一个错误处理器
并行调用异步的 UnitedLoan 和 StarLoan Web 服务

添加选择贷款意向的条件分支

返回主题列表

调用同步的 CreditRatingService Web 服务

要设计同步调用 CreditRatingService Web 服务的贷款流流程活动,执行下列步骤:

1.

在 JDeveloper Diagram View 中,将 ScopeComponent Palette 拖至 receiveInputcallbackClient 活动之间的区域:

将光标放在该图标上可以查看该图像

2.

要命名新的 Scope,双击 Diagram View 中的 Scope_1。 在 Scope 对话框的 General 页面中,在 Name 域中输入值 GetCreditRating

将光标放在该图标上可以查看该图像

单击 OK

3.

要展开,单击 GetCreditRating 范围的

4.

Diagram View 中,将 Assign 活动从 Component Palette 拖至 GetCreditRating 范围中标记为 Drop Activity Here 的区域:

5.

接下来,创建一个复制规则,使得 SSN 值从 inputVariable 进入 crInput 变量,以传递给 CreditRatingService。 为此,双击 Assign_1 活动,显示 Assign 属性:

单击 Copy 页面上的 Create

6.

Create Copy Rule 窗口中,单击 From 部分 Variable 域右侧的 Browser Variables 图标

7.

Variable Chooser 窗口中,选择 inputVariable

单击 OK

8.

Create Copy Rule 窗口中,选择 Part 域中的 payload

9.

单击 Create Copy Rule 窗口 From 部分中的 XPath Query 域。 使用 XPath Building Assistant 输入 XML 路径 /ns1:loanApplication/ns1:SSN

然后按 [Ctrl]+[Space] 调用 XPath Building Assistant 并显示 inputVariable XML 模式类型的根元素:

双击 /ns1:loanApplication 元素。

10.

XPath Building Assistant 自动显示 /ns1:loanApplication 中的子元素:

双击 ns1:SSN 填充 XPath Query 域。

From 部分中的域应该包含下列值:

VariableinputVariable

Partpayload

XPath Query/ns1:loanApplication/ns1:SSN

11.

使用与前面五个步骤中相同的方法,填充 Create Copy RuleTo 部分,使其包含下列域值:

VariablecrInput

Partpayload

XPath Query/ns2:ssn

单击 OK 保存复制规则设置。

12.

检查 Assign 属性部分中的新复制规则的详细信息:

注意:在您单击 ApplyOK 之前,Invalid Settings 错误消息没有意义。 如果输入的详细信息有效,则清除错误消息。

单击 OK

13.

Invoke 活动从 Component Palette 拖至 GetCreditRating ScopeAssign_1 活动之后:

14.

要启用 Invoke 活动以启动 CreditRatingService,双击 Invoke_1 活动,在 General 页面中设置下列属性值:

NameinvokeCR

Partner LinkcreditRatingService

Input VariablecrInput
Output VariablecrOutput

可以从 Variable Chooser 窗口中选择值来设置输入和输出变量域。(单击 Browse Variables 图标 就会显示该窗口。) 另外,当您选择 Partner Link 值时,会自动填充下列域值:

Partner RoleCreditRatingServiceProvider
Port TypeCreditRatingService
Operationprocess

单击 OK

15.

将另一个 Assign 活动从 Component Palette 拖至 GetCreditRating ScopeinvokeCR 活动之后:

16.

双击 Assign_2 活动。 要添加复制规则,单击 Copy 页面上的 Create

Create Copy Rule 窗口的 From 部分,输入下列域值:

VariablecrOutput

Partpayload

XPath Query/ns2:rating

XPath Query 域中按 [Ctrl]+[Space],以使用 XPath Building Assistant

To 部分,输入下列域值:

VariableinputVariable

Partpayload

XPath Query/ns1:loanApplication/ns1:creditRating

单击 OK 关闭 Create Copy Rule 窗口。 确保将复制规则添加到了 Assign 属性中。 单击 OK 关闭 Assign 属性。

选择 File > Save All 保存对该 BPEL 项目所做的更改。

返回主题

为 CreditRatingService 添加一个错误处理器

要添加处理 CreditRatingService Web 服务所返回错误的流程活动,并终止该 BPEL 流程,执行下列步骤:

1.

您要添加一个处理以起始为零的 SSN 值调用 CreditRatingService 时所生成 NegativeCredit 错误的错误处理器。 为此,首先单击 GetCreditRating 范围上的 Add Catch Branch 图标

2.

双击 Add Catch 分支中的 图标:

3.

General 页面上,设置 Catch 属性中的下列域值:

Fault Namens2:NegativeCredit

Fault VariablecrError

注意:Fault Name 的名称必须为 NegativeCredit,该名称与 CreditRatingService Web 服务的 WSDL 中定义的名称相同。 命名空间前缀 ns2 必须与用于限定该 BPEL 流程中 crError 变量的命名空间前缀相匹配。 如果您单击 Browse Variables 图标,则可以从 Variable Chooser 中选择 Fault Variable 值。

单击 OK

4.

要处理该错误,将 Assign 活动拖至 ns2:NegativeCredit Catch 分支中标记为 Drop Activity Here 的区域:

5.

要添加表明不在 outputVariable 中批准贷款意所需的复制规则,双击 Assign_3。 在 Assign 属性中。 然后单击 CreateCopy 页面上添加第一个复制规则。

Create Copy Rule 窗口的 From 部分,通过下列操作将 Expression
设置为值 string('None - rejected because of bad credit')

选择 Expression 选项,然后单击 Expression 域。

[Ctrl]+[Space] 调用 XPath Building Assistant

输入 st 限制所显示 XPath 函数列表的长度,然后双击 string(any param) as String
string() 函数的括号内输入文本 'None - rejected because of bad credit'

To 部分中,设置下列域值:

VariableoutputVariable

Partpayload

XPath Query/ns1:loanOffer/ns1:providerName

注意:[Ctrl]+[Space] 使用 XPath Building Assistant 设置 XPath Query 域。

单击 OK

6.

Assign 属性中,单击 Create 添加第二个复制规则。

Create Copy Rule 窗口的 From 部分,使用 XPath Building AssistantExpression 域值设置为函数 false()

To 部分中,设置下列域值:

VariableoutputVariable

Partpayload

XPath Query 中按 [Ctrl]+[Space] 构建值 /ns1:loanOffer/ns1:selected

单击 OK

7.

Assign 属性中,单击 Create 添加第三个复制规则。

Create Copy Rule 窗口的 From 部分,使用 XPath Building AssistantExpression 域值设置为函数 false()

To 部分中,设置下列域值:

VariableoutputVariable

Partpayload

XPath Query 中按 [Ctrl]+[Space] 构建值 /ns1:loanOffer/ns1:approved

单击 OK

8.

Assign 属性中,单击 Create 添加第四个即最后一个复制规则。

Create Copy Rule 窗口的 From 部分,使用 XPath Building AssistantExpression 域值设置为 number(100)

To 部分中,设置下列域值:

VariableoutputVariable

Partpayload

XPath Query 中按 [Ctrl]+[Space] 构建值 /ns1:loanOffer/ns1:APR

单击 OK

9.

确认 Assign 属性的 Copy 页面上有四个复制规则。 然后单击 Apply

单击 OK

10.

要回调该客户,将 Invoke 活动从 Component Palette 拖至 ns2:NegativeCredit Catch 分支中 Assign_3 之后的区域:

11.

双击 Invoke_1 活动。 在 Invoke 属性中,设置下列域值:

NamebadCreditClientCallback

Partner Linkclient

Input VariableoutputVariable
Output Variable 为空。

您明确把 client 选择为 Partner Link 值之后,会自动填充下列域值:

Partner RoleMyLoanProcessRequester

Port TypeMyLoanProcessCallback
OperationonResult

单击 Apply

单击 OK

12.

要因为发生 NegativeCredit 错误而终止 BPEL 流程,将 Terminate 活动从 Component Palette 拖至 ns2:NegativeCredit Catch 分支中 badCreditClientCallback invoke 活动的后面:

注意:单击 GetCreditRating 范围左上角的折叠图标 ,将使用的区域最小化。

选择 File < Save All 保存对该 BPEL 项目所做的更改。

返回主题

并行调用异步的 UnitedLoan 和 StarLoan Web 服务

要设计并行异步调用 UnitedLoanStarLoan Web 服务的流程活动,执行下列步骤:

1.

要为并行流创建范围,将 Scope 组件从 Component Palette 拖至第一个 GetCreditRating 范围之后:

2.

要更改新范围的名称,双击 Scope_1。在 Name 域中输入 GetLoanOffers

单击 OK

展开 GetLoanOffers 范围。

3.

要初始化 loanApplication 变量,将 Assign 活动拖至 GetLoanOffers 范围的 Drop Activity Here 区域:

4.

要设置 assign 活动属性,双击 Assign_4 活动。单击 General 选项卡。 将 Name 域内容更改为 InitializeInput

单击 Copy 选项卡。

Copy 页面中,单击 Create 打开 Create Copy Rule 窗口。 使用下列值填充 From 部分中的域:

VariableinputVariable

Partpayload

XPath Query 域保持为空。

To 部分中,填充下列域值:

VariableloanApplication

Partpayload

XPath Query 域保持为空。

单击 OK 关闭 Create Copy Rule 窗口。

单击 Apply,然后单击 OK 关闭 Assign 属性对话框。

5.

要创建并行流,将 Flow 组件拖至 InitializeInput assign 活动之后的区域:

该流将自动扩展,包含这些活动的平行的左侧和右侧区域。

6.

在该流的左侧,将 Invoke 组件拖至 Drop Activity Here 区域:

7.

双击 Invoke_1,然后设置下列 Invoke 属性:

NameinvokeUnitedLoan

Partner LinkunitedLoanService

Input VariableloanApplication

注意:调用异步 Web 服务时无法设置 Output Variable 属性。

当您将 unitedLoanService 选择为 Partner Link 值时,会自动填充下列域值:

Partner RoleLoanServiceProvider

Port TypeLoanService
Operationinitiate

单击 OK

8.

在该流的左侧,将 Receive 组件拖至 invokeUnitedLoan 活动的后面:

9.

双击 Receive_1,然后设置下列 Receive 属性:

Namereceive_invokeUnitedLoan

Partner LinkunitedLoanService

VariableunitedOffer

当您将 unitedLoanService 选择为 Partner Link 值时,会自动填充下列属性:

My RoleLoanServiceRequester
Port TypeLoanServiceCallback
OperationonResult

注意:不要选择 Create Instance 复选框。

单击 OK

10.

在该流的右侧,将 Invoke 组件拖至 Drop Activity Here 区域:

11.

双击 Invoke_1,然后设置下列 Invoke 属性:

NameinvokeStarLoan

Partner LinkstarLoanService

Input VariableloanApplication

当您将 starLoanService 选择为 Partner Link 值时,会自动填充下列域值:

Partner RoleLoanServiceProvider

Port TypeLoanService
Operationinitiate

单击 OK

12.

在该流的右侧,将 Receive 组件拖至 invokeStarLoan 活动的后面:

13.

双击 Receive_1,然后设置下列 Receive 属性:

Namereceive_invokeStarLoan

Partner LinkstarLoanService

VariablestarOffer

当您将 starLoanService 选择为 Partner Link 值时,会自动填充下列属性:

My RoleLoanServiceRequester
Port TypeLoanServiceCallback
OperationonResult

注意:不要选择 Create Instance 复选框。

单击 OK

折叠 GetLoanOffers 范围。

选择 File > Save All 保存对该 BPEL 项目所做的更改。

返回主题

添加选择贷款意向的条件分支

要创建 BPEL 活动的条件分支以从 UnitedLoanStarLoan Web 服务中选择最好的贷款意向,执行下列步骤:

1.

将一个 Scope 组件拖到 GetLoanOffers 范围后:

2.

要设置范围名称,双击 Scope_1,然后在 Name 属性中输入 ChooseLoanOffer

单击 OK

3.

要创建条件分支,展开 ChooseLoanOffer 范围,将 Switch 活动拖至 Drop Activity Here 区域:

该 switch 活动会实现一个条件分支,该分支最初在左侧包含一个 ,在右侧包含一个 分支。

4.

要创建条件,双击 分支:

5.

Switch Case 属性中,使用 XPath Building AssistantExpression 域中构建下列条件:

bpws:getVariableData('unitedOffer', 'payload', '/ns1:loanOffer/ns1:APR') > 
bpws:getVariableData('starOffer', 'payload', '/ns1:loanOffer/ns1:APR')

单击 Expression 域。 按 [Ctrl]+[Space] 调用 XPath Building Assistant

双击 XPath Building Assistant 列表中的 bpws:getVariableData 条目,其中带有三个 String 参数。

6.

Expression 域中输入 bpws:getVariableData() 函数调用之后,XPath Building Assistant 为第一个 String 参数提供选项:

双击 unitedOffer

7.

Expression 域中输入 unitedOffer 参数字符串值之后,XPath Building Assistant 将提供 payload 作为第二个 String 参数的值:

双击 payload

8.

Expression 域中输入 payload 参数值之后,XPath Building Assistant 将提供 /ns1:loanOffer 作为最后一个 String 参数的值:

双击 /ns1:loanOffer

9.

Expression 域中输入 /ns1:loanOffer 参数值之后,XPath Building AssistantloanOffer 结构中提供一个子元素列表:

双击 ns1:APR 完成该条件表达式的第一部分。

10. [End] 将光标移动到 Expressionbpws:getVariableData() 函数调用之后。 要插入大于 (>) 条件运算符,按 [Space] +[>] + [Space]

11.

要完成 Expression 域中的条件分支表达式,按 [Ctrl] + [Space] 调用 XPath Building Assistant 将下列函数调用插入该条件运算符的右侧:

bpws:getVariableData('starOffer', 'payload', '/ns1:loanOffer/ns1:APR')

单击 OK

12.

如果 条件表达式为真,则处理它的分支。 因此,应该选择 StarLoan 贷款意向,这是因为它比 UnitedLoan 贷款意向更好(更低)。 要选择 starOffer,将 Assign 活动拖至 分支的 Drop Activity Here 区域:

双击 Assign_4

13.

要将 starOffer 复制到 outputVariable 中,在Assign 属性中单击 General 选项卡。 在 Name 域中输入 selectStarOffer

单击 Copy 选项卡,然后单击 Create 打开 Create Copy Rule 窗口。

Create Copy Rule 窗口的 From 部分中,填充下列域值:

VariablestarOffer

Partpayload

XPath Query 域保持为空。

To 部分中,填充下列域值:

VariableoutputVariable

Partpayload

XPath Query 域保持为空。

单击 OK 关闭 Create Copy Rule 窗口。

单击 OK 关闭 Assign 属性对话框。

14.

要选择 分支中的 unitedOffer,将另一个 Assign 活动拖至 Drop Activity Here 区域:

双击 Assign_4

15.

Assign 属性中,单击 General 选项卡。 在 Name 域中输入 selectUnitedOffer

单击 Copy 选项卡,然后单击 Create 打开 Create Copy Rule 窗口。

Create Copy Rule 窗口的 From 部分中,填充下列域值:

VariableunitedOffer

Partpayload

XPath Query 域保持为空。

To 部分中,填充下列域值:

VariableoutputVariable

Partpayload

XPath Query 域保持为空。

单击 OK 关闭 Create Copy Rule 窗口。

单击 OK 关闭 Assign 属性对话框。

16.

确认 ChooseLoanOffer 范围的 switch 活动在 分支中包含了 selectStarLoan 活动,在 分支中包含了 selectUnitedLoan 活动:

选择 File > Save All 保存对该 BPEL 项目所做的更改。

返回主题

本节包括下列子主题:

部署 MyLoanProcess BPEL 流程
测试 1: 成功运行 MyLoanProcess 以获取贷款意向
测试 2: 处理运行 MyLoanProcess 时的异常

返回主题列表

部署 MyLoanProcess BPEL 流程

要将 MyLoanProcess BPEL 项目部署到 BPEL Process Manager 服务器,执行下列步骤:

1.

在 JDeveloper Applications - Navigator 中,右键单击 MyLoanProcess 项目节点:

将光标放在该图标上可以查看该图像

选择 Deploy > BPEL_conn > Deploy to default domain

注意:您要使用在本教程第一部分中创建的 BPEL Process Manager 服务器链接来部署该 BPEL 流程。 JDeveloper 会自动编译该 BPEL 流程。 在编译过程中,JDeveloper 会以 Java Archive(JAR 文件)的形式创建一个 BPEL 包,该包将被部署到 BPEL Process Manager 服务器中。

2.

Messages - Log 窗口的 Messages 中,跟踪编译和部署该 BPEL 流程的进度:

将光标放在该图标上可以查看该图像

注意: 测试部署的 BPEL 流程之前要确保编译和部署成功。 要在 Messages 页面中将消息换行,右键单击 Messages 页面区域的任何位置,然后从上下文菜单中选择 Wrap

返回主题

测试 1: 成功运行 MyLoanProcess 以获取贷款意向

要测试 MyLoanProcess BPEL 流程成功获取贷款意向,执行下列步骤:

1.

要查看部署的 BPEL 流程,打开浏览器窗口,输入下列 URL,显示 BPEL Console 页面:

http://localhost:9700/BPELConsole

将光标放在该图标上可以查看该图像

Dashboard 页面的 Deployed BPEL Processes 列下显示一个 MyLoanProcess 链接。 还可以通过选择开始 > 程序 > Oracle - OracleBPM > Oracle BPEL Process Manager 10.1.2 > BPEL Console,启动 BPEL Console。

2.

Dashboard 页面上,单击 MyLoanProcess 链接:

将光标放在该图标上可以查看该图像

3.

BPEL Processes 页面的 Initiate 选项卡上,在 loanApplicationSSN HTML 表单域中输入 123454321。 将所有其他域保持为空:

将光标放在该图标上可以查看该图像

单击 Post XML Message 启动该 BPEL 流程。

4.

BPEL Processes 页面更新的 Initiate 选项卡上,单击 Visual Flow 链接:

将光标放在该图标上可以查看该图像

5.

Instances 页面的 Flow 选项卡上,向下滚动至该页面的最底端:

注意:starLoanService (onResult) 活动正在等待手动完成。

6.

要手动批准 StarLoan 意向,打开一个新的浏览器窗口。 输入下列 URL 启动 StarLoanUI Web 应用程序。

http://localhost:9700/StarLoanUI

单击 Assign APR Task 链接。

7.

StarLoanUI Web 界面的 Assign APR Task 页面上,输入 Approve

APR 域中的默认值 7.4 大于 UnitedLoan Web 服务意向的 5.7。 这种情况下,该 BPEL 流程流选择 UnitedLoan 意向。

8.

此时显示 Assign APR Task has been completed 页面:

关闭浏览器窗口。

9.

在包含 BPEL Console Web 界面的浏览器窗口上,右键单击任意空白区域:

选择 Refresh 刷新 Instances 页面上的可视流。

10.

在已刷新的 Instances 页面上向下滚动到到 Flow 选项卡的底部,查看 ChooseLoanOffer 范围是否包含 selectUnitedOffer assign 活动:

单击 client (onResult) 链接或图标,查看返回给该客户的贷款意向文档。

11.

Activity Audit Trail 窗口显示 client (onResult) outputVariable 内容:

United Loan 显示在 元素中,其中的 APR 元素值为 5.7

关闭 Activity Audit Trail 窗口。

返回主题

测试 2: 处理运行 MyLoanProcess 时的异常

要测试 MyLoanProcess BPEL 流程成功处理可能从 CreditRatingService 生成的 NegativeCredit 异常,执行下列步骤:

1.

返回 BPEL Console Dashboard 页面,然后单击 Dashboard 选项卡:

将光标放在该图标上可以查看该图像

2.

Dashboard 页面上,单击 MyLoanProcess 链接,启动 BPEL 流程的新实例。

将光标放在该图标上可以查看该图像

3.

BPEL Processes 页面的 Initiate 选项卡上,在 loanApplicationSSN HTML 表单域中输入 012345678。 将所有其他域保持为空:

将光标放在该图标上可以查看该图像

CreditRatingService Web 服务生成一个 NegativeCredit 错误,这是因为 loanApplication 的 SSN 值开头为零。

单击 Post XML Message 启动该 BPEL 流程。

4.

BPEL Processes 页面更新的 Initiate 选项卡上,单击 Visual Flow 链接:

将光标放在该图标上可以查看该图像

5.

InstancesFlow 选项卡上,向下滚动直到从 creditRatingService (process) 一直看到 terminate 活动:

将光标放在该图标上可以查看该图像

creditRatingService (process) 活动以红色标出,表示发生了错误。

单击 creditRatingService (process) 活动链接或图标详细查看生成的错误。

6.

creditRatingService (process)Activity Audit Trail 窗口显示抛出了 NegativeCredit 错误:

将光标放在该图标上可以查看该图像

注意: 元素包含文本值 Bankruptcy Report

关闭 Activity Audit Trail 窗口。

7.

要查看返回给客户的表示贷款申请未被批准的贷款意向,单击 client (onResult) 链接或图标:

将光标放在该图标上可以查看该图像

8.

client (onResult) 活动的 Activity Audit Trail 窗口中,outputVariable 包含一个 元素,其中包含了一个值为 None - rejected because of bad credit 元素,以及一个值为 false 元素。

将光标放在该图标上可以查看该图像

的所有其他子元素都按 Assign_3 活动的指定进行了设置。 该 BPEL 流程已被设计到该流程中的错误处理所终止。

关闭 Activity Audit Trail 窗口。

9.

关闭 JDeveloper BPEL Designer。

关闭包含 BPEL Console 的浏览器窗口。

启动一个命令行窗口,输入下列命令关闭 BPEL Process Manager 服务器:

D:
cd \JDeveloper\JDevBPEL\integration\bpm\orabpel\bin
shutdownorabpel.bat
将光标放在该图标上可以查看该图像

返回主题

在本教程中,您学习了如何执行下列任务:

使用 Oracle JDeveloper 10g BPEL Designer 创建一个新的 BPEL 项目

为 BPEL 流程调用的每个 Web 服务添加合作伙伴链接

添加用于在 Web 服务与 BPEL 流程之间进行请求和响应而传递 XML 数据的变量

使用 Oracle JDeveloper 10g BPEL Designer 直观地设计 BPEL 流程
使用 Oracle JDeveloper 10g BPEL Designer 编译和部署 BPEL 流程
在 BPEL Console 中测试 BPEL 流程
关闭 BPEL Process Manager 服务器

返回主题列表

有关本 OBE 教程的问题,请在 OBE 论坛上提问。
要了解 Oracle BPEL 产品的详细信息,请参阅 OTN 网站上的其他 OBE。

返回主题列表

将鼠标置于该图标上可以隐藏所有的屏幕截图。