フォームに渡すパラメーターを使用して列値を設定する

ユーザーによって作成される新規のレコードの既定値を設定するには、そのフォームを開くために使われる URL 内に値を指定します。 既定で、これらの値はフォーム内に設定されますが、ユーザーがレコードを保存する前に変更することもできます。

レコードの列値を設定するパラメーターの受け渡し

注意

Xrm.Navigation.openForm 関数を使用して、フォームにパラメーター値を渡して列値を設定できます。 例については、例: Xrm.Navigation.openForm を使用して新規ウィンドウを開く を参照してください。

URL アドレスを使用して新しいフォームを開くときに、列値を設定する引数を extraqs パラメーターに含めることができます。 次の要件を満たす必要があります。

  • extraqs パラメーターで受け渡すパラメーターをエンコードすること。 パラメーターのエンコードには encodeURIComponent を使用します。 パラメータ値で "=" や "&" などの特殊文字を使用するには、二重エンコードする必要があります (たとえば、nameA=B&C に設定するには、extraqs=name%3DA%253DB%2526C になります)。

  • クエリ文字列の引数の名前は、テーブルの列の名前と一致するか、または列の名前を含むものである。

  • 有効な値を引き渡すこと。

  • 値にスクリプトは使用できない。

  • 無効なパラメーターまたは値を引き渡そうとするとエラーが発生します。

  • ブール型の列では、01 の整数値、または truefalse のテキスト値を使用して値を設定する。

  • DateTime 列では、日付のテキスト値を使用する。

例: 文字列の列の値を設定する

次のサンプルでは、新規の取引先企業レコードの 名前 列に値 "New Account" を設定します。

extraqs パラメーターのエンコード前の値は "name=New Account" です。

/main.aspx?etn=account&extraqs=name%3DNew%20Account&pagetype=entityrecord  

検索列の値の設定

次の表に、5 種類の検索列を示します。 検索列の使用例については、例: 検索列の値を設定する および 例: Xrm.Navigation.openForm を使用して新規ウィンドウを開く を参照してください。

検索の種類 内容
簡易検索 1 種類のテーブルに対する 1 つの参照を使用できます。
顧客の検索 取引先企業または取引先担当者のレコードに対する単一の参照を使用できます。
所有者の検索 チームまたはシステム ユーザーのレコードに対する単一の参照を使用できます。
関係者リストの検索 複数のテーブルに対する複数の参照を使用できます。
関連の検索 複数のテーブルに対する単一の参照を使用できます。

クエリ文字列引数を使用してフォームに対する検索の値を設定するときは、次のガイドラインが適用されます。

  • 簡易検索の場合、検索に表示する値とテキストを設定する必要があります。 テキストの値を設定するには、列の名前に接尾辞 “name” を使用します。

    その他の引数を使用しないでください。

  • 顧客および所有者の検索の場合、値と名前を設定する必要があります。設定方法は簡易検索の場合と同じです。 また、テーブルの種類を指定するには、接尾辞 "type" を使用する必要があります。 種類として使用できる値は、account、contact、systemuser、および team です。

  • 関係者リストまたは関連の検索には値を設定できません。

例: 検索列の値を設定する

検索列の値を設定するには、データ値と名前値を使用し、顧客または所有者の検索の場合にのみ、各列の種類値を指定します。 次のサンプルは "Mark Folkerts" という名前のユーザーに所有者列を設定します。

extraqs パラメーターのエンコード前の値は "ownerid={B8C6E040-656E-DF11-B414-00155DB1891A}&owneridname=Mark Folkerts&owneridtype=systemuser" です。

/main.aspx?etn=lead&pagetype=entityrecord&extraqs=ownerid%3D%7bB8C6E040-656E-DF11-B414-00155DB1891A%7d%26owneridname%3DMark%20Folkerts%26owneridtype%3Dsystemuser  

次のサンプルでは、取引先責任者列を "Yvonne McKay (sample)" という名前のユーザーに設定します。extraqs パラメーターのエンコード前の値は "primarycontactid={43b58571-eefa-e311-80c1-00155d2a68c4}&primarycontactidname=Yvonne McKay (sample)" です。

/main.aspx?etn=account&pagetype=entityrecord&extraqs=primarycontactid%3D%7B43b58571-eefa-e311-80c1-00155d2a68c4%7D%26primarycontactidname%3DYvonne%20McKay%20(sample)  

注意

このような簡易検索の場合、種類の値を設定する必要はありません。

例: 日付列の値を設定する

次のサンプルでは、新しい営業案件の 予測クローズ日 列を 2011 年 1 月 31 日に設定します。 extraqs パラメーターのエンコード前の値は "estimatedclosedate=01/31/11" です。

/main.aspx?etn=opportunity&extraqs=estimatedclosedate%3D01%2F31%2F11&pagetype=entityrecord  

例: 選択列の値を設定する

選択 列の値を設定するには、オプションに整数値を設定します。 次のサンプルでは、新しい取引先担当者レコードで ロール 列の値を "意思決定者" に設定します。

extraqs パラメーターのエンコード前の値は "accountrolecode=1" です。

/main.aspx?etn=contact&extraqs=accountrolecode%3D1&pagetype=entityrecord  

例: 選択肢の列の値を設定する

選択肢 列の値を設定するには、フォームを開くために使用される URL にオプションの整数値を指定します。 たとえば、趣味 列のオプションを設定する場合、extraqs パラメーターのエンコード前の値は "hobbies=[1,3,4]" です。 

/main.aspx?etn=contact&extraqs=hobbies%3D%5B1%2C3%2C4%5D&pagetype=entityrecord   

例: Xrm.Navigation.openForm で新しいウィンドウを開く

次のサンプルでは、いくつかの列に既定値を設定し、Xrm.Navigation.openForm 関数を使用する方法を示します。 この例は、window.open メソッドを使用した前の例と同じです。

function OpenNewContact() {  
 var parameters = {};  
 //Set the Parent Customer column value to "Contoso".  
 parameters["parentcustomerid"] = "2878282E-94D6-E111-9B1D-00155D9D700B";  
 parameters["parentcustomeridname"] = "Contoso";  
 parameters["parentcustomeridtype"] = "account";  
 //Set the Address Type to "Primary".  
 parameters["address1_addresstypecode"] = "3";  
 //Set text in the Description column.  
 parameters["description"] = "Default values for this record were set programmatically.";  
 //Set Do not allow E-mails to "Do Not Allow".  
 parameters["donotemail"] = "1";  
  
 // Define the table name to open the form  
 var entityFormOptions = {};
 entityFormOptions["entityName"] = "contact";

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

例: window.open で新しいウィンドウを開く

次のサンプルでは、いくつかの列に既定値を設定し、encodeURIComponent を使用して extraqs パラメーターの値をエンコードする方法を示します。 window.open メソッドでは、開くウィンドウの機能を制御できます。

function OpenNewContact() {  
    //Set the Parent Customer column value to "Contoso".  
    var extraqs = "parentcustomerid={F01F3F6D-896E-DF11-B414-00155DB1891A}";  
    extraqs += "&parentcustomeridname=Contoso";  
    extraqs += "&parentcustomeridtype=account";  
    //Set the Address Type to "Primary".  
    extraqs += "&address1_addresstypecode=3";  
    //Set text in the Description column.  
    extraqs += "&description=Default values for this record were set programatically.";  
    //Set Do not allow E-mails to "Do Not Allow".  
    extraqs += "&donotemail=1";  
    //Set features for how the window will appear.  
    var features = "location=no,menubar=no,status=no,toolbar=no";  
    // Open the window.  
    window.open("/main.aspx?etn=contact&pagetype=entityrecord&extraqs=" +  
     encodeURIComponent(extraqs), "_blank", features, false);  
}  

関連項目

URL を使用してフォームおよびビューを開く
openForm
カスタム クエリストリング パラメーターが許可されるフォームの構成

注意

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

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