适用于 Dynamics 365 渠道集成框架 1.0 的 searchAndOpenRecords(JavaScript API 参考)

该方法在入站通信期间从通信小组件中搜索记录并打开记录。

Syntax

Microsoft.CIFramework.searchAndOpenRecords(entityLogicalName, queryParameters, searchOnly, correlationId, searchType).then(successCallback, errorCallback);

参数

Name 类型 必选 Description
实体逻辑名称 String 是的 要搜索和打开的实体的名称。
queryParameters String 是的 OData 系统查询选项 $select$expand,用于检索数据。

- 使用 $select 系统查询选项通过包含逗号分隔的属性名称列表来限制返回的属性。 这是一个重要的性能最佳实践。 如果未使用 $select 指定属性,则将返回所有属性。

- 使用 $expand 系统查询选项来控制相关实体返回的数据。 如果仅包含导航属性的名称,您将收到相关记录的所有属性。 您可以使用导航属性名称后括号中的 $select 系统查询选项来限制相关记录返回的属性。 将此选项用于单值和集合值导航属性。

您可以指定以 开 ?头的查询选项。 您还可以通过 来 & 指定多个查询选项,以分离查询选项。
例如:?$select=name&$expand=primarycontactid($select=contactid,fullname)
搜索仅限 布尔 是的 当您希望搜索根据搜索上下文显示单个记录时,请将 设置为 searchOnlyfalse 。 如果搜索结果有多个记录,并且您曾经 queryParameters 指定搜索选项,则设置为 searchOnlyfalse 将打开并使用搜索选项填充搜索页面。
注意: 如果搜索结果有多个记录,则仅打开 客户联系人活动 实体的记录。

设置为 true 以将搜索结果作为 Promise 对象获取,而不是记录或搜索页面。
搜索类型 编号 要打开的搜索页面类型 - 0 表示相关性搜索,1 表示分类搜索。 如果未提供参数,则按类别搜索记录。
correlationId GUID 用于将相关 API 调用分组在一起以进行诊断遥测。
success回调 功能 请求成功时要调用的函数。
errorCallback 功能 请求失败时要调用的函数。

返回值

返回 String 类型的 Promise 对象。 成功后,该方法将根据搜索查询返回搜索结果。

注释

  • 您一次最多可以获取 5000 条记录(如果存在超过 5000 条记录)。 可以通过在方法参数中使用查询选项(如 $filter、$select 和 $top)来缩小结果范围,如 示例 部分所示。 详细信息: 查询选项概述
  • 若要根据相关性进行搜索,必须 配置相关性搜索。 如果未启用相关性搜索,则将根据类别执行搜索。

例子

搜索并打开联系人记录

此示例代码搜索联系人记录的姓名和电话号码。 它会打开一个空的搜索结果页面。


// retrieve contact record
Microsoft.CIFramework.searchAndOpenRecords("contact", "?$select=fullname,telephone1", false).
then(
    function success(result) { 
    res=JSON.parse(result);
        console.log(`Record values: Full Name: ${res[0].fullname}, Telephone Number: ${res[0].telephone1}`);
        // perform operations on record retrieval and opening
    },
    function (error) {
        console.log(error.message);
        // handle error conditions
    }
);

搜索并显示在联系人记录列表中

此示例代码搜索并显示 联系人 实体记录的名称和电话号码,其中名字是 Contoso。 使用 $search,可以确保搜索结果页填充了搜索词 Contoso

注释

如果您在查询中使用, $search 并且参数 searchOnly 设置为 false,它将始终打开搜索结果页,而不是检索到的记录。 如果要打开检索到的记录,请不要在 $search 查询中使用参数。


// Retrieve Contact entity record
// Change searchOnly parameter to true, if you do not want to open the search results page
Microsoft.CIFramework.searchAndOpenRecords("contact", "?$select=fullname,telephone1&$filter=firstname eq 'Contoso'&$search=Contoso", false).
then(
    function success(result) {
    res=JSON.parse(result);
        console.log(`The caller name is: ${res[0].fullname}, Telephone Number: ${res[0].telephone1}`);
        // perform operations on record retrieval and opening
    },
    function (error) {
        console.log(error.message);
        // handle error conditions
    }
);

搜索和显示前 10 条活动联系人记录

此示例代码搜索并显示前 10 条活动联系人记录。

Microsoft.CIFramework.searchAndOpenRecords("contact", "$filter=statecode eq 0&$select=description&$top=10", false).
then(
    function success(result) { 
    res=JSON.parse(result);
        // perform operations on record retrieval and opening
    },
    function (error) {
        console.log(error.message);
        // handle error conditions
    }
);

通过指定相关性搜索类型来搜索和显示姓名和电话号码

此示例代码通过指定相关性搜索类型来搜索和显示联系人实体记录的名称和电话号码。

Microsoft.CIFramework.searchAndOpenRecords("contact", "?$select=fullname,telephone1", false, "b44d31ac-5fd1-e811-8158-000d3af97055", 0).
then(     
    function success(result) {     
    res=JSON.parse(result);         
    console.log(`Record values: Full Name: ${res[0].fullname}, Telephone Number: ${res[0].telephone1}`);         
       // perform operations on record retrieval and opening 
    },     
    function (error) {         
        console.log(error.message);         
        // handle error conditions     
    } 
);