BizTalk 2013 - 在没有编排的情况下在发送端口上执行存储过程?

时间:2015-04-10 12:55:09

标签: biztalk biztalk-2013

前段时间我设置BizTalk通过FTP获取文件并将其放入网络目录。这完全是passsthru所以我没有使用编排。

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

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

2 个答案:

答案 0 :(得分:2)

这可以通过使用WCF-SQL适配器或带有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

关心Hasse

答案 1 :(得分:0)

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

但是,如果您真的绝望不使用业务流程,我相信您可以选择在自定义管道组件中设置操作上下文属性。然后,您可以在端口上的地图中初始化消息。理论上这应该有效,但我不能保证。