Сценарий Apex для удаления неуправляемого пакета выдает INSUFFICIENT_ACCESS: ошибка прав доступа недостаточна

Я пытаюсь написать простой скрипт на вершине, чтобы справиться с удалением неуправляемого пакета. Код выглядит следующим образом

 public static void uninstallPackage() {    
    String[] fullNames = new String[1];
    fullNames[0] = 'SomePackage';
    System.debug('fullNames -->'+fullNames);
    MetadataService.DeleteResult[] result = createService().deleteMetadata('InstalledPackage',fullNames);
}   
private static  MetadataService.MetadataPort createService() {
    MetadataService.MetadataPort service = new MetadataService.MetadataPort();
    service.SessionHeader = new MetadataService.SessionHeader_element();
    service.SessionHeader.sessionId = UserInfo.getSessionId();
    return service;
}

Когда я запускаю этот скрипт, я получаю следующую ошибку " INSUFFICIENT_ACCESS: недостаточные права доступа для идентификатора перекрестной ссылки код ошибки =sf:INSUFFICIENT_ACCESS faultactor= "

Я пытался найти все возможные решения, но все указали, что разрешение " Изменить все" включено в профиле, который обрабатывает этот сценарий. И да, я использую профиль администратора sys для запуска этого сценария, и разрешение включено.

Я попытался использовать подключенное приложение, чтобы получить идентификатор сеанса, но опять же это не помогло решить проблему.

Может ли кто-нибудь помочь мне решить эту проблему?

1 ответ

Решение

При дальнейшем изучении выяснилось, что вышеуказанный скрипт не работает для неуправляемого пакета. Используя приведенный выше скрипт, мы можем удалить управляемый пакет. Предполагается, что пространство имен пакета указывается в качестве параметра имени. Поскольку неуправляемый пакет не имеет пространства имен, мы не сможем удалить неуправляемый пакет.

Другие вопросы по тегам