2

我有带有 FILE 传入端口和 WCFCustom 发送端口的 BizTalk 应用程序。

WCFCustom 发送端口正在调用存储过程,并通过指定 Template 属性将消息正文作为 xml 参数传递给此存储过程,如下面的屏幕截图所示。

消息的正文由bts-msg-body标签指定。

问题:

1.有没有办法将文件名作为附加参数传递给存储过程?

2.有没有办法将多个参数发送到存储过程中?

在此处输入图像描述

4

2 回答 2

2

2的答案,是否可以将多个参数发送到存储过程中。是的

<ns0:StoredProc xmlns:ns0="http://schemas.microsoft.com/Sql/2008/05/Procedures/dbo">
<ns0:document>
<bts-msg-body xmlns="http://www.microsoft.com/schemas/bts2007" encoding="base64"/>
</ns0:document>
<ns0:documentname>
Test
</ns0:documentname>
</ns0:StoredProc>

如何从消息上下文属性中填充文档名,这是我无法弄清楚的一点。也许其他人可以为此提出建议。

于 2013-11-01T03:11:49.647 回答
1
  1. 是的,具有促销属性。
  2. 是的,根据 Dijkgraaf 的回答。

我这样做的方法是:

  • 使用“使用适配器服务”BizTalk 项目加载项为您的存储过程生成一个架构,该架构可以包含多个参数的元素(此处的示例),或者如果您愿意,可以手动创建一个。
  • 编辑架构以指定包含您的文件名的元素被提升为“ http://schemas.microsoft.com/BizTalk/2003/file-properties#ReceivedFileName ”。这将导致 XML 汇编器将此值从消息上下文复制到字段中。
  • 创建一个映射以将传入消息作为 CDATA 复制到消息正文元素中。将此映射添加到您的发送端口。
  • 使用 XMLTransmit 管道从消息上下文填充文件名字段

如果您的文件不是 XML,您可能需要自定义管道组件而不是标准地图(我将使用 SDK 中的 FixMsg 示例)。

于 2013-11-01T04:21:40.600 回答