다음을 통해 공유


Dynamics 365 채널 통합 프레임워크 1.0용 searchAndOpenRecords(JavaScript API 참조)

이 메서드는 인바운드 통신 중에 통신 위젯에서 레코드를 검색하고 레코드를 엽니다.

Syntax

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

매개 변수

이름 유형 필수 Description
엔티티논리 이름 String Yes 검색하고 열 엔터티의 이름입니다.
queryParameters String Yes OData 시스템 쿼리 옵션인 $select$expand를 사용하여 데이터를 검색할 수 있습니다.

- $select 시스템 조회 옵션을 사용하여 쉼표로 구분된 특성 이름 목록을 포함하여 리턴되는 특성을 제한하십시오. 이는 중요한 성능 모범 사례입니다. $select를 사용하여 속성을 지정하지 않으면 모든 속성이 반환됩니다.

- 시스템 조회 $expand 옵션을 사용하여 관련 엔티티에서 리턴된 데이터를 제어하십시오. 탐색 속성의 이름만 포함하는 경우 관련 레코드에 대한 모든 속성을 받게 됩니다. 탐색 속성 이름 뒤의 괄호 안에 $select 시스템 쿼리 옵션을 사용하여 관련 레코드에 대해 반환되는 속성을 제한할 수 있습니다. 단일 값 및 컬렉션 값 탐색 속성 모두에 사용합니다.

로 시작하는 ?쿼리 옵션을 지정할 수 있습니다. 를 사용하여 & 쿼리 옵션을 분리하여 여러 쿼리 옵션을 지정할 수도 있습니다.
예: ?$select=name&$expand=primarycontactid($select=contactid,fullname)
검색만 불리언 (Boolean) Yes 검색 컨텍스트에 따라 단일 레코드를 검색에 표시하려면 false searchOnly로 설정합니다 . 검색 결과에 여러 레코드가 있고 검색 옵션을 지정하는 데 사용한 queryParameters 경우 false로 설정 searchOnly 하면 검색 페이지가 열리고 검색 옵션이 채워집니다.
메모: 검색 결과에 여러 레코드가 있는 경우 거래처,연락처활동 엔터티에 대한 레코드만 열립니다.

레코드 또는 검색 페이지 대신 Promise 개체로 검색 결과를 가져오려면 true 로 설정합니다.
검색유형 Number 아니오 열 검색 페이지 유형(관련성 검색의 경우 0, 분류된 검색의 경우 1). 매개변수가 제공되지 않으면 레코드가 카테고리별로 검색됩니다.
correlationId GUID 아니오 진단 원격 분석을 위해 관련 API 호출을 함께 그룹화하는 데 사용됩니다.
success콜백 기능 아니오 요청이 성공할 때 호출하는 함수입니다.
error콜백 기능 아니오 요청이 실패할 때 호출할 함수입니다.

반환 값

String 형식의 Promise 개체를 반환합니다. 성공하면 메서드는 검색 쿼리에 따라 검색 결과를 반환합니다.

비고

  • 한 번에 최대 5,000개의 레코드를 가져올 수 있습니다(5,000개 이상의 레코드가 있는 경우). 예제 섹션에 표시된 대로 메서드 매개 변수에서 $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     
    } 
);