2

node-soap パッケージを使用して、ExactTarget SOAP Web サービスに指定された型付きオブジェクトCreateを渡すメソッドを呼び出そうとしています。TriggeredSendObjects

次のようなものを作成する必要があります ( に注意してください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

4

1 に答える 1

5

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>
于 2014-10-03T16:36:25.940 に答える