You need to sign in to do that
Don't have an account?
Learning Apex (OOP)
Variable does not exist - Why - Please explain the concept
Hello,
I am very new to programming and am learning to code with apex.
If you have experience in coding with apex, you will observe that the following code breaches many good practices' rules but, for now, I do not care (this is not about good practices, this question is about the error); I am just trying to understand WHY am I getting this error (Variable does not exit: Id)
I think it might have something to do with the "scope" of the code where this variable is being referenced but, I still need understand and to learn how to avoid these kind of issue in the future.
Could you possibly explain in plain English (for a beginner), why is this error being produced and how to avoid it?
Thank you very much. Here is the code:
I am very new to programming and am learning to code with apex.
If you have experience in coding with apex, you will observe that the following code breaches many good practices' rules but, for now, I do not care (this is not about good practices, this question is about the error); I am just trying to understand WHY am I getting this error (Variable does not exit: Id)
I think it might have something to do with the "scope" of the code where this variable is being referenced but, I still need understand and to learn how to avoid these kind of issue in the future.
Could you possibly explain in plain English (for a beginner), why is this error being produced and how to avoid it?
Thank you very much. Here is the code:
trigger OwnerManager on Opportunity (after insert) { for(Opportunity opp : Trigger.new){ //Get opp owner manager info Opportunity oppWithManagerInfo = [SELECT Id, Owner.ManagerId FROM Opportunity WHERE Id = :opp.Id]; //Get opp owner direct dependents List<user> directDependents = [SELECT Id FROM user WHERE ManagerId = :opp.OwnerId LIMIT 1]; //Create Opportunity Team Role if (oppWithManagerInfo.Owner.ManagerId != null) { OpportunityTeamMember otm = new OpportunityTeamMember(); otm.UserId = oppWithManagerInfo.Owner.ManagerId; otm.OpportunityId = opp.Id; otm.TeamMemberRole = 'Sales Manager'; insert otm; //Create another Opportunity Team Role with directDependent if (directDependents.size()>0){ OpportunityTeamMember otm2 = new OpportunityTeamMember(); otm2.UserId = directDependents.Id; // HERE is the error otm.OpportunityId = opp.Id; otm.TeamMemberRole = 'Sales Rep.'; insert otm2; } } } }
NOTE:- directDependents was list so you need to get User record from directDependents then you can get ID.
Try to remove SOQL from for loop as well
All Answers
NOTE:- directDependents was list so you need to get User record from directDependents then you can get ID.
Try to remove SOQL from for loop as well
So, looking at your amendment on line 23 ... ... it looks like, due to the fact that I am referencing a List (directDependents is a List) it is NECESSARY to specify the postion of the item in the List, otherwise the system does not know what Id to assign to the variable otm2.userId.
This makes sense.
Thank you very much Amit.