我们可以在BizTalk服务中将一个源映射到多个目标表吗



我们有一个场景,我们将接收如下所示的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>    

目标是具有两个表Client和ClientAddress的Azure Sql Server数据库。但我对用一个源映射到两个表感到震惊。

有什么方法可以直接绘制地图吗?我已经完成了从一个来源到一个目的地的映射,但我们的场景是从一个源到多个目的地,这可能吗。请帮帮我,我是BizTalk和BizTalk服务的新手

我正在使用azure数据库开发Biztalk服务

提前谢谢。

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

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

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

使用辩论?为您有信封模式的消息创建一个模式,并为Address创建一个新的模式——这样您就可以有一个只处理地址的发送端口和另一个处理客户端的发送端口。

最新更新