BizTalk开发系列(十一) 在Orchestration中执行Pipeline

    由于开发需要有时要在流程中执行Pipeline。比如从DB的某个字段中取消息的字符串并在流程中构造消息。该需要通过pipeline进行升级属性字段,验证消息等处理。BizTalk架构已经开放了此接口: XLANGPipelineManage类,以下为在流程中使用接收和发送端口示例。需在项目中引用Microsoft.XLANGs.Pipeline组件(C:\Program Files\Microsoft BizTalk Server 2006\Microsoft.XLANGs.Pipeline.dll)

clip_image001

1.使用接收管道

  • 在XLANGPipelineManage类中调用ExecuteReceivePipeline()执行接收管道。

            XLangPipelineMangae类中的方法代码:

public static ReceivePipelineOutputMessages ExecuteReceivePipeline(Type receivePipelineType, XLANGMessage inMsg);
  • 在流程中新建一个变量 vRecOut 类型为:ReceivePipelineOutputMessages
  • 新建一个消息 SchMsg 类型为定义的Schema
  • 在构造消息表达式的值为:
vRecOut = Microsoft.XLANGs.Pipeline.XLANGPipelineManager.
ExecuteReceivePipeline(
typeof (TestPipelines.MyRecPipeline),InputMsg); 
SchMsg 
=null//初始化输出消息。
vRecOut .MoveNext(); //IElement的默认方法。
vRecOut .GetCurrent(SchMsg );

TestPipelines.MyRecPipeline 为管道的Fully Qualified Name(完全限定名称),包括命名空间和类名。

InputMsg 为输入的消息,也就是要传到管道处理的消息。

2.使用发送管道

  • 调用ExecuteSendPipeline()执行发送管道。

     XLangPipelineMangae类中的方法代码:

public static void ExecuteSendPipeline(Type sendPipelineType, SendPipelineInputMessages inMessages, XLANGMessage outXLANGMsg);
  • 在流程中新建一个变量 vInMsgs 类型为SendPipelineInputMessages
  • 新建一个消息 SendMsg  类型为Send Pipeline处理之后的消息。
  • 在构造消息的表达式的值为:
vInMsgs.Add(InputMsg);
SendMsg
=null;
Microsoft.XLANGs.Pipeline.XLANGPipelineManager.ExecuteSendPipeline(
typeof(TestPipelines.MySendPipeline),vInMsgs,SendMsg);

TestPipelines.MySendPipeline为管道的Fully Qualified Name(完全限定名称),包括命名空间和类名。

InputMsg 为输入的消息,也就是要传到管道处理的消息

注意:构造消息需要在构造形状里执行,并且在构造形状的属性里选择要构造的消息否则会报如下错误

     Illegal attempt to update the value of part 'part' in XLANG/s message 'InputMsg' after the message construction was complete

posted on 2008-10-05 03:00 Gary Zhang 阅读(927) 评论(3) 编辑 收藏

评论

#1楼  回复 引用 查看   

Hi 前辈,
这个实验我跟着做挺吃力的,如果可以象Hello World那样,我就会知道一些参数是怎么来的了,不会迷茫。
2010-03-11 08:48 | 香槟      

#2楼[楼主]  回复 引用 查看   

@香槟
这个比较难了,用得也比较少。做过一两年的也不一定用过这个功能。了解一下就行。
2010-03-12 12:54 | Gary Zhang      

#3楼  回复 引用 查看   

这个功能我觉得还是蛮实用的,毕竟好多数据我们要分开使用。
2011-11-22 21:05 | 王寅全      

导航

公告


本Blog所有内容,若无特殊说明,均为原创。如需转载,请注明作者和出处,且保证内容完整!如有其他用途,请联系作者: cbcye@live.com













昵称:Gary Zhang
园龄:4年1个月
粉丝:63
关注:2

我的标签

随笔分类(89)

随笔档案(117)

BizTalk资源

IBM Learning Resource

积分与排名

  • 积分 - 128953
  • 排名 - 773

最新评论

阅读排行榜