将 Microsoft Dynamics CRM 2015 与 Parature 集成

 

发布日期: 2016年11月

适用于: Dynamics CRM 2015

帮助服务代理通过启用与 Parature 知识管理的集成从 Microsoft Dynamics 365 内为客户快速查找和提供准确信息,以此提高服务代理的工作效率。Microsoft 提供的 Parature 是一种基于云的客户服务解决方案,提供通过知识管理、智能自助服务和多渠道交互对一致和经过整理的信息进行快速访问。 有关 Parature 的详细信息,请参阅关于 Parature

备注

对于 Microsoft Dynamics CRM Online 组织,只有当您的组织更新到 Dynamics CRM Online 2015 更新 1 时才可以使用此功能。 此功能不适用于 Dynamics CRM(本地)。

本主题内容

启用与 Parature 知识管理集成

创建和管理知识库记录元数据

将知识库记录与实体实例相关联

启用与 Parature 知识管理集成

可以使用 Web 客户端为您的 Dynamics 365 启用与 Parature 知识管理的集成;这无法通过 SDK 执行。详细信息:TechNet:将 Microsoft Dynamics CRM 连接到 Parature 知识库

启用与 Parature 知识管理的集成后,开发人员可以通过使用 IsKnowledgeManagementEnabled 属性为 Dynamics 365 中的实体启用或检测 Parature 知识管理集成。 您可以只为那些可以具有多对多关系的实体启用 Parature 集成,这可以使用该实体的 CanBeInManyToMany 属性确定。

在为实体启用 Parature 集成时,多对多关系在该实体和具有以下名称的 KnowledgeBaseRecord 实体之间自动创建:KnowledgeBaseRecord_<Entity_Name>。 例如,如果为 Account 实体启用 Parature 集成,多对多关系的名称会是 KnowledgeBaseRecord_Account

默认情况下,知识管理集成对 Incident 实体是启用的。 以下示例代码演示如何为实体检测和启用知识管理集成:


RetrieveEntityRequest entityRequest = new RetrieveEntityRequest
{
    EntityFilters = EntityFilters.All,
    LogicalName = Incident.EntityLogicalName,

    // Retrieve only the currently published changes, ignoring the changes 
    // that have not been published.
    RetrieveAsIfPublished = false
};
RetrieveEntityResponse entityResponse = (RetrieveEntityResponse)_serviceProxy.Execute(entityRequest);

if (entityResponse.EntityMetadata.IsKnowledgeManagementEnabled == true)
{
    Console.WriteLine("Verified that knowledge management is enabled for Incident entity.\n");
    return;
}
else
{
    // Enable knolwledge management for the Incident entity.
    Console.WriteLine("Knowledge management is not enabled for the Incident entity.");
    entityResponse.EntityMetadata.IsKnowledgeManagementEnabled = true;

    // Create an update request.                    
    UpdateEntityRequest updateRequest = new UpdateEntityRequest
    {
        Entity = entityResponse.EntityMetadata
    };
    _serviceProxy.Execute(updateRequest);

    // Publish the entity.
    // All customizations must be published before they can be used.
    PublishAllXmlRequest enableRequest = new PublishAllXmlRequest();
    _serviceProxy.Execute(enableRequest);
    Console.WriteLine("Enabled Knowledge management for the Incident entity.");
}

有关完整示例代码,请参阅示例:创建并将知识库记录关联到事件

在为您的 Dynamics 365 实例启用 Parature 知识管理时,您可以为启用了知识管理集成的实体的窗体添加知识库搜索控件。 可以中使用知识库搜索控件在搜索结果显示自动建议,定义搜索的筛选器,并指定可在知识库文章中完成的上下文操作。详细信息:TechNet:将知识库搜索控件添加到 Microsoft Dynamics CRM 窗体

知识库搜索控件提供可编程支持以在用户使用此工具时自动化或增强用户体验。详细信息:Parature 知识库搜索控件(客户端引用)

创建和管理知识库记录元数据

可以使用 KnowledgeBaseRecord 实体创建和管理 Parature 知识库记录元数据。 下表显示了本实体存储的一些信息。

属性

说明

KnowledgeBaseRecord.Title

知识库记录的标题。

KnowledgeBaseRecord.UniqueID

链接的 Parature 知识库记录的唯一 ID。

KnowledgeBaseRecord.PrivateUrl

知识库记录的内部 Parature 服务台 URL。

KnowledgeBaseRecord.PublicUrl

知识库记录的公共 Parature 门户 URL

以下示例代码演示如何创建知识库记录实例:


// Create a knowledge base record instance        
KnowledgeBaseRecord kbRecord = new KnowledgeBaseRecord
{
    // These are sample values. Replace them with
    // appropriate values as per your integrated 
    // Parature  instance.
    PrivateUrl = "http://www.demo.parature.com/internal",
    PublicUrl = "http://www.demo.parature.com",
    Title = "How to track shipping?",
    UniqueId = "8000/8467/Article/23782"
};
_kbRecordId = _serviceProxy.Create(kbRecord);
Console.WriteLine("Created knowledge base record with ID: '{0}'.\n", _kbRecordId.ToString());

有关完整示例代码,请参阅示例:创建并将知识库记录关联到事件

将知识库记录与实体实例相关联

可通过编程方式使用多对多关系(在为实体启用 Parature 集成时自动创建)将 KnowledgeBaseRecord 实例与实体实例相关联。 在将 KnowledgeBaseRecord 实例与实体实例关联时,此关系的一条记录将在具有以下名称的相交实体中创建:**<Entity_Name>KnowledgeBaseRecord。 例如,当您第一次将 KnowledgeBaseRecord 实例与 Account 实例关联时,名为 AccountKnowledgeBaseRecord 的相交实体将被创建,带有关联映射的记录将在此相交实体中创建。

以下示例代码演示如何将 KnowledgeBaseRecord 实例与 Incident 实例关联:


// Associate the knowledge base record with an incident record

// Step 1: Create a collection of knowledge base record that will be 
// associated to the incident. In this case, we have only a single
// knowledge base record to be associated.
EntityReferenceCollection relatedEntities = new EntityReferenceCollection();
relatedEntities.Add(new EntityReference(KnowledgeBaseRecord.EntityLogicalName, _kbRecordId));

// Step 2: Create an object that defines the relationship between knowledge base record and incident.
// Use the many-to-many relationship name (KnowledgeBaseRecord_Incident) between knowledge base
// record and incident.
Relationship relationship = new Relationship("KnowledgeBaseRecord_Incident");

// Step 3: Associate the knowledge base record with the incident record.
_serviceProxy.Associate(Incident.EntityLogicalName, _incidentId, relationship,
    relatedEntities);

要获得完整示例代码,包括如何解除 KnowledgeBaseRecord 实例与 Incident 实例的关联,请参阅示例:创建并将知识库记录关联到事件

KnowledgeBaseRecord 中存储的数据,以及可用于与 Power BI 之类的工具一起使用来生成有关 Parature 知识库在服务客户中的影响的报告的相交(在这里是 IncidentKnowledgeBaseRecord)实体。

另请参阅

KnowledgeBaseRecord 实体消息和方法
示例:创建并将知识库记录关联到事件
TechNet:将 Microsoft Dynamics CRM 连接到 Parature 知识库
Parature 知识库搜索控件(客户端引用)
TechNet:将知识库搜索控件添加到 Microsoft Dynamics CRM 窗体
事件(案例)实体

© 2017 Microsoft。 保留所有权利。 版权