2012-03-10

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


Apex で公開グループを作成したい



○ 公開グループを作成したい

  • 取引先(Account)作成の際に、公開グループは下記の通り作成する
    • グループ名: 取引先名
    • API 参照名: 'g_' + 取引先ID

■ Trigger (API version 24.0)
trigger AccountTrigger on Account (after insert) {
    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;                 // グループ名
        g.DeveloperName = 'g_' + account.Id;   // API 参照名
        groups.add(g);
    }
    insert groups;
}
※ Group#DeveloperName は API version 24.0 以降より可能



○ 公開グループを作成し、メンバーに追加したい

  • メンバーは追加した取引先の所有者とする

■ Trigger (API version 24.0)
trigger AccountTrigger on Account (after insert) {
    Account[] accounts = Trigger.new;

    // Group 作成
    List<Group> groups = new List<Group>();
    for(Account account : accounts) {
        Group g = new Group();
        g.Type = 'Regular';                    // タイプ:公開グループ
        g.Name = account.Name;                 // グループ名
        g.DeveloperName = 'g_' + account.Id;   // API 参照名
        groups.add(g);
    }
    insert groups;

    // GroupMember 作成
    List<GroupMember> members = new List<GroupMember>();
    for(Account account : accounts) {
        GroupMember member = new GroupMember();
        for(Group g : groups){
            if(g.Name == account.Name) {
                member.GroupId = g.Id;
                break ;
            }
        }
        member.UserOrGroupId = account.OwnerId;
        members.add(member);
    }
    GroupMemberOperations.insertGroupMember(members);

}

■ ApexClass (API version 14.0)
public class GroupMemberOperations {

    public static void insertGroupMember(GroupMember member) {
        insert member;
    }

    public static void insertGroupMember(List<GroupMembe> members) {
        insert members;
    }

}
※ GroupMember の DML 操作は insert/update に限り、API Version 14.0 以前で可能



◇ 環境

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



◇ 参考


0 件のコメント:

コメントを投稿