有关知识文章的操作

备注

功能可用性信息如下。

Dynamics 365 Contact Center—嵌入 Dynamics 365 Contact Center—独立 Dynamics 365 Customer Service
否​

利用新知识体验,您能够创建丰富的知识文章以及版本控制和翻译支持。 新知识体验使用 KnowledgeArticle 实体在 Dynamics 365 Customer Service 中以本机方式存储和管理知识。

备注

现在,已弃用了 KBArticleKBArticleTemplateKBArticleComment 实体。 这意味着我们不再希望您使用这些实体。 您必须使用更新的 KnowledgeArticle 实体在 Dynamics 365 Customer Service 中进行知识管理。 有关详细信息,请参阅本主题末尾的弃用的知识实体部分。

创建知识文章

当您创建知识文章记录时,Dynamics 365 Customer Service 会在内部为该记录创建根文章。 根文章充当您创建的主要知识文章以及您未来可能创建的所有文章版本和翻译的容器。 下图描述 KnowledgeArticle 实体的实体模型。

KnowledgeArticle 实体模型。

当您创建知识文章记录时,它是在 Draft 状态下创建的。 使用新 KnowledgeArticle 实体,您可以通过指定 HTML 格式的内容和格式来创建文章。 您可以为 KnowledgeArticle 指定自己的值。 ArticlePublicNumber 属性指定您自己的值;否则,该值会根据您在 Web 客户端上的 Dynamics 365 Customer Service 设置区域中指定的格式自动生成。 KnowledgeArticleArticlePublicNumber 属性存储向引用和查找知识文章的客户、合作伙伴和其他外部用户公开的 ID,并在知识文章版本和翻译之间保持相同。

以下示例代码显示如何创建知识文章记录。

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);  

创建知识文章的主要和次要版本

在创建知识文章记录时,主要版本将自动设置为 1,次要版本为 0。 使用 CreateKnowledgeArticleVersion 消息(CreateKnowledgeArticleVersion ActionCreateKnowledgeArticleVersionRequest)可创建知识文章的主要版本或次要版本。 在请求消息中,将 IsMajor 设置为 true 可创建主要版本;将其设置为 false 可创建次要版本。 新版本记录是使用以下属性创建的:

  • KnowledgeArticleRootArticleId 属性,用于维护与根知识文章记录的关联。

  • KnowledgeArticlePreviousArticleContentId 属性,用于指向记录的以前版本。

以下示例代码显示如何使用 CreateKnowledgeArticleVersionRequest 创建知识文章记录的主要版本。

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

创建知识文章翻译

使用 CreateKnowledgeArticleTranslation Action (Web API) 或 CreateKnowledgeArticleTranslationRequest(组织服务)创建文章知识记录的翻译。 您可以将知识文章翻译成 150 多种语言,有关这些支持语言的信息将在新的 LanguageLocale 实体中提供。

详细信息:LanguageLocale 实体

使用 CreateKnowledgeArticleTranslation Action (Web API) 或 CreateKnowledgeArticleTranslationRequest(组织服务)创建新的知识文章记录,其标题、内容、描述和关键字是从源记录复制到新记录的,而且新记录的语言设置为您在请求中指定的语言。 还需要指定新记录是主要还是次要版本。 新记录使用 KnowledgeArticleParentArticleContentId 属性维护与主要根知识文章记录的关联。

执行此消息并收到响应后,从响应对象检索知识文章记录,然后更新标题、内容、描述和关键字以添加翻译的内容。

以下示例代码显示如何使用 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));  

备注

LanguageLocale 实体中的每种语言记录的主键 (LanguageLocaleId) 的 GUID 值在所有 Dynamics 365 Customer Service 组织中都相同。

知识文章生命周期:更改知识文章的状态

在生命周期中,知识库文章可以处于以下状态:

  • 0:草稿(创建知识文章之后)

  • 1:已审批(审批知识文章之后)

  • 2:已安排(已安排知识文章发布之后)

  • 3:已发布(发布知识文章之后)

  • 4:已过期(按照发布时指定的到期日期,知识文章到期之后)

  • 5:已存档(存档知识文章之后)

  • 6:已放弃(放弃知识文章之后)

若要更改文章的状态,请在知识文章记录中使用 Update 消息来更新 KnowledgeArticle.StateCode 属性。 对于早期绑定类型,请使用 KnowledgeArticleState 枚举设置可能的值。 更多信息:使用 Update 执行专门操作

以下示例代码显示如何发布知识文章记录。

// 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);  
  

将知识文章记录与 Dynamics 365 Customer Service 实体实例相关联

当使用 Web 客户端在 Dynamics 365 Customer Service 中为实体启用嵌入式知识搜索时,会自动创建多对多关系msdyn_<Entity_Name>_knowledgearticle。 可以使用此关系以编程方式将 KnowledgeArticle 实例与 Dynamics 365 Customer Service 实体实例关联或链接起来。 在将 KnowledgeArticle 实例与实体实例关联时,会在名为 msdyn_<Entity_Name>_knowledgearticle 的相交实体中创建此关系的一条记录。 例如,当您第一次将 KnowledgeArticle 实例与 Account 实例关联时,将会创建名为 msdyn_account_knowledgearticle 的相交实体,并且将在此相交实体中创建带有关联映射的记录。 默认情况下,会为嵌入式知识搜索启用 Incident(案例)实体,并且,当您将 KnowledgeArticle 记录链接到 Incident 记录时,将会在 KnowledgeArticleIncident 相交实体中创建关联记录。

以下示例代码演示如何将 KnowledgeArticle 实例与 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);  
  

使知识文章视图计数递增

使用 IncrementKnowledgeArticleViewCountRequest 消息在 KnowledgeArticleViews 实体中针对给定日期使知识文章记录的视图计数递增。 如果记录对于指定日期的知识文章不存在,它将创建记录,然后在 KnowledgeArticleViews 中设置指定的视图计数值。 KnowledgeArticleView 属性。 如果记录对于指定日期的知识文章已经存在,它只会增加 KnowledgeArticleViews 中的视图计数。 现有记录的 KnowledgeArticleView 属性。

Dynamics 365 Customer Service 中的知识文章,包括其版本和翻译,是针对全文搜索编制索引的,并且支持 SQL Server 全文搜索。 有关全文搜索的详细信息,请参阅 SQL Server:全文搜索

使用 FullTextSearchKnowledgeArticleRequest 消息从您的应用程序中搜索知识文章以便找到要查找的信息。 FullTextSearchKnowledgeArticleRequest 消息允许您使用词形变化词干匹配(容许针对搜索文本替换时态或词形变化)并指定查询条件(使用 FetchXML 或 QueryExpression 指定筛选、排序和分页)来查找具有指定文本的知识文章。 还可以选择在搜索结果中删除同一文章的多个版本以及在搜索文本时按照知识文章状态进行筛选。

弃用的知识实体

以下旧实体已弃用。 详细信息:弃用的知识实体

从 2020 年 12 月 1 日起,旧知识实体将无法访问。 强烈建议您移至 KnowledgeArticle 实体。 有关在统一接口中创建知识文章的详细信息,请参阅创建和管理知识文章。  

请使用以下各项来帮助进行迁移:

  • 根据您的场景使用 SDK、Web API 或 Microsoft Power Automate。
  • 使用带有 MIT 许可证的开源迁移工具。

重要提示

  • Microsoft 不支持开源迁移工具,可能需要根据您的情况对其进行修改。
  • 在生产环境中使用之前,务必运行测试环境。
  • 在使用该工具之前,请查看许可证和自述文件。

另请参阅