Book Image

Mastering Apex Programming

By : Paul Battisson
5 (1)
Book Image

Mastering Apex Programming

5 (1)
By: Paul Battisson

Overview of this book

As applications built on the Salesforce platform are now a key part of many organizations, developers are shifting focus to Apex, Salesforce’s proprietary programming language. As a Salesforce developer, it is important to understand the range of tools at your disposal, how and when to use them, and best practices for working with Apex. Mastering Apex Programming will help you explore the advanced features of Apex programming and guide you in delivering robust solutions that scale. This book starts by taking you through common Apex mistakes, debugging, exception handling, and testing. You'll then discover different asynchronous Apex programming options and develop custom Apex REST web services. The book shows you how to define and utilize Batch Apex, Queueable Apex, and Scheduled Apex using common scenarios before teaching you how to define, publish, and consume platform events and RESTful endpoints with Apex. Finally, you'll learn how to profile and improve the performance of your Apex application, including architecture trade-offs. With code examples used to facilitate discussion throughout, by the end of the book, you'll have developed the skills needed to build robust and scalable applications in Apex.
Table of Contents (21 chapters)
1
Section 1 – Triggers, Testing, and Security
8
Section 2 – Asynchronous Apex and Apex REST
15
Section 3 – Apex Performance

Subscribing to and handling platform events

One of the key features of platform events is that we can subscribe to and then act upon an event from a variety of different solutions. In this section, we are going to talk through the available solutions on the Salesforce platform itself before looking at handling events off-platform in the next section.

Handling platform events using Apex triggers

For Apex developers, the simplest way to subscribe to a platform event channel in Apex is to use a trigger on the platform event. Triggers defined for a platform event can only operate in the after insert context, as no other context exists for an event. In the following code snippet, you can see a simple trigger for our Demonstration__e platform event:

trigger DemonstrationTrigger on Demonstration__e (after insert) {
    for(Demonstration__e demo : (List<Demonstration__e>)    Trigger.new) {
        ...