我们可以将一个源映射到BizTalk Services中的多个目标表吗?

时间:2014-10-16 07:10:20

标签: azure biztalk biztalk-services

我们有一个场景,我们将收到一个Xml源文件,如下所示

<Client>
    <ClientAddress>
     <ClientCode>123</ClientCode>
    <ClientDBName>asdf</ClientDBName>
    <ClientFEIN>asdf</ClientFEIN>
    <ClientName>asdf</ClientName>
    <ComplexityLevel>asdf</ComplexityLevel>
    <EftpsPIN>asdf</EftpsPIN>
      <Address>
        <City>Test City</City>
        <ClientCode>Test Code</ClientCode>
        <Description>Test Desc</Description>
        <State>Test Sta</State>
        <Stree2>Test Stree2</Stree2>
        <Street1>Test Stree1</Street1>
        <UseAsDefault>false</UseAsDefault>
        <ZipCode>1245</ZipCode>
      </Address>
      <Address>
        <City>asdf</City>
        <ClientCode>asdf</ClientCode>
        <Description>asdf</Description>
        <State>asdf</State>
        <Stree2>asdf</Stree2>
        <Street1>asdf</Street1>
        <UseAsDefault>false</UseAsDefault>
        <ZipCode>1255</ZipCode>
      </Address>
    </ClientAddress>       
  </Client>    

目标是Azure Sql Server数据库,其中包含两个表Client和ClientAddress。 但是我很震惊地将映射映射到具有一个源的两个表。

有没有办法直接映射? 我完成了从一个源到一个目的地的映射,但我们的场景是多个目的地的一个源,这是可能的。 请帮助我,我是BizTalk和BizTalk服务的新手

我正在使用azure数据库进行Biztalk服务

提前致谢。

2 个答案:

答案 0 :(得分:0)

另一种方法是将XML传递给存储过程,但是存储过程必须使用OpenXML来解析XML,因为您有一对多的关系。

更好的选择可能是调用将数据放入SQL的WCF Web服务。

第三种选择是拥有两个映射和两个发送端口,但这并不理想,因为其中一个父关系可能会失败,从而导致子关系失败。

答案 1 :(得分:0)

使用debatching?为您拥有信封架构的邮件制作架构,并为Address创建一个新架构 - 这样您就可以拥有一个仅处理地址的发送端口和另一个处理客户端的发送端口。