Salesforce.com Certified Developer | Study Guide | Winter
Transcription
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