2017-11-21 2 views
0

Ich versuche, ein einfaches Skript in Apex zu schreiben, um die Deinstallation eines nicht verwalteten Pakets zu behandeln. Der Code ist alsApex-Skript zum Deinstallieren eines nicht verwalteten Pakets löst INSUFFICIENT_ACCESS aus: unzureichende Zugriffsrechte Fehler

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; 
} 

folgt Wenn ich dieses Skript, das ich die folgende Fehlermeldung führen 'INSUFFICIENT_ACCESS: unzureichende Zugriffsrechte auf Querverweis id faultcode = sf: INSUFFICIENT_ACCESS faultactor ='

Ich habe versucht, nach allen möglichen Lösungen zu suchen, aber alle darauf hingewiesen, die Alle Berechtigung ändern aktiviert auf das Profil, das dieses Skript behandelt, Und ja, ich bin u Singen Sie ein sys-Admin-Profil, um dieses Skript auszuführen, und die Berechtigung ist aktiviert.

Ich versuchte, eine verbundene Anwendung zu verwenden, um die Sitzungs-ID zu erhalten, aber auch das Problem wurde nicht behoben.

Könnte jemand bitte mir helfen, dies zu lösen?

Antwort

0

Bei weiterer Untersuchung festgestellt, dass das oben genannte Skript nicht für ein nicht verwaltetes Paket funktioniert. Mit dem obigen Skript können wir ein verwaltetes Paket deinstallieren. Wir sollten den Namespace des Pakets als den Namensparameter geben Da nicht verwaltetes Paket keinen Namespace hat, können wir ein nicht verwaltetes Paket nicht deinstallieren.

Verwandte Themen