2014-10-03 6 views
0

Я пытаюсь вызвать прохождение Create метода в TriggeredSend типизированного объекта с именем Objects к SOAP веб-службы ExactTarget с использованием пакета узел-мыло.Как определить XSI: тип для элемента в запросе SOAP с помощью узла-мыло

Мне нужно создать нечто похожее на это (обратите внимание на xsi:type="ns0:TriggeredSend"):

<SOAP-ENV:Envelope xmlns:etns="http://exacttarget.com" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:ns0="http://exacttarget.com/wsdl/partnerAPI" xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> 
    <SOAP-ENV:Header> 
    </SOAP-ENV:Header> 
    <ns1:Body> 
     <ns0:CreateRequest> 
     <ns0:Objects xsi:type="ns0:TriggeredSend"> 
      <ns0:TriggeredSendDefinition> 
       <ns0:CustomerKey>abc</ns0:CustomerKey> 
      </ns0:TriggeredSendDefinition> 
     </ns0:Objects> 
     </ns0:CreateRequest> 
    </ns1:Body> 
</SOAP-ENV:Envelope> 

С кодом ниже я подобраться:

var soap = require('soap') 

soap.createClient(url, function(err, client){ 
    client.Create({ 
     Objects: { 
      TriggeredSendDefinition: { 
       CustomerKey: 'abc' 
      } 
     }, 
     function(err, response) {}) 
    }); 
}); 

Который дает мне это (без xsi:type) :

<ns0:CreateRequest> 
    <ns0:Objects> 
    <ns0:TriggeredSendDefinition> 
     <ns0:CustomerKey>abc</ns0:CustomerKey> 
    </ns0:TriggeredSendDefinition> 
    </ns0:Objects> 
</ns0:CreateRequest> 

Как указать TriggeredSend тип для Objects элемент?

ответ

2

Существует специальный attributes узел можно добавить, чтобы указать xsi:type:

var soap = require('soap') 

soap.createClient(url, function(err, client){ 
    client.Create({ 
     Objects: { 
      attributes: { 
       xsi_type: { 
        type: 'TriggeredSend', 
        xmlns: 'http://exacttarget.com/wsdl/partnerAPI' 
       } 
      } 
      TriggeredSendDefinition: { 
       CustomerKey: 'abc' 
      } 
     }, 
     function(err, response) {}) 
    }); 
}); 

Который производит:

<ns0:CreateRequest> 
    <ns0:Objects xsi:type="ns0:TriggeredSend"> 
     <ns0:TriggeredSendDefinition> 
     <ns0:CustomerKey>abc</ns0:CustomerKey> 
     </ns0:TriggeredSendDefinition> 
    </ns0:Objects> 
</ns0:CreateRequest> 

 Смежные вопросы

  • Нет связанных вопросов^_^