No Results
Search Tips:
- Please consider misspellings
- Try different search keywords
Newer Version Available
動的 SOSL
動的 SOSL は、Apex コードを使用して、実行時に SOSL 文字列の作成を参照します。動的 SOSL によって、さらに柔軟なアプリケーションの作成が可能になります。たとえば、エンドユーザの入力に基づいた検索を作成したり、さまざまな項目��のレコードを更新したりできます。
実行時に動的 SOSL クエリを作成するには、search query メソッドを使用します。以下に例を示します。
1List<List <sObject>> myQuery = search.query(SOSL_search_string);次の例では、単純な SOSL クエリ文字列を実行しています。
1String searchquery='FIND\'Edge*\'IN ALL FIELDS RETURNING Account(id,name),Contact, Lead';
2List<List<SObject>>searchList=search.query(searchquery);動的 SOSL ステートメントは、sObject のリストを評価します。ここでは、各リストは特定の sObject データ型の検索結果を含みます。結果リストは常に、動的 SOSL クエリで指定された順序と同じ順序で返されます。上記の例では、Account の結果が最初、次に Contact、Lead と続きます。
通常の割り当てステートメントや for ループなど、インライン SOSL クエリが使用可能な場合はいつでも、search query メソッドを使用できます。結果は、静的 SOSL クエリの処理とほぼ同様の方法で処理されます。
動的 SOSL クエリには、静的クエリと同じガバナ制限があります。ガバナ制限についての詳細は、「実行ガバナと制限について」を参照してください。
SOSL クエリの構文の詳細は、『Force.com SOQL および SOSL リファレンス』の「Salesforce Object Search Language (SOSL)」を参照してください。
SOSL インジェクション
SOSL インジェクションとは、ユーザが SOSL ステートメントをあなたのコードに渡すことで、あなたのアプリケーションで意図していなかったデータベースメソッドを実行する手法です。動的 SOSL ステートメントを構築するためにアプリケーションがエンドユーザ入力に依存し、入力が適切に処理されなかった場合、常に Apex コードで発生する可能性があります。
SOSL インジェクションを防ぐには、escapeSingleQuotes メソッドを使用します。このメソッドは、ユーザから渡される文字列のすべての単一引用符にエスケープ文字 (\) を追加します。このメソッドにより、すべての単一引用符を、データベースコマンドではなく、囲まれた文字列として処理します。