[SalesForce] SOAP RetrieveRequest returns internal Data Extension names

I've raised this support ticket with ExactTarget Support, but they have been to assist so I am posting my question here.

I am using a SOAP RetrieveRequest (with a Retrieve SOAPAction) to get all data extension names using the following envelope:

<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header>
        <wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
            <wsse:UsernameToken wsu:Id="UsernameToken-32259181" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
                <wsse:Username>username</wsse:Username>
                <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">password</wsse:Password>
            </wsse:UsernameToken>
        </wsse:Security>
    </soapenv:Header>
    <soapenv:Body>
        <RetrieveRequestMsg xmlns="http://exacttarget.com/wsdl/partnerAPI">
            <RetrieveRequest>
                <ObjectType>DataExtension</ObjectType>
                <Properties>CustomerKey</Properties>
                <Properties>Name</Properties>
            </RetrieveRequest>
        </RetrieveRequestMsg>
    </soapenv:Body>
</soapenv:Envelope>

This works as expected, but the SOAP response returns several other names that don't appear in my ExactTarget MC dashboard:

  • _MobileAddress
  • _MobileSubscription
  • _PushAddress
  • _PushTag
  • first list
  • second list
  • qwerqwer

I've been informed that these are "internal extensions".

Surely this is a bug? Why would these internal DE's be returned? Is there a way of using a filter to exclude these internal extensions in the SOAP response? Perhaps you can use regex in filters, but I'm not sure.

Best Answer

The system ones can be easily identified because their names starts with an underscore, unfortunately there is not a way to filter those out in the API request. They would need to be filtered out after the data is returned from the API.

Related Topic