Dynamics CRM 2016 SDK 新機能: Web API その 11: 探索サービス

みなさん、こんにちは。 前回に引き続き、Dynamics CRM 2016 SDK の新機能として 正式版となった Web API について紹介します。 今回は Web API の機能より 探索サービスを紹介します。 概要 Web API の探索サービスは、既存探索サービス同様、ユーザーが 所属する組織の情報を取得することができます。 探索サービスの実行 まずは単純にユーザーが所属する組織一覧と詳細を表示します。 プログラムの実装 1. 前回利用した Visual Studio ソリューションを開き、Program.cs ファイルを開きます。新しく以下のメソッドを追加します。 アドレスが今までと異なり、探索サービス用のアドレスとなります。 探索サービス用のアドレスは環境によって異なります。Microsoft Dynamics CRM Online の場合はリージョンに一致したアドレスを ご利用さい。 例) 日本の場合: disco.crm7.dynamics.com US の場合: disco.crm.dynamics.com public async Task RunDiscovery(string accessToken) {     // HttpClient の作成     using (HttpClient…


Dynamics CRM 2016 SDK 新機能: Web API その 10: 現状の制限

みなさん、こんにちは。 前回に引き続き、Dynamics CRM 2016 SDK の新機能として、正式版と なった Web API について紹介します。 今回は現時点での Web API の制限について紹介します。 概要 Web API は今回のリリースで正式版となりましたが、まだ一部機能に 制限があります。以下に主な制限の内容を紹介します。 ナビゲーションプロパティ値でのフィルターが行えない 参照フィールドのように特定できる関連の値であっても現時点では ナビゲーションプロパティの値を利用したフィルターは行えません。 例えば以下の例では、取引先責任者の名前 ’Renee’ で取引先企業の レコードのフィルターをしますが、失敗して501 エラーが返されます。 GET [Organization URI]/api/data/v8.0/accounts?$select=name&$filter=primarycontactid/firstname eq ‘Renee’ HTTP/1.1 Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0 一部の組織サービス要求に対応する Function か Action がない 以下の組織サービスに対応する Function や Action がまだ存在しません。 BookRequest CalculateRollupFieldRequest CheckIncomingEmailRequest FindParentResourceGroupRequest GetQuantityDecimalRequest IncrementKnowledgeArticleViewCountRequest…


Dynamics CRM 2016 SDK 新機能: Web API その 9: ユーザーの偽装

みなさん、こんにちは。 前回に引き続き、Dynamics CRM 2016 SDK の新機能として、正式版と なった Web API について紹介します。 今回は Web API でのユーザー偽装について紹介します。 概要 現在認証しているユーザーとは異なるアカウントで処理を行いたい 場合に、権限があればユーザーを偽装することが可能です。 必要な権限  偽装を利用する場合には、prvActOnBehalfOfAnotheruser 権限が 必要です。この権限は「代理人」セキュリティロールを付与するか、 「別のユーザーの代わりに操作します」権限を付与します。 プログラムの実装 1. 前回利用した Visual Studio ソリューションを開き、Program.cs ファイルを開きます。新しく以下のメソッドを追加します。 public async Task RunImpersonate(string accessToken) {     // HttpClient の作成     using (HttpClient httpClient = new HttpClient())     {         // Web API アドレスの作成         string…


Dynamics CRM 2016 SDK 新機能: Web API その 8: バッチ処理実行

みなさん、こんにちは。 前回に引き続き、Dynamics CRM 2016 SDK の新機能として、正式版と なった Web API について紹介します。 今回は Web API でのバッチ処理実行について紹介します。 概要 Web  API は複数の操作を同じトランザクションとして実行することが可能 です。取引先企業レコードと同時に関連する取引先担当者を作成するなど、 関連があるレコードの同時処理は、通常の作成処理が利用できます。よって バッチ処理に適したシナリオは、お互いに関連が無いレコードの操作を同じ トランザクション内で実行したい場合となります。 複数レコードのバッチ作成 取引先企業 2 件を同じトランザクション内で作成する例を紹介します。 バッチ処理実行を行うためには、複数の要求を MutlPartContent の 一部として追加していきます。 参照の追加 プログラム内で利用するクラスを含むアセンブリを参照します。 1. 参照を右クリックして「参照の追加」をクリックします。 2. アセンブリ | 拡張より System.Net.Http.Formatting を選択して 「OK」をクリックします。 プログラムの実装 1. 前回利用した Visual Studio ソリューションを開き、Program.cs ファイルを開きます。新しく以下のメソッドを追加します。 public async Task RunBatch(string accessToken) {    …


Dynamics CRM 2016 SDK 新機能: Web API その 7: 複数レコード取得時のページング

みなさん、こんにちは。 前回に引き続き、Dynamics CRM 2016 SDK の新機能として、正式版と なった Web API について紹介します。 今回は複数レコードを取得する際のページングについて紹介します。 概要 Web API を利用した複数レコードの取得では、既定で最大 5000 件の レコードが取得可能です。一度に取得する件数をより少なくすることも、ページングを使って 5000 件以上のデータも取得が可能です。 取得するレコード数の設定 まずは 5000 件より少ない件数を取得したい場合について説明します。 プログラムの実装 1. 前回利用した Visual Studio ソリューションを開き、Program.cs ファイルを開きます。新しく以下のメソッドを追加します。 public async Task RunPaging(string accessToken) {     // HttpClient の作成     using (HttpClient httpClient = new HttpClient())     {         // Web API アドレスの作成…


Dynamics CRM 2016 SDK 新機能: Web API その 6: 代替えキー の利用

みなさん、こんにちは。 前回に引き続き、Dynamics CRM 2016 SDK の新機能として、正式版と なった Web API について紹介します。 今回は代替えキーの利用について紹介します。 概要 レコードを特定する際に、既定ではレコードの GUID を利用しますが、 他システム連携時などレコード ID が不明な場合は代替えキーを利用 できます。代替えキーについては以下の記事を参照してください。 Dynamics CRM Online 2015 Update 1 SDK 新機能: 代替えキー 代替えキーの作成 まず代替えキーの設定を行います。 1. ブラウザで Dynamics CRM に接続します。 2. 設定 | カスタマイズ | システムのカスタマイズより、代替えキーを 設定するエンティティを開きます。今回は取引先企業を使います。 3. キーをクリックします。右側の画面で「新規」ボタンをクリックします。 4. キーとなる列を選択します。今回は取引先企業番号をキーとして 指定しました。任意の表示名と名前を付けます。 尚、ここで選択 したキーは全てのレコードで一意である必要があります。 5. 「保存して閉じる」をクリックします。状態が保留となります。 6. しばらく待ってから画面を更新します。状態が保留中からアクティブに なると準備完了です。 7….


Dynamics CRM 2016 SDK 新機能: Web API その 5: Action の利用

みなさん、こんにちは。 前回に引き続き、Dynamics CRM 2016 SDK の新機能として、正式版と なった Web API について紹介します。 今回は Action について紹介します。 Action 概要 正式版のリリースでは、より多くの組織要求をサポートしていますが、 大きく分類すると Function も Action も WhoAmI のような組織要求と なります。違いは Function はデータの変更を伴わない作業であるのに 対して Action はデータの変更を伴うものとして分類されています。 Bound と Unbound Function Function 同様、Action も Bound と Unbound に分類されます。Bound Action はエンティティのレコードに依存しますが、Unbound Action は レコードに依存しません。具体的な例は以下で紹介します。 Unbound Action まず Unbound Action の例として WinOpportunity 要求を実装します。 WinOpportunity は営業案件を受注としてクローズします。ここでは…


Microsoft Dynamics CRM 2016 サーバー設置型が公開されました!

みなさん、こんにちは。 今日は Microsoft Dynamics CRM 2016 サーバー関連モジュールの ダウンロードセンタ―公開のお知らせです。 Microsoft Dynamics CRM Server 2016 https://www.microsoft.com/ja-JP/download/details.aspx?id=50372 Microsoft Dynamics CRM 2016 E-mail Router https://www.microsoft.com/ja-JP/download/details.aspx?id=50373 Microsoft Dynamics CRM 2016 Report Authoring 拡張 (SQL Server データ ツール サポート付き) https://www.microsoft.com/ja-JP/download/details.aspx?id=50375 Microsoft Dynamics CRM 2016 言語パック https://www.microsoft.com/ja-jp/download/details.aspx?id=50371 Microsoft SharePoint Server 2010 用および Microsoft SharePoint Server 2013 用の Microsoft Dynamics CRM 2016 リスト…


Dynamics CRM 2016 SDK 新機能: Web API その 4: Function の利用

みなさん、こんにちは。 前回に引き続き、Dynamics CRM 2016 SDK の新機能として、正式版と なった Web API について紹介します。 今回は Function について紹介します。 Function 概要 正式版のリリースでは、より多くの組織要求をサポートしていますが、 大きく分類すると Function も Action も WhoAmI のような組織要求と なります。違いは Function はデータの変更を伴わない作業であるのに 対して Action はデータの変更を伴うものとして分類されています。 Bound と Unbound Function Function はさらに Bound Function と Unbound Function に分類されます。 Bound Function はエンティティのレコードに依存しますが、Unbound Function はレコードに依存しません。具体的な例は以下で紹介します。 Unbound Function まず Unbound Function の例として WhoAmI 要求を実装します。 プログラムの実装…


Dynamics CRM 2016 SDK 新機能: Web API その 3: FetchXML を利用したレコードの取得

みなさん、こんにちは。 前回に引き続き、Dynamics CRM 2016 SDK の新機能として、正式版と なった Web API について紹介します。 今回は FetchXML を利用したレコードの取得を紹介します。 概要 FetchXML を利用したレコードの取得は以下の流れとなります。 1. FetchXML を定義します。 2. 定義した FetchXML を利用してレコードの一覧を取得します。 では早速実装していきましょう。 FetchXML の作成 今回は高度な検索を利用して FetchXML を作ります。 1. ブラウザで Dynamics CRM 組織に接続して、高度な検索を開きます。 2. 任意の条件作成します。ここでは「自分のアクティブな取引先企業」 ビューの定義をそのまま再利用しました。 3. 「FetchXML のダウンロード」をクリックします。 4. ファイルを任意の場所に保存します。 プログラムの実装 1. 前回利用した Visual Studio ソリューションを開きます。 2. FetchXML を UrlEncode するために System.Web.HttpUtility を使うため、…