1
以下查詢我試圖讀取MessageID和DocPurpose。但只有消息ID顯示罰款....誰能告訴我什麼我錯過?將apreciatedTSQL和肥皂信封
Declare @XmlData XML =
'<Envelope xmlns="http://schemas.microsoft.com/dynamics/2011/01/documents/Message">
<Header>
<MessageId>e96d3ee4-5cca-4b3e-be60-d1284a0fb02f</MessageId>
<Company>CompanyX</Company>
<Action>http://schemas.microsoft.com/dynamics/2008/01/services/ReturnOrderInService/create</Action>
<ConversationId>320034ab-f5ee-41b0-ba35-e0669c2bf1b8</ConversationId>
<RequestMessageId>e96d3ee4-5cca-4b3e-be60-d1284a0fb02f</RequestMessageId>
</Header>
<Body>
<MessageParts>
<ReturnOrderIn xmlns="http://schemas.microsoft.com/dynamics/2008/01/documents/ReturnOrderIn">
<DocPurpose xmlns="">Original</DocPurpose>
<SenderId xmlns="">Xcorp</SenderId>
<SalesTable class="entity" xmlns="">
<_DocumentHash>63cf8580-92fe-4b17-b15c-8e619eecf71f</_DocumentHash>
<CurrencyCode>USD</CurrencyCode>
<CustAccount>147854</CustAccount>
<LanguageId>en-us</LanguageId>
<Reservation>None</Reservation>
<ReturnDeadline>2014-10-10</ReturnDeadline>
<ReturnReasonCodeId>Reason</ReturnReasonCodeId>
<SalesName>Stores</SalesName>
<SalesLine class="entity">
<DefaultDimension>
<Values xmlns="http://schemas.microsoft.com/dynamics/2008/01/sharedtypes">
<Value>
<Name>Site</Name>
<Value>VN</Value>
</Value>
</Values>
</DefaultDimension>
<ExpectedRetQty>-5</ExpectedRetQty>
<ItemId>Else</ItemId>
<Name>Something</Name>
<PriceUnit>11.00</PriceUnit>
<SalesQty>-15.00</SalesQty>
</SalesLine>
</SalesTable>
</ReturnOrderIn>
</MessageParts>
</Body>
</Envelope>'
Declare @MessageId varchar(50)
;WITH XMLNAMESPACES('http://schemas.microsoft.com/dynamics/2011/01/documents/Message' As a,
'http://schemas.microsoft.com/dynamics/2008/01/documents/ReturnOrderIn' As b,
default 'http://schemas.microsoft.com/dynamics/2011/01/documents/Message')
Select @MessageId =MessageId from
(SELECT
t.c.value('a:MessageId[1]', 'varchar(50)') MessageId
FROM @XmlData.nodes('/Envelope/Header') AS t(c)) x
Declare @DocPurpose varchar(50)
;WITH XMLNAMESPACES('http://schemas.microsoft.com/dynamics/2011/01/documents/Message' As a,
'http://schemas.microsoft.com/dynamics/2008/01/documents/ReturnOrderIn' As b,
default 'http://schemas.microsoft.com/dynamics/2011/01/documents/Message')
Select @DocPurpose = DocPurpose from
(SELECT
t.d.value('b:DocPurpose[1]', 'varchar(50)') DocPurpose
FROM @XmlData.nodes('Envelope/body/MessageParts/b:ReturnOrderIn') AS t(d))z
Print 'MessageID>>>>>>' + @MessageId
Print @DocPurpose