You need to sign in to do that
Don't have an account?
Easy Trigger to update Child record from a User field
Hello,
I'm trying to create trigger on the Opportunity object to update the child Opportunity Product records with the Opportunity Owner's department number, which is one of the fields in the User object. I'm getting the following compile error:
Error: Compile Error: Initial term of field expression must be a concrete SObject: LIST<OpportunityLineItem> at line 24 column 14
Here's the code I have.
trigger OpportunityUpdateDept on Opportunity (after update) { for( Opportunity parent: Trigger.new) { List<OpportunityLineItem> children = [ SELECT Department_Number__c from OpportunityLineItem where Opportunity.id = :parent.Id]; list <User> currentOwner = [Select User.Department_Number__c from User where User.id = :parent.ownerid]; List<OpportunityLineItem> childrenToUpdate = new List<OpportunityLineItem>(); for(OpportunityLineItem thischild: children ) { if( thischild.Department_Number__c != currentOwner[0].Department_Number__c) { thischild.Department_Number__c = currentOwner[0].Department_Number__c; childrenToUpdate.add(thischild); } } if( !childrenToUpdate.isEmpty) { update childrenToUpdate; } } }
I'm not exactly sure what is causing the error. If I remove the if statement that checks if childrentToUpdate.isEmpty, then it works. But I want to be able to skip the update if its not necessary. Any assistance with this issue is very much appreciated.
Thanks!
Hi,
Here you declared “childrenToUpdate” as list.
check where list contain dat or not by using sutable list methods.
So replace your code with below code to resolve this error
OR
OR
It will solve your problem and will skip the update if its not necessary.
Mark it as Resolved if it helps you or resolves your problem.
All Answers
just put () after isEmpty because isEmpty is a function not property.
Hi,
Here you declared “childrenToUpdate” as list.
check where list contain dat or not by using sutable list methods.
So replace your code with below code to resolve this error
OR
OR
It will solve your problem and will skip the update if its not necessary.
Mark it as Resolved if it helps you or resolves your problem.
Thank you to both Dev@Force and HariDinesh. Adding the brackets to isEmpty() did the trick.