本部長は管理ができない

Salesforceに関わっているエンジニアの技術メモ。ときどきそれ以外。

オブジェクトのAPI参照名を取得する

標準オブジェクトのSOQLを書こうとすると、あれ?API参照名何だっけ?となるので取得する処理を書いてみた。
標準オブジェクトと同名のカスタムオブジェクトを作成していた場合、カスタムオブジェクトが取得される可能性がある。まあ、そこはSchema#getGlobalDescribeの気まぐれなので・・・

public void getObjectApiName(String targetObjectName){
    Boolean fined = false;
    Map<String, Schema.SObjectType> gd = Schema.getGlobalDescribe();
    for (String sKey : gd.keySet()) {
        Schema.DescribeSObjectResult targetObject = gd.get(sKey).getDescribe();

        if(targetObject.getLabel() == targetObjectName){
            System.debug('★' + ' : '+ targetObjectName + ' -> ' + targetObject.getName());
            fined = true;
            break;
        }
    }
    if(!fined){
        System.debug('★' + ' : '+ targetObjectName + ' -> 不明');
    }
}