Dynamics 365 チャネル統合フレームワーク 1.0 の searchAndOpenRecords (JavaScript API リファレンス)
メソッドは、内部通信中に通信ウィジェットからレコードを検索し、レコードを開きます。
構文
Microsoft.CIFramework.searchAndOpenRecords(entityLogicalName, queryParameters, searchOnly, searchType).then(successCallback, errorCallback);
Parameters
件名 | タイプ | Required | Description |
---|---|---|---|
entityLogicalName | String | 有効 | 検索して開くためのエンティティの名前。 |
queryParameters | String | 有効 | データを取得する OData システム クエリ オプション、$select および $expand。 - プロパティ名のコンマ区切りリストを含めることにより返されるプロパティを制限するためには $select システム クエリ オプションを使用します。 これは重要なパフォーマンスのベスト プラクティスです。 プロパティが $select を使用して指定されない場合は、すべてのプロパティが返されます。 - システム クエリー オプションの $expand を使用すると、関連するエンティティから返されるデータを制御できます。 単にナビゲーション プロパティ名を含めた場合は、関連レコードのすべてのプロパティが表示されます。 ナビゲーション プロパティ名の後にかっこで示される $select システム クエリ オプションを使用して、関連レコードに対して返されるプロパティを制限できます。 これは、単一値とコレクション値のナビゲーション プロパティの両方で使用します。 ? で始まるクエリ オプションを指定できます。 クエリ オプションを & で区切って複数のクエリ オプションを指定することもできます。例: ?$select=name&$expand=primarycontactid($select=contactid,fullname) |
searchOnly | ブール型 | 可 | 検索コンテキストに基づいて単一のレコードを検索で表示する場合は、searchOnly を false に設定します。 検索結果に複数のレコードがある場合、queryParameters を使って検索オプションを使用したことがあり、searchOnly を false に設定した場合、検索フィールドに検索オプションが自動入力されます。 注記: 検索結果に複数のレコードがある場合は、アカウント、取引先担当者、そして 活動 エンティティのみが開かれます。 true を設定して、検索ページのレコードの代わりに、Promise オブジェクトとして検索結果として取得します。 |
searchType | 回数 | いいえ | 開く検索ページの種類 — 関連性検索の場合 0、分類検索の場合は 1。 パラメーターが指定されていない場合、レコードはカテゴリー別に検索されます。 |
successCallback | Function | 番号 | 要求が成功したときに呼び出す関数。 |
errorCallback | Function | 番号 | 要求が失敗したときに呼び出す関数。 |
値を返す
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
}
);
関連性検索タイプを指定して、表示名と電話番号を検索する
関連性検索の種類を指定して、Contact エンティティのレコードの名前と電話番号を検索して表示するサンプル コードです。
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
}
);