// Get DfpUser from "~/dfp.properties".
DfpUser user = new DfpUser();
// Get the LineItemCreativeAssociationService.
LineItemCreativeAssociationServiceInterface licaService =
user.getService(DfpService.V201208.LINEITEMCREATIVEASSOCIATION_SERVICE);
// Set the line item to get LICAs by.
Long lineItemId = Long.parseLong("INSERT_LINE_ITEM_ID_HERE");
// Create statement text to select active LICAs for a given line item.
String statementText = "WHERE lineItemId = :lineItemId and status = :status LIMIT 500";
Statement filterStatement =
new StatementBuilder("").putValue("lineItemId", lineItemId).putValue("status",
LineItemCreativeAssociationStatus.ACTIVE.toString()).toStatement();
// Set defaults for page and offset.
LineItemCreativeAssociationPage page = new LineItemCreativeAssociationPage();
int offset = 0;
List<Long> creativeIds = new ArrayList<Long>();
do {
// Create a statement to page through active LICAs.
filterStatement.setQuery(statementText + " OFFSET " + offset);
// Get LICAs by statement.
page = licaService.getLineItemCreativeAssociationsByStatement(filterStatement);
if (page.getResults() != null) {
int i = page.getStartIndex();
for (LineItemCreativeAssociation lica : page.getResults()) {
System.out.println(i + ") LICA with line item ID \"" + lica.getLineItemId()
+ "\", creative ID \"" + lica.getCreativeId() + "\", and status \""
+ lica.getStatus() + "\" will be deactivated.");
creativeIds.add(lica.getCreativeId());
i++;
}
}
offset += 500;
} while (offset < page.getTotalResultSetSize());
System.out.println("Number of LICAs to be deactivated: " + creativeIds.size());
if (creativeIds.size() > 0) {
// Modify statement for action.
filterStatement.setQuery("WHERE lineItemId = :lineItemId and creativeId IN ("
+ StringUtils.join(creativeIds, ",") + ")");
// Create action.
DeactivateLineItemCreativeAssociations action =
new DeactivateLineItemCreativeAssociations();
// Perform action.
UpdateResult result =
licaService.performLineItemCreativeAssociationAction(action, filterStatement);
// Display results.
if (result != null && result.getNumChanges() > 0) {
System.out.println("Number of LICAs deactivated: " + result.getNumChanges());
} else {