エンティティリストを使ってビューに検索条件を加えてみる

前回はエンティティリストを作って、ポータルからレコードの一覧表示をするところまで設定しました。
今回はそのエンティティリストに一手間加えてより使いやすくしてみましょう。

スポンサーリンク

本家越え!?ビューに検索条件をつける

作ったエンティティリストは指定された条件を一覧に出してるだけにすぎません。
でも、ポータルの一覧表示は一味違います

なんと、一覧表示から検索条件を加えてポータルユーザ自らが条件を指定した絞り込みを行うことができます。
Dynamicsユーザのビュー表示にはない機能なのでありがたい機能ですね!
(むしろDynamicsのビューにその機能が欲しい。。。)

色々な検索方法での条件指定ができるので、今回はその機能を加えてアップデートして行きたいと思います。

エンティティリストにフリーワード検索を入れる

まずは、一覧表示にフリーワード検索を入れてみます。
前回作成したエンティティリストを引き継いで使用します。

エンティティリストから、[全般]タブの[検索]セクションにある「有効」にチェックを入れましょう。
これでフリーワード検索ができます、簡単ですね!
エンティティリストの検索にチェック

検索を有効にすると、ポータルへの表示はこのように検索テキストが出ます。
エンティティリストのフリーワード検索

ちなみに、このフリーワード検索の検索対象はビューで表示している項目のみが対象です
テキストの説明文にも記載はありますが、ワイルドカード検索も可能です。

より詳細な検索ロジックを設定する

フリーワード検索はシンプルでしたが、次はちょっと情報量多めです。
次は指定した項目に対して検索をかけたい時の設定になります。

指定した項目といっても、文字であればテキストで検索したいでしょうし、オプションセットであれば選択式で検索したいですし、数字であれば範囲指定したいでしょう。
データ型によって検索方法がまちまちなので、そのデータ型にあった検索方法を指定する必要があります

まずは、エンティティリストの[全般]タブ内の[メタデータ フィルター]セクションで有効にチェックを入れましょう。
メタデータフィルターの有効化

フィルターの各設定については後述します。

テキストフィルター

テキスト入力による検索となります。
フィルターから[テキストフィルター]を選択して、項目を指定します。
テキストフィールターの条件設定

ポータルではテキスト入力による検索となります。
前方一致検索となります。
ポータルのテキストフィルター表示

属性フィルター

テキスト入力とは違い、入力に選択肢を与えて検索します。
オプションセット項目の検索はこちらを使いましょう。
チェックボックス・ラジオボタン・ドロップダウンリストから選択できます(ラジオボタンとドロップダウンは入力が異なるだけで検索ロジックは一緒)。
属性フィルターの条件指定

ポータルの検索はこのように。
ポータルの属性フィルター

ルックアップセット

こちらも属性フィルターと似ていますが、選択肢を関連するレコードから取得します。
それ以外は属性フィルターと同じです。
ルックアップセットの条件指定

検索画面の表示はこう。
ポータルのルックアップフィルター

範囲フィルターセット

予め検索範囲を指定して、選択された範囲に収まっているものを抽出します。
こちらも、チェックボックス・ラジオボタン・ドロップダウンリストから指定が可能です。
範囲フィルターセットの条件指定

数字や日付などの項目に対して有効です。
ポータルの範囲フィルター

動的な候補リストセット

オプションセット項目に対して、選択肢を定義し選択したものに対して検索をかけます。
動的な候補リストセットの条件指定

属性フィルターと違うところは、オプションセットの選択肢を自動的に取り込んでいるので、いちいち値を定義する必要がないところです。
そのため、選択できる項目もオプションセット値しか指定できないようになっているはずです。
表示順はここでは指定することはできず、オブションセットで定義している値の順番になります。
ポータルの動的な候補リストセットの条件指定

動的な候補リストセット

関連するエンティティからレコードを動的に取得して、選択肢を自動的に取り込みます。
動的な検索セットの条件指定

ポータルでは取り込んだレコードが表示されます。
ポータルの動的な検索セットの表示

ここを扱う上での注意点は、関連するエンティティにもアクセス権が付与されていること
アクセス権がなかったり、該当のレコードがない場合はこのように効果を発揮しません。
アクセス権がないと表示されない

エンティティのアクセス制御で関連エンティティのアクセス権の設定も忘れずに。

動的な候補リストセット

これはちょっと上級者向けの設定。
今までのものはポータルユーザが検索するための検索条件を定義するものでしたが、こちらはFetchXMLを使って検索条件を予めセットしておきます。

これを定義するには、FetchXMLを打ち込む必要があります。
僕もそうですが、FetchXMLがとっさに入力できない人は、高度な検索を使用しましょう。

Dynamicsから高度な検索のアイコンを選択して、
高度な検索からFetchXMLを取得

エンティティを選択→条件を入れて→[FetchXMLをダウンロード]押下。
検索条件を定義してFetch XMLのダウンロード

FetchXMLがダウンロードされますが、XML分のうち、列とソートは不要なので、attributeタグとorderタグを消しましょう。
Fetch XMLから条件部分を抽出

それをFetchXMLのテキスト欄に貼り付けてください。
(この辺、あまり説明ないから分かりづらいんだよなぁ)
FetchXMLに条件文を記入

最終的なポータルの検索表示はこうなります。
ポータルのFetch XMLの検索表示

チェックを入れた時は記載したfilter条件が適用されます。
表示がそのままattributeになっちゃうけど、表示名の設定がないので仕方ないですね。

もう一つ設定しておきたいこと

検索条件はこのように色々なバリエーションで使えるのでありがたいですね。

検索条件とは別ですが、もう一つ設定するものとしてボタン名も設定した方がいいです。

というのも、大抵文言系が未設定の場合はデフォルトのラベルが適用されるのですが、なぜか検索のとこだけ、
適用ボタン未設定だと文字が出ない
文字が出ません(泣)。
なので、適用ボタンだけ何かしら設定しておきましょう。
適用ボタンラベルの文言設定
これにて一件落着!
適用ボタンの表示

次回は

エンティティリストで設定することはまだまだあります

でも、ここから先はポータルのもう一つの主要機能エンティティフォームと絡めての設定となるため、一度エンティティフォームの設定に移りたいと思います。

 

コメント