Dynamics CRM Xrm.Page ヘッダーのフィールドを操作
みなさん、こんばんは!
数日前にとてつもない腹痛に襲われトイレから出れなくなった Harada ですwww
みなさん冷たいものの飲みすぎには注意しましょ~♪(ってどうでもいいですね!笑)
どうでもいい話ついでに私の大好物は焼肉です。焼肉です。焼肉です。(大切なのでBOLDで3回書きました。タイプミスではありませんwww)
さて、どうでもいい私の話は置いておいて、本題にはいります。今回は Xrm.Page を使用してヘッダーに配置したフィールドを操作したいと思います。「なんや今までとなんも変わらんやないか!」と思ったそこのあなた!そうです。たいした変わりはありませんw
しかし、ヘッダーに配置したフィールドに OnChange イベントを設定できなかったり、Xrm.Page でを使用して値を取得しようとしてもフィールドが見つからないとエラーになったりとするのです。そこで上記を解決する術をここでお伝えしようと思います!笑
ヘッダーのフィールド?
まずは、冒頭で『できない』と書いた部分について解説しましょう。
リード(Dynamics CRM 2013 まで潜在顧客と言われてた)のエンティティで説明します。
ヘッダーのフィールドにOnChange は設定できない?
フォームエディタを開き、「評価」フィールドのプロパティを開いてみます。
見てください「イベント」タブがないんです。麗しのOnChange イベントがないんです。。。(困ったなぁ~。。。ってなった方いらっしゃるのでは?)
ヘッダーのフィールドがXrm.Page で取得できない?
続いては、Xrm.Pageでフィールドが取得できないというのをお見せしましょう。
Xrm.Utility.alertDialog(Xrm.Page.getControl("leadqualitycode"), function() { } );
をWebリソースに作成して、フォームのOnLoadイベントに設定してみます。
取得できませんよね? ちなみに Xrm.Page.getAtrribute は動作します。(困ったなぁ~。。。非表示にしたいのになぁ・・・)
おまじないで何とかできちゃいます!
それではどうやって実現するのかをご説明します。と言うほどのものでもないんですが・・・
フィールド名にちょっとした"おまじない"を書けてあげるだけで取得できるようになります。
Xrm.Utility.alertDialog(Xrm.Page.getControl("header_leadqualitycode"), function() { } );
と、書き換えてみました。
まぁ、なんということでしょう(大○造!!○的ビフォ○アフタ○を意識してみましたw)
コントロールが取得できているではありませんか!?(笑) これで表示/非表示を切り替えたりが可能になります。
そして、OnChange イベントについては、Xrm.Page.getAtrribute("fieldname").addOnChangeを利用することで設定可能となります。
次回予告???
Xrm.Pageを利用したクライアントサイドスクリプトは色々紹介してきましたが、ご理解頂けてますでしょうか。やりたい事はほぼ実現できると思って頂いて問題ないかと思います。
次回は何をしようかすでに悩んでますw こんなの知りたいとかあればコメントください。(とうとうネタ切れか?笑)
Web API にしようか、SDKにしようか悩んでます! (『どっかのサイトからパクってくればええやん』と悪魔がささやいていますwww)
たぶん、Web API にしまーーーす!たぶんですが・・・たぶんですよ?w 次回の投稿が何になるのか乞うご期待!!!
※ 記事の内容は個人発信の参考情報です。記事内容のご利用は、ご自身の判断でお願いします。