Непонятнки с FLS.

Непонятнки с FLS.

Привет.
Уже какой день не могу понять где же я "напетлял" с FLS Update, и решил обратиться к людям знающим.
В общем, пришел вот такой результат (в скрине по ссылке):

[img]
https://drive.google.com/file/d/1i6d2fG6V9fIsnD-ASMy1RZPweePqMkTQ/view?usp=sharing
[/img]

а собственно сам код...

@RemoteAction

public static void CtrlDelFld() {
Set<String> LeadFieldName = new Set<String>();
Map<String, Schema.SObjectField> M = Schema.SObjectType.Lead.fields.getMap();
List<Schema.SObjectField> resultList = M.values();
for (Schema.SObjectField Field_name : resultList) {
Schema.DescribeFieldResult f = M.get(Field_name.getDescribe().getName()).getDescribe();
if (f.getType() != Schema.DisplayType.ID
&& f.getType() != Schema.DisplayType.DATETIME
&& f.getType() != Schema.DisplayType.REFERENCE
&& f.getType() != Schema.DisplayType.DATE
&& !f.getLabel().startsWith('SUP')
) {
LeadFieldName.add(f.getName());
}
}
List<LS_Field_value__c> AllSelectedField_values = new List<LS_Field_value__c>();
AllSelectedField_values = [
SELECT Id, API_Name__c,isActive__c,DType__c
FROM LS_Field_value__c
WHERE isActive__c = TRUE AND DType__c != 'Campaign' AND DType__c != 'ABC'AND DType__c != 'CMN'AND DType__c != 'CML'
];
if (Schema.SObjectType.LS_Field_value__c.isAccessible() &&
Schema.SObjectType.LS_Field_value__c.isCreateable() &&
Schema.SObjectType.LS_Field_value__c.isUpdateable() &&
Schema.SObjectType.LS_Field_value__c.fields.API_Name__c.isAccessible() &&
Schema.SObjectType.LS_Field_value__c.fields.isActive__c.isCreateable() &&
Schema.SObjectType.LS_Field_value__c.fields.isActive__c.isUpdateable()) {
for (LS_Field_value__c LS_fv_ctrl : AllSelectedField_values) {
if (!LeadFieldName.contains(LS_fv_ctrl.API_Name__c)) {
LS_fv_ctrl.isActive__c = false;
}
}
}
if (AllSelectedField_values.size() > 0) {
if (AllSelectedField_values.getSObjectType().getDescribe().isUpdateable()) {
update AllSelectedField_values;
}
}
Correct_PL_Val();
SpinnerRuner();
}

Поделитесь мнением, где что я упустил.
Заранее спасибо.

Спасибо, вопрос закрыт.

А почему бы не написать решение которое нашлось? Мало ли кто-нибудь такой как вы через пару лет столкнется с такой же проблемой, наткнется на эту тему и все что увидит - вопрос закрыт. Наши иностранные коллеги на stackoverflow наоборот считают за благо задать вопрос и самому на него ответить.

Interesting information? Help us, post link to social media..