Dynamics CRM 2011 : フォームでカスタムパラメーターを利用する

みなさん、こんにちは。

前回スクリプトで利用できる Xrm.Utility クラスを紹介しましたが、
その中でフォームに初期値を渡す方法を説明しました。今回は
各フィールドの初期値以外に、カスタムパラメーターをフォームに
渡す方法を紹介します。

フォーム側での設定

フォームにカスタムパラメーターを渡すためには、まずフォーム
側で設定を行う必要があります。

1. 任意のフォームのフォームエディターを開きます。ここでは
取引先企業の情報フォームを利用します。

2. フォームのプロパティボタンをクリックします。

image

3. パラメータータブをクリックします。

image

4. 緑のプラスボタンをクリックします。任意の名前を設定し、
パラメータの型を指定します今回は 以下の組み合わせを
登録しました。実施には他のソリューションと重複しないように
固有のプリフィックスを利用することを推奨します。

image

名前: CustomString_0
型: SafeSring

名前: CustomNumber_1
型: Integer

image

5. 保存します。

スクリプトでパラメーターを利用

上記で設定したものをスクリプトで利用できます。

1. 引き続き上記のフォームエディターを利用します。フォームの
プロパティからイベントを選択し、フォームライブラリで追加を
クリックします。

image

2. レコードの検索画面で、新規ボタンをクリックします。新しい
Web リソースの画面が開きます。

3. 任意の名前を指定し、種類からスクリプトを選択します。
ここでは FormParameterTest.js としました。

4. テキスト エディターボタンをクリックします。

5. 以下のコードを貼り付けます。パラメーターは Xrm.Page
の context から getQueryStringParameters 関数で取得します。

function parameterTest()
{
   var param=Xrm.Page.context.getQueryStringParameters();
   alert('Customer String: ' + param["CustomString_0"]);
   alert('Customer Number: ' + param["CustomNumber_1"]);
}

6. 保存して閉じます。作成した Web リソースが選択されて
いることを確認して、OK をクリックします。

7. イベントハンドラーの項目で作成した関数を OnLoad に
指定します。

image

呼び出し元の変更

前回の記事で利用したスクリプトにカスタムパラメーターを
追加します。

var parameters = {};
parameters["name"] = "XrmUtility テスト";
parameters["telephone1"] = "(425) 555-1234";
parameters["CustomString_0"] = "カスタムパラメーター";
parameters["CustomNumber_1"] = 10;
Xrm.Utility.openEntityForm("account", null, parameters);

上記スクリプトを利用してフォームを開いた場合、成功すると
以下のようにメッセージが出ます。

image

image

まとめ

任意の場所からフォームを開く場合に、どこから開いたかに
よってアクションを変えたい場合などにカスタムパラメーター
を試してください。

‐ Dynamics CRM サポート 中村 憲一郎