Сценарий 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 ответ
При дальнейшем изучении выяснилось, что вышеуказанный скрипт не работает для неуправляемого пакета. Используя приведенный выше скрипт, мы можем удалить управляемый пакет. Предполагается, что пространство имен пакета указывается в качестве параметра имени. Поскольку неуправляемый пакет не имеет пространства имен, мы не сможем удалить неуправляемый пакет.