Вы находитесь на странице: 1из 13

TRAINING & CERTIFICATION

Salesforce.com Certified Force.com Developer Study Guide

TRAINING & CERTIFICATION

Contents
About the Force.com Certification Program ................................................................................. 1 Section 1. Section 2. Section 3. Section 4. Section 5. Section 6. Section 7. Section 8.
Section 8-1. Section 8-2. Section 8-3. Section 8-4. Section 8-5. Section 8-6. Section 8-7. Section 8-8. Section 8-9.

Purpose of this Study Guide .................................................................................... 2 Audience Description: Salesforce.com Certified Force.com Developer .............. 2 About the Exam ......................................................................................................... 2 Recommended Training ............................................................................................ 2 Exam Outline.............................................................................................................. 3 Sample Exam Questions........................................................................................... 4 Answers to Sample Exam Questions ...................................................................... 5 Supplemental Study Material.................................................................................... 6
The Console...................................................................................................................................6 System Fields.................................................................................................................................6 Encrypted Custom Fields ...............................................................................................................7 Page Layouts .................................................................................................................................8 What is Visualforce? ......................................................................................................................8 Development Tools.........................................................................................................................9 What is Apex? ..............................................................................................................................10 Data Loader .................................................................................................................................10 Troubleshooting Data Loader Operations .................................................................................... 11

Section 8-10. Record IDs ................................................................................................................................... 11

TRAINING & CERTIFICATION

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 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 cloudcomputing 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. 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 does not 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.

Salesforce.com Certified Force.com Developer Study Guide (Summer 09)

TRAINING & CERTIFICATION

Section 1. Purpose of this Study Guide


This study guide is designed to help you evaluate whether you are ready to successfully complete the Salesforce.com Certified Force.com Developer exam. This guide provides information about recommended training from Salesforce.com Training and Certification, a complete list of exam objectives, supplemental study material, and several sample exam itemsall with the intent of helping you achieve a passing score. Salesforce.com highly recommends a combination of course attendance and self-study to maximize your chances of passing the exam.

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 Force.com Essentials course (DEV401) 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 this 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 Visualforce or Apex programming languages, 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:
:: ::

Force.com Essentials (DEV 401). To register, go to: http://www.salesforce.com/training Creating On-Demand Applications: An Introduction to the Force.com Platform (http://wiki.apexdevnet.com/index.php/Creating_OnDemand_Applications:_An_Introduction_to_the_Force.com_Platform)

Salesforce.com Certified Force.com Developer Study Guide (Summer 09)

TRAINING & CERTIFICATION

Section 5. Exam Outline


The Salesforce.com Certified Force.com Developer exam measures a candidates knowledge and skills related to the objectives listed below. A candidate should have hands-on experience developing custom applications on the Force.com platform and have demonstrated the application of each of the following features/functions. Objective 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 Describe the advantages and disadvantages of building an app on the Force.com platform. 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 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.com-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 cannot 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 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 features of the Force.com platform for debugging and monitoring automated business processes. Describe use cases for extending business logic through Apex. 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. Weighting 5%

5%

32%

15%

23%

10%

10%

Salesforce.com Certified Force.com Developer Study Guide (Summer 09)

TRAINING & CERTIFICATION

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

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? (Choose two 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 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 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.

Salesforce.com Certified Force.com Developer Study Guide (Summer 09)

TRAINING & CERTIFICATION

Section 7. Answers to Sample Exam Questions


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

Salesforce.com Certified Force.com Developer Study Guide (Summer 09)

TRAINING & CERTIFICATION

Section 8. Supplemental Study Material


The following information is drawn from Help and Training in Salesforce and is provided as supplemental study material. Note that this material is complementary to the Force.com Essentials course materials and does not 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 Creating On-Demand Applications book or PDF, and study this supplemental material. Note: This material is supplemental only! It does not include all topics or items on the exam. The materials mentioned above make up the full reference set.

Section 8-1. 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 their 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 8-2. System Fields


Salesforce.com has the ability to set system fields through the API. When you are 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 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 cannot 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 are 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.

Salesforce.com Certified Force.com Developer Study Guide (Summer 09)

TRAINING & CERTIFICATION

Section 8-3. 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 with 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. Although 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 CRM Mobile, Force.com Connect for Outlook, Force.com Connect for Lotus Notes, Force.com Connect Offline, lead conversion, workflow rule criteria or formulas, formula fields, outbound messages, default values, and Web-toLead and Web-to-Case forms. You can use encrypted fields in email templates; however, 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 possibility, 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.

Salesforce.com Certified Force.com Developer Study Guide (Summer 09)

TRAINING & CERTIFICATION

Section 8-4. Page Layouts


When customizing page layouts for tasks, you can select the following checkboxes: :: :: Show Task Email Notification checkbox controls whether the Send Notification Email checkbox displays when users create or edit a task. Select Task Email Notification 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 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 cannot 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. 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 are not available.

::

Some items can only be moved 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 cannot 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 8-5. 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 that easily leverage standard Salesforce styles Create custom user interfaces that completely 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 user interfaces that can be hosted natively on the Force.com platform. The Visualforce framework includes a tag-based markup language similar to HTML.

Salesforce.com Certified Force.com Developer Study Guide (Summer 09)

TRAINING & CERTIFICATION

In the Visualforce markup language, each Visualforce tag corresponds to a coarse or fine-grained user interface component, such as a section of a page, a related list, or a field. The behavior of Visualforce components can either be controlled by the same logic used in standard Salesforce pages, or developers can associate their own logic with a controller class written in Apex. What is a Visualforce Page? Developers can use Visualforce to create a Visualforce page definition. A page definition consists of two primary elements: :: :: Visualforce markup A Visualforce controller

Visualforce Markup Visualforce markup consists of Visualforce tags, HTML, JavaScript, or any other Web-enabled code embedded within a single <apex:page> tag. The markup defines the user interface 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 that is 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 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 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 users 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 modein which the permissions, field-level security, and sharing rules of the current user are enforcedextending 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 users profile. Where Can Visualforce Pages Be Used? Developers can use Visualforce pages in ways similar to S-controls to: :: :: :: :: Override standard buttons, such as the New button for accounts or the Save button for contacts Override tab overview pages, such as the Accounts tab home page Define custom tabs Embed components in detail page layouts, similar to the way inline S-controls can be embedded

Section 8-6. Development Tools


The 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

Salesforce.com Certified Force.com Developer Study Guide (Summer 09)

TRAINING & CERTIFICATION

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 8-7. What is Apex?


Apex is a strongly typed, 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: :: A class is a template or blueprint from which Apex objects are created. Classes consist of other classes, user-defined methods, variables, exception types, and static initialization code under Setup | Develop | Apex Classes. A trigger is 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 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 users profile-based permissions, field-level security, and sharing rules are not taken into account during script execution.

Section 8-8. 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 is not yet supported by Web-based importing. You want to schedule regular data loads, such as nightly imports. You want to be able to save multiple mapping files for later use. You want to export your data for backup purposes. Use Web-based importing when: You are 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.

Salesforce.com Certified Force.com Developer Study Guide (Summer 09)

10

Section 8-9. Troubleshooting Data Loader Operations


If you need to investigate a problem with the Data Loader, or if requested by salesforce.com Customer 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.

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

For More Information


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

SG_CertDev_Summer09_062609

Вам также может понравиться