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

指定されたテーブル リスト、テーブル レコード、HTML Web リソース、またはカスタム ページに移動します。

注意

このメソッドは、統一インターフェイス上でのみサポートされます。

構文

Xrm.Navigation.navigateTo(pageInput,navigationOptions).then(successCallback,errorCallback);

パラメーター

件名 必要 内容
pageInput オブジェクト 有効 移動するページについて入力します。 オブジェクト定義は、移動先のページの種類に応じて変わります: エンティティ リストエンティティ レコードダッシュボードHTML Web リソース、またはカスタムページ
navigationOptions オブジェクト 番号 ページに移動するためのオプション: インラインで開くか、またはダイアログで開くか。 このパラメーターを指定しない場合、ページは既定でインラインで開かれます。
successCallback 関数 番号 インラインで移動してページへの移動が成功した時、およびダイアログに移動する場合、ダイアログを閉じる時に実行する関数。
errorCallback 関数 番号 処理が失敗したときに実行する関数。

pageInput パラメーター

エンティティ リスト

エンティティ リスト オブジェクトには、次の値が含まれています。

名前 タイプ 説明
pageType 文字列 「entitylist」を指定します。
entityName 文字列 リスト コントロールに読み込むテーブルの論理名。
viewId 文字列 (オプション) 読み込むビューの ID。 指定しない場合は、テーブルの既定のメイン ビューに移動します。
viewType 文字列 (オプション) 読み込むビューのタイプ。 「savedquery」または「userquery」を指定します。

エンティティ レコード

エンティティ レコード オブジェクトには、次の値が含まれています。

名前 タイプ 説明
pageType 文字列 「entityrecord」を指定します。
entityName 文字列 フォームを表示するテーブルの論理名。
entityId 文字列 (オプション) フォームを表示するテーブル レコードの ID。 この値を指定しない場合、フォームは作成モードで開かれます。
createFromEntity 検索 (オプション) マップした列の値に基づいて既定値を提供するレコードを指定します。 ルックアップ オブジェクトには、entityType、ID、名前 (オプション) などの文字列プロパティがあります。
データ オブジェクト (オプション) 追加のパラメーターをフォームに渡すディクショナリ オブジェクト。 パラメーターが無効の場合、エラーが発生します。

フォームにパラメータを渡す方法の詳細については、フォームに渡すパラメーターを使用して列の値を設定するおよびカスタム クエリストリング パラメーターが許可されるフォームの構成を参照してください。

formId 文字列 (オプション) 表示するフォーム インスタンスの ID。
isCrossEntityNavigate ブール値 (オプション) クロステーブル ビジネス プロセス フローを使用して、フォームに別のテーブルから移動されるかどうかを示します。
isOfflineSyncError ブール値 (オプション) オフライン同期エラーがあるかどうかを示します。
processId 文字列 (オプション) フォームに表示するビジネス プロセス プロセスの ID。
processInstanceId 文字列 (オプション) フォームに表示するビジネス プロセス インスタンスの ID。
relationship オブジェクト (オプション) フォームに関連レコードを表示する関係オブジェクトを定義します。
selectedStageId 文字列 (オプション) ビジネス プロセス インスタンスで選択したステージの ID。
tabName 文字列 (オプション) フォームのタブにフォーカスを設定します。
関係オブジェクト

関係オブジェクトは、エンティティ レコードで使用され、次の値が含まれます。

名前 タイプ 説明
attributeName 文字列 関連付けに使用される列の名前。
名前 文字列 リレーションシップの名前です。
navigationPropertyName 文字列 この関係のナビゲーション プロパティの名前。
relationshipType 数値 リレーションシップ タイプ。 次のいずれかの値を指定します: 0:OneToMany、1:ManyToMany。
roleType 数値 リレーションシップのロール タイプ。 次のいずれかの値を指定します: 1:Referencing、2:AssociationEntity。

ダッシュボード

ダッシュボード オブジェクトには、次の値が含まれています。

名前 タイプ 説明
pageType 文字列 「dashboard」を指定します。
dashboardId 文字列 ロードするダッシュボードの ID。 ID を指定しない場合は、規定のダッシュボードに移動します。

HTML Web リソース

HTML Web リソースには、次の値が含まれています。

名前 タイプ 説明
pageType 文字列 「webresource」を指定します。
webresourceName 文字列 読み込む Web リソースの名前。
データ 文字列 (オプション) Web リソースに渡すデータ。

カスタム ページ

カスタム ページ オブジェクトには、次の値が含まれています。

名前 タイプ 説明
pageType 文字列 「custom」を指定します。
名前 文字列 開くカスタムページの論理名です。
entityName 文字列 (オプション) Param("entityName") を介してカスタム ページで使用できるようにするテーブルの論理名。
recordId 文字列 (オプション) Param("recordId") を介してカスタム ページで使用できるようにするテーブル レコードの ID。

navigationOptions オブジェクトには、次の値が含まれています。

名前 タイプ 説明
ターゲット 数値 インラインでページを開くには 1 を指定し、ダイアログでページを開くには 2 を指定します。 また、残りの値 (幅、高さ、位置) は、この値に 2 を指定した (ダイアログでページを開く) 場合にのみ有効です。

注: エンティティ リストはインラインでのみ開くことができます。エンティティ レコードと Web リソースは、インラインまたはダイアログで開くことができます。

数値またはオブジェクト (オプション) ダイアログの幅。 ピクセル単位で幅を指定するには、数値を入力するだけです。 パーセンテージで幅を指定するには、次のプロパティを持つ種類のオブジェクト SizeValue を指定します。
  • 値: 数値タイプの数値。
  • 単位: 文字列型の測定単位。 「%」または「px」を指定します。 既定値は「px」です。
高さ 数値またはオブジェクト (オプション) ダイアログの高さ。 ピクセル単位で高さを指定するには、数値を入力するだけです。 パーセンテージで幅を指定するには、次のプロパティを持つ種類のオブジェクト SizeValue を指定します。
  • 値: 数値タイプの数値。
  • 単位: 文字列型の測定単位。 「%」または「px」を指定します。 既定値は「px」です。
位置 数値 (オプション) 中央にダイアログを開くには 1 を指定し、端にダイアログを開くには 2 を指定します。 既定は 1 (中央) です。
タイトル 文字列 (オプション) 中央または側面のダイアログの上部にあるダイアログのタイトル。

戻り値

Promise を返します。 Promise の解決時に渡される値は、ターゲットに依存しています。

  • inline: 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: "5a57f2c3-5672-ea11-a812-000d3a339706" //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 リソースを開く

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

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

注意

ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)

この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。