如何动态调用 BizTalk Orchestration

发布于 2024-07-04 02:13:11 字数 353 浏览 7 评论 0原文

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

调用Orchestration形状需要在设计时知道Orchestration的名称和参数。 我尝试过使用“call”XLang 关键字,但它也需要编排名称作为设计时的形式,就像在表达式形状中一样,我们可以这样写,因为

call BizTalkApplication1.Orchestration1(param1,param2);

我正在寻找某种方法来指定来自传入消息或来自 SSO 配置的调用编排名称店铺。

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

How can I call a BizTalk Orchestration dynamically knowing the Orchestration name?

The call Orchestration shapes need to know the name and parameters of Orchestrations at design time. I've tried using 'call' XLang keyword but it also required Orchestration name as Design Time like in expression shape, we can write as

call BizTalkApplication1.Orchestration1(param1,param2);

I'm looking for some way to specify calling orchestration name, coming from the incoming message or from SSO config store.

EDIT: I'musing BizTalk 2006 R1 (ESB Guidance is for R2 and I didn't get how it could solve my problem)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

能否归途做我良人 2024-07-11 02:13:11

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

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

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

希望这可以帮助!

The way I've accomplished something similar in the past is by using direct binding ports in the orchestrations and letting the MsgBox do the dirty work for me. Basically, it goes something like this:

  1. Make the callable orchestrations use a direct-bound port attached to your activating receive shape.
  2. Set up a filter expression on your activating receive shape with a custom context-based property and set it equal to a value that uniquely identifies the orchestration (such as the orchestration name or whatever)
  3. In the calling orchestration, create the message you'll want to use to fire the new orchestration. In that message, set your custom context property to the value that matches the filter used in the specific orchestration you want to fire.
  4. Send the message through a direct-bound send port so that it gets sent to the MsgBox directly and the Pub/Sub mechanisms in BizTalk will take care of the rest.

One thing to watch out in step 4: To have this work correctly, you will need to create a new Correlation Set type that includes your custom context property, and then make sure that the direct-bound send port "follows" the correlation set on the send. Otherwise, the custom property will only be written (and not promoted) to the msg context and the routing will fail.

Hope this helps!

无名指的心愿 2024-07-11 02:13:11

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

Look at ESB Guidance (www.codeplex.com/esb) This package provides the functionality you are looking for

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文