Vous êtes sur la page 1sur 22

Salesforce.com Certified Force.

com Developer

Study Guide
Summer 11

STUDY GUIDE

Salesforce.com Certified Force.com Developer Study Guide

Contents
ABOUT THE SALESFORCE.COM CERTIFIED FORCE.COM DEVELOPER PROGRAM................................................................................1 SECTION 1. PURPOSE OF THIS STUDY GUIDE..............................................................................................................................................1 SECTION 2. AUDIENCE DESCRIPTION: SALESFORCE.COM CERTIFIED FORCE.COM DEVELOPER .......................................................1 SECTION 3. ABOUT THE EXAM ......................................................................................................................................................................2 SECTION 4. RECOMMENDED TRAINING AND REFERENCES....................................................................................................................2 SECTION 5. EXAM OUTLINE ...........................................................................................................................................................................2 SECTION 6. SAMPLE EXAM QUESTIONS......................................................................................................................................................4 SECTION 7. ANSWERS TO SAMPLE EXAM QUESTIONS ............................................................................................................................5 SECTION 8. MAINTAINING A CERTIFICATION..............................................................................................................................................5 SECTION 9. SUPPLEMENTAL STUDY MATERIAL...........................................................................................................................................6

TRAINING & CERTIFICATION

Salesforce.com Certified Force.com Developer Study Guide

About the Salesforce.com Certified Force.com Developer 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 multiplechoice/multiple-select proctored exam. This portion of the credential program must be passed successfully to move on to the next portion: the programming assignment. 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. 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.

2.

3.

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.

Section 1. Purpose of this Study Guide


This study guide is designed to help you evaluate if you are ready to successfully complete the Salesforce.com Certified Force.com Developer exam. This guide provides information about the target audience for the certification program, the recommended training and documentation, and a complete list of exam objectivesall with the intent of helping you achieve a passing score. Salesforce.com highly recommends a combination of on-the-job experience, course attendance, and self-study to maximize your chances of passing the exam.

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


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:
TRAINING & CERTIFICATION 1

Salesforce.com Certified Force.com Developer Study Guide

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 and References


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

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 features/functions below.

Objective
Application Design 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 List and describe the steps required to design and deploy a successful application built using the

Weighting
5%

5%

TRAINING & CERTIFICATION

Salesforce.com Certified Force.com Developer Study Guide

declarative capabilities of the Force.com platform List and describe the building blocks of an application provided by the Force.com platform Data Model 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 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 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 Data Management 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 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 10% 10% 23% 15% 32%

TRAINING & CERTIFICATION

Salesforce.com Certified Force.com Developer Study Guide

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. B. C. D. An email will be sent 15 days before the original expiration date. An email will be sent 15 days before the updated expiration date. An email will be sent on the original expiration date. 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. B. C. D. Lookup. Master-detail Many-to-many Master-to-master

3.

Which statement is true about a custom tab? A. B. C. D. It can only be included in one application. It can only be included in standard applications. It can be included in as many applications as desired. It can only be included in custom applications.

4.

When would a developer use upsert and external IDs? (There are two correct answers.) A. B. C. D. To integrate with an external system. To migrate customizations from sandbox to production. To load related records without knowing Salesforce record IDs. 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 in to Salesforce. How would a developer accomplish this goal? A. B. C. D. Set the users home page layouts to include a dashboard. Create a Workflow rule that sends a link to the dashboard in an email. Schedule the dashboard for daily refresh and email distribution. Create a series of daily recurring events providing the dashboard link.

TRAINING & CERTIFICATION

Salesforce.com Certified Force.com Developer Study Guide

Section 7. Answers to Sample Exam Questions


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

Section 8. Maintaining a Certification


Successful completion of online, release-specific Salesforce.com Certified Force.com Developer exams is required to maintain this credential. Release exams are published three times a year for each of the Salesforce.com product releases throughout the year. The initial cost of the certification includes the Salesforce.com Certified Force.com Developer exam plus two online release exams. In subsequent years, an annual maintenance fee of $100 will be charged when registering for every third release exam, to keep the certification current. The maintenance fee includes the three release exams and access to the supporting training material. Salesforce.com Certified professionals will be notified automatically when new release training material and exams become available.

TRAINING & CERTIFICATION

Salesforce.com Certified Force.com Developer Study Guide

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 "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 Plural Label Gender A name used to refer to the object in any user interface pages. The plural name of the object. If you create a tab for this object, this name is used for the tab. 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. If it is appropriate for your organizations default language, check if your label should be preceded by "an" instead of "a." 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. 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. To create and edit custom objects:

Starts with a vowel sound Object Name

Description

ContextDefines what displays when users click the Help for this Page context sensitive help link from Sensitive Help the custom object record home (overview), edit, and detail pages, as well as list views and Setting 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
TRAINING & CERTIFICATION 6

Salesforce.com Certified Force.com Developer Study Guide

Field

Description window using a Force.com page or Open 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: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 SControl Record Name Data Type

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

The name used in page layouts, list views, related lists, and search results. 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 Allow Reports For a Record Name of type auto-number, enter the number to use when creating your first record for this custom object. 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 master-detail 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 Enable Divisions 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. 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. 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. Indicates whether the custom object is visible to other users. For more information, see Deploying Custom Objects. 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
7

Track Field History

Deployment Status Add Notes &

TRAINING & CERTIFICATION

Salesforce.com Certified Force.com Developer Study Guide

Field

Description

Attachments... 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 Starts the custom tab wizard after you save the custom object. Custom Tab Wizard Click Save.

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 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: Clone the profiles of the users whose object permissions you want to change. 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. 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 non-administrator 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.

TRAINING & CERTIFICATION

Salesforce.com Certified Force.com Developer Study Guide

Section 9-2.

Multiple Currencies

Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions User Permissions Needed To view currencies: To change currencies: View Setup and Configuration

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: 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. Designate your corporate currency. See Setting Corporate Currency. Activate additional currencies for your organization. See Activating and Deactivating Currencies. To use dated exchange rates, enable advanced currency management. 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 drop-down 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 Converted which will show amounts in the currency you select from the Display Currencies Using drop-down list.
TRAINING & CERTIFICATION 9

Salesforce.com Certified Force.com Developer Study Guide

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 theAccount 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.

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.

TRAINING & CERTIFICATION

10

Salesforce.com Certified Force.com Developer Study Guide

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. 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.

TRAINING & CERTIFICATION

11

Salesforce.com Certified Force.com Developer Study Guide

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 best practices:

Implementation Notes

To enable encrypted fields for your organization, contact salesforce.com. Encrypted fields are encrypted with 128-bit keys and use the AES (Advanced Encryption Standard) algorithm. Encrypted custom fields cannot be unique, an external ID, or have default values. While other text fields can contain up to 255 characters, encrypted text fields are limited to 175 characters due to the encryption algorithm. Encrypted fields are not available for use in filters such as list views, reports, roll-up summary fields, and rule filters. Encrypted fields cannot be used to define report criteria but they can be included in report results. Encrypted fields are not searchable but they can be included in search results. Encrypted fields are not available in the following: Salesforce Mobile, 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.

TRAINING & CERTIFICATION

12

Salesforce.com Certified Force.com Developer Study Guide

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.

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.

TRAINING & CERTIFICATION

13

Salesforce.com Certified Force.com Developer Study Guide

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.

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 application interaction

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 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.
14

TRAINING & CERTIFICATION

Salesforce.com Certified Force.com Developer Study Guide

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 fieldlevel 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 Clone button for contacts Override tab overview pages, such as the Accounts tab home page Define custom tabs Embed components in detail page layouts, similar to the way inline S-controls can be embedded

Section 9-7.

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-8.

Creating Email Alerts for Workflow, Approvals, or Milestones

Available in: Enterprise, Unlimited, and Developer Editions

TRAINING & CERTIFICATION

15

Salesforce.com Certified Force.com Developer Study Guide

User Permissions Needed To create or change workflow rules: To create or change email alerts: To create email alerts: 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. Click New Email Alert. Configure the email alert: Enter a description for this email alert. 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. 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. 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. 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. Check the Protected Component check box to mark the alert as protected. 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.
TRAINING & CERTIFICATION 16

Customize Application Customize Application

Salesforce.com Certified Force.com Developer Study Guide

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. 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. The recipients that match your search results appear in the Available Recipients list. 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. Optionally, enter up to five additional email addresses. 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.

TRAINING & CERTIFICATION

17

Salesforce.com Certified Force.com Developer Study Guide

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. 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-9. 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. 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 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.

2.

Force.com code scripts generally run in system context; that is, the current users profile-based permissions, fieldlevel security, and sharing rules are not taken into account during script execution.

Section 9-10.

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 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
18

TRAINING & CERTIFICATION

Salesforce.com Certified Force.com Developer Study Guide

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-11.

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

19

Salesforce.com Certified Force.com Developer Study Guide

Section 9-12.

Record IDs

The 15/18 character Record Ids in Salesforce are identical in an org and all its sandboxes. Take the following example: 1. 2. 3. A Solution with record id 50130000000L7s5 is created on Acmes org on na2.salesforce.com. The next day, Acme creates a Full Copy Sandbox. The Solution with Record Type ID 50130000000L7s5 will be accessible in the Sandbox org as well.

Section 9-13.

Process Visualizer

You can use the Process Visualizer to:

Display a flowchart of each saved approval process 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 Print an annotated version of the approval process, where numbers added to the diagram correspond to details in a table, which is included in the printable view Share approval process diagrams by saving annotated versions as PDF files (requires an Adobe PDF print driver) Help you quickly locate key details by searching multi-step or complex diagrams for matching text Help you visualize and understand graphically: The steps necessary for a record to be approved The designated approvers for each step The criteria used to trigger the approval process The specific actions to take when a record is approved, rejected, recalled, or first submitted for approval

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_Summer11_2011-07-05

Vous aimerez peut-être aussi