I'm trying to create a email send definition object (user initiated) using a filter, but when I select Interections->User-Initiated Email on the Recipients Targeted Data Filters, it shows "MYFilterDefinition" (All Subscribers), even setting a specific List to my sendDefinitionList (as shown in the code below).
I also tried to configure filter.setDataSource (commented), but got the same result.
The code looks like this:
/* creating filter to remove domains from lists */
FilterDefinition filter = new FilterDefinition();
filter.setCustomerKey("filterCustomerKey");
SendDefinitionList sendDefinitionList = new SendDefinitionList();
sendDefinitionList.setSendDefinitionListType(SendDefinitionListTypeEnum.SOURCE_LIST);
sendDefinitionList.setDataSourceTypeID(DataSourceTypeEnum.FILTER_DEFINITION);
com.exacttarget.fuelsdk.internal.List lista = new com.exacttarget.fuelsdk.internal.List();
lista.setCustomerKey(sendConfiguration.getMmList().getEtList().getCustomerKey());
sendDefinitionList.setList( lista );
//filter.setDataSource(lista);
sendDefinitionList.setFilterDefinition(filter);
List<SendDefinitionList> sendDefinitionListCollection = new ArrayList<SendDefinitionList>();
sendDefinitionListCollection.add(sendDefinitionList);
SendClassification sc = new SendClassification();
sc.setCustomerKey(sendConfiguration.getMmSendClassification().getEtSendClassification().getCustomerKey());
String customerKey = "EmailSendDefinition" + sendConfiguration.getId();
EmailSendDefinition emailSendDefinition = new EmailSendDefinition();
emailSendDefinition.setName(customerKey);
emailSendDefinition.setCustomerKey(customerKey);
emailSendDefinition.setDescription(sendConfiguration.getMmEmail().getName());
emailSendDefinition.setDynamicEmailSubject(sendConfiguration.getMmEmail().getEtEmail().getSubject());
emailSendDefinition.setEmail( ObjectConverter.convertFromEtObject(sendConfiguration.getMmEmail().getEtEmail(), Email.class, true) );
emailSendDefinition.setEmailSubject(sendConfiguration.getMmEmail().getEtEmail().getSubject());
emailSendDefinition.setSendClassification( sc );
emailSendDefinition.getSendDefinitionList().add(sendDefinitionList);
CreateRequest createRequest = new CreateRequest();
createRequest.setOptions(new CreateOptions());
createRequest.getObjects().add(emailSendDefinition);
/* create a new user-initiated */
Soap soap = baseBean.getETClientInstance().getSOAPConnection().getSoap();
CreateResponse createResponse = soap.create(createRequest);
if(!createResponse.getOverallStatus().equals("OK")) {
..
}
Print of All Subscribers selected1
This post helped me a lot, but something is missing in java: https://code.exacttarget.com/question/how-do-you-create-filter-segment-empty-profile-attributes.
Can you see anything wrong of missing in the code? How do I apply a filter in a List or Data Extension of an EmailSendDefinition object ?