【Salesforce】条件分岐で動的SOQLを作成してみよう!
4431 ワード
動的SOQLとは?
動的 SOQL は、Apex コードを使用して、実行時に SOQL 文字列の作成を参照します。動的 SOQL によって、さらに柔軟なアプリケーションの作成が可能になります。たとえば、エンドユーザの入力に基づいた検索を作成したり、さまざまな項目名のレコードを更新したりできます。
動的 SOQL
テストデータ
動的 SOQL は、Apex コードを使用して、実行時に SOQL 文字列の作成を参照します。動的 SOQL によって、さらに柔軟なアプリケーションの作成が可能になります。たとえば、エンドユーザの入力に基づいた検索を作成したり、さまざまな項目名のレコードを更新したりできます。
動的 SOQL
「Warm」が3件、「Hot」が2件、「Cold」が2件で全部で7件存在する状態。
テストコード
test.cls
// パラメータから取得してきた値から条件分岐することを想定
String flag = '1';
String selectPart = 'SELECT Id, Name, Rating ';
String fromPart = 'FROM Account ';
String wherePart = 'WHERE ';
if(flag == '1'){
wherePart += 'Rating = \'' + 'Hot' + '\'';
}else{
wherePart += 'Rating = \'' + 'Cold' + '\'';
}
String soql = selectPart + fromPart + wherePart;
System.Debug('★★ 変数 soql : ' + soql);
List<Account> accList = Database.query(soql);
for(Account acc : accList){
System.Debug('★★ 変数 acc : ' + acc);
}
実行結果
test.cls
// パラメータから取得してきた値から条件分岐することを想定
String flag = '1';
String selectPart = 'SELECT Id, Name, Rating ';
String fromPart = 'FROM Account ';
String wherePart = 'WHERE ';
if(flag == '1'){
wherePart += 'Rating = \'' + 'Hot' + '\'';
}else{
wherePart += 'Rating = \'' + 'Cold' + '\'';
}
String soql = selectPart + fromPart + wherePart;
System.Debug('★★ 変数 soql : ' + soql);
List<Account> accList = Database.query(soql);
for(Account acc : accList){
System.Debug('★★ 変数 acc : ' + acc);
}
Author And Source
この問題について(【Salesforce】条件分岐で動的SOQLを作成してみよう!), 我々は、より多くの情報をここで見つけました https://qiita.com/RyoheiKobayashi/items/4a1b87a50bedb3644c41著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .