Biztalk 多个信封中消息的顺序开发

Biztalk 多个信封中消息的顺序开发,biztalk,biztalk-2010,Biztalk,Biztalk 2010,我有一个传入消息(该消息的方案我无法控制) 这是一封封信的信封。 大概是这样的: <ns0:Companies xmlns:ns0="http://PropertyDemotionExample.Companies"> <Header> <Id>Id_0</Id> </Header> <Body> <ns0:Company xmlns:ns0="http://Pr

我有一个传入消息(该消息的方案我无法控制) 这是一封封信的信封。 大概是这样的:

<ns0:Companies xmlns:ns0="http://PropertyDemotionExample.Companies">
    <Header>
        <Id>Id_0</Id>
    </Header>
    <Body>
        <ns0:Company xmlns:ns0="http://PropertyDemotionExample.Employees">
            <Header>
                <CompanyName>CompanyName_0</CompanyName>
                <City>City_0</City>
            </Header>
            <Body>
                <ns1:EmployeeInfo xmlns:ns1="http://PropertyDemotionExample.EmployeeInfo">
                    <Name>Name_0</Name>
                    <Id>Id_0</Id>
                    <Email>Email_0</Email>
                    <Company/>
                    <City/>
                    <Received/>
                </ns1:EmployeeInfo>
                <ns1:EmployeeInfo xmlns:ns1="http://PropertyDemotionExample.EmployeeInfo">
                    <Name>Name_1</Name>
                    <Id>Id_1</Id>
                    <Email>Email_1</Email>
                    <Company/>
                    <City/>
                    <Received/>
                </ns1:EmployeeInfo>
            </Body>
        </ns0:Company>
        <ns0:Company xmlns:ns0="http://PropertyDemotionExample.Employees">
            <Header>
                <CompanyName>CompanyName_1</CompanyName>
                <City>City_1</City>
            </Header>
            <Body>
                <ns1:EmployeeInfo xmlns:ns1="http://PropertyDemotionExample.EmployeeInfo">
                    <Name>Name_0</Name>
                    <Id>Id_0</Id>
                    <Email>Email_0</Email>
                    <Company/>
                    <City/>
                    <Received/>
                </ns1:EmployeeInfo>
                <ns1:EmployeeInfo xmlns:ns1="http://PropertyDemotionExample.EmployeeInfo">
                    <Name>Name_1</Name>
                    <Id>Id_1</Id>
                    <Email>Email_1</Email>
                    <Company/>
                    <City/>
                    <Received/>
                </ns1:EmployeeInfo>
            </Body>
        </ns0:Company>
    </Body>
</ns0:Companies>

Id_0
公司名称(0)
城市0
名称\u 0
Id_0
电邮(0)
姓名1
Id_1
电邮1
公司名称1
城市1
名称\u 0
Id_0
电邮(0)
姓名1
Id_1
电邮1
我想用接收管道来解决这个问题。但当我将XPathBody属性设置为中间信封方案时,收到错误:

执行接收管道时出现故障: “PropertyDemotionExample.debatchpipeline,PropertyDemotionExample, 版本=1.0.0.0,区域性=中性,PublicKeyToken=14f78a6f44f2e0ee“ 来源:“XML反汇编程序”接收端口:“ReceiveEmployeesBatch”URI: “C:\BizTalkIn\employees*.xml”原因:的信封结构 文件规格类型 “”无效


我做错了什么?

您没有发布xsd,所以很难说。 您应该有两个模式,一个用于信封,一个用于正文

这里有一个关于设置信封模式的演练


检查是否遗漏了某些内容。

您也可以在收到完整消息后按原样尝试Xpath。在第一次出现正文段(外层信封)时执行Xpath将把所有内部信封分割成多个消息,其他下游进程可以订阅这些消息。

正文上有两个信封。封装公司列表的公司,以及封装该公司员工列表的公司。我需要用作关联集companys/Header/Id和companys/Body/Company/Header/CompanyName。如何取消此设置并将此属性升级到消息上下文?1。要提升信封模式元素,只需创建一个属性模式并提升信封模式的元素(在您的情况下,它是Header/Id元素)。2.您有两个信封?您应该将这两个信封合并为1。我认为xml解汇编程序不会两次解批。