Morning Girl

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

【Dynamics CRM】【8.0】【Web API】Web APIの概要

Dynamics CRM 2016(8.0)の新機能の紹介。

ちまちまと触っていた、SDK周りの新機能にもようやく着手です。

■開発者向けの新機能: Microsoft Dynamics CRM 2016

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

2015SP1までプレビュー機能だった、Web APIが正式版となりましたので、そのあたりをいろいろと探ってみたいと思います。

ただ、もうすでに、Team Blogのほうでたくさん投稿されているので、そっちのほうが参考になるかと思いますが、個人的にいろいろ触った感触みたいなものを投稿していければと。

■Dynamics CRM 2016 SDK 新機能: Web API シリーズ

http://blogs.msdn.com/b/crmjapan/archive/2015/12/14/dynamics-crm-2016-new-features-web-api-1.aspx

とりあえず今回は現状自分が理解していることを総括して概要を記載してみたいと思います。

概要

Dynamics CRMでは今までSOAP・RESTと2つのプロトコルでDynamics CRMのデータ・Functionに対するアクセス方法を提供してきました。

SOAPではデータのCRUD操作を筆頭に、各種組織メッセージやメタデータの操作も提供されていましたが、RESTでは基本的にCRUD操作のみサポートしており、取得難易度は低いものの、基本的にはCRM内部でのJavaScriptで利用するぐらいしか利用シナリオがありませんでした。

そのREST APIが今回の2016(8.0)バージョンアップされ、一部制約はあるものの、ほぼSOAPと変わらない機能が提供されることになりました。

しかも認証部分もoAuth 2.0形式でサポートされていますので、外部Webサイトやクライアントアプリケーションからも利用可能です。

Dynamics CRMの[カスタマイズ]→[開発者リソース]にアクセスすると最新のアクセス用URLなどの各種開発用情報が参照できます。

f:id:sugimomoto:20160116111201p:plain

提供される機能

提供される機能の概要としては、大別して以下の4種類かと思います。

・レコードのコントロール(CRUD

・Action

・Function

・Metadataのコントロール(CRUD

■Web API Reference

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

ActionとFunctionはDynamics CRM固有の機能(組織サービス)を利用するためのものです。

ActionとFunctionの違いについてはTeam Blogでの解説がわかりやすかったです。

正式版のリリースでは、より多くの組織要求をサポートしていますが、 大きく分類すると Function も Action も WhoAmI のような組織要求と なります。違いは Function はデータの変更を伴わない作業であるのに 対して Action はデータの変更を伴うものとして分類されています。

MSDN Blogs

例えば、WinOpportunityといった、営業案件の受注処理とともにその内容を入力するメソッドはAction

RetrieveVersion といった、Dynamics CRMのバージョン情報を取得するだけで、データコントロールを伴わないメソッドはFunction

となるみたいです。

アクセス方法

Web APIをHTTP Requestする際のメソッド利用方法は以下のリファレンスです。

■HTTP 要求の作成とエラーの処理

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

f:id:sugimomoto:20160116111416p:plain

エンドポイントは以下の通りで

https://<組織URL>.api.crm7.dynamics.com/api/data/v8.0/

例えば、以下のようにURLの末尾にRequest(取引先企業:Accounts)を記載すると、それに対するResponse(Json)が返ってきます。

https://<組織URL>.api.crm7.dynamics.com/api/data/v8.0/accounts

f:id:sugimomoto:20160116111308p:plain

以下のような形で、取得フィールドのSelect、並び替え(OrderBy)、Filter条件も記述できます。

https://<組織URL>.api.crm7.dynamics.com/api/data/v8.0/accounts?$select=name,revenue,&$orderby=revenue asc,name desc&$filter=revenue ne null

Query Data using the Web API

所感

とりあえず、ざっくりと、今後自分が利用する手引きとしても、まとめてみました。

SOAPと違って、習得難易度も低く、かつわかりやすいAPIです。

なお、まだ旧REST APIは使えるみたいですが、今後無くなる恐れがあるみたいですので、

現在拡張開発で旧REST APIを使っているところは要注意です。