2017-12-28 45 views
2

BizTalk 어댑터 (SQL 또는 WCF-SQL)를 사용하여 다중 수준의 계층 적 스키마를 만들려고합니다. 나는 SQL 어댑터가 I이 구조를 얻을 사용하여 스키마를 생성 할 때 내 쿼리는이BizTalk 어댑터에서 계층 적 스키마 생성

SELECT 
    CustomerQueueMessage.customer_queue_ID AS CustomerQueueMsgID, 
    CustomerMaster.customer_ID    AS [CustomerID], 
    CustomerAddressType.address_type_ID  AS [AddressTypeID],   
    CustomerSalesRep.sales_rep_type_code AS [SalesRepTypeCode] 
FROM CustomerQueue AS CustomerQueueMessage 
INNER JOIN dbo.MDM_Customer    AS CustomerMaster  ON (CustomerQueueMessage.customer_queue_ID = CustomerMaster.customer_queue_ID) 
INNER JOIN dbo.MDM_CustomerAddressType  AS CustomerAddressType ON (CustomerAddressType.customer_queue_ID = CustomerMaster.customer_queue_ID) 
INNER JOIN dbo.MDM_CustomerSalesRep  AS CustomerSalesRep  ON (CustomerSalesRep.customer_queue_ID  = CustomerMaster.customer_queue_ID) 
FOR XML AUTO, TYPE, ELEMENTS, XMLDATA 

처럼

enter image description here

내가 원하는 것은 CustomerSalesRep

enter image description here

입니다 은 고객 광고입니다. 드레스 유형. CustomerSalesRep고객 번호 (모두 CustomerMaster) 바로 아래에 두십시오.

FOR XML 문을 제거하고 WCF-SQL 어댑터를 사용하여 스키마를 생성하는 경우 계층 구조가 없으므로 모든 열이 같은 수준에 있습니다.

아이디어가 있으십니까? 가급적이면 WCF-SQL 어댑터를 사용하여 수행하고 싶습니다만 SQL을 사용할 수도 있습니다.

답변

1

이것을 사용할 수 있습니다.

SELECT 
    CustomerSalesRep.sales_rep_type_code AS "CustomerQueueMessage/CustomerMaster/CustomerSalesRep/SalesRepTypeCode", 
    CustomerAddressType.address_type_ID  AS "CustomerQueueMessage/CustomerMaster/CustomerAddressType/AddressTypeID",   
    CustomerMaster.customer_ID    AS "CustomerQueueMessage/CustomerMaster/CustomerID", 
    CustomerQueueMessage.customer_queue_ID AS "CustomerQueueMessage/CustomerQueueMsgID" 
FROM CustomerQueue AS CustomerQueueMessage 
INNER JOIN dbo.MDM_Customer    AS CustomerMaster  ON (CustomerQueueMessage.customer_queue_ID = CustomerMaster.customer_queue_ID) 
INNER JOIN dbo.MDM_CustomerAddressType  AS CustomerAddressType ON (CustomerAddressType.customer_queue_ID = CustomerMaster.customer_queue_ID) 
INNER JOIN dbo.MDM_CustomerSalesRep  AS CustomerSalesRep  ON (CustomerSalesRep.customer_queue_ID  = CustomerMaster.customer_queue_ID) 
FOR XML PATH('SAPcustom'), TYPE, ELEMENTS 

이렇게 XML을 생성합니다.

<SAPcustom> 
    <CustomerQueueMessage> 
    <CustomerMaster> 
     <CustomerSalesRep> 
     <SalesRepTypeCode>1</SalesRepTypeCode> 
     </CustomerSalesRep> 
     <CustomerAddressType> 
     <AddressTypeID>1</AddressTypeID> 
     </CustomerAddressType> 
     <CustomerID>1</CustomerID> 
    </CustomerMaster> 
    <CustomerQueueMsgID>1</CustomerQueueMsgID> 
    </CustomerQueueMessage> 
</SAPcustom> 
+0

안녕 세르칸, 도움을 주셔서 감사합니다. 미안하지만 명확하지 않은 경우 CustomerMaster/CustomerSalesRep가 아니라 CustomerMaster/CustomerAddressType/CustomerSalesRep입니다. 그러나, 제안 (각 열에 대한 전체 경로를 정의)에도 원하는 구조를 얻을 수 없습니다. 사실 XMLDATA를 허용하지 않기 때문에 단어 PATH를 사용할 수 없습니다 (SQL 어댑터가 선택을 읽는 데 필요합니다). – user3417479

+0

@ user3417479 XMLDATA? 나는 전혀 사용하지 않을 것이다. 긴 비난 XDR 용입니다. XMLSCHEMA조차도 Adapter를 사용할 필요가 전혀 없습니다. 먼저 출력물을 바로 얻는 데 중점을두고 스키마에 대해 걱정할 것입니다. –