Open棟梁Project - マイクロソフト系技術情報 Wiki
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>Dynamics]]

* 目次 [#f01b5db0]
#contents

*概要 [#d5e9c533]
Dynamics の開発ツールについて纏めています。

**良い点 [#j7f10df2]
-開発ツールとしての完成度は高そう。
--CRMはよりEUCより。
--AXは基幹系、きめ細かいカスタマイズを考慮。

-相互運用等の技術的な制約も殆ど無さそう。
--諸パケージと同様に、.NET等の他開発言語からの呼出WebAPIを公開可能。
--AXはX++からマネージ、アンマネージ・コードの呼び出しが可能。
--CRMはアドオンの形で、所定のマネージ・コードの呼び出しが可能。

**課題 [#oefabb17]
他システム開発に使用することもできるが、~
基本はカスタマイズの範囲で使用するものと思われる。

-クライアント・ライセンスが必要になる。~
ライセンスは人という考え方と、端末という考え方がある。

-自身が業務テンプレートを拡充する場合を除き、EUCレベル以上に詳しくなれない。

従って、

-EUCの場合、問題は無いが、

-受託開発の利用においては、IDEとしては浸透していないので、~
開発者の調達・育成や情報収集が難しい点が課題と考える。

*Dynamics CRMの開発ツール [#g1b2bb98]
[[CRMのカスタマイズ]]

**ポイント [#g57767b1]
-設計情報の入力I/Fに専用ツール(デザイナ型)を採用している。

-基本的にコンフィギュレーションのみでコードは書かない(アドオンを書く場合のみ例外)ので~
テンプレート・カスタマイズ、ラウンド・トリップ開発などのスクラッチ開発的な手法は不可能。

**エンティティ [#b1a2448c]
-エンティティを作成すると画面・DBテーブルも自動的に作成される。
--基本1エンティティ=1画面・1テーブルとなっている。
--画面・テーブルの自動生成ツールと言うよりも、アドオンのEUC支援ツール。

-エンティティの画面では自動生成なので柔軟性に難あり、例えば一覧・更新処理は実装できない。
--(必ず[一覧表示] → [詳細表示] → [データ修正]が必須)

**データ アクセス [#lca67058]
-クエリを使用してデータを取得する~
https://msdn.microsoft.com/ja-jp/library/gg334607.aspx

-DBテーブルにアクセスする方法
--Microsoft Dynamics CRM SDKを使用する。
--SQLでの直接アクセスはサポートされない。
--直接アクセスはフィルターされたビュー(Filtered views)だけサポート。

--Web サービス経由でクエリが実行されるため。~
Dynamics CRM Onlineでも利用できるデータ アクセス。
---エンティティ
---QueryExpression
---FetchXML
---LINQ クエリ

--SQLとして実行されるため、~
Dynamics CRM Onlineで利用できないデータ アクセス。
---フィルターされたビュー(Filtered views)

***エンティティ [#hc5f6da7]
-Create メソッド
-Retrieve メソッド
-Update メソッド
-Delete メソッド
-RetrieveMultipleMethod メソッド
-Execute メソッド

***Fetch と QueryExpression [#b63e6439]
オブジェクトやXMLの階層構造でSQLを表現する。

-サンプル: Fetch と QueryExpression の間でクエリを変換する~
https://msdn.microsoft.com/ja-jp/library/hh547457.aspx

-QueryByExpression
--QueryExpression でクエリを作成する~
https://msdn.microsoft.com/ja-jp/library/gg328300.aspx

---サンプル: QueryByAttribute クラスを使用した複数取得~
https://msdn.microsoft.com/ja-jp/library/gg334708.aspx

-FetchXML
--FetchXML を使用したクエリの構築~
https://msdn.microsoft.com/ja-jp/library/gg328332.aspx

---Dynamics CRM でサポートされるクエリ言語。
---T-SQL の機能に似た内容をサポート。
---Dynamics CRM のセキュリティに準じた結果セットを取得できる。
---ユーザービューやシステムビューの保存や、高度な検索の実行で利用される。
---高度な検索で利用したクエリを FetchXML として取得できる。

***[[LINQ]] [#v3640c04]

[[LINQ]] to CRM~
Microsoft Dynamics CRM Online 2015 更新プログラム クエリ プロバイダー

-[[LINQ]] (.NET 統合言語クエリ) を使用してクエリを作成する~
https://msdn.microsoft.com/ja-jp/library/gg328028.aspx

***フィルターされたビュー [#k550a733]
-Filtered views
-Microsoft Dynamics CRM データベース(SQL Server)を直接クエリできる。
-設置型のみでサポートされるため、オンライン環境へ移行することができない。

***参考 [#c343dfcd]

-Japan Dynamics CRM Team Blog - Site Home - MSDN Blogs~
--Dynamics CRM 2011 カスタムレポート
---その 1 - フィルター化されたビュー vs. FetchXML~
http://blogs.msdn.com/b/crmjapan/archive/2013/01/07/dynamics-crm-2011-custom-reporting-in-microsoft-dynamics-crm-fetch-vs-filtered-views.aspx
---その 2 - FetchXML を利用したカスタム活動レポート~
http://blogs.msdn.com/b/crmjapan/archive/2013/07/02/dynamic-activity-reporting-using-fetchxml.aspx

*** [#mf2da980]
-アドオン開発をするときは他の開発ツールを併用する必要がある。
--(Dynamics CRM SDK、Visual Studio、Excel)

-帳票・グラフ・ビューと、ダッシュボードのカスタマイズが可能。
-つながり機能は、ロールでエンティティ(レコード)間を接続。

-ロールアップクエリの定義	
--任意のエンティティのフィールドをロールアップフィールドに設定できる。
--ロールアップフィールドのデータ型、対象データセット(個人・グループ)を変更可


*Dynamics AXの開発ツール [#g45fffe4]
[[Dynamics AX開発 (AOT)]]


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS