自分用の備忘録(*'ω'*)
オブジェクトのAPI名でSObjectTypeを取得
Schema.SObjectType sObjectType = Schema.getGlobalDescribe().get('hogehoge');
SObjectTypeのインスタンスでSObjectFieldを取得
Map<String, Schema.SObjectField> sObjectFieldMap = sObjectType.getDescribe().fields.getMap();
任意のオブジェクトの任意のデータ型の項目API名を取得
取引先の電話型項目を取得する例
// オブジェクトの取得
Schema.SObjectType sObjectType = Schema.getGlobalDescribe().get('Account');
// 項目の取得
Map<String, Schema.SObjectField> sObjectFieldMap = sObjectType.getDescribe().fields.getMap();
// 電話型の項目の取得
List<String> phoneFieldList = new List<String>();
for (Schema.SObjectField field : sObjectFieldMap.values()) {
if(field.getDescribe().getType() == Schema.DisplayType.Phone){
phoneFieldList.add(field.getDescribe().getName());
}
}
※DisplayType 列挙でデータ型を指定します
参考
SObjectType
SObjectField