簡體   English   中英

卸載非托管程序包的Apex腳本引發INSUFFICIENT_ACCESS:訪問權限錯誤

[英]Apex script to uninstall an unmanaged package throws INSUFFICIENT_ACCESS: insufficient access rights error

我試圖在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 = '

我嘗試搜索所有可能的解決方案,但都指出在處理此腳本的配置文件上啟用了“ 全部修改”權限 ,是的,我正在使用sys管理員配置文件來運行此腳本並啟用了該權限。

我嘗試使用連接的應用程序獲取會話ID,但同樣也無法解決問題。

有人可以幫我解決這個問題嗎?

在進一步研究中發現,上述腳本不適用於非托管程序包。 使用上述腳本,我們可以卸載托管軟件包。 我們應該將軟件包的名稱空間作為name參數。由於非托管軟件包沒有名稱空間,因此我們將無法卸載非托管軟件包。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM