Dynamics CRM 2011: Xrm.Utility の紹介
みなさん、こんにちは。
今回は開発者の方向けの情報として、スクリプトで利用できる Xrm.Utility
を紹介します。こちらの機能は Update Rollup 8 で提供されましたが、先日
公開された Visual Studio 向けのScript Template でもサポートされました。
情報元 : https://msdn.microsoft.com/ja-jp/library/jj602956.aspx
Xrm.Utility
Microsoft Dynamics CRM 2011 および Microsoft Dynamics CRM Online で
スクリプトを開発をしている場合、Xrm.Page オブジェクトモデルを利用でき、
コンテキストやフォームの要素、また読み込まれているデータへアクセス
が容易に行えます。
Xrm.Utility は Xrm.Page とは異なる名前空間であり、目的も異なります。
Xrm.Utility は以下の関数を提供します。
openEntityForm: エンティティフォームを開くことができます。
openWebResource: Web リソースを開くことができます。
window.open との最大の違いは、特定の環境や状況でユーザーが
ログインの為の認証を聞かれないことと、開いたフォームのサイズや
見た目が通常のフォームと同等であることです。また日本語環境では
文字列を URL Encode する必要がない点も重要です。
利用条件
Xrm.Utility はフォームやリボンスクリプト等、スクリプトをサポートする
ページで利用できます。Web リソース内で利用する場合は、
ClientGlobalContext.js.aspx を読み込んでください。
openEntityForm 関数
エンティティフォームを開く関数です。以下の引数を取ります。
name : エンティティの論理名です。
id : 開きたいレコードの GUID です。省略した場合新規フォームが開きます。
parameters : 複数フォームの場合、開きたいフォームの GUID を指定したり、
開いたフォームの初期値を渡すことができます。その他にもカスタムの
クエリ文字列を渡すことが可能ですが、この場合フォーム側でカスタム
クエリ文字列を受け付けるようにする必要があります。次回紹介します。
例えば以下のコードは新規の取引先企業フォームを開き、また
初期値として名前と電話番号を設定しています。
var parameters = {};
parameters["name"] = "XrmUtility テスト";
parameters["telephone1"] = "(425) 555-1234";
Xrm.Utility.openEntityForm("account", null, parameters);
このコードにより開かれるフォームのアドレスを確認すると、以下のように
日本語部分がエンコードされています。
name%3dXrmUtility%2520%25E3%2583%2586%25E3%2582%25B9%25E3%2583%2588
openWebResource 関数
Web リソースを開くことができます。以下の引数を取ります。
webResourceName : 開きたい Web リソース名です。
webResourceData : Web リソースに渡すパラメータです。
width : 開くウィンドウの幅です。
height : 開くウィンドウの高さです。
上記の通りただ開くだけでなくパラメーターも渡せますので、完全な
機能が利用できます。Web リソースへのパラメータの受け渡しの
詳細はまた紹介します。
まとめ
今回は既に日本語化されている SDK の記事から、利用頻度が
高いと思われるものを紹介しました。今後も既に日本語化されて
いる SDK であっても重要なものはブログでも紹介いたします。
‐ Dynamics CRM サポート 中村 憲一郎