【Salesforce】子リレーションの情報を取得する

【Salesforce】子リレーションの情報を取得する

SalesforceのApexコードでSObjectの情報を取得する際に、getDescribe()というメソッドを使いますね。

それに関連して、子リレーションの情報も取得することができるようなのでメモです。

ChildRelationshipクラスを使用するそうです。

https://developer.salesforce.com/docs/atlas.ja-jp.206.0.apexcode.meta/apexcode/apex_class_Schema_ChildRelationship.htm

取引先の子リレーションを取得してみます。

for(ChildRelationship cr : SObjectType.Account.getChildRelationships()){
    
    system.debug('【ログ】' + cr);
}

たくさん出てきました。

画像には表示しきれていませんが、この下にもまだまだあります。

ChildRelationship

getChildSObject()が子のオブジェクト名で、getRelationshipName()が子リレーション名ですね。

分かりやすく取引先責任者を見てみます。

getChildSObject=Contact;
getField=AccountId;
getJunctionIdListNames=();
getRelationshipName=Contacts;
isCascadeDelete=true;
isDeprecatedAndHidden=false;
isRestrictedDelete=false;

普段はあまり確認しないオブジェクトへの参照もありますね。

取引先の共有オブジェクトなんかも取得できます。

getChildSObject=AccountShare;
getField=AccountId;
getJunctionIdListNames=();
getRelationshipName=Shares;
isCascadeDelete=true;
isDeprecatedAndHidden=false;
isRestrictedDelete=false;

共有オブジェクトの子リレーションはSharesという名前なんですね。

初めて知りました。

私の開発者環境での結果なので環境によって差はあります。

ご注意ください。

自分の持っているSalesforceの環境で色々試してみると面白いです。

No comments.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です