Я пытаюсь изменить видимость любой вкладки в конкретном профиле c. Используя приведенный ниже код.
public void SetTabHidden(String ProfileName, String TabName){
try {
// Query for the ID of the tab setting for the Account tab on the Standard User profile
List<Id> TabHiddenIds = new List<Id> ();
for (PermissionSetTabSetting tab : [
SELECT Id FROM PermissionSetTabSetting WHERE Parent.Profile.Name = :ProfileName AND Name = :TabName]){
TabHiddenIds.add(tab.Id);
}
if (TabHiddenIds.size() > 0) {
// Delete the tab setting
Database.DeleteResult[] deleteResults = Database.delete(TabHiddenIds);
for (Database.DeleteResult deleteResult : deleteResults) {
if (deleteResult.isSuccess()) {
System.debug('Successfully deleted the tab setting.');
System.debug('ID: ' + deleteResult.getId());
} else {
Database.Error error = deleteResult.getErrors()[0];
System.debug('Failed to delete the tab setting.');
System.debug('Status code: ' + error.getStatusCode());
System.debug('Message: ' + error.getMessage());
}
}
} else {
System.debug('Failed to find the ID of the tab setting.');
}
} catch (DMLException ce) {
System.debug(ce.getMessage());
}
}
SetTabHidden('Read Only', 'standard-Account');
Теперь я получаю сообщение об ошибке
DML not allowed on PermissionSetTabSetting
Интересно, почему, если в документации Salesforce сказано, что это возможно.