Sie sind auf Seite 1von 21

Salesforce.com Certified Force.

com Developer

Study Guide
Spring 11

training & Certification

Salesforce.com Certified Force.com Developer Study Guide (Spring 11)

Contents
About the Force.com Certification Program..............................................................................................1
Section 1.

Purpose of this Study Guide............................................................................................2

Section 2.

Audience Description: Salesforce.com Certified Force.com Developer......................2

Section 3.

About the Exam.................................................................................................................2

Section 4.

Recommended Training...................................................................................................2

Section 5.

Exam Outline.....................................................................................................................3

Section 6.

Sample Exam Questions...................................................................................................4

Section 7.

Answers to Sample Exam Questions...............................................................................6

Section 8.

Maintaining a Certification..............................................................................................6

Section 9.
Supplemental Study Material..........................................................................................6
Section 9-1.
Custom Objects.................................................................................................................................................6
Section 9-2.
Multiple Currencies..........................................................................................................................................8
Section 9-3. The Console.........................................................................................................................................................10
Section 9-4.
System Fields......................................................................................................................................................11
Section 9-5. Encrypted Custom Fields...............................................................................................................................11
Section 9-6.
Page Layouts.......................................................................................................................................................12
Section 9-7.
What is Force.com pages (Visualforce)?...................................................................................................13
Section 9-8.
Development Tools..........................................................................................................................................15
Section 9-9.
Creating Email Alerts for Workflow, Approvals, or Milestones.......................................................15
Section 9-10.
What is Force.com code (Apex)?.................................................................................................................17
Section 9-11.
Data Loader.........................................................................................................................................................18
Section 9-12. Troubleshooting Data Loader Operations..............................................................................................18
Section 9-13. Record IDs............................................................................................................................................................19
Section 9-14.
Process Visualizer..............................................................................................................................................19

training & Certification

Salesforce.com Certified Force.com Developer Study Guide (Spring 11)

About the Force.com Certification Program

The Force.com certification program is for individuals who want to demonstrate their knowledge, skills, and
capabilities to build custom applications on the Force.com cloud platform. The program encompasses the
breadth of application development on the Force.com platform, including the declarative capabilities, the
programmatic capabilities of Force.com code (Apex) and Force.com pages (Visualforce), and application
development lifecycle management with cloud computing development as a service.

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.
The Salesforce.com Certified Force.com Advanced Developer credential encompasses the
programmatic capabilities of the Force.com platform, including Force.com code and Force.com pages.
To earn this credential, a candidate must successfully complete three activities:

1. The Salesforce.com Certified Force.com Advanced Developer exam: A multiple-choice/multipleselect proctored exam. This portion of the credential program must be passed successfully to move on
to the next portion: the programming assignment.

2. The Advanced Developer programming assignment: At scheduled times throughout the year,
certification candidates who have passed the Salesforce.com Certified Force.com Advanced
Developer exam will be given the opportunity to complete the second portion of the credential
program: the programming assignment. A set of requirements and development parameters will be
sent to the candidate, and the candidate will have a fixed amount of time to complete and submit
the assignment. The candidate will be given the evaluation criteria and detailed instructions on how
to complete and submit the final working application. The programming assignment is completed
at the candidates own pace and doesnt require working at a proctored site. However, there will be a
deadline for assignment completion.

3. The Advanced Developer essay exam: Upon submission of the programming assignment, the
candidate will be required to complete a short-answer proctored exam that covers the specifics of the
programming assignment. The candidate will need to go to a testing center and complete the essay
exam. The essay exam, in combination with the programming assignment, will be evaluated and scored
as the final portion of the Salesforce.com Certified Force.com Advanced Developer certification
program.
The Salesforce.com Certified Force.com Advanced Developer credential will be granted to a candidate
upon successful completion of all parts of the program.

This study guide provides information about the Salesforce.com Certified Force.com Developer exam.

training & Certification

Salesforce.com Certified Force.com Developer Study Guide (Spring 11)

Section 1.

Purpose of this Study Guide

Section 2.

Audience Description: Salesforce.com Certified Force.com Developer

This study guide is designed to help you evaluate whether youre ready to successfully complete the
Salesforce.com Certified Force.com Developer exam. This guide provides information about recommended
training from Salesforce.com Training and Certification, a complete list of exam objectives, supplemental
study material, and several sample exam itemsall with the intent of helping you achieve a passing score.
Salesforce.com highly recommends a combination of course attendance and self-study to maximize your
chances of passing the exam.
The Salesforce.com Certified Force.com Developer exam is intended for an individual who has experience
developing custom applications on the Force.com platform, including practical application of the skills
and concepts noted in the exam objectives below. The candidate has successfully completed the Building
Applications with Force.com course (DEV 401) from salesforce.com or an Authorized Training Center or
possesses equivalent experience and knowledge. The candidate:

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 Force.com code or Force.com pages
Is capable of designing and developing reports/analytics
Can identify appropriate solutions to specific business challenges/process requirements by applying
knowledge of these features in the current version of the Force.com platform
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 Web Services API.
Additionally, candidates are not expected to be able to package or migrate applications.

Section 3.

About the Exam

The Salesforce.com Certified Force.com Developer exam has the following characteristics:

Content: 60 multiple-choice/multiple-select questions


Time allotted to complete the exam: 90 minutes
Passing score: 68 percent
References: No hard-copy or online materials may be referenced during the exam
Prerequisites: None required; course attendance highly recommended

Section 4.

Recommended Training

Salesforce.com Training and Certification recommends the following as preparation for this exam:

Building Applications with Force.com (DEV 401). To register, go to: www.salesforce.com/training


Force.com Fundamentals

training & Certification

Salesforce.com Certified Force.com Developer Study Guide (Spring 11)

Section 5.

Exam Outline

The Salesforce.com Certified Force.com Developer exam measures a candidates knowledge and skills related
to the objectives listed below. A candidate should have hands-on experience developing custom applications
on the Force.com platform and have demonstrated the application of each of the following features/functions.

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

Overview of Force.com Platform

5%

List and describe the steps required to design and deploy a successful application built using the declarative
capabilities of the Force.com platform

List and describe the building blocks of an application provided by the Force.com platform

Data Model

32%

Describe how to create a functional data model for a business application

Given a scenario, select the features required to create a functional data model for a business application

Describe the properties and implications of choosing one object relationship type over another and
distinguish among relationship types

Given a scenario, distinguish among object relationship types, describe how to create relationships, and
determine which relationship should be recommended

List and describe the features used to set permission and data access in a custom app

Given a scenario, select the appropriate feature (e.g., profiles, defaults, roles) to provide appropriate
permissions and data access in a custom app

List and describe optional (Salesforce-enabled) features for managing the application (e.g., create audit
fields, encrypted fields, multicurrency)

User Interface

15%

List and describe the components of any Force.com application user interface (e.g., tabs, applications, detail
pages, list views)

Given a scenario, determine the capabilities and constraints of the declarative framework for building a user
interface (e.g., what can and cant be done in a page layout)

Describe use cases for how Force.com pages can extend the user interface in the declarative framework and
when to do so

Describe the capabilities and functionality of Force.com sites

Business Logic

23%

List and describe how to create formulas, validation rules, and workflow rules

Given a scenario, determine which Force.com feature to use to solve a business requirement and/or describe
how to apply the solution

List and describe the capabilities of the Force.com approval processes

Given a scenario, select the appropriate features of Force.com approval processes to satisfy business
requirements

List and describe the features of the Force.com platform for debugging and monitoring automated business
processes

Describe use cases for extending business logic through Force.com code

training & Certification

Salesforce.com Certified Force.com Developer Study Guide (Spring 11)

Data Management

10%

List and describe the capabilities and constraints of import wizards

List and describe the capabilities and constraints of API-based tools for managing data

List and describe the functions of the Force.com Data Loader

Describe use cases and functions of external IDs and upsert

Given a scenario, determine appropriate uses of the GUI and command-line interface for the data loader

Describe the characteristics of Force.com record IDs

Reporting and Analytics

10%

List and describe capabilities and constraints of reports and analytics of the Force.com platform

Given a scenario, determine methods for analyzing and displaying data

Section 6.

Sample Exam Questions

The following questions are representative of those on the Salesforce.com Certified Force.com Developer
exam. These questions are not designed to test your readiness to successfully complete the certification exam,
but should be used to become familiar with the types of questions on the exam. The actual exam questions may
be more or less difficult than this set of questions.
1. Within a custom recruiting application, Universal Containers uses a custom position object to track
positions. Positions expire 90 days after they have been approved. A Workflow Rule is in place to send
an email to the hiring manager listed on a position 15 days before the expiration date.
What will happen if the expiration date of a position is extended by 30 days?
A. An email will be sent 15 days before the original expiration date.
B. An email will be sent 15 days before the updated expiration date.
C. An email will be sent on the original expiration date.
D. An email will not be sent.
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
3. Which statement is true about a custom tab?
A. It can only be included in one application.
B. It can only be included in standard applications.
C. It can be included in as many applications as desired.
D. It can only be included in custom applications.

training & Certification

Salesforce.com Certified Force.com Developer Study Guide (Spring 11)

4. When would a developer use upsert and external IDs?


(Choose two answers.)
A. To integrate with an external system
B. To migrate customizations from sandbox to production
C. To load related records without knowing Salesforce record IDs
D. To use the Web Services API to query for data
5. A group of executives has requested a convenient way to see daily metrics without having to log
intoSalesforce.
How would a developer accomplish this goal?
A. Set the users home page layouts to include a dashboard.
B. Create a Workflow rule that sends a link to the dashboard in an email.
C. Schedule the dashboard for daily refresh and email distribution.
D. Create a series of daily recurring events providing the dashboard link.

training & Certification

Salesforce.com Certified Force.com Developer Study Guide (Spring 11)

Section 7.
1. B

Answers to Sample Exam Questions

2. A
3. C
4. A, C
5. C

Section 8.

Maintaining a Certification

Maintaining a certification requires successful completion of release-level certifications for the major
Salesforce CRM releases throughout the year.
All certifications include access to new release content for subsequent releases, along with the associated
exams, for 1 year. After 1 year, theres a maintenance fee of $100 to keep the certification current for the
following year. Certified salesforce.com professionals will be notified automatically when new release content
and exams become available.

Section 9.

Supplemental Study Material

The following information is drawn from Help & Training in Salesforce and is provided as supplemental
study material. Note that this material is complementary to the Force.com Essentials course materials and
doesnt cover the same material. In preparing for the Salesforce.com Certified Force.com Developer exam,
please study the material in the Force.com Essentials student manual, review the Force.com Fundamentals
book or PDF, and study this supplemental material.
Note: This material is supplemental only. It doesnt include all topics or items on the exam. The materials
mentioned above make up the full reference set.
Section 9-1. Custom Objects
Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions.

User Permissions Needed


To create and edit custom objects:

Customize Application

Define custom objects to track and store data unique to your organization. For the total number of custom
objects you can create, see Salesforce Editions and Limits.
To create a custom object:
1. Click Your Name | Setup | Create | Objects.
2. Click New Custom Object, or click Edit to modify an existing custom object.
3. Enter the following:

Field

Description

Label

A name used to refer to the object in any user interface pages.

Plural Label

The plural name of the object. If you create a tab for this object, this name is used for the tab.

Gender

If it is appropriate for your organizations default language, specify the gender of the label. This
field appears if the organization-wide default language expects gender. Your personal language
preference setting does not affect whether the field appears. For example, if the organizations
default language is English and your personal language is French, you are not prompted for
gender when creating a custom object.

training & Certification

Salesforce.com Certified Force.com Developer Study Guide (Spring 11)

Field

Description

Starts with a vowel


sound

If it is appropriate for your organizations default language, check if your label should be preceded
by "an" instead of "a."

Object Name

A unique name used to refer to the object when using the Web Services API. In managed
packages, this unique name prevents naming conflicts on package installations. The Object
Name field can contain only underscores and alphanumeric characters. It must be unique, begin
with a letter, not include spaces, not end with an underscore, and not contain two consecutive
underscores.

Description

An optional description of the object. A meaningful description will help you remember the
differences between your custom objects when you are viewing them in a list.

Context-Sensitive
Help Setting

Defines what displays when users click theHelp for this Pagecontext sensitive help link from
the custom object record home (overview), edit, and detail pages, as well as list views and related
lists. ChooseOpen the standard Salesforce Help & Training windowif you want to display
the basic Salesforce help available for any custom object record. ChooseOpen a window using
a Force.com page orOpen a window using a custom S-control to display the Force.com
page or S-control you select as the context-sensitive help link from any custom object record page.
Note: TheHelp & Traininglink at the top of any page is not affected by this setting. It always
opens theSalesforce Help & Training window.
For more information on creating custom help, seeCustom Help Overview.

Custom S-Control

The S-control you have defined that contains the help content for this custom object.

Record Name

The name used in page layouts, list views, related lists, and search results.

Data Type

The type of field (text or auto-number) for the record name. Records that have unique IDs instead
of names use auto-numbers. An auto-number is a unique number assigned automatically. It is
always a read-only field.

Display Format

For a Record Name of type auto-number, enter a display format. You can have up to two sets of
curly braces. For more details about display format options, see Custom Field Attributes.

Starting Number

For a Record Name of type auto-number, enter the number to use when creating your first record
for this custom object.

Allow Reports

Makes the data in the custom object records available for reporting purposes.
To create reports on custom objects, choose theOther Reportsreport type category unless the
custom object has a relationship with a standard object. When the custom object has a masterdetail relationship with a standard object, or is a lookup object on a standard object, select the
standard object for the report type category instead.

Allow Activities

Allows users to associate tasks and scheduled calendar events related to the custom object
records. For more information, see Notes on Enabling Activities for Custom Objects.

Enable Divisions

If your organization has divisions enabled, select this option to enable the custom object for
divisions. Divisions group records for simplified search results, list views, reports, and other areas
within Salesforce. Salesforce adds a Division field to the custom object, and if the custom
object is the master in a master-detail relationship, any custom objects on the detail side also get
the Division field and inherit their division from the master record.

Track Field History

Enables your organization to track changes to fields on the custom object records, such as who
changed the value of a field, when it was changed, and what the value of the field was before and
after the edit. History data is available for reporting, so users can easily create audit trail reports
when this feature is enabled.

Deployment Status

Indicates whether the custom object is visible to other users. For more information, see
Deploying Custom Objects.

Add Notes &


Attachments...

Allows users to be able to attach notes and attachments to custom object records.This option
allows you to attach external documents to any object record, in much the same way that you
can add a PDF or photo as an attachment to an email.
This option is only available when you are creating a new object.

Launch the New


Custom Tab Wizard

Starts the custom tab wizard after you save the custom object.

4. Click Save.

training & Certification

Salesforce.com Certified Force.com Developer Study Guide (Spring 11)

Notes on Custom Objects


Object Permissions
In Enterprise, Unlimited, and Developer Editions, when you create a custom object, the Read, Create,
Edit, Delete, View All, and Modify All permissions for that object are disabled for any profiles in
which View All Data or Modify All Data is disabled. You can change these permissions in custom profiles,
but not standard profiles. That is, users with standard profiles (except System Administrator) cant access
new custom objectsyou must assign them custom profiles and edit the profiles. To enable access to custom
objects, do one of the following:

For users with standard profiles:


a. Clone the profiles of the users whose object permissions you want to change.
b. Edit the custom profiles, enabling the permissions you want.
Tip: If enhanced profile list views are enabled for your organization, you can
change permissions for multiple profiles from the list view.

c. Edit the users accounts, assigning the appropriate cloned custom profiles.
For users with custom profiles, simply edit their profiles, enabling the permissions you want.

Note: In Contact Manager, Group, and Professional editions, when you create a custom object, the Read,
Create, Edit, and Delete permissions for that object are enabled for all profiles.
Sharing Model
The data sharing model for all custom objects is controlled by an organization-wide default setting. For more
information, see Custom Object Security.
Delegating Custom Object Administration
After you create a custom object, you can delegate the administration of the custom object to other nonadministrator users.
Queues
After you create a custom object, you can define queues to distribute ownership of custom object records to
your users.
Search
Custom object records appear in search results only if they have a custom tab.
Section 9-2. Multiple Currencies
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions.

User Permissions Needed


To view currencies:

View Setup and Configuration

To change currencies:

Customize Application

Your organization can set up the ability to use multiple currencies in opportunities, forecasts, quotes, reports,
and other data. To use multiple currencies:
1. Contact salesforce.com to enable Multi-Currency for your organization.
Note: For large organizations, Multi-Currency might be enabled over the next weekend to avoid
performance issues during the work week.
2. Designate your corporate currency. See Setting Corporate Currency.

training & Certification

Salesforce.com Certified Force.com Developer Study Guide (Spring 11)

3. Activate additional currencies for your organization. See Activating and Deactivating Currencies.
4. To use dated exchange rates, enable advanced currency management.
5. Set conversion rates for new currencies. See Editing Conversion Rates and, if you have enabled
advanced currency management, Editing Dated Exchange Rates.

Using Multiple Currencies


International organizations can use multiple currencies in opportunities, forecasts, reports, quotes, and other
currency fields. The administrator sets the corporate currency, which reflects the currency of the corporate
headquarters. The administrator also maintains the list of active currencies and their conversion rates relative to
the corporate currency. The active currencies represent the countries in which the organization does business.
Only active currencies can be used in currency amount fields.
Every user also has a personal currency, which is used as the default currency in his or her own quotas,
forecasts, opportunities, quotes, and reports. Users can also create opportunities and enter amounts using other
active currencies.
Every lead, account, contact, opportunity, and case has a field that specifies the currency to use for all amount
fields in that record. For example, you can set the Account Currency to USD-U.S. Dollars so that the
Annual Revenue shows in dollars for one of your American accounts. All currency amounts are displayed
in the default currency of the record as well as in the personal currency of the user. When you change the default
currency of a record, currency amounts are not converted; they simply display with the new currency code.
Note: If your organization uses advanced currency management, the opportunity close date determines which
conversion rate to use when displaying currency amounts.
In forecasts, currency amounts are automatically converted to the users personal currency. For managers, their
teams opportunities, forecasts, quotes, and other data is converted and rolled up to the managers personal
currency. The manager can also drill down to see the data in its native currency. All conversion and roll-ups
happen automatically.
Amounts in reports are shown in their original currencies, but can be displayed in any active currency. You can
change the currency used for report totals by selecting a currency from the Display Currencies Using dropdown list on the Select Criteria page of the report wizard. The default value for the drop-down is your personal
currency. For any amount, you can also choose to display the Converted columnfor example, Annual
Revenue Convertedwhich will show amounts in the currency you select from the Display Currencies
Using drop-down list.
Custom formula fields are not tied to any particular currency. If the result of a formula field is a currency
amount, it displays in the currency of the associated record. This setup is also true for cross-object formulas
that reference merge fields with different currencies, and formulas in workflow rules and approval processes.
However, note that workflow rules and approval processes that use filters instead of formulas convert all
currency values to the corporate currency.
You cannot disable multiple currencies for your organization if the currency fields are referenced in
an Apex script. For example, if a script references the Account Currency field (represented as
CurrencyIsoCode in the code), multiple currencies cannot be disabled. For more information, see
Force.com Apex Code Overview.
Importing Multiple Currencies
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions.

If your organization has set up the ability to use multiple currencies, you can import amounts in different
currencies.

training & Certification

Salesforce.com Certified Force.com Developer Study Guide (Spring 11)

Import My Accounts and Contacts


For personal imports, all amounts in new accounts and contacts are imported in your personal currency.
When import updates amounts in existing records, the amounts in your file are converted from your personal
currency to the currency of the account or contact.
For example, if your personal currency is U.S. dollars, and your import file has 100 as the annual revenue of
an existing account with Account Currency of euros, then the new Annual Revenue value of the
account will be EUR 92, assuming a conversion rate of 0.92 and EUR as the currency code for euros.

Organization Import
When importing accounts, contacts, custom objects, leads, or solutions for your organization, you can specify
the currency type for amount fields using the Currency ISO Code column in your import file. The
following rules apply:

Entering currency codes Enter a currency code in the Currency ISO Code column in your
import file. Currency codes are three letter codes that follow an international standard. For example,
USD is the currency code for U.S. dollars. Click Your Name | Setup | Company Profile |
Manage Currencies to see a list of valid codes for your organization.
Using one currency for accounts and contacts If you are importing accounts and contacts, the
Currency ISO Code column applies to both an account and its associated contact. You cannot
specify different currencies for associated accounts and contacts.
Updating the currency code When updating the currency code but not the currency amount for
existing accounts and contacts, the existing amount is not converted to the corresponding number in
the new currency.
Entering inactive currencies If you enter an inactive currency in your import file, your personal
currency will be used instead. However, amounts will not be modified. For example, if your file has
AUD 100 for 100 Australian dollars but AUD is an inactive currency for your organization, then it is
imported as USD 100, assuming your personal currency is U.S. dollars.
Omitting the Currency ISO Code column When creating new records via importing, if you do
not use the Currency ISO Code column or fail to map it, your personal currency is used. For
example, if your file has 100 and your personal currency is U.S. dollars (currency code = USD), this is
imported as USD 100.
When updating existing records via importing, if you do not use the Currency ISO Code
column or fail to map it, any amounts are interpreted as having the existing currency of the record. For
example, if your file has 100 for a record that has a currency of EUR (the currency code for euros), this
amount is interpreted as EUR 100.

Section 9-3. The Console


The console is a tab that combines a list view and related records into one screen with different frames so users
have all the information they need when interacting with Salesforce. With the console, users can quickly find,
view, and edit records such as cases, accounts, and contacts with fewer clicks and without switching back and
forth between screens. Administrators choose the information displayed in the console to accommodate users
varied and evolving business needs.
Console layouts define what objects are available to users in the consoles list view frame. For example, if you
want users to see list views of cases and contacts in the console, then you would add both cases and contacts
to a console layout, and then assign that console layout to the appropriate user profiles. A user can only view
objects in the consoles list view frame if those objects are added to the console layout to which his or her
profile is assigned.

training & Certification

10

Salesforce.com Certified Force.com Developer Study Guide (Spring 11)

From the console layouts list page, accessed by clicking Setup | Customize | Console | Console
Layouts, you can:

Click New to create layouts


Click Edit to modify a layout
Click Del to delete a layout
Click Console Layout Assignment to assign console layouts to profiles

Section 9-4. System Fields


Salesforce has the ability to set system fields through the API. When youre migrating data from an external
system, the API lets customers set the CreatedBy, CreatedDate, LastModifiedByID, LastModifiedDate, and
a number of other fields on most objects that were previously read-only. By setting these fields, records will
appear to have been created at their original created time from your old system.
The objects that you can edit these fields on are:

Account
Opportunity
Contact
Lead
Case
Task
Event
Custom Objects

To enable this feature, please contact Salesforce.com Support. Once the feature is enabled, youll be able to set
these fields when creating the record. Because these fields are intended to be audit fields, youll only be able to
set them on create, not update. Also, if this feature is enabled, salesforce.com cant 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 youre 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.
Section 9-5. Encrypted Custom Fields
Encrypted custom fields are text fields that can contain letters, numbers, or symbols but are encrypted. The
value of an encrypted field is only visible to users that have the View Encrypted Data permission.
Before you begin working with encrypted custom fields, review the following implementation notes and
bestpractices:

Implementation Notes

To enable encrypted fields for your organization, contact salesforce.com.

Encrypted custom fields cannot be unique, an external ID, or have default values.

Encrypted fields are encrypted with 128-bit keys and use the AES (Advanced Encryption Standard)
algorithm.

training & Certification

11

Salesforce.com Certified Force.com Developer Study Guide (Spring 11)

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, Salesforce Connect for Outlook,
Salesforce Connect for Lotus Notes, Salesforce 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 Force.com code 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

Section 9-6. Page Layouts


When customizing page layouts for tasks, you can select the following checkboxes:

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 users personal
preference for defaulting the state of the checkbox takes precedence over the organization-wide setting.
For more information, see Creating Tasks.

training & Certification

12

Salesforce.com Certified Force.com Developer Study Guide (Spring 11)

Page layouts for the user object only include custom fields, custom links, S-controls, and Force.com 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 cant 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, Salesforce 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 arent 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 cant 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.
Section 9-7. What is Force.com pages (Visualforce)?
Force.com pages (Visualforce) uses a tag-based markup language to give developers a more powerful way to
build applications and customize the Salesforce user interface. With Force.com pages, you can:

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
applicationinteraction

Force.com pages is a framework that lets developers build sophisticated, custom UIs that can be hosted
natively on the Force.com platform. The Force.com pages framework includes a tag-based markup language
similar to HTML.
In the Force.com pages markup language, each Force.com pages 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 Force.com page

training & Certification

13

Salesforce.com Certified Force.com Developer Study Guide (Spring 11)

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 Force.com code (Apex).

What is a Force.com page?


Developers can use Force.com pages to create a Force.com page definition. A page definition consists of two
primary elements:

Force.com page markup


A Force.com page controller

Force.com Pages Markup


Force.com pages markup consists of Force.com pages 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.
Force.com Page Controllers
A Force.com page controller is a set of instructions that specify what happens when a user interacts with the
components specified in associated Force.com page 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 Force.com code:

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 Force.com page
results in the same behavior as clicking Save on a standard Account edit page.
A custom controller is a class written in Force.com code that implements all of a pages 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 Force.com 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 users profile.
A controller extension is a class written in Force.com code 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 modein which the permissions, field-level security, and sharing
rules of the current user are enforcedextending a standard controller lets you build a Force.com 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 users profile.

Where can Force.com pages be used?


Developers can use Force.com 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

training & Certification

14

Salesforce.com Certified Force.com Developer Study Guide (Spring 11)

Section 9-8. Development Tools


The Force.com platform includes the following tools in Setup | Develop. These tools require some
programming knowledge:
Force.com Classes Define Force.com 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 Force.com page components you can use in one or more Force.com pages
Email Services Define Force.com classes that can process inbound email
Pages Define Force.com 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 Force.com 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 Force.com code
Section 9-9. Creating Email Alerts for Workflow, Approvals, or Milestones
Available in: Enterprise, Unlimited, and Developer Editions.

User Permissions Needed


To view currencies:

View Setup and Configuration

To change currencies:

Customize Application

To create email alerts:


1. For workflow and approvals, click Your Name | Setup | Create | Workflow & Approvals |
Email Alerts.
For milestones on entitlement processes, click Your Name | Setup | Customize | Entitlement
Management | Entitlement Processes, choose an entitlement process, a milestone, and click Add
Workflow Action.
2. Click New Email Alert.
3. Configure the email alert:
a. Enter a description for this email alert.
b. Enter a unique name to refer to this component in the Web Services API and to prevent naming
conflicts for managed package installations. The requirement for uniqueness is only within the
selected object type. You can have actions of the same type (for example, two email alerts) with the
same unique name, provided they are defined for different objects, such as one for Campaigns and
one for Opportunities. The Unique Name field can contain only underscores and alphanumeric
characters. It must be unique within the selected object type, begin with a letter, not include spaces,
not end with an underscore, and not contain two consecutive underscores.
c. If available, choose the object for this email alert.
Salesforce uses this object when generating merge field values for email templates with workflow
rules and approval processes. Also, you can define the recipients of this email alert using contact and
user lookup fields that are relevant to that object. For example, if you select Contract, you can define

training & Certification

15

Salesforce.com Certified Force.com Developer Study Guide (Spring 11)

the contract signer as a recipient. The object is read only if the new email alert is associated with an
approval process or workflow rule for a particular object.
Tip: To create workflow rules for case comments so that comments added to cases send email alerts
when a rule is triggered, select Case Comment in the Object drop-down list when creating a new
workflow rule.
d. Choose an email template.
Note: If the email template you choose contains approval merge fields named {!ApprovalRequest.
field_name}, these fields will return values only when that email template is used as the approval
assignment template. If you use the template for any other email alert actionin either workflow
rules or approval processesthe merge fields will return a null value.
e. Check the Protected Component check box to mark the alert as protected.
f. Select who should receive this email alert. The options are:
Account Owner The user listed as the account owner of either the account itself or

the account associated with the record. This option only works for email alerts on accounts,
opportunities, cases, contacts, contracts, and any custom object that is a child of the account object.
Also, an account owner must be specified for the associated account. If you select another type of
object or the associated account does not have an account owner, Salesforce sends the email alert to
the record owner instead.

Account Team All users assigned to a particular account team role. Note:

The Account Team option is always available; however, emails are only sent when the rule is
associated with the account object or any of its immediate child objects.
Case Team All users assigned to a particular case team role.
Creator The user who created the record.
Customer Portal User All users associated with a Customer Portal.
Email Field An email address field on the selected object, such as the Email field on lead

records or custom email fields.Note

When creating email alerts for campaign members, Email Field refers to the email field on
the lead or contact that the campaign member is based on.
Owner The record owner.
Partner User All users associated with a partner portal.
Portal Role All users assigned to a particular portal role.
Portal Role and Subordinates All users assigned to a particular portal role, plus all

users in roles below that role.

Public Groups The users in a particular public group.


Related Contact An associated contact on the record. For example, you can select the

Customer Signed By field for contracts that contain the name of the contract signer.

Related Lead or Contact Owner A campaign members lead or contact owner.


Related User An associated user on the record. For example, contract records have an

Activated By field that contains the name of the user that activated the contract.

training & Certification

16

Salesforce.com Certified Force.com Developer Study Guide (Spring 11)

Role All of the users assigned a particular role.


Role and Internal Subordinates All users in a particular role, plus all users in

roles below that role, excluding partner portal and Customer Portal users.

Role and Subordinates All users in a particular role, plus all users in roles below that role.
Users A particular user.
Sales Team A member of the sales team.

Note: The Sales Team option is always available; however, it only works for email alerts
configured for opportunities. It does not work for email alerts configured for child objects of
opportunities.
g. The recipients that match your search results appear in the Available Recipients list.
h. Select the recipients who should receive this email alert in the Available Recipients list and click Add.
Note: If you change the object after selecting recipients, Salesforce clears the Selected Recipients list.
i. Optionally, enter up to five additional email addresses.
j. Optionally, change the From Email Address to:
The email address of the default workflow user.
A previously configured and verified organization-wide address. This allows you to use a standard

global email address for your organization (such as support@company.com) instead of the default
From field, which is the email address of the person who updates the record.
Only verified organization-wide email addresses display in the From Email Address picklist.

Note: If you select Make this the default From email address for this objects email alerts, it overrides
the From Email Address for all email alerts associated with that object. Upon saving, a dialog
box prompts you to confirm your selection. You can still customize individual email alerts to use a
different From Email Address.
k. Click Save.
Note: If your email recipient is a record owner and the owner of the record is a queue, the queue
email receives the email alert. If the queue is set up so that email is sent to all members, queue
members are notified as well. If no queue email is specified, only queue members are notified.
To set email alerts into action, associate them with a workflow rule, approval process,
orentitlement process.
Section 9-10. What is Force.com code (Apex)?
Force.com code (Apex) is a Java-like, object-oriented programming language that lets developers execute
flow and transaction control statements on the Force.com platform server in conjunction with calls to the
Web Services API. Using syntax that looks like Java and acts like database stored procedures, Force.com code
lets developers add business logic to most system events, including button clicks, related record updates, and
Force.com pages. Force.com code scripts can be initiated by Web service requests and from triggers on objects.
Force.com code can be stored on the platform in two different forms:
1. A class A template or blueprint from which developers can create Force.com code objects. Classes
consist of other classes, user-defined methods, variables, exception types, and static initialization code
under Setup | Develop | Apex Classes.

training & Certification

17

Salesforce.com Certified Force.com Developer Study Guide (Spring 11)

2. A trigger A Force.com code script that executes before or after specific data manipulation language
(DML)events occur, such as before object records are inserted into the database or after records
havebeen deleted. Triggers are stored as metadata in Salesforce at Setup | Customize |
Standard_Object_Name | Triggers for standard objects and on the object detail page
for custom objects at Setup | Create | Objects.
Force.com code scripts generally run in system context; that is, the current users profile-based permissions,
field-level security, and sharing rules are not taken into account during script execution.
Section 9-11. Data Loader
The Data Loader is a client application for the bulk import or export of data. Use it to insert, update, delete,
orextract Salesforce records.
When importing data, the Data Loader reads, extracts, and loads data from comma separated values (CSV)
files. When exporting data, it outputs CSV files.
The Data Loader complements the Web-based import wizards that are accessible from the Setup menu in the
online application. Refer to the following guidelines to determine which method of importing best suits your
business needs:
Use the Data Loader when:

You need to load 50,000 or more records


You need to load into an object that isnt yet supported by Web-based importing
You want to schedule regular data loads, such as nightly imports
You want to save multiple mapping files for later use
You want to export your data for backup purposes

Use Web-based importing when:

Youre loading less than 50,000 records


The object you need to import is supported by the Web-based import wizards
You want to prevent duplicates by uploading records according to account name and site, contact email
address, or lead email address

Section 9-12. Troubleshooting Data Loader Operations


If you need to investigate a problem with the Data Loader, or if requested by Salesforce.com Support, you can
access log files that track the operations and network connections made by the Data Loader. The two log files are:
sdl.log

Contains a detailed chronological list of Data Loader log entries. Log entries marked INFO are
procedural items, such as logging in to Salesforce. Log entries marked ERROR are problems such as a
submitted record missing a required field.
sdl_out.log

A supplemental log that contains additional information not captured in sdl.log. For example, it
includes log entries for the creation of proxy server network connections.
These files can be opened with commonly available text editor programs, such as Microsoft Notepad.
You can quickly open these files by entering %TEMP%\sdl.log and %TEMP%\sdl_out.log in either
the Run dialog or the Windows Explorer address bar.

training & Certification

18

Section 9-13. Record IDs


The 15/18 character Record Ids in Salesforce areidentical in an org and all its sandboxes.
Take the following example:
1. ASolution withrecord id 50130000000L7s5is created onAcmes orgon na2.salesforce.com.
2. The next day, Acme createsaFull CopySandbox.
3. The Solution with Record TypeID 50130000000L7s5will be accessible in the Sandbox org as well.
Section 9-14. Process Visualizer
You can use the Process Visualizer to:

Display a flowchart of each saved approval process

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

Improve communication about the approval process and gain buy-in from step owners
Reinforce your companys policies by documenting the decisions you reached when the approval
process was designed

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

For More Information


Contact your account executive to learn
how we can help you accelerate your
CRM success.

Corporate Headquarters
The Landmark @ One Market
Suite 300
San Francisco, CA, 94105
United States
1-800-NO-SOFTWARE
www.salesforce.com

Global Offices
Latin America
Japan
Asia/Pacific
EMEA

+1-415-536-4606
+81-3-5785-8201
+65-6302-5700
+4121-6953700

Copyright 2011, 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_Spring11_2011-03-16

Das könnte Ihnen auch gefallen