次の方法で共有


navigateTo (クライアント API 参照)

指定されたテーブル リスト、テーブル レコード、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 (オプション) 追加のパラメーターをフォームに渡すディクショナリ オブジェクト。

このパラメータは、新しいフォームに設定されたデフォルト値を持つテーブル列 (フォームに渡されたパラメーターを使用して列の値を設定する を参照してください)、または formContext.data.attributes を使用してフォームでアクセスされるカスタム パラメータ (カスタム クエリ文字列パラメーターを受け入れるようにフォームを構成する、と formContext.data をご覧ください) にすることができます。 パラメーターが無効な場合、エラーが発生します。

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 オブジェクトには、次の値が含まれています。

件名 タイプ 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
    }
);

Xrm.Navigation
カスタムページへの移動とカスタムページからの移動 (プレビュー)