マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

  • マーケティング・モジュール
  • 営業モジュール
  • サービス・モジュール

分野におけるCRM(顧客関係管理)を中心に構築されている。

その一方で、民間・政府・非営利のあらゆる部門における広範囲な
機能を制御可能な多様性からxRMという言葉が使われるようになってきている。

構成

カスタマイズは

から構成される。

方法

カスタマイズの方法には

  • Web アプリケーションの
    • 設定
    • カスタマイズ ツール
  • 外部アプリケーション
  • レポート サービス
    • フィルター ビュー
    • Webサービス
      • SDKによるプラグイン開発

などがある。

を除き、コンフィギュレーションのみでコードは書かないので
外部アプリケーションを除き、柔軟性の高いスクラッチ開発的は不可能。

ポイント アンド クリック

設計情報の入力I/Fに専用ツール(デザイナ型)を採用し、GUIツールだけで変更可能

手法

GUIツールだけで変更可能な手法

  • Web アプリケーション
    • 設定
    • カスタマイズ ツール

対象

JavaScript

手法

対象

  • フォーム スクリプト イベント ハンドラー
    フォーム イベント ハンドラーが JavaScript Web リソースで定義された関数を呼び出すように構成する。
  • コマンドバー (リボン) コマンド
    <CustomRule?>(RibbonDiffXml?) or <JavaScriptFunction?>(RibbonDiffXml?)
    要素を使用し、JavaScript Web リソース内に定義された関数を呼び出すアクションを定義する。
  • Web リソースと IFRAME
    HTML Web リソース内で JavaScript Web リソースを使用、親子で対話できる。

プラグイン

  • ビジネス ロジックのプラグイン メカニズム。
  • Dynamics CRM SDK、Visual Studio、Excel等の開発ツールを併用する必要がある。
  • 設置型、IFD、およびOnline(分離モード) の Microsoft Dynamics CRM 展開で使用可能。
  • アセンブリの %installdir%\server\bin\ フォルダーへの追加は、
    設置型および IFD サーバー インストール型のみでサポートされている。

手法

  • Microsoft Dynamics CRM SDK
  • Web アプリケーションの設定

種類

  • 同期・非同期
    • 同期ビジネスロジック・プラグイン
      (イベント実行・パイプライン)
      • プレイベント・プラグイン
      • プラットフォーム・コア操作プラグイン
      • ポストイベント・プラグイン
  • 非同期ビジネスロジック・プラグイン
    • ユーザ定義プラグイン
    • カスタムワークフロー・プラグイン

XMLを直接編集

エクスポートしたソリューション パッケージのXMLを直接編集

WCF Webサービスの使用

手法

Webサービスを使用した外部アプリケーションの開発

  • DiscoveryService?(探索サービス)
    • マルチテナント環境下でユーザが所属する組織を判別
  • OrganizationService?(組織サービス)
    • Microsoft Dynamics CRM SDKのメインWebサービス
    • CRMのデータ、メタデータにアクセスするコードを記述するためのメソッドを含む
    • 最近のアプリケーションの SOAP エンドポイント
  • Organization Data Service
    • OData エンドポイント
  • DeploymentService?

対象

Webサービスを使用した

  • 外部アプリケーション
  • レポート サービス
  • プラグイン

データ アクセス

手法

  • Microsoft Dynamics CRM SDKを使用し、
    Web サービス経由でデータ アクセス
  • エンティティ
  • QueryExpression?
  • QueryByAttribute?
  • FetchXML
  • LINQ クエリ
  • Execute メソッド
  • ビュー経由でデータ アクセス
    • フィルターされたビュー(Filtered views)

対象

データ アクセスする、

  • 外部アプリケーション
  • レポート サービス
  • Webサービス
  • プラグイン

セキュリティ

ロールベース セキュリティ

  • 特権
  • アクセス レベル

オブジェクトベースのセキュリティ

  • レコードベースのセキュリティ
  • フィールドベースのセキュリティ

セキュリティ プリンシパル(ユーザーまたはチーム)

認証方法

展開認証モデル
Dynamics CRM Onlineクレームベース認証
Dynamics CRM 2013 設置型ケルベロス認証クレームベース認証
Dynamics CRM 2013 IFDケルベロス認証クレームベース認証

ソリューション

概要

  • 特定のビジネス要件一式を満たすために
    システムに対して行うカスタマイズを整備するための手段。
  • カスタマイズ
    • カスタマイズに対応するカスタム ソリューションを新規作成する。
    • 既定のソリューションを直接編集することもできる。
    • 推奨:ビジネス要件のまとまり毎にカスタム ソリューションを新規作成する。

利点

  • 他のコンポーネントに気を取られること無く、
    必要なコンポーネントのみに取り組むことができる。
  • 元の要件に複数のソリューションを関連付けることで、変更を記録できる。
  • 開発環境からのエクスポートと、テスト運用環境へのインポートが可能。
    • エクスポートに含まれるのは差分のみ。サイズが小さくて済管理も容易。
    • エクスポートは、変更管理レコードの一部として保存できる。
    • 過去のソリューションを使用して変更をロールバックできる。

構成

システム ソリューション

  • Microsoft Dynamics CRM 内に定義された既定のソリューション コンポーネント
  • 組織作成時に作成され、システムの全コンポーネントを含んでいる。
  • 既定のアプリケーションの動作を定義している。
  • 既定のソリューションは、
    • エクスポート・インポートが可能だが、
    • マネージド ソリューションとしてのエクスポートが不可能。
    • 全体をDynamics CRM Onlineに展開することが不可能。
  • システムが複雑化すると、既定のソリューションを使用した方法では対応が困難になる。
    このため、カスタム ソリューションを使用して、コンポーネントを分割する。

マネージド ソリューション

  • 主に、ISVがアドオンを顧客に販売するような配布のケースで使用する。
  • 開発用用途のアンマネージド ソリューションをエクスポート&パッケージ化したもの。
  • 配布とインストールを目的とする完成したソリューション。
  • インポート・エクスポート
    • システム コンポーネントは変更されない。
    • アンマネージド ソリューションの部分はロールバックできる。
    • アプリケーションの動作は、マネージド ソリューションの変更の組み合わせになる。

アンマネージド ソリューション

  • 配布を目的としない、展開で使用。
    • 開発中のソリューション展開
    • 社内的な変更の展開
  • アンマネージド カスタマイズをグループ化したもの。
  • インポート・エクスポート
    • システム コンポーネントを変更する。
    • 変更の上書き&上書きの動作になる。
    • ロールバックできない(コンポーネントは削除されない)。
    • インポート順が異なると、結果が異なってくることがある。

アンマネージド カスタマイズ

  • 開発中のアンマネージド カスタマイズの実体は、すべて既定のソリューションに含まれる。
  • システム ソリューションはアンマネージド カスタマイズできる。
  • マネージド ソリューションはアンマネージド カスタマイズできる。

新規作成

ソリューション(カスタム ソリューション)を新規作成する。

  • 始め、開発のためのアンマネージド ソリューションを作成する。
  • 開発中のアンマネージド カスタマイズの実体は、すべて既定のソリューションに含まれる。
  • アンマネージド ソリューションは、アンマネージド カスタマイズの参照のみ保持する。
  • アンマネージド ソリューションを削除すると、
    既定のソリューションからアンマネージド カスタマイズも削除される。

ロール

以下のロールを持つユーザでCRMの組織にサインイン。

  • システム カスタマイザー
  • システム管理者

手順

  • ナビゲーション バーの[Microsoft Dynamics CRM]の[設定]、[ソリューション]、[新規]。
  • [新しいソリューション]フォームが表示される。
  • 必要事項を入力し保存。
    • 表示名:ソリューションの呼称(変更可能)
    • 名前:英数字のみ(変更不可能)
  • 発行元:マネージド ソリューションで特に重要になる。
    • ソリューション・コンポーネントの発行元を特定可能な接頭辞を定義する。
      ・カスタマイズした組織:カスタマイザー(個人、組織、企業)
      ・ビジネス要件:カスタマイズ(モジュール名)
  • 接頭辞:8文字以内
    ・新規コンポーネント名の先頭に付与され名称の衝突を抑止する。
    ・接頭辞 = カスタマイズした組織 + ビジネス要件などとする。
  • 補足:組織を作成すると、”既定の発行者”という発行元が自動的に作成される。
  • 構成ページ
  • バージョン:バージョン番号(数字のみ)
    • メジャー.マイナー.ビルド.リビジョン
    • 推奨:年.月.日.リビジョン
  • 説明:ソリューションの機能の概要(2,000文字)
  • エクスポート時のファイル名
    "名前"+"バージョン"

複数ソリューションの用例

開発

複数のカスタマイザーによるカスタマイズ

  • 利点
    • 並行作業
    • 開発、マージ、テスト
  • 欠点
    • 競合の類の検出の遅延。

バージョン

完了した作業に新しい要件が追加された時。

  • 以下の場合は旧ソリューションに変更を行う。
    • バグ修正(リビジョン・アップ)
  • 以下の場合は新ソリューションに、新コンポーネント追加を行う。
    • 当該ソリューションへの更新が枯れている場合

エクスポート・インポート

エクスポート

  • ZIP形式でのエクスポート
    以下が同梱されている。
    • XML
    • DLL
    • XAML
    • 画像ファイル
  • 用途
    • 開発-リリースまで。
      • 開発-テスト-運用環境
      • 受け入れテスト、トレーニング

インポート

  • バージョン番号で管理されている。
    • インポート元の方がバージョン番号が大きい場合はインポート不可能。
  • コンポーネントを含まないソリューションをインポートしてもコンポーネントは削除されない。
  • ダウン・レベリング CRMのマイナーバージョンが違う場合で、旧バージョンのCRMがインポートする場合、
    旧バージョンでサポートされない機能(コンポーネント/プロパティ)を削除する。

ソリューション コンポーネント

カスタマイズ ツールまたは API を使用して作成され、アプリケーション内で完全にホストされる。

種類

スキーマ

  • 関連付け
  • 接続とつながりロール
  • グローバル オプション セット

ユーザインターフェイス

  • アプリケーション リボン
  • サイトマップ
  • フォーム
  • エンティティ リボン
  • Webリソース
  • 分析
    • ダッシュボード
    • レポート
    • グラフ
    • ビジュアル化

プロセス/コード

  • プロセス
    • ダイアログとワークフロー
  • プラグイン
    • アセンブリ
    • 処理手順

テンプレート

  • 差し込み印刷
  • 電子メール
  • 契約
  • 記事

セキュリティ

  • セキュリティ ロール
  • フィード レベルのセキュリティ プロファイル

データ レコード

  • データ レコード
    • ユーザ
    • チーム、部署
    • キュー
    • 目標
    • 情報カテゴリの階層
    • 製品カタログに関連したもの
  • データレコードを使用したソリューション コンポーネント
    • ビュー
    • レポート
    • カスタム コード
  • 信頼性を担保する方法。
    • データインポートウィザードを使用する。
    • インポートフィアルにレコードのGUIDを含める。

外部コンポーネント

アプリケーションの外部で動作するソフトウェアは、
インストーラー プログラムなど、従来の方法で
アプリケーションをパッケージ化してインストールする。

メタデータ

コンポーネントの中にはメタデータを形成しているものもある。

  • コンポーネント間の連携
  • コンポーネントの体裁(見た目)
  • SQLデータベースへのデータ格納方法

新規作成

ロール

同上

手順

  • ナビゲーション バーの[Microsoft Dynamics CRM]の[設定]、[ソリューション]、目的のソリューションをダブル クリック。
  • ソリューションエクス プローラーのナビゲーション ウィンドウで[コンポーネント]をクリック。
  • [コンポーネントの種類] の一覧で追加する種類をクリックし、コマンド バーで、[新規] または [既存の追加] を選択。

エンティティ

下位コンポーネント

また、エンティティを作成すると以下のコンポーネント
(for メタデータ・体裁)が自動的に作成され、個別の削除は不可能。
内部的には、エンティティに対応したDBのテーブルも作成されている。

フィールド

  • エンティティのプロパティ
  • DBやビューの列に対応
  • フォームのInput, Output, Editフィールドに対応するコントロール

フォーム

  • エンティティに対応するフォームUI
  • 以下の各種コンポーネントが含まれる。
    • フィールド
    • サブグリッド
    • レイアウト
    • イベントハンドラ&スクリプト
  • 格納先:SystemForm?

ビュー

  • 所謂ビューだが、SQLを使用していない。
  • 格納先:SavedView?

グラフ

  • 常にビューとペアで使用される。
  • データセットから棒、折れ線などの各種グラフを生成して表示。
  • 一部エンティティには既成のグラフがあり、このカスタマイズも可能。

エンティティの種類

システム エンティティ

  • システム開始時に事前に定義されるエンティティ(カスタマイズ可能)
  • 関連付けなど、依存関係があるコンポーネントは削除できない。

カスタム エンティティ

  • カスタマイズで追加したエンティティ。
  • 関連付けなどの依存関係を削除した後に削除可能。

依存関係

依存関係の例

  • サブコンポーネント
  • 関連付け
  • 接続とつながりロール
  • 利用?
    • ダッシュボードにグラフを含める等。

必須コンポーネント

  • 必須コンポーネント リストに表示される。
  • しかし、エンティティの削除を妨げない。
  • 必須コンポーネントが一度でもエクスポートされていれば以降ソリューションへの追加は不要。
  • 多くの必須コンポーネントはシステム エンティティのため(、警告が表示されても)、ソリューション追加は不要。

エンティティとDBMSスキーマ

  • フィルター ビューによりエンティティが提供される。
  • DBMS構造を意識する必要はない
    • 旧バージョンではシステムフィールドとカスタムフィールドでテーブルが分割されていた。
    • 新バージョンではテーブル統合されたがフィルター ビューによりアプリケーションは影響を受けない。
    • 外部スキーマ(フィルター ビュー)により、概念スキーマ(製品のテーブル設計)変更の影響を受けない。
  • 必要なデータは外部キーを使用して結合される。
  • 概念スキーマ(テーブル)にインデックスを付与することはサポートされている。

データ アクセス

概要

DBテーブルにアクセスする方法

アクセス方法

Microsoft Dynamics CRM SDKを使用

  • エンティティ
    • Execute メソッド

フィルターされたビュー(Filtered views)

SQLでの直接アクセスはサポートされない。

  • 直接アクセスはフィルターされたビュー(Filtered views)のみサポート。
  • 更新は不可能、参照系(更新は不可)の外部アプリケーションの開発で利用可能。

制限事項(Dynamics CRM Onlineで)

利用できない

SQLとして実行されるため、

  • フィルターされたビュー(Filtered views)

利用できる

Web サービス経由でクエリが実行されるため。

  • エンティティ
  • QueryExpression?
  • QueryByAttribute?
  • FetchXML
  • LINQ クエリ
  • Execute メソッド

エンティティ

  • Create メソッド
  • Retrieve メソッド
  • Update メソッド
  • Delete メソッド
  • RetrieveMultipleMethod? メソッド

事前バインディング

参照設定ではなく、CrmSvcUtil?.exeを使用する。

  • ヘルパー プロキシ クラス

遅延バインディング

  • Entityクラス
    • ハッシュテーブル
  • EntityCollection?クラス
    主要なメンバ
    • Entities
    • EntityName?
    • ExtensionData?
    • Item
    • MoreRecords?
    • PagingCookie?
    • TotalRecordCount?
    • TotalRecordCountLimitExceeded?

FetchXML、QueryExpression?QueryByAttribute?

オブジェクトやXMLの階層構造でSQLを表現する。

QueryExpression?

  • FilterExpression?
  • ConditionExpression?
  • ColumnSet?
  • RetrieveMultiple?
  • QueryExpression?
    • EntityName?
    • ColumnSet?
    • Criteria
    • Distinct
    • LinkEntities?
    • Orders
    • PageInfo?
    • TotalRecordCount?

QueryByAttribute?

  • プロパティ
    • EntityName?
    • ColumnSet?
    • Attributes
    • Values
    • Orders
    • PageInfo?

FetchXML

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

LINQ

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

フィルターされたビュー(Filtered views)

  • Microsoft Dynamics CRM データベース(SQL Server)を直接クエリできる。
  • 設置型のみでサポートされるため、オンライン環境へ移行することができない。

Execute メソッド

  • Execute メソッドにRequestオブジェクトを渡す。
  • Responseオブジェクトを取得する。

エンティティ共通のRequest

  • CreateRequest?
  • DeleteRequest?
  • RetrieveRequest?
  • RetrieveMultipleRequest?
  • UpdateRequest?

エンティティ固有のRequest

  • SendEmailRequest?
  • GenerateQuoteFromOpportunityRequest?

汎用のRequest

WhoAml?

参考

CRM セキュリティモデルの作成

CRM エンティティのカスタマイズ

CRM フィールドのカスタマイズ

CRM 関連付けの管理

CRM フォームのカスタマイズ

CRM 業務ルールの構成

CRM ビューのカスタマイズ

CRM グラフのカスタマイズ

CRM ダッシュボードのカスタマイズ

CRM 追加のセキュリティ オプション

CRM 業務プロセス フロー


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-02-27 (月) 22:52:59 (1014d)