首页 > 解决方案 > BizTalk 2016 - XMLReceive 管道中的分批 XML 不提升属性

问题描述

我们有这个在 BizTalk 2009 中工作的架构,在接收端口中对 XML 消息进行分批。此模式和带有 XMLReceive 管道的接收位置,分批消息并生成 POLLINGSTMTRECORD 消息,并提升了 OperationType 和 ProcesoType 属性。

但是现在,在 BizTalk 2016 中,这不会发生,只是分批消息,而不是提升属性。

    <?xml version="1.0" encoding="utf-16"?>
<xs:schema xmlns:tns="http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMTCOMMON" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" xmlns:ns0="https://ServicesPlatform.Common.Schemas.PropertySchema" elementFormDefault="qualified" targetNamespace="http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMTCOMMON" version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:annotation>
    <xs:appinfo>
      <fileNameHint xmlns="http://schemas.microsoft.com/servicemodel/adapters/metadata/xsd">POLLINGSTMTCOMMON</fileNameHint>
      <b:schemaInfo is_envelope="yes" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" />
      <b:imports>
        <b:namespace prefix="ns0" uri="https://ServicesPlatform.Common.Schemas.PropertySchema" location=".\propertyschema.xsd" />
      </b:imports>
    </xs:appinfo>
  </xs:annotation>
  <xs:complexType name="POLLINGSTMTRECORD">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="ID_SOLICITUD" nillable="true">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="4000" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="OPERACION" nillable="true">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="40" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="NUM_REINTENTOS" nillable="true">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="4000" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="PROCESO" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="POLLINGSTMTRECORD" nillable="true" type="tns:POLLINGSTMTRECORD">
    <xs:annotation>
      <xs:appinfo>
        <b:properties>
          <b:property name="ns0:OperationType" xpath="/*[local-name()='POLLINGSTMTRECORD' and namespace-uri()='http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMTCOMMON']/*[local-name()='OPERACION' and namespace-uri()='http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMTCOMMON']" />
          <b:property distinguished="true" xpath="/*[local-name()='POLLINGSTMTRECORD' and namespace-uri()='http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMTCOMMON']/*[local-name()='ID_SOLICITUD' and namespace-uri()='http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMTCOMMON']" />
          <b:property distinguished="true" xpath="/*[local-name()='POLLINGSTMTRECORD' and namespace-uri()='http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMTCOMMON']/*[local-name()='NUM_REINTENTOS' and namespace-uri()='http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMTCOMMON']" />
          <b:property name="ns0:ProcesoType" xpath="/*[local-name()='POLLINGSTMTRECORD' and namespace-uri()='http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMTCOMMON']/*[local-name()='PROCESO' and namespace-uri()='http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMTCOMMON']" />
          <b:property distinguished="true" xpath="/*[local-name()='POLLINGSTMTRECORD' and namespace-uri()='http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMTCOMMON']/*[local-name()='PROCESO' and namespace-uri()='http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMTCOMMON']" />
          <b:property distinguished="true" xpath="/*[local-name()='POLLINGSTMTRECORD' and namespace-uri()='http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMTCOMMON']/*[local-name()='OPERACION' and namespace-uri()='http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMTCOMMON']" />
        </b:properties>
      </xs:appinfo>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="ArrayOfPOLLINGSTMTRECORD">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="POLLINGSTMTRECORD" type="tns:POLLINGSTMTRECORD" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfPOLLINGSTMTRECORD" nillable="true" type="tns:ArrayOfPOLLINGSTMTRECORD" />
  <xs:element name="POLLINGSTMT">
    <xs:annotation>
      <xs:documentation>
        <doc:action xmlns:doc="http://schemas.microsoft.com/servicemodel/adapters/metadata/documentation">http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMT</doc:action>
      </xs:documentation>
      <xs:appinfo>
        <b:recordInfo body_xpath="/*[local-name()='POLLINGSTMT' and namespace-uri()='http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMTCOMMON']/*[local-name()='POLLINGSTMTRECORD' and namespace-uri()='http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMTCOMMON']" />
      </xs:appinfo>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="POLLINGSTMTRECORD" nillable="true" type="tns:ArrayOfPOLLINGSTMTRECORD" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

但是在 BizTalk 2016 中没有推广这个属性,有什么想法吗?

标签: xsdbiztalk

解决方案


您可能将端口管道设置为“通过接收” - 设置为通过时不支持提升。

https://docs.microsoft.com/en-us/biztalk/core/default-pipelines

如果没有,请发布您的属性架构以及您的消息架构。


推荐阅读