You need to sign in to do that
Don't have an account?
Kevin Tullos
Compile Error: Variable does not exist: Account.Owner... Please help
When we are updating the owner ID with out ERP system, we replicate the ownership change over to SFDC (it is called the salesman number) using informatica. This - Salesman Number - field is on the user record and on the account record. What I am trying to do is get a list of the account records where the Salesman number has been changed and update the owner of the account in salesforce with the owner that has the corresponding salesman number on the user record. (does that make sense?) Here is my code below, and I think that it is close, but I am getting the following complie error...
Error: Compile Error: Variable does not exist: Account.Owner at line 7 column 55
Here is the trigger I have written. Please help.
thanks.
Kevin
trigger AccountOwnerUpdateTrigger on Account (before insert, before update) {
// this map will contain a list of Accounts with the same salesman #
Map<String, List<Account>> AccountOwnerMap = new Map<String, List<Account>> ();
for( Account Acc : trigger.new ) {
// create the list if it doesn't already exist
List<Account> AcctList = AccountOwnerMap.get( Account.Owner );
if( AcctList == null ) {
AcctList = new List<Account>();
}
AcctList.add( Acc );
AccountOwnerMap.put( Account.OwnerID, AcctList );
}
// get list of CURRENTLY ACTIVE Sales Targets using the formula field Owner_Salesman_Number__c
// and order it so that the latest sales target comes last
List<User> UserList = [
SELECT ID, Salesman_Number__c
FROM User
WHERE ID IN :AccountByOwnerMap.keySet()
AND IsActive = TRUE
];
// go through the Sales Target list and get a list of Sales Order that have the same salesman
for( User User : UserList ) {
List<Account> AcctList = AccountOwnerMap.get( User.ID );
// assign the Sales Target for each Sales Order in the list
// only if the Sales Target start date is before the Sales Order date
// that is, if the Sales Target was active at the time of the order
for( Account Acc : AcctList ) {
Acc.User = Account.Ownerid;
}
}
}
Error: Compile Error: Variable does not exist: Account.Owner at line 7 column 55
Here is the trigger I have written. Please help.
thanks.
Kevin
trigger AccountOwnerUpdateTrigger on Account (before insert, before update) {
// this map will contain a list of Accounts with the same salesman #
Map<String, List<Account>> AccountOwnerMap = new Map<String, List<Account>> ();
for( Account Acc : trigger.new ) {
// create the list if it doesn't already exist
List<Account> AcctList = AccountOwnerMap.get( Account.Owner );
if( AcctList == null ) {
AcctList = new List<Account>();
}
AcctList.add( Acc );
AccountOwnerMap.put( Account.OwnerID, AcctList );
}
// get list of CURRENTLY ACTIVE Sales Targets using the formula field Owner_Salesman_Number__c
// and order it so that the latest sales target comes last
List<User> UserList = [
SELECT ID, Salesman_Number__c
FROM User
WHERE ID IN :AccountByOwnerMap.keySet()
AND IsActive = TRUE
];
// go through the Sales Target list and get a list of Sales Order that have the same salesman
for( User User : UserList ) {
List<Account> AcctList = AccountOwnerMap.get( User.ID );
// assign the Sales Target for each Sales Order in the list
// only if the Sales Target start date is before the Sales Order date
// that is, if the Sales Target was active at the time of the order
for( Account Acc : AcctList ) {
Acc.User = Account.Ownerid;
}
}
}
All Answers
You just need to change line 7 to use Account.OwnerId, not Account.Owner:
List<Account> AcctList = AccountOwnerMap.get( Account.OwnerId );