CallOrchestration(BizTalk Server 示例)
CallOrchestration 示例演示如何从一个 BizTalk 业务流程调用另一个业务流程。
本示例的用途
本示例演示一个业务流程如何调用另一个业务流程,其具体的操作步骤如下所示:
主业务流程接收采购订单 (PO) 消息。
主业务流程调用次业务流程来确定采购订单的发货价格。
次业务流程计算所请求的发货价格,并将其返回给主业务流程。
主业务流程用返回的发货价格更新采购订单消息。
主业务流程将更新后的采购订单消息放入一个文件夹备查。
此示例的设计方式和原因
本示例的主要目的是演示如何从一个业务流程调用另一个业务流程。 通过调用业务流程,可以将业务程序分成可重用的组件。 您可以将通用流程分解为独立的业务流程,以便其他人重用。
在此示例中,receivePO.odx 中的 调用业务流程 形状调用 findShippingPrice.odx 并等待嵌套业务流程 findShippingPrice.odx 来计算并返回发货价格,然后再发送采购订单。 业务流程 findShippingPrice.odx 使用以下逻辑来计算发货价格:
If ( weight * shippingRate ) < minShippingPrice Then
shippingPrice = minShippingPrice
Else
shippingPrice = weight * shippingRate
End If
本示例的输入采购订单文件 InputPO.xml 指定权重为 20,这导致输出采购订单消息将其发货价格由 10 更改为 20。
注意
不能从原子业务流程调用长期事务。
注意
使用 “调用业务流程” 形状和 “启动业务流程” 形状的区别在于,调用方在调用业务流程时,会等待嵌套业务流程返回,然后再继续。 而从一个业务流程启动另一个业务流程时,调用方启动该操作之后,即继续执行处理流程的下一步操作。 调用方所调用的业务流程将独立运行,直到它完成处理流程。 有关详细信息,请参阅 如何配置调用业务流程形状。 另请参阅 如何配置启动业务流程形状。
本示例所在的位置
<示例路径>\Orchestrations\CallOrchestration\
下表显示了本示例中的文件及其用途说明:
文件 | 说明 |
---|---|
CallOrchestration.btproj、CallOrchestration.sln | 本示例的项目文件和解决方案文件。 |
CallOrchestrationBinding.xml | 用于如端口绑定之类的自动化设置。 |
Cleanup.bat | 用于取消部署程序集并从全局程序集缓存中删除这些程序集。 删除发送和接收端口。 根据需要删除 Microsoft Internet 信息服务 (IIS) 虚拟目录。 |
findShippingPrice.odx | 作为次业务流程的 BizTalk 业务流程,从主业务流程 receivePO.odx 进行调用。 |
InputPO.xml | 与 PO.xsd 文件中定义的架构相符的示例输入采购订单消息。 |
PO.xsd | 一种架构,用于定义入站采购订单消息(如示例输入文件 InputPO.xml)的结构以及架构中所有三个元素的属性升级。 |
PropertySchema.xsd | 参与架构 PO.xsd 中所有三个元素的属性升级的属性架构文件。 |
receivePO.odx | 在本示例中充当主业务流程的 BizTalk 业务流程。 它首先从接收文件夹中检索采购订单消息,然后调用另一个业务流程 findShippingPrice.odx 来计算和更新发货价格。 |
Setup.bat | 用于生成和初始化本示例。 |
生成和初始化此示例
生成并初始化 CallOrchestration 示例
在命令窗口中,导航到下面的文件夹:
<示例路径>\Orchestrations\CallOrchestration\
运行 Setup.bat 文件,该文件将执行以下操作:
在 CallOrchestration 文件夹中,为本示例创建输入 (In) 和输出 (Out) 文件夹。
为此示例编译和部署包含这两个业务流程的 Visual Studio 项目。
创建并绑定 BizTalk Server 接收位置、发送和接收端口。
启用接收位置并启动发送端口。
注意
在尝试运行本示例前,您应确认在生成和初始化过程中 BizTalk Server 未报告任何错误。
运行本示例
运行 CallOrchestration 示例
将 InputPO.xml 文件的副本放到 In 文件夹中。
查看在 Out 文件夹中创建的已更新 XML 采购订单文件。 此文件包含原始采购订单消息,现在已修改为包含按前述方法计算出的发货费用。 此文件的名称的格式为 <MessageID>.xml,其中 <MessageID> 是生成用于唯一标识消息的 GUID。
卸载本示例
卸载 CallOrchestration 示例
在 Visual Studio 命令窗口中,导航到以下文件夹:
<示例路径>\Orchestrations\CallOrchestration\
运行 Cleanup.bat。