You need to sign in to do that
Don't have an account?

Writing a Class for Trigger
I am trying to figure out the right approach for writing a class for this trigger. These objects are not really related.
TSG__c is a customer Object (Trigger object)
User to get the User.ID
Account to get the Account.ID
AccountTeamMember insert record
AccountShare insert record.
Please see trigger.
trigger AccountTeamADD on TSG__c (before update,before insert) {
//list to hold new account team members
List<AccountTeamMember> acctMembers = new List<AccountTeamMember>();
//list to hold new account sharing rules
List<AccountShare> acctSharingRules = new List<AccountShare>();
//Hold SalesRep
Set <String> ss = New Set<String>();
//Hold Customer ID
Set <String> aa = New Set<String>();
// Hold User Info
List<User> TheUser=new LIST<User>();
//Hold Account Info
List<Account> TheAcct=new LIST<Account>();
//Loop Through all records in the Trigger.new Collection
For(TSG__c T: Trigger.new)
{
ss.add(T.email_address__c);
aa.add(T.P21_CompanyCustomer_ID__c);
}
//Get User Info
TheUser = [Select ID,email from User where email IN:ss];
//Get Account Info
TheAcct = [Select ID,P21_CompanyCustomer_ID__c from Account where P21_CompanyCustomer_ID__c IN:aa];
System.debug('@@@@--'+TheUser.size());
//Check to Make sure a record was retuned
if (!TheUser.isEmpty()) {
//Loop Through the Trigger (New Records)
For (TSG__c T: Trigger.new) {
For (Account acct: TheAcct) {
For (User email: TheUser) {
if (t.email_address__c == email.email && T.P21_CompanyCustomer_ID__c ==acct.P21_CompanyCustomer_ID__c) { //Make sure we match on email_address__c
//Insert into Account Team Here;
AccountTeamMember ca = new AccountTeamMember();
ca.AccountId = acct.Id;
ca.TeamMemberRole = 'Technical Sales';
ca.UserId = email.Id;
acctMembers.add(ca);
//Insert into Account Share Here;
AccountShare caSharingRule = new AccountShare();
caSharingRule.AccountId = acct.Id;
caSharingRule.OpportunityAccessLevel = 'Edit';
caSharingRule.CaseAccessLevel = 'Edit';
caSharingRule.AccountAccessLevel = 'Edit';
caSharingRule.UserOrGroupId = email.Id;
acctSharingRules.add(caSharingRule);
}
}
}
}
upsert acctMembers;
upsert acctSharingRules;
}
}
TSG__c is a customer Object (Trigger object)
User to get the User.ID
Account to get the Account.ID
AccountTeamMember insert record
AccountShare insert record.
Please see trigger.
trigger AccountTeamADD on TSG__c (before update,before insert) {
//list to hold new account team members
List<AccountTeamMember> acctMembers = new List<AccountTeamMember>();
//list to hold new account sharing rules
List<AccountShare> acctSharingRules = new List<AccountShare>();
//Hold SalesRep
Set <String> ss = New Set<String>();
//Hold Customer ID
Set <String> aa = New Set<String>();
// Hold User Info
List<User> TheUser=new LIST<User>();
//Hold Account Info
List<Account> TheAcct=new LIST<Account>();
//Loop Through all records in the Trigger.new Collection
For(TSG__c T: Trigger.new)
{
ss.add(T.email_address__c);
aa.add(T.P21_CompanyCustomer_ID__c);
}
//Get User Info
TheUser = [Select ID,email from User where email IN:ss];
//Get Account Info
TheAcct = [Select ID,P21_CompanyCustomer_ID__c from Account where P21_CompanyCustomer_ID__c IN:aa];
System.debug('@@@@--'+TheUser.size());
//Check to Make sure a record was retuned
if (!TheUser.isEmpty()) {
//Loop Through the Trigger (New Records)
For (TSG__c T: Trigger.new) {
For (Account acct: TheAcct) {
For (User email: TheUser) {
if (t.email_address__c == email.email && T.P21_CompanyCustomer_ID__c ==acct.P21_CompanyCustomer_ID__c) { //Make sure we match on email_address__c
//Insert into Account Team Here;
AccountTeamMember ca = new AccountTeamMember();
ca.AccountId = acct.Id;
ca.TeamMemberRole = 'Technical Sales';
ca.UserId = email.Id;
acctMembers.add(ca);
//Insert into Account Share Here;
AccountShare caSharingRule = new AccountShare();
caSharingRule.AccountId = acct.Id;
caSharingRule.OpportunityAccessLevel = 'Edit';
caSharingRule.CaseAccessLevel = 'Edit';
caSharingRule.AccountAccessLevel = 'Edit';
caSharingRule.UserOrGroupId = email.Id;
acctSharingRules.add(caSharingRule);
}
}
}
}
upsert acctMembers;
upsert acctSharingRules;
}
}
Thank you,
I have never created a class and called that class from the trigger, what would something like that look like?
Thank you,