How
to get all the required fields of sObject dynamically
There is no direct property
available in Apex dynamic API to represent the required field. However there is
another way to know about it.
If any field have below three
properties then it is mandatory field.
If it is Creatable
If it is not nillable and
If it does not have any
default value
Map<String, Schema.SObjectType>
m = Schema.getGlobalDescribe() ;
Schema.SObjectType s =
m.get(so.apiName) ;
Schema.DescribeSObjectResult
r = s.getDescribe() ;
Map<String,Schema.SObjectField>
fields = r.fields.getMap() ;
for(String f :
fields.keyset())
{
Schema.DescribeFieldResult desribeResult =
fields.get(f).getDescribe();
if( desribeResult.isCreateable() && !desribeResult.isNillable()
&& !desribeResult.isDefaultedOnCreate() )
{
//This is mandatory /
required field
}
}
No comments:
Post a Comment