No Results
Search Tips:
- Please consider misspellings
- Try different search keywords
Newer Version Available
動的 SOSL
動的 SOSL は、Apex コードを使用して、実行時に SOSL 文字列の作成を参照します。動的 SOSL によって、さらに柔軟なアプリケーションの作成が可能になります。たとえば、エンドユーザの入力に基づいた検索を作成したり、さまざまな項目名のレコードを更新したりできます。
実行時に動的 SOSL クエリを作成するには、search query メソッドを使用します。以下に例を示します。
次の例では、単純な SOSL クエリ文字列を実行しています。
動的 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 メソッドを使用します。このメソッドは、ユーザから渡される文字列のすべての単一引用符にエスケープ文字 (\) を追加します。このメソッドにより、すべての単一引用符を、データベースコマンドではなく、囲まれた文字列として処理します。