在Biztalk中的WCF-SQL适配器上使用模板消息主体将提升的属性插入SQL数据库

时间:2018-11-15 13:20:37

标签: sql sql-server xml wcf biztalk

我需要使用存储过程将XML文档中的某些数据插入SQL表中。这应该使用Biztalk中的发送端口上的WCF-SQL适配器来完成。我已经在适配器上设置了连接属性,但缺少消息部分。

我目前正在使用下面的代码,并在主体模板中使用一些硬编码的值:

<SaveDocument xmlns="http://schemas.microsoft.com/Sql/2008/05/Procedures/dbo">
   <conversationID>123456</conversationID>
  <dataType>OIO</dataType>
  <fromID></fromID>
  <toID></toID>
  <msgInfoExtension><![CDATA[<infoExt><fileInfo fileName="ublinvoice.xml" encoding="utf-8" /></infoExt>]]></msgInfoExtension>
  <msgBody>
  <bts-msg-body xmlns="http://www.microsoft.com/schemas/bts2007" encoding="string"/>
  </msgBody>
  <msgBodyBin></msgBodyBin>
</SaveDocument>

我需要获取XML文档中某些提升的属性,而不是硬编码的值,但是我不确定如何正确执行此操作。

在MS文档中,我找到了此页面,该页面描述了请求的结构:https://docs.microsoft.com/en-us/biztalk/adapters-and-accelerators/adapter-sql/message-schemas-for-procedures-and-functions

2 个答案:

答案 0 :(得分:0)

  1. 区分要在SaveDocument架构中设置的属性
  2. 创建一个地图,其中要填充您要在Promoted属性中设置的字段,只需用地图中的一些常量填充它们即可。
  3. 在业务流程中,有一条“构造消息”,其中包含指向上述地图的地图形状和消息分配形状。
  4. 在邮件分配形状中,有些语句类似saveSG.conversationID = sourceMSG(PropmotedProperty)

P.S。我认为您已经手动尝试创建SaveDocument模式。这可能是不正确的。正确的方法是创建存储过程,然后在Visual Studio中使用“生成实例”对话框,并将其配置为自动为您生成架构,此外,它甚至生成一个绑定文件,其中包含您需要的设置发送端口。

答案 1 :(得分:0)

您也许可以使用经常被忽略的Property Demotion功能。

基本上,它与Promotion相反,由XmlAssembler组件完成。