Open棟梁Project - マイクロソフト系技術情報 Wiki -[[戻る>Dynamicsのカスタマイズ]] * 目次 [#g3778851] #contents *概要 [#be1bd860] -マーケティング・モジュール -営業モジュール -サービス・モジュール 分野におけるCRM(顧客関係管理)を中心に構築されている。 その一方で、民間・政府・非営利のあらゆる部門における広範囲な~ 機能を制御可能な多様性からxRMという言葉が使われるようになってきている。 **カスタマイズの方法 [#x4512433] ***ポイント アンド クリック [#x21f60d4] GUIツールだけで変更可能な手法 ***JavaScript [#t32abf6c] ***ワークフロー定義 [#j4b35090] ***.NETプラグイン [#u5dcd5a0] ***XMLを直接編集 [#v6e07d97] エクスポートしたソリューション パッケージのXMLを直接編集 *ソリューション [#g27fd4e3] -特定のビジネス要件一式を満たすために~ システムに対して行うカスタマイズを整備するための手段。 -一連のカスタム コンポーネントをパッケージ化。 -一部のユーザー or 全てのユーザーに必要となる機能を提供する。 -カスタマイズ --カスタマイズに対応するカスタム ソリューションを新規作成する。 --[[既定のソリューション>#aba80e7a]]を直接編集することもできる。 --推奨:ビジネス要件のまとまり毎にカスタム ソリューションを新規作成する。 -ソリューションの概要~ https://msdn.microsoft.com/ja-jp/library/Gg334576.aspx --システム ソリューション ---Microsoft Dynamics CRM 内に定義されたソリューション コンポーネント ---既定のアプリケーションの動作を定義している。 --マネージド ソリューション ---配布とインストールを目的とする完成したソリューション ---ソリューション コンポーネントの変更・追加が可能。 ---システム ソリューションの上にインストールできる。 ---他のマネージド ソリューションの上に重ねることもできる。 ---アンマネージド ソリューションをエクスポート&パッケージ化したもの。 --アンマネージド ソリューション ---開発中であるか、配布を目的としないソリューション ---アンマネージド カスタマイズのグループ --アンマネージド カスタマイズ ---システム ソリューションはアンマネージド カスタマイズできる。 ---マネージド ソリューションはアンマネージド カスタマイズできる。 **利点 [#xbf01385] -他のコンポーネントに気を取られること無く、~ 必要なコンポーネントのみに取り組むことができる。 -元の要件に複数のソリューションを関連付けることで、変更を記録できる。 -開発環境からのエクスポートと、テスト運用環境へのインポートが可能。 --エクスポートに含まれるのは差分のみ。サイズが小さくて済管理も容易。 --エクスポートは、変更管理レコードの一部として保存できる。 --過去のソリューションを使用して変更をロールバックできる。 **既定のソリューション [#aba80e7a] -組織作成時に作成される、システムの全コンポーネントを含んだソリューション。 -エクスポート・インポート可能 -マネージドソリューションとしてのエクスポート不可 -[[Dynamics CRM Online]]に展開できない。 **ソリューションの新規作成 [#kf9fdc56] カスタム ソリューションを新規作成 *コンフィグレーション [#b125aeea] -エンティティを作成すると画面・DBテーブルも自動的に作成される。 --基本1エンティティ=1画面・1テーブルとなっている。 --画面・テーブルの自動生成ツールと言うよりも、アドオンのEUC支援ツール。 -帳票・グラフ・ビューと、ダッシュボードのカスタマイズが可能。 -つながり機能は、ロールでエンティティ(レコード)間を接続。 -ロールアップクエリの定義~ --任意のエンティティのフィールドをロールアップフィールドに設定できる。 --ロールアップフィールドのデータ型、対象データセット(個人・グループ)を変更可 **ポイント [#g57767b1] -設計情報の入力I/Fに専用ツールを採用 -ラウンド・トリップ開発に非対応(コードはJavaScriptのみ)。 -設計情報の入力フォーマットやテンプレート修正は不可 -画面が自動生成なので柔軟性に難あり、~ 例えば一覧メンテ処理は実装できない。 --(必ず[一覧表示] → [詳細表示] → [データ修正]が必須) --アドオン開発をするときは他の開発ツールを併用する必要がある。 --(Dynamics CRM SDK、Visual Studio、Excel) *SDK [#le89f210] -Dynamics CRM SDK~ http://www.infoq.com/jp/news/2011/08/dynamics-platform -上記のエンティティ定義と --JavaScriptイベント定義 --xxx >で開発。 **ポイント [#o11c578a] *エンティティ [#v7cf2804] **バインディング [#nbc604e9] ***事前バインディング [#r445d864] ***遅延バインディング [#a0c0f205] *SQL [#lca67058] -クエリを使用してデータを取得する~ https://msdn.microsoft.com/ja-jp/library/gg334607.aspx -DBテーブルにアクセスする方法 --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 [#nddb42c3] -QueryExpression でクエリを作成する~ https://msdn.microsoft.com/ja-jp/library/gg328300.aspx --サンプル: QueryByAttribute クラスを使用した複数取得~ https://msdn.microsoft.com/ja-jp/library/gg334708.aspx ***FetchXML [#l03369e4] -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