You can create simple and some complex logic using workflows in Force.com, but sometimes you may need something more. Apex triggers provide the ability to solve complex logic and are an essential part of any Salesforce implementation.
Learn how to build and manage triggers and best practices on when to use them. Lastly, we’ll also take a look at some debugging techniques and tools that will make coding Apex triggers a breeze.
2. #forcewebinar
Safe Harbor
Safe harbor statement under the Private Securities Litigation Reform Act of 1995:
This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if
any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-
looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of
product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of
management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments
and customer contracts or use of our services.
The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our
service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of
growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of any litigation, risks associated with completed and
any possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain,
and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling
non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the
financial results of salesforce.com, inc. is included in our annual report on Form 10-K for the most recent fiscal year and in our quarterly report on
Form 10-Q for the most recent fiscal quarter. These documents and others containing important disclosures are available on the SEC Filings section of
the Investor Information section of our Web site.
Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may
not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently
available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.
4. #forcewebinar
Go Social!
Salesforce Developers
+Salesforce Developers
Salesforce Developers
Salesforce Developers The video will be posted to
YouTube & the webinar recap
page (same URL as registration).
This webinar is being recorded!
@salesforcedevs / #forcewebinar
7. #forcewebinar
What is a Trigger in Database terms?
A trigger is a
procedure that
initiates an action
(i.e., fires an
action) when an
event occurs.
8. #forcewebinar
Trigger Order of Execution
Save State Commit
System Validation Rules
Apex Before Triggers
Custom Validation Rules
Apex After Triggers
Assignment Rules
Workflow Rules
Escalations
Rollup Summary Fields
efore fter
10. #forcewebinar
Why are Triggers hard and confusing?
• They are all Code
• They are shared across the instance
• They execute with everything else
(Workflows, Flows, Process Builder)
• They can cause Recursion
• They need to be Bulkified
11. #forcewebinar
Why do we need Triggers?
• Use triggers to perform complex tasks
that do not need user intervention.
• Execute Business rules without
worrying about security
• Examples
• Send Data to External System on Save
• Update related and non related records
• Assignments based on business rules.
12. #forcewebinar
Considerations for Trigger Management
• Discuss with Architect or other Developers about
best practices
• Avoid writing Triggers when not needed
• Build Logical Trigger Switches
• Keep Logic outside of Triggers
• Consider having only one Trigger per Object
• Follow Apex Best Practices
• Build good Test classes
16. #forcewebinar
Use Case
• Create a Task when Lead Status
or Priority Changes
• Update a field “Next Step” on
Opportunity when Opportunity is
Closed Won
17. #forcewebinar
Best Practice
• Consider using Workflow rules,
Flows, Process Builder or other
point & click tools before
considering building an Apex
Trigger
• Do not over-architect for simple
things
19. #forcewebinar
Use case
• During a massive data load
exercise I do not want the
triggers to run.
• The similar upload is scheduled
on a weekly basis
• I do not want triggers to run when
Integration User is sending data.
20. #forcewebinar
Best Practice
• Control the execution of Triggers
by using Custom Settings.
• Provide configurations wherever
possible to allow admin /
business users to control Trigger
Execution.
22. #forcewebinar
Use case
• A Trigger on Task that is sending
an email to a Group when Task
status is changed or when it
becomes overdue
• User needs to have ability to
manually send an email to the
Group for selected records.
23. #forcewebinar
Best Practice
• Make the Triggers Logic-less
• Use Handler/Helper classes that perform the
core business logic that can be reusable
across the organization.
Trigger
Apex
Class
Handler
Controller
25. #forcewebinar
Use case
• A lead has 20+
Workflow rules
• 10 different Triggers
on Lead
• Assignment Rules
• Flows
26. #forcewebinar
Best Practice
• Control the execution order
• Debugging simplified
• Separation of Concerns
• Structured and Organized
One Trigger to rule them all