You need to sign in to do that
Don't have an account?
kiran punuru
Compare two OpportunityTeamMembers Profile
Hi All,
I am having one requirement like when 2 opportunity team member is added to a opportunity then if the profile of the opportunity team members are different then i need to set a field to true on opportunity object ,if both profiles are same then false.Any help will be greatly appreciated.
Thanks,
Kiran
I am having one requirement like when 2 opportunity team member is added to a opportunity then if the profile of the opportunity team members are different then i need to set a field to true on opportunity object ,if both profiles are same then false.Any help will be greatly appreciated.
Thanks,
Kiran
Please follow below steps:
1. Create after inter trigger on OpportunityTeamMember.
2. Create Map<Id, set<String>> mapOppIdWithProfileId;
Create set<Id> setOppIdToUpdate;
Create Map<Id, Id> mapUserWithProfileId;
3. Store OpportunityTeamMember.OpportunityId in set(setOppId).
Store OpportunityTeamMember.UserId in set(setUserId).
4.Query User whi Id=:setUserId and store in map with Profile
for(User objUser: [Select Id, ProfileId from User where Id=:setUserId])
{
mapUserWithProfileId.put(objUser.Id,objUser.ProfileId);
}
5. Query all OpportunityTeamMember with OpportunityId =:setOppId
for(OpportunityTeamMember objOppTeamMem: [Select Id,UserId,OpportunityId From OpportunityTeamMember where OpportunityId =: setOppId ] )
{
id idProfileId = '';
if(mapUserWithProfileId.contains(objOppTeamMem.UserId))
idProfileId = mapUserWithProfileId.get(objOppTeamMem.UserId);
if(mapOppIdWithProfileId.containsKey(objOppTeamMem.OpportunityId))
{
if(mapOppIdWithProfileId.get(objOppTeamMem.OpportunityId).contains(idProfileId))
setOppIdToUpdate.put(objOppTeamMem.OpportunityId)
else
mapOppIdWithProfileId.get(objOppTeamMem.OpportunityId).add(idProfileId)
}
else
{
mapOppIdWithProfileId.put(objOppTeamMem.OpportunityId, new set<Id>{idProfileId});
}
}
6. Iterate setOppIdToUpdate
if(!setOppIdToUpdate.isEmpty())
{
list<Opportunity> lstOppToUpdate = new List<Opportunity>();
for(Id idOpp : setOppIdToUpdate)
{
lstOppToUpdate.add(New Opportunity(Id=idOpp, fildToUpdate= false ));
}
if(!lstOppToUpdate.isEmpty())
update lstOppToUpdate;
}
Please follow above steps and let me know if you need more information or help on this.
Thanks,
Vedashri
You can impletment is using a trigger. Trigger can be written in opportunity team.
If you need a trigger let me know.
Thanks
Manoj S
If you mean to say opportunity team member role not profile, please take the following code as reference to achieve your requirement -
------------
Thanks,
Srinivas
- Please mark as solution if your problem is resolved.
Iam getting error at the below Bolded Lines can you please help me why its going wrong.
5. Query all OpportunityTeamMember with OpportunityId =:setOppId
for(OpportunityTeamMember objOppTeamMem: [Select Id,UserId,OpportunityId From OpportunityTeamMember where OpportunityId =: setOppId ] )
{
id idProfileId = '';
if(mapUserWithProfileId.contains(objOppTeamMem.UserId))
idProfileId = mapUserWithProfileId.get(objOppTeamMem.UserId);
if(mapOppIdWithProfileId.containsKey(objOppTeamMem.OpportunityId))
{
if(mapOppIdWithProfileId.get(objOppTeamMem.OpportunityId).contains(idProfileId))
setOppIdToUpdate.put(objOppTeamMem.OpportunityId)
else
mapOppIdWithProfileId.get(objOppTeamMem.OpportunityId).add(idProfileId)
}
else
{
mapOppIdWithProfileId.put(objOppTeamMem.OpportunityId, new set<Id>{idProfileId});
}
}
Thanks
Kiran