function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
병훈 송병훈 송 

How to get SObject Name of Master-Detail Field?

I develop Apex Code, is Create Field.
That made by Metadata API..

A Object and B Object must have Only one master-detail Field, right?

I created Master(A)-Detail(B) Field in B Object. and

When I create Master-Detail Field, I want know Master-detail Field related to A Object.

How to get Master SObject Name of Master-Detail Field?
 
Map<String, Schema.SObjectField> fieldMap = Schema.getGlobalDescribe().get('B__c').getDescribe().fields.getMap();
            for(Schema.SObjectField f : fieldMap.values()) {
                System.debug(f.getDescribe());
            }

I was execute code.
But I can't find Object A Name....
 
Best Answer chosen by 병훈 송
AshishkAshishk
Try below  code :-
Map<String, Schema.SObjectField> fieldMap = Schema.getGlobalDescribe().get('B__c').getDescribe().fields.getMap();


Schema.DescribeFieldResult f = fieldMap.get(fieldName).getDescribe();

for(Schema.SObjectType ref: f.getReferenceTo()) {
    System.debug(ref.getDescribe().getName());
    System.debug(ref.getDescribe().getLabel());
}

 

All Answers

AshishkAshishk
Try below  code :-
Map<String, Schema.SObjectField> fieldMap = Schema.getGlobalDescribe().get('B__c').getDescribe().fields.getMap();


Schema.DescribeFieldResult f = fieldMap.get(fieldName).getDescribe();

for(Schema.SObjectType ref: f.getReferenceTo()) {
    System.debug(ref.getDescribe().getName());
    System.debug(ref.getDescribe().getLabel());
}

 
This was selected as the best answer
병훈 송병훈 송
Ashishk! Awesome!
Thank you very much!

That is perfect Answer, Best of Best!
Ajay K DubediAjay K Dubedi
Hi,

Below Code can fulfill your requirements. Hope this will work for you.
Map<String, SObjectField> fieldMap = Lead.getSObjectType().getDescribe().fields.getMap();
for(String fieldName : fieldMap.keySet()){
    SObjectField field = fieldMap.get(fieldName);
    System.debug(field);

}

Please mark this as best answer if this solves your problem.

Thank you,
Ajay Dubedi