-
Notifications
You must be signed in to change notification settings - Fork 0
MS_CRMViewCustomization
-
クエリが含まれる。
-
クエリによりレコードの一覧が表示される。
-
1つのエンティティに対して
- 複数のビューを定義できる。
- 複数のビューを選択し表示データを変更できる。
- 新しいエンティティには既定のビューが自動生成される。
補足(ビューは SQL のビューではない): CRM の「ビュー」は
**保存されたクエリ(SavedQuery/UserQuery)**であり、
DB 側にビュー オブジェクトが作られるわけではない。
クエリの実体は FetchXML で、
実行時にプラットフォームが SQL へ変換し、
実行ユーザのアクセス権によるフィルタを必ず加えて発行する。
- DCRM・セキュリティ特権を持ったユーザにより生成・作成される。
- 全てのユーザが表示できる。
- 特定の部分で使用される特殊なビュー
- アプリケーションの組込み機能を提供する。
- カスタマイズ可能だが、追加や削除はできない。
- ビュー セレクタに表示されないので切り替えで選択は不可
- フォームのサブグリッドや、ダッシュボードのリストでの使用は不可
以下は、システム ビューの種類。
- 各エンティティに1つ含まれ、以下のケースに使用される。
- ユーザがビュー セレクタで個人用ビューの作成をクリックした場合。
- ユーザが高度な検索を開始して、
[保存されているビューの使用] で [新規] を選択した場合。
- 主レコード フォームの関連レコード一覧に表示される。
- エンティティは1つの ”関連” ビューを持ち、変更可能。
- 一部のエンティティには複数の関連ビューがある。
- ”関連” 検索フィールドによって主レコードにリンクされている活動エンティティ
- ・・・ERD が無いと説明が厳しい・・・。
-
検索
- ビュー セレクタの上右側に [レコードの検索] ボックスが表示される。
- テキストを入力(前方一致検索、先頭
*のワイルドカードで部分一致検索) - Enter キーを押下するか、[検索] アイコンをクリックする。
- 入力したテキストに一致するレコードの一覧が表示される。
-
制限
- ユーザは検索列を選択できない。
- 具体的な検索が必要な場合は、高度な検索を使用する。
-
保守
-
検索列を追加すると、インデックス メンテナンス ジョブが構成される。
-
メンテナンス ジョブで、検索列に対応した非クラスタ化インデックスが生成される。
-
検索列を削除すると、次回のメンテナンス ジョブでインデックスが削除される。
-
以下のケースではメンテナンス ジョブでインデックスが自動作成されなくなる。
- エンティティのテキスト フィールドの合計が 900 バイトを超えた場合。
- 簡易検索ビューに 20 を超える検索列を追加した場合。
- この場合、直接、DB に非クラスタ化インデックスを追加する。
-
移行メモ(正誤): 元ページは「エンティティに 900 を超えるテキスト
フィールドを追加した場合」となっていたが、900 という数値は
SQL Server の**非クラスタ化インデックスのキー サイズ上限(900 バイト)**に
由来する。フィールドの「本数」ではなくキー長の合計なので、上記のように改めた。
-
フォームの検索フィールドに既定で適用される。
- フォームの検索フィールドの右側の [検索] アイコンをクリックした時に使用される。
- 検索フィールドで使用されるビューを別のビューに切替えることもできる。
-
以下のように、使用可能な親(マスタ)レコードの一覧が表示される。
- 親(マスタ)レコードのプライマリ フィールド
- プライマリ フィールドの下に検索ダイアログビューの最初の2列。
-
システム エンティティには
- 通常、1つの検索ダイアログ ビューがある。
- 一部には、複数の検索ダイアログ ビューがある。
-
レコードが表示されない場合、
- [他のレコードの検索] をクリックし、すべての結果を示すダイアログ ボックスを表示する。
- 一覧下部の新規をクリックして(既定で簡易作成で)新しいレコードを作成できる。
-
フォームのサブグリッドや、ダッシュボードのリストで使用可能
-
エンティティのビュー セレクタに表示される。
-
カスタマイズ要件の収集
-
エンティティをビューに表示する必要があるか?
-
どのレコードをビューに表示する必要があるか?
- 既定ではユーザのアクセス許可のあるレコードが表示される。
- いずれかのフィルタで特定要件を満たすレコードのみ表示する必要があるか?
-
どのフィールドを表示する必要があるか?
-
既定では、どのように並び替える必要があるか?
-
-
エンティティの既定のビュー
-
すべてのユーザがシステム全体で使用できる。
-
カスタム エンティティが追加されると共有ビューのセットが作成される。
- 変更可能。
- 非アクティブ化可能。
- 削除不可能。
-
最後に選択した共有ビューは、
- エンティティの既定のビューの代わりに使用される。
- サインアウトするまで記憶される。
-
ピン留めすると、個人用の既定ビューとして選択できる。
-
既定のビュー(共有ビュー)がカスタマイズ要件に似ている場合、
幾つかの列を追加するだけなどで済む可能性がある。
-
自分で作成したビュー
- ユーザが作成し表示できる。
- 他のユーザ・チームと共有できる。
-
既存の共有ビューや個人用ビューに基づいて作成できる。
- ビュー セレクタの下部にある [個人用ビュー] から作成
- [高度な検索] の [保存] ボタンで作成
補足(共有ビューと個人用ビューの実体): 共有ビュー・システム ビューは
SavedQuery(ソリューション コンポーネント)、個人用ビューは
UserQuery(ユーザ データ)として格納される。
前者はソリューションで移送できるが、後者は移送対象にならない
——という違いが「システム全体で使用できる/自分で作成した」の
実務上の意味である。
-
列(射影的な)
→ ビュー列 -
選択(Where 句的な)
→ ビューのフィルタ処理- クエリ
- ビュー フィルタ
-
並び替え(Order By 句的な)
- ビューは、クエリ、または ”ビュー フィルタ” に基づいて
1つのエンティティのレコードのサブセットを返す。
-
クエリは [高度な検索] に似た GUI で作成され FetchXML として保存される。
-
コンテキストに応じて(検索の)パラメタをクエリで使用できる。
-
例:自分のアクティブな取引先企業ビューのパラメタ
- 表示しているユーザ
- レコードの状態
-
テストを含める
- エンティティのフィールドに関するテスト
- 親(マスタ)または子(トランザクション)レコード
および、多対多レコードのフィールドに関するテスト
-
すべてのビューにフィルタが定義されている。
-
フィルタは空にできる(その場合、すべてのレコードが表示される)
-
エンティティ内の任意のフィールドを含めることができる。
-
1対多の関連付けで
- 主(親)エンティティのフィールドを含めることができる。
- 関連(子)エンティティのフィールドを含めることはできない。
- 追加・削除ができる。
- 列数に制限はない。
- 表示
- 順序の変更
- 幅の調整
-
以下の様なビューのビュー列は少なくする。
- 頻繁に使用されるビュー
- フォームのサブグリッド
- ダッシュボードのリスト コンポーネント
-
以下のビュー列は含めない。
- (検索の)パラメタに使用している列
- 重複している列
- 親レコードに表示されている関連レコードの列
- マスタ レコードに表示されているトランザクション レコードの列
-
定義
-
ビュー列
-
クエリ
- GUI で条件を組み立ててビューを提供する。
- 内部的には FetchXML が使用されている。
-
フィルタ
-
-
編集
移行メモ(正誤): 元ページはクエリの説明が
「自由 SQL を使用してビューを提供」「SQL を GUI で作成」と
なっていたが、[高度な検索] が生成するのは FetchXML であって
任意の SQL を書ける仕組みではない(結合できる相手や集計に制約がある)。
誤解を招くため、上記のように書き改めた。
-
定義
ビュー列(表示される列)と検索列(テキスト検索の対象フィールド)を定義する。-
ビュー列(表示される列)
-
検索列(テキスト検索の対象フィールド)。
-
検索列は、当該エンティティからのみ選択可能。
-
検索列が多い場合、
性能低下の可能性(ユーザ数やレコード数が多い場合に考慮)
ヒットするレコードが多すぎると役に立たなくなる。
-
-
-
検索列の変更
- [設定] ---> [ソリューション] ---> [エンティティ]
- エンティティを展開し、[ビュー] をクリックする。
- 簡易検索ビューをダブルクリックする。
- [タスク] 領域の [検索列の追加] をクリックする。
- 検索列のチェックをオン
- 検索しない列のチェックをオフ
- [OK] ---> [保存して閉じる] ---> [すべてのカスタマイズを公開] をクリックする。
- 定義
-
ビュー列
プライマリフィールドがビュー列の最初の列である必要がある。 -
検索列
簡易検索ビューの検索列が使用される。 -
フィルタ
- フォーム上の構成でフィルタ処理される。
- 殆どのエンティティの既定の検索ダイアログ ビューには、
"アクティブ" であるレコードのみを表示するフィルタが含まれる。
-
- ビュー エディタを使用する。
-
手順
-
[設定] ---> [ソリューション] ---> [エンティティ]
-
エンティティを展開し、[ビュー] をクリックする。
-
[新規] をクリックする。
-
[ファイル名を付けて保存] をクリックし、
-
ビューの定義を行う。
- ビューの説明を入力
- フィルタを定義
- ビュー列を定義
- 並べ替え動作を定義
-
[保存して閉じる] ---> [すべてのカスタマイズを公開] をクリックする。
-
-
ショートカット
- エンティティの任意のビューから、
[その他コマンド] ---> [新しいシステム ビュー]
- エンティティの任意のビューから、
-
手順
- [設定] ---> [ソリューション] ---> [エンティティ]
- エンティティを展開し、[ビュー] をクリックする。
- コピーするビューをダブルクリックする。
- [ファイル名を付けて保存] をクリックし、
- ビューの説明を入力して、[OK] をクリックする。
- 必要に応じてビュー定義の修正を行う。
- [保存して閉じる] ---> [すべてのカスタマイズを公開] をクリックする。
-
ショートカット
- エンティティの任意のビューから、
[その他コマンド] ---> [システム ビュー] - [ソリューション] ---> [エンティティ] ---> [ビュー] 一覧が表示される。
- エンティティの任意のビューから、
- 手順
移行メモ(補完): 元ページは本節が見出しのみで本文が書かれていなかったため、
前後の節(コピー・削除)と同じ体裁で手順を補った。
著者による本文が加筆された場合は置き換えること。
-
ビューが不要になったら非アクティブ化・削除する。
-
非アクティブ化
- システム ビューは非アクティブ化できない。
- 非アクティブ化しないと削除できない。
- 非アクティブ化したビューは再アクティブ化できる。
-
削除
- 自動生成された共有ビューは
削除できない(非アクティブ化はできる)。 - 削除したビューは復元できない。
- 自動生成された共有ビューは
-
-
手順(非アクティブ化)
- [設定] ---> [ソリューション] ---> [エンティティ]
- エンティティを展開し、[ビュー] をクリックする。
- 非アクティブ化にするビューを選択する。
- [その他操作] ---> [非アクティブ化] をクリックする。
-
手順(アクティブ化)
- [設定] ---> [ソリューション] ---> [エンティティ]
- エンティティを展開し、[ビュー] をクリックする。
- 画面上部の [ビュー] ドロップ ダウン リストで、
[非アクティブな共有ビュー] を選択する。 - アクティブ化にするビューを選択する。
- [その他操作] ---> [アクティブ化] をクリックする。
-
手順(削除)
- [設定] ---> [ソリューション] ---> [エンティティ]
- エンティティを展開し、[ビュー] をクリックする。
- 削除するビューを選択する。
- 削除([X]) ---> [削除の確認] ダイアログ ボックスで [削除] をクリックする。
- [すべてのカスタマイズを公開] をクリックする。
-
ダッシュ ボードのグラフ コンポーネント
- 非アクティブ化されたビューを使うグラフ コンポーネントをダッシュ ボードに追加できる。
- 使用するビューが非アクティブ化された場合、既定のビューに置き換えられる。
- グラフの編集時は非アクティブ化されたビューの置き換えが必要になる。
- 手順
- [設定] ---> [ソリューション] ---> [エンティティ]
- エンティティを展開し、[ビュー] をクリックする。
- 既定として設定するビューを選択する。
- [その他操作] ---> [既定値に設定する] をクリックする。
- [すべてのカスタマイズを公開] をクリックする。
-
概要
-
1つ以上の条件で構成されるクエリを指定する。
-
条件は論理 AND 動作で演算されるので、すべての条件が true である必要がある。
-
条件をグループ化すれば、OR 動作を使用できる。
-
手順
- [設定] ---> [ソリューション] ---> [エンティティ]
- エンティティを展開し、[ビュー] をクリックする。
- フィルタを適用するビューをダブルクリックする。
- [フィルタ条件の編集] をクリックする。
- 必要に応じてフィルタの構成を行う。
- [OK] をクリックする。
-
-
関連エンティティのフィールドを追加する。
- [選択] をクリック
- [関連] セクションで関連エンティティを選択し [選択] をクリック
- 関連エンティティのフィールドの一覧が表示される。
-
概要
- 初回、プライマリフィールドだけがビュー列に含まれる。
- 必要に応じて、ビュー列を追加する必要がある。
-
手順
- [設定] ---> [ソリューション] ---> [エンティティ]
- エンティティを展開し、[ビュー] をクリックする。
- ビュー列を定義するビューをダブルクリックする。
- [タスク] 領域の [列の追加] をクリックする。
- 必要に応じてビュー列の定義を行う。
- [OK] をクリックする。
-
位置・サイズの変更
- ビュー デザイナーで移動する列を選択。
- [タスク] 領域で
- 左右矢印で位置を移動する。
- [プロパティの変更] ---> [列のプロパティの変更] のウィンドウで列幅を変更する。
- [OK] をクリックする。
-
概要
- 既定の並べ替えには1 or 2の並替え列を指定できる。
- 並替え列を選択し、昇順・降順を指定する。
- 並替え列は、当該エンティティからのみ選択可能。
-
手順
- ビュー デザイナーで [タスク] 領域の [並び替えの構成] をクリック
- [並び替えの構成] ダイアログ ボックスで並べ替えを定義
- 1番目の並替え列を選択し、昇順・降順を指定する。
- 2番目の並替え列を選択し、昇順・降順を指定する。
- [OK] をクリックする。
- 簡易検索が拡張され一度に最大 10 個のエンティティを検索できる。
- 検索結果はエンティティ毎に別の一覧に表示される。
- 簡易検索ビューの検索列が使用される。
- 通常、エンティティ毎に検索列は異なる。
-
[設定] ---> [管理] ---> [システムの設定]
-
[全般] タブの [簡易検索の設定] セクションで
[タブレット PC 用 CRM で検索対象のエンティティを選択] ラベルの [選択] をクリックする。 -
エンティティの選択ダイアログボックスで
- エンティティを追加・削除する。
- 上下矢印で表示順序を変更する。
-
[保存して閉じる] をクリックする。
補足(現在の全文検索): 本節のマルチエンティティ検索は、
後に **Dataverse 検索(旧称 Relevance Search)**へ発展した。
簡易検索が SQL の前方一致であるのに対し、Dataverse 検索は
外部の検索インデックスを使うため、
部分一致・表記ゆれ・添付ファイル本文まで対象にできる。
Tags: Dynamics CRM
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。