Activity › Forums › Salesforce® Discussions › Is it possible to Deactivate a trigger from Apex in Salesforce? If yes, then how?
Tagged: Deactivate Trigger, Salesforce Apex Class, Salesforce Apex Trigger, Salesforce Trigger, Salesforce Trigger Condition
-
Is it possible to Deactivate a trigger from Apex in Salesforce? If yes, then how?
Posted by Ankit on March 23, 2018 at 8:26 AMIs it possible to Deactivate a trigger from Apex in Salesforce? If yes, then how?
Archit replied 8 years, 1 month ago 4 Members · 5 Replies -
5 Replies
-
Hi Ankit,
You could do this from Force.com IDE.
Find the trigger.meta.xml of respective trigger and make this change and deploy.
<?xml version=”1.0″ encoding=”UTF-8″?>
<ApexTrigger xmlns=”http://soap.sforce.com/2006/04/metadata”>
<apiVersion>40.0</apiVersion>
<status>Inactive</status>
</ApexTrigger>Hope this helps you.
- [adinserter block='9']
-
Hi Ankit,
You can Inactive the trigger using following steps:
- Login to the sandbox
- Go to the Trigger and Click on Edit and Uncheck the IsActive box (see the screenshot), and Click on Save
- Create a Change Set and include the Trigger in the changeset and deploy the same into the Production.
If you want to Inactive trigger using Apex code then you can add your own switch (or switches):
public class Triggers {
public static Boolean areDisabled = false;
}trigger AccountTrigger on Account (after insert, after update) {
if (Triggers.areDisabled) return;
….
} -
Hi,
Thanks for the response,
Is there any way to Inactive trigger in production without deployment or without edit trigger code?
-
You can try Metadata API for ApexTrigger includes the status value that can be set to Active/Inactive/Deleted. You can call that from Apex.
-
Hello Ankit,
The best possible way to choose below options to Inactive trigger in production.
a) via Force.com IDE,
Disable the trigger in sandbox environment [You should have a sandbox org which contains the same trigger]
Create a new project in Eclipse using the Sandbox and including the trigger (or refresh your existing Eclipse project)
1. Alternative: edit the triggername.trigger-meta.xml in an existing project and change the status node to false: <status>Inactive</status>
2. Save the change locally Deploy the trigger to production
Complete the data load
If the change is not permanent or you want to enable the trigger again then enable the trigger by making it active on the sandbox or project again and deploy it to productionb) via Changesets,
Disable the trigger in a Sandbox environment [You should have a Sandbox org which contains the same trigger]
Create a new Outbound Change Set in the Sandbox
Add the disabled trigger to the Change Set
Upload the Change Set to your Production Org
In Production, go to Inbound Change Sets and wait for the uploaded Change Set to be available
Click Deploy to run the tests and apply the changesHope It would be helpful !!
Log In to reply.