この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

アンインストールスクリプトの例

以下のアンインストールスクリプトのサンプルは、パッケージのアンインストール時に次のアクションを実行します。 

  • アンインストールを行ったユーザと組織を示すエントリをフィードに挿入する
  • そのユーザにアンインストールを確認するメール通知を作成して送信する
1global class UninstallClass implements UninstallHandler {
2  global void onUninstall(UninstallContext ctx) {
3    FeedItem feedPost = new FeedItem();
4    feedPost.parentId = ctx.uninstallerID();
5    feedPost.body = 'Thank you for using our application!';
6    insert feedPost;
7
8    User u = [Select Id, Email from User where Id =:ctx.uninstallerID()];   
9    String toAddress= u.Email;
10    String[] toAddresses = new String[] {toAddress};
11    Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
12    mail.setToAddresses(toAddresses);
13    mail.setReplyTo('support@package.dev');
14    mail.setSenderDisplayName('My Package Support');
15    mail.setSubject('Package uninstall successful');
16    mail.setPlainTextBody('Thanks for uninstalling the package.');
17    Messaging.sendEmail(new Messaging.Email[] { mail });
18  }
19}

Test クラスの testUninstall メソッドを使って、アンインストールスクリプトをテストできます。このメソッドは、UninstallHandler インターフェースを実装するクラスを引数に取ります。

このサンプルでは、UninstallClass Apex クラスに実装されたアンインストールスクリプトのテスト方法を示します。
1@isTest
2static void testUninstallScript() {
3  Id UninstallerId = UserInfo.getUserId();
4  List<FeedItem> feedPostsBefore = 
5    [SELECT Id FROM FeedItem WHERE parentId=:UninstallerId AND CreatedDate=TODAY];
6  Test.testUninstall(new UninstallClass());
7  List<FeedItem> feedPostsAfter = 
8    [SELECT Id FROM FeedItem WHERE parentId=:UninstallerId AND CreatedDate=TODAY];
9  System.assertEquals(feedPostsBefore.size() + 1, feedPostsAfter.size(), 
10    'Post to uninstaller failed.');
11}