【问题标题】:BizTalk 2013 - execute stored procedure on send port without orchestration?BizTalk 2013 - 在没有编排的情况下在发送端口上执行存储过程?
【发布时间】:2015-04-10 12:55:08
【问题描述】:

不久前,我将 BizTalk 设置为通过 FTP 获取文件并将其放入网络目录。这都是直通,所以我没有使用编排。

现在,我被要求在拾取文件后执行存储过程。该过程不包含参数,我不需要文件的内容。

这似乎是一个简单的请求,但我无法弄清楚。有什么方法可以做到这一点而不会使事情变得过于复杂?

【问题讨论】:

    标签: biztalk biztalk-2013


    【解决方案1】:

    这可以通过使用带有 SQL 绑定的 WCF-SQL 适配器或 WCF_Custom 适配器来实现。您可以仅使用带有过滤器/映射的 SendPort 使用消息传递来执行此操作,因此不需要编排。

    对于 SOAP 操作标头,使用 TypedProcedure/dbo/name_of_your_stored_procedure,在消息选项卡中,您可以指定存储的 procuders 的参数以及以下列方式添加有效负载:

    <name_of_your_stored_procedure xmlns="http://schemas.microsoft.com/Sql/2008/05/TypedProcedures/dbo">
      <parameter1>XXXX</parameter1>
      <xml_parameter>
        <bts-msg-body xmlns="http://www.microsoft.com/schemas/bts2007" encoding="string"/>
      </xml_parameter>
    </name_of_your_stored_procedure>
    

    在上述情况下,xml_parameter 会将消息负载的内容传递给它。

    存储过程应该类似于:

    CREATE PROCEDURE [dbo].[name_of_your_stored_procedure]
        @parameter1 int,
        @xml_parameter nvarchar(max)
    AS
    BEGIN
        -- your code goes here
    END
    

    更多详情can be found here

    问候哈斯

    【讨论】:

      【解决方案2】:

      This MSDN 页面描述了该过程,并表示:“您必须创建 BizTalk 业务流程才能使用 BizTalk Server 在 SQL Server 上执行操作。”

      但是,如果您真的不希望使用编排,我相信您可以选择在自定义管道组件中设置操作上下文属性。然后,您可以在端口上的映射中初始化消息。理论上这应该可行,但我不能保证。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-04-30
        • 2019-08-01
        • 2010-09-18
        • 2021-12-28
        • 2013-12-31
        • 2019-05-16
        • 1970-01-01
        相关资源
        最近更新 更多