Open棟梁Project - マイクロソフト系技術情報 Wiki -[[戻る>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)]]