2012-03-10

Force.com : Apex で公開グループを削除したい


やっぱり、 Apex で公開グループを作成したら
Apex で公開グループを削除したい



○ 公開グループを削除したい


■ Trigger (API version 12.0)
trigger AccountTrigger on Account (after insert, after delete) {
    if(Trigger.isInsert) {
        
        Account[] accounts = Trigger.new;
    
        List<Group> groups = new List<Group>();
        for(Account account : accounts) {
            Group g = new Group();
            g.Type = 'Regular';                    // タイプ:公開グループ
            g.Name = account.Name;                 // グループ名
            groups.add(g);
        }
        insert groups;

    } else if(Trigger.isDelete) {

        Account[] accounts = Trigger.old;

        // ※ 公開グループでレコードの共有を行っている場合は、その共有を削除する必要がある ※

        Set<String> names= new Set<String>();
        for(Account account : accounts) {
            names.add(account.Name);
        }
        List<Group> groups = [SELECT Id FROM Group WHERE Name IN : names];
        if(groups.size() > 0) {
            delete groups;
        }

    }
}
※ Group の delete は API Version 12.0 以前で可能 ... ぽい!?
※ 公開グループでレコードの共有を行っている場合は、その共有を削除する必要がある
※ 公開グループにメンバーが存在しても関係なし(多分、主従関係なんだろう@適当)



◆ メモ

で Group の delete に関する記述が違う気がする ...

「Apex で公開グループを削除したい」なんで思わないが吉!



◇ 環境

  • Salesforce - Developer Edition - API バージョン 24.0



◇ 参考


0 件のコメント:

コメントを投稿