ipex

Salesforceの情報や趣味(ゲーム等)についてフリーに

ユーザの有効なレコードタイプを判別するisAvailable()

レコードタイプ選択画面を自前で作成する場合、
もしくはレコードタイプの選択リストを生成する場合。

Schema.RecordTypeInfoを使うのですが、
Schemaで取得すると全部のレコードタイプが取れてしまうので、isAvailable()を使って制御してあげます。

ユーザの見える or 見えないレコードタイプを判別して、リストに詰め直すことができます。

Schema.DescribeSObjectResult objectDescribe = Event.SObjectType.getDescribe();
List<Schema.RecordTypeInfo> objectRTInfoList = objectDescribe.getRecordTypeInfos();

// 見える
List<Schema.RecordTypeInfo> availableTrueList = new List<Schema.RecordTypeInfo>();
// 見えない
List<Schema.RecordTypeInfo> availableFalseList = new List<Schema.RecordTypeInfo>();

Integer objectRTInfoListSize = objectRTInfoList.size();

for(Integer i=0; i<objectRTInfoListSize; i++){
 if(objectRTInfoList[i].isAvailable()){
  availableTrueList.add(objectRTInfoList[i]);
 }else{
  availableFalseList.add(objectRTInfoList[i]);
 }
}