• Accueil / Salesforce / Comment mettre à…
, Comment mettre à jour en masse l&rsquo;article Knowledge dans Salesforce ? – SFDCPanthère<span class="wtr-time-wrap after-title"><span class="wtr-time-number">2</span> minutes de lecture</span>

Comment mettre à jour en masse l’article Knowledge dans Salesforce ? – SFDCPanthère2 minutes de lecture


, Comment mettre à jour en masse l&rsquo;article Knowledge dans Salesforce ? – SFDCPanthère<span class="wtr-time-wrap after-title"><span class="wtr-time-number">2</span> minutes de lecture</span>

Bonjour #Trailblazers,

Bienvenue à nouveau, dans cette vidéo, nous expliquerons comment mettre à jour en masse des articles dans Salesforce à l’aide d’Apex.

Le problème est parfois que l’administrateur Salesforce publie les articles Salesforce Knowledge sans les mettre à la disposition des clients ou des utilisateurs invités pour la communauté Salesforce.

, Comment mettre à jour en masse l&rsquo;article Knowledge dans Salesforce ? – SFDCPanthère<span class="wtr-time-wrap after-title"><span class="wtr-time-number">2</span> minutes de lecture</span>

Maintenant, si l’administrateur souhaite cocher la case « Visible dans la base de connaissances publique » pour plusieurs articles, vous devez d’abord modifier tous les articles un par un, ce qui prendra beaucoup de temps et de maux de tête.

Je suis venu avec le travail autour duquel vous pouvez utiliser pour mettre à jour les articles en vrac.

List knowArticleRec = [select id, IsVisibleInPkb, KnowledgeArticleId 
from Knowledge__kav where PublishStatus = 'Online' and Id= 'ka0P0000000EUzHIAW'];
Id kaId = knowArticleRec[0].KnowledgeArticleId;

// Create a new version of knowledge article and do not unpublish.
KbManagement.PublishingService.editOnlineArticle(knowArticleRec[0].KnowledgeArticleId, false);

knowArticleRec = [SELECT Id, KnowledgeArticleId, PublishStatus, IsVisibleInPkb FROM Knowledge__kav WHERE KnowledgeArticleId = : kaId and PublishStatus = 'Draft' limit 1];

IsVisibleInApp (internal app), and IsVisibleInPkb (Public KnowledgeBase)
Knowledge__kav newKAV = new Knowledge__kav(id = knowArticleRec[0].Id, IsVisibleInPkb = true);
update newKav;

// Republish without a new version
KbManagement.PublishingService.publishArticle(kaId, false);

Map kavsToProcess = new Map([select Id, Title,IsVisibleInPkb, knowledgearticleid from Knowledge__kav where IsLatestVersion = true and IsVisibleInPkb = false And PublishStatus = 'Online' limit 76]);

Set knowledgeArticleIds = new Set();
for (Knowledge__kav thisKAV : kavsToProcess.values()){
    knowledgeArticleIds.add(thisKAV.KnowledgeArticleId);
}

// Query for EXISTING draft versions of our published articles. We'll exclude them from our updates.
List draftKAVs = [select id,IsVisibleInPkb,PublishStatus, KnowledgeArticleId,Title from Knowledge__kav where PublishStatus = 'Draft' and KnowledgeArticleId in : knowledgeArticleIds];

List toUpdate = new List();

Set konwledgeArticlesWithDrafts = new Set();
for (Knowledge__kav draftKAV : draftKAVs){
    konwledgeArticlesWithDrafts.add(draftKav.KnowledgeArticleId);
}

for (Knowledge__kav thisKAV : kavsToProcess.values()){
    if (!konwledgeArticlesWithDrafts.contains(thisKav.KnowledgeArticleId)) {
        KbManagement.PublishingService.editOnlineArticle(thisKAV.KnowledgeArticleId, false);
    }
}

kavsToProcess = new Map([SELECT Id, KnowledgeArticleId, IsVisibleInPkb, PublishStatus FROM Knowledge__kav WHERE KnowledgeArticleId IN : kaIds and PublishStatus = 'Draft' and (NOT(Id IN : kasWithDrafts))]);

for (Knowledge__kav thisKAV : kavsToProcess.values()) {
    toUpdate.add(new Knowledge__kav (Id = thisKAV.Id, IsVisibleInPkb = true));
}
update toUpdate;

for (Knowledge__kav thisKAV : kavsToProcess.values()){
	if (!kasWithDrafts.contains(thisKav.KnowledgeArticleId)) {
	     KbManagement.PublishingService.publishArticle(thisKAV.KnowledgeArticleId, false);
	}
}

  1. Comme il s’agit d’un processus qui prend du temps, il ne sera pas en mesure de traiter tous les articles à la fois
  2. J’ai testé cela pour 75 enregistrements à la fois et cela fonctionnait comme un charme

Merci d’avoir lu



Source de l’article traduit automatiquement en Français

Besoin d'aide ?
Vous utilisez Pardot depuis un certain temps mais vous n'êtes pas sûr d'en
exploiter tout le potentiel

Notre analyse de votre Pardot offerte dès aujourd'hui
Merci, vous pouvez compléter notre questionnaire
Nous allons revenir vers vous rapidement !

Fermer