CallOrchestration(BizTalk Server 示例)

CallOrchestration 示例演示如何从一个 BizTalk 业务流程调用另一个业务流程。

本示例的用途

本示例演示一个业务流程如何调用另一个业务流程,其具体的操作步骤如下所示:

  1. 主业务流程接收采购订单 (PO) 消息。

  2. 主业务流程调用次业务流程来确定采购订单的发货价格。

  3. 次业务流程计算所请求的发货价格,并将其返回给主业务流程。

  4. 主业务流程用返回的发货价格更新采购订单消息。

  5. 主业务流程将更新后的采购订单消息放入一个文件夹备查。

此示例的设计方式和原因

本示例的主要目的是演示如何从一个业务流程调用另一个业务流程。 通过调用业务流程,可以将业务程序分成可重用的组件。 您可以将通用流程分解为独立的业务流程,以便其他人重用。

在此示例中,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 示例

  1. 在命令窗口中,导航到下面的文件夹:

    <示例路径>\Orchestrations\CallOrchestration\

  2. 运行 Setup.bat 文件,该文件将执行以下操作:

    • 在 CallOrchestration 文件夹中,为本示例创建输入 (In) 和输出 (Out) 文件夹。

    • 为此示例编译和部署包含这两个业务流程的 Visual Studio 项目。

    • 创建并绑定 BizTalk Server 接收位置、发送和接收端口。

    • 启用接收位置并启动发送端口。

注意

在尝试运行本示例前,您应确认在生成和初始化过程中 BizTalk Server 未报告任何错误。

运行本示例

运行 CallOrchestration 示例

  1. 将 InputPO.xml 文件的副本放到 In 文件夹中。

  2. 查看在 Out 文件夹中创建的已更新 XML 采购订单文件。 此文件包含原始采购订单消息,现在已修改为包含按前述方法计算出的发货费用。 此文件的名称的格式为 <MessageID>.xml,其中 <MessageID> 是生成用于唯一标识消息的 GUID。

卸载本示例

卸载 CallOrchestration 示例

  1. 在 Visual Studio 命令窗口中,导航到以下文件夹:

    <示例路径>\Orchestrations\CallOrchestration\

  2. 运行 Cleanup.bat。

另请参阅

业务流程(BizTalk Server 示例文件夹)