CLS ToolsではSalesforceの機能を拡張するためのLightningコンポーネントを提供します。
主にSalesforceに新たなデータの表示方法を追加いたします。
2021年2月現在、以下の機能が提供されています。
QRコード(基本パッケージ)
ガントチャート(拡張パッケージ)
日時項目を2つ以上含む主要標準オブジェクト、カスタムオブジェクトをガントチャートとして表示します。
汎用検索(拡張パッケージ)
主要標準オブジェクト、カスタムオブジェクトを対象に、クラシカルな検索画面を実現するための検索条件及び検索結果コンポーネントを提供します。
本ドキュメントでは汎用検索(拡張パッケージ)について記述いたします。
目次
CLS Tools ユーザガイド - ObjectSearch(汎用検索)システム要件言語汎用検索パッケージ提供Lightningコンポーネント設定ライセンスの割当て画面設定画面検索条件コンポーネント検索結果コンポーネントコンポーネントの利用方法CLS Search ConditionCLS Search Result対象オブジェクト権限に関して高度な利用方法独自のLightningコンポーネントから利用する
対応Webブラウザ
Google Chrome 最新の安定版
Microsoft Edge 最新の安定版
Mozilla Firefox 最新の安定版
Safari 最新の安定版
対応環境
使用可能なインタフェース
Salesforceのエディション
Enterprise、Unlimited、Force.com、Developerの各エディション
ハードウェア要件
マウスあるいはトラックパッド
物理キーボード
表示言語はログインユーザの言語設定により決定されます。
翻訳リソースとして日本語および英語を提供いたします。
Salesforceの翻訳機能(トランスレーションワークベンチ)により各種言語に対応した翻訳設定を追加できます。
主要標準オブジェクト、カスタムオブジェクトを対象に、クラシカルな検索条件及び検索結果コンポーネントを提供します。
検索条件コンポーネント「CLS Search Condition」と検索結果コンポーネント「CLS Search Result」を提供いたします。

コンポーネントはアプリケーションページ・ホームページ・レコードページに配置する事ができます。
Lightning Event
CLS_ObjSearch:SelectRecordEvent
検索結果コンポーネント「QR Search Result」でレコードを選択した際に本Eventが発行されます。
独自のLiightning コンポーネント(Aura)によりEventをハンドリングして独自処理を実装することができます。
| 属性 | データ型 | |
|---|---|---|
| settingName | String | 検索設定で「ユニーク名(DeveloperName__c)」として設定した値 |
| selectedRows | Object[] | 選択されたレコードの情報 |
本パッケージで提供される機能を利用するために管理者権限でいくつかの設定を行う必要があります。
プロファイル、権限セットを使用し以下の設定を行います。
オブジェクトへのアクセス権付与
以下のSObjectとその項目への参照権限を与える必要があります。
検索設定(CLS_ObjSearch__ SearchConfig__c)
このオブジェクトは検索条件、検索結果コンポーネントの設定を行うものであり、設定の管理者には編集権限も必要です。
上記の設定のため、以下の設定済み権限セットを使用することができます。
権限セット
CLS_ObjectSearchManager
検索設定(Search Config)オブジェクトに対する参照・作成・編集・削除権限を持ちます。
CLS_ObjectSearchUser
検索設定(Search Config)オブジェクトに対する参照権限を持ちます。
新規インストールすると30日間のトライアルライセンスが5本割当てられます。
プラットフォームツール > アプリケーション > パッケージ > インストール済みパッケージ から「CLS Tools ObjectSearch」パッケージの「ライセンスの管理」を開き、利用ユーザへライセンスを付与します。
基本パッケージ「CLS Tools Base」のライセンスも割当てが必要です。

…中略…

レコード名(必須)
レコード名称(Name)を指定します。
ユニーク名(必須)
システムで使用するレコードのユニーク名を指定します。
タイトル(必須)
検索条件・検索結果のコンポーネントに表示する任意名称を指定します。
ロード時に検索
チェックを行うと検索結果コンポーネントがロードされたときに検索を実行します。
検索条件として設定された「デフォルト値」を使用します。
新規有効化
チェックを行うと「新規」ボタンが有効化されます。
ボタン押下で新規レコード作成を行います。
標準ではダイアログが表示されます。
カスタムコンポーネントなどで上書きされている場合、新規ページへ遷移します。
編集有効化
チェックを行うと検索結果コンポーネントにおいて「編集」ボタンが表示されます。
検索結果コンポーネントでは行ごとにチェックボックスが表示されます。1行チェックを行うと「編集」ボタンが有効化されます。複数行チェックを行うと編集ボタンは無効化されます。
ボタン押下でレコード編集を行います。
標準ではダイアログが表示されます。
カスタムコンポーネントなどで上書きされている場合、編集ページへ遷移します。
一括削除有効化
チェックを行うと検索結果コンポーネントでレコードの「一括削除」ボタンが表示されます。
チェックを行った行が削除されます。
CSVダウンロード有効
チェックを行うと検索結果コンポーネントでレコードの「CSVダウンロード」ボタンが表示されます。
押下すると現在表示されているレッコード情報をCSVとしてダウンロードします。
検索結果ではなく、現在表示されているページの情報のみCSVとなります。
オブジェクト(必須)
検索対象となるオブジェクトを選択します。
項目選択
検索条件、検索結果で使用する項目を選択・追加します。
主従・参照項目については5階層先まで選択可能です。
※多態的項目(TODO/行動)のWhat/Who項目、所有者(Owner)等についてはNameオブジェクトの項目が表示されます。
実際には保持されていない項目を指定することもできますが、項目には何もセットされません。
「追加」ボタンを押下すると一覧に追加され、以下の内容が表示されます。
項目別設定内容
項目名
項目のAPI名が表示されます。
ラベル
項目のオブジェクトに設定された項目のラベルが表示されます。
「カスタマイズ」チェックボックスにチェックを行うことで任意のテキストに変更できます。
データ型
項目のデータ型が表示されます
ソート
チェックボックスが表示されます。ソート項目として利用する場合、チェックを行います。
チェックが付けられた項目はっけんサック結果コンポーネントのヘッダでソートを行うことができる他、検索条件コンポーネントで選択を行い、ソートした状態での検索が可能です。
フィルタ
検索条件として使用できる項目の場合、「✓」が表示されます。
検索タイプ
データ型に応じて使用できる検索タイプを選択します。
詳細は後述いたします。
属性
検索タイプに応じたオプションを選択します。
詳細は後述いたします。
デフォルト
デフォルト値を指定します。
検索条件コンポーネントの項目としてプリセットされる他、「ロード時に検索」が有効な場合に条件として使用されます。
「空値」にチェックをつけると「空文字列」として評価します。
カラム幅
検索結果コンポーネントに表示されるデフォルトのカラム幅として使用されます。
検索条件及び検索結果のコンポーネントでは設定画面での項目の並び順で並びます。
項目は「追加」した順序で並びます。各項目の行をドラッグすることで並び順を変更することができます。
データ型と設定パターン
基本パターン
「検索タイプ」が指定されていない場合、「ラベル」のカスタマイズと「カラム幅」のみ指定可能です。

「ラベル」のカスタマイズ時にはテキストボックスが表示されます。

「データ型」に応じて設定できる「検索タイプ」が変わります。
STRING(自動採番・テキスト)
テキスト
BOOLEAN(チェックボックス)
2値
ラジオ
CURRENCY(通貨)
数値
DATE(日付)
日付
DATETIME(日時)
日時
EMAIL(メール)
メール
テキスト
PERCENT(パーセント)
数値
TIME(時間)
時間
DOUBLE(数値・地理位置情報の緯度・経度)
数値
REFERENCE(参照関係・主従関係)
参照
MULTIPICKLIST(選択リスト(複数選択))
複数選択
PHONE(電話)
電話番号
テキスト
PICKLIST(選択リスト)
選択
複数選択
URL(URL)
URL
テキスト
以下は検索条件として指定できません。
LOCATION(地理位置情報)
ENCRYPTSTRING(テキスト(暗号化))
TEXTAREA(ロングテキストエリア・テキストエリア(リッチ))
数式項目についてはその戻り値のデータ型により上記のいずれかが適用されます。
外部参照項目についてはサポートいたしません。
検索タイプ
「検索タイプ」を指定した項目は絞り込み条件として「検索条件」コンポーネントに表示されます。
最大で20項目について「検索タイプ」を指定できます。
テキスト

「テキスト」を選択した場合、「属性」として以下が選択可能です。
| 選択肢 | 内容 |
|---|---|
| 一致 | 指定文字列との完全一致検索を行います。 |
| 前方一致 | 指定文字列との前方一致検索を行います。 |
| 後方一致 | 指定文字列との後方一致検索を行います。 |
| 部分一致 | 指定文字列との部分一致検索を行います。 |
| 含む | 入力文字列をCSVとして評価し、含まれるものと一致するレコードを検索します。 |
| 含まない | 入力文字列をCSVとして評価し、含まれるものと一致しないレコードを検索します。 |
「必須」を選択すると検索条件として入力が必須となります。
「デフォルト」欄ではテキスト入力のためのテキストボックスと「空値」チェックボックスが表示されます。
検索条件パネルでの表示


※「一致」以外の属性が指定された場合、ラベルのあとに属性が表示されます。
数値

「数値」を選択した場合、「検索タイプ」の下には「範囲」チェックボックスが表示されます。
「範囲」チェックボックスをチェックしない場合、「属性」欄では「必須」チェックボックスが表示されます。
「デフォルト」欄では数値入力のためのテキストボックスと「空値」チェックボックスが表示されます。
検索条件パネルでの表示


「範囲」チェックボックスをチェックした場合、「属性」欄では「必須(From)」チェックボックス及び「必須(To)」チェックボックスが表示されます。
「デフォルト」欄ではFrom及びToのための数値入力のためのテキストボックスと「空値」チェックボックスが表示されます。
検索条件パネルでの表示

2値

「2値」を選択すると検索条件パネルにはチェックボックスが表示されます。
「属性」欄には「必須」チェックボックス、「デフォルト」欄ではチェックボックスが表示されます。
検索条件パネルでの表示(必須チェックあり)

チェックボックスが表示されます。
検索条件パネルでの表示(必須チェックなし)

検索条件パネルには「オン」「オフ」「両方」のラジオボタンが表示されます。
デフォルトは「両方」となります。
日付

「日付」を選択した場合、「検索タイプ」の下には「範囲」チェックボックスが表示されます。
「範囲」チェックボックスをチェックしない場合、「属性」欄では「必須」チェックボックスが表示されます。
「デフォルト」欄では日付入力のためのテキストボックスと「空値」チェックボックスが表示されます。
検索条件パネルでの表示

日付入力ボックスが表示されます。
チェックボックスにチェックを入れると空値での検索となります。

「範囲」チェックボックスをチェックした場合、「属性」欄では「必須(From)」チェックボックス及び「必須(To)」チェックボックスが表示されます。
「デフォルト」欄ではFrom及びToのための日付入力のためのテキストボックスと「空値」チェックボックスが表示されます。
検索条件パネルでの表示

2つの日付入力ボックスが表示され範囲指定を行うことができます。
それぞれのチェックボックスにチェックを入れるとその値を含めた範囲となります。
日時

「日時」を選択した場合、「検索タイプ」の下には「範囲」チェックボックスが表示されます。
「範囲」チェックボックスをチェックしない場合、「属性」欄では「必須」チェックボックスが表示されます。
「デフォルト」欄では日時入力のためのテキストボックスと「空値」チェックボックスが表示されます。
検索条件パネルでの表示

日時入力ボックスが表示されます。
チェックボックスにチェックを入れると空値での検索となります。

「範囲」チェックボックスをチェックした場合、「属性」欄では「必須(From)」チェックボックス及び「必須(To)」チェックボックスが表示されます。
「デフォルト」欄ではFrom及びToのための日時入力のためのテキストボックスと「空値」チェックボックスが表示されます。
検索条件パネルでの表示

2つの日時入力ボックスが表示され範囲指定を行うことができます。
それぞれのチェックボックスにチェックを入れるとその値を含めた範囲となります。
選択

「選択」を選択した場合、「属性」として「必須」チェックボックスが表示されます。
「デフォルト」欄では対象項目の選択肢が表示された選択ボックスと「空値」チェックボックスが表示されます。
デフォルト値として1つ選択可能です。
検索条件パネルでの表示

対象項目で選択可能な選択肢が選択リストとして表示されます。
チェックボックスにチェックを入れると値が設定されていないことが一致条件となります。
複数選択

「複数選択」を選択した場合、「属性」として「必須」チェックボックスが表示されます。
「デフォルト」欄では対象項目の選択肢が表示されたチェックボックス群と「空値」チェックボックスが表示されます。
デフォルト値として複数選択可能です。
検索条件パネルでの表示
対象項目で選択可能な選択肢がチェックボックスグループとして表示されます。
チェックボックスにチェックを入れると値が設定されていないことが一致条件となります。
参照

「参照」を選択した場合、「属性」として「必須」チェックボックスが表示されます。
検索条件パネルでの表示

ルックアップ検索ボックスが表示されます。
2文字以上の入力で候補が表示され、候補から1つ選択します。
チェックボックスにチェックを入れると値が設定されていないことが一致条件となります。
メール

「メール」を選択した場合、「属性」として「必須」チェックボックスが表示されます。
検索条件パネルでの表示

メールアドレス入力ボックスが表示されます。
メールアドレス形式の入力のみ許可されます。
チェックボックスにチェックを入れると値が設定されていないことが一致条件となります。
電話番号

「電話番号」を選択した場合、「属性」として「必須」チェックボックスが表示されます。
検索条件パネルでの表示

テキスト入力ボックスが表示されます。
チェックボックスにチェックを入れると値が設定されていないことが一致条件となります。
オプション
親項目
対象オブジェクトが主従あるいは参照関係項目を持つ場合、項目を選択する事ができます。
CLS Search Result コンポーネントをレコードページに配置した場合、レコードのIDをフィルタとして使用します。
デフォルトソート項目
デフォルトのソート項目として使用する項目を指定します。
ソート方向
デフォルトのソート方向を指定します。

指定した検索設定に応じてコンポーネントの表示内容が生成されます。
「メニュー」ボタン
検索条件コンポーネントの右上には「メニュー」ボタンが配置されています。
押下することでメニューが表示されます。
現在は「設定」飲みが存在しています。
「設定」をクリックするとコンポーネントで使用されている「検索設定」レコードの参照画面に遷移します。
ソート項目
検索設定で「ソート」にチェックが付いた項目が指定されている場合、フッタエリアの左サイドに「ソート項目」の選択リストが表示されます。
選択を行うとその右隣にソート方向を指示する選択リストが表示されます。
選択を行なわない場合、検索設定で指定された「デフォルトソート項目」及び「ソート方向」が使用されます。
デフォルト設定がない場合、Name項目での昇順ソートとなります。
フッタボタン
「検索」ボタン
検索を実行します。
同一ページに配置された、同一設定を参照している検索結果コンポーネントで検索が実行されます。
「保存」ボタン
「保存」ボタンを押下すると、検索条件保存ダイアログが表示され、現在の検索条件の保存を行うことができます。

「保存名」を編集し、「保存」ボタンを押下するとブラウザ上に現在の検索条件が保存されます。
既存の名前を使用すると上書き保存となります。
「ロード」ボタン
「ロード」ボタンを押下すると、保存済み検索条件のロードダイアログが表示されます。

選択リストから保存された検索条件を1つ選択し、「ロード」ボタンを押下すると、検索条件コンポーネントに内容が反映されます。
また、「削除」ボタンを押下することで、保存済みの検索条件を削除できます。

検索設定で指定されたすべての項目が表カラムとして表示されます。
各行の先頭にはチェックボックスが存在します。
タイトル
指定された検索設定の「タイトル」項目が表示されます。
タイムゾーン
現在のユーザのタイムゾーンが表示されます。
再読込
検索を再実行します。
新規
新規レコードの作成ダイアログが表示されます。
カスタム画面で新規処理が上書きされている場合、そのページへ遷移します。
ダイアログで表示された場合も、新規作成後は新規レコードの参照ページへ遷移します。
編集
レコードを1つ選択した場合に有効化されます。複数選択すると無効化されます。
選択レコードの編集ダイアログが表示されます。
カスタム画面で編集処理が上書きされている場合、そのページへ遷移します。
ダイアログで表示される場合、「保存」ボタン押下でっ更新された後、画面が再読込されます。
削除
レコードを選択した場合に有効化されます。
選択レコードの削除を行います。
CSVダウンロード
ページ内のレコードをCSVファイルとしてダウンロードします。
検索結果全件ではないことにご注意ください。
メニュー
クリックでメニューが開きます。
「設定」をクリックするとコンポーネントで使用されている「検索設定」レコードの参照画面に遷移します。
ヘッダ
項目ラベルが表示されます。
ソート対象項目の場合、クリックにてソート順序を変更できます。
ページ当たり最大件数
1ページに表示される件数を指定します。
ページ移動ボタン
複数ページに渡る場合、現在ページによってページ遷移ボタンが有効になります。
合計件数
指定検索条件によりヒットした件数が表示されます。
データ型別項目制御
ID
IDではなくレコード名が表示されます。
クリックによりレコードの参照画面に遷移します。
参照項目
レコードIDではなく参照先のName項目(一部オブジェクトはSubject項目)が表示されます。
クリックによりレコードの参照画面に遷移します。
暗号化項目
項目定義によるマスク処理に関わらず、すべての文字が「※(アスタリスク)」で置換され表示されます。
URL
リンクが表示されます。
クリックで別タブでリンク先ページが表示されます。
メール
リンクが表示されます。
クリックでブラウザに設定されたメーラーが起動します。
電話番号
リンクが表示されます。
クリックでソフトフォンの起動が試みられます。
コンポーネント「CLS Search Condition」、「CLS Search Result」を任意のLightningページ(アプリケーションページ・ホームページ・レコードページ)に配置します。

設定項目
Setting Recode Name
カスタムオブジェクト「検索設定(Search Setting)」に設定されたレコードから1つ選択します。

設定項目
Setting Recode Name
カスタムオブジェクト「検索設定(Search Setting)」に設定されたレコードから1つ選択します。
Base Filter
検索条件に加えて対象レコードを絞り込むためのフィルタ式を指定します。
設定にはSOQLの知識が必要です。誤った設定を行った場合、検索結果が取得できない、あるいは検索処理時にエラーが発生します。
本機能は以下のオブジェクトに対し利用できます。
| ラベル | API参照名 |
|---|---|
| 取引先 | Account |
| 取引先責任者 | Contact |
| リード | Lead |
| ケース | Case |
| 商品 | Product2 |
| 商談 | Opportunity |
| 商談商品 | OpportunityLineItem |
| 注文 | Order |
| 注文商品 | OrderItem |
| 契約 | Contract |
| 資産 | Asset |
| TODO | Task |
| 行動 | Event |
| カスタムオブジェクト |
汎用検索コンポーネントを使用するユーザには検索設定(CLS_ObjSearch__ SearchConfig __c)オブジェクトとそのすべての項目を参照できる必要があります。
権限セット「CLS_ObjectSearchUser」を使用してユーザに必要な権限を付与することができます。
また、対象オブジェクト及びその表示項目に対する参照アクセス権も必要です。
対象オブジェクトへの参照権限がない場合、検索を実行しても検索結果は0件となります。
対象オブジェクトに対して権限があっても、表示項目の全部あるいは一部に対して参照権がない場合、検索実行時にエラーが表示されます。
検索設定の編集には対象オブジェクトへの参照権限は必要ありません。検索設定(CLS_ObjSearch__ SearchConfig __c)オブジェクトへの編集権限のみが必要となります。
対象オブジェクトに対して作成権限がない場合「新規」ボタンは表示されません。編集権限がない場合「編集」ボタンが表示されません。削除権限がない場合、「削除」ボタンは表示されません。
対象オブジェクトが非公開の場合、検索ユーザが参照できるレコードのみ表示されます。
非公開オブジェクトに対して「すべて表示」権限を持っているけれども「すべて編集」権限がない場合、自身が編集できないレコードに対して「編集」ボタンを押下すると、ダイアログは表示されますが、アクセス権がない旨のエラーが表示されます。
Lightningコンポーネントはインストール組織で作成されたカスタムLightning Aura コンポーネントから利用することができます。
Lightning Aura コンポーネントから使用する場合、以下のように「CLS_ObjSearch:SearchResult」タグを使用します。
利用例:
xxxxxxxxxx<aura:component implements="flexipage:availableForAllPageTypes"><CLS_ObjSearch:SearchResult aura:id="search_component" setting_name="Sample" recordId="0015h000001uxBnAAI"/></aura:component>
※2021年1月現在、SFDCの仕様により、カスタムLightning Web Componentから管理パッケージ内のLightningコンポーネントへのアクセスは許可されていません。
指定できる属性を以下に提示します。
| 属性 | データ型 | |
|---|---|---|
| setting_name | String | (必須)検索設定で「ユニーク名(DeveloperName__c)」として設定した値 |
| recordId | String | 検索設定で「親項目(ParentField__c)」を指定した場合、この値で絞り込む |
| base_filter | String | 検索設定に追加する条件を指定(指定文字列がANDで末尾に追加されます) |
コンポーネントには以下のアクションが用意されています。
| アクション | |
|---|---|
| reload | 再検索を実行します。再読込ボタン押下時と同じ挙動になります |
利用例:
xcomponent.set("v.recordId", recordId);var search_component = component.find("search_component")search_component.reload();
レコードが選択された場合、AuraEvent「CLS_ObjSearch:SelectRecordEvent」が発行されます。
このEventをハンドリングし、選択されたレコードを利用した処理を記述できます。
以下は同一ページに配置された検索設定「parent_list」を使用した検索結果コンポーネントの選択状況をハンドリングし、関連する子レコードを表示するものです。
Sample.cmp
x<aura:component implements="flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId,lightning:isUrlAddressable" ><aura:attribute name="selectedId" type="String"/><!-- Event Handler --><aura:handler event="CLS_ObjSearch:SelectRecordEvent" action="{!c.handleEvent}"/><CLS_ObjSearch:SearchResult aura:id="result_component" setting_name="child_list" recordId="{!v.selectedId}"/></aura:component>
SampleController.js
xxxxxxxxxx({handleEvent : function(component, event, helper) {if (event.getParam("settingName") == "parent_list") {var selectedRows = event.getParam("selectedRows");if (selectedRows.length > 0) {component.set("v.selectedId", selectedRows[0].id);} else {component.set("v.selectedId", null);}var result_component = component.find("result_component")result_component.reload();}}})