Documente Academic
Documente Profesional
Documente Cultură
com Developer
Study Guide
Summer ‘10
Contents
About the Force.com Certification Program..............................................................................................1
▪▪ The Salesforce.com Certified Force.com Developer certification exam encompasses the declarative
capabilities of the Force.com platform. To achieve this credential, a candidate must successfully
complete the exam. This exam is a prerequisite to the Salesforce.com Certified Force.com Advanced
Developer exam.
▪▪ May not necessarily manage or configure a standard Salesforce CRM application, but has experience
with the Salesforce user interface and data model
▪▪ Has broad knowledge of the declarative functionality of the Force.com platform, can describe various
use cases for this functionality, and can use this functionality to create applications using the standard
Salesforce interface
▪▪ Has a good understanding of the capabilities of the declarative functionality and can identify what
application design specifications require the use of Apex or Visualforce
▪▪ Has invested time in studying the materials from the course and the additional required study materials
provided by salesforce.com
A candidate for this exam is not expected to be able to develop code using the Apex programming language,
administer any standard Salesforce CRM application, or use the Force.com IDE or Force.com API.
Additionally, candidates are not expected to be able to package or migrate applications.
▪▪ Building Applications with Force.com and Visualforce (DEV 401). To register, go to:
www.salesforce.com/training
Objective Weighting
Application Design 5%
List and describe components of an application
Describe the model-view-controller design paradigm
Given a scenario, determine whether sufficient information is available to plan/build/design an application
2. A developer wants to ensure that when a parent record is deleted, child records are not deleted. Which
relationship should the developer choose?
A. lookup
B. master-detail
C. many-to-many
D. master-to-master
5. A group of executives has requested a convenient way to see daily metrics without having to log
into Salesforce.
▪▪ Account
▪▪ Opportunity
▪▪ Contact
▪▪ Lead
▪▪ Case
▪▪ Task
▪▪ Event
▪▪ Custom Objects
To enable this feature, please contact Salesforce.com Support. Once the feature is enabled, you’ll be able to set
these fields when creating the record. Because these fields are intended to be audit fields, you’ll only be able to
set them on create, not update. Also, if this feature is enabled, salesforce.com can’t guarantee that the records
will have the correct data in these audit fields because they can be set on create.
In general, salesforce.com recommends that this feature only be enabled while you’re doing data migration.
In certain cases (such as routinely copying new data from an external system to Salesforce) this feature
can be enabled permanently. The feature must be enabled by Salesforce.com Support and requested by an
administrator in the organization.
▪▪ Encrypted custom fields cannot be unique, an external ID, or have default values.
▪▪ While other text fields can contain up to 255 characters, encrypted text fields are limited to 175
characters due to the encryption algorithm.
▪▪ Encrypted fields are not available for use in filters such as list views, reports, roll-up summary fields, and
rule filters.
▪▪ Encrypted fields cannot be used to define report criteria but they can be included in report results.
▪▪ Encrypted fields are not searchable but they can be included in search results.
▪▪ Encrypted fields are not available in the following: Salesforce Mobile, Connect for Outlook, Connect
for Lotus Notes, Connect Offline, lead conversion, workflow rule criteria or formulas, formula fields,
outbound messages, default values, and Web-to-Lead and Web-to-Case forms.
▪▪ You can use encrypted fields in email templates yet the value is always masked regardless of whether
you have the “View Encrypted Data” permission.
▪▪ If you have created encrypted custom fields, make sure your organization has secure connections using SSL
(Secure Sockets Layer) enabled. To enable this setting for your organization, see “Setting Session Security.”
▪▪ If you have the “View Encrypted Data” permission and you grant login access to another user, be aware
that the other user will be able to see encrypted fields unmasked (in plain text). To avoid this, first clone
your profile and remove the “View Encrypted Data” permission from the cloned profile, then assign
yourself to the cloned profile before granting login access to the other user. If you do not have the
appropriate permissions to clone and change your profile, contact your administrator for assistance.
▪▪ Only users with the “View Encrypted Data” permission can clone the value of an encrypted field when
cloning that record.
Best Practices
▪▪ Encrypted fields are editable regardless of whether the user has the “View Encrypted Data” permission.
Use validation rules, field-level security settings, or page layout settings to prevent users from editing
encrypted fields.
▪▪ You can still validate the values of encrypted fields using validation rules or Apex scripts. Both work
regardless of whether the user has the “View Encrypted Data” permission. Data for encrypted fields in
the debug log is masked.
▪▪ Existing custom fields cannot be converted into encrypted fields nor can encrypted fields be converted
into another data type. To encrypt the values of an existing (unencrypted) field, export the data,
create an encrypted custom field to store that data, and import that data into the new encrypted field.
▪▪ Mask Type is not an input mask that ensures the data matches the Mask Type. Use validation rules to
ensure that the data entered matches the mask type selected.
▪▪ Use encrypted custom fields only when government regulations require it because they involve
additional processing and have search-related limitations
▪▪ Show Task Email Notification – This checkbox controls whether the Send Notification Email
checkbox displays when users create or edit a task.
▪▪ Select Task Email Notification – This checkbox by default controls whether the Send Notification
Email checkbox is selected by default when users create or edit a task. Note that a user’s personal
preference for defaulting the state of the checkbox takes precedence over the organization-wide setting.
For more information, see “Creating Tasks.”
Page layouts for the user object only include custom fields, custom links, S-controls, and Visualforce pages.
Tagging, related lists, custom buttons, and standard field customizations are not included on page layouts for
the user object. Also, field-level security is only available for custom fields on the user object.
You can define mini page layouts for the user object; however, you can’t add standard fields or related lists.
Also, a customized mini page layout will not display in the console. For more information, see “Defining Mini
Page Layouts.”
In the organization-wide import wizards for accounts, contacts, and leads, administrators have access to import into
any field, even if a field is hidden or read-only in their page layout or field-level security settings. Individual users can
import only into the fields that are accessible to them via their page layout or field-level security settings.
In Personal, Group, and Professional Editions, page layouts control which fields users can access in related lists, list
views, reports, Force.com Connect Offline, email and mail merge templates, custom links, and when synchronizing
data. In Enterprise, Unlimited, and Developer Editions, this access is controlled by field-level security.
For information on setting which fields display for users in search results, see “Customizing Search Layouts.”
In Professional, Enterprise, Unlimited, and Developer Editions, individual users can customize which tabs and
related lists display for their personal use. For more information, see “Customizing Your Display.”
When editing a person account page layout:
▪▪ If you add Shipping Address next to Billing Address in the Address Information section, a link will
display on the person account edit page that lets you copy the billing address to the shipping address.
Also, an equivalent link appears if you add Other Address to the Address Information section.
▪▪ Contact fields and related lists are available on person account page layouts. However, contact custom
links and custom buttons aren’t available.
You can only move some items to certain sections on the page layout. For example, you can drag a custom
S-control to any field section on the page layout, but not to a Related List Section or Button Section.
Create the appropriate buttons before editing your page layout. For example, create an account custom button
for the detail page and a contact custom list button before putting them both on an account page layout. For
implementation tips and best practices on custom buttons, see “Custom Button Considerations.”
If you use the original page layout editor to view a page layout that was created in the new page layout editor,
the original page layout editor will show any blank spaces you added. You can’t move or add blank spaces in the
original page layout editor, but you can remove them by dragging them to the box on the right.
▪▪ Create custom user interfaces (UIs) that easily leverage standard Salesforce styles
▪▪ Create custom UIs that replace the standard Salesforce styles
▪▪ Build wizards and other navigation patterns that use data-specific rules for optimal, efficient
application interaction
Visualforce is a framework that lets developers build sophisticated, custom UIs that can be hosted natively on
the Force.com platform. The Visualforce framework includes a tag-based markup language similar to HTML.
In the Visualforce markup language, each Visualforce tag corresponds to a coarse or fine-grained user interface
component, such as a section of a page, a related list, or a field. The behavior of Visualforce components can
either be controlled by the same logic used in standard Salesforce pages, or developers can associate their own
logic with a controller class written in Apex.
What is a Visualforce page?
Developers can use Visualforce to create a Visualforce page definition. A page definition consists of two
primary elements:
▪▪ Visualforce markup
▪▪ A Visualforce controller
Visualforce Markup
Visualforce markup consists of Visualforce tags, HTML, JavaScript, or any other Web-enabled code
embedded within a single <apex:page> tag. The markup defines the UI components that should be included on
the page and the way they should appear.
Visualforce Controllers
A Visualforce controller is a set of instructions that specify what happens when a user interacts with the
components specified in associated Visualforce markup, such as when a user clicks a button or link. Controllers
also provide access to the data that should be displayed in a page and can modify component behavior.
A developer can either use a standard controller provided by the Force.com platform or add custom controller
logic with a class written in Apex:
▪▪ A standard controller consists of the same functionality and logic used for a standard Salesforce page.
For example, if you use the standard Accounts controller, clicking a Save button in a Visualforce page
results in the same behavior as clicking Save on a standard Account edit page.
▪▪ A custom controller is a class written in Apex that implements all of a page’s logic, without leveraging a
standard controller. If you use a custom controller, you can define new navigation elements or behaviors,
but you must also reimplement any functionality that was already provided in a standard controller.
Like other Apex classes, custom controllers execute entirely in system mode, in which the object and
field-level permissions of the current user are ignored. You can specify whether a user can execute
methods in a custom controller based on the user’s profile.
▪▪ A controller extension is a class written in Apex that adds to or overrides behavior in a standard or
custom controller. Extensions let you leverage the functionality of another controller while adding your
own custom logic.
Because standard controllers execute in user mode—in which the permissions, field-level security, and sharing
rules of the current user are enforced—extending a standard controller lets you build a Visualforce page that
respects user permissions. Although the extension class executes in system mode, the standard controller
executes in user mode. As with custom controllers, you can specify whether a user can execute methods in a
controller extension based on the user’s profile.
Where can Visualforce pages be used?
Developers can use Visualforce pages in ways similar to S-controls to:
▪▪ Override standard buttons, such as the New button for accounts or the Save button for contacts
▪▪ Override tab overview pages, such as the Accounts tab home page
▪▪ Define custom tabs
▪▪ Embed components in detail page layouts, similar to the way inline S-controls can be embedded
Section 9-6. Development Tools
The Force.com platform includes the following tools in Setup | Develop. These tools require some
programming knowledge:
Apex Classes – Define Apex classes you can use to add additional business logic to your custom applications
API – Download WSDL files that let you integrate external applications with Salesforce
Components – Define custom Visualforce components you can use in one or more Visualforce pages
Email Services – Define Apex classes that can process inbound email
Pages – Define Visualforce pages that display your custom user interfaces
S-controls – Upload content such as Java applets or Active-X controls for use in dynamic custom links or Web tabs
Static Resources – Upload content you can reference in a Visualforce page, including archives (such as .zip
and .jar files), images, stylesheets, JavaScript programs, and other files
Tools – Download tools that can assist you with building, debugging, testing, and deploying Apex
▪▪ Print an annotated version of the approval process, where numbers added to the diagram correspond to
details in a table, which is included in the printable view
▪▪ Share approval process diagrams by saving annotated versions as PDF files (requires an Adobe PDF
print driver)
▪▪ Help you quickly locate key details by searching multi-step or complex diagrams for matching text
▪▪ Help you visualize and understand graphically:
• The steps necessary for a record to be approved
• The designated approvers for each step
• The criteria used to trigger the approval process
• The specific actions to take when a record is approved, rejected, recalled, or first submitted for approval
Copyright ©2010, salesforce.com, inc. All rights reserved. Salesforce.com and the “no software” logo are registered trademarks of salesforce.com, inc.,
and salesforce.com owns other registered and unregistered trademarks. Other names used herein may be trademarks of their respective owners.
SG_CertifiedDeveloper_Summer10_2010-07-23