Apex Schema メソッドを使ってsObjectを記述するサンプル

環境
Salesforce

概要
Account 標準オブジェクトと Merchandise__c カスタムオブジェクトの 2 つの sObject 型の
Describe メタデータ情報を取得します。各 sObject の Describe Result を取得したら、
sObject 表示ラベル、項目数、カスタムオブジェクトであるかどうか、
子リレーションの数などの返された情報をデバッグ出力に書き込みます。

使用例

// sObject 表示
String[] types = new String[]{'Account','Merchandise__c'};

// describeSObjectsを呼び出す
Schema.DescribeSobjectResult[] results = Schema.describeSObjects(types);

System.debug('結果情報: ' + results.size() + ' sObjects.');

// 結果の情報を取得
for(Schema.DescribeSobjectResult res : results) {
    System.debug('sObject ラベル: ' + res.getLabel());
    System.debug('フィールドの数: ' + res.fields.getMap().size());
    System.debug(res.isCustom() ? 'カスタマイズオブジェクト.' : '標準オブジェクト.');
    // 子関係を取得
    Schema.ChildRelationship[] rels = res.getChildRelationships();
    if (rels.size() > 0) {
        System.debug(res.getName() + ' has ' + rels.size() + '子関係.');
    }
}

 

IT

Posted by arkgame