我正在尝试在 apex 中编写一个简单的脚本来处理非托管包的卸载。代码如下
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:交叉引用 id faultcode=sf:INSUFFICIENT_ACCESS faultactor= 的访问权限不足”
我尝试搜索所有可能的解决方案,但都指出在处理此脚本的配置文件上启用了修改所有权限,是的,我正在使用系统管理员配置文件来运行此脚本并启用了权限。
我尝试使用连接的应用程序来获取会话 id,但同样也没有解决问题。
有人可以帮我解决这个问题吗?