You need to sign in to do that
Don't have an account?
Laura Boyd 25
Adding contact roles with exception
Hi,
I am using this app from the app exchange (https://appexchange.salesforce.com/listingDetail?listingId=a0N300000016cbDEAQ) to ensure that a contact role is added to an opportunity when a certain stage is selected on the opportunity. This works perfectly as it is but I dont want the trigger to take effect if a tickbox called First_MG_created is being updated.
My Apex skills are lacking, so I apologise that this is basic. Any guidance on what I need to do to add this exception in would be appreciated
I am using this app from the app exchange (https://appexchange.salesforce.com/listingDetail?listingId=a0N300000016cbDEAQ) to ensure that a contact role is added to an opportunity when a certain stage is selected on the opportunity. This works perfectly as it is but I dont want the trigger to take effect if a tickbox called First_MG_created is being updated.
My Apex skills are lacking, so I apologise that this is basic. Any guidance on what I need to do to add this exception in would be appreciated
//This is provided as a sample to require a contact on opportunities it is provided without warranty and support. trigger opportunity_contact_required on Opportunity (before insert, before update) { //map to keep track of the contact_required = 1 Map<String, Opportunity> oppy_contact = new Map<String, Opportunity>(); //Trigger.new is an array of opportunities //and adds any that have Contact_Required = 1 to the oppy_contact Map for (Integer i = 0; i < Trigger.new.size(); i++) { System.debug('*****Required? ' + Trigger.new[i].contact_required__c); if (Trigger.new[i].contact_required__c == 1) { oppy_contact.put(Trigger.new[i].id,Trigger.new[i]); } } //map to keep track of the opportunity contact roles map<Id, OpportunityContactRole> oppycontactroles = new map<Id, OpportunityContactRole>(); //select OpportunityContactRoles for the opportunities with contact role required List<OpportunityContactRole> roles = [select OpportunityId, IsPrimary from OpportunityContactRole where (OpportunityContactRole.IsPrimary = True and OpportunityContactRole.OpportunityId in :oppy_contact.keySet())]; for (OpportunityContactRole ocr : roles) { //puts the contact roles in the map with the Opportunity ID as the key oppycontactroles.put(ocr.OpportunityId,ocr); } // Loop through the opportunities and check if they exists in the contact roles map or contact role isn't required for (Opportunity oppy : system.trigger.new) { //system.debug('List oppy Id - '+oppy.id); if (oppy.contact_required__c ==1 && !oppycontactroles.containsKey(oppy.id)) { oppy.addError('No Primary Contact has been added to the opportunity. Please go to the Contact Roles and select a primary contact.'); } } //for }