Utiliser les articles de base de connaissances

La nouvelle expérience de gestion des connaissances de Dynamics 365 Customer Service vous permet de créer plusieurs articles de Base connaissances avec le support de contrôle des versions et de traduction. La nouvelle expérience de gestion des connaissances utilise l’entité KnowledgeArticle pour stocker et gérer les connaissances de manière native dans Dynamics 365 Customer Service.

Note

Les entités KBArticle, KBArticleTemplate et KBArticleComment sont désormais obsolètes. Cela signifie que vous ne devez plus les utiliser. Vous devez utiliser la nouvelle entité KnowledgeArticle pour la gestion des connaissances dans Dynamics 365 Customer Service. Pour plus d’informations, consultez la section Entités de gestion des connaissances déconseillées à la fin de cette rubrique.

Créer un article de la Base de connaissances

Lorsque vous créez un enregistrement d’article de la Base de connaissances, Dynamics 365 Customer Service crée en interne un élément racine pour l’enregistrement. L’élément racine agit comme un conteneur pour le principal article de la Base de connaissances créé par vous avec toutes les versions et traductions d’articles que vous pourrez créer par la suite. Le schéma suivant décrit le modèle d'entité pour l'entité KnowledgeArticle.

Modèle d’entité KnowledgeArticle.

Lorsque vous créez un enregistrement d’article de la Base de connaissances, il est créé à l’état Draft. Utilisation de la nouvelle entité KnowledgeArticle, vous pouvez créer un article en spécifiant son contenu et sa mise en forme au format HTML. Vous pouvez spécifier votre propre valeur pour l’attribut KnowledgeArticle.ArticlePublicNumber en créant par programme un enregistrement d’article de la Base de connaissances ; sinon, la valeur est générée automatiquement selon le format spécifié dans la zone Paramètres Dynamics 365 Customer Service dans le client Web. L’attribut KnowledgeArticle.ArticlePublicNumber stocke l’ID exposé aux clients, aux partenaires et aux autres utilisateurs externes pour référencer ou rechercher les articles de la Base de connaissances, et reste le même dans les versions et les traductions de l’article de la Base de connaissances.

L’exemple de code suivant montre comment créer un enregistrement d’article de la Base de connaissances.

KnowledgeArticle newKnowledgeArticle = new KnowledgeArticle  
{  
   Title = "Sample Knowledge Article",  
   Content = "<p>This is the article content.</p>"  
};  
knowledgeArticleId = _serviceProxy.Create(newKnowledgeArticle);  
Console.WriteLine("Created {0}", newKnowledgeArticle.Title);  

Créer les versions principale et secondaire d’un article de la Base de connaissances

Lorsque vous créez un enregistrement d’article de la Base de connaissances, la version principale est automatiquement définie sur 1 et la version secondaire sur 0. Utilisez le message CreateKnowledgeArticleVersion (Action CreateKnowledgeArticleVersion ou CreateKnowledgeArticleVersionRequest) pour créer une version principale ou secondaire d’un article de la Base de connaissances. Dans le message de demande, définissez IsMajor sur true pour créer une version principale ; définissez-le sur false pour créer une version secondaire. Le nouvel enregistrement de version qui est créé utilise :

  • KnowledgeArticle.RootArticleId pour maintenir l’association avec l’enregistrement d’article de la Base de connaissances racine.

  • KnowledgeArticle.PreviousArticleContentId pour pointer vers la version d’enregistrement précédente.

L’exemple de code suivant montre comment créer la version principale d’un article de la Base de connaissances à l’aide de CreateKnowledgeArticleVersionRequest.

CreateKnowledgeArticleVersionRequest versionRequest = new CreateKnowledgeArticleVersionRequest  
{  
   Source = new EntityReference(KnowledgeArticle.EntityLogicalName, knowledgeArticleId),  
   IsMajor = true  
};  
CreateKnowledgeArticleVersionResponse versionResponse = (CreateKnowledgeArticleVersionResponse)_serviceProxy.Execute(versionRequest);  

Créer une traduction de l’article de la Base de connaissances

Utilisez CreateKnowledgeArticleTranslation Action (API web) ou CreateKnowledgeArticleTranslationRequest (service d’organisation) pour créer une traduction d’un enregistrement d’article de la Base de connaissances. Vous pouvez traduire votre article de la Base de connaissances dans plus de 150 langues, et des informations sur ces langues prises en charge sont accessibles dans la nouvelle entité LanguageLocale.

Pour plus d’informations, voir : LanguageLocale Entity.

Grâce à CreateKnowledgeArticleTranslation Action (API web) ou CreateKnowledgeArticleTranslationRequest (service d’organisation) crée un nouvel enregistrement d’article de Base de connaissances avec le titre, le contenu, la description et les mots clés copiés de l’enregistrement source vers le nouvel enregistrement, et la langue du nouvel enregistrement dont la spécification a été faite dans la demande. Vous devez spécifier si le nouvel enregistrement sera une version principale ou secondaire. Le nouvel enregistrement utilise l’attribut KnowledgeArticle.ParentArticleContentId pour maintenir l’association avec l’enregistrement principal de l’article de la Base de connaissances.

Après avoir exécuté ce message et obtenu une réponse, récupérez l’enregistrement d’article de la Base de connaissances à partir de l’objet de réponse, puis mettez à jour le titre, le contenu, la description et les mots clés pour ajouter le contenu traduit.

L’exemple de code suivant montre comment créer la traduction d’un article de la Base de connaissances à l’aide de CreateKnowledgeArticleTranslationRequest :

CreateKnowledgeArticleTranslationRequest translationRequest = new CreateKnowledgeArticleTranslationRequest  
{  
   Source = new EntityReference(KnowledgeArticle.EntityLogicalName, knowledgeArticleId),  
   Language = new EntityReference(LanguageLocale.EntityLogicalName, languageLocaleId), //languageLocaleId = GUID of the Primary Key of LanguageLocale record  
   IsMajor = true    // Creating a major version   
};  
CreateKnowledgeArticleTranslationResponse translationResponse = (CreateKnowledgeArticleTranslationResponse)_serviceProxy.Execute(translationRequest);  
  
// Retrieve the new knowledge article record  
KnowledgeArticle respObject = (KnowledgeArticle)_serviceProxy.Retrieve(KnowledgeArticle.EntityLogicalName,   
      translationResponse.CreateKnowledgeArticleTranslation.Id, new ColumnSet(true));  

Note

La valeur GUID de la clé primaire (LanguageLocaleId) pour chaque enregistrement de langue dans l’entité LanguageLocale est la même dans toutes les organisations Dynamics 365 Customer Service.

Cycle de vie d’un article de la Base de connaissances : Modifier le statut d’un article de la Base de connaissances

Pendant son cycle de vie, un article de la Base de connaissances peut avoir l’un des états suivants :

  • 0 : Brouillon (après la création d’un article de la Base de connaissances)

  • 1 : Approuvé (après l’approbation d’un article de la Base de connaissances)

  • 2 : Planifié (après la planification d’un article de la Base de connaissances)

  • 3 : Publié (après la publication d’un article de la Base de connaissances)

  • 4 : Expiré (après l’expiration d’un article de la Base de connaissances en fonction de la date d’expiration spécifiée lors de la publication)

  • 5 : Archivé (après l’archivage d’un article de la Base de connaissances)

  • 6 : Ignoré (après la non prise en compte d’un article de la Base de connaissances)

Pour modifier l’état de l’article, utilisez le message Update dans l’enregistrement d’article de la Base de connaissances pour mettre à jour l’attribut KnowledgeArticle.StateCode. Pour les types à liaison anticipée, utilisez l’énumération KnowledgeArticleState pour définir les états possibles. Pour plus d’informations : Effectuer des opérations spécialisées à l’aide de la fonction de mise à jour.

L’exemple de code suivant montre comment publier un enregistrement d’article de la Base de connaissances.

// Retrieve the knowledge article record  
KnowledgeArticle myKnowledgeArticle = (KnowledgeArticle)_serviceProxy.Retrieve(  
        KnowledgeArticle.EntityLogicalName, knowledgeArticleId, new ColumnSet("statecode"));  
  
// Update the knowledge article record  
myKnowledgeArticle.StateCode = KnowledgeArticleState.Published;  
UpdateRequest updateKnowledgeArticle = new UpdateRequest  
{  
    Target = myKnowledgeArticle  
};  
_serviceProxy.Execute(updateKnowledgeArticle);  
  

Associer un article de la Base de connaissances à une instance d’entité Dynamics 365 Customer Service

Lorsque vous activez la recherche dans la Base de connaissances intégrée pour une entité Dynamics 365 Customer Service à l’aide du client Web, une relation plusieurs-à-plusieurs, msdyn_<Nom_Entité>_knowledgearticle, est créée automatiquement. Vous pouvez utiliser cette relation pour associer ou lier par programme une instance KnowledgeArticle avec une instance d’entité Dynamics 365 Customer Service. Lorsque vous associez une instance KnowledgeArticle à une instance d’entité, un enregistrement pour la relation est créé dans une entité avec intersection appelée : msdyn_<Nom_Entité>_knowledgearticle. Par exemple, lorsque vous associez l’instance KnowledgeArticle à une instance Account pour la première fois, une entité avec intersection appelée msdyn_account_knowledgearticle est créée, et un enregistrement avec le mappage d’association est créé dans l’entité avec intersection. Par défaut, l’entité Incident (Incident) est activée pour la recherche dans la Base de connaissances intégrée, et lorsque vous liez un enregistrement KnowledgeArticle à un enregistrement Incident, un enregistrement d’association est créé dans l’entité avec intersection KnowledgeArticleIncident.

L’exemple de code suivant montre comment associer une instance KnowledgeArticle à une instance Account :

// Associate the knowledge article record with an account record  
  
// Step 1: Create a collection of knowledge article records that will be   
// associated to the account. In this case, we have only a single  
// knowledge article record to be associated.  
EntityReferenceCollection relatedEntities = new EntityReferenceCollection();  
relatedEntities.Add(new EntityReference(KnowledgeArticle.EntityLogicalName, knowledgeArticleId));  
  
// Step 2: Create an object that defines the relationship between knowledge article record and account record.  
// Use the many-to-many relationship name (msdyn_account_knowledgearticle) between knowledge article  
// record and account record.  
Relationship newRelationship = new Relationship("msdyn_account_knowledgearticle");  
  
// Step 3: Associate the knowledge article record with the account record.  
_serviceProxy.Associate(Account.EntityLogicalName, accountId, newRelationship, relatedEntities);  
  

Incrémenter le nombre de vues des articles de la Base de connaissances

Utilisez le message IncrementKnowledgeArticleViewCountRequest pour incrémenter le nombre de vues d’un enregistrement d’article de la Base de connaissances pour un jour donné dans l’entité KnowledgeArticleViews. Si un enregistrement n’existe pas pour un article de la Base de connaissances pour un jour spécifié, un enregistrement est créé, puis la valeur du nombre est spécifiée dans l’attribut KnowledgeArticleViews.KnowledgeArticleView. Si un enregistrement existe déjà pour un article de la Base de connaissances pour le jour spécifié, le nombre de vues est simplement incrémenté dans l’attribut KnowledgeArticleViews.KnowledgeArticleView de l’enregistrement existant.

Les articles de la Base de connaissances dans Dynamics 365 Customer Service, notamment leurs versions et traductions, sont indexés en texte intégral et prennent en charge la recherche en texte intégral SQL server. Pour plus d’informations sur la recherche en texte intégral, voir SQL Server : Recherche en texte intégral.

Utilisez le message FullTextSearchKnowledgeArticleRequest pour rechercher l’article de la Base de connaissances à partir de vos applications afin de trouver les informations souhaitées. Le message FullTextSearchKnowledgeArticleRequest vous permet d’utiliser la correspondance des thèmes de flexion (permet à un autre temps ou une autre inflexion d’être substitué(e) pour le texte de recherche) et de spécifier des critères de requête (avec FetchXML ou QueryExpression pour spécifier le filtrage, le classement, le tri et la pagination) pour rechercher des articles de la Base de connaissances avec un texte spécifique. Vous pouvez également choisir de supprimer plusieurs versions d’un même article dans les résultats de recherche et de filtrer sur l’état de l’article de la Base de connaissances lors de la recherche d’un texte.

Entités de gestion des connaissances déconseillées

Les entités héritées suivantes ont été rendues obsolètes. Pour plus d’informations : Entités de la base de connaissances obsolètes

Les anciennes entités de la base de connaissances ne sont plus accessibles à compter du 1er décembre 2020. Nous vous recommandons vivement de passer à l’entité KnowledgeArticle. Pour plus d’informations sur la création d’un article de la base de connaissances dans Unified Interface, consultez Créer et gérer des articles de la base de connaissances.  

Utilisez les éléments suivants pour obtenir de l’aide sur la migration :

  • Utilisez un kit de développement logiciel, une APIweb ou Microsoft Power Automate selon vos scénarios.
  • Utilisez l’outil de migration open source avec Licence MIT.

Important

  • L’outil de migration open source n’est pas pris en charge par Microsoft et peut devoir être modifié pour s’adapter à vos scénarios.
  • Exécutez toujours un environnement de test avant de l’utiliser en production.
  • Vérifiez la licence et le fichier Lisez-moi avant d’utiliser l’outil.

Voir aussi