Я пытаюсь реализовать требование, при котором несколько статей базы знаний, основанных на приоритете (настраиваемый список выбора), будут автоматически опубликованы сразу после их создания.

В настоящее время я делаю это с рабочим процессом и действием знаний. Попытался использовать KbManagement.PublishingService.publishArticle в триггере, но доступно ли это только для Classic Knowledge, а не для Lightning Knowledge?

Кроме того, помимо того, что я делаю, есть ли лучший подход к решению этой проблемы?

1
Sudipta Deb 16 Мар 2020 в 07:25

2 ответа

Лучший ответ

KbManagement.PublishingService.publishArticle поддерживается как для классического, так и для молнии.

Вам нужно передать ему поле Knowledge__kav.KnowledgeArticleId, а не Knowledge__kav.Id.

Пример кода

public class TriggerHandlerOnKnowledge {
    public static void run() {
        if(Trigger.isAfter && Trigger.isInsert) {
            publishHighPriority((List<Knowledge__kav>)Trigger.new);            
        }
    }

    private static void publishHighPriority(List<Knowledge__kav> articles) {
        for(Knowledge__kav article: articles) {
            if(article.priority__c == 'High') {
                KbManagement.PublishingService.publishArticle(article.KnowledgeArticleId, false);
            }
        }
    }
}
4
Anmol Kumar 16 Мар 2020 в 08:23
Да, это то, что я делал. Моя проблема в том, что этот API не является объемным. Я не уверен, как это повлияет на ограничения Salesforce, такие как DML и все такое.
 – 
Sudipta Deb
16 Мар 2020 в 16:45
1
Да, это недостаток, однако, учитывая, что статьи о реальных сценариях в основном создаются авторами по одному. Чтобы быть в безопасности, вы можете добавить дополнительную проверку размера Trigger.new и делегировать задание пакетному классу в случае массовой загрузки.
 – 
Anmol Kumar
16 Мар 2020 в 17:56
Имеет смысл. Спасибо, Анмол.
 – 
Sudipta Deb
16 Мар 2020 в 19:44

Вы можете использовать действия знаний (обновления полей рабочего процесса), чтобы опубликовать новую версию

-1
venky 12 Июл 2020 в 21:43
ОП говорит, что он уже использует рабочий процесс и действие знаний.
 – 
David Cheng
13 Июл 2020 в 00:47