DML не допускается с PermissionSetTabSetting - PullRequest
0 голосов
/ 09 мая 2020

Я пытаюсь изменить видимость любой вкладки в конкретном профиле 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 сказано, что это возможно.

...