Salesforce.com Certified Developer | Study Guide | Winter

Salesforce.com Certified Force.com Developer
Study Guide
Winter ‘11
training & Certification
Salesforce.com Certified Force.com Developer – Study Guide ( Winter ‘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 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 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 ( Winter ‘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 Apex code and 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 Apex and Visualforce. 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 candidate’s own pace and doesn’t 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
1
Salesforce.com Certified Force.com Developer – Study Guide ( Winter ‘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 you’re 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 items—all 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 and Visualforce 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 Apex or Visualforce
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 Force.com 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 and Visualforce (DEV 401). To register, go to:
www.salesforce.com/training
Force.com Fundamentals (http://wiki.developerforce.com/index.php/Force Platform Fundamentals)
training & Certification
2
Salesforce.com Certified Force.com Developer – Study Guide ( Winter ‘11)
Section 5.
Exam Outline
The Salesforce.com Certified Force.com Developer exam measures a candidate’s 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 can’t be done in a page layout)
Describe use cases for how Visualforce 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 Apex
training & Certification
3
Salesforce.com Certified Force.com Developer – Study Guide ( Winter ‘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
4
Salesforce.com Certified Force.com Developer – Study Guide ( Winter ‘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 Force.com API to query for data
5. A group of executives has requested a convenient way to see daily metrics without having to log
into Salesforce.
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
5
Salesforce.com Certified Force.com Developer – Study Guide ( Winter ‘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, there’s 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
doesn’t 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 doesn’t 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 organization’s 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 organization’s
default language is English and your personal language is French, you are not prompted for
gender when creating a custom object.
training & Certification
6
Salesforce.com Certified Force.com Developer – Study Guide ( Winter ‘11)
Field
Description
Starts with a vowel
sound
If it is appropriate for your organization’s 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 Force.com 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 the Help for this Page context sensitive help link from
the custom object record home (overview), edit, and detail pages, as well as list views and related
lists. Choose Open the standard Salesforce Help & Training window if you want to display
the basic Salesforce help available for any custom object record. Choose Open a window
using a Visualforce page or Open a window using a custom S-control to display
the Visualforce page or S-control you select as the context-sensitive help link from any custom
object record page.
Note: The Help & Training link at the top of any page is not affected by this setting. It always
opens the Salesforce Help & Training window.
For more information on creating custom help, see Custom 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 the Other Reports report 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 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
7
Salesforce.com Certified Force.com Developer – Study Guide ( Winter ‘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) can’t access
new custom objects—you 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
8
Salesforce.com Certified Force.com Developer – Study Guide ( Winter ‘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 user’s personal currency. For managers, their
team’s opportunities, forecasts, quotes, and other data is converted and rolled up to the manager’s 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 column—for example, Annual
Revenue Converted—which 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 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
9
Salesforce.com Certified Force.com Developer – Study Guide ( Winter ‘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 console’s 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 console’s 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 ( Winter ‘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 you’re 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, 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.
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
best practices:
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 ( Winter ‘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, 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
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 user’s 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 ( Winter ‘11)
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.
Section 9-7. What is Visualforce?
Visualforce uses a tag-based markup language to give developers a more powerful way to build applications
and customize the Salesforce user interface. With Visualforce, 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
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
training & Certification
13
Salesforce.com Certified Force.com Developer – Study Guide ( Winter ‘11)
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
training & Certification
14
Salesforce.com Certified Force.com Developer – Study Guide ( Winter ‘11)
Section 9-8. 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
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 Force.com 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
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.
training & Certification
15
Salesforce.com Certified Force.com Developer – Study Guide ( Winter ‘11)
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 action—in either workflow
rules or approval processes—the 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 member’s 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.
ë Role – All of the users assigned a particular role.
training & Certification
16
Salesforce.com Certified Force.com Developer – Study Guide ( Winter ‘11)
ë 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 [email protected]) 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 object’s 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,
or entitlement process.
Section 9-10. What is Apex?
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 Force.com API. Using
syntax that looks like Java and acts like database stored procedures, Apex lets developers add business logic to
most system events, including button clicks, related record updates, and Visualforce pages. Apex scripts can be
initiated by Web service requests and from triggers on objects.
Apex can be stored on the platform in two different forms:
1. A class – A template or blueprint from which developers can create Apex objects. Classes consist of
other classes, user-defined methods, variables, exception types, and static initialization code under
Setup | Develop | Apex Classes.
2. A trigger – An Apex 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
training & Certification
17
Salesforce.com Certified Force.com Developer – Study Guide ( Winter ‘11)
have been 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.
Apex scripts generally run in system context; that is, the current user’s 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,
or extract 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 isn’t 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:
▪
▪
▪
You’re 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 Service &
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 are identical in an org and all its sandboxes.
Take the following example:
1. A Solution with record id 50130000000L7s5 is created on Acme’s org on na2.salesforce.com.
2. The next day, Acme creates a Full Copy Sandbox.
3. The Solution with Record Type ID 50130000000L7s5 will 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 company’s 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 ©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_Winter11_2010-11-15