代码之家  ›  专栏  ›  技术社区  ›  usman shaheen

如何动态调用BizTalk业务流程

  •  2
  • usman shaheen  · 技术社区  · 16 年前

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

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

    call BizTalkApplication1.Orchestration1(param1,param2);
    

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

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

    2 回复  |  直到 7 年前
        1
  •  4
  •   tomasr    16 年前

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

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

    在步骤4中需要注意的一件事是:为了正确完成此工作,您需要创建一个新的Correlation Set类型,其中包含您的自定义上下文属性,然后确保直接绑定的发送端口“遵循”发送上的相关集。否则,自定义属性将仅写入(而不是升级)msg上下文,路由将失败。

    希望这能有所帮助!

        2
  •  -1
  •   Douglas Marsh    16 年前

    查看ESB指南(www.codeplex.com/ESB)此包提供了您要查找的功能