6

So With the following trigger I wrote, I get an error on the line that says Trigger.oldMap( t1.Id ).IsClosed: The error is

"Variable does not exist: Trigger"

Which seems very odd to me, can anyone see what I'm doing wrong?

trigger TaskStatusChanged on Task ( after update ) {

    // For all the tasks that have been updated
    for( Task t1 : Trigger.new ) {

        // If this task has been closed or opened
        if( t1.IsClosed != Trigger.oldMap( t1.Id ).IsClosed ) {

            // If the task has been closed
            if( t1.IsClosed ) {
                 // Stuff
            }     

            // If there aren't any other open tasks, then update the Case object.
            if( !otherOpenTasks ) {
                //Stuff
            }


       }

       // If the task has been opened
       else if( !t1.IsClosed ) {
           // Stuff
       }

       // If the Task doesn't have an IsClosed value
       else {
           // do nothing
       }
    }
  }      
}

2 Answers 2

10

The syntax is not correct. You have no Get call.

Change

Trigger.oldMap(t1.Id).IsClosed

to

Trigger.oldMap.get(t1.Id).IsClosed
1
  • I'll add to this another common mistake (because I did it :D) Don't add brackets to oldMap! Just Trigger.oldMap..., not Trigger.oldMap()... Commented Jul 11 at 8:49
9

It should be Trigger.oldMap.get(t1.Id).IsClosed. Because you left out the function get, Apex Code's scope resolution first tried to find a function called oldMap on the class Trigger, which doesn't exist, so it then tried to find a variable called Trigger, which also doesn't exist.

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.