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

エンティティ フォームまたは簡易作成フォームを開きます。

構文

Xrm.Navigation.openForm(entityFormOptions,formParameters).then(successCallback,errorCallback);

パラメーター

件名 必要 内容
entityFormOptions オブジェクト 有効 フォームを開くためのフォーム オプション。 オブジェクトには、次の値が含まれています:
  • entityName: 文字列。 フォームを表示するテーブルの論理名。
  • entityId: (任意) 文字列。 フォームを表示するテーブル レコードの ID。
  • formId: (任意) 文字列。 表示するフォーム インスタンスの ID。
  • cmdbar: (任意) ブール値。 コマンド バーを表示するかどうかを指定します。 このパラメーターの値を指定しない場合、既定でコマンド バーが表示されます。 `openInNewWindow` パラメータを true にする必要があります。
  • createFromEntity: (任意) 検索。 マップした列値に基づいて既定値を提供するレコードを指定します。 検索オブジェクトには、以下の文字列プロパティが含まれます。entityTypeid、およびname (任意)。
  • height: (任意) 数値。 表示するフォーム ウィンドウの高さ (ピクセル単位)。
  • navbar: (任意) 文字列。 サイト マップで定義されているエリアとサブエリアを使用して、ナビゲーション バーを表示するかどうか、およびアプリケーションのナビゲーションを使用可能にするかどうかを制御します。 有効な値は 「on」、「off」、または「entity」です。 `openInNewWindow` パラメータを true にする必要があります。
    • on: ナビゲーション バーが表示されます。 navbar パラメーターが使用されていない場合の既定の動作です。
    • off: ナビゲーション バーは表示されません。 他のユーザー インターフェイス要素、または戻るボタンと進むボタンを使用して移動できます。
    • entity: フォームでは、関連テーブルのナビゲーション オプションのみが使用可能です。 関連テーブルへの移動の後は、ナビゲーション バーに戻るボタンが表示され、元のレコードに戻ることができます。
  • openInNewWindow: (任意) ブール値。 フォームを新しいウィンドウに表示するか、新しいタブに表示するかを示します。true を指定した場合、高さや幅の値を指定しない場合、フォームは新しいタブに表示されます。新しいウィンドウまたは新しいタブでフォームを開くと、同じタブでフォームを開く場合に比べてフォームのレンダリングが遅くなります。代わりに、メインフォームダイアログでフォームを開くことを検討してください。 新しいウィンドウやタブで開けないため、簡易作成フォームは現在このプロパティをサポートしていません。
  • windowPosition: (任意) 数値。 画面でのフォームの位置に対して次のいずれかの値を指定します。
    • 1:center
    • 2:side
    これは、新しいブラウザ ウィンドウを開く場合には適用されません。
  • relationship: (任意) オブジェクト。 フォームに関連レコードを表示する関係オブジェクトを定義します。 オブジェクトには、次の値があります。
    件名 内容
    attributeName 文字列 関連付けに使用される列の名前。
    名前 文字列 リレーションシップの名前です。
    navigationPropertyName 文字列 この関係のナビゲーション プロパティの名前。
    relationshipType 数値 関係の種類。 次のいずれかの値を指定します。
    • 0:OneToMany
    • 1:ManyToMany
    roleType 数値 関係におけるロールの種類。 次のいずれかの値を指定します。
    • 1:Referencing
    • 2:AssociationEntity
  • selectedStageId: (任意) 文字列。 ビジネス プロセス インスタンスで選択したステージの ID。
  • useQuickCreateForm: (任意) ブール値。 簡易作成フォームを開くかどうかを示します。 簡易作成フォームを表示するには、テーブルの 簡易作成を許可 オプションが有効になり、テーブルと簡易作成フォームをアプリに追加する必要があります。 useQuickCreateForm の値を指定しない場合、既定は false に設定されます。
  • width: (任意) 数値。 表示するフォーム ウィンドウの幅 (ピクセル単位)。
formParameters オブジェクト 無効 追加のパラメーターをフォームに渡すディクショナリ オブジェクト。 パラメーターが無効の場合、エラーが発生します。

フォームにパラメータを渡す方法の詳細については、フォームに渡すパラメーターを使用して列の値を設定 および カスタム クエリストリング パラメーターが許可されるフォームの構成 を参照してください
successCallback 機能 無効 レコードが簡易作成フォームに保存されるときに実行する関数。

この関数は、オブジェクトにパラメーターとして渡されます。 オブジェクトには、表示または作成されるレコード (複数) を識別するための以下のプロパティと共に savedEntityReference 配列があります。

  • entityType: テーブルの論理名。
  • id: レコードの GUID 値を表す文字列。
  • name: 表示または作成されるレコードのプライマリ列値。

メモ:

  • successCallback 関数は、既存または新規レコードのフォームを開くときは実行されません。
  • successCallback 関数は、openForm メソッドを使用して開いた簡易作成フォームにレコードを保存するときにのみ実行されます。
errorCallback Function 無効 処理が失敗したときに実行する関数。

備考

テーブルまたは簡易作成フォームを開くには、廃止された Xrm.Utility.openEntityForm メソッドおよび Xrm.Utility.openQuickCreate メソッドの代わりに、このメソッドを使用する必要があります。 setActiveProcess を使用して特定のビジネス プロセスと setActiveProcessInstance を表示して、フォームに特定のビジネス プロセス インスタンスを表示します。

例 1: 既存のレコードのフォームを開く

次のサンプル コードは、既存の取引先担当者レコードを表示する取引先担当者フォームを開きます。

var entityFormOptions = {};
entityFormOptions["entityName"] = "contact";
entityFormOptions["entityId"] = "8DA6E5B9-88DF-E311-B8E5-6C3BE5A8B200";

// Open the form.
Xrm.Navigation.openForm(entityFormOptions).then(
    function (success) {
        console.log(success);
    },
    function (error) {
        console.log(error);
    });

例 2: 新規レコードのフォームを開く

次のサンプル コードは、新しいレコードを作成する、一部の値が事前に入力された取引先担当者フォームを開きます。

var entityFormOptions = {};
entityFormOptions["entityName"] = "contact";

// Set default values for the Contact form
var formParameters = {};
formParameters["firstname"] = "Sample";
formParameters["lastname"] = "Contact";
formParameters["fullname"] = "Sample Contact";
formParameters["emailaddress1"] = "contact@adventure-works.com";
formParameters["jobtitle"] = "Sr. Marketing Manager";
formParameters["donotemail"] = "1";
formParameters["description"] = "Default values for this record were set programmatically.";

// Set lookup column
formParameters["preferredsystemuserid"] = "3493e403-fc0c-eb11-a813-002248e258e0"; // ID of the user.
formParameters["preferredsystemuseridname"] = "Admin user"; // Name of the user.
formParameters["preferredsystemuseridtype"] = "systemuser"; // Table name. 
// End of set lookup column

// Open the form.
Xrm.Navigation.openForm(entityFormOptions, formParameters).then(
    function (success) {
        console.log(success);
    },
    function (error) {
        console.log(error);
    });

例 3: 簡易作成フォームを開く

次のサンプル コードは、一部の値が事前に入力された簡易作成の取引先担当者フォームを開きます。

var entityFormOptions = {};
entityFormOptions["entityName"] = "contact";
entityFormOptions["useQuickCreateForm"] = true;

// Set default values for the Contact form
var formParameters = {};
formParameters["firstname"] = "Sample";
formParameters["lastname"] = "Contact";
formParameters["fullname"] = "Sample Contact";
formParameters["emailaddress1"] = "contact@adventure-works.com";
formParameters["jobtitle"] = "Sr. Marketing Manager";
formParameters["donotemail"] = "1";
formParameters["description"] = "Default values for this record were set programmatically.";

// Set lookup column
formParameters["preferredsystemuserid"] = "3493e403-fc0c-eb11-a813-002248e258e0"; // ID of the user.
formParameters["preferredsystemuseridname"] = " Admin user"; // Name of the user.
formParameters["preferredsystemuseridtype"] = "systemuser"; // Table name.
// End of set lookup column

// Open the form.
Xrm.Navigation.openForm(entityFormOptions, formParameters).then(
    function (success) {
        console.log(success);
    },
    function (error) {
        console.log(error);
    });

Xrm.Navigation

注意

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

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