Skip to main content
Jen Lucas a posé une question dans #Apex
I am very new to apex triggers, but need to create a trigger that allows users with the profile 'EBC Provider Lighting Cooper' to delete an Order record if the Status__C = 'Open'.  Would love some suggestions!  Here is what I have but it doesn't work. I'm sure the syntax is not correct.

trigger OrderDelete on Order (before delete) {

Id profileId = userinfo.getProfileId();

    String profileName = [Select Id from Profile where Id =:00e36000001bNRh].EBC Provider Lightning Cooper;

 

 for (Order con: trigger.old) {

  if (profileName =='EBC Provider Lightning Cooper' && order__c.Status__c =='Open') {

   if (Trigger.isBefore) {

    if (Trigger.isDelete) {

     con.adderror('You cannot delete the record');

    }

   }

  }

 }

}
4 réponses
  1. 17 juin 2021, 16:30
    Thank you everyone!  I took suggestions for each: This is what ended up working:

    trigger OrderDelete on Order (before delete) {

        if (Trigger.isBefore && Trigger.isDelete) {

           

            string profileName = '';

            for(Profile oProfile : [Select Id,Name from Profile where Name = 'EBC Provider Lightning Cooper' limit 1]){

                profileName = oProfile.Name;

            }

            system.debug('profileName : ' + profileName);

                 

            for (Order con: trigger.old) {

                if (profileName =='EBC Provider Lightning Cooper' && (con.Status =='Locked'|| con.Status =='Delivered')) {

                    con.adderror('You cannot delete the record');

                }

            }

           

        }

    }    }

    }

     
0/9000