This document provides an overview and agenda for a Salesforce development training. It covers Apex, the programming language used to write business logic in Salesforce. It discusses Apex architecture, data types, objects, collections like lists, sets and maps, queries using SOQL and SOSL, testing with test classes, and Visualforce pages. Visualforce allows customizing the user interface. The document also outlines best practices for test classes and limits in the Salesforce platform like limits on queries, DML statements and heap size.
Agenda
• Introduction
• Apex
•Architecture of Apex
• Collections
• List
• Set
• map
• Query
• SOQL
• SOSL
• Test class
• Visualforce Pages
• Architecture of visualforce pages
3.
Introduction:
Salesforce.com is Sales(CRM)and Service
applications which were developed and
running on the Force.com Platform.
Force.com is a platform where you can
develop your own application
4.
APEX
What is Apex?
•Strongly Typed object oriented programming
language and running on Force.com Platform.
• Apex is Easy to use, Multitenant Environment,
Upgrades Automatically, Easy Testing, Versioned,
Integrated.
• Apex allows developement of business logics to
get executed system events including button
click related record updates and vf pages.
5.
Why we useAPEX?
• When we have complex business processes that
are unsupported by the existing functionality.
• When this is the case, the Force.com platform
includes a number of ways for advanced
administrators and developers to implement
custom functionality.
• These include Apex, Visualforce, and the SOAP
API.
Datatype
1.Primitive - Basicallyfound in any other
programming language eg. Boolean, decimal
double , ID (any Id in salesforce .com).
2. sObjects - It refer to Salesforce object .
Datatype very specific to Salesforce. It
represents a row of data.
3.Collections:
sObject
• Account a=new Account(name=“Dw",Type="Customer-Type"
, Industry="Technology");
• Account a = new Account( Select name, type, Industry
where name="Dazeworks Technologies);
10.
sObject
Contact c= [Selectemail from Contact where
name = “Dazeworks"]
String e = c.email;
if(e == null)
delete c;
If Email is not there then record with contact
name will be deleted.
Collections
• Collection worksomewhat like array, except their
size can change dynamically.
• Collection is an object that can hold reference of
other object or sObject.
• Collection are more advanced in behavior and
have easy access methods .
LIST
• <List> isa collection of records which is
an ordered collection.
• <List> can contain duplicate values.
16.
Example
List<String> animal= newList<String>("pig",
"earthworm", "chimpanzee",
"panda");
• pig--0
• earthworm--1
• chimpanzee -2
• panda ---3
String first_animal =animals.get(0);
It will return pig
17.
SET
• Set isa collection of unique, unordered
primitive datatypes or sobjects.
• Set does not contain duplicate values.
18.
Example
Set<Integer> s =new set<Integer>();
s.add(1); //adds an element to the set
System.asserts(s.contains(1)); // Asserts that
the set contains an element
s.remove(1); removes an element
19.
MAP
• MAP isa collection of key-pair values.
• The key is unique and can be of any data-
type like String , sObjects. Pair-values can
have duplicate values.
20.
SOQL Query
• SalesforceObject Query Language(SOQL) is
a query-only language , similar to SQL .
• It uses relationship for navigating data.
• This is main language used for data retrieval
of a single sObjects.
SOSL Query
• SalesforceObject Search Language(SOSL)
is a simple language for searching all
multiple persisted objects simultaneously.
• A SOSL Query begins with the required FIND
clause
Difference B/w SOQLand SOSL
SOQL SOSL
Retrieves the records from the
database by using “SELECT” keyword.
Retrieves the records from the
database by using the “FIND” keyword.
Using SOQL we can know in Which
objects or fields the data resides.
Using SOSL, we don’t know in which
object or field the data resides.
We can retrieve data from single
object or from multiple objects that
are related to each other.
We can retrieve multiple objects and
field values efficiently when the
objects may or may not be related to
each other
We can Query on only one object. We can query on multiple objects.
Total number of records retrieved by
SOQL queries is 50,000
Total number of records retrieved by a
single SOSL query is 2000
APEX Unit Test
•There must be 75% test coverage to be able to
deploy apex code to your production organization.
• Testing is key to ensuring the quality of any
application
• Salesforce executes Apex Unit Tests of all
organization to ensure quality and that no existing
behaviour has been altered for customers.
Best Practice forTest Class
• Test class must start with @isTest annotation.
• To deploy to production at-least 75% code
coverage is required.
• System.debug statement are not counted as a part
of apex code limit.
• Test method should static and no void return type.
• Test method and test classes are not counted as a
part of code limit.
Visualforce Page
• Visualforceis a framework that allows
developers to build sophisticated, custom
user interfaces that can be hosted natively
on the Force.com platform.
• Maximum response size for
a Visualforce page is less than 15Mb.
• Maximum file size for a file uploaded using
a Visualforce page is 10Mb.
31.
When to useVisualforce?
Visualforce page is a tag based mark-up
language to develop customised user
interface in Salesforce.
Writing Visualforce Page
Languagestyle: Tag Mark-up
Page override model: Assemble standard and custom components using
Tags.
Performance
Required technical
Skills:
HTML , XML , Bootstrap
Interaction with Apex Direct, by binding to a custom controller
Tags in VisualforcePage
Tags : Used for :
<apex:page/> Calls an action when the page is loaded.
<apex:Form/> Creates a BUTTON that calls an action .
<apex:pageBlock/> Creates a LINK that calls an action .
<apex:pageblocksection
/>
Create a section within page block.
<apex:inputfield/> HTML input element for a value to a field on a
Salesforce object.
<apex:outputfield/> A read-only display of a label and value for a field on a
Salesforce object
37.
Governor Limits
• Apexruns in a multitenant environment, the Apex
run time engine strictly enforces a number of
limits to ensure that runaway Apex does not
monopolize shared resources.
Description Limits
Total number of SOQL queries issued 100
Total number of SOSL queries issued 20
Total number of DML statements issued 150
Total heap size 6MB
Total heap size for Batch Apex and future
methods
12MB
Maximum size of a Visualforce email
template
1MB
Total number of records retrieved by a
single SOSL query
200