Skip to content

Instantly share code, notes, and snippets.

@derekdanderson
Last active December 14, 2016 23:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save derekdanderson/40ccc11ac0b1de94d7b45fe63c3cee21 to your computer and use it in GitHub Desktop.
Save derekdanderson/40ccc11ac0b1de94d7b45fe63c3cee21 to your computer and use it in GitHub Desktop.
List<List<String>> allQueues = new List<List<String>>{
new List<String>{'DDA Test 1','DDA_Test_1'},
new List<String>{'DDA Test 2','DDA_Test_2'}
};
List<Group> newQueues = new List<Group>();
List<QueueSObject> newQueueObjs = new List<QueueSObject>();
List<Group> newGroups = new List<Group>();
List<GroupMember> newMembers = new List<GroupMember>();
Map<String,Group> mapQueues = new Map<String,Group>();
//Create Queues
Group q;
QueueSObject qo;
for(List<String> qName : allQueues){
q = new Group();
q.Type = ‘Queue’;
q.Name = qName[0];
q.DeveloperName = qName[1];
newQueues.add(q);
q = null;
}
insert newQueues;
for(Group thisQ : newQueues){
//Associate Object to Queue
qo = new QueueSObject();
qo.SobjectType = 'Case';
qo.QueueId = thisQ.Id;
newQueueObjs.add(qo);
qo = null;
}
insert newQueueObjs;
//Create Groups
Group g;
GroupMember gm;
for (Group thisQueue : newQueues){
g = new Group();
g.Type = 'Regular';
g.Name = thisQueue.Name;
g.DeveloperName = thisQueue.DeveloperName;
newGroups.add(g);
mapQueues.put(thisQueue.Name,thisQueue);
g = null;
}
insert newGroups;
for(Group thisGroup : newGroups){
//Add Group to Queue
gm = new GroupMember();
gm.UserOrGroupId = thisGroup.Id;
gm.GroupId = mapQueues.get(thisGroup.Name).Id;
newMembers.add(gm);
gm = null;
}
insert newMembers;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment