Skip to content

Instantly share code, notes, and snippets.

@rruhlen
Created May 17, 2018 23:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save rruhlen/7e1258b4346b2a47bfc052bd8a598d8d to your computer and use it in GitHub Desktop.
Save rruhlen/7e1258b4346b2a47bfc052bd8a598d8d to your computer and use it in GitHub Desktop.
Batch delete articles and topics via dev console.
public with sharing class BatchDeleteArticles implements Database.batchable<SObject>,Database.allowscallouts,Database.Stateful{
private String configId;
public BatchDeleteArticles (String configId) {
this.configId = configId;
}
public BatchDeleteArticles () {
}
public Iterable<SObject> start(Database.batchableContext batchableContext) {
String kbObject = 'knowledge__kav'; //MigrationHelper.getKnowledgeObject(configId);
List<SObject> dral = Database.query('select id, KnowledgeArticleId, publishstatus from ' + kbObject + ' where publishstatus = \'Draft\'');
List<SObject> onal = Database.query('select id, KnowledgeArticleId, publishstatus from ' + kbObject + ' where publishstatus = \'Online\'');
List<SObject> al = new List<SObject>();
al.addall(dral);
al.addall(onal);
return al;
}
public void execute(Database.BatchableContext batchableContext, List<SObject> al) {
List<SObject> dral = new List<SObject>();
List<SObject> onal = new List<SObject>();
for (SObject a:al){
if ((String)a.get('PublishStatus') == 'Draft'){
KbManagement.PublishingService.deleteDraftArticle((String)a.get('KnowledgeArticleId'));
}
if ((String)a.get('PublishStatus') == 'Online'){
KbManagement.PublishingService.archiveOnlineArticle((String)a.get('KnowledgeArticleId'),null);
KbManagement.PublishingService.deleteArchivedArticle((String)a.get('KnowledgeArticleId'));
}
}
}
public void finish(Database.BatchableContext bc) {
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment