指定されたテーブル リスト、テーブル レコード、HTML Web リソース、またはカスタム ページに移動します。
注記
このメソッドは、統一インターフェイス上でのみサポートされます。
構文
Xrm.Navigation.navigateTo()を呼び出すには、次の構文を使用します。
Xrm.Navigation.navigateTo(pageInput,navigationOptions).then(successCallback,errorCallback);
Parameters
このメソッドは、次のパラメーターを受け入れます。
| Name | タイプ | 必須 | 説明 |
|---|---|---|---|
| pageInput | オブジェクト | Yes | 移動するページについて入力します。 pageInput パラメーター を参照 |
| navigationOptions | オブジェクト | No | ページに移動するためのオプション: インラインで開くか、またはダイアログで開くか。 このパラメーターを指定しない場合、メソッドは既定でページをインラインで開きます。 |
successCallback |
関数 | No | インライン ナビゲーションが成功した後、またはダイアログが閉じたときに実行する関数。 値の返しをサポートするページ型の場合、関数はその値を引数として受け取ります。 |
errorCallback |
機能 | No | 処理が失敗したときに実行する関数。 |
pageInput パラメーター
オブジェクト定義は、移動するページの種類 ( エンティティ リスト、 エンティティ レコード、 ダッシュボード、 HTML Web リソース、 カスタム ページ、 または生成ページ) に応じて変わります。
エンティティ リスト
エンティティ リスト オブジェクトには、次の値が含まれています。
| Name | タイプ | 説明 |
|---|---|---|
pageType |
String |
entitylist を指定します。 |
entityName |
String | リスト コントロールに読み込むテーブルの論理名。 |
viewId |
String | (オプション) 読み込むビューの ID。 指定しない場合、アプリはテーブルの既定のメイン ビューに移動します。 |
viewType |
String | (オプション) 読み込むビューのタイプ。
savedqueryまたはuserqueryを指定します。 |
エンティティ レコード
エンティティ レコード オブジェクトには、次の値が含まれています。
| Name | タイプ | 説明 |
|---|---|---|
pageType |
String |
entityrecord を指定します。 |
entityName |
String | フォームを表示するテーブルの論理名。 |
entityId |
String | (オプション) フォームを表示するテーブル レコードの ID。 この値を指定しない場合、フォームは作成モードで開きます。 |
createFromEntity |
検索 | (省略可能)マップされた列の値に基づいて既定値を提供するレコードを指定します。 ルックアップ オブジェクトには、entityType、ID、名前 (オプション) などの文字列プロパティがあります。 |
data |
オブジェクト | (オプション) 追加のパラメーターをフォームに渡すディクショナリ オブジェクト。
このパラメータは、新しいフォームに設定されたデフォルト値を持つテーブル列 (フォームに渡されたパラメーターを使用して列の値を設定する を参照してください)、または |
formId |
String | (省略可能)表示するフォーム インスタンスの ID。 |
isCrossEntityNavigate |
ブール値 | (オプション) クロステーブル ビジネス プロセス フローを使用して、フォームに別のテーブルから移動されるかどうかを示します。 |
isOfflineSyncError |
ブール値 | (オプション) オフライン同期エラーがあるかどうかを示します。 |
processId |
String | (省略可能)フォームに表示するビジネス プロセスの ID。 |
processInstanceId |
String | (省略可能)フォームに表示するビジネス プロセス インスタンスの ID。 |
relationship |
オブジェクト | (オプション) フォームに関連レコードを表示する関係オブジェクトを定義します。 リレーションシップ を参照してください。 |
selectedStageId |
String | (オプション) ビジネス プロセス インスタンスで選択したステージの ID。 |
tabName |
String | (オプション) フォームのタブにフォーカスを設定します。 |
関係オブジェクト
関係オブジェクトは、エンティティ レコードで使用され、次の値が含まれます。
| Name | タイプ | 説明 |
|---|---|---|
attributeName |
String | 関連付けに使用される列の名前。 |
name |
String | リレーションシップの名前です。 |
navigationPropertyName |
String | この関係のナビゲーション プロパティの名前。 |
relationshipType |
数値 | リレーションシップ タイプ。 次のいずれかの値を指定します: 0:OneToMany、1:ManyToMany。 |
roleType |
数値 | リレーションシップのロール タイプ。 次のいずれかの値を指定します: 1:Referencing、2:AssociationEntity。 |
ダッシュボード
ダッシュボードを開く場合は、このオブジェクトを pageInput パラメーターとして使用 します。
ダッシュボード オブジェクトには、次の値が含まれています。
| Name | タイプ | 説明 |
|---|---|---|
pageType |
String |
dashboard を指定します。 |
dashboardId |
String | ロードするダッシュボードの ID。 ID を指定しない場合、アプリは既定のダッシュボードに移動します。 |
HTML Web リソース
pageInputを開く場合は、このオブジェクトを パラメーターとして使用します。
HTML Web リソースには、次の値が含まれています。
| Name | タイプ | 説明 |
|---|---|---|
pageType |
String |
webresource を指定します。 |
webresourceName |
String | 読み込む Web リソースの名前。 |
data |
String | (オプション) Web リソースに渡すデータ。 |
カスタム ページ
pageInputを開く場合は、このオブジェクトを パラメーターとして使用します。
カスタム ページ オブジェクトには、次の値が含まれています。
| Name | タイプ | 説明 |
|---|---|---|
pageType |
String |
custom を指定します。 |
name |
String | 開くカスタムページの論理名です。 |
entityName |
String | (オプション) Param("entityName") を介してカスタム ページで使用できるようにするテーブルの論理名です。 |
recordId |
String | (オプション) Param("recordId") を介してカスタム ページで使用できるようにするテーブル レコードの ID。 |
生成ページ
pageInputを開く場合は、このオブジェクトを パラメーターとして使用します。
recordId、entityName、またはdataを使用するには、入力パラメーターを受け入れるようにターゲット生成ページを設定する必要があります。
生成ページ オブジェクトには、次の値が含まれています。
| Name | タイプ | 説明 |
|---|---|---|
pageType |
String |
generative を指定します。 |
pageId |
String | 開く生成ページの ID。 |
recordId |
String | (省略可能)ページに渡すレコードの GUID。 |
entityName |
String | (省略可能) recordIdに対応する Dataverse テーブルの論理名。 |
data |
オブジェクト | (省略可能)ページに渡す追加のカスタム パラメーターを含む JSON オブジェクト。 |
クライアント API を使用して生成ページとの間を移動する方法を示す例を参照してください
navigationOptions パラメーター
navigationOptions オブジェクトには、次の値が含まれています。
| Name | タイプ | 説明 |
|---|---|---|
target |
数値 | ページをインラインで開く 1 を指定します。 ダイアログでページを開く 2 を指定します。また、残りの値 (幅、高さ、位置) は、この値に 2 を指定した場合にのみ有効です (ダイアログでページを開きます)。注: エンティティ リストはインラインでのみ開くことができます。 エンティティ レコード、Web リソース、および生成ページは、インラインまたはダイアログで開くことができます。 |
width |
数値またはオブジェクト | (オプション) ダイアログの幅。 幅をピクセル単位で指定するには、数値を入力します。 パーセンテージで幅を指定するには、次のプロパティを持つ種類のオブジェクト SizeValue を指定します。 - value: 数値タイプの数値。- unit: 文字列型の測定単位。
%またはpxを指定します。 既定値は、px です。 |
height |
数値またはオブジェクト | (オプション) ダイアログの高さ。 高さをピクセル単位で指定するには、数値を入力します。 パーセンテージで幅を指定するには、次のプロパティを持つ種類のオブジェクト SizeValue を指定します。 - 値: 数値タイプの数値。 - unit: 文字列型の測定単位。
%またはpxを指定します。 既定値は、px です。 |
position |
数値 | (オプション) 中央にダイアログを開くには 1 を指定し、端にダイアログを開くには 2 を指定します。 既定は 1 (中央) です。 |
title |
String | (オプション) 中央または側面のダイアログの上部にあるダイアログのタイトル。 |
戻り値
Promise を返します。 promise が解決されたときに渡される値は、ターゲットとページの種類によって異なります。
- インライン: Promise は、ナビゲーションが完了したときに解決され、値が返されません。
-
ダイアログ: promise は、ダイアログが閉じると解決されます。
- 作成モードで開かれたエンティティ レコードの場合、promise は
savedEntityReference配列を含むオブジェクトで解決されます。 - 生成ページの場合、promise は、
dataApi.setPageOutput(value)に最後に渡された値を含むreturnValueプロパティを持つオブジェクトで解決されます。 生成ページで出力値が設定されていない場合は、[ キャンセル ] または [閉じる] ボタンを選択してダイアログを閉じると、未定義のreturnValueになります。 - その他のページの種類では、ダイアログが閉じたときに値が返されません。
- 作成モードで開かれたエンティティ レコードの場合、promise は
エンティティ レコードに対して返される savedEntityReference 配列には、次のプロパティが含まれています。
- entityType: テーブルの論理名。
- id: レコード GUID の文字列形式。
- name: レコードのプライマリ列の値。
例
次の例では、インラインおよびダイアログ内のさまざまなページの種類に移動する方法を示します。
例 1: アカウント リストを開く
メイン アカウント一覧をインラインで開きます。
var pageInput = {
pageType: "entitylist",
entityName: "account"
};
Xrm.Navigation.navigateTo(pageInput).then(
function success() {
// Run code on success
},
function error() {
// Handle errors
}
);
例 2: ダイアログ内で既存のアカウント レコードを開く
ダイアログ内で既存のアカウント フォームを開きます。
var pageInput = {
pageType: "entityrecord",
entityName: "account",
entityId: "00aa00aa-bb11-cc22-dd33-44ee44ee44ee" //replace with actual ID
};
var navigationOptions = {
target: 2,
height: {value: 80, unit:"%"},
width: {value: 70, unit:"%"},
position: 1
};
Xrm.Navigation.navigateTo(pageInput, navigationOptions).then(
function success() {
// Run code on success
},
function error() {
// Handle errors
}
);
例3: ダイアログ内の作成モードでアカウント フォームを開く
ダイアログ内の作成モードでアカウント フォームを開き、保存時に作成されたレコード参照を返します。
var pageInput = {
pageType: "entityrecord",
entityName: "account"
};
var navigationOptions = {
target: 2,
height: {value: 80, unit:"%"},
width: {value: 70, unit:"%"},
position: 1
};
Xrm.Navigation.navigateTo(pageInput, navigationOptions).then(
function success(result) {
console.log("Record created with ID: " + result.savedEntityReference[0].id +
" Name: " + result.savedEntityReference[0].name)
// Handle dialog closed
},
function error() {
// Handle errors
}
);
例4: ダイアログで HTML Web リソースを開く
ダイアログで HTML Web リソースを開きます。
var pageInput = {
pageType: "webresource",
webresourceName: "new_sample_webresource.htm"
};
var navigationOptions = {
target: 2,
width: 500, // value specified in pixel
height: 400, // value specified in pixel
position: 1
};
Xrm.Navigation.navigateTo(pageInput, navigationOptions).then(
function success() {
// Run code on success
},
function error() {
// Handle errors
}
);
例 5: ダイアログで入力パラメーターを含む生成ページを開く
レコード ID、エンティティ名、およびカスタム データ パラメーターを渡して、生成ページを中央揃えダイアログとして開きます。 これらのパラメーターを受け入れるように、生成ページを設定する必要があります。
var pageInput = {
pageType: "generative",
pageId: "<genPageID>", // replace with the ID of your generative page
recordId: "00aa00aa-bb11-cc22-dd33-44ee44ee44ee", // replace with actual record GUID
entityName: "account",
data: { status: "active", category: "premium" }
};
var navigationOptions = {
target: 2,
height: {value: 80, unit: "%"},
width: {value: 70, unit: "%"},
position: 1
};
Xrm.Navigation.navigateTo(pageInput, navigationOptions).then(
function success(result) {
const output = result?.returnValue;
if (output) {
console.log("Value returned by generative page:", output);
}
},
function error(error) {
console.log(error.message);
}
);
関連記事
Xrm.Navigation
生成ページとの間を移動する
カスタムページへの移動とカスタムページからの移動 (プレビュー)