Building Applications With Force - Com (DEV 401) Course Materials - Copy (2) HH
Building Applications With Force - Com (DEV 401) Course Materials - Copy (2) HH
Day One
Introduction
Introduction
Introduction to Force.com
0-1 (10 min): Prepare Your Training Org
20 minutes
20 minutes
140 minutes
80 minutes
IN
60 minutes
TE
R
AL
SE
O
N
LY
30 minutes
10 minutes
20 minutes
AGENDA*
DEV401: Building Applications with Force.com
Day Two
Managing Your Users Experience
Licenses
Overview of Profiles
Profiles and Permissions
8-1 (15 min): Create Custom Profiles
8-2 (10 min): Create Permission Sets
Profiles and Access to Data
8-3 (5 min): Change Access Using Field-Level Security
Profiles and the User Interface
8-4 (10 min): Create Record Types
8-5 (15 min): Create Page Layouts
8-6 (10 min): Create Page Layouts and Record Types
120 minutes
AL
SE
O
N
LY
140 minutes
IN
60 minutes
TE
R
60 minutes
ii
AGENDA*
DEV401: Building Applications with Force.com
Day Three
Building Business Processes (cont.)
Monitoring Processes
110 minutes
80 minutes
140 minutes
IN
TE
R
AL
SE
O
N
LY
30 minutes
iii
AGENDA*
DEV401: Building Applications with Force.com
Day Four
Increasing Data Quality using Flows
Understanding Visual Workflow
Creating Flows
15-1 (40 min): Create a Flow
15-2 (40 min): Create a New Version of a Flow
Deploying Flows
15-3 (10 min): Deploy a Flow
40 minutes
Auditing Processes
Auditing Configuration Changes
16-1 (10 min): Audit Changes Using Setup Audit Trail
Auditing Data
16-2 (10 min): Audit Changes to Data
Keeping Track of Unauthorized Changes
140 minutes
Data Management
Exporting Data
Deleting Data
Inserting Data
Updating Data
Salesforce Record IDs
17-1 (10 min): Mass Transfer Ownership of Records
Upsert Data
External IDs
Object Relationships
Tools for Data Management
Apex Data Loader
17-2 (15 min): Upload Positions
Which Tool Do You Use?
17-3 (10 min): Upsert Candidates
17-4 (10 min): Upsert Remaining Object Data (Optional)
Bulk API
IN
180 min
TE
R
AL
SE
O
N
LY
120 minutes
iv
AGENDA*
DEV401: Building Applications with Force.com
Day Five
Enhancing the User Interface Using Visualforce (cont.)
18-5 (15 min): Complete the Offer Quick Edit Page
18-6 (20 min): Create the Candidate Page
18-7 (15 min): Create the Review Page (Optional)
Templates in Visualforce
18-8 (25 min): Create the Console Page Template and Job
Application Console Page
Static Resources in Visualforce
18-9 (10 min): Add the Confidential Image to the Job Application
Console
Visualforce Design Recommendations
120 min
IN
TE
R
AL
SE
O
N
LY
60 min
IN
TE
AL
SE
LY
Introduction to
Force.com
@SalesforceCert
www.salesforce.com/training
Copyright 2013 salesforce.com, inc.
All rights reserved. Various trademarks held by their respective owners.
LY
N
O
SE
AL
TE
This document contains proprietary information of salesforce.com, inc., it is provided under a license
agreement containing restrictions on use, duplication and disclosure and is also protected by copyright
law. Permission is granted to customers of salesforce.com, inc. to use and modify this document for their
internal business purposes only. Resale of this document or its contents is prohibited.
IN
The information in this document is subject to change without notice. Should you find any problems or
errors, please log a case from the Support link on the Salesforce home page. Salesforce.com, inc. does
not warrant that this document is error- free.
"Salesforce.com" and the "no software" logo are registered trademarks of salesforce.com, inc. Other
names used may be marks of their respective owners.
SE
LY
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.
IN
TE
AL
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.
3
Objectives
By the end of this module, you will be able to:
LY
IN
TE
AL
SE
Module Agenda
Development Tools
IN
TE
AL
SE
LY
Introductions
Introductions
Facilities
SE
LY
Emergency Exits
Restrooms, Break Room, etc.
IN
TE
AL
Module Agenda
Introductions
Development Tools
IN
TE
AL
SE
LY
What is Force.com?
LY
SE
CRM
Applications
AL
Data model.
Business logic.
Chatter
User interface.
Database.com
TE
IN
Force.com
We do
Infrastructure
Services
We do
Application
Services
Network
Security
Storage
Sharing
Availability
Operating System
Integration
Monitoring
Database
TE
Why Go Cloud-based?
Customization
Patch Mgmt
App Server
Web Services
Upgrades
Web Server
API
Backup
Data Center
Multi-Language
NOC
YOU
focus on
innovation
IN
AL
SE
LY
We do
Operations
Services
Authentication
SE
LY
Multi-tenant
Subscription
No large start-up fee
Fixed, predictable cost
Scales with your business
Automatic upgrades
IN
TE
AL
10
LY
SE
IN
TE
AL
11
Module Agenda
Development Tools
IN
TE
AL
SE
LY
Introductions
12
LY
CRM
Applications
Declarative interface.
Apex programming language.
SE
Chatter
Force.com
AL
IN
Database.com
TE
Declarative interface.
Apex programming language
A Force.com API.
13
Use programmatic
customizations for:
LY
SE
AL
TE
Easier to maintain
IN
14
LY
Declarative focus:
Help & Training
Documentation
Knowledge Articles
Forums
IN
Documentation
TE
Programmatic focus:
http://developer.force.com
AL
SE
Training
Code share
Sign up for a free developer
edition org
15
Force.com Pages
Web Controls
Sites
LY
User
Interface
Workflow
Validation Rules
Approval Processes
AL
SE
Business
Logic
IN
TE
Objects
Fields
Relationships
Declarative
Simplicity + Speed
Data
Model
Programmatic
Custom Functionality +
Integration
16
Force.com
IDE
SE
LY
Setup Menu
Programmatic
Development
Environment
TE
AL
Declarative Development
Environment with Editors
IN
Metadata
Migration Tools
Deployment Tools
Resource Center
& Community
17
LY
SE
AL
When you move changes from one environment to another, you are
moving metadata.
Run your code
on our servers
TE
Configure our
application services
IN
Salesforce
Apps
Metadata
ISV
Apps
Custom
Apps
18
Module Agenda
Development Tools
LY
Introductions
IN
TE
AL
SE
19
LY
The Summer '13 release provides a new interface for personal and
administrative setup tasks.
Access Setup from the header
SE
Redesigned personal
settings area
TE
AL
IN
20
LY
When you login, Force.com verifies your identity and the IP address
from which you are accessing the system.
SE
IN
TE
AL
21
LY
Prepare your org for classroom activities and access after class.
Scenario:
TE
Tasks:
AL
SE
IN
10 min.
22
LY
O
N
Introduction to Force.com
IN
TE
R
AL
SE
Exercise Guide
IN
AL
TE
R
SE
U
O
N
LY
O
N
Time:
LY
Tasks:
Instructions:
1. Reset the email address on your profile.
SE
10 minutes
AL
A. In a browser, go to http://login.salesforce.com.
B. Enter the login credentials provided by your instructor.
C. Click Admin User | My Settings | Personal | Personal Information.
D. Click Save.
TE
R
IN
Table of Contents
3
Custom Objects.......................................................................................................
Custom Fields..........................................................................................................
14
LY
Course Agenda.....................................................................................................................
18
Schema Builder........................................................................................................
26
29
30
SE
O
N
Object Relationships................................................................................................
33
36
Formula Fields.........................................................................................................
37
AL
40
43
46
48
Licenses...................................................................................................................
49
51
Access to Data.........................................................................................................
56
58
63
65
Record Ownership...................................................................................................
67
Organization-Wide Defaults.....................................................................................
69
73
Sharing.....................................................................................................................
77
84
IN
TE
R
85
86
89
90
91
92
Monitoring Processes..............................................................................................
97
103
104
106
Enforcing Consistency.............................................................................................
107
109
111
Workflow Rules........................................................................................................
112
114
118
AL
SE
O
N
LY
119
121
124
126
127
IN
TE
R
136
137
Creating Flows.........................................................................................................
138
Deploying Flows.......................................................................................................
141
145
146
Auditing Data...........................................................................................................
147
149
153
Export data...............................................................................................................
153
154
Insert data................................................................................................................
155
Update data.............................................................................................................
156
Upsert data..............................................................................................................
160
164
Bulk API...................................................................................................................
169
173
What is Visualforce?................................................................................................
174
177
181
Templates in Visualforce..........................................................................................
192
198
199
215
IN
TE
R
AL
SE
O
N
LY
Delete data...............................................................................................................
O
N
LY
Building Applications
with Force.com
IN
TE
R
AL
www.salesforce.com/training
Copyright 2013 salesforce.com, inc.
All rights reserved. Various trademarks held by their respective owners.
SE
@SalesforceCert
Application Essentials
O
N
LY
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.
AL
SE
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.
TE
R
Objectives
IN
Application Essentials
Course Agenda
Module 1: Welcome to Universal Containers
Module 2: Designing Applications on the Force.com Platform
Module 3: Building Your Data Model
Module 4: Building Your User Interface
Module 5: Introducing Business Logic
Module 6: Migrating Configuration Changes
Module 7: Accommodating Multiple Users in Your App
Module 8: Managing Your Users Experience
Module 9: Controlling Access to Records
Module 10: Designing Data Access Security
Module 11: Building Business Processes
Module 13: Automating Business Processes with Workflow
LY
O
N
AL
SE
IN
TE
R
Module 1:
Welcome to
Universal
Containers
Application Essentials
Universal Containers
1 Market St.
San Francisco, CA 94105
United States
Cargo containers
Employees
500
Revenue
USD 60,000,000
Ownership
Private
AL
SE
O
N
LY
+1.415.555.7901
www.universalcontainers.net
Industry
IN
TE
R
Recruiting Application
Application Essentials
Hiring Managers
LY
Ben Stuart
SW Dev Manager
O
N
AL
SE
Megan Smith
VP Human Resources
IN
TE
R
Recruiting App
User
Position__c
Job_Application__c
Master-Detail
Interviewer__c
Candidate__c
Master-Detail
Salary__c
Offer__c
Review__c
Master-Detail
Job_Posting__c
Master-Detail
Job_Posting_Site__c
10
Application Essentials
11
AL
SE
O
N
LY
Module 2: Designing
Applications on the
Force.com Platform
TE
R
IN
12
Application Essentials
Module Objectives
By the end of this module, you will be able to:
List components of an application.
13
AL
SE
O
N
LY
TE
R
IN
14
Application Essentials
SE
O
N
LY
Keep it simple
AL
15
TE
R
Visualforce Pages
Web Controls
Sites
Workflow
Validation Rules
Approval Processes
Business
Logic
IN
Applications
Tabs
Page Layouts
Record Types
Objects
Fields
Relationships
Data
Model
SOAP API
Metadata API
Declarative
Programmatic
Simplicity + Speed
Control + Flexibility
16
Application Essentials
Module Review
1. What are the three layers of an application?
17
TE
R
AL
SE
O
N
LY
IN
Module 3: Building
Your Data Model
18
Application Essentials
User
Interface
Visualforce Pages
Web Controls
Sites
Workflow
Validation Rules
Approval Processes
Business
Logic
Objects
Fields
Relationships
SOAP API
Metadata API
O
N
LY
Data
Model
Programmatic
Declarative
Control + Flexibility
19
AL
SE
Simplicity + Speed
TE
R
Module Objectives
By the end of this module, you will be able to:
IN
20
10
Application Essentials
Module Agenda
Custom Objects
Custom Fields
Object Relationships
21
TE
R
Objects
AL
SE
O
N
LY
Schema Builder
IN
22
11
Application Essentials
Fields
Analogous to database columns
Standard fields: system generated upon object creation
Custom fields: developer-defined
Name
Owner
Created
Date
Last
Modified
by
Last
Modified
Date
Custom
1
Custom
2
Custom
3
23
AL
SE
O
N
LY
ID
Created
By
TE
R
Standard Fields: ID
IN
Indexed
24
12
Application Essentials
O
N
LY
25
AL
SE
TE
R
IN
By default, the Name field appears as the first column in list views and
related lists.
26
13
Application Essentials
27
AL
SE
O
N
LY
TE
R
IN
Last Modified By: a reference to the user who last modified the record
Created Date: the date/time that the record was created
Last Modified Date: the date/time that the record was last modified
28
14
Application Essentials
Goal:
Your
Turn
Task:
29
AL
SE
O
N
LY
TE
R
Module Agenda
Custom Objects
Custom Fields
IN
Object Relationships
Schema Builder
30
15
Application Essentials
Custom Fields
The limit on the number of custom fields per object varies with your
Salesforce edition.
Deleted fields and their data are stored until permanently deleted or 15
days has elapsed, whichever happens first.
Recovering the field definition will also recover the old field data.
Owner
Custom1
Custom2
Custom3
31
TE
R
Data Types
AL
SE
O
N
LY
Id
Number
Date
Currency
Date/Time
IN
Percent
Checkbox
Picklist
Phone
Picklist
(Multi-Select)
URL
32
16
Application Essentials
Text
Auto-Number
E=mc2
Text Area
Increment by 1
Formula
Encrypted
LY
Created on a master
33
AL
SE
O
N
TE
R
Field Dependencies
IN
17
Application Essentials
Text
Picklist
LY
Date
35
AL
SE
TextArea
O
N
Date/Time
TE
R
Multi-lingual support
IN
Name: the programmatic name used in Web Service API, formulas, etc.
Disallows spaces and certain special characters
__c always automatically appended to end
department__c
Required: always require a value in this field in order to save a record
to the database
Enforced for records entered both through the UI and the API
36
18
Application Essentials
37
AL
SE
O
N
LY
20 min
Goal:
IN
Your
Turn
TE
R
Scenario:
With a new custom object created, Universal Containers has to
create the fields it wants to use to track data regarding positions.
There are a variety of different data types that will be required
and certain fields will be dependent on others. You can use
custom fields to set this up.
Tasks:
1. Add custom fields to the Position and Candidate objects.
2. Create dependent picklists.
3. Add a field for the Social Security Number on the Candidate
object.
38
19
Application Essentials
Module Agenda
Custom Objects
Custom Fields
Object Relationships
SE
O
N
LY
Schema Builder
AL
39
TE
R
Object Relationships
Position
Parent-to-children
One-to-many
IN
Position
Position
Job
Application
Lookup Relationship
Links are by record IDs
Position__c
Job_Application__c
Id
Name
Id
Name
Position__c
a05S0000000WZeY
Programmer
a023000000AVJoy
APP-0069
a05S0000000WZeY
a05300000050Krc
Account Executive
a02S0000000gHgt
APP-0070
a05S0000000X2eY
Billing Assistant
a02S0000001mcpt
APP-0071
a05S0000000WZeY
a05300000050KrT
Product Manager
a023000000AVJom
APP-0072
a05300000050Krc
40
20
Application Essentials
Lookup Relationships
Independent ownership &
sharing
Position
Lookup
OR
SE
Specify 1 of 3 delete
behaviors
O
N
LY
Job
Application
AL
41
TE
R
Master-Detail Relationships
Tightly coupled
Job
Application
IN
Master-Detail
Review
Job Application
42
21
Application Essentials
43
AL
SE
O
N
LY
Lookup Relationships
TE
R
IN
44
22
Application Essentials
Reporting Implications
Reports can only display one child object type at a time
Visibility is determined by the primary object
45
AL
SE
O
N
LY
5 min
Goal:
IN
Your
Turn
TE
R
Scenario:
Universal Containers needs to be able to see which Job
Applications are related to each Position. Additionally, the
company needs to see which Hiring Managers are related to
each Position.
Tasks:
1. Create a lookup relationship between Job Application and
Position.
2. Create a lookup relationship between Position and Hiring
Manager.
46
23
Application Essentials
Goal:
Your
Turn
LY
O
N
47
AL
SE
TE
R
Self Relationships
IN
The User object has a special type of lookup relationship: the hierarchy
relationship. For example, a hierarchy relationship allows developers to
create a Manager field on the User object to relate another user.
48
24
Application Essentials
Many-to-Many Relationships
Allow for the relationship of two objects in a many-to-many fashion.
Candidates may apply for many positions by submitting a job application
for each position.
A position may have many candidates apply.
49
AL
SE
O
N
LY
TE
R
Junction Objects
IN
50
25
Application Essentials
Position__c
Job_Application__c
Master-Detail
Interviewer__c
Candidate__c
Master-Detail
Offer__c
Salary__c
Review__c
LY
Master-Detail
Master-Detail
51
AL
SE
Job_Posting_Site__c
O
N
Job_Posting__c
5 min
Goal:
IN
Your
Turn
TE
R
Scenario:
Universal Containers will have many positions advertised on
various job posting sites. The company wants to be able to
connect and manage those records within Salesforce.
Tasks:
1. Create a new custom junction object.
2. Create the master-detail relationships of Job Posting with
Position and Job Posting Site.
52
26
Application Essentials
O
N
53
AL
SE
LY
Lookup Filters
5 min
Goal:
IN
Your
Turn
TE
R
Scenario:
At Universal Containers (UC), only users who are people
managers should be selected as the hiring manager on a new
position. UC needs to create a lookup filter that would prevent
users from selecting a user who is not a hiring manager when
creating a new position.
Tasks:
Create a lookup filter.
54
27
Application Essentials
Module Agenda
Custom Objects
Custom Fields
Object Relationships
55
AL
SE
O
N
LY
Schema Builder
TE
R
Schema Builder
IN
56
28
Application Essentials
View
relationships.
57
AL
SE
O
N
Double click on
custom fields to
edit them.
LY
TE
R
Module Review
IN
58
29
Application Essentials
SE
O
N
LY
Module 4: Building
Your User
Interface
AL
59
TE
R
Visualforce Pages
Web Controls
Sites
Workflow
Validation Rules
Approval Processes
Business
Logic
IN
Applications
Tabs
Page Layouts
Record Types
Objects
Fields
Relationships
Data
Model
SOAP API
Metadata API
Declarative
Programmatic
Simplicity + Speed
Control + Flexibility
60
30
Application Essentials
Module Objectives
By the end of this module, you will be able to:
Create a custom application with a custom logo.
Create a custom object tab.
Modify a page layout.
List the customizations possible on a page layout.
List customizations that are not permitted on a page layout.
LY
61
AL
SE
O
N
TE
R
Module Agenda
IN
62
31
Application Essentials
Custom Apps
An application is a logical container for all of the objects, tabs,
processes, and services associated with a given business function.
A Force.com custom app consists of a name, a description, an ordered
list of tabs, and, optionally, a custom logo and a landing page.
63
AL
SE
O
N
LY
TE
R
IN
For custom logos, any GIF or JPG file from the Documents tab can
be inserted if it is under 20kb in size.
Specify a custom default landing tab when creating or editing a
custom app.
Use the Default Landing Tab drop-down menu below the tab
selection area of the app creation wizard.
64
32
Application Essentials
Goal:
Your
Turn
65
TE
R
Custom Tabs
AL
SE
O
N
LY
IN
66
33
Application Essentials
Goal:
Your
Turn
Create custom tabs for the Position and Job Posting objects.
Scenario:
Universal Containers wants to make sure that users will be able
to easily access the new custom objects it has created. The
company needs to create new custom tabs that will quickly guide
people to this information.
Tasks:
LY
67
AL
SE
O
N
TE
R
Module Agenda
IN
68
34
Application Essentials
Page Layouts
Page Layout defines the
organization of:
Fields
Custom links
Related lists on an object
detail page
O
N
LY
Page Layout
customizations include:
Field locations
Page section
customizations
Field properties (visible,
read-only and required)
69
AL
SE
TE
R
IN
Video tutorial
Copy
layouts
faster
with
Save As
Manage standard
and custom
buttons
70
35
Application Essentials
Goal:
Your
Turn
LY
O
N
71
AL
SE
TE
R
Module Review
IN
72
36
Application Essentials
SE
O
N
LY
Module 5:
Introducing
Business Logic
AL
73
TE
R
Visualforce Pages
Web Controls
Sites
Workflow
Validation Rules
Approval Processes
Business
Logic
IN
Applications
Tabs
Page Layouts
Record Types
Objects
Fields
Relationships
Data
Model
SOAP API
Metadata API
Declarative
Programmatic
Simplicity + Speed
Control + Flexibility
74
37
Application Essentials
Module Objectives
By the end of this module, you will be able to:
Create a custom formula operating on fields from one object.
Create a cross-object formula.
75
AL
SE
O
N
LY
TE
R
Module Agenda
Formula Fields
IN
76
38
Application Essentials
77
AL
SE
O
N
LY
IN
TE
R
78
39
Application Essentials
Simple Statements:
Return the number of hours it has
been open
Otherwise:
Formula Usage:
Return null
O
N
LY
Formula Example:
79
AL
SE
10 min
Goals:
IN
Your
Turn
TE
R
Scenario:
The VP of HR at Universal Containers is interested in tracking the
overall score of each candidate who has been interviewed, as well
as the number of days that a position stays open. You need to
create formula fields to accomplish these tasks.
Tasks:
1.
2.
3.
40
Application Essentials
Cross-Object Formulas
Enable you to incorporate merge fields from multiple objects for
calculations and display
Create formulas that reference fields on parent or grandparent object
(up to 10 levels)
Are limited to ten unique relationships per object across all formulas
and rules for that object
Display fields from related objects on detail pages, list views, reports,
etc.
81
AL
SE
O
N
LY
5 min
Goal:
IN
Your
Turn
TE
R
Scenario:
Universal Containers users would like to see the candidate full
name and position title on an offer.
Tasks:
1. Create a formula field to pull the candidate full name to
display on the offer.
2. Create a formula field to pull the position title to display on
the offer.
82
41
Application Essentials
Module Agenda
Formula Fields
83
AL
SE
O
N
LY
TE
R
IN
84
42
Application Essentials
Goal:
Your
Turn
LY
O
N
85
AL
SE
TE
R
Module Review
IN
86
43
Application Essentials
87
AL
SE
O
N
LY
Module 6:
Migrating
Configuration
Changes
TE
R
Module Objectives
By the end of this module, you will be able to:
IN
88
44
Application Essentials
LY
Change Sets
Sandbox retention policy:
O
N
Sandboxes that no one has logged into for 180 days will be deleted
89
IN
TE
R
Change Sets
AL
SE
metadata
metadata
Development
Sandbox
Production
Testing
Sandbox
90
45
Application Essentials
Inbound
Outbound
upload
Development Sandbox
Testing Sandbox
LY
O
N
91
AL
SE
TE
R
Module Review
IN
92
46
Application Essentials
93
AL
SE
O
N
LY
Module 7:
Accommodating
Multiple Users in
Your App
TE
R
Module Objectives
By the end of this module, you will be able to:
IN
94
47
Application Essentials
LY
95
AL
SE
O
N
IN
TE
R
Positions
Candidates/Job Apps
Reviews
R, C, E
R, C, E
R, C, E
R, C, E*
R*
R*
Recruiter
Hiring Mgr
Interviewer
Legend: R=Read, C=Create, E=Edit
* = where shared **= where shared through parent
96
48
Application Essentials
Module Review
1. What things should you consider before building an
application?
2. Who are the actors in the recruiting application?
97
TE
R
AL
SE
O
N
LY
IN
Module 8:
Managing Your
Users Experience
98
49
Application Essentials
Module Objectives
By the end of this module, you will be able to:
List the different types and characteristics of licenses the
Force.com platform supports.
List the things a profile controls in the application.
List the aspects of the profile that control access to data.
Create a profile.
Describe how to use permission sets with profiles.
LY
99
AL
SE
O
N
TE
R
Module Agenda
Licenses
IN
Access to Data
Record Types and the User Interface
100
50
Application Essentials
License Types
Each user must have a user license.
Different types of user licenses allow different levels of access.
101
AL
SE
O
N
LY
TE
R
Module Agenda
Licenses
IN
Access to Data
Record Types and the User Interface
102
51
Application Essentials
What is a Profile?
Defines a users ability to perform different functions, see records, and
how the records are displayed.
Profiles work in conjunction with your organizations sharing model or
role hierarchy.
Every user is assigned to a profile (ONLY 1 profile).
Access to Data
User Interface
App Permissions
Page Layouts
System Permissions
Record Types
LY
Permissions
Tabs
103
AL
SE
O
N
Applications
TE
R
IN
104
52
Application Essentials
105
AL
SE
O
N
LY
TE
R
IN
Sets the hours when users with a particular profile can use the system.
Sets the IP addresses from which users with a particular profile can log in.
106
53
Application Essentials
107
AL
SE
O
N
LY
TE
R
IN
A user with the API Only User permission can not login from
www.salesforce.com.
Password Never Expires permission is often used for integration users.
108
54
Application Essentials
Goal:
Create a new profile for recruiters.
Scenario:
At Universal Containers (UC), recruiters need to be able to create,
view, and modify any position, candidate, job application, or review.
To comply with state and federal laws, all recruitment-related info
must be saved for several years. Consequently, recruiters should
NOT have the ability to delete records.
Other users only need view access on certain objects.
Tasks:
1. Enable the Enhanced Profile User Interface
2. Create a custom recruiter profile
3. Define the recruiter profile to accomplish the business
requirements
4. Assign users to this new profile.
109
AL
SE
O
N
LY
Your
Turn
TE
R
IN
Profile
Permission
Set 1
Permission
Set 2
55
110
Application Essentials
Permission
Set 1
User
Access
O
N
LY
Permission
Set 2
111
AL
SE
TE
R
IN
56
Application Essentials
LY
Visualforce pages
113
AL
SE
O
N
10 min
Goal:
IN
Your
Turn
TE
R
Scenario:
Hiring managers and interviewers have different needs and
different levels of access to the information that will be stored in
the Recruiting Application.
In addition, the access of hiring managers and interviewers to
other portions of the organization needs to be maintained.
Tasks:
1. Create a new permission set for hiring managers.
114
57
Application Essentials
Module Agenda
Licenses
User Profiles and Permissions
Access to Data
115
AL
SE
O
N
LY
TE
R
IN
116
58
Application Essentials
Your
Turn
Goal:
Use field-level security to remove access to Social Security
Numbers on candidate records.
Scenario:
In an effort to secure personal information on candidates,
Universal Containers wants to ensure that recruiters cannot see
or edit the Social Security Number of a candidate.
Tasks:
117
AL
SE
O
N
LY
TE
R
Module Agenda
Licenses
IN
Access to Data
Record Types and the User Interface
118
59
Application Essentials
Record Types
Record types are used to tailor user interaction experience to specific
business needs.
Record types can determine page layouts.
Technical Record Type
Hiring Manager
Page Layout A
Page Layout B
Recruiter
Page Layout C
Page Layout C
O
N
LY
119
AL
SE
TE
R
IN
120
60
Application Essentials
Join
Me
Goal:
Create a custom record type that limits the picklist choices
available to hiring managers.
Scenario:
Tasks:
O
N
LY
121
AL
SE
TE
R
IN
61
Application Essentials
Goal:
Your
Turn
LY
123
AL
SE
O
N
10 min
Goal:
IN
Your
Turn
TE
R
Scenario:
Universal Containers would like to implement an approval
process for each position. This process will route positions to the
approvers specified on the position. Once the position has been
approved, the approvers no longer need to be listed on the
position.
Tasks:
1. Create new page layouts for approved technical positions
and approved non-technical positions.
2. Create new record types for approved technical positions
and approved non-technical positions.
124
62
Application Essentials
Module Review
1. What are the different types of licenses that are available?
2. What do profiles control?
3. What are the permissions that allow a System Administrator
to manage the application?
4. True or False: When creating a new profile, its possible to
copy over settings from an existing profile.
125
AL
SE
O
N
LY
TE
R
IN
126
63
Application Essentials
127
AL
SE
O
N
LY
Module 9:
Controlling Access
to Records
TE
R
Module Objectives
By the end of this module, you will be able to:
List the features that affect access to data at the record level.
IN
128
64
Application Essentials
Module Agenda
Overview of Record Access
Record Ownership
Organization-Wide Defaults
Roles and Groups of Users
129
AL
SE
O
N
LY
Sharing
TE
R
Record Access
IN
130
65
Application Essentials
Read/Write privileges:
View
Transfer Ownership
Edit
Delete
Share
Read/Write
Edit
View
Read
Only
LY
Edit
View
Transfer ownership
O
N
Delete
131
AL
SE
Share
TE
R
Read/Write or Read-Only
Access:
Owner field
Organization-wide default
Queue member
IN
User
Manually sharing
Sharing rules
Apex sharing
Profile permission: View All Data
Object permission: View All
132
66
Application Essentials
Sharing Model
LY
A users profile might specify that a user can see candidates, but the
sharing model determines which candidates that user can see.
133
AL
SE
O
N
The sharing model might determine that a user can see Joe Schmoe, but
the profile specifies which fields that user can view and edit.
TE
R
Module Agenda
Record Ownership
IN
Organization-Wide Defaults
Roles and Groups of Users
Sharing
134
67
Application Essentials
Record Ownership
LY
Users
135
AL
SE
O
N
Queues
TE
R
IN
136
68
Application Essentials
Your
Turn
Goal:
Create a custom queue for the Recruiting department to hold
position and candidate records.
Scenario:
Universal Containers wants to use the queue feature to manage
the pool of recruiters working with open positions and
candidates.
Task:
137
AL
SE
O
N
LY
TE
R
Module Agenda
Record Ownership
IN
Organization-Wide Defaults
Roles and Groups of Users
Sharing
138
69
Application Essentials
139
AL
SE
O
N
LY
IN
TE
R
140
70
Application Essentials
141
AL
SE
O
N
LY
5 min
Goal:
IN
Join
Me
TE
R
Scenario:
At Universal Containers, standard users (who are not recruiters),
hiring managers, or interviewers are only allowed to view position
data. There will never be any position that a standard user is not
permitted to see.
Tasks:
Change the organization-wide default setting for Positions.
142
71
Application Essentials
Goal:
Your
Turn
LY
O
N
Other users should not have access to Candidate, Job Application, and Review
records.
Tasks:
143
TE
R
Review
AL
SE
IN
144
72
Application Essentials
Module Agenda
Overview of Record Access
Record Ownership
Organization Wide Defaults
Roles and Groups of Users
145
AL
SE
O
N
LY
Sharing
TE
R
IN
146
73
Application Essentials
147
AL
SE
O
N
LY
TE
R
IN
148
74
Application Essentials
Knowledge Check
149
AL
SE
O
N
LY
5 min
Goal:
IN
Your
Turn
TE
R
Scenario:
Universal Containers has added a new role called Product
Manager and would like the hierarchy to reflect the addition.
Tasks:
1. Add a new Product Manager role.
2. Assign users to the new role.
3. Log in as a Product Manager and as the Director of Product
Management to test the changes to the hierarchy.
150
75
Application Essentials
Public Groups
Public groups are a way of grouping together users for access.
Can be used in a sharing rule.
Can be used to give access to folders.
151
AL
SE
O
N
LY
Every organization has a default public group that includes all users.
TE
R
Users.
IN
Roles.
152
76
Application Essentials
Goal:
Your
Turn
153
AL
SE
O
N
LY
TE
R
Module Agenda
Record Ownership
IN
154
77
Application Essentials
LY
O
N
155
AL
SE
Melissa Lee cannot see records for candidates she needs to interview.
TE
R
Manual Sharing
IN
156
78
Application Essentials
Your
Turn
Goal:
Add manual sharing for various users to grant access on records
where they are invested in the information.
Scenario:
Establish manual sharing at Universal Containers to accomplish
the remaining access levels:
Grant hiring managers read and update access on positions
and candidates where they are the hiring manager.
LY
O
N
Tasks:
157
TE
R
Sharing Rules
AL
SE
IN
Create exceptions to
organization-wide defaults for
particular groups of users.
Are used to open up access to
records.
Cannot be more strict than
organization-wide default
settings.
Access granted through a
sharing rule rolls up through the
hierarchy.
158
79
Application Essentials
Your
Turn
Goal:
Allow recruiters, recruiting managers, and the VP of Human
Resources to view all elements of the recruiting process.
Scenario:
Recruiters and their management should be able to read and
update every position, candidate, job application, and review
record in the application.
Tasks:
159
AL
SE
O
N
LY
TE
R
IN
160
80
Application Essentials
161
AL
SE
O
N
LY
5 min
Goal:
IN
Join
Me
TE
R
Scenario:
Universal Containers wants to add new Apex sharing reasons to
show the reasons why a record may be shared.
Tasks:
1. Create new Apex sharing reasons.
2. Add sharing on a position record to see the new sharing
reasons.
162
81
Application Essentials
Sharing Records
Simple
Manual
Sharing
LY
Sharing
Rules
Flexible
163
AL
SE
Apex
Sharing
O
N
Automated
TE
R
Controlling Data
Permissions
IN
Record Ownership
Organization-Wide Defaults
Read-Only
Read/Write
Roles
Above the owner?
Sharing
Sharing Rules
Manual Sharing
164
82
Application Essentials
O
N
165
AL
SE
Manual Sharing
LY
Role Hierarchy
TE
R
Module Review
IN
166
83
Application Essentials
167
AL
SE
O
N
LY
Module 10:
Designing Data
Access Security
TE
R
Module Objectives
By the end of this module, you will be able to:
IN
168
84
Application Essentials
Module Agenda
Limiting Data Access
169
AL
SE
O
N
LY
20 min
Goal:
Create a process by which position access is determined by the status of a
position.
Scenario:
IN
Your
Turn
TE
R
85
Application Essentials
Your
Turn
Goal:
Ensure that the salary for any position is visible only to the
recruiter, the hiring manager, and the hiring managers boss.
Scenario:
Universal Containers has decided that salary information for any
position should be visible only to the recruiter, the hiring manager
for that position, and the hiring managers boss. The recruiter
should control the salary data.
LY
Tasks:
171
AL
SE
O
N
TE
R
Module Agenda
IN
172
86
Application Essentials
173
AL
SE
O
N
LY
TE
R
IN
174
87
Application Essentials
175
AL
SE
O
N
LY
TE
R
Module Review
IN
176
88
Application Essentials
SE
O
N
LY
Module 11:
Building Business
Processes
AL
177
TE
R
Visualforce Pages
Web Controls
Sites
Workflow
Validation Rules
Approval Processes
Business
Logic
IN
Applications
Tabs
Page Layouts
Record Types
Objects
Fields
Relationships
Data
Model
SOAP API
Metadata API
Declarative
Programmatic
Simplicity + Speed
Control + Flexibility
178
89
Application Essentials
Module Objectives
By the end of this module, you will be able to:
List typical business requirements in the area of business
processes.
List some features of the Force.com platform that help you
implement business processes.
LY
179
AL
SE
O
N
TE
R
Module Agenda
IN
180
90
Application Essentials
LY
O
N
181
AL
SE
TE
R
Module Agenda
IN
182
91
Application Essentials
LY
183
AL
SE
O
N
TE
R
Module Agenda
IN
184
92
Application Essentials
185
AL
SE
O
N
LY
TE
R
IN
Compares the value of a field to the previous value and returns TRUE if
the values are different. If the values are the same, this function returns
FALSE.
Example: Prevent users from changing the Pay Grade of a position
after its been approved.
PRIORVALUE
Returns the previous value of a field.
Example: As negotiations take place, HR would like to track changes to
the salary listed on the offer.
186
93
Application Essentials
ISNEW
Checks if the formula is running during the creation of a new record and returns
TRUE if it is. If an existing record is being updated, this function returns FALSE.
187
AL
SE
O
N
LY
Example: Ensure that hiring managers dont back date the open date on a
position to increase its perceived urgency by using ISNEW and checking
whether the Open Date < Today().
TE
R
IN
ROUND( Actual_Salary__c
Note: ISPICKVAL is not used alone. It must be used any time that youre referring
to a field that is a picklist (except when using the CASE function).
REGEX
Compares a text field to a regular expression and returns TRUE if there is a match.
Otherwise, it returns FALSE. A regular expression is a string used to describe a
format of a string according to certain syntax rules.
Example: Check to make sure that the social security number of a candidate
matches a regular expression representing a valid social security number in the
correct format.
188
94
Application Essentials
ISNUMBER
LY
189
AL
SE
O
N
CASE
TE
R
IN
IMAGE
Inserts an image with alternate text and height/width specifications.
Example: If status is Escalated, show a red flag, if status is Under Review,
show a yellow flag, if status is All Clear show a green flag.
190
95
Application Essentials
These functions make it safe to insert data that you do not control, such
as merge field values and URL parameters in your custom buttons, links,
and Force.com pages.
SE
O
N
LY
AL
191
TE
R
Function Considerations
IN
CASE
IF
Approval
Processes
Default
Values
Field
Updates
Formula
Field
Workflow
Rules
Validation
Rules
IMAGE
ISCHANGED
ISNEW
ISNUMBER
ISPICKVAL
PRIORVALUE
REGEX
VLOOKUP
*ISCHANGED and PRIORVALUE in workflow rules ONLY when rule evaluated Every time the record is created or updated.
192
96
Application Essentials
Join
Me
Goal:
Build a formula field that displays an image.
Scenario:
Universal Containers would like to add a visual indicator of the Rating on
a job application. Job Applications with a high rating should display a
green flag; a medium rating should display a yellow flag; and a low
rating should display a red flag. Universal Containers can take
advantage of a number of sample images available on the Salesforce
servers.
LY
Tasks:
1. Create a new formula field to show a red, yellow, or green flag on a
job application record, depending on the Average Review Score.
193
AL
SE
O
N
2. Add the new Rating field to the Job Application related list on the
Position page layout.
15 min
Goal:
IN
Your
Turn
TE
R
Scenario:
Universal Containers would like to be able to click a link on the
candidate object to see a photo of the candidate. The images will be
stored in the Documents tab, so the company will need to create a field
to capture the ID, a field to create the URL, and a field with a link that
users can click to see the picture, as well as embedding the image into
the page.
Tasks:
1. Create a field for the Picture ID.
2. Populate a candidate records Picture ID field, then click the Picture
Link to view the picture.
194
97
Application Essentials
Module Agenda
Typical Business Requirements
Features of the Force.com Platform That Can Help
Useful Operators and Functions
195
AL
SE
O
N
LY
Monitoring Processes
TE
R
IN
Database changes
Workflow rules
Assignment rules
Escalation rules
Approval process
Auto-response rules
Validation rules
Request-response XML
196
98
Application Essentials
197
AL
SE
O
N
LY
50 MB per organization.
IN
TE
R
Developer Console
View execution
stats
Logs
99
Application Essentials
Log Categories
Database - database activity, including every data manipulation
language (DML) statement or inline SOQL or SOSL query
Workflow- workflow rules, such as the rule name, the actions taken, etc.
Validation - information about validation rules, such as the name of the
rule, whether the rule evaluated true or false, etc.
199
AL
SE
O
N
LY
Useful when debugging issues related to using Force.com SOAPbased Web Services API calls
TE
R
IN
Apex Code - information about Apex code and can include information
such as log messages generated by DML statements, inline SOQL or
SOSL queries, the start and completion of any triggers, and the start
and completion of any test method, etc.
Apex Profiling - cumulative profiling information, such as the limits for
your namespace, the number of emails sent, etc.
Visualforce - information about Visualforce events including
serialization and deserialization of the view state or the evaluation of a
formula field in a Visualforce page
System - information about calls to all system methods such as
the System.debug method
200
100
Application Essentials
201
AL
SE
O
N
LY
IN
TE
R
Tests Tool
Query Editor
202
101
Application Essentials
203
AL
SE
O
N
LY
TE
R
Module Review
IN
204
102
Application Essentials
205
AL
SE
O
N
LY
Module 12:
Preserving Data
Quality
TE
R
Module Objectives
By the end of this module, you will be able to:
IN
206
103
Application Essentials
Module Agenda
Enforcing Conditionally Required Fields
Enforcing Proper Data Format
Enforcing Consistency
207
AL
SE
O
N
LY
TE
R
Validation Rules
Validation rules verify that the data a user enters in a record meets the
standards you specify before the record is saved.
IN
208
104
Application Essentials
209
AL
SE
O
N
LY
IsNew() allows different validation rules for create vs. update actions.
10 min
Goal:
IN
Join
Me
TE
R
Scenario:
Universal Containers (UC) employees should not be able to save
a position record unless the Hiring Manager field is filled out.
Tasks:
Add a validation rule that requires that all positions must have a
Hiring Manager listed.
210
105
Application Essentials
Your
Turn
Goal:
Build a validation rule that prevents users from saving Temp
positions with a blank Duration.
Scenario:
Universal Containers would like to enforce its policies around
Temporary positions. The Duration field on a Temp position
should not be blank. It should contain a value between 1 and
365.
LY
Tasks:
O
N
211
AL
SE
TE
R
Module Agenda
IN
Enforcing Consistency
Preventing Data Loss
212
106
Application Essentials
213
AL
SE
O
N
LY
10 min
Goal:
IN
Your
Turn
TE
R
Scenario:
Universal Containers would like to make sure that when
candidates are entered, the zip code is entered in the correct
format.
Tasks:
Create a validation rule on candidates that requires that zip
codes be entered in a valid 5-digit or 9-digit format.
214
107
Application Essentials
Module Agenda
Enforcing Conditionally Required Fields
Enforcing Proper Data Format
Enforcing Consistency
215
AL
SE
O
N
LY
TE
R
IN
216
108
Application Essentials
Goal:
Your
Turn
LY
Tasks:
217
AL
SE
O
N
Create a validation rule that checks the zip code entered against
a table to validate that the zip code and state match.
TE
R
Module Agenda
IN
Enforcing Consistency
Preventing Data Loss
218
109
Application Essentials
219
AL
SE
O
N
LY
If a user tries to add or delete a record, the validation rule will fire and
prevent users from adding or deleting.
10 min
Goal:
IN
Join
Me
TE
R
Scenario:
Universal Containers would like make sure that once a job
application is approved, users will not be able to add or remove
reviews.
Tasks:
Create a validation rule that references the Roll-Up Summary
Field (RSF) to ensure that reviews are not added or deleted.
220
110
Application Essentials
Module Review
1. When are validation rules applied?
2. When setting up a validation rule, the developer must write
the Error Condition Formula and the ______.
3. True or False: Validation rules are enforced through the API.
221
AL
SE
O
N
LY
IN
TE
R
Module 13:
Automating
Business Processes
with Workflow
222
111
Application Essentials
Module Objectives
By the end of this module, you will be able to:
List the actions that can be triggered by a workflow rule.
Describe the difference between time-dependent and
immediate workflow actions.
Create an escalation channel using time-dependent workflow.
223
AL
SE
O
N
LY
TE
R
Module Agenda
Workflow Rules
IN
224
112
Application Essentials
Workflow Rules
Automate business processes
Triggered on record creation or update
Execute Actions
Immediately and/or
Later (only if record still meets entry criteria)
Time
Immediate
Immediate
Dependent
Actions
Actions
Actions
LY
Immediate
Immediate
Immediate
Actions
Actions
Actions
SE
O
N
Entry
Criteria
AL
225
TE
R
IN
Workflow Rule
Immediate
Actions
Time Triggered
Actions
226
113
Application Essentials
Join
Me
Goal:
Create custom workflow rules and associated field updates for routing new
Positions and Candidates to the recruiters.
Scenario:
At Universal Containers (UC), recruiters are responsible for approving or
rejecting proposed positions created by hiring managers. UC has
determined that when a new Position is created, ownership of the position
should automatically be assigned to the recruiter queue and an email alert
should go out to all members of the queue.
LY
O
N
1. Create a workflow rule with a field update to route new Positions to the
Recruiting Queue.
227
AL
SE
TE
R
Module Agenda
Workflow Rules
IN
228
114
Application Essentials
229
AL
SE
O
N
LY
TE
R
IN
When a new workflow rule is created, it does not affect existing records.
Developers can monitor and remove pending actions by viewing the
time-dependent workflow queue.
If a record that has an action pending against it in the time-based
workflow queue is modified so that the record no longer meets the
criteria, or the timing changes, the action will be updated in the queue.
230
115
Application Essentials
231
AL
SE
O
N
LY
15 min
Goal:
Create a workflow rule that will escalate offers that have been
open for two days.
IN
Your
Turn
TE
R
Scenario:
When an offer is made to a candidate, it is valid for only two
days. Universal Containers would like to set up a time-dependent
workflow rule that evaluates offers in a sent status, and sends a
task to the offer owner to remind them to follow up with the
candidate.
Tasks:
1. Create a workflow rule with time-dependent actions.
2. Create a new offer to test the process and monitor the timebased workflow queue.
232
116
Application Essentials
Your
Turn
Goal:
Create a workflow rule that will escalate positions if there are no
interviewers after 30 days.
Scenario:
At Universal Containers, positions have interviewers associated
with them. If a position has no interviewers attached to it after 30
days, an email should be sent to the position owner.
Tasks:
LY
233
TE
R
Review
AL
SE
O
N
IN
234
117
Application Essentials
235
AL
SE
O
N
LY
Module 14:
Automating
Business Processes
with Approval
Processes
TE
R
Module Objectives
By the end of this module, you will be able to:
IN
236
118
Application Essentials
Module Agenda
Multi-Step Approval Processes
Skipping Steps in Approval Processes
Approval Processes with Parallel Approvers
Keeping Systems in Sync with Outbound Messaging
237
AL
SE
O
N
LY
TE
R
Approval Processes
IN
Entry
Criteria
Final
Immediate
Immediate
Approval
Actions
Actions
Actions
Initial
Immediate
Immediate
Submission
Actions
Actions
Actions
Approval
Immediate
Immediate
Steps
Actions
Actions
Recall
Immediate
Immediate
Actions
Actions
Actions
Final
Immediate
Immediate
Rejection
Actions
Actions
Actions
238
119
Application Essentials
Final
Rejection
Actions
Final
Approval
Actions
Recall
Actions
What
happens
when a
record is
submitted
for
approval?
Who
should
records be
routed to?
What
happens
when a
record is
rejected?
What
happens
when a
record is
approved?
What
happens
if a record
is recalled
from the
process?
SE
O
N
LY
Initial
Submission
Actions
AL
239
IN
TE
R
Process Visualizer
Provides a visual
representation (read-only) of
your approval processes
Entry
Criteria
Yes
Recalled
Final Recall Act
Record
Unlocked
240
120
Application Essentials
LY
O
N
SE
N
AL
241
TE
R
Approval Processes:
IN
121
Application Essentials
Module Agenda
Multi-Step Approval Processes
Skipping Steps in Approval Processes
Approval Processes with Parallel Approvers
Keeping Systems in Sync with Outbound Messaging
243
AL
SE
O
N
LY
TE
R
Skipping Steps
IN
244
122
Application Essentials
LY
O
N
SE
N
AL
245
30 min
Goal:
IN
Join
Me
TE
R
2.
123
Application Essentials
Your
Turn
Goal:
Modify the existing approval process to skip steps that are
unnecessary.
Scenario:
LY
O
N
247
AL
SE
TE
R
Module Agenda
IN
248
124
Application Essentials
249
IN
TE
R
AL
SE
O
N
LY
250
125
Application Essentials
Your
Turn
Goal:
Create an approval process that sends approvals to two
approvers in parallel.
Scenario:
All job applications should be approved by the recruiter and the
Vice President of HR. Both approvals can take place at the same
time.
Tasks:
251
AL
SE
O
N
LY
TE
R
Module Agenda
IN
252
126
Application Essentials
253
AL
SE
O
N
LY
XML
10 min
Goal:
IN
Your
Turn
TE
R
Scenario:
When a job application is approved, it should trigger an outbound
message to an external HR system, as well as update fields and
create a task in Salesforce.
Tasks:
Create an outbound message.
254
127
Application Essentials
Module Agenda
Multi-Step Approval Processes
Skipping Steps in Approval Processes
Approval Processes with Parallel Approvers
Keeping Systems in Sync with Outbound Messaging
255
AL
SE
O
N
LY
TE
R
IN
256
128
Application Essentials
4. Create Apex code to fill in the lookup fields from the approval matrix.
257
IN
TE
R
AL
SE
O
N
LY
258
129
Application Essentials
4. Create Apex code to fill in the lookup fields from the approval
matrix.
259
IN
TE
R
AL
SE
O
N
LY
260
130
Application Essentials
4. Create Apex code to fill in the lookup fields from the approval
matrix.
261
IN
TE
R
AL
SE
O
N
LY
262
131
Application Essentials
4. Create Apex code to fill in the lookup fields from the approval
matrix.
263
IN
TE
R
AL
SE
O
N
LY
264
132
Application Essentials
LY
O
N
SE
N
AL
265
IN
TE
R
4. Create Apex code to fill in the lookup fields from the approval
matrix.
5. Create or update an approval process to utilize the new lookup
fields.
266
133
Application Essentials
LY
O
N
SE
IN
TE
R
AL
267
268
134
Application Essentials
Goal:
Your
Turn
LY
Tasks:
1. Add new approver fields on the Position object.
O
N
269
AL
SE
TE
R
1. Validation Rules
IN
2. Assignment Rules
3. Auto-Response Rules
4. Workflow Rules (with immediate actions)
5. Escalation Rules
6. Parent roll-up summary field formula re-calculates
7. Criteria-based sharing evaluation
270
135
Application Essentials
Module Review
1. What are the components of a multi-step approval process?
2. When approval processes have parallel approvals, what
setting must developers select?
271
AL
SE
O
N
LY
IN
TE
R
Module 15:
Automating
Business Processes
using Visual
Workflow
272
136
Application Essentials
Module Objectives
By the end of this module, you will be able to:
Describe the capabilities of Visual Workflow.
273
AL
SE
O
N
LY
TE
R
Module Agenda
Creating Flows
IN
Deploying Flows
274
137
Application Essentials
Approval Processes
Automate approving a record
Define steps for approval
Assign approver for each step
Outbound
Message
SE
O
N
LY
Visual Workflow
Automate complex business processes
Navigate users through screens
Execute business rules
Query and update Salesforce data
AL
275
TE
R
IN
Yes
Contact
not found
Create contact
276
138
Application Essentials
Module Agenda
Understanding Visual Workflow
Creating Flows
277
AL
SE
O
N
LY
Deploying Flows
TE
R
Connect
Elements
Set Start
Element
IN
Define
Resources
139
Application Essentials
Goal:
Create a flow using Visual Workflow.
Scenario:
Universal Containers is seeing a number of candidate records missing
information. They want a candidate wizard created that includes all the
needed information to complete the record.
Tasks:
1. Create a flow.
2. Add a screen element to prompt for the candidates name.
3. Set the start element for the flow.
4. Add a screen element to prompt for the candidates contact information.
5. Add a screen element to prompt for the candidates experience and
education.
6. Add a record create element to create a new candidate record.
7. Add a screen element to finish the wizard.
8. Save and run the flow.
279
Version 2
TE
R
Flow Versions
AL
SE
O
N
LY
Join
Me
IN
Version 1
280
140
Application Essentials
281
AL
SE
O
N
LY
40 min
Goal:
IN
Your
Turn
TE
R
2.
3.
4.
5.
6.
141
Application Essentials
Module Agenda
Understanding Visual Workflow
Creating Flows
283
AL
SE
O
N
LY
Deploying Flows
IN
TE
R
Deploying a Flow
142
Application Essentials
Salesforce.com URL
Pass Arguments
Concatenate
/flow/Troubleshoot?varEmail={!Contact.Email}&retURL=/home/home.jsp
Return URL
285
AL
SE
O
N
LY
Flow URL
10 min
Goal:
IN
Your
Turn
TE
R
Scenario:
Universal Containers would like to be able to launch the
candidate wizard from the candidate list view.
Tasks:
1. Activate the flow version.
2. Deploy the flow using a custom button.
3. Modify the Recruiting and HR profile to give them the Run
Flows permission.
4. Run the flow.
286
143
Application Essentials
287
TE
R
Review
AL
SE
O
N
LY
IN
288
144
Application Essentials
289
AL
SE
O
N
LY
Module 16:
Auditing
Processes
TE
R
Module Objectives
By the end of this module, you will be able to:
IN
290
145
Application Essentials
Module Agenda
Auditing Configuration Changes
Auditing Data
291
AL
SE
O
N
LY
TE
R
IN
292
146
Application Essentials
Join
Me
Goal:
View the Setup Audit Trail.
Scenario:
Universal Containers needs to be able to track all changes to
Salesforce.
Tasks:
1. View Setup Audit Trail.
LY
293
AL
SE
O
N
TE
R
Module Agenda
Auditing Data
IN
294
147
Application Essentials
295
AL
SE
O
N
LY
TE
R
Logging Comparison
Debug Logs
Field History
Configuration
changes by
administrators and
developers
Examples
Execution of Apex
code trigger or
workflow rule
Updates to Status or
Pay Grade field
Change to a
workflow rule, field
data type
Limits
IN
Tracks
2 MB per log
50 MB per org
296
148
Application Essentials
Goal:
Your
Turn
297
AL
SE
O
N
LY
TE
R
Module Agenda
Auditing Data
IN
298
149
Application Essentials
299
AL
SE
O
N
LY
TE
R
IN
300
150
Application Essentials
301
AL
SE
O
N
LY
TE
R
IN
302
151
Application Essentials
303
AL
SE
O
N
LY
TE
R
Module Review
IN
2. True or False: Field History Tracking tracks both the old and
new values of fields for all field types.
304
152
Application Essentials
305
AL
SE
O
N
LY
TE
R
Module Agenda
Export data
Delete data
IN
Insert data
Update data
Upsert data
Tools for Data Management
Bulk API
306
153
Application Essentials
Exporting Data
Data can be exported from Salesforce
Used for:
Backing up data
Obtaining the ID for various records
307
AL
SE
O
N
data Export
LY
TE
R
Module Agenda
Export data
Delete data
IN
Insert data
Update data
Upsert data
Tools for Data Management
Bulk API
308
154
Application Essentials
Deleting Data
Data can be deleted from Salesforce.
Used for:
Free up space
Fix mistakes!
O
N
LY
Deleting data
309
AL
SE
TE
R
Module Agenda
Export data
Delete data
IN
Insert data
Update data
Upsert data
Tools for Data Management
Bulk API
310
155
Application Essentials
Inserting Data
Data from .csv files can be uploaded.
Used for:
Initial setup.
data migration from legacy/outside systems.
311
AL
SE
O
N
data Insert
LY
TE
R
IN
156
Application Essentials
Module Agenda
Export data
Delete data
Insert data
Update data
Upsert data
Tools for Data Management
313
TE
R
Updating Data
AL
SE
O
N
LY
Bulk API
Used for:
IN
Update Existing
Records
Match ID to
Existing
Records
157
314
Application Essentials
O
N
LY
005E0000000KF38iaG
315
AL
SE
TE
R
1.URL
URL: 15 digit
IN
Report: 15 digit
4.Formulas
Formulas: 15 digit
Apex: 18-digit
Visualforce: 18-digit
316
158
Application Essentials
317
AL
SE
O
N
LY
Requires:
Transfer Record/
Transfer Leads
permission
Edit on the object
Read on the records
being transferred.
10 min
Goal:
IN
Your
Turn
TE
R
Scenario:
Universal Containers (UC) realizes that the recruiting data loaded
into its Recruiting App has been assigned to the wrong owner.
The company needs to clean up the ownership without executing
an additional data load.
Tasks:
Use the mass transfer records feature to assign all positions, job
applications, candidates, and offers to Phil Katz.
318
159
Application Essentials
Module Agenda
Export data
Delete data
Insert data
Update data
Upsert data
Tools for Data Management
319
TE
R
Upsert Data
AL
SE
O
N
LY
Bulk API
IN
Update Existing
Records
Create New
Record
Match ID to
Existing
Records
160
320
Application Essentials
External IDs
Typically used for migrations and integrations between Salesforce and
other systems:
Useful to have external foreign key to link data in both systems.
Helps in auditing flow of information across systems.
Use with upsert to integrate records from other systems.
A flag can be added to a custom field
to mark it as a external ID.
LY
SE
O
N
AL
321
TE
R
ID
IN
Legacy System
Position
Hiring Manager
p1
QA Tech
u1
p2
DBA
u1
p3
HR Asst
u2
Position
Legacy
ID
SF
ID
Position
Hiring
Manager
p1
a05p1
QA Tech
00501
p2
a05p2
DBA
00501
p3
a05p3
HR Asst
00502
322
161
Application Essentials
Object Relationships
Object relationships effect the order in which data can be managed.
Relationships are expressed through:
Related lists and lookups in the application.
323
AL
SE
O
N
LY
TE
R
IN
324
162
Application Essentials
Legacy System
Position
p1
QA Tech
p2
DBA
u2
p3
HR Asst
u3
Position
Hiring Manager
u1
Legacy
ID
SF
ID
Position
Hiring
Manager
p1
a05p1
QA Tech
00501
p2
a05p2
DBA
00502
p3
a05p3
HR Asst
00503
Place Salesforce ID of
corresponding User in Position
record to form lookup
relationship
SF ID
Last Name
Legacy ID
00501
McCann
u1
00502
Jones
u2
00503
Hanson
u3
325
AL
SE
User
LY
ID
O
N
TE
R
IN
Object
Order
Candidates
Interviewers
Job Applications
Offers
Positions
Reviews
Users
326
163
Application Essentials
Review
1. What is the advantage of performing upserts rather than
insert on large data sets?
2. Why can it be dangerous to work with the 15-digit casesensitive form of the record ID?
3. How do you make a field an External ID field?
LY
327
AL
SE
O
N
TE
R
Module Agenda
Export data
Delete data
IN
Insert data
Update data
Upsert data
Tools for data management
Bulk API
328
164
Application Essentials
API-Based Tools
Accounts
Contacts
Data Loader
Leads
Partner Tools
Solutions
Custom-built Tools
329
AL
SE
O
N
LY
Custom Objects
TE
R
Import Wizards
Accounts
IN
Contacts
Leads
Solutions
Custom Objects
Load 50,000 records or less
330
165
Application Essentials
331
AL
SE
O
N
LY
TE
R
IN
332
166
Application Essentials
333
AL
SE
O
N
LY
15 min
Goal:
IN
Join
Me
TE
R
Universal Containers (UC) would like to load legacy recruiting data into
the Recruiting App.
Tasks:
1. Download the legacy position data.
2. Upload the legacy position records.
3. Go into the app and view some of the positions you have inserted.
334
167
Application Essentials
335
AL
SE
O
N
LY
TE
R
IN
Tool
Pros
Cons
Import Wizard
Data Loader/
API Tool
336
168
Application Essentials
Goal:
Your
Turn
Insert the Candidate records via the Data Loader GUI tool.
Scenario:
Universal Containers (UC) would like to load legacy recruiting data into
the Recruiting App while limiting the possibility of creating duplicate
records.
Tasks:
1. Upsert the candidate data from the Candidates.csv file into
Salesforce.
337
AL
SE
O
N
LY
2. Go into the app and view some of the candidates you have inserted.
10 min
Your
Turn
TE
R
Upsert the remaining legacy records via the Data Loader GUI tool.
IN
Scenario:
Universal Containers (UC) would like to load the rest of the legacy
recruiting data into the Recruiting App.
Tasks:
Execute an upsert of the legacy records via the Data Loader using
existing mapping files.
338
169
Application Essentials
Module Agenda
Export data
Delete data
Insert data
Update data
Upsert data
Tools for Data Management
339
TE
R
Bulk API
AL
SE
O
N
LY
Bulk API
IN
The Bulk API should only be used for over 50k records or
for time-sensitive loads if there are over 200 records.
170
340
Application Essentials
Job
Client
Send all data
to server in
large batches
Processing Servers
Processing Thread
Processing Thread
Dequeue
batch from
job
Data batch
Data batch
Data batch
Insert or
update
records
LY
Check status
Results
Results
O
N
Save results
to job
Results
341
AL
SE
Retrieve
results
TE
R
IN
When the Bulk API is selected, users with the Bulk API Hard Delete
permission can perform a hard delete.
Hard delete bypasses the Recycle Bin, so deleted records do not
consume storage space and there is no way to retrieve them.
342
171
Application Essentials
343
TE
R
Review
AL
SE
O
N
LY
To track the status of bulk data load jobs, click Your Name | Setup |
Monitoring | Bulk data Load Jobs.
1. True or False: The Data Loader is the only way to utilize the
Bulk API.
IN
344
172
Application Essentials
345
TE
R
Story
AL
SE
O
N
LY
Module 18:
Enhancing the
User Interface
Using Visualforce
IN
173
Application Essentials
Module Agenda
What is Visualforce?
Creating a Visualforce page
Parts of a Visualforce page
Templates in Visualforce
347
Visualforce Pages
TE
R
Story
AL
SE
O
N
LY
IN
348
174
Application Essentials
What is Visualforce?
Developer-generated interface
Provides full control of user interface and behavior
349
AL
SE
O
N
<apex:page>
<apex:detail relatedList="false"/>
</apex:page>
LY
TE
R
IN
Controller
Standard
View
Pages
User Interface
Page Layouts
Visualforce
Components
Business Logic
Standard or
Custom Apex
Custom
Model
Data and
Objects
Data Model
Salesforce Data
and Objects
350
175
Application Essentials
Visualforce
Developer-generated interface
Maintained by developer
Full control of interface and behavior
Does not automatically get new
features
Can be accessed outside of
Salesforce
Behavior
LY
Custom
Visualforce
Visualforce and
custom Apex
SE
Custom
O
N
351
AL
Standard
TE
R
IN
176
Application Essentials
Join
Me
Goal:
Determine if these scenarios are best solved using Visualforce.
Task:
353
AL
SE
O
N
LY
TE
R
Module Agenda
What is Visualforce?
IN
354
177
Application Essentials
LY
https://na14.salesforce.com/apex/HelloWorld
Org Location
355
AL
SE
O
N
Page Name
TE
R
IN
Inline Editor
Developer Console
IDE
356
178
Application Essentials
O
N
LY
SE
AL
357
IN
TE
R
Search
syntax
Undo/redo
Change size
Disable editor
Save
Page syntax
Hide editor
Component
reference
Where
page is
used
358
179
Application Essentials
Join
Me
Goal:
Create and save the Offer Quick Edit Visualforce page.
Scenario:
The Universal Containers recruiting team needs a fast way to
update the expiration data and status for offers.
Tasks:
1. Perform the one-time setup steps to create Visualforce
pages.
359
AL
SE
O
N
LY
TE
R
IN
180
Application Essentials
361
AL
SE
O
N
LY
TE
R
Module Agenda
What is Visualforce?
IN
362
181
Application Essentials
LY
Flash
Text
O
N
File-based content
363
AL
SE
TE
R
Controller
IN
<apex:page standardController="Position__c">
<!--Display the users name and greeting -->
HTML
<b>Hello {!$User.FirstName}!</b> <br/> <br/>
Text
<apex:variable var="X" value="{!Offer__c}"/>
<!--Chatter feed -->
<chatter:feed entityId="{!p.id}" rendered="true"/>
<!--Quick Edit section-->
<apex:form >
Component
<apex:pageBlock title="Quick Edit" tabStyle="Zip_Code__c">
<apex:pageBlockSection columns="3">
<apex:inputField value="{!X.name}"/>
<apex:inputField value="{!X.Status__c}"/>
Component Attributevalue="Update"/>
<apex:commandButton action="{!save}"
</apex:pageBlockSection>
.
.
.
364
182
Application Essentials
Comments in Visualforce
<!--This is a comment. -->
365
AL
SE
O
N
LY
<apex:page>
<!--Display a greeting -->
<b>Hello!</b> <br/> <br/>
</apex:page>
TE
R
IN
<apex:page standardController="Position__c>
Object controller being used
366
183
Application Essentials
Custom Controllers
367
AL
SE
O
N
LY
10 min
Goal:
Modify the Offer Quick Edit page to include the Offer standard
controller.
IN
Join
Me
TE
R
Task:
368
184
Application Essentials
Component
Component attribute
<apex:detail relatedList="false"/>
Parts of an attribute:
Attribute Name
Attribute value
<apex:detail relatedList="false"/>
LY
<apex:inputField value="{!Offer__C.Offer_Expiration_Date__c}"/>
Object/field reference
369
AL
SE
O
N
Expression
TE
R
IN
<apex:page standardController="Offer__c">
<apex:inputField value="{!Offer__c.Offer_Expiration_Date__c}"/>
</apex:page>
<b>Hello {!$User.FirstName}!</b>
Some examples
{!$User.fieldName}
{!$Page.otherVisualforcePage}
370
185
Application Essentials
Component Examples<apex:page>
Represents a single Visualforce page. All pages must be surrounded by
this component.
371
AL
SE
O
N
LY
<apex:page standardController="Offer__c>
TE
R
Component Examples<apex:pageMessages>
Displays all messages generated for all components on the current page.
IN
<apex:pageMessages />
372
186
Application Essentials
Component Examples<chatter:feed>
Displays the Chatter feed for a record.
373
AL
SE
O
N
LY
<chatter:feed entityId="{!Offer__c.id}"/>
TE
R
Component Examples<apex:form>
Enables a section of the page to allow users to enter and submit data.
IN
<apex:form >
.
.
.
<apex:inputField value="{!Offer__c.Offer_Expiration_Date__c}"/>
.
.
.
</apex:form>
374
187
Application Essentials
Component Examples<apex:inputField>
Displays an input element for a value that corresponds to a field on a
Salesforce object. It respects the attributes of the associated field.
375
AL
SE
O
N
LY
<apex:inputField value="{!Offer__c.Offer_Expiration_Date__c}"/>
TE
R
Component Examples<apex:detail>
Displays the standard detail page for a particular object.
IN
<apex:detail relatedList="false"/>
376
188
Application Essentials
Usage example
377
AL
SE
O
N
LY
Component attributes
15 min
Goal:
IN
Your
Turn
TE
R
Task:
378
189
Application Essentials
Custom Components
Place a custom user interface element in a custom component to reuse
it several times in one or more Visualforce pages.
<apex:page>
<c:ComponentName/>
</apex:page>
379
AL
SE
O
N
LY
<apex:component>
<apex:attribute name="contents" description="The contents of the
box." type="String" required="true"/>
.
.
.
</apex:component>
15 min
Goal:
Modify the existing Offer Quick Edit page to include all the
components needed to complete it.
IN
Join
Me
TE
R
Scenario:
The Universal Containers recruiting team needs a fast way to
update the expiration data and status for offers.
Tasks:
1. Add the needed components to complete the Quick Edit
section.
2. Hide the related lists on the page.
380
190
Application Essentials
Visualforce Pages
Story
381
AL
SE
O
N
LY
Developer
I can make these changes using Visualforce. Ill get right on it.
Like Today at 8:26 AM
TE
R
IN
<apex:form >
<apex:pageBlock title="Main Detail" mode="edit">
<apex:pageblockButtons >
<apex:commandButton action="{!save}" value="Save"/>
<apex:commandButton action="{!cancel}" value="Cancel"/>
</apex:pageblockButtons>
<apex:pageBlockSection columns="2">
<apex:inputField value="{!Review__c.Interviewer__c}"/>
<apex:inputField value="{!Review__c.Job_Application__c}"/>
</apex:pageBlockSection>
</apex:pageBlock>
</apex:form>
pageBlock
pageblockButtons
inputField
pageBlockSection
382
191
Application Essentials
Goal:
Your
Turn
O
N
LY
383
AL
SE
15 min
Goal:
Create a Visualforce page for the Review object that displays the
score fields as radio buttons.
Scenario:
Universal Containers would like the Review object's Edit page to
provide more guidance about what score should be entered. They
would like the score fields to be replaced with radio buttons.
Task:
1. Create the review page.
2. Add the components to display the Save and Cancel buttons.
3. Add the components to display the fields in the information
section.
4. Add the needed components to display radio buttons for the
score fields.
5. Override the review edit page.
6. Test the new page.
IN
Your
Turn
TE
R
384
192
Application Essentials
Module Agenda
What is Visualforce?
Creating a Visualforce page
Parts of a Visualforce page
Templates in Visualforce
385
AL
SE
O
N
LY
IN
Assigned to:
TE
R
Story
ECR
ECR Number
Due in
ECR_000003
5 days
Priority
Notes:
Ben Stuart
SW Dev Manager
193
Application Essentials
Templates in Visualforce
Page
SE
O
N
LY
Template
AL
387
TE
R
IN
<apex:page>
<apex:outputPanel layout="none">
<apex:insert name="Header"/>
<apex:pageMessages/>
</apex:outputPanel>
<apex:panelGrid Columns="3">
<apex:outputPanel>
<apex:insert name="LeftNav"/>
</apex:outputPanel>
<apex:outputPanel>
<apex:insert name="Main"/>
</apex:outputPanel>
<apex:outputPanel>
<apex:insert name="Social"/>
</apex:outputPanel>
</apex:panelGrid>
</apex:page>
Header
LeftNav
Main
Social
194
Application Essentials
O
N
LY
<apex:page standardController="Object__c">
<apex:composition template="{!$Page.Template}">
<apex:define name="Header">
<apex:sectionHeader title="Console Page"/>
</apex:define>
<apex:define name="LeftNav">
<apex:form >
<apex:pageBlock mode="detail">
<apex:pageBlockButtons>
<apex:commandButton action="{!edit}" value="Edit"/>
</apex:pageBlockButtons>
</apex:pageBlock>
</apex:form>
</apex:define>
389
AL
SE
25 min
Goal:
IN
Your
Turn
TE
R
Scenario:
The Universal Containers recruiting team would like a console page
that pulls in information from Job Application, Position, and
Candidate. Instead of building a one-off Job Application console
page, a template should be built so it can be used for several
different console pages.
Tasks:
1.
2.
3.
Override the Job Application view to use the new console page.
4.
5.
195
Application Essentials
Images
Flash
Style sheets
JavaScript
PDFs
391
AL
SE
O
N
LY
TE
R
IN
196
Application Essentials
393
AL
SE
O
N
LY
<apex:stylesheet>
10 min
Goal:
IN
Your
Turn
TE
R
Scenario:
The Universal Containers recruiting team wants to highlight that
the job application information is confidential. They would like the
Confidential graphic to display on the console page.
Tasks:
1. Upload the Confidential graphic as a static resource.
2. Add the image to the console page.
394
197
Application Essentials
Module Agenda
What is Visualforce?
Creating a Visualforce page
Parts of a Visualforce page
Templates in Visualforce
395
AL
SE
O
N
LY
TE
R
IN
Do Not:
Do:
396
198
Application Essentials
Module Review
1. What kind of content can be included in a Visualforce page?
2. What are controllers? Where are they referenced in the
page?
3. What are components?
4. What does Development mode enable?
397
TE
R
AL
SE
O
N
LY
IN
Module 19:
Additional Uses
for Visualforce
398
199
Application Essentials
Story
Cynthia Capobianco
CEO
Megan Smith
VP Human Resources
TE
R
Story
AL
SE
Ben Stuart
SW Dev Manager
O
N
LY
IN
Megan Smith
VP Human Resources
Ben Stuart
SW Dev Manager
Cynthia Capobianco
CEO
200
Application Essentials
O
N
LY
<apex:stylesheet value="{!$Resource.JobAppStyleSheet}"/>
SE
TE
R
IN
Story
AL
401
Cynthia Capobianco
CEO
Ben Stuart
SW Dev Manager
Megan Smith
VP Human Resources
201
Application Essentials
403
AL
SE
O
N
LY
TE
R
IN
404
202
Application Essentials
Your
Turn
Goal:
Create a Visualforce page that displays a list of candidates and a
website.
Scenario:
Universal Containers wants to display the Employee Referral
page at the bottom of the candidate list view page, so employees
can easily refer people to the company.
LY
405
AL
SE
O
N
15 min
Goal:
IN
Your
Turn
TE
R
Scenario:
The Recruiting team would like a page that displays all the
available positions where they can edit the status of multiple
positions.
Tasks:
1. Create a Visualforce page that displays a list of positions.
2. Add the Save and Cancel buttons .
3. Add the needed columns.
406
203
Application Essentials
Story
Megan Smith
VP Human Resources
Cynthia Capobianco
CEO
AL
SE
Ben Stuart
SW Dev Manager
O
N
LY
TE
R
IN
<flow:interview name="candidate_try"/>
204
Application Essentials
Goal:
Your
Turn
LY
409
TE
R
IN
Story
AL
SE
O
N
Megan Smith
VP Human Resources
Ben Stuart
SW Dev Manager
Cynthia Capobianco
CEO
205
Application Essentials
As an embedded page:
As sections of pages
Include in a dashboard
411
AL
SE
O
N
LY
15 min
Goal:
Create a Visualforce page that displays the Job Posting site and
add it to a page layout.
IN
Your
Turn
TE
R
Scenario:
Universal Containers wants to display the website listed in the
Job Posting site record below the record details.
Tasks:
1. Create a Visualforce page that displays the website based on
the information in the record
2. Insert the page into the Job Posting site page layout.
412
206
Application Essentials
Story
Megan Smith
VP Human Resources
Cynthia Capobianco
CEO
AL
SE
Ben Stuart
SW Dev Manager
O
N
LY
TE
R
IN
414
207
Application Essentials
Including JavaScript
To include JavaScript:
Upload the JavaScript function as a static resource and call the function
using the includeScript component:
<apex:includeScript value="{!$Resource.JavascriptFilename}"/>
or
Create a reusable JavaScript function within <script> tags.
O
N
LY
415
AL
SE
TE
R
IN
<script language="JavaScript">
function changeFont(input, textid) {
if(input.checked) document.getElementById(textid).style.fontWeight = "bold";
else document.getElementById(textid).style.fontWeight = "normal";
}
</script>
.
.
.
<!-- outputPanel calls the function -->
<apex:outputPanel layout="block">
<label for="changebox">Click to change the text: </label>
<apex:inputCheckbox id="changebox" onclick="changeFont(this,'{!$Component.Panel}');"/>
</apex:outputPanel>
<!-- outputPanel contains the text to changed. -->
<apex:outputPanel id="Panel" layout="block">Change me!
</apex:outputPanel>
208
Application Essentials
JavaScript Events
Many Visualforce components support JavaScript event attributes.
apex:selectOption
Attribute Name
Description
onclick
Required
ondblclick
LY
apex:dataTable
Description
Required
onmousedown
onmousemove
417
AL
SE
O
N
Attribute Name
20 min
Goal:
IN
Your
Turn
TE
R
Scenario:
Universal Containers wants the fields specific to a technical
position to appear only when the department is set to either
Engineering or IT.
Tasks:
1. Create a Visualforce page based on the Position page.
2. Add the partial page update to the page.
3. Override the Position New button.
4. Test the page.
418
209
Application Essentials
Story
Cynthia Capobianco
CEO
O
N
LY
Megan Smith
VP Human Resources
AL
SE
Ben Stuart
SW Dev Manager
TE
R
IN
2.
3.
4.
Set the security and make the pages visible on the site.
5.
420
210
Application Essentials
What is Site.com?
Site.com is a Web content management system (CMS) that makes it
easy to build, edit, and manage websites and Salesforce Communities.
O
N
Publish to a
domain
421
AL
SE
Upload site
assets
LY
TE
R
IN
Force.com Sites
422
211
Application Essentials
Story
Ben Stuart
SW Dev Manager
Megan Smith
VP Human Resources
AL
SE
Cynthia Capobianco
CEO
O
N
LY
TE
R
Salesforce Classic
IN
Supported on:
424
212
Application Essentials
425
AL
SE
O
N
LY
IN
TE
R
Salesforce Touch
A version of
Salesforce
designed
specifically for
touchscreen
mobile devices.
Supported on:
iPad 2 or later
iPad Mini
iPhone 4 or later
(with iOS 6.0 or higher)
Accessible via:
iPad Web browser
App from the iTunes
App Store or
AppExchange
Visualforce tabs
are supported.
426
213
Application Essentials
Module Review
1. Where can Visualforce be used on a page layout?
2. Where should a CSS file be uploaded for use on a
Visualforce page?
3. Name one difference between Force.com Sites and
Site.com.
427
AL
SE
O
N
LY
TE
R
IN
428
214
Application Essentials
www.salesforce.com/training
Certification Webpage:
certification.salesforce.com
LY
Follow us on Twitter:
O
N
@SalesforceCert
IN
TE
R
AL
SE
215
Application Essentials
LY
SE
O
N
IN
TE
R
AL
Exercise Guide
LY
O
N
SE
U
AL
N
TE
R
IN
Copyright 2013 salesforce.com, inc. All rights reserved.
Table of Contents
3-1: Create Custom Objects ....................................................................................................... 1
3-2: Create Custom Fields ......................................................................................................... 3
3-3: Create Lookup Relationships .............................................................................................. 8
3-4: Create Master-Detail Relationships ....................................................................................10
3-5: Create a Custom Junction Object ......................................................................................12
3-6: Create a Lookup Filter .......................................................................................................14
4-1: Create a Custom Application..............................................................................................15
4-2: Create Custom Tabs ..........................................................................................................17
LY
O
N
SE
AL
TE
R
IN
LY
O
N
SE
AL
TE
R
IN
LY
Task:
Create a custom Position object.
O
N
Time:
AL
Instructions:
SE
5 minutes
IN
TE
R
i. Label: Position
ii. Plural Label: Positions
iii. Object Name: Position (This field auto-populates.)
iv. Record Name: Title
v. Data Type: Text
vi. Allow Reports: (selected)
vii. Allow Activities: (selected)
viii. Track Field History: (selected)
ix. Deployment Status: Deployed
x. Add Notes & Attachments related list to default page layout: (selected)
xi. Launch New Custom Tab Wizard after saving this custom object: (cleared)
C. Click Save.
Review
1. What database object is similar in concept to a custom object?
_________________________________________________________________________
_________________________________________________________________________
_________________________________________________________________________
2. What further advantages does a Salesforce object provide?
_________________________________________________________________________
_________________________________________________________________________
LY
_________________________________________________________________________
3. Where in the application is the plural label used?
O
N
_________________________________________________________________________
_________________________________________________________________________
IN
TE
R
AL
SE
_________________________________________________________________________
LY
O
N
Time:
Instructions:
1. Add custom fields to the Position object.
TE
R
AL
A.
B.
C.
D.
SE
20 minutes
IN
Date Closed
Date/Time
Date Opened
Picklist
Picklist
Picklist Values/Notes
Status
New
Open
Closed
Sub-Status
Pending
Approved
Not Approved
Filled
Cancelled
Picklist Values/Notes
Department
Engineering
IT
Finance
Support
Sales
Picklist
Location
San Francisco, CA
New York, NY
Atlanta, GA
London, United Kingdom
Number
Duration
Text Area
Job Description
Decimal Places: 0
SE
Text
Max Pay
AL
Currency
Required: selected
Min Pay
Picklist
Priority
Critical
High
Medium
Low
Education
Skills Required
Responsibilities
Date
Start Date
Picklist
Type
IN
TE
R
Currency
Length: 3,
O
N
Picklist
LY
Full Time
Part Time
Temp
Pay Grade
ENG-100
ENG-200
ENG-300
ENG-400
S-100
S-200
S-300
S-400
O
N
SE
In the Custom Fields & Relationships related list, click Field Dependencies.
Click New.
Controlling Field: Department
Dependent Field: Pay Grade
Click Continue.
Edit the Field Dependencies based on the chart below.
A.
B.
C.
D.
E.
F.
C-100
C-200
C-300
C-400
IT-100
IT-200
IT-300
IT-400
ACT-100
ACT-200
ACT-300
ACT-400
LY
Picklist
Picklist Values/Notes
Finance
Engineering
Support
IT
TE
R
Sales
AL
Note: To create dependencies, highlight the values in each column that should be
available when a user selects that value, then click Include Values. You can use SHIFT
and CTRL to select more than one value at a time.
IT-100
ACT-100
ENG-100
S-100
C-200
IT-200
ACT-200
ENG-200
S-200
C-300
IT-300
ACT-300
ENG-300
S-300
C-400
IT-400
ACT-400
ENG-400
S-400
IN
C-100
G. Click Save.
H. Click New.
i. Controlling Field: Status
ii. Dependent Field: Sub-Status
I. Click Continue.
J. Edit the Field Dependencies as instructed in Step 2, F.
i. Open: Pending, Approved
ii. Closed: Not Approved, Filled, Cancelled
iii. New: (none selected)
K. Click Include Values.
Copyright 2013 salesforce.com, inc. All rights reserved.
Building Applications with Force.com Exercise Guide Page 5 of 144
L. Click Save.
M. When you receive a pop-up message that says, 1 controlling values have no dependent
values included. Save anyway? click OK.
3. Add a field for the Social Security Number on the Candidate object.
A. Click Setup | Create | Objects | Candidate.
B. Under the Custom Fields & Relationships related list, click New.
O
N
LY
IN
TE
R
AL
SE
C. Set the field visible for the Custom-HR, Custom-Executive, and System Administrator
profiles and click Next.
D. Accept the default to add the field to the Candidate Layout, click Save.
Review
1. Which field data types can be controlling fields for dependent picklists?
_________________________________________________________________________
_________________________________________________________________________
_________________________________________________________________________
2. True or False? Only custom fields can be made universally required.
_________________________________________________________________________
_________________________________________________________________________
LY
_________________________________________________________________________
3. Can changing the data type of an existing custom field lead to data loss?
O
N
_________________________________________________________________________
_________________________________________________________________________
IN
TE
R
AL
SE
_________________________________________________________________________
LY
O
N
5 minutes
SE
Instructions:
AL
TE
R
i.
ii.
iii.
iv.
v.
vi.
IN
C. Click Next.
D. Set the field visible for the Custom-HR, Custom-Executive, and System Administrator
profiles and click Next.
E. To accept the defaults to add the reference field to Page Layouts, click Next.
F. To accept the defaults to add Custom Related Lists, click Save.
2. Create a lookup relationship between Position and Hiring Manager.
A. Click Setup | Create | Objects | Position.
B. In the Custom Fields & Relationships related list, click New.
i.
ii.
iii.
iv.
v.
vi.
vii.
IN
TE
R
AL
SE
O
N
LY
C. Set the field visible for the Custom-HR, Custom-Executive, and System Administrator
profiles and click Next.
D. To accept the defaults to add the reference field to Page Layouts, click Save.
LY
In addition, job application records and review records should have a similar relationship.
Tasks:
O
N
SE
5 minutes
Instructions:
AL
TE
R
IN
i.
ii.
iii.
iv.
v.
vi.
vii.
LY
_________________________________________________________________________
_________________________________________________________________________
IN
TE
R
AL
SE
O
N
_________________________________________________________________________
O
N
Time:
LY
Tasks:
AL
Instructions:
SE
5 minutes
IN
TE
R
i.
ii.
iii.
iv.
v.
vi.
vii.
LY
IN
TE
R
AL
SE
O
N
LY
Time:
O
N
5 minutes
Instructions:
AL
A.
B.
C.
D.
SE
i.
ii.
iii.
iv.
v.
vi.
IN
TE
R
E. Click Save.
O
N
LY
5 minutes
Instructions:
A. Click Setup | Create | Apps.
B. Click New.
SE
C. Click Next.
D. Click Insert an Image.
AL
TE
R
IN
E. Click Next.
F. Hold CTRL and select Reports, Documents, Dashboards, Offers,
Candidates, Job Applications, Reviews, Job Posting Sites, and
Interviewers from the Available Tabs list.
i. Click Add to move selected items to the Selected Tabs list.
ii. Set the Default Landing Tab to Home.
G. Click Next.
H. Make the app visible to the Custom-HR, Custom-Executive, and System Administrator
profiles by checking the Visible checkbox on the correct profiles.
I. Click Save.
Review
1. How do you switch applications as a user in the Salesforce user interface?
_________________________________________________________________________
_________________________________________________________________________
_________________________________________________________________________
2. Can a Salesforce object exist independent of an application?
_________________________________________________________________________
LY
_________________________________________________________________________
IN
TE
R
AL
SE
O
N
_________________________________________________________________________
LY
O
N
Time:
5 minutes
SE
Instructions:
AL
TE
R
i. Object: Position
ii. Tab Style: Desk
iii. Splash Page Custom Link: (leave as --None--)
D. Click Next.
E. Add to Profiles.
Select the Apply one tab visibility to all profiles: Default Off
radio button.
ii. Select the Apply a different tab visibility for each profile radio
button.
iii. Select Default On for the Custom-Executive, Custom-HR, and System Admin
profiles.
iv. Click Next.
IN
i.
LY
i.
O
N
SE
AL
A. Select the Recruiting app from the Force.com App Menu in the upper right-hand
corner.
B. Click All Tabs (+).
C. Click Customize My Tabs.
D. Make the Positions tab appear just to the right of the Home tab.
TE
R
IN
Section Name
Fields
Title
Owner
LY
Information
Department
Location
Priority
O
N
Type
Status
Sub-Status
Date Opened
Hiring Manager
Date Closed
SE
Pay Grade
Duration
Start Date
IN
Job Description
Education
TE
R
Description
AL
Responsibilities
Skills Required
Compensation
Min Pay
Max Pay
System Information
Created By
Last Modified By
Tasks:
1.
2.
3.
4.
Time:
10 minutes
Instructions:
1. Arrange the fields within the sections as noted in the table.
A. Click Setup | Create | Objects | Position.
B. In the Page Layouts related list, click the Edit link next to the Position Layout.
C. Arrange the fields in the Information section according to the chart.
Section Name
Fields
Title
Owner
Type
Priority
Department
Status
Location
Sub-Status
LY
Information
Date Opened
O
N
Pay Grade
Hiring Manager
Date Closed
Duration
Start Date
SE
AL
Section Name
Fields
Description
Job Description
IN
TE
R
B. Drag the Job Description, Education, Responsibilities, and Skills Required fields
from the Information section into the Description section according to the chart.
Education
Responsibilities
Skills Required
B. Drag the Min Pay and Max Pay fields into the Compensation section according to the
chart.
Section Name
Fields
Compensation
Min Pay
Max Pay
4. Set the Status field to be required and add Position History to the Related Lists area.
A. Double-click the Status field and select the Required checkbox.
B. Click OK.
C. Add Position History to the Related Lists area.
LY
O
N
D. Test these changes by clicking the Positions tab in the Recruiting application and adding
a new position.
SE
Review
_________________________________________________________________________
_________________________________________________________________________
AL
_________________________________________________________________________
2. What might be reasons why you would want to have multiple page layouts for the same
object?
TE
R
_________________________________________________________________________
_________________________________________________________________________
_________________________________________________________________________
IN
3. What does the Tab Order control for each section on a page layout?
_________________________________________________________________________
_________________________________________________________________________
_________________________________________________________________________
LY
1. Create a custom formula field that calculates the overall score from the Review object.
2. Create new records to test your formula.
3. Create a new custom formula field that calculates the Days Opened on the Position object.
O
N
Time:
SE
10 minutes
Instructions:
i.
ii.
iii.
iv.
TE
R
AL
IN
A.
B.
C.
D.
E.
1. Create a custom formula field that calculates the overall score from the Review object.
F. Click Next.
G. Add the formula.
i.
C.
D.
E.
F.
G.
Create a new job application record, specifying the candidate you created in step 2, A.
Create a new review record.
Specify the interviewer you created in step 2, B.
Specify the job application you created in step 2, C.
Fill out the fields for scores in Cultural Fit, Experience, and Leadership Skills
(acceptable values are 1-5).
H. After saving the review record, verify that your formula field was correctly updated on the
review.
3. Create a new custom formula field that calculates the Days Opened on the Position object.
i.
ii.
iii.
iv.
O
N
LY
SE
A.
B.
C.
D.
E.
F. Click Next.
G. Add the formula.
i.
AL
Review
IN
TE
R
H. Set the field visible for the Custom-HR, Custom-Executive, and System Administrator
profiles and click Next.
I. Click Save to accept the defaults to add the field to the page layout.
J. Click on the position record created earlier to verify that the number of days open is
being calculated.
1. What happens to the displayed value of a formula field if the user does not have access to
one of the fields used in the formula?
_________________________________________________________________________
_________________________________________________________________________
_________________________________________________________________________
LY
Time:
O
N
5 minutes
Instructions:
SE
1. Create a formula field to pull the candidate full name to display on the offer.
AL
TE
R
i.
IN
D. Click Next.
E. Add the formula.
F. Set the field visible for the Custom-HR, Custom-Executive, and System Administrator
profiles and click Next.
G. Click Save & New to accept the defaults on the Add to Layout page.
2. Create a formula field to pull the position title to display on the offer.
A. In the Data Type field, enter Formula.
B. Click Next.
C. Enter the following field details:
i. Field Label: Position Title
ii. Field Name: Position_Title (This field auto-populates.)
Copyright 2013 salesforce.com, inc. All rights reserved.
Building Applications with Force.com Exercise Guide Page 24 of 144
LY
F. Set the field visible for the Custom-HR, Custom-Executive, and System Administrator
profiles and click Next.
G. Click Save to accept the defaults on the Add to Layout page.
H. Create a new offer record to view the new fields.
O
N
Review
_________________________________________________________________________
SE
_________________________________________________________________________
_________________________________________________________________________
2. What is the limit for cross-object formulas unique relationships per object across all
formulas and rules?
AL
_________________________________________________________________________
_________________________________________________________________________
IN
TE
R
_________________________________________________________________________
LY
1. Create a roll-up summary field for Total Reviews on the Job Application object.
2. Create a roll-up summary field for Review Scores on the Job Application object.
3. Create a formula field that calculates the Average Review Score for a job application.
Time:
O
N
10 minutes
SE
Instructions:
1. Create a roll-up summary field for Total Reviews on the Job Application object.
TE
R
AL
IN
C. Click Next.
D. Set the field visible for the Custom-HR, Custom-Executive, and System Administrator
profiles and click Next.
E. Click Save & New to accept the defaults and add to page layouts.
2. Create a roll-up summary field for Review Scores on the Job Application object.
A. Continue from previous task.
i. Data Type: Roll-Up Summary
ii. Click Next.
iii. Field Label: Total Review Score
iv. Field Name: Total_Review_Score (This field auto-populates.)
v. Click Next.
vi. Summarized Object: Reviews
vii. Roll-Up Type: Sum
viii. Field to Aggregate: Overall Score
Copyright 2013 salesforce.com, inc. All rights reserved.
Building Applications with Force.com Exercise Guide Page 26 of 144
LY
O
N
i.
ii.
iii.
iv.
v.
vi.
B. Click Next.
C. Add the formula:
i.
SE
TE
R
Review
AL
D. Set the field visible for the Custom-HR, Custom-Executive, and System Administrator
profiles and click Next.
E. Click Save to accept the defaults and add the field to the page layout.
IN
_________________________________________________________________________
_________________________________________________________________________
2. Are roll-up summary fields the same as formula fields?
_________________________________________________________________________
_________________________________________________________________________
_________________________________________________________________________
O
N
1.
2.
3.
4.
5.
LY
Tasks:
SE
Time:
15 minutes
AL
Instructions:
TE
R
IN
vii. Repeat these steps for the Contacts, Ideas, Leads, Opportunities, Price Books,
Products, and Solution objects.
B. Set the custom object permissions to Read, Create, and Edit access.
O
N
Interviewers
Job Applications
Job Postings
Job Posting Sites
Offers
Reviews
SE
LY
AL
A.
B.
C.
D.
TE
R
A. Set the Position object for the Custom-Executive, Custom-HR, and System Administrator
access:
Profile
Object Access
Custom-HR
System Administrator
IN
Custom-Executive
O
N
LY
SE
10 minutes
Instructions:
IN
TE
R
AL
Read
Create
Edit
Delete
Tab Settings
Interviewers
Available
Job Applications
Available
Job Postings
Available
Object
Read
Create
Edit
Delete
Tab Settings
Available
Offers
Available
Positions
Available
Reviews
Available
Object
Read
Create
Edit
Delete
Tab Settings
Interviewers
AL
SE
O
N
LY
Available
Available
Job Postings
Available
Available
Offers
Available
Positions
Available
Reviews
Available
IN
TE
R
Job Applications
A.
B.
C.
D.
E.
F.
G.
H.
I.
J.
K.
L.
M.
TE
R
AL
SE
O
N
LY
IN
i.
ii.
iii.
iv.
v.
LY
Time:
O
N
5 minutes
Instructions:
AL
A.
B.
C.
D.
E.
F.
G.
SE
IN
H. Log out.
TE
R
LY
Tasks:
O
N
SE
10 minutes
Instructions:
D.
E.
F.
G.
H.
I.
J.
TE
R
IN
i.
ii.
iii.
iv.
v.
vi.
AL
Click Next.
Select the Apply one layout to all profiles radio button.
Click Save.
Under Picklists Available for Editing, click the Edit link next to Department.
Remove all but IT and Engineering from the Selected Values.
Click Save.
Click the Back to Custom Object: Position link near the top of the page.
Custom Executive
Custom HR
Custom Recruiter
Copyright 2013 salesforce.com, inc. All rights reserved.
Building Applications with Force.com Exercise Guide Page 34 of 144
IN
TE
R
AL
SE
O
N
LY
Modify the Department picklist to remove the IT and Engineering values. Make sure to
test your work.
LY
O
N
Time:
15 minutes
SE
Instructions:
TE
R
IN
i.
ii.
iii.
iv.
v.
vi.
vii.
AL
Custom Executive
Custom HR
Custom Recruiter
System Administrator profiles
LY
SE
O
N
C. Click Save.
D. Drag a new section from the palette to below the Compensation section.
AL
E. Click OK.
F. Drag the Operating Systems and Programming Languages fields into the new section
from the Information section.
G. Drag the Record Type field into the Information section below the Start Date field.
H. Click Save.
I. Edit the page layout assignments for the Position object so Custom Recruiter and
System Administrator profiles always use the Technical Position page layout, while all
other profiles will use the appropriate layout for the position.
IN
TE
R
LY
O
N
10 minutes
SE
Instructions:
1. Create new page layout for approved positions.
AL
A.
B.
C.
D.
E.
F.
TE
R
IN
Click Next.
Select Apply one layout to all profiles: Approved Position Layout.
Click Save.
Click the Back to Custom Object: Position link.
Under the Record Types related list, click Page Layout Assignment.
Verify that the Approved Position layout is assigned to the Approved Position record
type.
Review
1. What is the advantage of using record types?
O
N
LY
2. Does using record types restrict the records that are available to a profile?
AL
SE
3. A hiring manager creates a position with the record type of Technical Position with a
Department of IT. The record type is then changed to Non-Technical Position. What value
will be displayed in the Department field? What will happen if the record is edited?
IN
TE
R
4. How can users bypass the record type selection screen if they always want to use the same
record type? (Hint: its a user setting.)
5. Is it possible to change the record type of a record after it has been created? Does this
change the page layout used to display that record?
Instructions
1. Create a queue for positions and candidates.
O
N
LY
5 minutes
AL
Review
IN
D. Click Save.
TE
R
i.
ii.
iii.
iv.
v.
vi.
SE
LY
Time:
O
N
5 minutes
Instructions:
TE
R
i.
ii.
iii.
iv.
AL
IN
A.
B.
C.
D.
E.
F.
SE
Interviewers should be permitted to see only those Candidate and Job Application records to
which they have been assigned as interviewers. Additionally, they should only be permitted
to view, create, and modify their own Review records.
Hiring managers should only be able to see a Candidate, Job Application, or Review record
if it is related to a Position for which they are responsible.
Other users should not have access to Candidate, Job Application, and Review records.
O
N
LY
Task:
SE
Update organization-wide defaults for Candidates, Job Applications, and Reviews to limit
general viewing of records.
Time:
AL
5 minutes
Instructions:
IN
A.
B.
C.
D.
E.
F.
TE
R
1. Update organization-wide defaults for Candidates, Job Applications, and Reviews to limit
general viewing of records.
i.
ii.
iii.
iv.
Review
1. Why arent we able to set an organization-wide default for Reviews?
O
N
LY
2. What are the two questions that you should ask yourself when trying to decide how to set
OWD permissions for an object?
IN
TE
R
AL
SE
3. What is fundamentally different about the way OWD affects data than all of the other data
access controls?
LY
O
N
Time:
Instructions:
1. Add a new Product Manager role.
AL
A.
B.
C.
D.
SE
5 minutes
E. Click Save.
TE
R
IN
A.
B.
C.
D.
3. Log in as a Product Manager and as the Director of Product Management to test the
changes to the hierarchy.
A.
B.
C.
D.
E.
Review
1. Can Andy see candidates that are owned by Amy? Can Frank?
IN
TE
R
AL
SE
O
N
LY
2. What is an instance where the role hierarchy might not match a companys management
structure?
Instructions:
1. Create a public group called All Interviewers.
O
N
LY
5 minutes
AL
i.
ii.
iii.
iv.
SE
Review
TE
R
C. Click Save.
IN
Grant interviewers read access on job application and candidate records for people they are
interviewing.
LY
SE
5 minutes
O
N
Task:
Instructions:
AL
1. Establish manual sharing for an existing position. (Note: This must be accomplished on a
record-by-record basis by the owner, the manager of the owner, or the system administrator
of a record.)
IN
TE
R
Review
1. Why is this method not appropriate for a system-wide solution?
IN
TE
R
AL
SE
O
N
LY
2. Who are the three types of users that can grant sharing privileges on a given record?
LY
Create sharing rules to give recruiters the access they need to positions, candidates, job
applications, and reviews.
Time:
O
N
10 minutes
SE
Instructions:
1. Create sharing rules to give recruiters the access they need to positions, candidates, job
applications, and reviews.
TE
R
i.
ii.
iii.
iv.
v.
vi.
AL
IN
D. Click Save.
E. Click OK to the dialog box that appears warning that This operation could take
significant time. Are you sure?
F. Repeat for the Candidate and Job Application objects.
G. Log in as Megan Smith, the VP of Human Resources, to verify that you have access to
all positions, candidates, and job applications.
H. Click Setup | Manage Users | Users.
I. Click the Login link next to Megan Smith.
J. Click the Positions tab, select All from the View picklist, and click Go!
K. Verify that Megan can edit all of the positions that you have created thus far.
Review
1. What are the levels of access that can be granted through sharing rules?
IN
TE
R
AL
SE
O
N
LY
2. Could you create a sharing rule for reviews to share records owned by the entire
organization to a particular user? Why or why not?
LY
Time:
O
N
5 minutes
Instructions:
SE
AL
TE
R
IN
LY
O
N
Time:
20 minutes
SE
Instructions:
AL
A.
B.
C.
D.
TE
R
2. Create a criteria-based sharing rule that gives the entire organization access to open
positions.
A. Click Setup | Security Controls | Sharing Settings.
B. Scroll down to the Position Sharing Rules section and click New.
Label: All View New and Open Positions
Rule Name: All_View_New_and_Open_Positions (This field auto-populates.)
Rule Type: Based on criteria
Criteria: Status | equals | New, Open
Share with: Public Group | All Internal Users
Access Level: Read Only
IN
i.
ii.
iii.
iv.
v.
vi.
C. Click Save.
LY
O
N
1.
2.
3.
4.
5.
SE
Time:
20 minutes
AL
Instructions:
TE
R
IN
i. Label: Salary
ii. Plural Label: Salaries
iii. Object Name: Salary (This field auto-populates.)
iv. Record Name: Salary Number
v. Data Type: Auto Number
vi. Display Format: PAY-{0000}
vii. Starting Number: 1
viii. Allow Reports: (selected)
ix. Allow Activities: (selected)
x. Track Field History: (selected)
xi. Deployment Status: Deployed
xii. Add Notes and Attachments related list to default page layout: (cleared)
xiii. Launch New Custom Tab Wizard after saving this custom object: (cleared)
C. Click Save.
2. Add custom fields to the Salary object.
A. Under the Custom Fields & Relationships related list, click New.
B. Click the Currency radio button under Data Type.
C. Click Next.
Copyright 2013 salesforce.com, inc. All rights reserved.
Building Applications with Force.com Exercise Guide Page 53 of 144
i.
ii.
iii.
iv.
D. Click Next.
E. Make the field visible to these profiles:
i.
ii.
iii.
iv.
O
N
Click Next.
Click Save & New.
Click the Currency radio button under Data Type.
Click Next.
Field Label: Max Pay
Length: 8
Decimal Places: 0
Field Name: Max_Pay
J. Click Next.
K. Make the field visible to these profiles:
SE
F.
G.
H.
I.
Custom Executive
Custom HR
Custom Recruiter
System Administrator profiles
LY
AL
Click Next.
Click Save & New.
Click the Currency radio button under Data Type.
Click Next.
i.
ii.
iii.
iv.
IN
L.
M.
N.
O.
Custom Executive
Custom HR
Custom Recruiter
System Administrator profiles
TE
R
P. Click Next.
Q. Make the field visible to these profiles:
Custom Executive
Custom HR
Custom Recruiter
System Administrator profiles
R. Click Next.
S. Click Save & New.
T. Click the Lookup Relationship radio button under Data Type.
Copyright 2013 salesforce.com, inc. All rights reserved.
Building Applications with Force.com Exercise Guide Page 54 of 144
U. Click Next.
V. Select Position from the Related To picklist.
W. Click Next.
i. Field Label: Position
ii. Field Name: Position
X. Click Next.
Y. Set the field visible for the Custom-HR, Custom-Executive, Custom-Recruiter, and
System Administrator profiles and click Next.
Z. Click Next to add the field to the Salary Layout.
AA.Click Save to add the Salary Related List to all three Position Layouts.
O
N
SE
AL
H.
I.
J.
K.
L.
M.
Click Manage Users | Profiles, then click the Custom Recruiter link.
Click Object Settings.
Click on the Salaries object.
Click Edit.
Select Read, Edit, and Create in the Object Permissions table.
Click Save.
Repeat this for the Custom Executive and Custom HR profiles to give them Read,
Edit, and Create access to the Salaries object.
Click Manage Users | Permission Sets, then click on the Hiring Managers link.
Click Object Settings.
Click on the Salaries object.
Click Edit.
Select Read in the Object Permissions table.
Click Save.
A.
B.
C.
D.
E.
F.
G.
LY
3. Give hiring managers and recruiters access to the new Salary Object.
TE
R
IN
i. Salary: Private
ii. Grant Access Using Hierarchies: (all cleared)
C. Click Save.
5. Remove the Min Pay and Max Pay fields and the Compensation section from the Position
page layouts.
A.
B.
C.
D.
E.
O
N
LY
1. Create a new formula field to show a green, yellow, or red flag on a job application record,
depending on the Average Review Score.
2. Test the customization by looking at a job application record to see the new Rating field.
3. Add the new Rating field to the Job Application related list on the Position page layout.
Time:
SE
10 minutes
Instructions:
AL
1. Create a new formula field to show a green, yellow, or red flag on a job application record,
depending on the Average Review Score.
TE
R
IN
D. Click Next.
A.
B.
C.
D.
3. Add the new Rating field to the Job Application related list on the Position page layout.
A. Click Setup | Create | Objects | Position.
B. Scroll down to the Page Layouts related list, then click the Edit link next to Position
Layout.
LY
IN
TE
R
AL
SE
O
N
C. Click OK.
D. Click Save.
LY
O
N
Time:
Instructions:
1. Create a new field for the Picture ID.
AL
A.
B.
C.
D.
SE
15 minutes
TE
R
IN
E. Click Next.
F. Set the field visible for the Custom-HR, Custom-Executive, Custom-Recruiter and
System Administrator profiles and click Next.
G. Click Save & New to add the field to the Candidate Layout.
H. Select the Formula radio button and click Next.
I. Enter the details for the second new custom field.
i. Field Label: Picture URL
ii. Field Name: Picture_URL (This field auto-populates.)
iii. Formula Return Type: Text
J. Click Next.
i.
L. Set the field visible for the Custom-HR, Custom-Executive, Custom-Recruiter and
System Administrator profiles and click Next.
M. Click Save & New to add the field to the Candidate Layout.
N. Select the Formula radio button and click Next.
O. Enter the details for the third new custom field.
i. Field Label: Picture Link
ii. Field Name: Picture_Link (This field auto-populates.)
iii. Formula Return Type: Text
P. Click Next.
i.
O
N
LY
SE
Q. Click Next.
R. Set the field visible for the Custom-HR, Custom-Executive, Custom-Recruiter, and
System Administrator profiles, and click Next.
S. Click Save & New to add the field to the Candidate Layout.
T. Select the Formula radio button and click Next.
U. Enter the details for the final new custom field.
AL
TE
R
V. Click Next.
IN
W. Click Next.
X. Set the field visible for the Custom-HR, Custom-Executive, Custom-Recruiter and
System Administrator profiles and click Next.
Y. Click Save to add the field to the Candidate Layout.
2. Populate a candidate records Picture ID field and view the picture.
A. Click the Documents tab. (If necessary, click + to view more tabs.)
B. Select Public Photos from the Folder picklist, and click Go!
C. Click on one of the documents listed, then copy the last 15 digits of the URL for that
document (everything after .com/) from the browser address bar.
D. Click the Candidates tab.
E. Click New.
F. Fill in the information needed to create a new candidate record.
G. Paste the ID of the photo you selected from the document into the Picture ID field.
H. Click Save. Note how the Picture URL is populated, then click on the Candidate Picture
link.
Copyright 2013 salesforce.com, inc. All rights reserved.
Building Applications with Force.com Exercise Guide Page 59 of 144
O
N
LY
10 minutes
Instructions:
SE
1. Create a new validation rule that requires that all positions must have a Hiring Manager
listed.
AL
TE
R
i.
ii.
iii.
iv.
v.
vi.
vii.
IN
C. Click Save.
D. Create a new Position record to test these validation rules.
Review
1. Are validation rules executed for fields that are stored in the object but not part of the
displayed page layout?
O
N
LY
2. Are validation rules executed when loading data through the API or the Data Loader? Are
there exceptions?
AL
SE
3. If a new rule is created and there is data already stored that violates that rule, when will
Salesforce catch the problem?
IN
TE
R
4. If a user does not include a reference to a Hiring Manager when creating a new Position,
when will they be notified of the omission?
LY
1.
2.
3.
4.
O
N
Time:
SE
10 minutes
Instructions:
1. Build a new validation rule that ensures that these policies are followed.
AL
IN
TE
R
C. Select Non-Technical Position from the Record Type of new record picklist, and
click Continue.
O
N
LY
SE
D. Click Save.
E. After receiving the error Temporary positions require a value for
Duration between 1 and 365 days, enter the Duration as 364, then click Save
again.
4. Check the Debug Logs.
AL
TE
R
IN
LY
1. Create a validation rule on candidates that requires that zip codes be entered in a valid 5digit or 9-digit format.
2. Test the validation rule on an existing candidate.
Time:
O
N
10 minutes
SE
Instructions:
1. Create a validation rule on candidates that requires that zip codes be entered in a valid 5digit or 9-digit format.
AL
IN
TE
R
O
N
LY
1.
2.
3.
4.
Time:
SE
15 minutes
Instructions:
AL
i.
ii.
iii.
iv.
IN
TE
R
O
N
LY
D. Click Next.
E. Set the field visible for the Custom-HR, Custom-Executive, Custom-Recruiter and
System Administrator profiles and click Next.
F. Click Save & New to add the field to the zip code layout.
G. Select the Text radio button and click Next.
H. Enter the details for the second new custom field.
SE
I. Click Next.
J. Set the field visible for the Custom-HR, Custom-Executive, Custom-Recruiter, and
System Administrator profiles, and click Next.
K. Click Save to add the field to the zip code layout.
L. Modify the Zip Code page layout so that the fields are displayed in a logical order.
TE
R
A.
B.
C.
D.
E.
IN
3.
AL
i. Under the Page Layout related list, click the Edit link next to Zip Code Layout.
ii. Arrange the fields in the left hand column of the page layout so that City is on top,
then State, then Zip Code.
iii. Click Save.
4. Create a validation rule that checks the zip code entered against a table to validate that the
zip code and state match.
A. Click Setup | Create | Objects | Candidate.
B. Scroll down to the Validation Rules related list and click New.
i. Rule Name: Zip Code Consistent with State
ii. Active: (selected)
iii. Description: Validates candidate Zip/Postal Code by looking up
the first five characters of the value in a custom object
called Zip_Code__c. Error if the zip code is not found or the
candidate State does not match the corresponding State in the
object.
LY
Populate a new Candidate with a Zip Code that matches a Zip Code record that you
have already created.
ii. Enter a State that does not match the Zip Code.
IN
TE
R
AL
SE
C. Click Save.
D. Note the validation error that you receive.
O
N
i.
LY
1. Create a validation rule that references the Total Reviews roll-up summary field to ensure
that reviews are not added or deleted.
2. Test the validation rule.
O
N
Time:
10 minutes
SE
Instructions:
1. Create a validation rule that references the Total Reviews roll-up summary field to ensure
that reviews are not added or deleted.
AL
TE
R
IN
IN
TE
R
AL
SE
O
N
LY
D. Scroll down and click the Del link next to the review listed in the Reviews related list.
E. When you receive the popup that says, Are you sure?, click OK.
LY
When a new candidate has been created, the candidate should be assigned to the Recruiter
Queue and a New Candidate Notification should automatically be sent out to all queue
members.
Tasks:
O
N
1. Create a workflow rule with a field update to route new Positions to the Recruiting Queue.
2. Create a workflow rule with a field update to assign new candidates to the Recruiting
Queue.
SE
Time:
15 minutes
Instructions:
TE
R
A.
B.
C.
D.
E.
AL
1. Create a workflow rule with a field update to route new Positions to the Recruiting Queue.
IN
K. Click the Positions tab and add a new position, setting the Status to New. Once you
have saved it, check the Owner field on the new record.
2. Create a workflow rule with a field update to assign new candidates to the Recruiting
Queue.
A.
B.
C.
D.
E.
LY
TE
R
Click Save.
Click Done.
Click Activate.
Click the Candidates tab and create a new candidate. Make sure to enter information for
email, name, and phone. Once you have saved it, check the Owner field on the new
record.
IN
H.
I.
J.
K.
SE
iii.
iv.
v.
ii.
AL
i.
O
N
Review
1. How is a workflow rule triggered?
O
N
LY
IN
TE
R
AL
SE
3. Although just setting up the workflow to start when Status | equals | New is helpful, what
happens if Status is not set? What other customization(s) could be made to ensure that this
workflow is launched?
LY
O
N
15 minutes
SE
Instructions:
AL
A.
B.
C.
D.
E.
IN
TE
R
Assigned To: Offer Owner (Click the lookup icon, select Owner from the Type
picklist, and click Offer Owner to select.)
Subject: Follow up on submitted offer
Unique Name: Follow_up_on_submitted_offer (This field auto-populates.)
Due Date: Rule Trigger Date | plus | (blank) days
Notify Assignee: (selected)
Status: Not Started
Copyright 2013 salesforce.com, inc. All rights reserved.
Building Applications with Force.com Exercise Guide Page 73 of 144
SE
Click Save.
Monitor the time-based workflow queue.
Click Setup | Monitor | Time-Based Workflow.
Click Search.
D.
E.
F.
G.
O
N
i.
ii.
iii.
iv.
v.
vi.
LY
AL
Note the offer listed among the pending actions in the queue.
Review
IN
TE
R
2. What happens to an item in the time-based workflow queue if a record no longer meets the
workflow criteria?
LY
1. Create a new field to count the number of interviewers associated with a position.
2. Create a workflow rule with time-dependent actions.
3. Create a new position to test the process and monitor the time-based workflow queue.
Time:
O
N
15 minutes
SE
Instructions:
1. Create a new field to count the number of interviewers associated with a position.
i.
ii.
iii.
iv.
v.
vi.
AL
TE
R
A.
B.
C.
D.
IN
E. Click Next.
F. Set the field visible for the Custom-HR, Custom-Executive, Custom-Recruiter, and
System Administrator profiles and click Next.
G. Click Save to add the field to all position page layouts.
2. Create a workflow rule with time-dependent actions.
A.
B.
C.
D.
E.
LY
iii.
iv.
v.
O
N
ii.
SE
i.
J. Click Save.
K. Click Done.
L. Click Activate.
AL
3. Create a new position to test the process and monitor the time-based workflow queue.
TE
R
IN
v. Click Save.
LY
IN
TE
R
AL
SE
O
N
LY
SE
1.
2.
3.
4.
5.
6.
7.
O
N
Tasks:
Time:
IN
TE
R
AL
30 minutes
LY
O
N
SE
U
AL
N
TE
R
IN
Copyright 2013 salesforce.com, inc. All rights reserved.
Building Applications with Force.com Exercise Guide Page 79 of 144
Instructions:
1. Create a multi-step approval process.
A. Click Setup | Create | Workflow & Approvals | Approval Processes.
B. Select Position from the Manage Approval Processes For: picklist.
C. Click Create New Approval Process | Use Standard Setup Wizard.
i. Process Name: 3-Step Position Approval #1
ii. Unique Name: X3_Step_Position_Approval_1 (This field auto-populates.)
iii. Description:
O
N
LY
SE
AL
F. Click Next.
G. Leave the Approval Assignment Email Template field blank, and click Next.
i.
IN
TE
R
LY
B. Click Next.
C. Select All records should enter this step., and click Next.
O
N
i. Automatically assign using the user field selected earlier. (Manager): (selected)
ii. The approvers delegate may also approve this request: (cleared)
SE
D. Click Save.
E. Select No, I'll do this later. Take me to the approval process
detail page to review what I've just created, and click Go!
F. Under the Approval Steps related list, click New Approval Step.
AL
i. Name: Recruiter
ii. Unique Name: Recruiter (This field auto-populates.)
iii. Step Number: 2
TE
R
G. Click Next.
H. Select All records should enter this step., and click Next.
I. Select Automatically assign to approver(s)., then select User from the
picklist that appears, and use the lookup icon to select Mario Ruiz.
i.
IN
N. Select Enter this step if the following: criteria are met: Pay
Grade | contains | 300, 400
O. Click Next.
i. Let the submitter choose the approver manually.: (selected)
ii. The approvers delegate may also approve this request.: (cleared)
iii. Perform all rejection actions for this step AND all final rejection actions. (Final
Rejection): (selected)
P. Click Save.
Q. Select No, I'll do this later. Take me to the approval process
detail page to review what I've just created., and click Go!
LY
O
N
SE
i.
ii.
iii.
iv.
AL
i.
ii.
iii.
iv.
TE
R
IN
i.
ii.
iii.
iv.
v.
E. Click Save.
5. Create final rejection actions.
A. Under the Final Rejection Actions related list, click Add New | Field Update.
i. Name: Status to Closed on Not Approved
ii. Unique Name: Status_to_Closed_on_Not_Approved
iii. Field to Update: Status
Copyright 2013 salesforce.com, inc. All rights reserved.
Building Applications with Force.com Exercise Guide Page 82 of 144
C. Click Save.
6. Activate the rule.
O
N
LY
A. Click Activate.
B. When you receive the popup that says, After activating this approval process, you
cannot add or remove approval steps. Also, some approval step attributes may not be
editable. Continue?, click OK.
SE
IN
TE
R
AL
When you receive the popup that says, Once you submit this record for approval,
you might not be able to edit it or recall it from the approval process depending on
your settings. Continue?, click OK.
Note that the record is routed to Andrew Goldberg.
Log in as Andrew Goldberg to approve the position.
Log out as Andrew Goldberg.
Note that the record is then routed to Mario Ruiz.
LY
1. Modify the existing multi-step approval process to change the order and skip the VP step if
the position is not senior-level.
2. Deactivate the approval process, 3-Step Position Approval #1.
O
N
Time:
IN
TE
R
AL
SE
15 minutes
LY
O
N
SE
U
AL
N
TE
R
IN
Copyright 2013 salesforce.com, inc. All rights reserved.
Building Applications with Force.com Exercise Guide Page 85 of 144
Instructions:
1. Modify the existing multi-step approval process to change the order and skip the VP step if
the position is not senior-level.
A. Click Setup | Create | Workflow & Approvals | Approval Processes.
i. Manage Approval Processes For: Position
ii. Click on the name of the process created in the last exercise, 3-Step Position
Approval #1.
B. Click Clone.
LY
SE
O
N
AL
C. Click Save.
D. When you see the popup that says, Remember, you will not be able to use this approval
process until it has been activated, click OK.
E. Under the Approval Steps related list, click Del next to Step Number 2 to delete it.
F. When you see the pop-up, Are you sure?, click OK.
G. On the Approval Steps related list, click New Approval Step.
TE
R
i. Name: Recruiter
ii. Unique Name: Recruiter (This field auto-populates.)
iii. Step Number: 3
IN
H. Click Next.
I. Select All records should enter this step., and click Next.
J. Select the Assigned Approver.
i. Automatically assign to approver(s).: (selected)
ii. Select User and use the lookup icon to select Mario Ruiz.
iii. When multiple approvers are selected: Approve or reject based on the
FIRST response.
iv. The approvers delegate may also approve this request: (cleared)
v. What should happen if the approver rejects this request?: Perform all
rejection actions for this step AND all final rejection
actions. (Final Rejection)
K. Click Save.
L. Select No, Ill do this later. Take me to the approval process
detail page to review what Ive just created., and click Go!
M. Find Step 2 and click Edit, then click Next.
N. Select Enter this step if the following criteria are met, else go to next step.
O. Click Save.
Copyright 2013 salesforce.com, inc. All rights reserved.
Building Applications with Force.com Exercise Guide Page 86 of 144
P. Click Activate.
Q. Click OK when you receive the popup that says, After activating this approval process,
you cannot add or remove approval steps. Also, some approval step attributes may not
be editable. Continue?
2. Deactivate the approval process, 3-Step Position Approval #1.
Review
IN
TE
R
AL
SE
O
N
LY
LY
1.
2.
3.
4.
5.
O
N
Time:
IN
TE
R
AL
SE
15 minutes
Instructions:
1. Create a parallel approval process.
A. Click Setup | Create | Workflow & Approvals | Approval Processes.
B. Select Job Application from the Manage Approval Processes For: picklist.
C. Click Create New Approval Process, then select Use Standard Setup Wizard.
LY
O
N
D. Click Next.
E. Select criteria are met from the Use this approval process if the following
picklist, then select:
SE
AL
i. Next Automated Approver Determined By: --None-ii. Administrators ONLY can edit records during the approval process:
(selected)
G. Click Next.
H. Leave the Approval Assignment Email Template field blank, and click Next.
i.
I.
IN
TE
R
SE
O
N
LY
AL
D. Click Save.
E. Select No, Ill do this later, take me to the approval process
detail page to review what Ive just created., and click Go!
TE
R
i.
ii.
iii.
iv.
A. Under the Final Approval Actions related list, click Add New | Field Update.
i.
ii.
iii.
iv.
IN
C. Click Save.
D. Under the Final Approval Actions related list, click Add New | Task.
i.
ii.
iii.
iv.
v.
vi.
Assigned To: Job Application Owner (Click the lookup icon and select Owner
from the Type picklist.)
Subject: Notify candidate re: offer coming
Unique Name: Notify_candidate_re_offer_coming
Due Date: Rule Trigger Date: plus: 2 days
Notify Assignee: (selected)
Comments: Please inform the candidate via email/phone to expect
Copyright 2013 salesforce.com, inc. All rights reserved.
Building Applications with Force.com Exercise Guide Page 90 of 144
an offer letter!
vii. Status: Not Started
viii. Priority: Normal
E. Click Save.
5. Create final rejection actions.
A. Under the Final Rejection Actions related list, click Add New | Field Update.
Name: Stage to Closed Rejected
Unique Name: Stage_to_Closed_Rejected
Field to Update: Stage
Picklist Options: A specific value: Closed Rejected
O
N
i.
ii.
iii.
iv.
LY
i.
ii.
iii.
iv.
IN
TE
R
AL
SE
C. Click Save.
D. Click Activate.
E. When you receive the popup that says, After activating this approval process, you
cannot add or remove approval steps. Also, some approval step attributes may not be
editable. Continue?, click OK.
LY
IN
TE
R
AL
SE
O
N
10 minutes
Instructions:
1. Create an outbound message
A.
B.
C.
D.
O
N
LY
SE
E. Click Save.
AL
i. Status: Open
ii. Stage: Interviews Completed
IN
TE
R
D. Click Save.
E. Change the owner by clicking [Change] next to Owner, then use the lookup icon to
select Mario Ruiz.
F. Click Save.
G. Click Submit for Approval under the Approval History related list.
H. Click OK when you receive the popup that says, Once you submit this record for
approval, you might not be able to edit it or recall it from the approval process depending
on your settings. Continue?
I. Log in as Megan Smith to approve the record.
J. Log out.
K. Log in as Mario Ruiz to approve the record.
L. Log out.
M. After both users have approved the record, note the changes to Stage and Status, as
well as the new Task.
3. Monitor the outbound message queue.
A. Click Setup | Monitor | Outbound Messages.
B. Note the message listed in the Next items for delivery related list. (The message will also
be listed in the Oldest failures in queue related list because the endpoint is not a real
application.)
SE
O
N
LY
AL
30 minutes
Instructions:
IN
A.
B.
C.
D.
E.
F.
G.
TE
R
E. Click Next.
F. Click Next to make the field visible to Custom Executive, Custom HR, Custom
Recruiter, and System Administrator profiles.
Copyright 2013 salesforce.com, inc. All rights reserved.
Building Applications with Force.com Exercise Guide Page 94 of 144
G. Click Save & New to add the field to the Position Layout and Technical Position Layout.
H. Select the Lookup Relationship radio button under Data Type, and click Next.
I. Select User from the Related To picklist, and click Next.
i. Field Label: Approver #2
ii. Field Name: Approver_2
LY
J. Click Next.
K. Click Next to make the field visible to Custom Executive, Custom HR, Custom
Recruiter, and System Administrator profiles.
L. Click Save & New to add the field to the Position Layout and Technical Position Layout.
M. Select the Lookup Relationship radio button under Data Type, and click Next.
N. Select User from the Related To picklist, and click Next.
O
N
SE
O. Click Next.
P. Click Next to make the field visible to Custom Executive, Custom HR, Custom
Recruiter, and System Administrator profiles.
Q. Click Save to add the field to the Position Layout and Technical Position Layout.
3. Modify the Position Layout and Technical Position Layout to include a section for approver
information.
TE
R
IN
i.
ii.
iii.
iv.
v.
vi.
AL
D. Click Save.
E. Under the Page Layouts related list, click the Edit link next to Technical Position Layout.
F. Click Create New Section.
i.
ii.
iii.
iv.
v.
G. Click Save.
4. Create an approval matrix in Salesforce.
I.
J.
K.
SE
AL
G.
H.
Click Save.
Use the lookup icon to select any tab style.
Click Next.
Select the Apply one tab visibility to all profiles: Default Off radio
button.
Select the Apply a different tab visibility for each profile radio button.
Select Default On for the Custom-Executive, Custom-HR, Custom Recruiter, and
System Admin profiles.
Click Next.
Add the tab only to the Recruiting app.
Click Save.
TE
R
C.
D.
E.
F.
O
N
LY
IN
A. Under the Custom Fields & Relationships related list, click New.
B. Select the Lookup Relationship radio button under Data Type, and click Next.
C. Select User from the Related To picklist, and click Next.
i. Field Label: Approver #1
ii. Field Name: Approver_1
D. Click Next.
E. Set the field visible for the Custom-HR, Custom-Executive, Custom-Recruiter and
System Administrator profiles and click Next.
F. Click Save & New to add the field to the page layout.
G. Select the Lookup Relationship radio button under Data Type, and click Next.
H. Select User from the Related To picklist, and click Next.
i. Field Label: Approver #2
ii. Field Name: Approver_2
I.
Click Next.
Copyright 2013 salesforce.com, inc. All rights reserved.
Building Applications with Force.com Exercise Guide Page 96 of 144
J. Set the field visible for the Custom-HR, Custom-Executive, Custom-Recruiter, and
System Administrator profiles, and click Next.
K. Click Save & New to add the field to the page layout.
L. Select the Lookup Relationship radio button under Data Type, and click Next.
M. Select User from the Related To picklist, and click Next.
i. Field Label: Approver #3
ii. Field Name: Approver_3
O
N
SE
i.
ii.
iii.
iv.
v.
vi.
vii.
LY
N. Click Next.
O. Set the field visible for the Custom-HR, Custom-Executive, Custom-Recruiter and
System Administrator profiles and click Next.
P. Click Save & New to add the field to the page layout.
Q. Select the Picklist radio button under Data Type, and click Next.
AL
R. Click Next.
S. Set the field visible for the Custom-HR, Custom-Executive, Custom-Recruiter, and
System Administrator profiles, and click Next.
T. Click Save & New to add the field to the page layout.
U. Select the Picklist radio button under Data Type, and click Next.
IN
TE
R
C. Click Save.
LY
7. Create an Apex trigger to automatically populate the Approver fields on new positions.
AL
SE
O
N
TE
R
IN
TE
R
AL
SE
O
N
LY
Click the Positions tab, then click on the position Usability Tester.
Click Submit for Approval under the Approval History related list.
Click OK.
Who is the position routed to?
IN
A.
B.
C.
D.
SE
O
N
LY
1.
2.
3.
4.
5.
Time:
AL
40 minutes
Instructions:
1. Create a flow.
TE
R
IN
A.
B.
C.
D.
E.
Label
Unique Name
Textbox
Phone
Phone
Textbox
Mobile Phone
Mobile_Phone
Textbox
Email Address
Email_Address
O
N
LY
SE
Unique Name
Number
Years of Experience
Years_of_Experience
Checkbox
Currently Employed
Currently_Employed
Textbox
Current Employer
Current_Employer
AL
Field Type
TE
R
IN
Stored Value
BA/BS
BA/BS
MA/MS/MBA
MA/MS/MBA
MD
MD
JD
JD
PhD
PhD
Post Doc
Post Doc
E. Click and drag the Education field so that it is below the Years of Experience field and
above the Currently Employed field.
F. Click OK to complete the screen element.
G. Connect the Candidate's Contact Information element to the Experience and
Education element.
H. Click Save.
6. Add a record create element to create a new candidate record.
Drag and drop Record Create from the palette onto the flow window.
Name the element Create Candidate. (The Unique Name field auto-populates.)
Select the Candidate object from the Custom section of the Create picklist.
Configure the fields and associated values:
Values
First_Name__c
Last_Name__c
Phone__c
Mobile__c
Email__c
Education__c
Currently_Employed__c
Current_Employer__c
SE
O
N
LY
Field
AL
A.
B.
C.
D.
Years_of_Experience__c
IN
TE
R
E. Click OK.
F. Click and drag an arrow connector from the Experience and Education element to the
Record Create element to connect the elements together.
G. Click Save.
7. Add a screen element to finish the wizard.
A. Drag and drop Screen from the palette onto the flow window.
B. In the Name field, enter Candidate Created. (The Unique Name field autopopulates.)
C. Add a display text field.
D. Name the display text field: CandidateCreated
E. Enter this message in the field:
The candidate you entered, {!First_Name} {!Last_Name}, has been
created.
Use the Select Resource picklist to enter the {!First_Name} {!Last_Name}
screen input fields.
F. Click OK.
G. Connect the Create Candidate element to the Candidate Created element.
Copyright 2013 salesforce.com, inc. All rights reserved.
Building Applications with Force.com Exercise Guide Page 102 of 144
H. Click Save.
8. Run the flow.
A. Click Run.
B. Enter the candidate information into the corresponding fields:
LY
IN
TE
R
AL
SE
O
N
Time:
Instructions:
O
N
TE
R
AL
40 minutes
IN
A.
B.
C.
D.
SE
LY
Tasks:
Drag and drop Record Lookup from the palette onto the flow window.
In the Name field, enter Candidate Check. (The Unique Name field auto-populates.)
Select the Candidate object from the Custom section of the Lookup picklist.
Enter two lookup filters:
Field
Operator
Value
First_Name__c
Equals
Last_Name__c
Equals
LY
O
N
A. Drag and drop Decision from the palette onto the flow window.
B. Enter Candidate Exists as the name. (The Unique Name field auto-populates.)
C. Configure the Editable Outcome:
Enter Candidate Already in System as the Editable Outcome name. (The
Unique Name field auto-populates.)
ii. Configure the resource row:
SE
i.
Operator Value
Equals
AL
Resource
TE
R
IN
i. Drag and drop Screen from the palette onto the flow window.
ii. In the Name field, enter Candidate Already Exists. (The Unique Name field
auto-populates.)
iii. Click the Add a Field tab.
iv. Double-click Display Text.
v. Double-click on the Display Text field and enter ExistsMessage at the name.
vi. Add the message A Candidate with that name already exists. Please
enter a different name. in the text field and click OK.
H. Connect the Decision element to the Candidate Already Exists element.
I. Select the Candidate Already in System outcome.
J. Connect the Candidate Already Exists element to the Candidate Name element to
request that the user enter a different name.
K. Connect the Decision element to the Candidate's Contact Information element.
L. Click Save.
IN
TE
R
AL
SE
O
N
LY
A.
B.
C.
D.
E.
F.
G.
IN
TE
R
AL
SE
O
N
LY
LY
1.
2.
3.
4.
O
N
Time:
10 minutes
SE
Instructions:
1. Activate the flow version.
AL
A.
B.
C.
D.
F.
G.
H.
I.
J.
K.
L.
M.
N.
TE
R
IN
A.
B.
C.
D.
E.
3. Modify the Recruiting and HR profile to grant the Run Flows permission.
A.
B.
C.
D.
TE
R
AL
SE
O
N
LY
IN
A.
B.
C.
D.
E.
LY
Time:
O
N
10 minutes
Instructions:
SE
AL
TE
R
IN
D. Click Next.
E. Set the field visible for the Custom-HR, Custom-Executive, Custom-Recruiter, and
System Administrator profiles, and click Next.
F. Click Save to add the field to the Candidate Layout.
3. View the addition of the Drivers License Number field in Setup Audit Trail.
A. Click Setup | Security Controls | View Setup Audit Trail.
B. View the new entries for the creation of the new field.
LY
Time:
O
N
10 minutes
AL
A.
B.
C.
D.
SE
Instructions:
Scroll down to the Page Layouts section, and click the Edit link next to Review Layout.
On the palette, click the Related Lists category.
Drag Review History and drop it at the bottom of the page.
Click Save.
Click Yes when you see the Overwrite Users Related List Customizations? pop-up.
TE
R
A.
B.
C.
D.
E.
A.
B.
C.
D.
IN
LY
Use the mass transfer records feature to assign all positions, job applications, candidates, and
offers to Phil Katz.
O
N
Time:
10 minutes
SE
Instructions:
TE
R
i.
ii.
iii.
iv.
v.
vi.
AL
1. Use the mass transfer records feature to assign all positions, job applications, candidates,
and offers to Phil Katz.
Review
IN
1. Is it possible to specify a record owner via a data input file so that we could avoid having to
do the mass transfer records step?
LY
Time:
O
N
15 minutes
SE
Instructions:
AL
TE
R
A.
B.
C.
D.
E.
F.
G.
If you completed "Exercise 14-5: Creating Dynamic Approval Processes (Optional)" you
already downloaded the needed exercise files and do not need to complete this step.
IN
O
N
LY
SE
J. Click OK.
K. Click Next.
L. Select the directory where your success and error files will be saved.
AL
i. Click Browse.
ii. Select Desktop.
iii. Click OK.
TE
R
M. Click Finish. You should see the following message: "You have chosen to add new
records and/or update existing records. The action you are about to take cannot be
undone. Are you sure you want to proceed?"
N. Click Yes.
O. Click View Successes.
P. Click Close.
Q. In the Operation Finished dialog box of the data loader, click OK.
A.
B.
C.
D.
IN
3. Go into the app and view some of the positions you have uploaded.
From the Force.com App Menu, select Recruiting.
Click the Positions tab.
From the View picklist, select All, and click Go!
Find some of the positions you just inserted.
Review
1. Who is the owner of the position record you just loaded? Why?
O
N
LY
2. What record type was assigned for the position record you just loaded? Why?
IN
TE
R
AL
SE
3. How could you control the record type that is assigned for the positions you load?
LY
Time:
O
N
10 minutes
Instructions:
SE
1. Upsert the candidate data from the Candidates.csv file into Salesforce.
AL
TE
R
Click Browse.
Browse to Candidates.csv and click Open.
Click Next.
A message saying Initialization Succeeded. Your operation will contain 11 records
appears.
v. Click OK.
IN
i.
ii.
iii.
iv.
O
N
A.
B.
C.
D.
LY
2. Go into the app and view some of the candidates you have inserted.
Review
IN
TE
R
AL
SE
1. When is it appropriate to use the Import Wizard vs. the Data Loader?
LY
Time:
O
N
10 minutes
Instructions:
IN
TE
R
AL
SE
Execute an upsert for the remaining objects in the recruiting app (Job Applications, Interviewers,
Reviews, and Offers) using the mapping files in the Mapping Files folder of
datamanagement.zip.
LY
Instructions:
SE
O
N
1. The sales team would like to have a map displaying the company location on the Account
page.
TE
R
AL
2. The sales team would like to include a Chatter feed about the record on the Contact page.
IN
3. The recruiting team would like the Programming Languages field to display only when the
department is specified as Engineering on a job application.
4. The recruiting team would like the Job Applications related list to be the only related list
displayed on the Candidate record.
5. The Candidate object has a lot of fields and requires scrolling to see all the information. The
recruiting team would like every section and related list to display as an individual tab that
can be viewed when clicked on.
IN
TE
R
AL
SE
O
N
LY
6. The recruiting team would like the candidate list view to match the look and feel of the
employee referral web page.
LY
Time:
O
N
10 minutes
Instructions:
SE
AL
TE
R
IN
Review
1. What does Development mode enable?
O
N
LY
2. How did you create this page? What tools did you use?
IN
TE
R
AL
SE
LY
Time:
Instructions:
SE
O
N
10 minutes
https://salesforceserver.salesforce.com/apex/OfferQuickEdit
AL
TE
R
IN
Review
IN
TE
R
AL
SE
O
N
LY
LY
Instructions:
SE
O
N
TE
R
AL
IN
3. What attribute of the <apex:detail> component can be used to hide the related lists?
4. What attribute of the <apex:page> component can be used to hide the sidebar?
O
N
LY
IN
TE
R
AL
SE
7. What components should be used to create the Offer Quick Edit page?
LY
O
N
15 minutes
SE
Instructions:
AL
C. Add the Chatter feed to the page using the <chatter:feed> component and click
save.
TE
R
IN
<apex:pageMessages />
E. Add the <apex:form> component to begin creating the Quick Edit section.
F. Add the page block section using the <apex:pageBlock> component and click save.
<apex:pageBlock title="Quick Edit" tabStyle="Zip_Code__c">
G. Using the component reference, copy the usage of the <apex:pageBlockSection>
component and paste it within the <apex:pageBlock> component.
H. Remove the title and change the column number to 3 on the
<apex:pageBlockSection> component.
I. Change the input field components to reference the Offer Expiration Date and Offer
Status fields and click Save.
<apex:inputField value="{!Offer__c.Status__c}"/>
<apex:inputField value="{!Offer__c.Offer_Expiration_Date__c}"/>
J. Add the Save button using the <apex:commandButton> component.
<apex:commandButton action="{!save}" value="Update"/>
Copyright 2013 salesforce.com, inc. All rights reserved.
Building Applications with Force.com Exercise Guide Page 127 of 144
K. Make sure all components have both open and closing components and click Save.
2. Hide the related lists on the page.
A. Add the <apex:detail> component after the <apex:form> component to display the
rest of the Detail page.
B. Add the relatedList attribute to the component and set it to false.
<apex:detail relatedList="false"/>
C. Save the page.
3. Test the new page.
SE
O
N
LY
IN
TE
R
AL
C. Change the status of an offer and click Update. Does the Offer record update?
LY
1.
2.
3.
4.
5.
O
N
Time:
SE
20 minutes
Instructions:
AL
TE
R
<apex:page standardController="Candidate__c">
2. Add the needed components to display the candidate's name and picture.
IN
LY
O
N
SE
IN
TE
R
AL
LY
SE
1.
2.
3.
4.
5.
6.
O
N
Task:
AL
Time:
TE
R
Instructions:
15 minutes
IN
LY
SE
O
N
4. Add the needed components to display radio buttons for the score fields.
AL
TE
R
IN
<apex:inputField value="{!Review__c.Cultural_Comments__c}"/>
E. Change the Experience field to display as radio buttons using the
<apex:selectRadio> and <apex:selectOption> components. The contents
copied in Step B can be used as a starting point.
<apex:selectRadio label="Experience"
value="{!Review__c.Experience__c}">
<apex:selectOption itemLabel="Excellent" itemValue="5.0"/>
<apex:selectOption itemLabel="Good" itemValue="4.0"/>
<apex:selectOption itemLabel="Average" itemValue="3.0"/>
<apex:selectOption itemLabel="Fair" itemValue="2.0"/>
<apex:selectOption itemLabel="Poor" itemValue="1.0"/>
</apex:selectRadio>
F. Display the Experience Comments field using the <apex:inputField> component.
<apex:inputField value="{!Review__c.Experience_Comments__c}"/>
Copyright 2013 salesforce.com, inc. All rights reserved.
Building Applications with Force.com Exercise Guide Page 132 of 144
G. Change the Leadership Skills field to display as radio buttons using the
<apex:selectRadio> and <apex:selectOption> components. The contents
copied in Step B can be used as a starting point.
<apex:selectRadio label="Leadership Skills"
value="{!Review__c.Leadership_Skills__c}">
<apex:selectOption itemLabel="Excellent" itemValue="5.0"/>
<apex:selectOption itemLabel="Good" itemValue="4.0"/>
<apex:selectOption itemLabel="Average" itemValue="3.0"/>
<apex:selectOption itemLabel="Fair" itemValue="2.0"/>
<apex:selectOption itemLabel="Poor" itemValue="1.0"/>
</apex:selectRadio>
LY
O
N
SE
AL
IN
TE
R
18-8: Create the Console Page Template and Job Application Console Page
Goal:
Create a console page made up of a Visualforce template and a Visualforce page to replace the
Job Application page.
Scenario:
The Universal Containers recruiting team would like a console page that pulls in information
from Job Application, Position, and Candidate. Instead of building a one-off Job Application
console page, a template should be built so it can be used for several different console pages.
Tasks:
LY
O
N
1.
2.
3.
4.
5.
Time:
SE
25 minutes
Instructions:
AL
TE
R
IN
B. In the Buttons, Links, and Actions related list, click the Edit link next to View.
C. Select the Visualforce Page radio button and select JobApplicationConsole
[JobApplicationConsole] from the picklist, then click save.
4. Give the recruiting team access to the new console page.
A. Navigate to Setup | Manage Users | Profiles | Custom Recruiter.
B. Select Visualforce Page Access and click Edit.
C. Select JobApplicationConsole and move it to Enabled Visualforce Pages and
click save.
5. Test the new functionality.
SE
O
N
LY
IN
TE
R
AL
C. Can you edit all three of the objects using the respective Edit buttons?
Review
1. On the Job Application console page, what are the two <apex:variable> components
being used for?
SE
O
N
LY
IN
TE
R
AL
LY
Time:
O
N
10 minutes
Instructions:
SE
D. Click Save.
TE
R
AL
i. Name: confidential
ii. Description: The Confidential graphic for the Job Application
console page.
iii. File: Locate the confidential.png file in the
M18_IntroVisualforcePagesExerciseFiles\Exercises folder.
iv. Cache Control: Public
IN
LY
O
N
Time:
SE
15 minutes
Instructions:
AL
TE
R
IN
O
N
Time:
LY
Tasks:
15 minutes
SE
Instructions:
TE
R
AL
IN
LY
O
N
10 minutes
SE
Instructions:
AL
TE
R
<flow:interview name="Candidate_Wizard"
finishLocation="{!URLFOR('/home/home.jsp')}"/>
2. Override the standard New view on the Candidate object.
IN
LY
Time:
O
N
15 minutes
Instructions:
SE
1. Create a Visualforce page that displays the website based on the information in the record.
AL
Src: Job_Posting_Site__c.Job_Site_Name__c
Frameborder: true
Height: 200px
Scrolling: true
ID: JobSite
TE
R
i.
ii.
iii.
iv.
v.
2. Insert the page into the Job Posting Site page layout.
IN
Click OK.
Click Visualforce Pages from the palette.
Drag the JobSite page to the Job Site section.
Click Save.
Create a new Job Post Site record.
i.
TE
R
AL
SE
O
N
LY
IN
I.
O
N
Time:
LY
Tasks:
SE
20 minutes
Instructions:
TE
R
AL
IN
Review
IN
TE
R
AL
SE
O
N
LY