トピックス

知識創造研究室 by CRM(xRM)

Dynamics CRM Xrm.Page ヘッダーのフィールドを操作

みなさん、こんばんは!

数日前にとてつもない腹痛に襲われトイレから出れなくなった Harada ですwww
みなさん冷たいものの飲みすぎには注意しましょ~♪(ってどうでもいいですね!笑)
どうでもいい話ついでに私の大好物は焼肉です。焼肉です。焼肉です。(大切なのでBOLDで3回書きました。タイプミスではありませんwww)

さて、どうでもいい私の話は置いておいて、本題にはいります。今回は Xrm.Page を使用してヘッダーに配置したフィールドを操作したいと思います。「なんや今までとなんも変わらんやないか!」と思ったそこのあなた!そうです。たいした変わりはありませんw
しかし、ヘッダーに配置したフィールドに OnChange イベントを設定できなかったり、Xrm.Page でを使用して値を取得しようとしてもフィールドが見つからないとエラーになったりとするのです。そこで上記を解決する術をここでお伝えしようと思います!笑

ヘッダーのフィールド?

まずは、冒頭で『できない』と書いた部分について解説しましょう。
リード(Dynamics CRM 2013 まで潜在顧客と言われてた)のエンティティで説明します。

ヘッダーのフィールドにOnChange は設定できない?

フォームエディタを開き、「評価」フィールドのプロパティを開いてみます。
0903-001
見てください「イベント」タブがないんです。麗しのOnChange イベントがないんです。。。(困ったなぁ~。。。ってなった方いらっしゃるのでは?)

ヘッダーのフィールドがXrm.Page で取得できない?

続いては、Xrm.Pageでフィールドが取得できないというのをお見せしましょう。
 Xrm.Utility.alertDialog(Xrm.Page.getControl("leadqualitycode"), function() { } );
をWebリソースに作成して、フォームのOnLoadイベントに設定してみます。
0903-002
取得できませんよね? ちなみに Xrm.Page.getAtrribute は動作します。(困ったなぁ~。。。非表示にしたいのになぁ・・・)

おまじないで何とかできちゃいます!

それではどうやって実現するのかをご説明します。と言うほどのものでもないんですが・・・
フィールド名にちょっとした"おまじない"を書けてあげるだけで取得できるようになります。
 Xrm.Utility.alertDialog(Xrm.Page.getControl("header_leadqualitycode"), function() { } );
と、書き換えてみました。
0903-003
まぁ、なんということでしょう(大○造!!○的ビフォ○アフタ○を意識してみましたw)
コントロールが取得できているではありませんか!?(笑) これで表示/非表示を切り替えたりが可能になります。
そして、OnChange イベントについては、Xrm.Page.getAtrribute("fieldname").addOnChangeを利用することで設定可能となります。

次回予告???

Xrm.Pageを利用したクライアントサイドスクリプトは色々紹介してきましたが、ご理解頂けてますでしょうか。やりたい事はほぼ実現できると思って頂いて問題ないかと思います。
次回は何をしようかすでに悩んでますw こんなの知りたいとかあればコメントください。(とうとうネタ切れか?笑)
Web API にしようか、SDKにしようか悩んでます! (『どっかのサイトからパクってくればええやん』と悪魔がささやいていますwww)
たぶん、Web API にしまーーーす!たぶんですが・・・たぶんですよ?w 次回の投稿が何になるのか乞うご期待!!!

※ 記事の内容は個人発信の参考情報です。記事内容のご利用は、ご自身の判断でお願いします。

この記事を書いた人
原田 研吾

文系プログラマ(.NET Framework、Java)。
25歳から始めたプログラムは死ぬ気で頑張った(誰も褒めてくれないので自分で誉めてます)。
気が付けば製品開発部のマネージャー・・・
弊社Dynamics CRM トレーニングの講師をやったりもします。
事業部やら役職やらありますが、『事業部内の便利屋』が一番フィットする肩書です。
アーカス・ジャパン株式会社 CRM製品
CRM製品に関するお問い合わせ
TEL 06-6195-7501
お問い合わせはこちら

同じカテゴリの記事

Translate »