Open棟梁Project - マイクロソフト系技術情報 Wiki -[[戻る>Dynamicsのカスタマイズ]] * 目次 [#g3778851] #contents *概要 [#be1bd860] -マーケティング・モジュール -営業モジュール -サービス・モジュール 分野におけるCRM(顧客関係管理)を中心に構築されている。 その一方で、民間・政府・非営利のあらゆる部門における広範囲な~ 機能を制御可能な多様性からxRMという言葉が使われるようになってきている。 *構成 [#x323f671] カスタマイズは -[[ソリューション コンポーネント>#cb6cf5ad]] -[[外部コンポーネント>#o57e5a1d]] から構成される。 *方法 [#r91122d1] カスタマイズの方法には -Web アプリケーションの --設定 --カスタマイズ ツール -レポート サービス -フィルター ビュー -SDKによるアドオン開発 などがあり、これを以下のような テクノロジ・カットの詳細区分に分解する。 **ポイント アンド クリック [#x21f60d4] ***手法 [#q36ff5e0] GUIツールだけで変更可能な手法 -Web アプリケーション --設定 --カスタマイズ ツール ***対象 [#d99222be] -[[エンティティ>#v7cf2804]] **JavaScript [#t32abf6c] ***手法 [#oacaedd6] -JavaScript -Web アプリケーションの設定 ***対象 [#f9955ec3] -フォーム スクリプト イベント ハンドラー~ フォーム イベント ハンドラーが JavaScript Web リソースで定義された関数を呼び出すように構成する。 -コマンドバー (リボン) コマンド~ <CustomRule>(RibbonDiffXml) or <JavaScriptFunction>(RibbonDiffXml)~ 要素を使用し、JavaScript Web リソース内に定義された関数を呼び出すアクションを定義する。 -Web リソースと IFRAME~ HTML Web リソース内で JavaScript Web リソースを使用、親子で対話できる。 **プラグイン [#ybca4a58] Microsoft Dynamics CRM SDKを使用したビジネス ロジックのプラグイン メカニズム。~ 設置型、IFD、およびOnline(分離モード) の Microsoft Dynamics CRM 展開で使用可能。 アセンブリの %installdir%\server\bin\ フォルダーへの追加は、~ 設置型および IFD サーバー インストール型のみでサポートされている。 ***手法 [#f4a66a75] -Microsoft Dynamics CRM SDK -Web アプリケーションの設定 ***対象 [#u83fe2e1] -ワークフロー定義~ ワークフロー ルールから呼び出されるユーザー定義ワークフロー活動 (アセンブリ) の作成 -.NETプラグイン~ ・・・ **XMLを直接編集 [#v6e07d97] エクスポートしたソリューション パッケージのXMLを直接編集 **Webサービスの使用 [#lfd40f04] ***手法 [#g4ba5764] Webサービスを使用した外部アプリケーションの開発 -DiscoveryService -OrganizationService -Organization Data Service -OData エンドポイント -最近のアプリケーションの SOAP エンドポイント -DeploymentService。 ***対象 [#r7a90249] Webサービスを使用した -アドオン -外部アプリケーション **フィルター ビューの使用 [#o27ef818] ***手法 [#i9396aba] フィルター ビューを使用した参照系(更新は不可)の外部アプリケーションの開発 ***対象 [#i50b5597] フィルター ビューを使用した -アドオン -外部アプリケーション *ソリューション [#g27fd4e3] **概要 [#rc6f1531] -[[ソリューション コンポーネント>#cb6cf5ad]]をグループ化したもの。 -特定のビジネス要件一式を満たすために~ システムに対して行うカスタマイズを整備するための手段。 -一連のカスタマイズ([[ソリューション コンポーネント>#cb6cf5ad]])をパッケージ化。 -一部のユーザー or 全てのユーザーに必要となる機能を提供する。 -カスタマイズ --カスタマイズに対応するカスタム ソリューションを新規作成する。 --[[既定のソリューション>#aba80e7a]]を直接編集することもできる。 --推奨:ビジネス要件のまとまり毎にカスタム ソリューションを新規作成する。 **利点 [#xbf01385] -他のコンポーネントに気を取られること無く、~ 必要なコンポーネントのみに取り組むことができる。 -元の要件に複数のソリューションを関連付けることで、変更を記録できる。 -開発環境からのエクスポートと、テスト運用環境へのインポートが可能。 --エクスポートに含まれるのは差分のみ。サイズが小さくて済管理も容易。 --エクスポートは、変更管理レコードの一部として保存できる。 --過去のソリューションを使用して変更をロールバックできる。 **構成 [#ff24d2ea] -ソリューションの概要~ https://msdn.microsoft.com/ja-jp/library/Gg334576.aspx ***システム ソリューション [#gc84622f] -Microsoft Dynamics CRM 内に定義された既定のソリューション コンポーネント -組織作成時に作成され、システムの全コンポーネントを含んでいる。 -既定のアプリケーションの動作を定義している。 -既定のソリューションは、 --エクスポート・インポートが可能だが、 --マネージド ソリューションとしてのエクスポートが不可能。 --全体を[[Dynamics CRM Online]]に展開することが不可能。 -システムが複雑化すると、既定のソリューションを使用した方法では対応が困難になる。~ このため、カスタム ソリューションを使用して、コンポーネントを分割する。 ***マネージド ソリューション [#q56e227d] -主に、ISVがアドオンを顧客に販売するような配布のケースで使用する。 -開発用用途のアンマネージド ソリューションをエクスポート&パッケージ化したもの。 -配布とインストールを目的とする完成したソリューション。 -インポート・エクスポート --システム コンポーネントは変更されない。 --アンマネージド ソリューションの部分はロールバックできる。 --アプリケーションの動作は、マネージド ソリューションの変更の組み合わせになる。 ***アンマネージド ソリューション [#wfd44e9f] -配布を目的としない、展開で使用。 --開発中のソリューション展開 --社内的な変更の展開 -アンマネージド カスタマイズをグループ化したもの。 -インポート・エクスポート --システム コンポーネントを変更する。 --変更の上書き&上書きの動作になる。 --ロールバックできない(コンポーネントは削除されない)。 --インポート順が異なると、結果が異なってくることがある。 ***アンマネージド カスタマイズ [#e67bfc2d] -開発中のアンマネージド カスタマイズの実体は、すべて既定のソリューションに含まれる。 -システム ソリューションはアンマネージド カスタマイズできる。 -マネージド ソリューションはアンマネージド カスタマイズできる。 **新規作成 [#kf9fdc56] ソリューション(カスタム ソリューション)を新規作成する。 -始め、開発のためのアンマネージド ソリューションを作成する。 -開発中のアンマネージド カスタマイズの実体は、すべて既定のソリューションに含まれる。 -アンマネージド ソリューションは、アンマネージド カスタマイズの参照のみ保持する。 -アンマネージド ソリューションを削除すると、~ 既定のソリューションからアンマネージド カスタマイズも削除される。 ***ロール [#rf8e69ab] 以下のロールを持つユーザでCRMの組織にサインイン。 -システム カスタマイザー -システム管理者 ***手順 [#b17bd4a1] -ナビゲーション バーの[Microsoft Dynamics CRM]の[設定]、[ソリューション]、[新規]。 -[新しいソリューション]フォームが表示される。 -必要事項を入力し保存。 --表示名:ソリューションの呼称(変更可能) --名前:英数字のみ(変更不可能) --発行元:マネージド ソリューションで特に重要になる。 ---ソリューション・コンポーネントの発行元を特定可能な接頭辞を定義する。~ ・カスタマイズした組織:カスタマイザー(個人、組織、企業)~ ・ビジネス要件:カスタマイズ(モジュール名) ---接頭辞:8文字以内~ ・新規コンポーネント名の先頭に付与され名称の衝突を抑止する。~ ・接頭辞 = カスタマイズした組織 + ビジネス要件などとする。 ---補足:組織を作成すると、”既定の発行者”という発行元が自動的に作成される。 --構成ページ --バージョン:バージョン番号(数字のみ) ---メジャー.マイナー.ビルド.リビジョン ---推奨:年.月.日.リビジョン --説明:ソリューションの機能の概要(2,000文字) -エクスポート時のファイル名~ "名前"+"バージョン" **複数ソリューションの用例 [#e4505cdb] ***開発 [#j40e4373] 複数のカスタマイザーによるカスタマイズ -利点 --並行作業 --開発、マージ、テスト -欠点 --競合の類の検出の遅延。 ***バージョン [#t28d8a73] 完了した作業に新しい要件が追加された時。 -以下の場合は旧ソリューションに変更を行う。 --バグ修正(リビジョン・アップ) -以下の場合は新ソリューションに、新コンポーネント追加を行う。 --当該ソリューションへの更新が枯れている場合 **エクスポート・インポート [#i9e9548d] ***エクスポート [#se1d5735] -ZIP形式でのエクスポート~ 以下が同梱されている。 --XML --DLL --XAML --画像ファイル -用途 --開発-リリースまで。 ---開発-テスト-運用環境 ---受け入れテスト、トレーニング ***インポート [#q7ab7315] -バージョン番号で管理されている。 --インポート元の方がバージョン番号が大きい場合はインポート不可能。 -コンポーネントを含まないソリューションをインポートしてもコンポーネントは削除されない。 -ダウン・レベリング CRMのマイナーバージョンが違う場合で、旧バージョンのCRMがインポートする場合、~ 旧バージョンでサポートされない機能(コンポーネント/プロパティ)を削除する。 *ソリューション コンポーネント [#cb6cf5ad] カスタマイズ ツールまたは API を使用して作成され、アプリケーション内で完全にホストされる。 **種類 [#sdfb9efd] ***スキーマ [#x91cdfa4] -[[エンティティ>#v7cf2804]] --フィールド --フォーム --ビュー --グラフ -関連付け -接続とつながりロール -グローバル オプション セット ***ユーザインターフェイス [#oabd80a4] -アプリケーション リボン -サイトマップ -フォーム -エンティティ リボン -Webリソース -分析 --ダッシュボード --レポート --グラフ --ビジュアル化 ***プロセス/コード [#ped8aa8f] -プロセス --ダイアログとワークフロー -プラグイン --アセンブリ --処理手順 ***テンプレート [#rba84b8e] -差し込み印刷 -電子メール -契約 -記事 ***セキュリティ [#o70a626f] -セキュリティ ロール -フィード レベルのセキュリティ プロファイル ***データ レコード [#hc07537e] -データ レコード --ユーザ --チーム、部署 --キュー --目標 --情報カテゴリの階層 --製品カタログに関連したもの -データレコードを使用したソリューション コンポーネント --ビュー --レポート --カスタム コード -信頼性を担保する方法。 --データインポートウィザードを使用する。 --インポートフィアルにレコードのGUIDを含める。 ***外部コンポーネント [#o57e5a1d] アプリケーションの外部で動作するソフトウェアは、~ インストーラー プログラムなど、従来の方法で~ アプリケーションをパッケージ化してインストールする。 ***メタデータ [#vda58a4d] コンポーネントの中にはメタデータを形成しているものもある。 -コンポーネント間の連携 -コンポーネントの体裁(見た目) -SQLデータベースへのデータ格納方法 **新規作成 [#b8cf8b40] -ソリューション コンポーネントの追加~ http://www.microsoft.com/ja-jp/dynamics/crm-customer-center/add-a-solution-component.aspx -既定のソリューション コンポーネントの表示または編集~ http://www.microsoft.com/ja-jp/dynamics/crm-customer-center/view-or-edit-default-solution-components.aspx ***ロール [#w2f87354] 同上 ***手順 [#r52487f2] -ナビゲーション バーの[Microsoft Dynamics CRM]の[設定]、[ソリューション]、目的のソリューションをダブル クリック。 -ソリューションエクス プローラーのナビゲーション ウィンドウで[コンポーネント]をクリック。 -[コンポーネントの種類] の一覧で追加する種類をクリックし、コマンド バーで、[新規] または [既存の追加] を選択。 *エンティティ [#v7cf2804] **下位コンポーネント [#kae3c146] また、エンティティを作成すると以下のコンポーネント~ (for メタデータ・体裁)が自動的に作成され、個別の削除は不可能。~ 内部的には、エンティティに対応したDBのテーブルも作成されている。 ***フィールド [#e88ddc32] -エンティティのプロパティ -DBやビューの列に対応 -フォームのInput, Output, Editフィールドに対応するコントロール ***フォーム [#cfef2139] -エンティティに対応するフォームUI -以下の各種コンポーネントが含まれる。 --フィールド --サブグリッド --レイアウト --イベントハンドラ&スクリプト -格納先:SystemForm ***ビュー [#y55bd4a1] -所謂ビューだが、SQLを使用していない。 -格納先:SavedView ***グラフ [#tdb7f377] -常にビューとペアで使用される。 -データセットから棒、折れ線などの各種グラフを生成して表示。 -一部エンティティには既成のグラフがあり、このカスタマイズも可能。 **[[新規・公開・削除]] [#babcc518] ***システム エンティティ [#z22322ac] システム エンティティは関連付けなどの依存関係があるコンポーネントは削除できない。 ***[[カスタム エンティティ>CRM エンティティのカスタマイズ]] [#g138a27f] **依存関係 [#nc08e30d] ***依存関係の例 [#s699405d] -サブコンポーネント -関連付け -接続とつながりロール -利用? --ダッシュボードにグラフを含める等。 ***必須コンポーネント [#s648bd32] -必須コンポーネント リストに表示される。 -しかし、エンティティの削除を妨げない。 -必須コンポーネントが一度でもエクスポートされていれば以降ソリューションへの追加は不要。 -多くの必須コンポーネントはシステム エンティティのため(、警告が表示されても)、ソリューション追加は不要。 **エンティティとDBMSスキーマ [#wb5d458b] -フィルター ビューによりエンティティが提供される。 -DBMS構造を意識する必要はない --旧バージョンではシステムフィールドとカスタムフィールドでテーブルが分割されていた。 --新バージョンではテーブル統合されたがフィルター ビューによりアプリケーションは影響を受けない。 --外部スキーマ(フィルター ビュー)により、概念スキーマ(製品のテーブル設計)変更の影響を受けない。 -必要なデータは外部キーを使用して結合される。 -概念スキーマ(テーブル)にインデックスを付与することはサポートされている。 *[[CRM セキュリティモデルの作成]] [#td5e52c1] *[[CRM エンティティのカスタマイズ]] [#w034200d] *[[CRM フィールドのカスタマイズ]] [#n8544fb0] *[[CRM 関連付けの管理]] [#hf9ff03d] *[[CRM フォームのカスタマイズ]] [#vb691813] *[[CRM 業務ルールの構成]] [#jea0bdd5] *[[CRM ビューのカスタマイズ]] [#d2b182f1] *[[CRM グラフのカスタマイズ]] [#h33d89ea] *[[CRM ダッシュボードのカスタマイズ]] [#h33d89ea] *[[CRM 追加のセキュリティ オプション]] [#i7bacd93] *[[CRM 追加の業務プロセスフロー]] [#d91d3743]