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

指定されたエンティティ リスト、エンティティ レコード、または HTML Web リソースに移動します。

注意

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

構文

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

パラメーター

件名 必要 内容
pageInput オブジェクト 有効

移動するページについて入力します。 オブジェクト定義は、次のナビゲートするページのタイプに応じて変わります: エンティティ リストエンティティ レコードダッシュボード、またはHTML Web リソース

----------------------------------------------------------------

エンティティ リスト

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

  • pageType: 文字列。 「entitylist」を指定します。
  • entityName: 文字列。 リスト コントロールで読み込まれるエンティティ データの論理名。
  • viewId: (任意) 文字列。 読み込むビューの ID。 指定しない場合、エンティティの既定のメイン ビューに移動します。
  • viewType: (任意) 文字列。 読み込むビューの種類。 「savedquery」または「userquery」を指定します。

----------------------------------------------------------------

エンティティ レコード

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

  • pageType: 文字列。 「entityrecord」を指定します。
  • entityName: 文字列。 フォームを表示するエンティティの論理名。
  • entityId: (任意) 文字列。 フォームを表示するエンティティ レコードの ID。 この値を指定しない場合、フォームは作成モードで開かれます。
  • createFromEntity: (任意) 検索。 マップした属性値に基づいて既定値を提供するレコードを指定します。 検索オブジェクトには、以下の文字列プロパティが含まれます。entityTypeid、およびname (任意)。
  • data: (オプション) オブジェクト。 追加のパラメーターをフォームに渡すディクショナリ オブジェクト。 パラメーターが無効の場合、エラーが発生します。
    フォームにパラメーターを渡す方法の詳細については、フォームに渡すパラメーターを使用してフィールド値を設定する および カスタム クエリストリング パラメーターが許可されるフォームの構成 を参照してください。
  • formId: (任意) 文字列。 表示するフォーム インスタンスの ID。
  • isCrossEntityNavigate: (任意) ブール値。 複数のエンティティにまたがる業務プロセス フローを使用してフォームが別のエンティティから移動するかどうかを示します。
  • isOfflineSyncError: (任意) ブール値。 オフライン同期エラーがあるかどうかを示します。
  • processId: (任意) 文字列。 フォームに表示するビジネス プロセスの ID。
  • processInstanceId: (任意) 文字列。 フォームに表示するビジネス プロセス インスタンスの ID。
  • relationship: (任意) オブジェクト。 フォームに関連レコードを表示する関係オブジェクトを定義します。 オブジェクトには、次の属性があります。              
    Name種類​​内容
    attributeName String 関係で使用される属性の名前です。
    名前 String 関係の名前。
    navigationPropertyName String この関係のナビゲーション プロパティの名前。
    relationshipType 数値 関係の種類。 次のいずれかの値を指定します。
    • 0:OneToMany
    • 1:ManyToMany
    roleType 数値 関係におけるロールの種類。 次のいずれかの値を指定します。
    • 1:Referencing
    • 2:AssociationEntity
  • selectedStageId: (任意) 文字列。 ビジネス プロセス インスタンスで選択したステージの ID。

----------------------------------------------------------------

HTML Web リソース

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

  • pageType: 文字列。 「webresource」を指定します。
  • webresourceName: 文字列。 読み込む Web リソースの名前。
  • data: (任意) 文字列。 Web リソース に渡すデータ。

----------------------------------------------------------------

ダッシュボード

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

  • pageType: 文字列。 "ダッシュボード" を指定します。
  • dashboardId: 文字列。 ロードするダッシュボードの ID。 ID を指定しない場合は、規定のダッシュボードに移動します。
navigationOptions オブジェクト 無効

ページに移動するためのオプション: インラインで開くか、またはダイアログで開くか。 このパラメーターを指定しない場合、ページは既定でインラインで開かれます。 オブジェクトには、次の属性が含まれています。

  • target: 数値。 インラインでページを開くには 1 を指定し、ダイアログでページを開くには 2 を指定します。 また、残りの属性 (widthheight、および position) は、この属性 (ダイアログでページを開く) で 2 を指定した場合にのみ有効です。

    : エンティティ リスト はインラインでのみ開くことができます。エンティティ レコード および Web リソース はインラインまたはダイアログのいずれかで開くことができます。

  • width: (オプション) 数値またはオブジェクト。 ダイアログの幅です。 ピクセル単位で幅を指定するには、数値を入力するだけです。 パーセンテージで幅を指定するには、次のプロパティを持つ種類のオブジェクト SizeValue を指定します。
    • : 数値 数値。
    • unit: 文字列。 出荷の単位。 「%」 または 「px」を指定します。 既定値は「px」です。
  • height: (オプション) 数値またはオブジェクト。 ダイアログの高さです。 ピクセル単位で高さを指定するには、数値を入力するだけです。 パーセンテージで幅を指定するには、次のプロパティを持つ種類のオブジェクト SizeValue を指定します。
    • : 数値 数値。
    • unit: 文字列。 出荷の単位。 「%」 または 「px」を指定します。 既定値は「px」です。
  • position: (任意) 数値。 ダイアログを中央で開くには 1 を指定し、ページの最上部で開くには 2 を指定します。 既定は 1 (中央) です。
successCallback function No

インラインで移動してページへの移動が成功した時、およびダイアログに移動する場合、ダイアログを閉じる時に実行する関数。

errorCallback Function No

処理が失敗したときに実行する関数。

戻り値

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

  • inline: Promise はすぐに解決され、値を返しません。
  • dialog: ダイアログを閉じるときに Promise が解決されます。 pageType = entityRecord で、作成モードでフォームを開いたときにのみ、オブジェクトは渡されます。 オブジェクトには、作成されたエンティティ レコードを識別するための以下のプロパティのある savedEntityReference 配列があります。
    • entityType: エンティティの論理名。
    • id: レコードの GUID 値を表す文字列。
    • 名前: 表示または作成されるレコードの主属性値。

例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