You need to sign in to do that
Don't have an account?

System.DmlException: Insert failed. First exception on row 0; first error: CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY, NbdsEappValidation: execution of AfterInsert
Hi,
I have created a trigger handler class and when i try to run test class,it is giving errors as follows
Error MessageSystem.DmlException: Insert failed. First exception on row 0; first error: CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY, NbdsEappValidation: execution of AfterInsert
caused by: System.DmlException: Update failed. First exception on row 0 with id a0u21000000EquXAAS; first error: CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY, NbdsEappValidation: execution of BeforeUpdate
caused by: System.FinalException: Record is read-only
Class.NbdsEappValidationTriggerHandler.OnBeforeUpdate: line 39, column 1
Trigger.NbdsEappValidation: line 21, column 1: []
Class.NbdsEappValidationTriggerHandler.OnAfterInsert: line 59, column 1
Trigger.NbdsEappValidation: line 26, column 1: []
Here is my Trigger:
==============
trigger NbdsEappValidation on NBDS_eApp__c (before insert, before update, after insert, after update) {
NbdsEappValidationTriggerHandler handler = new NbdsEappValidationTriggerHandler(false);
if ( trigger.isBefore ) {
if ( trigger.isInsert ) {
Handler.onBeforeInsert(trigger.new);
} else if ( trigger.isUpdate ) {
Handler.onBeforeUpdate(trigger.new, trigger.oldMap);
}
} else if ( trigger.isAfter ) {
if ( trigger.isInsert ) {
Handler.onAfterInsert(trigger.new);
} else if ( trigger.isUpdate ) {
Handler.onAfterUpdate(trigger.new, trigger.oldMap);
}
}
}
Here is my Handler class:
===================
public with sharing class NbdsEappValidationTriggerHandler {
private boolean m_isExecuting = false;
public NbdsEappValidationTriggerHandler(boolean isExecuting){
m_isExecuting = isExecuting;
}
public void OnBeforeInsert(List<NBDS_eApp__c> listeApp){
//Check if the Data Entry Complete-Validate on Save flag is true
//If true set sectionidentifier to All before insert and update
for (NBDS_eApp__c eApp : listeApp) {
if(eApp.NBDS_DataEntry_Complete_Validate_on_Save__c==true)
eApp.SectionIdentifier__c='All';
}
}
public void OnBeforeUpdate(List<NBDS_eApp__c> listeApp, Map<id,NBDS_eApp__c> MapeAppOld){
for (NBDS_eApp__c eApp : listeApp) {
if(eApp.NBDS_DataEntry_Complete_Validate_on_Save__c==true)
eApp.SectionIdentifier__c='All';
}
for(NBDS_eApp__c eApp:MapeAppOld.values()){
if(eApp.NBDS_DataEntry_Complete_Validate_on_Save__c==true)
{
eApp.SectionIdentifier__c='All';
}
}
}
public void OnAfterInsert(List<NBDS_eApp__c> listeApp) {
//Reset Data Entry Complete-Validate on Save flag is false
//SectionIdentifier value to ''
List<NBDS_eApp__c> listeApp1=new List<NBDS_eApp__c>();
for (NBDS_eApp__c eApp : listeApp) {
if(eApp.NBDS_DataEntry_Complete_Validate_on_Save__c==true) {
//Use fresh object to update only those fields that require updating
NBDS_eApp__c ueApp=new NBDS_eApp__c();
ueApp.Id = eApp.Id;
ueApp.SectionIdentifier__c=null;
ueApp.NBDS_DataEntry_Complete_Validate_on_Save__c=false;
listeApp1.add(ueApp);
}
}
//Update only if there are records
if(listeApp1.size()>0)
update listeApp1;
}
public void OnAfterUpdate(List<NBDS_eApp__c> listeApp, map<id,NBDS_eApp__c> MapeAppOld){
List<NBDS_eApp__c> listeApp1=new List<NBDS_eApp__c>();
for (NBDS_eApp__c eApp : listeApp) {
if(eApp.NBDS_DataEntry_Complete_Validate_on_Save__c==true) {
//Use fresh object to update only those fields that require updating
NBDS_eApp__c ueApp=new NBDS_eApp__c();
ueApp.Id = eApp.Id;
ueApp.SectionIdentifier__c=null;
ueApp.NBDS_DataEntry_Complete_Validate_on_Save__c=false;
listeApp1.add(ueApp);
}
}
//Update only if there are records
if(listeApp1.size()>0)
update listeApp1;
List<NBDS_eApp__c> listeApp2=new List<NBDS_eApp__c>();
for (NBDS_eApp__c eApp : MapeAppold.values()) {
if(eApp.NBDS_DataEntry_Complete_Validate_on_Save__c==true) {
//Use fresh object to update only those fields that require updating
NBDS_eApp__c ueApp=new NBDS_eApp__c();
ueApp.Id = eApp.Id;
ueApp.SectionIdentifier__c=null;
ueApp.NBDS_DataEntry_Complete_Validate_on_Save__c=false;
listeApp2.add(ueApp);
}
}
//Update only if there are records
if(listeApp2.size()>0)
update listeApp2;
}
}
Your answers will be highly helpful for me!!Thanks in Advance!!
I have created a trigger handler class and when i try to run test class,it is giving errors as follows
Error MessageSystem.DmlException: Insert failed. First exception on row 0; first error: CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY, NbdsEappValidation: execution of AfterInsert
caused by: System.DmlException: Update failed. First exception on row 0 with id a0u21000000EquXAAS; first error: CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY, NbdsEappValidation: execution of BeforeUpdate
caused by: System.FinalException: Record is read-only
Class.NbdsEappValidationTriggerHandler.OnBeforeUpdate: line 39, column 1
Trigger.NbdsEappValidation: line 21, column 1: []
Class.NbdsEappValidationTriggerHandler.OnAfterInsert: line 59, column 1
Trigger.NbdsEappValidation: line 26, column 1: []
Here is my Trigger:
==============
trigger NbdsEappValidation on NBDS_eApp__c (before insert, before update, after insert, after update) {
NbdsEappValidationTriggerHandler handler = new NbdsEappValidationTriggerHandler(false);
if ( trigger.isBefore ) {
if ( trigger.isInsert ) {
Handler.onBeforeInsert(trigger.new);
} else if ( trigger.isUpdate ) {
Handler.onBeforeUpdate(trigger.new, trigger.oldMap);
}
} else if ( trigger.isAfter ) {
if ( trigger.isInsert ) {
Handler.onAfterInsert(trigger.new);
} else if ( trigger.isUpdate ) {
Handler.onAfterUpdate(trigger.new, trigger.oldMap);
}
}
}
Here is my Handler class:
===================
public with sharing class NbdsEappValidationTriggerHandler {
private boolean m_isExecuting = false;
public NbdsEappValidationTriggerHandler(boolean isExecuting){
m_isExecuting = isExecuting;
}
public void OnBeforeInsert(List<NBDS_eApp__c> listeApp){
//Check if the Data Entry Complete-Validate on Save flag is true
//If true set sectionidentifier to All before insert and update
for (NBDS_eApp__c eApp : listeApp) {
if(eApp.NBDS_DataEntry_Complete_Validate_on_Save__c==true)
eApp.SectionIdentifier__c='All';
}
}
public void OnBeforeUpdate(List<NBDS_eApp__c> listeApp, Map<id,NBDS_eApp__c> MapeAppOld){
for (NBDS_eApp__c eApp : listeApp) {
if(eApp.NBDS_DataEntry_Complete_Validate_on_Save__c==true)
eApp.SectionIdentifier__c='All';
}
for(NBDS_eApp__c eApp:MapeAppOld.values()){
if(eApp.NBDS_DataEntry_Complete_Validate_on_Save__c==true)
{
eApp.SectionIdentifier__c='All';
}
}
}
public void OnAfterInsert(List<NBDS_eApp__c> listeApp) {
//Reset Data Entry Complete-Validate on Save flag is false
//SectionIdentifier value to ''
List<NBDS_eApp__c> listeApp1=new List<NBDS_eApp__c>();
for (NBDS_eApp__c eApp : listeApp) {
if(eApp.NBDS_DataEntry_Complete_Validate_on_Save__c==true) {
//Use fresh object to update only those fields that require updating
NBDS_eApp__c ueApp=new NBDS_eApp__c();
ueApp.Id = eApp.Id;
ueApp.SectionIdentifier__c=null;
ueApp.NBDS_DataEntry_Complete_Validate_on_Save__c=false;
listeApp1.add(ueApp);
}
}
//Update only if there are records
if(listeApp1.size()>0)
update listeApp1;
}
public void OnAfterUpdate(List<NBDS_eApp__c> listeApp, map<id,NBDS_eApp__c> MapeAppOld){
List<NBDS_eApp__c> listeApp1=new List<NBDS_eApp__c>();
for (NBDS_eApp__c eApp : listeApp) {
if(eApp.NBDS_DataEntry_Complete_Validate_on_Save__c==true) {
//Use fresh object to update only those fields that require updating
NBDS_eApp__c ueApp=new NBDS_eApp__c();
ueApp.Id = eApp.Id;
ueApp.SectionIdentifier__c=null;
ueApp.NBDS_DataEntry_Complete_Validate_on_Save__c=false;
listeApp1.add(ueApp);
}
}
//Update only if there are records
if(listeApp1.size()>0)
update listeApp1;
List<NBDS_eApp__c> listeApp2=new List<NBDS_eApp__c>();
for (NBDS_eApp__c eApp : MapeAppold.values()) {
if(eApp.NBDS_DataEntry_Complete_Validate_on_Save__c==true) {
//Use fresh object to update only those fields that require updating
NBDS_eApp__c ueApp=new NBDS_eApp__c();
ueApp.Id = eApp.Id;
ueApp.SectionIdentifier__c=null;
ueApp.NBDS_DataEntry_Complete_Validate_on_Save__c=false;
listeApp2.add(ueApp);
}
}
//Update only if there are records
if(listeApp2.size()>0)
update listeApp2;
}
}
Your answers will be highly helpful for me!!Thanks in Advance!!