Morning Girl

Web API, Windows, C#, .NET, Dynamics 365/CRM etc..

【Dynamics CRM】Xrm.Pageの簡易的なまとめ

Dynamics CRMではフォーム等で利用できるクライアント側拡張用として、JavaScriptのオブジェクト、Xrm.Pageオブジェクトというものを提供しています。

クライアント側のプログラミングリファレンス

https://msdn.microsoft.com/ja-jp/library/gg328255.aspx

今後、このXrm.PageでできることをちまちまとBlogで記載していきたいと考えてますので、個人的なリファレンスとして、このまとめ的な記事を書いておきたいと思います。

Xrm.Pageを利用した代表的な操作

MSDNの[Xrm.Page オブジェクト モデルの使用]では、代表的な利用方法として、以下のようなものを示しています。

https://msdn.microsoft.com/ja-jp/library/gg328474.aspx

・属性値を取得または設定します。

・ユーザー インターフェイス要素の表示および非表示。

・属性ごとに複数のコントロールを参照します。

・エンティティごとに複数のフォームをアクセスします。

・フォーム ナビゲーション アイテムの操作。

・業務プロセス フローのコントロールとやり取りします。

Xrm.Pageオブジェクトモデル

個人的に最もわかりやすいと思ってる、Xrm.Page object hierarchy(日本語のMSDNを漁っていると見つからないんですよね・・・。)

これを見てもらえれば、だいたいどうゆうオブジェクトにアクセスするべきかがわかるかと思います。

f:id:sugimomoto:20151123115627p:plain

https://msdn.microsoft.com/en-us/library/gg328474.aspx

最近は業務ルールや計算・ロールアップフィールドが導入されたりと、利用するシチュエーションは減っていますが、少しでも高度な開発をしようとするとやはりまだ外せない要素かと思います。

REST・SOAPの利用

Xrm.Page単体では、フォーム上やコンテキストデータの取得のみがサポートされており、ほかのエンティティデータ等へのアクセスはサポートしていません。

そこで利用するのが、REST(oData)・SOAPそれぞれのWebサービスになります。

RESTではDynamics CRM各エンティティに対するデータのCRUD操作のみ

SOAPでは上記の操作に加え、MessageやMetadataの利用などもサポートされています。

詳しくは今回割愛しますが、以下のようなライブラリが提供されていますので、

REST用ライブラリ SDK.REST(Dynamics CRM SDKに含まれています。)

https://msdn.microsoft.com/ja-jp/library/gg334427.aspx#BKMK_SDKREST

SOAP用ライブラリ XrmServiceToolKit

https://xrmservicetoolkit.codeplex.com/