こんにちは、ロジカル・アーツの石山です。 最近見つけた便利なメソッドがありましたので、 Apexで取得したい項目の項目名を動的に変更する方法についてと題して ご紹介します。
Apexとは
Salesforceのサーバで動作するプログラミング言語になります。 型付けされたオブジェクト指向言語で、基本的にはJavaに非常によく似ている文法構造をしています。 Apexの基本的な概要については開発者ガイドに記載されておりますので、是非ご確認下さい。
紹介するsObjectメソッド
今回は、sObjectクラスのsObjectメソッドの一つの概要と簡単な応用例についてご紹介します。
sObjectメソッド:get(fieldName)メソッドについて
get(fieldName)メソッドはAccountNumber など、fieldName で指定された項目の値を返します。 例:AccountオブジェクトのNameフィールドの値を取得する場合 ※使い方は一例になります。
String accName = Account.get('Name');
動的に取得する際の簡易応用例
オブジェクト内に、数値項目でtest1,test2,test3.... の様に 数値のみ異なる項目名が複数あった場合、それらの項目の値を合算する場合以下の方法があります。 (カスタム項目の場合は”__c”まで入力する必要があります。) ※応用としての使い方一例となります。
// N は任意の数値とします。 String testCount = null; Integer sum = 0; for(i = 0; i < N ; i++){ testCount = 'test'+ i +'__c'; // ここでString型の変数に'testN__c'となるように格納 sum += (Integer)sObject.get(testCount); // 対象の項目名の値をsumに合算 }
注意点
変数へデータを格納する際に、戻り値がObject型の為キャストをする必要がありますので、お気を付けください。
最後に
今回ご紹介したい内容は以上となります。 いかがでしたでしょうか。 今回ご紹介した内容が、読者様の助けとなれば幸いです。 他にも開発者ガイドには多くのメソッドが一覧として記載されておりますので、 是非ご確認してみてください。