指定されたテーブル リスト、テーブル レコード、HTML Web リソース、またはカスタム ページに移動します。
ヒント
このメソッドは、統一インターフェイス上でのみサポートされます。
構文
Xrm.Navigation.navigateTo()を呼び出すには、次の構文を使用します。
Xrm.Navigation.navigateTo(pageInput,navigationOptions).then(successCallback,errorCallback);
パラメーター
このメソッドは、次のパラメーターを受け入れます。
| 件名 | タイプ | 必要 | Description |
|---|---|---|---|
| pageInput | Object | はい | 移動するページについて入力します。 pageInput パラメーター を参照 |
| navigationOptions | Object | いいえ | ページに移動するためのオプション: インラインで開くか、またはダイアログで開くか。 このパラメーターを指定しない場合、メソッドは既定でページをインラインで開きます。 |
successCallback |
関数 | いいえ | インラインで移動してページへの移動が成功した時、およびダイアログに移動する場合、ダイアログを閉じる時に実行する関数。 |
errorCallback |
Function | いいえ | 処理が失敗したときに実行する関数。 |
pageInput パラメーター
オブジェクト定義は、移動するページの種類 ( エンティティ リスト、 エンティティ レコード、 ダッシュボード、 HTML Web リソース、 カスタム ページ、 または生成ページ) に応じて変わります。
エンティティ リスト
エンティティ リスト オブジェクトには、次の値が含まれています。
| 件名 | タイプ | Description |
|---|---|---|
pageType |
String |
entitylist を指定します。 |
entityName |
String | リスト コントロールに読み込むテーブルの論理名。 |
viewId |
String | (オプション) 読み込むビューの ID。 指定しない場合、アプリはテーブルの既定のメイン ビューに移動します。 |
viewType |
String | (オプション) 読み込むビューのタイプ。
savedqueryまたはuserqueryを指定します。 |
エンティティ レコード
エンティティ レコード オブジェクトには、次の値が含まれています。
| 件名 | タイプ | Description |
|---|---|---|
pageType |
String |
entityrecord を指定します。 |
entityName |
String | フォームを表示するテーブルの論理名。 |
entityId |
String | (オプション) フォームを表示するテーブル レコードの ID。 この値を指定しない場合、フォームは作成モードで開きます。 |
createFromEntity |
参照 | (省略可能)マップされた列の値に基づいて既定値を提供するレコードを指定します。 ルックアップ オブジェクトには、entityType、ID、名前 (オプション) などの文字列プロパティがあります。 |
data |
Object | (オプション) 追加のパラメーターをフォームに渡すディクショナリ オブジェクト。
このパラメータは、新しいフォームに設定されたデフォルト値を持つテーブル列 (フォームに渡されたパラメーターを使用して列の値を設定する を参照してください)、または |
formId |
String | (省略可能)表示するフォーム インスタンスの ID。 |
isCrossEntityNavigate |
ブール値 | (オプション) クロステーブル ビジネス プロセス フローを使用して、フォームに別のテーブルから移動されるかどうかを示します。 |
isOfflineSyncError |
ブール値 | (オプション) オフライン同期エラーがあるかどうかを示します。 |
processId |
String | (省略可能)フォームに表示するビジネス プロセスの ID。 |
processInstanceId |
String | (省略可能)フォームに表示するビジネス プロセス インスタンスの ID。 |
relationship |
Object | (オプション) フォームに関連レコードを表示する関係オブジェクトを定義します。 リレーションシップ を参照してください。 |
selectedStageId |
String | (オプション) ビジネス プロセス インスタンスで選択したステージの ID。 |
tabName |
String | (オプション) フォームのタブにフォーカスを設定します。 |
関係オブジェクト
関係オブジェクトは、エンティティ レコードで使用され、次の値が含まれます。
| 件名 | タイプ | Description |
|---|---|---|
attributeName |
String | 関連付けに使用される列の名前。 |
name |
String | リレーションシップの名前です。 |
navigationPropertyName |
String | この関係のナビゲーション プロパティの名前。 |
relationshipType |
回数 | リレーションシップ タイプ。 次のいずれかの値を指定します: 0:OneToMany、1:ManyToMany。 |
roleType |
回数 | リレーションシップのロール タイプ。 次のいずれかの値を指定します: 1:Referencing、2:AssociationEntity。 |
ダッシュボード
ダッシュボードを開く場合は、このオブジェクトを pageInput パラメーターとして使用 します。
ダッシュボード オブジェクトには、次の値が含まれています。
| 件名 | タイプ | Description |
|---|---|---|
pageType |
String |
dashboard を指定します。 |
dashboardId |
String | ロードするダッシュボードの ID。 ID を指定しない場合、アプリは既定のダッシュボードに移動します。 |
HTML Web リソース
HTML Web リソースを開く場合は、このオブジェクトを pageInput パラメーターとして使用します。
HTML Web リソースには、次の値が含まれています。
| 件名 | タイプ | Description |
|---|---|---|
pageType |
String |
webresource を指定します。 |
webresourceName |
String | 読み込む Web リソースの名前。 |
data |
String | (オプション) Web リソースに渡すデータ。 |
カスタム ページ
カスタム ページを開く場合は、このオブジェクトを pageInput パラメーターとして使用します。
カスタム ページ オブジェクトには、次の値が含まれています。
| 件名 | タイプ | Description |
|---|---|---|
pageType |
String |
custom を指定します。 |
name |
String | 開くカスタムページの論理名です。 |
entityName |
String | (オプション) Param("entityName") を介してカスタム ページで使用できるようにするテーブルの論理名です。 |
recordId |
String | (オプション) Param("recordId") を介してカスタム ページで使用できるようにするテーブル レコードの ID。 |
生成ページ
生成ページを開く場合は、このオブジェクトを pageInput パラメーターとして使用します。
生成ページ オブジェクトには、次の値が含まれています。
| 件名 | タイプ | Description |
|---|---|---|
pageType |
String |
generative を指定します。 |
pageId |
String | 開く生成ページの ID。 |
ヒント
現在、 navigateTo を使用して生成ページに移動 しても、初期化データやコンテキスト データ (テーブル名、レコード ID、カスタム パラメーターなど) の渡しはサポートされていません。 生成ページがコンテキストなしで開きます。
navigationOptions パラメーター
navigationOptions オブジェクトには、次の値が含まれています。
| 件名 | タイプ | Description |
|---|---|---|
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 はすぐに解決され、値は返されません。
dialog: Promise はダイアログが閉じると解決されます。
pageType=entityRecordで、作成モードでフォームを開いたときにのみ、オブジェクトは渡されます。 オブジェクトには、作成されるテーブル レコードを識別するための以下のプロパティと共に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
}
);