You need to sign in to do that
Don't have an account?
Jon Foy
Help With Trigger For Case Team...
I have the following trigger that adds a member to the case team, whenever a custom object "Case_Resource__c" is added to the Case. The only problem is, the Resource_Name__c on the Case_Resource__c is a lookup value of the Contact object. So when the Trigger creates a case team memeber, it is created as a Contact. I want it to be created as a User, or Partner User.
Is there a way to update this code so that the Case Team Memeber Added is for the UserId (or Name...not sure which one) that matches the Contact Name?
trigger CaseResource_CaseTeamMemberCreation on Case_Resource__c (after insert) {
CaseTeamRole role = [select Name from CaseTeamRole where Name = 'Team Member'];
List<CaseTeamMember> members = new List<CaseTeamMember>();
for (Case_Resource__c resource: Trigger.new) {
if (resource.Resource_Name__c != null && resource.Case__c != null) {
members.add(new CaseTeamMember(
ParentID = resource.Case__c,
MemberID = resource.Resource_Name__c,
TeamRoleID = role.Id
));
}
}
if (!members.isEmpty()) {
insert members;
}
}
Is there a way to update this code so that the Case Team Memeber Added is for the UserId (or Name...not sure which one) that matches the Contact Name?
trigger CaseResource_CaseTeamMemberCreation on Case_Resource__c (after insert) {
CaseTeamRole role = [select Name from CaseTeamRole where Name = 'Team Member'];
List<CaseTeamMember> members = new List<CaseTeamMember>();
for (Case_Resource__c resource: Trigger.new) {
if (resource.Resource_Name__c != null && resource.Case__c != null) {
members.add(new CaseTeamMember(
ParentID = resource.Case__c,
MemberID = resource.Resource_Name__c,
TeamRoleID = role.Id
));
}
}
if (!members.isEmpty()) {
insert members;
}
}
Set<Id> setContactIds = new Set<ID>();
for (Case_Resource__c resource: Trigger.new) {
if (resource.Resource_Name__c != null && resource.Case__c != null) {
members.add(new CaseTeamMember(
setContactIds.add( resource.Resource_Name__c);
));
}
}
// query all portal users having this contactid
Map<Id, User> mapContactIdToUser = new Map<Id, User>();
for( User u : [ Select Id, ContactId From User Where ContactId in: setContactIds]) {
mapContactIdToUser.put( u.ContactId, u );
}
for (Case_Resource__c resource: Trigger.new) {
if (resource.Resource_Name__c != null && resource.Case__c != null) {
members.add(new CaseTeamMember(
ParentID = resource.Case__c,
// assign user id is user exists for the contact
MemberID = mapContactIdToUser.containsKey(resource.Resource_Name__c) ? ( mapContactIdToUser.get(resource.Resource_Name__c) : resource.Resource_Name__c ),
TeamRoleID = role.Id
));
}
}
Let me know if you have issues.
members.add(new CaseTeamMember(
Error: SObject constructor must ue name=value pairs at line 8 column 25.
Any idea what that's about? Here the full code I have now:
trigger CaseResource_CaseTeamMemberCreation on Case_Resource__c (after insert) {
CaseTeamRole role = [select Name from CaseTeamRole where Name = 'Team Member'];
List<CaseTeamMember> members = new List<CaseTeamMember>();
Set<Id> setContactIds = new Set<ID>();
for (Case_Resource__c resource: Trigger.new) {
if (resource.Resource_Name__c != null && resource.Case__c != null) {
members.add(new CaseTeamMember(
setContactIds.add( resource.Resource_Name__c)));
}
}
// query all portal users having this contactid
Map<Id, User> mapContactIdToUser = new Map<Id, User>();
for( User u : [ Select Id, ContactId From User Where ContactId in: setContactIds]) {
mapContactIdToUser.put( u.ContactId, u );
}
for (Case_Resource__c resource: Trigger.new) {
if (resource.Resource_Name__c != null && resource.Case__c != null) {
members.add(new CaseTeamMember(
ParentID = resource.Case__c,
// assign user id is user exists for the contact
MemberID = mapContactIdToUser.containsKey(resource.Resource_Name__c) ? ( mapContactIdToUser.get(resource.Resource_Name__c)) : resource.Resource_Name__c ),
TeamRoleID = role.Id
);
}
}
}
setContactIds.add( resource.Resource_Name__c)));
You have to put Field and Value for the field for instance of CaseTeamMember . Like
members.add(new CaseTeamMember(
ParentID = resource.Case__c,
// assign user id is user exists for the contact
MemberID = mapContactIdToUser.containsKey(resource.Resource_Name__c) ? ( mapContactIdToUser.get(resource.Resource_Name__c) : resource.Resource_Name__c ),
TeamRoleID = role.Id
));