Retrieve the Results of an Import

Retrieve the results of an import to determine if information was successfully brought into Marketing Cloud Engagement.

The system processes imports asynchronously. If your request doesn’t output a result, try again later.

How to Retrieve the Results of an Import 

Use these code examples to construct your own API calls. These examples output the status of the request.

  • New – The application received the request.
  • Processing – The application is processing the request.
  • Completed – The application has finished processing the request.
  • Error – An error occurred while processing the request.
  • IOWork – The application is writing information to disk.
  • Unknown – The status is unavailable.

Sample .NET Code 

1using System;
2using System.Configuration;
3using System.Data;
4using System.Linq;
5using System.Web;
6using System.Web.Security;
7using System.Web.UI;
8using System.Web.UI.HtmlControls;
9using System.Web.UI.WebControls;
10using System.Web.UI.WebControls.WebParts;
11using System.Xml.Linq;
12using etAPI;
13public partial class ImportResultsSummaryRetrieve : System.Web.UI.Page
14{
15    //Global Variables
16    private SoapClient client = new SoapClient();
17    protected void Page_Load(object sender, EventArgs e)
18    {
19        //Authenticate
20        client.ClientCredentials.UserName.UserName = System.Configuration.ConfigurationSettings.AppSettings["wsUserName"];
21        client.ClientCredentials.UserName.Password = System.Configuration.ConfigurationSettings.AppSettings["wsPassword"];
22        if (!IsPostBack)
23        {
24        }
25    }
26    protected void btnSubmit_Click(object sender, EventArgs e)
27    {
28        try
29        {
30            //Local variables
31            APIObject[] Results;
32            String requestID;
33            String status;
34            // Instantiate the retrieve request
35            RetrieveRequest rr = new RetrieveRequest();
36            rr.ObjectType = "ImportResultsSummary";//required
37            // Setting up a simple filter
38            SimpleFilterPart sf = new SimpleFilterPart();
39            sf.SimpleOperator = SimpleOperators.equals;
40            sf.Property = "TaskResultID";
41            sf.Value = new String[] { "14112914" };
42            //Add Filter
43            rr.Filter = sf;
44            rr.Properties = new string[] { "RowID", "ImportStatus", "NumberSuccessful", "NumberDuplicated", "NumberErrors", "TotalRows" };//required
45            status = client.Retrieve(rr, out requestID, out Results);
46            lblMessage.Text += "<br/>Total Records: " + Results.Length;
47        }
48        catch (Exception ex)
49        {
50            lblMessage.Text += ex.Message;
51            lblMessage.Text += "<br/>";
52        }
53    }
54}

Sample .NET Code (Using For Loop to Print Out Results For Each New Object) 

1// Instantiate variables
2string requestID;
3// Filter by TaskResultID (the unique id for the import)
4SimpleFilterPart sfp = new SimpleFilterPart();
5sfp.Property = "TaskResultID";
6sfp.SimpleOperator = SimpleOperators.equals;
7sfp.Value = new string[] { "1234" };
8// Create the RetrieveRequest
9RetrieveRequest request = new RetrieveRequest();
10request.ObjectType = "ImportResultsSummary";
11request.Filter = sfp;
12request.Properties = new string[] { "ImportDefinitionCustomerKey", "ImportType", "ImportStatus", "ID", "ObjectID", "NumberDuplicated", "NumberErrors", "NumberSuccessful", "DestinationID", "TaskResultID" };
13// Execute the RetrieveRequest
14APIObject[] results;
15string status = integrationFramework.Retrieve(request, out requestID, out results);
16// Output the results
17System.Text.StringBuilder sb = new System.Text.StringBuilder();
18sb.Append("Retrieve Import Results Summary");
19sb.AppendFormat("\nOverall result: {0}.  RequestID: {1}", status, requestID);
20// Print out results for each new object created
21for (int cntr = 0; cntr < results.Length; cntr++)
22{
23       sb.Append(string.Format("\n ---- Index {0}", cntr));
24       ImportResultsSummary id = results[cntr] as ImportResultsSummary;
25       sb.Append("\n ID: " + id.ID);
26       sb.Append("\n ObjectID: " + id.ObjectID);
27       sb.Append("\n CustomerKey: " + id.ImportDefinitionCustomerKey);
28       sb.Append("\n ImportType: " + id.ImportType);
29       sb.Append("\n ImportStatus: " + id.ImportStatus);
30       sb.Append("\n NumberDuplicated: " + id.NumberDuplicated);
31       sb.Append("\n NumberErrors: " + id.NumberErrors);
32       sb.Append("\n NumberSuccessful: " + id.NumberSuccessful);
33       sb.Append("\n DestinationID: " + id.DestinationID);
34       sb.Append("\n TaskResultID: " + id.TaskResultID);
35       sb.Append("\n");
36}
37Console.WriteLine(sb.ToString());

Output 

1Retrieve Import Results Summary Overall result: OK.  RequestID: debe61e9-b07f-4eb1-aaba-31c2e2178d61  ---- Index 0 ID: 0 ObjectID: d05a44f3-13dc-dc11-bfbd-0017a43c44a8 CustomerKey: cn2import ImportType: Data Extensions ImportStatus: Completed NumberDuplicated: 0 NumberErrors: 1 NumberSuccessful: 406 DestinationID: cn2 TaskResultID: 1234

Sample Java Code (Axis 1.4) 

1public void testRetrieveImportDefinitionSummary() throws RemoteException {
2        try {
3            Soap stub = init();
4            RetrieveRequest request = new RetrieveRequest();
5            request.setObjectType("ImportResultsSummary")
6            ImportDefinition impDef = new ImportDefinition();
7            impDef.setCustomerKey("Import_To_DE_Market2Lead_Key");
8            String[] string = {"ImportDefinitionCustomerKey", "ImportType", "ImportStatus", "ID", "ObjectID", "NumberDuplicated", "NumberErrors", "NumberSuccessful", "DestinationID", "TaskResultID"};
9            request.setProperties(string);
10            RetrieveRequestMsg requestMsg = new RetrieveRequestMsg();
11            SimpleFilterPart filterPart = new SimpleFilterPart();
12            filterPart.setProperty("TaskResultID");
13            String[] values = {"12345"};
14            filterPart.setValue(values);
15            filterPart.setSimpleOperator(SimpleOperators.equals);
16            request.setFilter(filterPart);
17            requestMsg.setRetrieveRequest(request);
18            RetrieveResponseMsg responseMsg = stub.retrieve(requestMsg);  //Soap call to request Account object
19            System.out.println(responseMsg.getOverallStatus());
20        } catch (RemoteException e) {
21            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
22        } catch (IOException e) {
23            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
24        }
25    }
26
27    private DataExtension getDataExtension(Soap stub) throws RemoteException {
28        DataExtension dataExtensionObject = null;
29
30        RetrieveRequest request = new RetrieveRequest();
31        request.setObjectType("DataExtension");                  //You can replace objectTypes with following Values :: OpenEvent,NotSentEvent,BounceEvent
32        // String[] stringArray = new String[]{"ObjectID", "CustomerKey", "Name", "CreatedDate", "ModifiedDate", "Client.ID", "Description", "IsSendable", "IsTestable", "Template.CustomerKey", "SendableSubscriberField.Name"};
33        String[] stringArray = new String[]{"ObjectID", "Client.ID", "CustomerKey", "Name", "CreatedDate", "ModifiedDate", "Description", "IsSendable", "IsTestable", "Template.CustomerKey"};
34        request.setProperties(stringArray);
35        SimpleFilterPart filter = new SimpleFilterPart();
36        filter.setProperty("CustomerKey");
37        String[] filterValues = {"Test2_Key"};
38        filter.setValue(filterValues);
39        filter.setSimpleOperator(SimpleOperators.equals);
40        request.setFilter(filter);
41        RetrieveRequestMsg requestMsg = new RetrieveRequestMsg();
42        requestMsg.setRetrieveRequest(request);
43        RetrieveResponseMsg responseMsg = stub.retrieve(requestMsg);
44        System.out.println("Overall request status ::: " + responseMsg.getOverallStatus());
45        dataExtensionObject = (DataExtension) responseMsg.getResults(0);
46        return dataExtensionObject;
47    }
48}

Sample SOAP Envelope 

1<?xml version="1.0" encoding="utf-8"?>
2<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">
3   <soapenv:Header>
4      <wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
5         <wsse:UsernameToken wsu:Id="UsernameToken-32259181" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
6            <wsse:Username>XXXXX</wsse:Username>
7            <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">XXXXX</wsse:Password>
8         </wsse:UsernameToken>
9      </wsse:Security>
10   </soapenv:Header>
11   <soapenv:Body>
12      <RetrieveRequestMsg xmlns="http://exacttarget.com/wsdl/partnerAPI">
13         <RetrieveRequest>
14            <ObjectType>ImportResultsSummary</ObjectType>
15            <Properties>ImportDefinitionCustomerKey</Properties>
16            <Properties>ImportType</Properties>
17            <Properties>ImportStatus</Properties>
18            <Properties>ID</Properties>
19            <Properties>ObjectID</Properties>
20            <Properties>NumberDuplicated</Properties>
21            <Properties>NumberErrors</Properties>
22            <Properties>NumberSuccessful</Properties>
23            <Properties>DestinationID</Properties>
24            <Properties>TaskResultID</Properties>
25     <Filter xsi:type="ns1:SimpleFilterPart" xmlns:ns1="http://exacttarget.com/wsdl/partnerAPI">
26               <Property>TaskResultID</Property>
27               <SimpleOperator>equals</SimpleOperator>
28               <Value>125574039</Value>
29            </Filter>
30         </RetrieveRequest>
31      </RetrieveRequestMsg>
32   </soapenv:Body>
33</soapenv:Envelope>

See Also