如何动态调用BizTalk业务流程
时间:2020-03-05 18:55:56 来源:igfitidea点击:
如何动态知道业务流程名称来调用BizTalk业务流程?
编排形状的调用需要在设计时知道编排的名称和参数。我试过使用'call'XLang关键字,但是它也需要Orchestration名称作为Design Time,就像在表达式形状中一样,我们可以写成
call BizTalkApplication1.Orchestration1(param1,param2);
我正在寻找某种方法来指定调用业务流程名称,该名称来自传入消息或者来自SSO配置存储。
编辑:我在沉思BizTalk 2006 R1(ESB指南适用于R2,但我不知道该如何解决我的问题)
解决方案
回答
查看ESB指南(www.codeplex.com/esb)此软件包提供了我们正在寻找的功能
回答
我过去完成类似工作的方式是在业务流程中使用直接绑定端口,然后让MsgBox为我完成肮脏的工作。基本上,它是这样的:
- 使用连接到激活接收形状的直接绑定端口使可调用业务流程成为可能。
- 使用基于上下文的自定义属性在激活的接收形状上设置过滤器表达式,并将其设置为等于唯一标识编排的值(例如编排名称或者其他名称)
- 在调用业务流程中,创建要用于触发新业务流程的消息。在该消息中,将自定义上下文属性设置为与我们要触发的特定业务流程中使用的过滤器匹配的值。
- 通过直接绑定的发送端口发送消息,以便将其直接发送到MsgBox,而BizTalk中的Pub / Sub机制将负责其余的工作。
在第4步中需要注意的一件事:若要使此工作正常进行,我们将需要创建一个新的Correlation Set类型,其中包括自定义上下文属性,然后确保直接绑定的发送端口"遵循"了相关的设置发送。否则,自定义属性将仅被写入(而不被提升)到msg上下文中,并且路由将失败。
希望这可以帮助!