I have a Before Insert, Before Update trigger on a custom object, Financial Account, that is a child in a master-detail relationship with Account. When the Financial Account is updated/inserted, the trigger pulls the lookup field 'Portfolio Manager' from the account, and updates the 'Portfolio Manager' lookup field on the Financial Account.
If the field changed on Financial Account (which allows re-parenting) is the Account that it is linked to, will the 'Portfolio Manager' field on Financial Account be pulled from the old Account that it is linked to, or the new Account that it is being linked to?
Thanks!
EDIT: Added relevant code.
Trigger:
trigger transferRelationshipTeamFromAcctOnFinAcctUpdate on Financial_Account__c (before insert, before update) {
FinancialAccountManager.handleUpdateTransferRelationshipTeamFromAcct(trigger.new);
}
Class:
public class FinancialAccountManager {
public static void handleUpdateTransferRelationshipTeamFromAcct(List<Financial_Account__c> FinAcctsTrNew){
Set<Id> clients = new Set<Id>{};
for(Financial_Account__c finAcct : finAcctsTrNew){
//Compile a set of all clients from all FinAccts in Trigger.new
clients.add(finAcct.client__c);
}
//Get the client's fields
Map<Id, Account> clientsMap = new Map<Id, Account>([
SELECT Id, Wealth_Advisor__c, Portfolio_Manager_Lookup__c,Trust_Officer__c, Other_Team_Member_1__c, Other_Team_Member_2__c
FROM Account
WHERE Id IN :clients]);
//Loop through each Financil Account
for(Financial_Account__c finAcct : FinAcctsTrNew){
//Update the Relationship Teams on the Financial Account from the Parent Account
finAcct.Wealth_Advisor_Lookup__c = clientsMap.get(finAcct.client__c).Wealth_Advisor__c;
finAcct.Portfolio_Manager_Lookup__c = clientsMap.get(finAcct.client__c).Portfolio_Manager_Lookup__c;
finAcct.Trust_Officer_Lookup__c = clientsMap.get(finAcct.client__c).Trust_Officer__c;
finAcct.Other_Team_Member_1_Lookup__c = clientsMap.get(finAcct.client__c).Other_Team_Member_1__c;
finAcct.Other_Team_Member_2_Lookup__c = clientsMap.get(finAcct.client__c).Other_Team_Member_2__c;
}
}
}
Attribution to: jackerman09
Possible Suggestion/Solution #1
If you're using the account lookup from the Trigger.New
, You should be getting the financial account from the new parent on a before update.
Attribution to: Samuel De Rycke
This content is remixed from stackoverflow or stackexchange. Please visit https://salesforce.stackexchange.com/questions/2141