与Web服务一样,工作流通过方法开放它们的功能,客户可以调用这些方法发出请求。还可以从工作流中创建工作流控件。在这里,其他资源可以通过控件接口与工作流进行交互。要了解WebLogic Platform控件的内容,参见使用控件与资源交互。
具体到这个方案,在工作流中设计Start节点以接收来自客户的Request for Quote消息——收到这种消息就会触发工作流的开始。还要创建一个工作流变量以接收收到的 Request for Quote消息。
在Design View中,工作流与客户应用程序之间的交互由Client Request和Client Response节点表示。在这里,向工作流添加Client Request节点,然后在这个节点上创建一个节点以处理从客户收到的消息。
完成下面的任务以设计负责开始工作流的Client Request 节点:
· 在工作流中创建Start节点
· 设计Client Request节点
· 设定General Settings
· 设定Receive Data
在工作流中创建Start 节点
1. 在Application窗格中,单击RequestQuote.jwf。工作流就会显示在Design View中。
![](http://dev2dev.bea.com.cn/images/school/workshop_030527_02/image007.gif)
必须向这个Start节点添加一个节点以定义工作流的开始方法。
2. 双击Start节点上的拖放目标以显示Start节点构造器。
节点构造器显示下列选项:
· Invoked via a Client Request
· Started with a Message Broker Subscription
· Invoked via Multiple Client Requests or Subscriptions within an Event Choice
3. 选择Invoked via a Client Request。
4. 单击OK关闭节点构造器。与Start节点相关联的空节点现在有了一个Client Request节点。
设计Client Request节点
对Client Request节点的设计包括创建一个客户用来触发工作流开始的方法及其参数,并设计处理接收到的来自客户的请求的逻辑。
1. 右击Client Request节点并选择下拉菜单中的Rename。
2. 输入Client Requests Quote以替换节点上Client Request的这个名字。工作流现在应该与下图所示相同:
3. 在Design View中,双击Client Requests Quote节点以调出节点构造器,如下图所示:
节点构造器提供了一个任务驱动的用户界面,帮助您设计工作流与客户和其他资源的通信。要访问任意节点的节点构造器,就在Design View中双击该节点——所选的那个节点的节点构造器就在线显示在工作流上。
如上图所示,Client Request节点的节点构造器显示下列选项卡以引导对客户和工作流之间的通信的设计:
· 设定General Settings
· 设定Receive Data
设定General Settings
下列步骤描述了如何设定工作流向客户开放的方法——客户调用这些方法以开始工作流并对工作流发送请求。 1. 在General Settings选项卡的Method Name域中,将默认方法名 (clientRequest) 改为quoteRequest。
注:如果让工作流成为一项服务,那么指定给Client Request节点的方法名就是通过Web服务描述语言(WSDL) 开放的方法的名字。一般来说,我们建议定义一个能够体现工作流所提供的服务的名字。
2. 从在节点构造器中显示的数据类型列表中选择一种数据类型,从而指定quoteRequest方法的参数的数据类型:
XML Types
Non-XML Types
Java Types
来自客户的Request for Quote消息是一种XML消息。因此我们关注这个节点的XML Types(要了解其他数据类型,参见相关主题)。
a. 单击数据类型列表中XML Types旁边的+,以查看项目中可用的XML Schema文件列表。
(在构建本教程中的Quote Request工作流时所需要的XML Schema是在Tutorial_Workflow_Application/Schemas 文件夹中提供的。它们包括注:为了使应用程序中的服务可以使用XML Schema,必须将它们放到Workflow Application文件夹中提供的Schemas文件夹中。要了解如何将XML Schema导入到自己的应用程序中,参见导入Schema。
在这里,我们使用一种XML Schema,就是QuoteRequest.xsd,以指定客户可以发送的、用以开始工作流的文档的结构。
b. 单击XML Types列表中与QuoteRequest.xsd相关联的+。
在节点构造器窗格中显示图形化表示的由QuoteRequest.xsd定义的XML Schema。
c. 单击quoteRequest节点(它表示XML文档中的父元素)。Parameter Type域就会填入QuoteRequestDocument。
. 单击Apply以保存所做的方法名和参数规定。
这一步完成了对工作流开放给客户的方法的指定。来自客户的消息应该是typed XML。就是说,来自客户的消息包含对XML Schema(QuoteRequest.xsd)有效的XML。
注:在testxml文件夹中提供了一个有可能从客户接收到的示范XML消息 (QuoteRequest.xml)。在后面的教程中要用它来测试工作流。
General Settings选项卡会刷新以显示成功地完成了对方法名和参数的指定: 表明任务已经完成;
表明任务没有完成。
. 单击Receive Data以打开这个选项卡,在这里可以指定一个工作流变量,在运行时从客户收到的Request for Quote消息要赋值给出这个变量。
设定Receive Data
1. 在继续完成节点构造器中其他任务之前,必须创建一个工作流变量,工作流要将收到的来自客户的数据指定给这个变量。完成下面的步骤以创建这个变量:
a. 如果Variables选项卡在WebLogic Workshop中不可见,就从菜单栏中选择 View —> Windows —> Data Palette。
b. 在Variables选项卡中,单击Add —> Variable以显示 Create Variable对话框。
c. 在Variable Name域中输入requestXML。
d. 在Select Variable Type域中单击XML Types列表中与QuoteRequest.xsd相关联的+,然后单击quoteRequest节点。
Variable Type域会填入QuoteRequestDocument。
e. 单击OK。就会创建新工作流变量,并作为XML变量列在Variables选项卡中。
2. 返回Design View中的Client Request节点构造器。
(如果节点构造器没有打开,则单击工作流中的Client Requests Quote以打开它,再单击 Receive Data。)
Method Expects域中填入了在General Settings 选项卡中指定的参数。
3. 单击Select Variable,然后选择requestXML。
在这里,因为对方法参数和对被工作流赋值为收到的XML数据的变量指定的是相同的数据类型,所以在这个节点不需要数据映射。
4. 单击Apply。
节点构造器中的两个选项卡 (General Settings和Receive Data)都标记为完成 。
5. 单击Close以关闭Client Receive节点构造器。
注意在Design View中,在完成节点构造器中的任务时,与Receive Quote Request节点相关联的完成图标从 变为
,表明节点的设计已经完成。
6. 选择File —> Save以保存所做的工作。
相关主题
应用程序的组件
处理工作流变量