Dynamics CRM 2011 : フォームでカスタムパラメーターを利用する
みなさん、こんにちは。
前回スクリプトで利用できる Xrm.Utility クラスを紹介しましたが、
その中でフォームに初期値を渡す方法を説明しました。今回は
各フィールドの初期値以外に、カスタムパラメーターをフォームに
渡す方法を紹介します。
フォーム側での設定
フォームにカスタムパラメーターを渡すためには、まずフォーム
側で設定を行う必要があります。
1. 任意のフォームのフォームエディターを開きます。ここでは
取引先企業の情報フォームを利用します。
2. フォームのプロパティボタンをクリックします。
3. パラメータータブをクリックします。
4. 緑のプラスボタンをクリックします。任意の名前を設定し、
パラメータの型を指定します今回は 以下の組み合わせを
登録しました。実施には他のソリューションと重複しないように
固有のプリフィックスを利用することを推奨します。
名前: CustomString_0
型: SafeSring
名前: CustomNumber_1
型: Integer
5. 保存します。
スクリプトでパラメーターを利用
上記で設定したものをスクリプトで利用できます。
1. 引き続き上記のフォームエディターを利用します。フォームの
プロパティからイベントを選択し、フォームライブラリで追加を
クリックします。
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 に
指定します。
呼び出し元の変更
前回の記事で利用したスクリプトにカスタムパラメーターを
追加します。
var parameters = {};
parameters["name"] = "XrmUtility テスト";
parameters["telephone1"] = "(425) 555-1234";
parameters["CustomString_0"] = "カスタムパラメーター";
parameters["CustomNumber_1"] = 10;
Xrm.Utility.openEntityForm("account", null, parameters);
上記スクリプトを利用してフォームを開いた場合、成功すると
以下のようにメッセージが出ます。
まとめ
任意の場所からフォームを開く場合に、どこから開いたかに
よってアクションを変えたい場合などにカスタムパラメーター
を試してください。
‐ Dynamics CRM サポート 中村 憲一郎