Custom Settings очень похожи на обычные объекты базы данных и позволяют создавать различные наборы данных и привязывать эти наборы к оргу, профилю или отдельному пользователю. Все custom settings находятся в кеше приложения, поэтому получить к ним доступ можно без использования запроса к базе данных (не тратятся лимиты).
Взято из блога Дмитрия
https://salesforce-developer.ru/hranim-v-salesforce-nastroyki-dlya-prilozheniya
Хотелось бы задать несколько вопросов:
Является ли CustomSettings sObject-ом? Можно ли сказать что CustomSetting - это обычный sObject + плюшки.
То есть у него есть свои методы, они находятся в кеше и получить их можно вызвав MyCustomSetting__c.getAll()
- если это List Settings.
И тем не менее нам можно писать SOQL запросы с CustomSettings и в целом обращаться с ним как с обычным sObject-ом?
Использовать DML операции и т.д?
[quote]Для хранения настроек можно использовать базу данных (создать специальный объект и создавать записи с определенными параметрами), но в Salesforce о нас уже позаботились и предоставили удобный инструмент Custom Settings (Setup->Develop->Custom Settings). Custom Settings очень похожи на обычные объекты базы данных и позволяют создавать различные наборы данных и привязывать эти наборы к оргу, профилю или отдельному пользователю. Все custom settings находятся в кеше приложения, поэтому получить к ним доступ можно без использования запроса к базе данных (не тратятся лимиты).[/quote] Взято из блога Дмитрия https://salesforce-developer.ru/hranim-v-salesforce-nastroyki-dlya-prilozheniya Хотелось бы задать несколько вопросов: Является ли CustomSettings sObject-ом? Можно ли сказать что CustomSetting - это обычный sObject + плюшки. То есть у него есть свои методы, они находятся в кеше и получить их можно вызвав MyCustomSetting__c.getAll() - если это List Settings. И тем не менее нам можно писать SOQL запросы с CustomSettings и в целом обращаться с ним как с обычным sObject-ом? Использовать DML операции и т.д?
Скорее - плюшки.
Все остальное верно.
[quote="Michael"]Является ли CustomSettings sObject-ом? Можно ли сказать что CustomSetting - это обычный sObject + плюшки.[/quote] Скорее - плюшки. Все остальное верно.
Может с виду он как и sObject - технологии хранения и медоды работы похожи.
Но предназначение разное. Поэтому не вижу смысла в данном вопросе.
Если только не хочется поиздеваться над SF и проверить свои силы в нестандартном программировании.
Может с виду он как и sObject - технологии хранения и медоды работы похожи. Но предназначение разное. Поэтому не вижу смысла в данном вопросе. Если только не хочется поиздеваться над SF и проверить свои силы в нестандартном программировании.
Чего мудрствовать лукаво:
Custom_Setting__c setting = Custom_Setting__c.getAll().values().get(0);
System.debug(System.LoggingLevel.ERROR, ((Object) setting) instanceof SObject);//true
System.debug(System.LoggingLevel.ERROR, setting instanceof SObject);//Operation instanceof is always true since an instance of Custom_Setting__c is always an instance of SObject
По большому счёту - "is a SObject" может и нет, "kind of SObject" - однозначно да.
Чего мудрствовать лукаво: [code] Custom_Setting__c setting = Custom_Setting__c.getAll().values().get(0); System.debug(System.LoggingLevel.ERROR, ((Object) setting) instanceof SObject);//true System.debug(System.LoggingLevel.ERROR, setting instanceof SObject);//Operation instanceof is always true since an instance of Custom_Setting__c is always an instance of SObject [/code] По большому счёту - "is a SObject" может и нет, "kind of SObject" - однозначно да.