function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
riShI9999riShI9999 

using picklist value change AccountTeamMember owner


how to achive this requirment? can anybody pls help.. 

Account: location(pick list custom field),if location is delhi add user_X as accountTeam member, bnglr add  user_Y as accountTeam member, 
chennai add user_Z as accountTeam member
other add K as accountTeam member...
Best Answer chosen by riShI9999
Prashant Pandey07Prashant Pandey07

Rishi,
You use below trigger to create the accountteamMember..  and make sure your Account sharing setting is private
 
trigger AccountTriggers on Account (Before insert,before update) {

set<id>ids=new set<id>();
for(Account a:trigger.new){

ids.add(a.id);

}

ID userAID = [select id from user where name='test'].ID;
ID userBID = [select id from user where name='Testign Tester'].ID;
String teamMemberRole = 'Account Manager';
String accountAccessLevel = 'Edit', opportunityAccessLevel = 'Edit', caseAccessLevel = 'None';
List<Account> accounts = [select id,type from account where id=:ids];
List<AccountTeamMember> members = new list<AccountTeamMember>();
List<AccountShare> sharingRules = new list<AccountShare>();

for(Account a : accounts) {
if(a.Location__c=='Delhi'){
    members.add(New AccountTeamMember(AccountId = a.id, TeamMemberRole = teamMemberRole, UserId= userBID));
    sharingRules.add(new AccountShare(AccountAccessLevel = accountAccessLevel, OpportunityAccessLevel = OpportunityAccessLevel, CaseAccessLevel = caseAccessLevel, UserOrGroupId = userBID, AccountId = a.id));
}

else if(a.Type=='Chennai'){


members.add(New AccountTeamMember(AccountId = a.id, TeamMemberRole = teamMemberRole, UserId= userAID ));
    sharingRules.add(new AccountShare(AccountAccessLevel = accountAccessLevel, OpportunityAccessLevel = OpportunityAccessLevel, CaseAccessLevel = caseAccessLevel, UserOrGroupId = userBID, AccountId = a.id));
}

}

insert members;

insert sharingRules;


}


 

All Answers

Prashant Pandey07Prashant Pandey07

Rishi,
You use below trigger to create the accountteamMember..  and make sure your Account sharing setting is private
 
trigger AccountTriggers on Account (Before insert,before update) {

set<id>ids=new set<id>();
for(Account a:trigger.new){

ids.add(a.id);

}

ID userAID = [select id from user where name='test'].ID;
ID userBID = [select id from user where name='Testign Tester'].ID;
String teamMemberRole = 'Account Manager';
String accountAccessLevel = 'Edit', opportunityAccessLevel = 'Edit', caseAccessLevel = 'None';
List<Account> accounts = [select id,type from account where id=:ids];
List<AccountTeamMember> members = new list<AccountTeamMember>();
List<AccountShare> sharingRules = new list<AccountShare>();

for(Account a : accounts) {
if(a.Location__c=='Delhi'){
    members.add(New AccountTeamMember(AccountId = a.id, TeamMemberRole = teamMemberRole, UserId= userBID));
    sharingRules.add(new AccountShare(AccountAccessLevel = accountAccessLevel, OpportunityAccessLevel = OpportunityAccessLevel, CaseAccessLevel = caseAccessLevel, UserOrGroupId = userBID, AccountId = a.id));
}

else if(a.Type=='Chennai'){


members.add(New AccountTeamMember(AccountId = a.id, TeamMemberRole = teamMemberRole, UserId= userAID ));
    sharingRules.add(new AccountShare(AccountAccessLevel = accountAccessLevel, OpportunityAccessLevel = OpportunityAccessLevel, CaseAccessLevel = caseAccessLevel, UserOrGroupId = userBID, AccountId = a.id));
}

}

insert members;

insert sharingRules;


}


 
This was selected as the best answer
riShI9999riShI9999
Thanks @Prashant