2

如何在知道业务流程名称的情况下动态调用 BizTalk 业务流程?

调用编排形状需要在设计时知道编排的名称和参数。我试过使用'call' XLang 关键字,但它还需要编排名称作为设计时间,就像表达式形状一样,我们可以写成

call BizTalkApplication1.Orchestration1(param1,param2);

我正在寻找某种方式来指定调用编排名称,来自传入消息或来自 SSO 配置存储。

编辑:我正在考虑 BizTalk 2006 R1(ESB 指南适用于 R2,我不知道它如何解决我的问题)

4

2 回答 2

4

我过去完成类似事情的方式是在编排中使用直接绑定端口并让 MsgBox 为我完成繁琐的工作。基本上,它是这样的:

  1. 使可调用的编排使用附加到您的激活接收形状的直接绑定端口。
  2. 使用基于上下文的自定义属性在激活接收形状上设置过滤器表达式,并将其设置为唯一标识编排的值(例如编排名称或其他)
  3. 在调用编排中,创建要用于触发新编排的消息。在该消息中,将您的自定义上下文属性设置为与您要触发的特定编排中使用的过滤器匹配的值。
  4. 通过直接绑定的发送端口发送消息,以便将消息直接发送到 MsgBox,而 BizTalk 中的 Pub/Sub 机制将负责其余的工作。

在第 4 步中要注意的一件事:要使其正常工作,您需要创建一个包含自定义上下文属性的新关联集类型,然后确保直接绑定发送端口“遵循”关联集发送。否则,自定义属性只会被写入(而不是提升)到 msg 上下文,并且路由将失败。

希望这可以帮助!

于 2008-09-18T13:08:58.097 回答
-1

查看 ESB 指南 (www.codeplex.com/esb) 这个包提供了您正在寻找的功能

于 2008-09-16T13:44:15.423 回答