【Salesforce】子リレーションの情報を取得する
SalesforceのApexコードでSObjectの情報を取得する際に、getDescribe()というメソッドを使いますね。
それに関連して、子リレーションの情報も取得することができるようなのでメモです。
ChildRelationshipクラスを使用するそうです。
取引先の子リレーションを取得してみます。
for(ChildRelationship cr : SObjectType.Account.getChildRelationships()){ system.debug('【ログ】' + cr); }
たくさん出てきました。
画像には表示しきれていませんが、この下にもまだまだあります。
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.