Bem, diante dessa situação, me restou inserir o novo usuário, Membro do Time da Oportunidade e remover o anterior. Fiz o código Apex para isso, porém esbarrei na situação das divisões da Oportunidade (apesar de não trabalhar com elas nessa Org, haviam divisões) e em situações em que o único participante do Time da Oportunidade era o próprio Owner da Oportunidade (que era o usuário que eu iria remover). Para resolver essas situações, criei um código que apaga o usuário antigo do Time da Oportunidade, apenas quando ele não fosse o Owner da Oportunidade. Veja:
List<opportunityteammember> oppTeam = [SELECT id, OpportunityId, Opportunity.OwnerId, UserId, TeamMemberRole FROM OpportunityTeamMember WHERE TeamMemberRole = 'Gerente de Canais']; List<opportunityteammember> oppTeamNew = new List<opportunityteammember>(); List<opportunityteammember> oppTeamOld = new List<opportunityteammember>(); for (OpportunityTeamMember otm : oppTeam){ OpportunityTeamMember otmNew = new OpportunityTeamMember(); otmNew.OpportunityId = otm.OpportunityId; otmNew.TeamMemberRole = otm.TeamMemberRole; otmNew.UserId = '00540000001AY11'; //ID do Novo Gerente de Canais oppTeamNew.add(otmNew); if (otm.UserId != otm.Opportunity.OwnerId) oppTeamOld.add(otm); } delete oppTeamOld; insert oppTeamNew;
No código acima, faço uma busca pelos Membros do Time da Oportunidade que possuam o papel "Gerente de Canais". Nas Oportunidade que possuierem esse papel, eu crio um novo Membro passando o ID e removo o ID antigo, caso ele não seja o Proprietário da Oportunidade.
Caso precise manipular também a divisão da Oportunidade, terá que incluir um tratamento no Objeto OpportunitySplit.
É isso por hoje...
* Precisa de um suporte ou consultoria para manipular os Membros do Time da Oportunidade em sua Org Salesforce? Entre em contato conosco - CbCloud: http://www.cbcloud.com.br/
Nenhum comentário:
Postar um comentário