2008-09-16 211 views
2

如何动态知道业务流程名称来调用BizTalk Orchestration?如何动态调用BizTalk编排

调用Orchestration形状需要在设计时知道Orchestrations的名称和参数。我一直在使用“呼叫” XLANG关键字尝试,但它也需要业务流程的名称作为设计时就像在表达形状,我们可以

call BizTalkApplication1.Orchestration1(param1,param2); 

我正在寻找一些方法来指定调用业务流程的名字,来自哪里写传入消息或来自SSO配置存储。

编辑:I'musing的BizTalk 2006年R1(ESB指导是R2和我没有得到它如何能解决我的问题)在ESB指导(www.codeplex.com/esb)这个包

回答

4

我过去完成类似工作的方式是在业务流程中使用直接绑定端口,并让MsgBox为我完成肮脏的工作。基本上,它是这样的:

  1. 使可调用业务流程使用附加到激活接收形状的直接绑定端口。
  2. 设置在您的活化过滤器表达式接收形状与自定义基于上下文的属性,并将其设置等于唯一标识业务流程(如编排名称或其他)
  3. 在主叫编排的值,创建您要用来启动新业务流程的消息。在该消息中,将您的自定义上下文属性设置为与您要触发的特定业务流程中使用的筛选器匹配的值。
  4. 通过直接绑定的发送端口发送消息,以便它直接发送到MsgBox,并且BizTalk中的发布/订阅机制将负责处理其余部分。

有一点要注意在第4步:要正确有这个工作,你需要创建一个新的关联集类型,包括自定义背景属性,然后确保直接绑定发送端口“遵循“在发送上设置的相关性。否则,定制属性将只写入(而不是升级)到msg上下文,并且路由将失败。

希望这会有所帮助!

-1

看提供您正在寻找的功能