知识库搜索控件(客户端引用)
发布日期: 2017年1月
适用于: Dynamics 365 (online),Dynamics 365 (on-premises),Dynamics CRM 2016,Dynamics CRM Online
您可以在启用了知识管理功能的 Dynamics 365 实例中向实体窗体中添加知识库搜索控件。 通过此控件,您可以在用户使用此控件占用 Dynamics 365 中的知识时以编程方式自动化或增强用户的搜索体验。详细信息:知识管理实体
备注
-
您可以选择本机 Dynamics 365 知识或 Parature 知识作为知识管理和搜索的源。 如果您使用 Parature 作为知识库源,而且知识库搜索控件存在于窗体中,则应该已经创建了与 Parature 的连接,因此您可以直接进行 Parature API 调用,无需安全令牌。 不过,这些将是跨域请求,因此必须使用跨原始资源共享 (CORS)。
如果您使用 Parature 作为知识库源,CRM Online 2016 更新 1 和 Dynamics 365 Service Pack 1(内部部署)中引入的以下新客户端 API 将不受支持:PostSearch 事件、addOnPostSearch、removeOnPostSearch、getTotalResultCount 和 openSearchResult。
-
通过 CRM Online 2016 更新 1 和 Dynamics 365 SP1(内部部署)发布,知识库搜索控件还支持 Dynamics 365 移动客户端(手机和平板电脑)。
知识库管理搜索控件是 Xrm.Page.ui 控件,因此,它支持控件具有的所有标准方法。 但同时也支持其他事件和方法。 有关标准控件方法的信息,请参阅 Xrm.Page.ui 控制方法(客户端引用)。
如果您知道控件名称,则可以使用以下代码访问它,其中,<name> 表示控件的名称。
kbSearchControl = Xrm.Page.getControl("<name>");
备注
当知识库搜索控件添加到社交窗格时,名称将是“searchwidgetcontrol_notescontrol”。 无法更改此名称。
本主题中的所有示例都将使用 kbSearchControl 表示窗体中的知识库搜索控件。
本主题内容
知识库搜索控件事件
知识库搜索控件方法
知识库搜索控件事件
使用此控件的事件可以允许代码响应选定或打开的项目。
OnResultOpened
当知识库文章直接在知识库搜索控件中打开或通过弹出操作打开时,将发生此事件。 使用 addOnResultOpened 和 removeOnResultOpened 方法管理此事件的事件处理程序。
OnSelection
当知识库文章在知识库搜索控件中被选择时,将发生此事件。 使用 addOnSelection 和 removeOnSelection 方法管理此事件的事件处理程序。
PostSearch
当搜索完成并显示结果时将发生此事件。 使用新 addOnPostSearch 和 removeOnPostSearch 方法管理此事件的事件处理程序。
知识库搜索控件方法
使用知识库搜索控件方法来设置或删除事件处理程序,并与搜索查询和搜索结果交互。
addOnPostSearch
使用该方法将事件处理程序添加到 PostSearch 事件。
参数:函数。 要添加的函数。
示例:将名为 myFunction 的函数添加到 PostSearch 事件中。
kbSearchControl.addOnPostSearch(myFunction);
addOnResultOpened
使用该方法将事件处理程序添加到 OnResultOpened 事件。
参数:函数。 要添加的函数。
示例:将名为 myFunction 的函数添加到 OnResultOpened 事件中。
kbSearchControl.addOnResultOpened(myFunction);
addOnSelection
使用该方法将事件处理程序添加到 OnSelection 事件。
参数:函数。 要添加的函数。
示例:将名为 myFunction 的函数添加到 OnSelection 事件中。
kbSearchControl.addOnSelection(myFunction);
getSearchQuery
使用此方法来获取用作知识库管理控件搜索条件的文本。
返回值:字符串。 搜索查询的文本。
示例:将 searchQuery 变量设置为搜索查询的文本。
var searchQuery = kbSearchControl.getSearchQuery();
getSelectedResults
使用此方法来获取当前选择的搜索控件的结果。 当前选择的结果还表示当前处于打开状态的结果。
返回值:KBSearchResult。 当前所选结果。
示例:将变量 kbSearchResult 设置为当前选择的结果。
var kbSearchResult = kbSearchControl.getSelectedResults();
KBSearchResult 属性
下表介绍了 KBSearchResult 对象的属性。
属性 |
Type |
说明 |
---|---|---|
answer |
String |
包含文章内容的 HTML 标记。 您可以将此内容传递到自定义操作,可以将其包含在电子邮件中发送给客户。 |
articleId |
String |
Dynamics 365 或 Parature 部门中的文章 ID 此值作为备用键使用。 您可以使用它来查看此文章是否已存在于 Dynamics 365 中。 |
articleUid |
String |
Dynamics 365 或 Parature 系统中的唯一文章 ID。 当使用 Parature 作为知识源时,这将包含 Parature 客户 ID 和部门 ID,例如“7924/8112/Article/25”。 此值作为备用键使用。 在关联一个不存在的文章时,需要使用此 ID 创建新的知识库记录。 |
attachmentCount |
编号 |
文章中的附件数。 这只有当您使用 Parature 作为知识源时才适用。 |
createdOn |
Date |
创建文章的日期。 此值将使用当前用户的时区和格式。 您可能想要在您的业务逻辑使用文章的存在时间。 |
expiredDate |
Date |
文章过期或即将过期的日期。 当使用 Dynamics 365 作为知识源时,它将为 null。 可以比较此日期与当前日期,以确定文章是否已过期。 此值使用当前用户的时区和格式。 |
folderHref |
字符串 |
文章在 Parature 中的文件夹路径的链接。 这只有当您使用 Parature 作为知识源时才适用。 |
href |
字符串 |
文章在 Parature API 中的直接链接,可以用于直接获取文章内容。 这只有当您使用 Parature 作为知识源时才适用。 |
isAssociated |
Boolean |
指示文章是否与父记录关联。 您可以使用窗体脚本或在窗体脚本启动的其他流程中在关联文章与当前记录之前检查此值。 |
lastModifiedOn |
Date |
文章最后修改的日期。 此值将使用当前用户的时区和格式。 |
publicUrl |
String |
支持文章的门户 URL。 如果“门户 URL”选项处于关闭状态,这将为空。 使用自定义操作可以将其包含在电子邮件内容的链接中发送给客户。 |
published |
Boolean |
指示文章是否处于“已发布”状态。 如果已发布则为 True,否则为 False。 在您发送有关文章的信息给客户之前,您应检查文章是否发布。 |
question |
String |
文章的标题。 如果您打算在任何业务流程中引用文章,可以使用此值按名称引用。 |
rating |
Number |
文章的评级。 |
searchBlurb |
String |
包含命中搜索查询的区域的文章内容的简短片段。 使用它可以让用户在搜索列表中看到文章,帮助他们确定其是否是他们要查找的文章。 |
serviceDeskUri |
String |
Dynamics 365 或 Parature 服务台中文章的链接。 使用此链接可以使用 Dynamics 365 或 Parature 服务台打开文章。 |
timesViewed |
Number |
文章在 门户被客户查看的次数。 |
getTotalResultCount
获取在搜索控件中找到的结果数。
返回值:整数。 搜索结果计数。
示例:将变量 searchCount 设置为搜索控件中的搜索结果计数。
var searchCount = kbSearchControl.getTotalResultCount();
openSearchResult
通过指定结果数量打开搜索控件中的一个搜索结果。
var openResultStatus = kbSearchControl.openSearchResult(resultNumber, mode);
参数
resultNumber (Integer):指定要打开的结果数量的数字值。 结果数量从 1 开始。 必需。
mode (String):指定 "Inline" 或 "Popout"。 (可选) 如果您不对参数指定值,使用默认的 ("Inline") 选项。
"Inline" 模式在控件的阅读窗格或参考面板案例的参考面板选项卡中内联打开结果。 "Popout" 模式在弹出窗口中打开结果。
返回值:布尔值。 打开指定搜索结果的状态。 如果成功,返回 1;如果失败,返回 0。 如果指定的 resultNumber 值不存在,或者如果指定的 mode 值无效,方法将返回 -1。
removeOnPostSearch
使用该方法将事件处理程序从 PostSearch 事件中移除。
参数:函数。 要删除的函数。
示例:将名为 myFunction 的函数从 PostSearch 事件中删除。
kbSearchControl.removeOnPostSearch(myFunction);
removeOnResultOpened
使用该方法将事件处理程序从 OnResultOpened 事件中移除。
参数:函数。 要删除的函数。
示例:将名为 myFunction 的函数从 OnResultOpened 事件中删除。
kbSearchControl.removeOnResultOpened(myFunction);
removeOnSelection
使用该方法将事件处理程序从 OnSelection 事件中移除。
参数:函数。 要删除的函数。
示例:将名为 myFunction 的函数从 OnSelection 事件中删除。
kbSearchControl.removeOnSelection(myFunction);
setSearchQuery
使用此方法来设置用作知识库管理控件搜索条件的文本。
参数:字符串。 搜索查询的文本。
示例:搜索查询的文本设置为“How to solve the problem”.
kbSearchControl.setSearchQuery("How to solve the problem");
另请参阅
在 Dynamics 365 中处理知识文章
使用 Dynamics 365 中的 Parature 知识
客户端编程引用
为 Microsoft Dynamics 365 窗体编写代码
在客户端上扩展 Microsoft Dynamics 365
Microsoft Dynamics 365
© 2017 Microsoft。 保留所有权利。 版权