Apex SObjectField クラスを使って対象オブジェクトのカスタム項目を取得する方法

環境
Salesforce

構文
1.endsWith(suffix)
メソッドをコールした string が suffix で終わる場合、true を返します。
suffix 型: String
戻り値 型: Boolean

2.SObjectField クラス
Schema.sObjectField オブジェクトは、getController および getSObjectField メソッドを使用して
Field Describe Result から返されます。

getDescribe()
この項目の Describe Field Result を返します。

3.fields
fields の後には項目メンバー変数名または getMap メソッドが続きます。
型: 戻り値は特殊なデータ型です。

操作例
1.カスタム項目取得メソッドの定義

public static List<String> getCustomNameList(Schema.SObjectType sObjectType) {

    //対象オブジェクトのカスタム項目を取得
    List<String> fieldList = new List<String>();
    
     //sObjectオブジェクトMapの宣言
    Map<String, Schema.sObjectField> sObMap = sObjectType.getDescribe().fields.getMap();
    
    //Mapの結果をループ
    for(String fieldName : sObMap.keySet()){
     
       //カスタム項目の最後文字列の判定
       if(fieldName.endswith('__c')) {
         //カスタム項目の追加
        fieldList.add(fieldName);
       }
    }
     return fieldList;
  }

2.使い方
クラス名.getCustomNameList(xxxx);

Apex

Posted by arkgame