Overview

Are you a programmer who wants to understand how to customize applications programmatically on the Salesforce platform? In this course, you will learn the core of the Apex programming language and Visualforce markup in order to customize your Salesforce applications. You will get hands-on experience building data objects (sObjects) and programmatically retrieving, manipulating, and storing the data associated with those objects. You will write custom logic using Apex triggers and classes, and test that logic using the built-in testing framework.

You will explore how Apex code interacts with declarative customizations on the platform, and the nuances of working on a multi-tenant platform. You’ll then examine common techniques for designing solutions in Apex. These activities will culminate in an exercise building a complex trigger that takes advantage of the declarative aspects of the platform. You will get hands-on experience writing Visualforce pages to customize your user interface and Visualforce controllers (in Apex) to modify the controller behavior behind the interface. You’ll also explore design techniques and the built-in testing framework around Visualforce.

Prerequisites

The prerequisites include a solid understanding of basic Salesforce concepts and functionality and:

• 1 year programming in Java (or another object-oriented programming language)

• Basic data modeling for relational databases

• Basic SQL

• Basic HTML

• Basic JavaScript

Delegates will learn how to

• Create and modify objects using the declarative interface

•Write business logic customizations using Apex triggers and classes. Those customizations will use SOQL and DML.

•Design programmatic solutions that take advantage of declarative customizations

•Describe how your trigger code works within the basics of the Save Order of Execution

•Describe some of the fundamental aspects of designingprograms on a multi-tenant platform

•Write Visualforce markup and code to customize the user interface

•Use the built-in testing framework to test Apex and Visualforces

Outline

Objects and Fields

• Describe the capabilities of objects on the Salesforce platform

• Create a custom object

• Create custom fields

• Create relationship fields

Work Effectively with Custom Objects and Fields

• Create formula fields

• Create roll-up summary fields

• Describe the capabilities of record types

Programming with Apex

• Describe key aspects of Apex that differentiate it from other languages, such as Java and C#

• Describe why Apex transactions and governor limits must be considered when writing Apex

• Execute simple Apex

• Use the sObject data type, the primitive data types, and basic control statements in Apex

Use SOQL to Query Your Org’s Data

• Write a basic query using Salesforce’s query

language, SOQL

• Process the result of a query in Apex

• Create a query dynamically at run-time

Use SOQL to Query Parent-Child Relationships

• Describe a relationship query

• Write a query that traverses a child-to-parent

relationship

• Write a query that traverses a parent-to-child

relationship

DML Essentials

• List the differences between the ways you can invoke

DML operations

• Write Apex to invoke DML operations and handle

DML errors

Trigger Essentials

• Describe what a trigger is used for

• Describe the syntax of a trigger definition

• Use trigger context variables

Classes

• Describe how Apex classes are used

• Define an Apex class

• Determine what data an Apex class can access

The Save Order of Execution and Apex

Transactions

• Describe key points in the Order of Execution

• Describe how triggers fit into and can be impacted by the Order of Execution

• Describe the lifecycle of an Apex Transaction

• Describe the memory lifecycle for static variables

Testing Essentials

• Describe Apex’s testing framework

• Create test data

•• Write and run an Apex test

Testing Strategies

•• Describe practices for writing code that is easy to

maintain and extend

•• Write triggers and classes that assume batches of

data as input

•• Write code that works efficiently with the database,

both in querying and using DML