首页 > 解决方案 > 使用 biztalk 转换将两个模式合并为一个模式(作为主细节)

问题描述

我需要将两个模式转换为一个模式作为主细节模式。我将passengerId 作为唯一文件。一些主模式的记录可能没有任何详细模式的参考,所以我需要一个条件来检查乘客 ID 是否存在于详细模式中,为结果中的主模式创建新的子模式。 https://www.dropbox.com/s/8xpbqawstu94u85/transform.jpg?dl=0

主架构:

 <xs:complexType name="StoredProcedureResultSet0">
 <xs:sequence>
  <xs:element minOccurs="0" maxOccurs="1" name="PassengersId" nillable="true" type="xs:long" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="Gender" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="FirstName" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="LastName" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="ClassOfService" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="SSR" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="FFP" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="ChkInStatus" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="BoardingStatus" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="Passenger_Type" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="SeatNo" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="PassengerCountryCode" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="PassengerCountryName" nillable="true" type="xs:string" /> 
  </xs:sequence>
  </xs:complexType>

详细模式

 <xs:complexType name="StoredProcedureResultSet0">
 <xs:sequence>
  <xs:element minOccurs="0" maxOccurs="1" name="Origin" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="Destination" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="FlightNo" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="FlightDate" nillable="true" type="xs:dateTime" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="PassengersId" nillable="true" type="xs:long" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="Gender" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="FirstName" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="LastName" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="ClassOfService" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="SSR" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="SSRCode" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="ChkInStatus" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="BoardingStatus" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="Passenger_Type" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="SeatNo" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="PassengerCountryCode" nillable="true" type="xs:string" /> 
  </xs:sequence>
  </xs:complexType>

结果

<xs:complexType>
<xs:sequence>
  <xs:element name="Origin" type="xs:string" /> 
  <xs:element name="Destination" type="xs:string" /> 
  <xs:element name="FlightNo" type="xs:string" /> 
  <xs:element name="FlightDate" type="xs:dateTime" /> 
  <xs:element name="PassengersId" type="xs:long" /> 
  <xs:element name="Gender" type="xs:string" /> 
  <xs:element name="FirstName" type="xs:string" /> 
  <xs:element name="LastName" type="xs:string" /> 
  <xs:element name="ClassOfService" type="xs:string" /> 
  <xs:element name="SSR" type="xs:string" /> 
  <xs:element name="SSRCode" type="xs:string" /> 
  <xs:element name="ChkInStatus" type="xs:string" /> 
  <xs:element name="BoardingStatus" type="xs:string" /> 
  <xs:element name="Passenger_Type" type="xs:string" /> 
  <xs:element name="SeatNo" type="xs:string" /> 
  <xs:element name="PassengerCountryCode" type="xs:string" /> 
  <xs:element name="ClassOfService" type="xs:string" /> 
  <xs:element name="FFP" nillable="true" type="xs:string" /> 
  <xs:element name="PassengerCountryName" type="xs:string" /> 
  </xs:sequence>

标签: schemabiztalkbiztalk-orchestrations

解决方案


推荐阅读