Регистрация  |  Вход

Получить список всех Createable полей

Доброго дня!
Надо в стринге получить список всех Createable полей объекта.
Получить список всех полей -

SObjectType sobjectType = Schema.getGlobalDescribe().get('SBQQ__QuoteLine__c');
Map<String,Schema.SObjectField> mfields = sobjectType.getDescribe().fields.getMap();

А узнать Createable ли поле можно так:
Schema.DescribeFieldResult dfr = SBQQ__QuoteLine__c.SBQQ__Quote__c.getDescribe();
dfr.isCreateable();

Можно и как то совместить эти методы?

Доброго дня!
Надо в стринге получить список всех Createable полей объекта.
Получить список всех полей - 
[code]
SObjectType sobjectType = Schema.getGlobalDescribe().get('SBQQ__QuoteLine__c');
Map<String,Schema.SObjectField> mfields = sobjectType.getDescribe().fields.getMap();
[/code]
А узнать Createable ли поле можно так:
[code]Schema.DescribeFieldResult dfr = SBQQ__QuoteLine__c.SBQQ__Quote__c.getDescribe();
dfr.isCreateable();[/code]

Можно и как то совместить эти методы?



Зачем?

Зачем?

wilder
Зачем?

Надо сделать полную копию записи но только с Createable полями.

Дмитрий Куруленко подсказал выход:

List<String> fieldNames = new List<String>();
SObjectType sobjectType = Schema.getGlobalDescribe().get(selectedObject);//(selectedObject);
Map<String,Schema.SObjectField> mfields = sobjectType.getDescribe().fields.getMap();

for (Schema.SObjectField f: mfields.Values())
{
Schema.DescribeFieldResult DescField = f.getDescribe();
if (DescField.isAccessible())
fieldNames.add(DescField.getName());
}

[quote="wilder"]Зачем?[/quote]
Надо сделать полную копию записи но только с Createable полями. 

Дмитрий Куруленко подсказал выход:
[code]List<String> fieldNames = new List<String>();
 SObjectType sobjectType = Schema.getGlobalDescribe().get(selectedObject);//(selectedObject);
            Map<String,Schema.SObjectField> mfields = sobjectType.getDescribe().fields.getMap();

            for (Schema.SObjectField f: mfields.Values())
            {
                Schema.DescribeFieldResult DescField = f.getDescribe();
                if (DescField.isAccessible())
                    fieldNames.add(DescField.getName());
            }[/code]