首页 > 代码库 > BizTalk动手实验(六)Orchestration开发

BizTalk动手实验(六)Orchestration开发

1 课程简介

通过本课程熟悉Orchestration的相关开发与测试技术

2 准备工作

  1. 熟悉XML、XML Schema、XSLT等相关XML开发技术
  2. 熟悉.NET相关开发技术
  3. 新建BizTalk空项目

3 演示

3.1 使用可分辨字段及分支流程

    1. 打开InputPO Schema,右键选择Promote

clip_image001

    1. 将total添加到可分辨字段中

clip_image003

    1. 新建Orchestration -> InMsg,消息类型指向InputPO
    2. 按如下图所示连接好流程结构,将流程的第一个Receive形状Active属性置为true

clip_image004

    1. 点击Rule_1,在条件表达式中添加条件判断表达式

InMsg.total >100

    1. 生成并部署程序
    2. 配置Orchestration,将逻辑端口部署到物理商端口,接收端口的Pipeline选择XMLReceive

clip_image006

  1. 启动应用程序,基于InputPO生成的XML消息,复制两个不同的消息,一个消息的total字段小于100,另一个大于100,查看消息是否输出到不同的目录。

3.2 异常补偿

    1. 修改原有Orchestration,将Scope形状添加到流程中,将Expession及已有的Decide形状拖入Scope,如下图所示

clip_image007

    1. 在Orchestration View中创建一个int类型的变量

clip_image008

    1. 将如下代码添加到Expression_1的表达或。
result = System.Convert.ToInt32(1/InMsg.total);
System.Diagnostics.EventLog.WriteEntry("OrchestrationDevDemo","result: "+ result.ToString());

 

    1. 右击Scope_1选择新创异常处理

clip_image009

    1. 将Expession表达式拖入异常管理形状中

clip_image010

    1. 点击Scope_1的叹号处选择事务类型为Long Running

clip_image011

    1. 点击CatchException_1在属性窗口中,配置异常对像名称及类型(mscorlib->System->Exception)

clip_image012

    1. 将以下代码添加到Expession_2中
System.Diagnostics.EventLog.WriteEntry("OrchestrationDevDemo","Exception: "+exp.Message);

 

    1. 部署应用程序并重启BizTalk实例
    2. 使用模拟的数据进行测试。在系统日志中有相应的日志信息

clip_image013

3.3 调用(启动)子流程

    1. 创建一个子流程,只有一个发送形状和发送端口。
    2. 在子流程里,新添加一个Message类型的消息参数。
    3. 添加一个分支条件,使用Call或Start Orchestration形状。并配置相应的子流程及输入消息
    4. 先把BizTalk应用程序全部停止再部署应用(因为Orchestration有依赖关系)
    5. 测试新的条件是否被应用,及消息是否有输出

BizTalk动手实验(六)Orchestration开发