function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
SFDC 18SFDC 18 

I'm getting a compile error variable doesnot exist: RecordType

trigger CreateRenewal on Opportunity (before update) {

  Map<Id, Opportunity> renewals = new Map<Id, Opportunity>();

  for (Opportunity opp : Trigger.new) {
 
    if (opp.CloseDate <= opp.CloseDate - 30) {
       Opportunity renewal = new Opportunity();
       renewal.AccountId   = 'opp.AccountId';
       renewal.Name        = opp.Name + 'Renewal';
       renewal.CloseDate   = opp.CloseDate + 365;
       renewal.StageName   = 'Open';
       renewal.RecordType  = 'Renewal';
       renewal.OwnerId     = opp.OwnerId;
       renewals.put(renewal.Id, renewal);
    }
  }

   insert renewals;
}

 
Best Answer chosen by SFDC 18
sfdcMonkey.comsfdcMonkey.com
HI Poojitha, 
it seems record type for opportunities are not enabled in your org so remove  the recordType line in your code and insert the renewals.values() instead of insert renewals.

use below code :
trigger CreateRenewal on Opportunity (before update) {

  Map<Id, Opportunity> renewals = new Map<Id, Opportunity>();

  for (Opportunity opp : Trigger.new) {
 
    if (opp.CloseDate <= opp.CloseDate - 30) {
       Opportunity renewal = new Opportunity();
       renewal.AccountId   = 'opp.AccountId';
       renewal.Name        = opp.Name + 'Renewal';
       renewal.CloseDate   = opp.CloseDate + 365;
       renewal.StageName   = 'Open';
    
       renewal.OwnerId     = opp.OwnerId;
       renewals.put(renewal.Id, renewal);
    }
  }

   insert renewals.values();
}

Thank, let me inform if it helps you 

All Answers

Surya Prakash TomarSurya Prakash Tomar

Hi Poojitha,

It's better you can use Recordtypeid in place of record type.

Raj VakatiRaj Vakati
Code is here below 
 
trigger CreateRenewal on Opportunity (before update) {

  Map<Id, Opportunity> renewals = new Map<Id, Opportunity>();

  for (Opportunity opp : Trigger.new) {
 
    if (opp.CloseDate <= opp.CloseDate - 30) {
       Opportunity renewal = new Opportunity();
       renewal.AccountId   = opp.AccountId;
       renewal.Name        = opp.Name + 'Renewal';
       renewal.CloseDate   = opp.CloseDate + 365;
       renewal.StageName   = 'Open';
       renewal.RecordTypeId  = opp.RecordTypeId;
       renewal.OwnerId     = opp.OwnerId;
       renewals.put(renewal.Id, renewal);
    }
  }

   insert renewals.values();
}

 
SFDC 18SFDC 18
even after replacing recordtype with recordtypeid the same compile error is repeated
sfdcMonkey.comsfdcMonkey.com
HI Poojitha, 
it seems record type for opportunities are not enabled in your org so remove  the recordType line in your code and insert the renewals.values() instead of insert renewals.

use below code :
trigger CreateRenewal on Opportunity (before update) {

  Map<Id, Opportunity> renewals = new Map<Id, Opportunity>();

  for (Opportunity opp : Trigger.new) {
 
    if (opp.CloseDate <= opp.CloseDate - 30) {
       Opportunity renewal = new Opportunity();
       renewal.AccountId   = 'opp.AccountId';
       renewal.Name        = opp.Name + 'Renewal';
       renewal.CloseDate   = opp.CloseDate + 365;
       renewal.StageName   = 'Open';
    
       renewal.OwnerId     = opp.OwnerId;
       renewals.put(renewal.Id, renewal);
    }
  }

   insert renewals.values();
}

Thank, let me inform if it helps you 
This was selected as the best answer
SFDC 18SFDC 18
Hi Piyush,
Thanks for the help. Now i got a new compile error called invalid parameter value
SFDC 18SFDC 18
Sorry my mistake. The code is perfect now