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

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

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

时间: 2024-08-30 12:54:41

BizTalk开发系列(十一) 在Orchestration中执行Pipeline的相关文章

BizTalk 开发系列(四十一) BizTalk 2010 BAM 安装手记

使用64位系统可以支持更大的内存,现在服务器基本上都使用64位系统.微软从Windows Server 2008 R2开始服务器版的操作系统也只支持64位了,不过对于像BizTalk这种“繁杂的东西”在64位系统下确实增添了不少麻烦. 微软于9月底正式发布了面向企业SOA解决方案的最新产品BizTalk Server 2010.最新想搭一个最新的环境.本为装了BizTalk不下百遍的我,应该可以很快就搞起来.但是这次安装太纠结了.特别是在BAM方面,竟然耗了近 两天(白天上班)才搞定.是不是技术

BizTalk开发系列(十八) 使用信封拆分数据库消息

之前写了一篇的<BizTalk开发系列(十七) 信封架构(Envelop)> 是关于信封架构及其拆装原理的,都是理论性的内容.信封在BizTalk开发过程中最常用的应该是在读取SQL Server 数据库的时候.一次性读取多条消息,提高了SQL Adapter对SQL Server的读取性能.今天就来做一下这个实例,增强对信封消息的理解. 数据库采用的是SQL Server 2005示例数据库:AdventureWorks 通过select * from Production.Culture选

BizTalk开发系列(三十三)BizTalk之Excel终极解决方案

Excel作为优秀的客户端数据处理程序得到了广泛的应用. 由于其简单又强大的功能在很多公司或个人的数据处理中占用非常重要的位置. 而BizTalk作为微软的SOA主打产品虽然免费提供了很多Adapter支持各种协议及应用程序. 不过非常可惜没有提供对富客户端程序Excel的"原生态"支持. 所以我们只能自己查找解决办法. 应用程序对Excel的支持网上已经有很多解决方案的,一部分是使用ODBC的excel驱动将Excel作为数据源进行处理,对于规范数据表之类的Excel文档这种方法比较

BizTalk开发系列(三十六) Orchestration单实例执行

BizTalk 是高效的消息处理引擎,采用多线程并发的方式来处理消息.也就是说当有消息被接收的时候就会产生一个新的消息处理实例.但有时目标系统可能并没有并发处理 的能力, 这时就需要在BizTalk中采用单实例的方式来处理消息.在BizTalk的管道中直接可以启用按序送达的方式来实现, 但是在Orchestration中并没有提供类似的选项.该如何做到呢? 其实在BizTalk中可以根据设置消息的Correlation Set也就是相关属性来实现这样的效果.也就是第一条消息进来之后创建一个Orc

BizTalk开发系列(三十一)配置和使用HTTP适配器

BizTalk的主机分别进程内主机和独立主机.但由于一直使用的是进程内主机,对于独立主机的认识比较模糊,前不久在做一个BizTalk的项目的时 候,个别系统使用HTTP的方式发布Txt之类的文本的.刚好HTTP适配器与其他的适配器有一点不同就是它的接收适配器是宿主在独立主机(IIS)上. 在使用的时候需要进行额外的配置.现在我们就来看一下运行于独立主机上的HTTP接收适配器的使用,以及运行于进程内主机的发送适配器的使用. 为 HTTP 接收位置配置 IIS BizTalk主机分为进程内主机和进程

BizTalk开发系列(七) Hello World2

之前根据BizTalk的订阅原理,使用BizTalk管理控制台创建了第一个应用程序 Hello World.但是由于控制台的开发功能有限,绝大多数的BizTalk程序都是在集成开发环境Visual Studio下进行的.下面我们在Visual Studio下创建Hello World2程序.其功能是将源消息的两个字段组成第三个字段并保存到目标消息.[效果图如下] 此程序主要是为要熟悉BizTalk相关的开发组件包括:Schema, Mapping , Pipeline, Orchestratio

BizTalk开发系列(三十)单向端口实现请求-响应

BizTalk本质上是异步的消息处理引擎.BizTalk的请求与响应模式是基于异步之上的同步消息交换.消息引擎通过消息的扩展架构链接许 多异步消息,消息的相关集关联请求与响应消息.例如,客户端发送一个SOAP请求到BizTalk SOAP适配器.连接该Web Service的BizTalk Orchestration接收处理消息.并返回一个SOAP响应消息.对于客户端程序来说是一个同步的SOAP请求.但在引擎内部则是通过并联交换许多 的异步消息来实现. 以下是请求-响应模式中的五个架构属性: B

BizTalk开发系列(三十七) 性能监视器在BizTalk性能测试中的使用

BizTalk应用程序的性能测试和分析是一个非常重要的过程,因为BizTalk的应用程序在Run-time时受部署结构.消息请求数量和消息大小等 的影响很大,因此无论是简单还是复杂的的应用都需要在部署到生产环境之前执行这一过程. 一般在性能测试中通过Windowns系统自带的性能能监视器来采集相关的数据, 并根据这些计数器的值来判断应用程序的性能瓶颈和负载大小. 虽然Windows性能监视器大家应该不陌生了,但是如果使用方法不正确的话不仅可能得不到你要的数据,还有可能使你白白做了测试.接下来将主

BizTalk 开发系列(三十九) BizTalk Server 2009技术概览

BizTalk Server 2009已经发布一段时间了,之前Beta版发布的时候也写过一篇文章<BizTalk Server 2009 Beta初体验>, 当时比较了2006 R2与2009 Beta这两个版本之间的常见功能的开发.发现表现平平,没有什么太让人兴奋的地方.随着最近一段时间BizTalk Server 2009配套产品(组件)的陆续发布.对于新一代的BizTalk开发应用平台的认可逐渐清晰起来. BizTalk新一代的开发与应用平台除了操作系统.数据库及集成开发环境之外主要包括