Beruflich Dokumente
Kultur Dokumente
The information contained in this document represents the current view of Microsoft Corporation on the issues
discussed as of the date of publication. Because Microsoft must respond to changing market conditions, it should
not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any
information presented after the date of publication.
This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED
OR STATUTORY, AS TO THE INFORMATION IN THIS DOCUMENT.
Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under
copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or
transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any
purpose, without the express written permission of Microsoft Corporation.
Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights
covering subject matter in this document. Except as expressly provided in any written license agreement from
Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or
other intellectual property.
© 2005 Microsoft Corporation. All rights reserved. Microsoft and Solomon are either trademarks or registered
trademarks of Microsoft Corporation or Dynamics GP Software, Inc. or their affiliates in the United States and/or
other countries. Dynamics GP Software, Inc. is a subsidiary of Microsoft Corporation. The names of actual
companies and products mentioned herein may be the trademarks of their respective owners.
The names of actual companies and products mentioned herein may be the trademarks of their respective owners.
Introduction.......................................................................................................10-1
Creating Multiple Organizations .......................................................................10-2
Lab 10.1 - Maintaining Multiple Organizations ...............................................10-13
Deployment Manager - Deployment Administrators.......................................10-17
Deployment Manager - Organizations............................................................10-18
Deployment Manager - Servers......................................................................10-20
Deployment Manager - License......................................................................10-21
Summary ........................................................................................................10-22
Test Your Knowledge .....................................................................................10-23
Quick Interaction: Lessons Learned ...............................................................10-25
Solutions.........................................................................................................10-26
Chapter 11: Introduction to Advanced Customizations 11-1
Objectives.........................................................................................................11-1
Introduction.......................................................................................................11-2
Introduction to Workflow ...................................................................................11-2
Demonstration - Activity Creation in a Workflow ..............................................11-7
Introduction to Application Event Programming ...............................................11-9
Common Uses for Event Programming..........................................................11-10
Demonstration - Examples of Client-Side Code .............................................11-13
Using Form Events .........................................................................................11-15
Using Field Events .........................................................................................11-16
Demonstration - Referencing Form and Field Values ....................................11-18
Configuring Event Detail Properties ...............................................................11-20
Demonstration - Creating Simple Event Scripts .............................................11-22
Introduction to IFrames ..................................................................................11-25
Demonstration - Add an IFrame .....................................................................11-29
Demonstration - Creating a Dynamic IFrame .................................................11-31
Introduction to URL Addressable Forms ........................................................11-33
Demonstration - URL Addressable Forms......................................................11-35
Introduction to Creating Custom Menus, Navigation Items, and Buttons .......11-36
Demonstration - Integrating Applications .......................................................11-38
Introduction to ISV.Config Integration Points..................................................11-41
Demonstration - ISV.Config structure and custom button ..............................11-43
Introduction to SiteMap ..................................................................................11-48
SiteMap Structure...........................................................................................11-50
Demonstration - Apply Site Map Customizations ...........................................11-53
Introduction to SDK Capabilities.....................................................................11-55
ISV Solutions ..................................................................................................11-57
Summary ........................................................................................................11-58
Test Your Knowledge .....................................................................................11-59
Quick Interaction: Lessons Learned ...............................................................11-61
Solutions.........................................................................................................11-62
Appendix A: Permissions Required for Customization Tasks A-1
E-Learning
Online training for Microsoft Dynamics products helps you increase your
productivity without spending time away from your home or office. E-Learning
allows you to learn at your own pace through flexible access to training, therefore
proving beneficial for those lacking the time or budget to travel. E-Learning are
online training courses designed to cover detailed concepts on specific product
areas and allow you to:
• Gain in-depth technical and business application training through
daily on-demand training.
• Learn at your own pace - lessons can be stopped and restarted,
skipped or repeated.
• Save time and increase your productivity.
• Receive product knowledge comparable to instructor-led training
without the need for travel or time away from the office.
• Gain beneficial training when preparing for Microsoft Dynamics
certification exams.
• Find tips and tricks to show you how to increase productivity and
save time.
• Learn about the changes in features and functionality of a new
Microsoft Dynamics product version.
• Evaluate a new Microsoft Dynamics module or product.
Instructor-Led Training
With instructor-led training, you can gain a solid foundation or refresh your
knowledge in Microsoft Dynamics products and processes while learning from
an expert in an interactive environment. With courses on a variety of topics, you
can:
• Follow demonstrations and attend presentations.
• Receive hands-on product experience.
• Participate in classroom activities and discussions with other
attendees.
• Gain beneficial training when preparing for Microsoft Dynamics
certification exams.
Training Materials
Training materials can be ordered for the purpose of self-paced study. These
materials are comparable to courseware used with instructor-led training, and
enable you to:
• Learn at your own pace, in your own time.
• Refer to an abundance of tips, tricks, and insights.
• Learn using a self-study format when preparing for Microsoft
Dynamics certification exams.
For selected training materials there are training material – local functionality
available which cover country specific features in the product. The training
material – local functionality add on to existing training materials and are
designed to teach local functionality within a given country. Please notice that
training material – local functionality are used only in conjunction with the
training material, not as stand-alone training materials
Certifications
Certifications help identify and distinguish an individual’s technical skill set
using a Microsoft Dynamics or related business product. Certifications for
Microsoft Dynamics are widely recognized by industry employers and provide an
objective validation of an individual’s knowledge. Organizations that employ
certified individuals benefit from a complete approach to learning – certified
individuals have higher skills retention and increased productivity. Organizations
can streamline their employee recruitment process and lower their external
support costs plus downtime by maintaining technically skilled employees by
requiring Microsoft Certified Business Management Solutions Specialist and
Professional certifications.
Learning Plans
Learning Plans can help you plan the best learning strategy for you and your
organization. Learning plans illustrate module specific learning tracks that can
be easily targeted towards specific roles. Learning plans also provide a learning
track towards obtaining certifications. Learning plans can be found on both
PartnerSource and CustomerSource,
Objectives
Each chapter begins with a statement of the learning objectives for that chapter.
Learning objectives are important because they inform you about what needs to
be done to successfully complete the chapter.
Introduction
An introduction sets the stage for the learning to take place and prepares you with
key statements of the chapter.
Topics
Chapters are split up into topic areas, usually according to the learning objectives
for the chapter. This is especially beneficial in large chapters so that the
knowledge and skills to be learned are split up into more manageable units.
Conclusion
The conclusion wraps up the chapter by highlighting the important parts of the
chapter as well as providing a transition to the next chapter. The conclusion also
offers an opportunity to refresh earlier learning.
Labs
Labs test your skills with the learning concepts presented and learned during a
topic or chapter. Labs begin with a scenario paragraph which describes the
business problem to be solved, and also sets the stage for the exercise. Solutions
to the labs are also provided. Labs may be offered at different levels to
accommodate the variety of skills and expertise of each student.
Challenge Yourself!
Challenge Yourself! labs are the most challenging. These exercises are designed
for the experienced student who requires little instruction to complete the
required task. This level of exercise states the business problem to be solved and
describes the tasks the learner needs to complete.
Need a Little Help?
These exercises are designed to challenge students while providing some
assistance. These exercises do not provide step-by-step instructions; however,
they provide the user with helpful hints and more information to complete the
lab.
We suggest you try the “Challenge Yourself!” labs first, and if you need help
completing the task, look to the information in the “Need a Little Help?” labs. If
additional assistance is required, refer to the “Step by Step” lab solutions located
in an Appendix.
Description
This three-day instructor-led course provides students with the tools to configure
and customize Microsoft Dynamics CRM 4.0. Configuration topics include
setting up business management functions such as:
• Business units
• Users
• Teams
• Security privileges and roles
• System Settings
• Multilingual User Interface Language Packs
• Currency Exchange Rates
• Multiple Organizations
The course also focuses on using the Microsoft Dynamics CRM 4.0
Customization tools to customize the following system components:
• Forms
• Views
• Entities
• Attributes
• Relationships
• Entity Mappings
The following customization topics are outside the scope of this course, but are
introduced here to provide students with insight into potential advanced
customization features:
• Application Event Programming
• Client Extensions
• Workflow
• SiteMap
Audience
This course is intended for Microsoft Dynamics CRM Implementation
Consultants and System Administrators and Customizers who will configure the
application’s organizational settings and customize the application using its built-
in customization tools. The course is not intended for developers who customize
the application using Web development, JavaScript (JScript), DHTML, and the
Microsoft Dynamics CRM SDK.
Prerequisites
Participants in this course must have a working knowledge of how to use
Microsoft Dynamics CRM 4.0. It is recommended, but not required, that students
have completed Microsoft Dynamics CRM 4.0 Applications training. Because
this course focuses on customizing database entities, attributes, relationships, and
mappings, it is recommended that students have a basic understanding of
Microsoft SQL Server and relational database functionality.
Student Materials
The student kit includes a comprehensive workbook and other necessary
materials for this class.
Student Objectives
What do you hope to learn by participating in this course?
1.
2.
3.
Introduction
After you have installed Microsoft Dynamics CRM and before anyone can start
using it for his or her work, one of your first tasks is to define the organizational
structure. This task involves creating business units, defining security roles, and
creating and configuring user accounts and teams.
Business Units
Business units form the foundation upon which the rest of the organizational
structure is built. When planning a Microsoft Dynamics CRM deployment, start
with a current organization chart if one exists; otherwise, consider creating one
before defining your organizational structure.
While an organization chart provides a good starting point, the actual process of
defining an organization in Microsoft Dynamics CRM entails a larger design
process where the needs of each organization dictate the structure you must use.
Within this structure, business units provide the framework upon which you
configure the following components of a Microsoft Dynamics CRM deployment:
• User management
• Security
• Reporting
• All business units must be parented by either the root business unit
or another business unit.
• The name of a business unit cannot be changed.
• A business unit cannot be deleted.
• A business unit can be disabled.
• The Parent Business Unit field is required for any business units you
create. The Root Business Unit is always displayed as the default
Parent Business Unit and remains as such unless you select a
different business unit.
• A business unit can be disabled if it permanently or temporarily
ceases operation. This leaves its organizational structure in the
Microsoft Dynamics CRM database for historical purposes.
• Users assigned to a disabled business unit cannot access Microsoft
Dynamics CRM.
• A business unit can be created and intentionally disabled if
reorganization is planned for the future. This allows the business unit
to be enabled when the reorganization occurs.
• An organization can be reorganized by simply changing a business
unit's Parent business unit.
• All child business units move with the Parent business unit when the
Parent business unit is changed.
4. Click Save. After saving the record, you can click the record types
under Organization to see a list of related records, and to change the
settings for selected records.
5. Click Save and Close.
You can also open a specific business unit record to change its parent. However,
you cannot change the parent business unit directly on the Business Unit form
because the Parent Business unit field is read-only. To change the parent
business unit, you must click the Actions menu and select the Change Parent
Business option.
Similarly, enabling a disabled business unit also affects the users assigned to the
business unit.
You can also open a specific business unit record to enable or disable it. To
enable or disable a specific business unit record, click the Actions menu and
select the Enable or Disable option. If the business unit is enabled, the Actions
menu only includes the Disable option; conversely, the Actions menu only
includes the Enable option if the business unit is disabled.
Scenario
During the needs analysis meeting, you reviewed and analyzed the company's
organizational chart with Adventure Works’ management team. This discussion
revealed that Adventure Works’ existing organizational structure, which was
defined in the prior release of Microsoft Dynamics CRM, had not taken into
account the company's planned growth.
Goal Description
Adventure Works has decided to make the following changes to their Microsoft
Dynamics CRM organizational hierarchy to better reflect their revised corporate
structure:
• Two new business units must be added under the Customer Support
business unit: Premier Support and Support Services.
• Because of the separation between the Service and Customer Care
divisions, communication and coordination regarding support issues,
service plans, and escalated cases has been less than satisfactory.
Therefore, the Service division will now report to the Customer Care
division.
• During the implementation of Microsoft Dynamics CRM 3.0, the
National Accounts division of Channel Sales & Marketing was
created. However, following a subsequent management
reorganization, it was later decided that the company's national
accounts were better served by the National Channel Marketing
business unit; therefore, the National Accounts business unit was
never implemented.
Challenge Yourself
Perform the following steps to complete this lab:
Step by Step
Perform the following steps to complete this lab:
NOTE: Be careful when entering the business unit names and verify the
spelling and name before saving the record. Business units cannot be deleted
from Microsoft Dynamics CRM once they have been created; they can only be
disabled.
Summary
This section described several of the Microsoft Dynamics CRM components that
the administrator needs to configure after installing the application and before
allowing users access. Configuring the application must begin with defining the
organizational structure. Within an organizational hierarchy in Microsoft
Dynamics CRM, business units form the foundation upon which the remainder to
the application is built.
Security roles and users are later defined at the business unit level. By assigning
users to business units, you define the patterns of who has access to which kinds
of data and determine who has access to records. When you evaluate your
business unit structure, remember that business units can be nested to form parent
and child relationships, where child business units cannot access data in the
parent business unit.
2. During the installation process, what does the Microsoft CRM Server Setup
program do related to business units?
4. True or False. When a Parent Business Unit is moved, no child business units
are moved.
( ) True
( ) False
7. What are some of the characteristics that apply to the root business unit?
1.
2.
3.
Solutions
Test Your Knowledge
1. What are the three core components of business units?
2. During the installation process, what does the Microsoft CRM Server Setup
program do related to business units?
MODEL ANSWER - The Microsoft CRM Server Setup program creates the
root business unit in Microsoft CRM. The name of the root business unit is
the organizational unit name which the install user enters during the Server
Setup program.
4. True or False. When a Parent Business Unit is moved, no child business units
are moved.
( ) True
(•) False
7. What are some of the characteristics that apply to the root business unit?
assigned a parent business unit. - The name of the root business unit cannot
• Identify how privileges, access levels, and security roles are used by
Microsoft Dynamics CRM to ensure data integrity and privacy
• Distinguish between entity-based privileges and task-based
privileges
• Differentiate between the five types of access levels used within the
security roles
• Identify how Microsoft Dynamics CRM uses security roles
• Identify the advantages of using the default Microsoft Dynamics
CRM security roles
• Identify the properties of the system's two default administrative
roles
• Define the relationship between roles and business units
• Create new security roles
• Create new security roles by copying privileges and access levels
from existing security roles
• Identify best practices to follow when configuring security roles
Introduction
Microsoft Dynamics CRM provides a security model that helps protect
unauthorized access to data, supports efficient data access and collaboration, and
supports recommended security best practices. This section reviews the
Microsoft Dynamics CRM security model, the components that make up the
model, and how to manage them. This includes:
Role-based Permissions
Within each role, security permissions are defined at the following levels:
• Entity and Record level. Every security role includes the complete
list of actions that can be performed on each entity.
– Entities include Leads, Opportunities, Contacts, Accounts,
Cases, and so on.
– Typical actions that can be performed on each of these entities
include Read, Create, Write, Delete, Share, and so on.
• Task level. Each role also includes yes/no access levels for certain
user and administrative tasks. Tasks include Print, Merge, Go
Offline, and so on. The access level indicates whether the user can
perform that task.
This training examines the security permissions built into each role and reviews
the steps involved in creating new roles and customizing existing roles to fit your
business requirements.
The security permissions defined within each security role consists of the
following two components:
EXAMPLE: If a role allows the user to delete accounts, the access level
associated with the Account Delete privilege indicates which accounts the user
can delete.
Privileges
Privileges are the basic security unit in Microsoft Dynamics CRM, defining what
actions a user can perform on each entity in the system. When thinking of
privileges, think actions each user can perform on an account, contact, lead, and
so on.
Privileges are the foundation of each underlying security check. Privileges are
associated with three types of objects in Microsoft Dynamics CRM security
roles.
The net result is that administrators are provided with precise control over every
action each user can perform in the system.
A section of the default Sales Manager role is displayed in the figure Privileges
within a role. Privileges such as Create, Read, Write, and Delete are displayed
along the top of the tab, and the entities to which each privilege is associated are
displayed in the left column (Account and Contact). The icon under each
privilege/entity combination refers to the access level associated with that
privilege and entity.
Task-Based Privileges
The Business Management tab in each security role includes several task-based
privileges that are not related to a specific entity.
NOTE: The majority of task-based privileges are located at the bottom of the
Business Management tab. This tab is displayed in the figure “Task-based
privileges in the default Sales Manager role.”
Access Levels
Privileges indicate what actions a user can perform on each entity, whereas
access levels define which records for that entity the user can perform those
actions upon. Access levels are based on a combination of:
• User ownership
• The business unit to which the user belongs
For user-owned entities Microsoft Dynamics CRM supports five access levels for
each privilege. These are presented in the figure titled Access Levels.
For privileges associated with organization-owned entities and global tasks, there
are only two access levels available: Organization and None. These basically
equate to Yes or No options, respectively, for these privileges.
For the five access levels associated with user-owned entities, each access level
includes records made available by all access levels below the level granted to
the user by the privilege. For example, if you have Parent:Child Business Unit
Read access for Accounts, by default you implicitly have Business Unit and User
Read access for Accounts as well. This relationship is displayed in the figure
titled Hierarchical Access Levels.
EXAMPLE: Gail Erickson is the Sales Manager for Adventure Works’ Western
Region. Adventure Works has decided that there are some privileges the Sales
Manager must be restricted from performing, such as creating, writing, and
deleting Views. To guarantee this, the System Administrator creates a copy of
the default Sales Manager role and assigns the None access level to the Create,
Write, and Delete privilege for the Views entity. Gail is assigned this new,
customized role instead of the default Sales Manager role.
EXAMPLE: Mary Baker is the VP of Sales and Marketing for Adventure Works
Cycle. She manages all the Sales and Marketing representatives for the Field
Sales and Marketing Divisions. By assigning Mary “Parent:Child Opportunity
Read” access, she can view all opportunities that are owned by any user who is
assigned to the Sales & Marketing business unit or any one of its child business
units. Because the Adventure Works Cycle, Customer Care, Customer Support,
and OEM Support business units are not subordinate to Mary's business unit,
she cannot view opportunities owned by users assigned to those business units.
Security Roles
A security role is the combination of privileges and access levels for a specific
job function. Although you can create custom roles for individual users,
Microsoft Dynamics CRM's focus from an implementation standpoint is on
security roles at the job function level. This enables a specific role to be assigned
to one or more users, each of whom performs the same job function.
The following default security roles are created by the Microsoft Dynamics CRM
Server Setup program:
• Administrative roles
– CEO-Business Manager
– System Administrator
– System Customizer
In these organizations individual users generally perform multiple roles that are
typically split among multiple workers in mid- to large-sized organizations. This
means the small business administrator may have to assign multiple roles to each
user, because the default roles are associated with job titles that may not exist in
the small business.
• A user can only be assigned roles that belong to the same business
unit to which the user is assigned.
• If a user is reassigned to a new business unit, the user's security
role(s) is removed. The user must then be assigned a new role(s)
from the list of roles that belong to the same business unit to which
the user has been moved.
• When a role is assigned to a user, the user has access to all the
privileges specified in that role as dictated by its access levels.
• A user can be assigned more than one role.
• If a user is assigned multiple roles, the user's privileges are the union
of access rights assigned to all those roles.
• If a user is assigned more than one role and the access level for a
specific entity and privilege conflict between the roles, the access
level granted to the user is the least restrictive for that entity and
privilege.
EXAMPLE: Adventure Works assigned Mary Baker both the Sales Manager
and Marketing Professional roles. The Sales Manager role has Business Unit
Account Delete access, and the Marketing Professional role has User Account
Delete access.
This means Mary has Business Unit Account Delete access, because this access
level is less restrictive than User Account Delete.
Any attempt to perform one of these actions causes an error. If your organization
requires modification to the privileges defined in the System Administrator role,
copy the role as a new role and modify the security rights in the new role.
See the Appendix topic, "Permissions Required for Customization Tasks", for
more details on the permissions required to customize Microsoft Dynamics
CRM.
When you create a new business unit within the organization, all of the security
roles assigned to its parent business unit are automatically copied to the new
business unit. This includes the default roles and any custom roles that were
manually created at the parent business unit.
NOTE: As you create each new business unit, the roles are copied from the new
business unit's parent. The parent is the root when creating business units one
level down from the root. If the business unit created is more than one level
down from the root, the roles are copied from its parent and not from the root.
IMPORTANT: When you create a security role for a business unit, the system
automatically creates the same role at all the child business units subordinate
to that business unit, regardless of how deep in the organizational structure it
has to go.
In this example, assume you create a custom role titled Marketing Representative
and assign it to the Channel Marketing business unit. What occurs when you save
the role?
For a custom role that you want assigned to all business units, create it at the root
business unit. Because all other business units are subordinate to the root, the
system automatically creates the role at all business units in the organizational
structure.
EXAMPLE: In the figure titled, Adding a Role to a Parent Business Unit, the
Marketing Representative roles in the National Marketing, Retail Marketing,
Bicycle Parts Marketing, and Bicycle Marketing business units are “inherited
roles,” because they were automatically created from a similar role at the
Marketing business unit.
The following rules control how inherited roles can be maintained in Microsoft
Dynamics CRM:
• To delete an inherited role, you must delete the parent role from
which the inherited role originated. All inherited roles associated
with the parent role are automatically deleted.
BEST PRACTICE: If the default roles do not fit your organization's security
needs, copy the role with the closest resemblance to your requirements over as
a new role, modify the new role as required, and leave the default role
unchanged. This permits the default security roles to act as templates and
ensures a consistent set of security privileges across all business units.
NOTE: If you select the Open a new security role when copying is complete
check box, the system creates the new role from the existing role and then opens
the new role so that it can be edited. After you make your required edits to the
new role, click Save, or Save and Close.
For example, for Account, Contact, or Lead, you can set User,
Business Unit, Parent:Child Business Unit, or Organization levels.
However, for Relationship Role, you can only set it at the
Organization level.
6. Click Save, or Save and Close.
NOTE: Access level combinations are displayed starting with the most
restrictive through the least restrictive combinations.
After finding a set of access level combinations that are generally acceptable to
your organization, you can change any individual exceptions to meet your
requirements. This process is faster than clicking through the combinations of
access levels for each privilege and entity.
The figure titled Using the Privilege Shortcut displays a sequence of screens to
create a new role using the privilege shortcut. This example selects a specific
privilege and cycles through the various combinations of access levels for that
privilege and each entity in that tab.
As shown in the first step in the graphic, all access levels are set to None when
the role is created. However, by clicking the Create column heading, the second
screen displays a combination of access levels for this privilege and each entity
in this tab.
Alternatively, you can let the system automatically pre-fill the access levels for a
specific entity. Clicking the entity displays a set of default access levels for each
privilege on that tab. A different set of access levels appears each time you click
the privilege. The system displays combinations of the most restrictive access
levels through the least restrictive.
In the figure titled Using the Entity Shortcut, the first screen displays a new role
where access levels are set to None when the role is created. By clicking the List
entity in the second screen, note the change to the access levels for each privilege
on the tab. If you continue to click the List entity, the combinations of access
levels change from the most restrictive (User access) to the least restrictive
(Organization access).
NOTE: Some of the privileges have dependencies with other privileges. For a
list of all security dependencies, see the Security System section of the
Implementation Guide.
Scenario
Besides default roles, you can also create custom security roles for your
organization. You can create a new role or copy an existing default or custom
role. When you create a new role, you must assign it to a specific business unit.
All child business units of the business unit in which you create the new security
role are assigned the new security role. As new roles are propagated down the
organizational hierarchy, so too are changes and deletions made to security roles.
7. Using the Entity shortcut. Click the Sales tab, and then click the
Quote entity until all privileges are set to Organization.
8. Click on the Competitor entity. Notice how all the access levels
change from None to Organization with one click. If you click on
the Competitor entity again, it cycles back to None. This is an
example of an entity that has limited access levels for each privilege.
9. Save the changes by clicking Save and Close.
Copy a Role
Even when using the privilege and entity shortcuts, creating a role can be a
lengthy process. There is another approach to creating a new role. This includes:
1) copy an existing role over as a new role; and then 2) change the access levels
in the new role that differ from the existing role.
1. To copy a role, first change the Security Roles view to display the
roles in the business unit associated with the role you are copying.
This is also the business unit to which the new role will be assigned.
Click National Channel Marketing from the Business Unit drop-
down list.
This exercise verifies that all the roles of a parent business unit - which include
both default roles and the two custom roles that were just created - are copied
down to child business units whenever a new child business unit is created.
Open these two roles and verify the settings made earlier.
Scenario
During the needs analysis, it is discovered that Gail Erickson requires different
permissions than what the Sales Manager role provides. Because the
recommended best practice is to refrain from modifying the default roles, it is
decided that you will copy the Marketing Professional role in the Adventure
Works Cycle business unit as a new Marketing Representative role and then
customize the new role to meet Gail's requirements.
It is also discovered that Roger Van Houten can provide better support for OEM
customers if a unique OEM Support role is created in the Customer Support
business unit and tailored to meet the needs of this market.
Goal Description
To meet these requirements, you have been asked by the Project Team to create
the two new roles. To do this, you will:
• Create one role by copying an existing role as a new role and then
modifying the attributes of the new role
• Create a new role that is not based on an existing role
Copy the Marketing Professional role in the Adventure Works Cycle business
unit as a new Marketing Representative role. In the Marketing Representative
role, modify the following access levels:
• Change the Write and Sharing privileges from Business Unit access
to User access for the Quote entity.
• In the Marketing tab, change all of the privileges for the Marketing
List and Campaign entities to Organization access. Use the entity
shortcut method to expedite this change.
Add a new role titled OEM Support to the Customer Support business unit.
Assign the access levels and privileges to this role that are defined in the chart
(for the purposes of this exercise, ignore the tabs and the entities not included in
this chart).
Challenge Yourself
Perform the following steps to complete this lab:
Step by Step
Perform the following steps to complete this lab:
Summary
This section reviewed the following core concepts that are part of Microsoft
Dynamics CRM security:
• Privileges
• Access levels
• Security roles
This section also examined the procedures required to create new roles and to
create new roles by copying and modifying existing roles. Lastly, it discussed the
characteristics associated with maintaining access levels for roles that have been
inherited from parent business units.
3. If Joe has User Delete access for Leads, then what Leads can Joe delete?
4. Mary is assigned two security roles. One provides User Account Delete
access, and the second provides Parent:Child Business Units Account Delete
access. What access right will Mary have to delete accounts?
5. If a user is assigned multiple Roles, the Privileges are the union of all the
privileges assigned to all the user's Roles.
( ) True
( ) False
6. List several of the key features of the Microsoft Dynamics CRM security
model.
7. What is the most basic security unit that is used as the core of
security checks?
9. Which of the following are valid rules relating the maintenance of inherited
roles? (Select all that apply.)
( ) Inherited roles cannot be modified or deleted.
( ) In order to change an inherited role, you must modify the parent role from
which the inherited role originated.
( ) If you add a role and a role with the same name exists at the parent
business unit, the role that you create inherits all of the privileges
associated with the same role
( ) All of the above.
10. When you create a new role by copying an existing role, you can copy any
security role from any business unit in your Microsoft Dynamics CRM
deployment.
( ) True
( ) False
1.
2.
3.
Solutions
Test Your Knowledge
1. What is the primary purpose of the default security roles?
to be quickly deployed by assigning each user one or more default roles that
3. If Joe has User Delete access for Leads, then what Leads can Joe delete?
MODEL ANSWER - Joe can delete: - leads that he owns - leads owned by
someone else that have been shared with him - and leads shared with teams
4. Mary is assigned two security roles. One provides User Account Delete
access, and the second provides Parent:Child Business Units Account Delete
access. What access right will Mary have to delete accounts?
privileges. This is the least restrictive of the two conflicting Account Delete
5. If a user is assigned multiple Roles, the Privileges are the union of all the
privileges assigned to all the user's Roles.
( ) True
(•) False
6. List several of the key features of the Microsoft Dynamics CRM security
model.
MODEL ANSWER - The following are just a few of the key features: –
Preventing users from accessing entities that have not been shared with them.
7. What is the most basic security unit that is used as the core of
security checks?
MODEL ANSWER - Privileges are the most basic security unit in Microsoft
Dynamics CRM, defining what actions a user can perform on each entity in
the system.
9. Which of the following are valid rules relating the maintenance of inherited
roles? (Select all that apply.)
(√) Inherited roles cannot be modified or deleted.
(√) In order to change an inherited role, you must modify the parent role
from which the inherited role originated.
( ) If you add a role and a role with the same name exists at the parent
business unit, the role that you create inherits all of the privileges
associated with the same role
( ) All of the above.
10. When you create a new role by copying an existing role, you can copy any
security role from any business unit in your Microsoft Dynamics CRM
deployment.
( ) True
(•) False
Introduction
At this point in your implementation plan, Microsoft Dynamics CRM is installed
and your organizational hierarchy and security roles defined. The next step in
configuring your organization is defining the users who access Microsoft
Dynamics CRM and the teams that share Microsoft Dynamics CRM data.
• A license. Each user license must be unique, and every user who
logs on to Microsoft Dynamics CRM needs a license.
• A security role. Security roles are predefined groups of common
privileges based on the types of tasks users perform.
• A business unit. Every user belongs to a unit of the top-level
organization.
• One or more teams. Teams are groups of users who share and
collaborate on business records across business units.
• E-mail configuration. Identifies how the user's incoming and
outgoing e-mail is managed.
Any member of your organization that uses Microsoft Dynamics CRM must be
assigned an Active Directory user account and a Microsoft Dynamics CRM user
account. Each Microsoft Dynamics CRM user account includes a user profile.
The information on the user profile can be maintained as follows:
• When you create user records, add information in the user profile
that is essential to the organization; for example, full name, job title,
home address, e-mail address, and phone number.
• After users have been added to the system, they can manage non-
essential personal information themselves.
NOTE: The information entered in user profiles is available for all Microsoft
Dynamics CRM users to see. To preserve the integrity of the user data, security
privileges need to be based on the individual's role in the organization and the
type of work he or she needs to do. For instance, a system administrator will
create teams and make organization changes, and a line supervisor or manager
redefines only the employee roles within his or her teams.
Depending on how you are using Microsoft Dynamics CRM, you may also want
to explore additional ways to organize users. These groupings do not have any
impact on controlling data access.
NOTE: Using sales territories, resource groups, and queues to organize users
is not covered in this training. Non-administrative personnel typically use these
methods to organize users; therefore, these methods are covered in the
Microsoft Dynamics CRM Applications training offering.
The user's Active Directory domain logon name is stored with the user's
Microsoft Dynamics CRM user account. This supports authentication when the
user accesses the application. This concept is referred to as the principle of single
sign-on.
• Full. A user assigned this license type has full access to any part of
Microsoft Dynamics CRM that he or she has the security roles and
privileges to access. This is the license type assigned to typical CRM
users that require both read and update capabilities.
Customers can purchase two types of user licenses: Full and Read-only. Separate
license counts are maintained for each license type. For example, an organization
may purchase 100 Full licenses and 25 Read-only licenses.
As soon as users are added to Microsoft Dynamics CRM, they can maintain their
own user account's non-essential information if their assigned security role
provides them with this update capability. However, the default non-management
roles do not allow User update as a default feature.
NOTE: Once users are added in Microsoft Dynamics CRM they cannot be
deleted, but they can be disabled.
• Multiple Users. If you select this option, the system starts the
Add Users wizard, which asks you to select the users that you
want to add into Microsoft Dynamics CRM from the Active
Directory domain. Each selected user must share same CRM
business unit, security role(s), e-mail invitation option (for CRM
Live deployments), and licensing option (for on-premise and
partner-hosted deployments), all of which are requested by the
wizard.
General tab - Enter primary user profile information and observe any noted
restrictions or requirements as needed. Key fields include:
• Access Mode. Select one of the Client Access License types. Refer
to the earlier lesson in this training titled Microsoft Dynamics CRM
User Licenses for complete information on the available license
types.
Click Save to save this record and leave it open to continue working in this
account. After you save the user record, you can edit the users’ teams, security
roles, work hours, services, and system jobs. Because every user must have at
least one security role in order to access the system, you must perform the
following steps to add one or more roles to the user account:
1. Click the Roles tab to add a security role to the user account.
2. Click Manage Roles on the Action bar.
3. When the Manage User Roles window opens, select the
appropriate role(s) for the user. Click OK.
4. Click the Save, or Save and Close to save the user record.
• For Microsoft Dynamics CRM Live customers, you must select the
users and the appropriate E-mail Invitation option.
• For Microsoft Dynamics CRM on-premise and partner-hosted
customers, you must select the licensing option, the Active Directory
domain, and the users.
The Add Users wizard is an effective tool during the initial implementation
process. The wizard has the following characteristics:
Obviously, not every user in an organization will have the same role, business
unit, and so on; in fact, job functions alone will predicate the assignment of
different security roles even in smaller companies with just one office. This has
the following affect on how you use the wizard:
• You must run multiple iterations of the Add Users wizard to enter all
the users into Microsoft Dynamics CRM.
• Each run is for a different group of users, where each group shares
the same business unit, security role(s), licensing option, and Active
Directory domain.
• Business Unit. Select the business unit to which the new users
belong. This option is only presented if more than one business unit
exists. If only one exists, you will not receive this option because the
wizard will assign the business unit to the new user accounts.
• Security Roles. Select one or more security roles for the new users.
The roles that are displayed are the ones assigned to the selected
business unit.
• E-mail Invitations. For Microsoft Dynamics CRM Live customers,
you can select whether invitations will be sent to the e-mail address
of each new user. The E-mail invitations instruct new users how to
access Microsoft Dynamics CRM Live. If this option is selected, an
invitation is automatically sent after each new user is created.
• Users. From the list of available users, select the users you want to
add to the system.
You can enable or disable a user account while maintaining User data. User
records are typically disabled to temporarily control user access. You can disable
a user record, but you cannot delete it.
EXAMPLE: Adventure Works has a standing policy that if a support call is not
resolved within two hours, the Customer Service Representative's manager is
notified that no action has been taken on the request. Adventure Works
implemented this rule by creating a workflow rule that monitors support cases
and notifies the CSR's manager when this condition occurs. They have also
created similar workflow rules that notify sales rep managers when timely
follow-ups do not occur for new leads and opportunities.
Changing the manager's name on a user profile disassociates the relationship with
the current manager and creates an association with the new manager. If your
company experiences reorganization and direct reporting relationships change,
you can make multiple hierarchical changes at the same time by selecting several
users on the Users list view and performing a single Change Manager action.
The following rules control whether a Microsoft Dynamics CRM user can be
assigned as a manager to another user's account:
• The manager must belong to either the user's business unit or to one
of the business units that parent the user's business unit.
• The manager cannot be assigned to a business unit that is a child of
the user's business unit.
• The manager cannot be assigned to a business unit that is not in the
direct chain above the user's business unit.
You can assign or change a manager for one or more user accounts at the same
time. The process is almost identical to enabling and disabling one or more user
accounts that was covered earlier.
Scenario
The goals of the pilot project are to determine the types of customization options
the business requires and gain internal support before the final roll-out. This user
group is expected to provide feedback on the system and help in training during
the final rollout. As their system administrator, you have been asked to add the
six new users into the application.
Goal Description
Now that you have configured Adventure Works’ business units and security
roles, your next task is to configure the user accounts of the six pilot project team
members. Add users with both the single user method and the multiple user
method. Your goal during the pilot project is to become familiar with the process
required by each method. Therefore, when Microsoft Dynamics CRM goes live
across the organization, you will be able to add the users in the most efficient
manner possible.
The following members of the pilot project team must be entered into Microsoft
Dynamics CRM:
Each user can be found in the ADVWORKS domain, and each must be assigned
a Full license in Microsoft Dynamics CRM.
NOTE: For training purposes, each of these user accounts has already been
added into Active Directory in your VPC image. In this lab you will add the
accounts into Microsoft Dynamics CRM. The password assigned to each
account in Active Directory is Pa$$w0rd.
IMPORTANT: The default security policy for Domain Controllers only allows
users who are members of the Domain Admins group to log on to the server. In
this training environment, the Microsoft Dynamics CRM Server is also the
domain controller. This means that by default each sample data user will have
to be a domain administrator to log on and perform the labs in this training. To
avoid making each user a domain administrator in your training environment,
this security policy has been adjusted so that any user can log into the domain
controller.
THIS IS NOT A STANDARD SECURITY BEST PRACTICE. This non-
standard security policy is only implemented in your training environment
because of the requirements of the Virtual PC image.
After reviewing the chart provided by the management team, you decide to group
the six pilot project users together by business units and job roles. Two sets of
users have similar job responsibilities and business units. Toby and Cynthia are
both Customer Service Representatives in the Customer Support division, and
Megan and Gabriele are Salespersons in the Channel Field Sales office.
After careful consideration, you decide to enter Toby, Cynthia, Megan and
Gabriele using the Multiple Users option. Randy and Mark will be added
individually.
Make sure you are logged in as the CRM Administrator user account.
Challenge Yourself
Using the information provided in the Goal Description, add the six pilot project
users into Microsoft Dynamics CRM:
1. Create user accounts for Toby, Cynthia, Megan, and Gabriele using
the Add Users wizard.
2. Create user accounts for Mark and Randy. Assign each his
appropriate security role.
3. Test your work by logging in as one of these users to make sure that
he or she can access to Microsoft Dynamics CRM.
4. After you have added the users into Microsoft Dynamics CRM, you
are approached by Adventure Works’ management and instructed to
perform the following tasks:
a. Assign Mark Harrington as Toby and Cynthia's manager.
b. Disable Gabriele's user account. It was just learned that Gabriele
will be transferring to a new role within the company and will no
longer participate in the pilot project.
1. Cynthia Randall and Toby Nixon belong to the same business unit
and have the same role. They can be added in one pass through the
Add Users wizard. Megan Sherman and Gabriele Cannata belong to
the same business unit and have the same role. They can be added
together by making a second pass through the wizard.
a. When adding new users, select the Multiple Users option.
b. In your first pass through the Add Users wizard, select the
Customer Support business unit and the Customer Service
Representative security role.
c. From the Users folder of the ADVWORKS domain, select
Cynthia Randall and Toby Nixon from the User list.
2. Repeat the process for Gabriele and Megan. Select the correct
business unit and role for these users.
3. Test one of the new Microsoft CRM user accounts. Log off the
system and log back in as Toby Nixon. As soon as you have verified
that you can log on as Toby and access Microsoft CRM, log back
off, and then log back in as the CRM Administrator.
4. Create Microsoft CRM user accounts for Mark Harrington and
Randy Reeves. Add each of these through the single User option.
a. After entering the data for each user, select the Save option so
that the account is saved and still remains open.
b. Select the Roles option and assign the appropriate security role.
5. On the Users view, select Toby and Cynthia's user accounts, click
More Actions, and select the Change Manager option. Assign Mark
Harrington as their manager.
6. It was just learned that Gabriele will be transferring to a new role
within the company and will no longer participate in the pilot
project. You have been asked to temporarily disable his user account
until the pilot project is complete and the application is rolled out to
the entire organization.
a. Select Gabriele's user account on the Users view, click More
Actions, and select the Disable option.
b. To verify that he can no longer access Microsoft Dynamics
CRM, log on as Gabriele and try to access the application.
Step by Step
Step 1 - Add Multiple Users at one time
As you can see from the table in the Goal Description, both Cynthia Randall and
Toby Nixon belong to the Customer Support business unit, and both will be
assigned the Customer Service Representative role. They can be added at one
time in the Add Users wizard. However, because Megan Sherman and Gabriele
Cannata belong to a different business unit and have a different role, you have to
make a second pass through the Add Users wizard in order to create their user
accounts.
12. Test one of the new user accounts by logging off the system and
logging back in as Toby Nixon and starting Microsoft CRM. To log
in, enter:
- username = toby
- password = Pa$$w0rd
13. As soon as you have verified that you can access Microsoft CRM as
Toby, log off the system and then log back in as the CRM
Administrator.
You must now create Microsoft CRM user accounts for Mark Harrington and
Randy Reeves. You will add these through the single User option, and you will
assign each user account its appropriate security role.
4. Click Save (not Save and Close; if you accidentally clicked Save and
Close, then open Mark's user account). This keeps Mark's user
account open.
5. After clicking the Save icon, the Details list becomes enabled on the
side tab.
6. Click Roles.
7. Click Manage Roles on the Action toolbar.
8. On the Manage User Roles window, select CSR Manager and click
OK.
9. Click the Save and New icon to save Mark's user account and open a
new User Form for the next user.
10. Repeat the process for Randy.
11. Since Randy is the last user account, click Save and Close instead of
Save and New when you have finished entering Randy's security
role.
Now that you have created a user account for Mark Harrington, assign him as the
manager on Toby and Cynthia's user account.
1. In the list of Users, click on Cynthia's record, then hold down the
CTRL key and click on Toby's record. This selects just these two
user accounts.
2. Click More Actions on the Action toolbar, then click Change
Manager.
3. In the Change Manager dialog box, click the Lookup icon to view
the list of user accounts.
4. Click Mark Harrington, then click OK.
5. In the Change Manager dialog box, click OK to confirm the change.
After you have added the users into Microsoft CRM, you are approached by
Adventure Works’ management and instructed to disable Gabriele Cannata's user
account. It was just learned that Gabriele will be transferring to a new role within
the company and will no longer participate in the pilot project. You have been
asked to temporarily disable his user account until the pilot project is complete
and the application is rolled out to the entire organization.
Team Management
A team is a group of users who share and collaborate on work projects. Teams
are typically created by a system administrator or by a user with the appropriate
team management permissions. The use of teams in Microsoft Dynamics CRM is
optional; there is no requirement that an organization must create teams.
However, the advantage of using teams is that information can be shared more
quickly with a group of users instead of individually sharing the information with
each member of the group.
EXAMPLE: Fabrikam, Inc. has been invited to bid for a new piece of work.
Fabrikam's CEO said that he wants “the best people” on this project. That
means drawing together experts from all across the company—probably from
different business units. Because Fabrikam's existing structure does not make
all information available to this “all star” group of people, the System
Administrator has created a team made up of these users. Using a team makes it
easy to share all project-related information among the team members.
Creating Teams
The following guidelines control how teams are managed:
• You can disable a team by removing all the members from the team.
• To enable a disabled team, just add new members to it.
NOTE: If you click the Save button instead of Save and Close, the Members
tab appears. This enables you to add users to the team.
• At the time you create the team record, you can select each of the
users that will be members of the team.
The following procedures outline the steps required to complete each of these
methods.
This procedure is a continuation of the prior procedure where you created a team.
After you saved the team record (which enabled the Members tab), proceed with
the following steps to add users to the team:
1. Click the Members tab. This form provides the ability to add
multiple users to the team at one time.
2. From the Team Member form, click the Add Members button on
the Action bar to add users to the team.
3. In the Lookup Records form, select all users from the Available
Records list who will be a part of the team. Move them to the
Selected Records list by clicking the right arrow button.
4. Click OK. The selected members appear in the Members list for the
team.
5. Click Save and Close.
In the prior procedure, you opened a team record and then added users to the
team. Another approach to creating teams is from the perspective of a single user
account. In this case, you must open a user record and then add teams to the user
account.
Scenario
The goals of the project are to determine the types of customization options the
business requires and gain internal support before the final roll-out. This user
group is expected to provide feedback on the system and assist in training during
the final rollout.
Goal Description
Adventure Works Cycle promotes team selling and team customer support. Two
management team members, Stefan Del Marco and Patricia San Juan, have
approached you and asked that you set up the following teams to support the pilot
project:
In order to test the data sharing functionality, create a new account for the
Custom Bicycle Store. Use the following information for the new account:
Challenge Yourself
Perform the following steps to complete this lab:
3. Randy Reeves later asks you to assign him to the Field Sales
Representatives team. Open Randy's user account, select the Teams
side tab, and assign Randy to this team.
4. Create the new account defined in the Goal Description.
6. Select the account from the Active Accounts view. On the More
Actions menu, select Sharing.
7. Share the account with the Fields Sales Representatives team and
assign the team Read, Write, and Append privileges.
8. Log off as the CRM Administrator and log on as Patricia San Juan in
order to test the sharing privileges. See if Patricia can view the new
account. Then attempt to delete the account. What happened when
you tried to delete the account, and why?
Step by Step
Step 1 - Creating Teams and Assigning Team Members
Randy Reeves later approaches you and asks that you add him to the Field Sales
Representatives team.
In order to test the data sharing functionality, you decide to create a new account
for the Custom Bicycle Store, using the information provided in the Goal
Description.
To test the ability of a team member to view a shared record, modify a team
member's security role so that without the record being shared, the user will not
be able to view the record. You will perform this test using Patricia San Juan.
Patricia's Marketing Manager role currently provides Organization Read and
Business Unit Delete access for Accounts.
5. From the Navigation Pane, click Sales, and then click Accounts.
Change the view to Active Accounts. Because of the change that
you made to her security role, Patricia should not be able to see the
account that you just created.
6. Log off the system and log back on as the CRM administrator.
1. Navigate back to Sales, and then Accounts. Select the new account
that you just created. Click More Actions, and then click Sharing.
2. In the Sharing dialog box, click the Add User / Team option from
the Common Tasks pane.
3. In the Look Up Records dialog box, click the drop down arrow on
the Look For field and click Team. Click the lookup icon to view the
list of available teams.
4. Select the Field Sales Representatives team and click the >> arrow
to move it to the Selected Records pane. Click OK.
5. Select the Read, Write, and Append privileges only. Click OK.
1. In order to test the sharing privileges, log off the system as the CRM
Administrator and log on as Patricia San Juan (username = patricia,
password = Pa$$w0rd). Open Microsoft Dynamics CRM.
2. Click Sales, and then click Accounts.
3. Change the view to Active Accounts and verify that you can see
Custom Bicycle Store.
4. Select the Custom Bicycle Store record, then click on Delete icon
on the Action toolbar.
5. Click the Delete button to confirm the account deletion. Then click
OK to confirm the permanent deletion of the account.
What happened when you tried to delete the account, and why?
Summary
This section reviewed the procedures necessary to configure Microsoft Dynamics
CRM users and teams. It also covered the following best practices when planning
and maintaining your personnel structure:
2. What are the three steps to properly add a user into Microsoft Dynamics
CRM?
5. What are the three types of user licenses that can be assigned to a user
account? (Select all that apply.)
( ) Administrative
( ) Privileged
( ) Read-only
( ) Full
1.
2.
3.
Solutions
Test Your Knowledge
1. What are the two methods that create users in Microsoft Dynamics CRM?
adding multiple users at one time, the selected users must share the same
2. What are the three steps to properly add a user into Microsoft Dynamics
CRM?
MODEL ANSWER - – Add the user to Active Directory. – Add a new user
the user.
of users instead of sharing the information with each member of the group –
5. What are the three types of user licenses that can be assigned to a user
account? (Select all that apply.)
(√) Administrative
( ) Privileged
(√) Read-only
(√) Full
privilege was not shared with the team for this account, and Patricia’s role
only provided User Account Delete access. If Patricia’s role allowed her to
delete this account (for example, if she had Organization Account Delete),
then that privilege would have overridden the fact that her team could not
Introduction
This section examines a variety of configuration settings that enable each
organization to tailor Microsoft Dynamics CRM to satisfy its business
requirements. These settings control the appearance and functionality of the
application; they are defined at the organization level and apply to all business
units in a given implementation.
System Settings
System Settings allow you to modify organizational parameters that control a
variety of system-wide functionalities. You can access these settings by clicking
Settings, then Administration, then System Settings. This lesson examines each
of the tabs in this window and the options associated with each.
General Tab
The General tab contains a variety of system-level settings.
Full-Name Format
The Name Format option configures how the full names of contacts and users are
displayed. Changing the Name Format after users have already been added does
not change the way those names are displayed. A change to the Name Format
only changes new entries.
Currency Precision
This parameter controls the number of decimals that appears with any currency
amount. The options are zero (0) through four (4).
This option indicates whether objects that are assigned to a new owner will
remain shared with the original owner. This is a Yes/No option.
Microsoft Dynamics CRM allows you to attach files to various objects. This
setting allows an organization to identify the file types that users will be
restricted from attaching to objects. This field is prefilled with a number of
default file extensions that are typically not recommended as best practices.
However, each organization is free to add or remove file extensions from this list.
Use a semi-colon to separate each new file extension that you add.
Formats Tab
The Formats tab allows organizations to identify how the following
measurements are displayed throughout the application:
• Numbers
• Currency
• Time
• Long and Short dates
From the Current Formats list, you can define the formats that your organization
wants to use for these measurements in either of two ways:
E-mail Tab
The E-mail tab allows you to indicate whether outgoing e-mails are tracked as
Microsoft Dynamics CRM e-mails by means of a tracking token, and if so, the
format of the tracking token for your organization. The tab also includes
additional e-mail options that define e-mail form options and file size limits for
attachments.
This section includes two options. The first option indicates whether a tracking
token must be assigned to each outgoing Microsoft Dynamics CRM e-mail
message.
NOTE: It is not possible to configure the tracking token to appear in any other
location within the e-mail message (for example, hidden away in the message
header). The system components that reference the tracking token are designed
to locate it at the end of the subject line.
Each tracking token consists of several parameters. If you select the option to use
a tracking token, then you can customize the tracking token by configuring the
following tracking token parameters:
This option controls whether e-mail activity records are created for incoming and
outgoing e-mail between two Microsoft Dynamics CRM users.
These E-mail form options control the format of the e-mail form that is presented
to the user, and whether outgoing e-mails are restricted to CRM users.
This option allows you to define a maximum file size (in kilobytes) for files that
are attached to outgoing CRM e-mails. The default file size is 5,120 KB.
Marketing Tab
The Marketing tab includes settings that control how e-mail messages are
processed for several automated marketing features.
By default, Microsoft Dynamics CRM does not allow users to send e-mail
messages as campaign activities using the mail merge feature from within
Campaigns. Setting this option to Yes allows you to override this default setting
and enable users to send e-mail messages using mail merge from Campaigns.
This option is only available if e-mail tracking is enabled on the E-mail tab. This
Yes/No option controls whether an e-mail response is automatically created and
sent whenever an e-mail is received relating to a marketing campaign.
The following options are only available if e-mail tracking is enabled on the E-
mail tab. Some customers may want to unsubscribe from e-mail marketing
communications your organization sends them. You can configure several
options specifically related to the unsubscribe feature.
Next, when the customer sends the e-mail message and Microsoft
Dynamics CRM receives it and determines from the information in
its subject line that it is an unsubscribed e-mail response, the system
checks this “Do Not Send Marketing Material” option to
determine how to respond.
– If you set this option to Yes, the “Send Marketing Materials”
flag on the account, contact, or lead record is set to “No”. This
prevents the person from receiving any future marketing
communications from your organization.
– If you set this option to No, the “Send Marketing Materials” flag
on the account, contact or lead record is not set to “No”. This
allows your organization to send future marketing
communications to this person.
Customization Tab
The Customization tab controls the naming convention assigned to each custom
entity and attribute that an implementer creates.
This option identifies the prefix appended to the names of custom entities and
attributes. The default value is “new_”.
By updating the ISV.Config, implementers can create custom buttons and toolbar
(menu) items. This option allows you to identify which types of Microsoft
Dynamics CRM clients upon which the custom buttons and toolbar items will be
displayed. This field must be left blank if you have not customized the
ISV.Config; otherwise, you must select any combination of the following client
types:
Application Mode
If this option is changed, you must close the browser and re-open it in order to
view Microsoft Dynamics CRM in the new mode.
Outlook Tab
The Outlook tab includes settings that control how e-mail messages are
processed for Microsoft Dynamics CRM for Microsoft Office Outlook.
When you work in Microsoft Dynamics CRM for Outlook, you can use all the
familiar Outlook buttons and toolbars together with the Microsoft Dynamics
CRM toolbar and menu to manage e-mail messages and most other activities. At
any time, you can track an Outlook e-mail message in Microsoft Dynamics
CRM. This is also referred to as promoting an e-mail message. The Personal
Options settings let each user identify which messages he or she wants to track in
Microsoft Dynamics CRM. The tracking options include:
The options in this section of the Outlook tab define when and how often
incoming e-mail is promoted and tracked in Microsoft Dynamics CRM.
NOTE: With the polling interval feature, a user may reply to an incoming e-
mail before the polling interval is reached and before it is recognized or
promoted as a Microsoft Dynamics CRM e-mail. In this case, the e-mail is
treated like a regular non-Microsoft Dynamics CRM e-mail. The user can
manually promote the e-mail, but it does not happen automatically.
This section of the Outlook tab includes the following parameters that control
data synchronization:
This section of the Outlook tab includes the following options that control
background synchronization of local data:
This section of the Outlook tab includes the following options that control
background synchronization of the address book:
Reporting Tab
The Reporting tab controls the sequence in which report categories appear in
Microsoft Dynamics CRM. You can arrange existing categories in an order that
meets your organization's requirements. You can also remove existing categories
and add new ones.
Auto Numbering
Auto Numbering allows you to configure the way records for certain objects are
numbered. Each number has a prefix and a number. Regardless of the Auto
Numbering format used, all sequential numbers begin with 1001.
Two different types of auto numbering formats can be configured within the
system:
• Contracts
• Cases
• Articles
• Quotes
• Orders
• Invoices
• Campaigns
Knowledge Base (KB) Articles use the Prefix + Number format. This format
configures the first segment of the numbering sequence using a three character
value. The numeric values are consecutive beginning with the value of 1001.
All the remaining entities (Contracts, Cases, Quotes, Orders, Invoices and
Campaigns) use a Prefix + Number + Suffix format. The Prefix can be three
alpha characters. The length of the suffix can be a range from four to six
randomly generated alphanumeric characters. The number values are consecutive
beginning with 1001.
NOTE: If you change the suffix length for a specific entity, the new suffix length
is also applied to the other entities that include a suffix. For example, if you
change the suffix length to 5 under the Contracts tab, then the suffix displays as
5 for Cases, Quotes, Orders, Invoices, and Campaigns.
WARNING: Fiscal year settings affect the way in which your organization's
data is stored in the Microsoft Dynamics CRM database. Therefore, you can
set the fiscal year options only once. Because you cannot change these settings
after you have set them, ensure the fiscal period parameters are correct before
clicking OK to save the screen.
• Start Date. Select the date you want the fiscal year to start.
• Template. Select the template that describes how your fiscal year is
divided.
• Fiscal Year. Select how you want to display the fiscal year.
• Named Based On. Select whether the fiscal year name is displayed
based on when the fiscal year starts or ends.
• Fiscal Period. Select the abbreviation you want to display to
represent the fiscal period.
• Display As. Select the format for displaying how the fiscal year and
fiscal period will be displayed together.
The only optional setting on this screen is the parameter to base the monthly
period name on the name of each month. This option is only applicable if your
organization's fiscal periods match the calendar months.
Scenario
During the needs analysis planning sessions, the planning team reviewed each of
the system settings and decided which values best fit Adventure Work's
requirements. It is your job as implementation consultant to implement these
changes.
Goal Description
The project planning team has reviewed the System Settings and has decided to
accept all of the default values, except for the settings displayed in the table
below. You have been asked by the project planning team to update these
exceptions.
You have also been asked to update the Auto Numbering options displayed in the
table.
IMPORTANT: When the Adventure Works sample data was loaded into the
VPC image used for these training purposes, the fiscal year parameters had to
be set in the Fiscal Year Settings. Because Fiscal Year Settings can only be
updated once, the settings are now read-only. You cannot update the Fiscal
Year Settings in this lab; however, if you are interested, you can view the
settings by navigating to Settings, then Business Management, then Fiscal Year
Settings.
Challenge Yourself
Based on the information in the tables displayed in the Goal Description,
configure the organization settings for Adventure Works Cycle by modifying the
following:
• System Settings
• Auto Numbering
Test each configuration once you have applied the changes. Verify the changes to
the Report Headings. Create a Contract record and verify the contract number
assigned to it.
3. In System Settings, you will accept all of the default values except
for the options displayed in the System Settings table in the Goal
Description. Update these exceptions in their corresponding tabs.
4. In the Administration menu, click Auto Numbering.
5. In Auto Numbering, update each option as it appears in the Auto
Numbering table in the Goal Description.
6. Test the new configurations.
a. Navigate to the Reports section. Verify that the report headings
appear in the correct order.
b. Navigate to the Contracts area, create a new contract and confirm
that the contract number assigned to it has the correct number of
digits requested.
Step by Step
1. To open the System Settings, click Settings, click Administration,
and then click System Settings.
2. In the General tab, update each field with the corresponding value
from the System Settings table in the Goal Description. Repeat this
for each tab identified in the table.
3. Click OK when you have updated all tabs.
4. On the Administration menu, click Auto-Numbering.
5. In the Contracts tab, update the prefix with the value from the table.
Repeat this for each prefix in each tab.
6. Click the Contracts tab again. Select the value in the Suffix length
field that matches the value in the table. Confirm the change. Click
the Cases, Quotes, Orders, and Invoices tab to verify they have the
same suffix length. Click OK.
7. Test the new configurations. From the Navigation Pane, click
Service, then click Contracts. Click New to create a new contract.
8. In the Template Explorer, select a Contract template option. Click
OK.
9. In the Header section of the Contract form, enter Test Contract as
the Contract Name. Select a customer, the contract start date and
contract end date. Select a Bill to Customer in the Billing
Information section, and a currency in the Pricing section. These are
all the business required fields.
10. Click Save. The Contract ID should display the system assigned
contract number. Confirm that the contract number assigned to it has
correct the number of characters requested.
The language edition of Microsoft Dynamics CRM Server that is installed by the
organization is considered its base language. The organization can then install
MUI language packs for additional languages if they are requested by any of the
users. When one or more MUI language packs have been installed, each user can
select which language he or she wishes to use when accessing the application and
online Help files. This enables each user to personalize his or her Microsoft
Dynamics CRM experience.
For each language, there are separate MUI packs for both the Microsoft CRM
Server and Microsoft Dynamics CRM for Microsoft Office Outlook. For on-
premise deployments, the system administrator can download the MUI language
packs that the organization needs from the Microsoft Downloads site. Each MUI
language pack will be a separate download that the System Administrator can
install on the Microsoft CRM server and online Help server. Similarly, Microsoft
Dynamics CRM for Outlook users can download the MUI language pack they
need from Microsoft Downloads and install the pack on their client computers.
EXAMPLE: Nancy and Inez are Contoso employees who want to see the
Microsoft Dynamics CRM User Interface (UI) in the language of their choice.
Nancy works in the Sales Department out of San Antonio, Texas, whereas Inez
works out of the Customer Service Center in Mexico City. Inez wants to access
Microsoft Dynamics CRM using a Spanish UI, whereas Nancy prefers the
English UI. Simon, the system implementer for Contoso, installs the Spanish
MUI pack so that the users who want to use the Spanish UI can do so.
An MUI language pack can be installed over any base language. For example,
you can have a German edition of Microsoft Dynamics CRM and then install a
French MUI pack within it. Or, you can have a French CRM base edition and
install a German MUI pack.
When you upgrade from Microsoft Dynamics CRM 3.0 to 4.0, the language
edition of each version has to be the same. This will also be the base language of
the organization for the 4.0 installation. For example, if an organization is
upgrading their German version of Microsoft Dynamics CRM 3.0, the language
edition of Microsoft Dynamics CRM that they are installing must also be
German. German will also be identified as the implementation's base language.
Additional MUI language packs can then be installed following the upgrade.
MUI language packs must be installed on all Microsoft CRM Servers and all
Online Help Servers in a Microsoft Dynamics CRM on-premise or partner-hosted
deployment. For each server on which the MUI installation process is performed,
the MUI Setup program performs the following checks to determine which server
roles are installed on the server (Note: Server roles are a new feature in Microsoft
Dynamics CRM. Because server roles are assigned during the Microsoft
Dynamics CRM Server Setup process, they are examined in the Installation
training):
Currently, only French and English language packs are available for Microsoft
CRM Live deployments. No separate download or installation of MUI language
packs is necessary for users accessing Microsoft Dynamics CRM Live through
the web browser. However, Microsoft Dynamics CRM for Outlook users that
require either the French or English MUI language pack in a CRM Live
deployment must download and install the required client language pack.
The MUI language packs selected by the administrator are enabled for the whole
organization, which means:
• All MUI data for the selected languages are added for the
organization.
• The languages are available for users to select.
Enabling MUI language packs is a single transaction. If the transaction fails for
any reason, the entire transaction rolls back. This gives the Administrator an
opportunity to re-enable the packs at a later time. If a rollback occurs, all
database updates that occurred as a result of the transaction are rolled back.
However, the rollback process does not delete any reports or templates that were
added as part of the transaction.
The System Administrator must follow these steps to enable the MUI language
packs required by the organization:
2. Select the languages that you want to enable for the organization and
click Apply. All newly selected languages are enabled, all selected
language metadata are available for the organization, and the users
can select one of the enabled languages as their preferred language.
3. To deactivate a language, just clear the language's check box and
then click Apply.
Users can enable, de-activate, and re-enable a language if their security role has
Organization permission for this Language Settings entity. By default, only the
System Administrator and System Customizer roles have this permission set.
And just as MUI language packs can be installed on the server, so too can
language packs be installed on Microsoft Dynamics CRM for Outlook. A
Microsoft Dynamics CRM for Outlook MUI language pack must be installed in
order to display the Microsoft Dynamics CRM UI in a language other than the
client's base language. If a Microsoft Dynamics CRM for Outlook MUI pack is
not installed, the Microsoft Dynamics CRM UI is displayed in the base language
of Microsoft Dynamics CRM for Outlook.
The language of the Microsoft Dynamics CRM for Outlook UI will be persisted
when the user goes offline. If the user changes the language and the regional
options in the Web client while Microsoft Dynamics CRM for Outlook is offline,
Microsoft Dynamics CRM for Outlook will not reflect the change until the user
goes back online.
Both Web browser users and Microsoft Dynamics CRM for Outlook users must
select the language of the user interface and Help files from the Web client's
Personal Options. Microsoft Dynamics CRM for Outlook users will then view
their Microsoft Dynamics CRM for Outlook user interface (UI) in their selected
language.
The following rules control which parts of the Microsoft Dynamics CRM for
Outlook UI are controlled by the MUI language selection:
Scenario
You are the Microsoft Dynamics CRM implementation consultant for Adventure
Works Cycle. Adventure Works recently opened Sales offices in Toronto and
Mexico City. The French Canadian sales representatives in the Toronto office
have asked to implement the French version of the Microsoft Dynamics CRM
user interface. Conversely, the sales representatives in the Mexico City office
have requested implementation of the Spanish version of the CRM UI.
Goal Description
As the implementation consultant, you have been asked to install and enable the
French and Spanish MUI language packs. The language packs have been
downloaded to the following locations on both the Microsoft Dynamics CRM
Server and the Microsoft Dynamics CRM for Microsoft Office Outlook:
• French = C:\Course
Materials\Customization\Ch.4\MUISetup_1036.msi
• Spanish = C:\Course
Materials\Customization\Ch.4\MUISetup_3082.msi
As part of your testing program, you will implement the French version for your
Web client and the Spanish version for your Microsoft Dynamics CRM for
Microsoft Office Outlook.
Note: Once you change the language of the Web client to French, change the
language back to English to complete the remainder of this training.
Challenge Yourself
Perform the following steps to complete this lab:
1. Install the French and Spanish MUI language packs on the Microsoft
Dynamics CRM Server.
2. Enable the Languages Requested by the Users.
3. Select French as the New Language for Your Microsoft Dynamics
CRM Web browser. Test the Web client to verify that Microsoft
Dynamics CRM appears in French. Change the language back to
English.
4. Using the Ready Client VPC image, install the Spanish MUI
language pack on the Microsoft Dynamics CRM for Microsoft
Office Outlook.
5. Using the Ready Server VPC image, select Spanish as the new
language for your Microsoft Dynamics CRM for Microsoft Office
Outlook.
6. Using the Ready Client VPC image, test to verify that the Microsoft
Dynamics CRM for Office Outlook appears in Spanish.
Step 1 - Install the French and Spanish MUI language packs on the Microsoft
Dynamics CRM Server
The MUI language packs have been downloaded to the file location specified in
the Goal Description.
Installed MUI language packs must be enabled before they can be selected by
end-users.
Step 3 - Select French as the New Language for Your Microsoft Dynamics
CRM Web browser
Once the MUI languages have been enabled, you can select the language for your
Microsoft Dynamics CRM Web browser user interface.
Step 4 - Install the Spanish MUI language pack on the Microsoft Dynamics
CRM for Microsoft Office Outlook
The Spanish MUI language pack has been downloaded to the file location
specified in the Goal Description.
1. Start the VPC image of the Microsoft Dynamics CRM Ready Client.
2. Log on as the crmadmin; password = Pa$$w0rd.
3. Using Windows Explorer, navigate to the folder specified in the Goal
Description.
4. Install the Spanish language pack.
Step 5 - Select Spanish as the New Language for Your Microsoft Dynamics
CRM for Microsoft Office Outlook
Once the MUI languages have been enabled, you can select the language for your
Microsoft Dynamics CRM for Office Outlook.
Step by Step
Perform the following steps to complete this lab:
Step 1 - Install the French and Spanish MUI language packs on the Microsoft
Dynamics CRM Server
The MUI language packs have been downloaded to the file location specified in
the Goal Description.
1. Right click on the Start menu button and click Explore to open
Windows Explorer. Navigate to the folder specified in the Goal
Description.
2. To install the French language pack, double-click the
MUISetup_1036.msi file.
3. Select the I accept the terms in the License Agreement option and
click Install.
4. Click Finish when complete.
5. Repeat these steps for the Spanish language pack,
MUISetup_3082.msi.
Installed MUI language packs must be enabled before they can be selected by
end-users.
Step 3 - Select French as the New Language for Your Microsoft Dynamics
CRM Web browser
Once the MUI languages have been enabled, you can select the language for your
Microsoft Dynamics CRM Web browser user interface.
Step 4 - Install the Spanish MUI language pack on the Microsoft Dynamics
CRM for Microsoft Office Outlook
The Spanish MUI language pack has been downloaded to the file location
specified in the Goal Description.
1. Start the VPC image of the Microsoft Dynamics CRM Ready Client.
2. Log on as the crmadmin; password = Pa$$w0rd.
3. Right click on the Start menu button and click Explore to open
Windows Explorer. Navigate to the folder specified in the Goal
Description.
Step 5 - Select Spanish as the New Language for Your Microsoft Dynamics
CRM for Microsoft Office Outlook
Once the MUI languages have been enabled, you can select the language for your
Microsoft Dynamics CRM for Office Outlook.
Multicurrency
Today more and more businesses are performing financial transactions across
borders and in multiple currencies. The figure titled Currency Examples displays
just a portion of the total currencies used throughout the world. In this
environment, organizations typically transact in multiple currencies but book all
financial transactions in a single base currency - a currency in which the
organization reports its balance sheet, profit, and loss statement, and other
financial reports.
In Microsoft Dynamics CRM, these features are expanded into the following
design goals, enabling:
• Users to select the currency in which they want to define and transact
an Opportunity, Quote, Order, and Invoice.
• All financial transactions to capture the value of the transaction in
both the base currency and transaction currency.
• System administrators to define transaction currencies and define an
exchange rate to associate the base currency with the transaction
currency.
The base currency is one in which the organization reports its financial
statements. For organizations utilizing multiple currencies, the base currency is
also the currency in which all other currencies are quoted.
Apart from defining the base currency, the transaction currencies are defined as
part of the System Settings. Each transaction currency has the following
properties:
The exchange rate for a currency is always defined as the value of the transaction
currency for a given base currency. The figure titled Transaction Currency List
displays several currency exchange rates when the base currency is Unites States
dollars (USD).
NOTE: This is a sample currency table and has no relevance to the actual
exchange rates in which these currencies are traded for each U.S. dollar.
This view displays the currency code, currency name, currency symbol, and
exchange rate for each transaction currency. You can create a new transaction
currency by clicking the New link. You must enter the following information
when creating a new currency:
• Currency code. Select the currency code from the list of ISO
approved currencies.
• Currency symbol. As soon as you select the currency code, the
system automatically populates the currency symbol and currency
name for the selected code. However, you do have the option of
changing the symbol and currency name if it is necessary
• Exchange rate. Enter the exchange rate per the base currency
Any existing record that has been previously assigned a currency before it was
deactivated can still use the currency after it is deactivated. For example, a quote
that was created with a currency which was subsequently deactivated can still be
converted into an order, and the order can still be processed using the deactivated
currency.
A transaction currency can also be deleted if it has not been linked to any other
record in the system. The base currency defined for an organization can neither
be deactivated nor deleted.
Because exchange rates change frequently, Microsoft Dynamics CRM uses the
following criteria to determine when to apply the latest exchange rate to the
money fields on a record:
When the exchange rate is updated for a transaction currency, the existing
records assigned that currency are not updated. However, if a money field on one
of these records is later updated or the state of the record changes, then the
system retrieves the latest exchange rate for the currency and recalculates the
record's money fields based on the latest rate.
When you view a record, the monetary values displayed are based on the
exchange rate that was last assigned to the record. This rate may or may not
reflect the latest exchange rate.
EXAMPLE: At the time an order is created, the value of its money fields are
calculated based on the assigned currency's exchange rate that is in effect at
that time. If the order is viewed ten days later, the value of the money fields still
reflects the exchange rate that was applied when the order was created, even
though the exchange rate assigned to the currency may have been updated
several times between when the order was created and when it was viewed.
The privileges available in security roles for the Currency entity include the
following:
By default, the System Administrator, Sales Manager, and the Vice President of
Sales roles have these permissions set for currency management. Users who are
assigned these roles will be able to define transaction currencies and their
associated exchange rates in relation to the base currency.
EXAMPLE: Fabrikam does business in the United States and Mexico and has
two retail price lists, one for the United States in U.S. dollars (USD) and the
other for Mexico in Mexican peso (MXN). Kevin, the Sales Manager who
manages the price lists for Fabrikam, creates two retail price lists and
associates the corresponding currency to each list.
Alternatively, if you create a financial entity directly from the entity form, the
account's default currency will not be prefilled on the form. For example, if you
navigate directly to Orders, create a new order, and select an account for the
order, the account's default currency will not be prefilled on the order. Instead,
the organization's base currency will be displayed on the Order form.
When associating a price list to a quote, the user can only associate a price list
whose currency matches the currency defined for the quote. Any write-in
products entered on the quote are priced in the currency of the quote.
Displaying Currencies
When you are displaying a currency in the system, Microsoft Dynamics CRM
lets you display the currency using either its currency symbol or code. This
option is set in the System Settings area, which can be accessed by clicking
Settings, then Administration, and then System Settings. The system
administrator can indicate if the organization wants to display the currency
symbol or the International Organization for Standardization (ISO) currency code
as part of any currency value.
EXAMPLE: If the currency is euro, you can display the currency symbol € or
the ISO currency code EUR. If the currency is United States dollars, the
currency symbol is $ and the ISO currency code is USD.
The following rules control how transaction currencies are processed when
importing a CSV delimited exchange rate file into Microsoft Dynamics CRM:
1. On the Microsoft Dynamics CRM menu bar, click Tools. In the drop
down list, click Import Data.
2. On the Select the File to Import page, click Browse to select the file
to import.
3. Navigate to the file location specified in the Goal Description. Select
the file and click Open. The location of the file should be displayed
in the Data file field. Click Next.
4. On the Select the Record Type and Map page, click the drop down
arrow for the Record Type field and select Currency from the list of
record types. The Data map field is prefilled with Automatic. Click
Next.
5. On the Select Options page, select the option to Import duplicate
records. Because exchange rate files are typically imported on a
daily basis, this option allows you to update the rates for existing
currencies each time you import. Click Next.
6. On the Confirm Import Details page, verify that the file name is
correct. You do not need e-mail notification when the import is
complete, so leave this option unchecked. Click Import.
7. From the Navigation Pane, click Settings, and then click System
Jobs.
8. To quickly access the latest jobs that were processed, click on the
Started On column heading to sort the jobs in descending date and
time sequence.
9. The Import process generates several system jobs (Import File Parse,
Transform Parse Data, and Import). For a successful import, each of
these jobs must have a “Succeeded” Status Reason.
10. Verify that the currencies were created in the system. From the
Navigation Pane, click Settings, click Business Management, and
then click Currencies.
Letting each user define his or her default currency eliminates the need for the
user to repeatedly enter a currency other than the base currency.
• At the product level, where the user can define the list price, standard
cost, and the current cost.
• At the price list item level, where the user can have different prices
for the products in the price list.
Both the price at the product level and the price list level are associated with a
currency. The option that you choose for the Pricing Method on the Price List
Item controls the currency you can use.
For price lists, the currency is defined at the header level. This indicates that all
products and price list items associated with the price list will have their prices
defined in one single currency. The following rules control how currencies are
used at the price list header level:
Discount lists can also be defined in multiple currencies. However, this only
applies to discount lists where the type is “Amount.” The currency option is
disabled for discount lists where the type is “Percentage.” For discount lists, the
currency is defined at the discount list header level. In turn, any discount line
item associated with the discount list is defined in the currency from the header
level.
Scenario
You are the Microsoft Dynamics CRM implementation consultant for Adventure
Works Cycle. Because they have recently opened sales offices in several
countries, it is essential that Adventure Works implement the multi-currency
capabilities in Microsoft Dynamics CRM.
Adventure Works’ project planning team has agreed to perform a pilot project
involving the application's multi-currency capabilities. They have asked you to
import a small exchange rate table and test the default currency functionality.
Goal Description
The currency exchange rate file that you will import is stored in the following
location:
C:\Class Materials\Customization\Ch.4\CurrenciesToImport.csv
Once you have imported the exchange rate file, you note that it did not include
the Polish Zloty. Because of Adventure Works’ expansion into Europe, you
decide to add this currency (Poland Zloty) into the system with an exchange rate
of 5.6452.
• Set the default currency for the Basic Bike Company to the Euro.
• From within the Basic Bike Company, create a new sales order with
a Name = test default account currency. Note how the currency
defaults to the account's currency. When assigning a price list, note
that no price lists exist based on the Euro. Add a new price list with
the name = Retail-Euro, and set the currency = Euro. Update the
Write-in Product line item with the following information:
– Product Description = seat
– Price per unit = 50.00
– Quantity = 10
• Create a sales order from the Order entity with a name = test base
currency. Note how the currency defaults to the base currency. Save
the order, and then add a write-in product to the order. Select the
Retail price list, which is defined in the base currency of US Dollars.
Update the Write-in Product line item with the following
information:
– Product Description = seat
– Price per unit = 50
– Quantity = 10
• Navigate to the Basic Bike Company account and display the orders
for the account. Note the difference between the two orders.
• Change the user's default currency to the Mexican Peso.
• From within the Basic Bike Company, create a new sales order with
a Name = test user currency. Note how the currency defaults to the
user's currency and not the account's currency. Save the order, and
then add a write-in product to the order. When assigning a price list,
note that no price lists exist based on the Mexican Peso. Add a new
price list with the name = Retail-Mexican Peso, and set the currency
= Mexican Peso. Update the Write-in Product line item with the
following information:
– Product Description = seat
– Price per unit = 50.00
– Quantity = 10
• Navigate to the Basic Bike Company account and display the orders
for the account. Note the difference between the three orders.
Challenge Yourself
Using the information defined in the Goal Description, perform the following
steps to complete this lab:
You decide to add the Poland Zloty to the list of transaction currencies. The latest
exchange rate for the Zloty is 5.6452.
The prior step created an order from within an account. This displayed how the
account's currency defaulted to the order's currency. However, when an order is
created on its own and not from within an account, the order's currency defaults
first to the user's default currency, and then to the organization's base currency.
At this point, you have not assigned a base currency to your user account, so the
order's currency must default to the base currency.
You now want to test how the currency defaults on an order when the user
assigns a default currency on his or her Personal Options. Perform the following
steps to change the user's default currency to Mexican Peso.
Repeat the same steps that you performed in Step 4 when you added an order
from outside the account.
1. Create a new order with a name = test user currency. Note how the
currency defaults to the Mexican Peso currency from your personal
settings.
2. Select Basic Bike Company as the customer. Note how the
Currency field does not change to Euro, which is the currency
defined for the Basic Bike Company. Because you are not creating
the order from within the account, the order's currency does not
default to the account's currency.
3. Because no price list exists for the Mexican Peso, create a new
Mexican Peso price list and assign it to the order.
4. Add a Write-In Product with the following information:
• Product Description = seat
• Price per unit = 50.00
• Quantity = 10
Step by Step
Perform the following steps to complete this lab:
1. On the Microsoft Dynamics CRM menu bar, click Tools. In the drop
down list, click Import Data.
2. On the Select the File to Import page, click Browse to select the file
to import.
3. Navigate to the file location specified in the Goal Description. Select
the file and click Open. The location of the file should be displayed
in the Data file field. Click Next.
4. On the Select the Record Type and Map page, click the drop down
arrow for the Record Type field and select Currency from the list of
record types. The Data map field is prefilled with Automatic. Click
Next.
5. On the Select Options page, select the option to Import duplicate
records. Because exchange rate files are typically imported on a
daily basis, this option allows you to update the rates for existing
currencies each time you import. Click Next.
6. On the Confirm Import Details page, verify that the file name is
correct. You do not need e-mail notification when the import is
complete, so leave this option unchecked. Click Import.
7. From the Navigation Pane, click Settings, and then click System
Jobs.
8. Click on the Started On column heading to sort the jobs in
descending date and time sequence.
9. The Import process generates several system jobs (Import File Parse,
Transform Parse Data, and Import), each of which has a System Job
Name of “CurrenciesToImport.csv(Currency)”. For a successful
import, each of these jobs must have a “Succeeded” Status Reason.
10. Verify that the currencies were created in the system. From the
Navigation Pane, click Settings, click Business Management, and
then click Currencies. The exchange rate file that you imported had
13 currency records. The Active Currencies view should display
these 13 currencies and their corresponding exchange rates.
You decide to add the Poland Zloty to the list of transaction currencies. The latest
exchange rate for the Zloty is 5.6452.
1. If you closed the Currencies window at the end of the prior step, then
click Settings, click Business Management, and then click
Currencies.
2. Click New on the Action toolbar.
3. On the Currency form, click the lookup icon for the Currency Code
field. From the list of ISO Currency Codes, select the Poland Zloty.
Click OK.
4. In the Currency Conversion field, enter an exchange rate of 5.6452.
5. Click Save and Close.
1. From the Navigation Pane, click Sales, and then click Accounts.
2. Double-click on the Basic Bike Company to open the account
record.
3. The Currency field currently displays US Dollar, which is Adventure
Works’ base currency. However, for this account you decide to
change the base currency to the Euro. Click on the lookup icon for
the Currency field, and in the list of currencies, select Euro and click
OK.
4. Click Save (not Save and Close).
5. On the Details pane, click Orders.
6. On the Orders view, click New Order on the Action toolbar. This
opens the Order form. Because the order is being created from within
the account, note how Basic Bike Company is prefilled in the
Customer field and that its default currency of Euro is prefilled in the
order's Currency field.
7. Enter test default account currency in the Name field.
8. Click on the lookup icon for the Price List field. Because the order's
Currency is set to Euro, the system searches for price lists with a
Currency of Euro. Since no Euro price lists exist, the search returns
no records.
9. For this test, we will create a Euro price list. Click New on the Look
Up Records dialog box.
10. In the Price List form, enter Retail - Euro as the Name, and click the
lookup icon for the Currency field. Select Euro in the Look Up
Records dialog box and click OK. Euro is now displayed as the Price
List Currency.
11. Click Save and Close.
12. The Retail - Euro price list that you just created is now selected in
the Look Up Records window for the order's price list. Click OK.
13. On the Order form, click Save (not Save and Close).
14. Click Write-In Products in the Details pane.
15. Click New Order Product. On the New Order Product form, enter
the following information:
a. Product Description = seat
b. Price per unit = 50.00
c. Quantity = 10
16. Click Save and Close on the New Order Product form.
17. Click Save and Close on the Write-In Products page.
18. This displays the list of Orders for this account. NOTE: If the Total
Amount and Total Amount (Base) are zero for the order you created,
click the Refresh icon (on the right side of the column heading row)
to refresh the view and display the actual order amounts.
The prior step created an order from within an account. This displayed how the
account's currency defaulted to the order's currency. However, when an order is
created on its own and not from within an account, the order's currency defaults
first to the user's default currency, and then to the organization's base currency.
At this point, you have not assigned a base currency to your user account, so the
order's currency must default to the base currency.
1. From the Navigation Pane, click Sales, and then click Orders.
2. Click New on the Actions toolbar.
3. Create a sales order with a name = test base currency. Note how the
currency defaults to the base currency of US Dollar.
4. Click on the lookup icon for the Customer field. Select Basic Bike
Company and click OK. Note how the Currency field does not
change to Euro, which is the currency defined for the Basic Bike
Company. Because you are not creating the order from within the
account, the order's currency does not default to the account's
currency.
5. Click on the lookup icon for the Price List field. Because the order's
Currency is set to US Dollars, the system displays the two existing
price lists with a currency of US Dollar. Select Retail and click OK.
6. On the Order form, click Save (not Save and Close).
7. Click Write-In Products in the Details pane.
8. Click New Order Product. On the New Order Product form, enter
the following information:
a. Product Description = seat
b. Price per unit = 50.00
c. Quantity = 10
You now want to test how the currency defaults on an order when the user
assigns a default currency on his or her Personal Options. Perform the following
steps to change the user's default currency to Mexican Peso.
Repeat the same steps that you performed in Step 4 when you added an order
from outside the account.
1. From the Navigation Pane, click Sales, and then click Orders.
2. Click New on the Actions toolbar.
3. Create a sales order with a name = test user currency. Note how the
currency defaults to the Mexican Peso currency from your personal
settings.
4. Click on the lookup icon for the Customer field. Select Basic Bike
Company and click OK. Note how the Currency field does not
change to Euro, which is the currency defined for the Basic Bike
Company. Because you are not creating the order from within the
account, the order's currency does not default to the account's
currency.
5. Because the order's Currency is set to Mexican Peso, the system
searches for price lists with a Currency of Mexican Peso. Since no
such price lists exist, the search returns no records.
6. For this test, we will create a Mexican Peso price list. Click New on
the Look Up Records dialog box.
7. In the Price List form, enter Retail - Mexican Peso in the Name.
Note how the currency on the price list defaults to your personal
currency of Mexican Peso.
8. Click Save and Close.
9. The Retail - Mexican Peso price list that you just created is now
selected in the Look Up Records window for the order's price list.
Click OK.
10. On the Order form, click Save (not Save and Close).
11. Click Write-In Products in the Details pane.
12. Click New Order Product. On the New Order Product form, enter
the following information:
a. Product Description = seat
b. Price per unit = 50.00
c. Quantity = 10
13. Click Save and Close on the New Order Product form.
14. Click Save and Close on the Write-In Products page.
15. From the Navigation Pane, click Sales, and then click Accounts.
16. Double-click on the Basic Bike Company account to open it.
17. Click on Orders in the Details pane. The three orders that you
created for the account are displayed. Note the difference between
the orders.
Summary
This training examined the organization settings that control various system-wide
functionalities. These settings were divided into three functional areas:
• System Settings
• Auto Numbering
• Fiscal Year Settings
Finally, this training examined how Microsoft Dynamics CRM supports a true
multicurrency model where an organization can enter financial transactions in
multiple currencies.
5. For a given user, any e-mails where that user is a recipient, sender, or owner
on an e-mail that has been _____________ into Microsoft Dynamics CRM
will be tagged.
6. In the Customizations tab under System Settings, what is the purpose of the
schema prefix parameter?
1.
2.
3.
Solutions
Test Your Knowledge
1. System Settings are personal settings that are configurable on a per-user
basis.
( ) True
(•) False
MODEL ANSWER - Changing the Name Format after users have already
been added does not change the way any existing names are displayed. A
change to the Name Format only changes the way in which full names are
displayed for new entries that are created from that point forward.
5. For a given user, any e-mails where that user is a recipient, sender, or owner
on an e-mail that has been _____________ into Microsoft Dynamics CRM
will be tagged.
6. In the Customizations tab under System Settings, what is the purpose of the
schema prefix parameter?
Introduction
The Microsoft Dynamics CRM application design recognizes that businesses
must respond to constant change. When changes occur within an organization or
its business processes, this design allows the organization to adapt these changes
much more easily and affordably within the application.
This training introduces you to all of the application features that can be
customized in Microsoft Dynamics CRM and the different ways in which
customizations can be applied. This is an introductory section that lays the
foundation for the hands-on training that follows.
Customization Methodology
Depending on the role you play in the implementation, the value you provide for
organizations implementing Microsoft Dynamics CRM requires far more than
just a familiarity with the customization features. Experienced, successful CRM
implementers may tell you that the key to successful CRM implementations
comes from:
Customization Tactics
An effective implementation methodology must consider each of the ways in
which an organization can implement customizations. These can include:
Make sure that you look for ISV solutions that have been certified.
Microsoft has a certification program through an external testing
company that verifies the ISV solution uses supported methods.
• Microsoft Dynamics CRM SDK. If you find that a requirement
cannot be met using the customization tools and there is no ISV
product available that fits the need, you can have a developer create a
custom solution for the organization.
However, just as the same accounts, contacts, leads, users, and so on can be
created in multiple organizations, so too can the same customizations be applied
to multiple organizations. If you want the customizations created for one
organization implemented across other organizations, you must export the
customizations from the source organization and then import and publish them in
each additional organization. Details on how to perform the exporting, importing,
and publishing processes are covered later in this training.
The default Microsoft Dynamics CRM security roles for end-users do not
provide the ability to customize the application. However, users such as
salespeople and customer service representatives can use the built-in
configuration tools to configure their personal options and the way they view
information.
Both of these roles also have the privileges necessary to perform the basic
application and platform customizations provided in the application's
customization tools. In order to perform these basic customizations, a user needs
to be assigned a security role that includes all the privileges found in the role's
Customization tab.
The Customization tab includes permissions that allow or prohibit the user from
customizing the following areas for each entity:
• Attribute
• Relationship
• Form
• View
• Process
Each of these areas can be assigned one of two possible access levels (these are
basically Yes/No permissions to customize each area):
See the Appendix topic, Permissions Required for Customization Tasks, for a
complete reference to the privileges required to perform customization tasks.
Client/Server Architecture
The database simplifies much of the complexity that a developer has to deal with
and provides him or her with the means to interact with the database through
available APIs using languages such as Transact-SQL. But the client/server
architecture has many shortcomings and there is only so much that a database
designed for general use can provide.
The Microsoft Dynamics CRM platform removes all the complexity that
developers may otherwise deal with and provides a rich environment for
customizing the application. Because it is designed specifically for use as a CRM
application, it can provide more specific features that programmers can use when
they build applications that use it.
The goal of the Microsoft Dynamics CRM platform is to implement the service-
specific rules by manipulating and combining the underlying domain-specific
objects. The platform accomplishes this by:
Except for reports, every application that interacts with Microsoft Dynamics
CRM does so through Web services in the Microsoft Dynamics CRM platform.
This includes the Workflow tools and solutions created by ISVs. In summary,
think of the platform layer as providing the entire infrastructure that is required to
implement a complete Microsoft Dynamics CRM application.
There are a published set of events that a solution can subscribe to.
As part of the subscription, a developer must specify an event
handler, which is a segment of customized code that runs in response
the system event.
NOTE: Creating plug-ins requires a .NET developer and is beyond the scope of
this training. Refer to the Microsoft Dynamics CRM SDK for more information,
as well as the Extending Microsoft Dynamics CRM with .NET training offering.
There are certain parts of the Microsoft Dynamics CRM application that include
business logic that is not found in the platform and cannot be customized.
An example of this is the logic that converts a Lead into a Contact, Account, and
Opportunity. This behavior occurs because the application interacts with the
platform to create these new objects based on programmatic information stored
in the Lead object. The platform creates the Lead, but the built-in business logic
performed by the application converts the Lead to a Contact, Account, and
Opportunity.
Database Access
The Microsoft Dynamics CRM platform handles all interactions between the
application and Microsoft SQL Server, which contains the Microsoft Dynamics
CRM database.
IMPORTANT: With only one exception, direct interaction with the Microsoft
Dynamics CRM database is not supported.
Developers must not directly access or update the CRM database for the
following reasons:
NOTE: Because all data transactions go through the CRM platform, the
structure of Microsoft Dynamics CRM's actual SQL Server database is
technically irrelevant to even the deepest level customizations.
The one exception to the platform controlling all access to the database is a set of
filtered SQL Server views used to retrieve data for Microsoft Dynamics CRM
reports. Filtered views provide the following features:
• Any ODBC compliant application can report against the data stored
in Microsoft Dynamics CRM; this includes Microsoft SQL
Reporting Services and Microsoft Office applications such as Excel,
Word, and Access.
• Ad-hoc analysis is simplified.
• Third-party reporting tools can be integrated into the Microsoft
Dynamics CRM system.
The platform layer constructs filtered SQL views at runtime. When the platform
constructs a filtered view it builds row based security checking directly into the
query statement. This means the returned dataset only includes the records to
which the user has access.
Microsoft SQL Reporting Services and other ODBC compliant applications use
filtered views to access data directly from the Microsoft Dynamics CRM
database. By using filtered views:
In Microsoft Dynamics CRM reports, the security check is built directly into the
filtered SQL views. So instead of returning all possible records to the platform so
that it can filter out the records that the user is not allowed to access, SQL Server
performs both the filter and aggregate, and only those records to which the user
has access are returned.
The Microsoft Dynamics CRM Web application is a client for the Microsoft
Dynamics CRM platform. The Web Browser client provides a web-based user
experience running in Internet Explorer.
Microsoft Dynamics CRM for Outlook is integrated into Microsoft Outlook and
is a client for the Microsoft Dynamics CRM platform while online. When offline,
the client interacts with a version of the Microsoft Dynamics CRM platform
installed on the user's computer. Customizations to the Microsoft Dynamics
CRM platform are automatically transferred to Microsoft Dynamics CRM for
Outlook when data is synchronized.
Types of Customizations
Customizations to Microsoft Dynamics CRM can be classified into one of the
following groups:
This training examines in detail the first two types of customizations; that is,
customizing the forms and views and customizing the schema. In both cases, the
customizations take advantage of the application's built-in customization tools.
Whether you make minor changes to increase your users’ efficiency or major
changes to match your business needs, Microsoft Dynamics CRM can be
customized right from the Web-based user interface using the application's built-
in customization tools.
The remaining customization types are outside the scope of this training. These
tasks are typically performed by target audiences that are different from the
implementer/customizer that configures and customizes the application and
platform. For example, customizing reports and creating workflow rules are
covered in the Microsoft Dynamics CRM Application training offering.
For example, you might modify an application event that performs specific data
validation important to your business processes. If you then build or purchase a
solution that directly interacts with the Microsoft Dynamics CRM platform, the
data validation logic you added to the Microsoft Dynamics CRM application may
not necessarily be applied. However, if you include the data validation logic in a
Workflow rule within the Microsoft Dynamics CRM platform, that logic is
enforced regardless of which client is used.
Providing a variety of views gives users more choices in how they locate the
records they are looking for. Views can also represent a small type of report, and
the data displayed in a view can be extracted to a Microsoft Excel spreadsheet.
Within a given view, users can select the preview option on a record to display
more (although not all) information associated with the record without actually
opening the record. Alternatively, users can open a record by clicking a line in
the view. The fields displayed in both a view and a preview can be customized.
You can create views for the entire organization to use, or you can create and
save your own personal views using the Advanced Find functionality.
NOTE: Implementers and System Customizers that interact with end-users and
other non-customizer audiences must note that the term “record type” is
interchangeable with the term “entity.” Record type is also the term typically
exposed to a non-customizer audience.
Customizing the Microsoft Dynamics CRM schema using the application's built-
in customization tools can entail any one of the following tasks:
These modifications can be made without the need for programming skills
because the system customizer modifies the schema and not the Microsoft
Dynamics CRM database directly. In turn, the platform handles all the
interactions between Microsoft Dynamics CRM and Microsoft SQL Server,
which contains the Microsoft Dynamics CRM database. And as is the case when
customizing the application's user interface, customizations to the schema are
accomplished through the application's built-in customization tools that are
accessed from the Web-based user interface.
Client Extensions
To make linking applications easier, Microsoft Dynamics CRM lets you add new
buttons and menu items to both the Web application and Microsoft Dynamics
CRM for Outlook.
To link the Microsoft Dynamics CRM Portal with other applications, you can:
Workflow Customization
Workflow is a powerful type of platform customization in Microsoft Dynamics
CRM. It allows organizations to define, automate, and enforce specific rules,
policies, and procedures. Workflow streamlines and simplifies current business
processes by automating tasks. Task automation through workflow allows an
organization to:
Reporting
The reporting solution included with Microsoft Dynamics CRM is SQL Server
2005 Reporting Services (Microsoft Dynamics CRM does not support SQL
Server 2000 or SQL Server 2000 Reporting Services). A group of standard
Microsoft Dynamics CRM reports created using Reporting Services is included
with the application. In addition, the Reporting Services Report Designer tool can
be used to modify existing reports or create new Reporting Services reports.
Microsoft Dynamics CRM also lets you export data from the different views
available throughout the application, including the Advanced Find view. This
data can be exported into “live” Microsoft Excel worksheets and pivot tables that
can be automatically refreshed when they are opened. You can quickly create
reports in a format that is familiar to many users.
Microsoft Dynamics CRM also provides a Report Wizard that allows users to
create SQL Server 2005 Reporting Services reports directly from within the
CRM application.
Creating reports by exporting data into Microsoft Excel and through the Report
Wizard is covered in the Microsoft Dynamics CRM Applications training
offering.
NOTE: Using the Microsoft Dynamics CRM SDK to extend the functionality of
Microsoft Dynamics CRM is beyond the scope of this training. For more
information, refer to the “Microsoft Dynamics CRM SDK” and to the
“Extending Microsoft Dynamics CRM with .NET” training offerings.
Upgrading Customizations
Microsoft Dynamics CRM was designed to address a common problem faced by
organizations that purchase third-party business application software - after the
applications were customized to fit each organization's business requirements, the
cost to maintain the code-based customizations made it difficult to upgrade to
newer versions of the software. Without the ability to easily upgrade,
organizations cannot take advantage of new features added in later versions.
Although the core customization tools that are built within Microsoft Dynamics
CRM allow you to define the most common types of customizations, there are
frequently some business requirements that necessitate integration with other
systems or the development of some highly specific process that is unique to
your business. Developers can extend the capabilities of a Microsoft Dynamics
CRM deployment while maintaining the ability to upgrade later.
Developers do not change Microsoft Dynamics CRM code; instead, they use
Web services and XML configurations to integrate their custom extensions with
Microsoft Dynamics CRM. Because the Web services and XML configurations
provide a consistent interface in each new version of Microsoft Dynamics CRM,
customized extensions using supported methods can be safely upgraded.
Publishing Customizations
Publishing makes customizations visible to users, although not all customizations
must be published. Publishing customizations allows you to complete a number
of inter-related customizations and makes them available to users at the same
time.
You can publish customizations for a specific entity, for a group of entities, or all
customizations.
Reusing Customizations
Many implementations begin by first importing a base set of customizations
before manually applying unique customizations. Implementing customizations
created in a different deployment requires exporting the customizations from the
source system to an .xml file, and then importing the .xml file into the target
deployment.
Security Requirements
Each security role includes the following privileges to manage access to the
Importing and Exporting Customization user interface:
• Import Customizations
• Export Customizations
• Publish Customizations
The Export Customization privilege works in conjunction with the Read privilege
in order to export each respective item:
The Import Customization privileges must work together with the following
privileges in order to import each respective item:
• Entities. Global Create, Read, and Update privileges for all the
following objects:
– Entity
– Attribute
– Relationship
– Form
– View
• Templates. Global Create, Read, and Update privileges for any one
of the following objects:
– E-Mail Templates
– Mail Merge Templates
– Article Templates
– Contract Templates
The import customization process will fail if the Import file contains items which
the user does not have access to.
Exporting Customizations
Microsoft Dynamics CRM enables administrators and customizers to export
customizations using one of the following methods:
• All customizations
• Custom and Customizable Entities
• Custom Entities
• Customizable Entities
• Settings
• Workflows
• Security Roles
• Client Extensions (SiteMap and ISV.config)
• Templates
NOTE: If you select an individual entity for Import/Export, any dependent child
objects must be included in the Import/Export operation to preserve the
relationship.
Exported customizations are saved in an .xml file which can be used as a backup,
or to import to another Microsoft Dynamics CRM implementation. The default
file name is customizations.xml, and the export process creates a zipped version
of this file that you can save on your system.
Importing Customizations
When importing customizations from an .xml file, you can import:
Importing is additive for custom entities and attributes. If an import file contains
objects that do not exist on the target system, the objects are added to the target
system. Import is a summation of the import file and the target system. If an
object exists on the target system but does not exist in the import file, the objects
remain on the target system. Existing objects not included in the import file are
not affected by the import process.
Because import is additive and a summation, when you import entirely new
entities, there will be nothing on the system that can be overwritten. But if you
are importing customizations to customizable system entities or custom entities
that already exist on the system, those entities will be configured exactly like the
system from which the customizations were exported.
This means that if the current system customizations are not identical to those on
the system that the customizations were exported from, the current system
customizations that are different will be overwritten.
Finally, once the import process is complete, you must publish your
customizations before they will appear in the application. When publishing
customizations, you can select the entities you wish to publish, or you can
publish all customizations.
Each user can select the language of his or her choice from either the base
language or any of the downloaded MUI language packs. The user's Microsoft
Dynamics CRM user interface is then displayed in the selected language. In an
MUI environment, the label for each system component is displayed in the
language selected by the user.
The following example explains how the Import process works in a multilingual
environment:
Scenario
You mention that the Contact entity already includes a Relationship Type picklist
field that may be exactly what she needs. Because the field is not implemented
on the Contact form, you indicate that you will:
Mary also requested that you add a Yes/No field to the Contact entity that
indicates if the contact is a VIP. This field will be used later when Adventure
Works implements its Event registration system. You agree to add this field to
the Contact entity, Contact form, and Contact Preview form.
Goal Description
As Adventure Works’ implementation consultant, you created the customizations
on their test installation. You have tested the changes and verified they are
functioning properly. The Adventure Works QA team has also tested the changes
and approved them.
Use the following information when importing and exporting the customizations:
Challenge Yourself
Perform the following steps to complete this lab:
Step by Step
Perform the following steps to complete this lab:
In order to appreciate the new application changes, first review the default
appearance of the Contact form.
Verify that the changes were imported successfully. Add a new Contact record
and set its new Relationship field to one of the picklist values and set the VIP
contact code to Yes. Locate the record in the All Contacts view and verify that
the Relationship Type value is displayed. Verify the Relationship Type and VIP
code are displayed in the Preview pane.
4. On the View Menu, click the drop-down button to list the available
views. Select the Active Contacts view.
For backup purposes, export Adventure Works’ existing configuration from its
production system after applying the customizations. Export the configuration for
all entities to the zipped file defined in the Goal Description.
Summary
The purpose of this training is to provide a foundation for understanding how
Microsoft Dynamics CRM processes customizations. Subsequent training
examines in detail how to customize the application's user interface and platform
using its built-in customization tools.
This training then introduced all the application features that can be customized
in Microsoft Dynamics CRM and the different ways in which customizations can
be applied using the product's built-in customization tools.
1.
2.
3.
Solutions
Test Your Knowledge
1. What are some of the ways in which an organization can implement
customizations.
Introduction
This training examines how to customize the Microsoft Dynamics CRM user
interface using the application's customization tools. This includes
customizations to the forms used to enter and update data and the views that
display lists of records.
lYou can customize the following user interface components for an entity to meet
your organization's business requirements:
When you add a new entity, the system creates its corresponding
form for you. However, you can customize the form to only include
the attributes your organization plans to maintain.
• Views. A View is a type of saved query that is used to locate records.
The results of each view query are presented to the user in a grid.
Users can select different views to see the data presented with
different columns and filtering controls.
When you add a new entity, the system creates several default views
for you. However, you can customize those views, as well as add
additional custom views.
• Previews. Each record that is displayed in a view includes a preview
arrow. When a user clicks the preview arrow for a given record,
some of the available fields are displayed for that record without
actually opening the record. You can customize which fields are
displayed in the preview form.
For example, Microsoft Dynamics CRM uses the term “Account” to describe a
customer that is a business. If your organization is a wholesale distributor that
refers to its customers as Resellers, you can change the name of the entity from
“Account” to “Reseller.”
NOTE: The default security role setting for Record Customization is set to
grant Read Access at the Organization level. This cannot be changed. This does
not mean that all users have the ability to view the Entity Customization area. If
you want to allow selected users to preview customizations before publishing,
they need to be assigned a role that has Organization level Create and Read
rights for the Entity Customization privilege.
Perform the following steps to access the form customization tool for a given
entity:
Form Properties
The Form Properties window contains the following tabs:
• Display. The options on this tab control the use of the Form
assistant.
• Events. The form has events that can activate client-side scripts. The
training offering titled Introduction to Advanced Customizations
introduces the use of client-side scripting.
• Non-Event Dependencies. The fields in the form can be referenced
in scripts for custom buttons and menu items configured in the
isv.config.
Forms are composed of tabs, sections, and fields. In the prior figure displaying
the Account form, the tabs include General, Details, Administration, and Notes.
These four tabs are common to most entity forms. The sections in the General tab
for the Account form include Account Information and Address. Note how the
Account Information section name is not displayed. The fields are located within
each section. The following lessons examine how to customize each of these
form features.
However, once you have completed the form customizations, you must publish
the changes so they become visible to the users.
• General
• Details
• Administration
• Notes
When modifying a form, you can add, move, and remove tabs on a form. If you
add too many sections or fields to a tab, the user must scroll down to view or edit
them. Rather than include a large number of sections and fields within a single
tab, just add more tabs.
NOTE: The Microsoft Dynamics CRM customization tool allows you to define
up to eight tabs to a form.
1. To add a new tab, in the Common Tasks area, click Add a Tab.
- OR -
Select the tab you want to edit, then in the Common Tasks area, click
Change Properties.
Moving Tabs
You can change the location of tabs on the form by using the green arrows in the
Common Tasks area. To move a tab:
1. Click the tab you want to move. Note how the tab is highlighted to
indicate that it has been selected.
2. In the Common Tasks area, click either the left or right arrow to
move the selected tab to the desired location.
Removing Tabs
Removing a tab also removes any sections or fields that are included on the tab.
If you plan to remove a tab that contains fields that are assigned a Business
Required constraint, you must first move these business required fields to other
tabs. Perform the following steps to remove a tab:
The earlier figure that displayed the Account form displays a tab that includes
two sections: one in which the label and divider line are displayed, and one that
hides the label and divider line.
Perform the following steps to add a new section to a tab, or to edit the properties
for an existing section.
1. Select the tab that contains the section you want to edit, or where you
want to add a new section.
2. To add a section, click the Add a Section option in the Common
Tasks area.
- OR -
To edit a section, select a tab and the section in the tab you want to
edit, and then click Change Properties in the Common Tasks area.
On the Add a Section or Section Properties dialog box, add or change the
following section properties on the Display tab:
• Field Label Width. You can specify the width of the field label area
in pixels.
• Location. In the Tab drop-down list, select the tab you want the
section to appear in. When adding a section, this will be prefilled
with the tab that you previously selected. When editing a section, this
will be prefilled with the tab in which the section currently appears.
When adding a section, select the Formatting tab to customize the section layout.
The section layout information cannot be changed when editing the properties of
an existing section.
When you add a section, you can select the type of layout to apply from two
mutually exclusive options: Variable Field Width and Fixed Field Width. Your
selection determines the column layout options that are available on the
Formatting tab for each field in the section.
This is the default option. Fields are set up in two columns. The reason this
section layout option is referred to as “variable” is that for IFrame and ntext
fields, an option exists on the field properties that allows you to set the width to
be one or two columns. This field property is enabled if the IFrame or ntext field
appears within a Variable Field Width section; however, this field property is
disabled if the field is within a Fixed Field Width section. Because the field
property determines whether the field is displayed in one or two columns, the
Column Format options for the section is disabled.
With this formatting option, fields can be set up in two, three, or four columns as
seen in the figure. Each field can only be as wide as the column in which it is
displayed. In addition, a Fixed Field Width section does not allow the
administrator to set IFrame and ntext field properties to automatically expand to
fill available space.
Moving Sections
You have two options when moving a section:
In both cases, all of the fields within the section are moved along with it. Perform
the following steps to move a section:
Removing Sections
A section can be removed as long as it does not contain fields with dependencies.
Removing the section removes all fields in the section from the form.
The field properties discussed in this lesson refer to how the field is presented
and behaves on the entity form. When changing a field's properties for a form,
the properties have been grouped into the following four tabs:
• Display
• Formatting
• Schema
• Events
Design Considerations
When adding a field to a form, the tab that you want to add the field into must
contain a section. You can add one or more fields into a given tab and section at
the same time. This is done by selecting the attribute(s) that you want included
on the form from the list of available attributes for the entity. Once you expose an
attribute on a form, the attribute no longer appears in the list of available
attributes.
There are a number of attributes for each entity that are not displayed on the
default forms. If you do not find an existing attribute that fits your need you can
create a new attribute (this is covered in the training offering titled Customizing
Entities and Attributes). Before creating a new attribute to store data for an
entity, it is recommended that you first review the existing attributes to determine
if one exists that might satisfy your business requirement.
The location of a field within a section can have an impact on how well the form
is received by the end-users. When designing the appearance of a form, it is
important to remember that some users prefer to use the mouse to point and click
their way from field to field, while other users prefer to tab from one field to the
next.
You can accept these defaults, or you can select a new tab and/or
section from their respective drop-down lists. Note: Tabs that do not
contain a section will not appear in the tab list.
4. Click OK.
Customizing field properties is initiated by opening the form, selecting the field,
and then clicking Change Properties in the Common Tasks area. This opens the
Field Properties dialog box.
The Field Properties dialog box groups the properties into the following four
tabs:
• Display
• Formatting
• Schema
• Events
Display Tab
The properties on this tab affect how the field is displayed and maintained on the
form. These include:
Formatting Tab
The formatting options displayed on this tab depend on the formatting options
assigned to the section in which the field appears.
The properties that can be maintained on the Formatting tab are dependent on the
field type. These include:
• All fields. If the section the field is located in is set to Variable Field
Width, you can set the layout to one or two columns.
• Bit fields. For bit fields, you can specify if the field is displayed as a:
– Radio button
– Check box
– Picklist
• ntext fields. For ntext fields, you can specify the height of the field
in rows. If the section the field is located in is Variable Field Width
you can also set an option on the field properties that displays the
field in one or two columns.
Schema Tab
The Schema tab displays read-only attribute information for the field. This is an
informational-only tab that cannot be updated. The information displayed in this
tab is taken from the field's attribute record in the entity schema. You cannot
change the values here, although the display name can be modified on the form.
To change some visible features of a field, like the options available in a picklist,
you need to edit the attribute in the entity schema. Modifying attribute properties
is covered in the next training offering titled Customizing Entities and Attributes.
Events Tab
Each field on a form has a corresponding OnChange event which can be used to
trigger client-side code when a user changes the value of the field. The Events
tab is where developers attach client-side scripts to the OnChange event for a
field. Event programming is introduced in a later training offering titled
Introduction to Advanced Customizations.
The Form Preview also allows you to test any application scripting that has been
added for form and field events. Previewing event scripts is covered in the
training offering titled Introduction to Advanced Customizations.
Although the Preview form displays additional fields for a record, it is considered
by the application to be a form and not a view. When the filter is changed on the
Forms and Views page to display All Forms, the entity's Form and Preview form
are displayed.
Use the same procedures to customize Preview forms as you did to edit fields on
a form. Once you have completed customizing the Preview form, save the
changes and publish them.
Scenario
Adventure Works Cycle wants to reorganize their Account form to better fit their
business processes. They have also requested a change to the Account's Preview
form to display the account's Business Type code.
Goal Description
The goals for this demonstration include:
Step by Step
To complete this demonstration, you first must open the Account form. Click
Settings, click Customization, click Customize Entities, double-click Account,
click Forms and Views, and then double-click Form.
1. On the Account Form, click Add a Tab from the Common Tasks
area.
2. Enter “Addresses” as the name of the tab.
3. Click OK.
1. Click the General Tab. Select the Address section by clicking on the
Address section label.
2. Click Change Properties.
3. Change the Location Property to the “Addresses” tab.
4. Click OK.
5. On the Details Tab, use the same method to move the Business
Information and Company Information sections to the General tab.
1. On the Addresses tab, select the Address section and click Change
Properties.
2. Change the Name to “Primary Address.”
3. Click OK.
4. Click OK.
Use the green arrows to position the fields in the following order:
1. Click the field to select it, then click Change Properties (double-
clicking on the field does the same thing).
2. Remove the text “Address 2: “ from the Label.
3. Click OK.
For each of the five Contact Methods listed in the Administration Tab, you want
to adjust its format from two columns to one. Since the format for the section is
locked once the section has been added, you must first remove the section, and
then add it back with a different formatting property.
6. Click Add Fields. Select the following fields and click OK.
a. Do not allow Bulk E-mails
b. Do not allow Bulk Mails
c. Do not allow E-mails
d. Do not allow Faxes
e. Do not allow Mails
f. Do not allow Phone Calls
g. Preferred Method of Contact
7. For each of the “Do not allow” fields, select the field and click
Change Properties.
8. On the Display tab, change the label to “No <Label>.” Example:
“Do not allow Bulk E-Mails” becomes “No Bulk E-mails.”
9. On the Formatting tab, set Control Formatting to “Checkbox.”
To see how the changes you made to the Account form will look once you
publish them, use the Preview option on the menu bar.
1. On the menu bar, click Preview, then click Create Form to preview
customizations.
2. Verify the changes you made, then close the Create Form.
3. On the Forms and Views page, click Save and Close.
1. On the Forms and Views page, click Actions on the menu bar, then
click Publish.
2. Navigate to Workplace and create an Account record to confirm your
changes to the Account form.
3. View the Active Accounts. Open the Preview form for a record and
verify that the Business Type field is displayed..
You decide to start with the Contact form and explain to the customer the focus
of this exercise is on basic form customization and changes to the user interface.
Later, you will be making changes to the database and fields (called attributes)
and creating new fields to be added to forms.
Goal Description
Since the customer has not yet seen the extent to which Microsoft Dynamics
CRM forms can be customized, you start the exercise with an explanation and
then demonstrate the customization capabilities.
Based on your demonstration, the customer asks you to make the following
changes to the Contact form while they observe the customization process:
Add the following “Address 2:” fields to this section: Street 1, Street
2, City, State/Province, and Zip/Postal Code. Rearrange these fields
into a logical order. Change each of the field labels to eliminate the
“Address 2:” designation.
• Remove the following fields from the Address section on the
General tab: Address Type, Shipping Method, and Freight Terms.
Rearrange the remaining Address section fields in a logical order so
they take less space on the form. Change the label of the Phone field
to “Main Phone”.
• Move the Home Phone field from the General tab to the new Home
Address section.
Select Fixed Field Width as the Section Layout. Select Two Columns
(1:1) as the Column Format. Add to this section the following fields:
Created By, Created On, Modified By, and Modified On.
• Rearrange the fields in the Marketing Information section of the
Administration tab so they take up less space on the form.
• Remove the Billing Information section on the Administration tab.
What is your response to Adventure Works, and how can you accommodate their
request?
Adventure Works has also requested the following changes to the Contact's
Preview form:
• Remove the Fax number and add the following fields: Nickname,
Job Title, Manager, and Manager Phone fields.
• Arrange the fields so they appear in the following order:
– left column, top to bottom: Street 1, Street2, City,
State/Province, and ZIP/Postal Code, Relationship type.
– right column, top to bottom: Nickname, Job Title, Mobile
Phone, Home Phone, E-mail, Manager, and Manager Phone.
After these customer changes are implemented on the Contact entity, you should
publish the changes and test the functionality by creating a new Contact record,
adding some data, and viewing the Contact's Preview form.
Adventure Works previously developed their own sales force automation system.
Because of their experience in developing this legacy system, they have asked for
the following user interface customizations to the Contact form:
After studying their request, you realize the requested changes are not part of the
standard customization toolkit and are both unsupported and not recommended.
How do you explain the advantages and constraints of the Microsoft Dynamics
CRM user interface design to the customer?
Challenge Yourself
Based on the instructions in the Goal Description, perform the following steps to
complete this lab:
1. On the Contact's Forms and Views page, open the Preview form.
2. Apply the following changes to the Contact's Preview form:
a. Remove the Fax field.
b. Select the Add Fields option and select the following fields:
Nickname, Job Title, Manager, and Manager Phone fields.
c. Arrange the fields so they appear in the following order:
• left column, top to bottom: Street 1, Street2, City,
State/Province, ZIP/Postal Code, Relationship type.
• right column, top to bottom: Nickname, Job Title, Mobile
Phone, Home Phone, E-mail, Manager, Manager Phone.
Step by Step
Perform the following steps to complete this lab:
Verify the Tab field is prefilled with Personal; if not, select Personal
from the Tab drop-down list. In the Formatting tab, the section
layout must be Variable Field Width. Click OK.
14. Select the Home Address section on the tab. To add the Address 2
fields to this section, click Add Fields in the Common Tasks area.
15. In the Add Fields dialog box, select the following fields: Address 2:
Street 1, Address 2: Street 2, Address 2: City, Address 2:
State/Province, and Address 2: Zip/Postal Code. Because the
Home Address section of the Personal tab was selected when you
clicked Add Fields, this section and tab will be pre-filled in the
Location fields. If this tab and section are not displayed, select them
from the drop-down lists. Click OK.
16. Rearrange these fields into a logical order. The Street 1, Street 2, and
City fields must appear on the left-hand column (top to bottom), and
the State/Province and ZIP/Postal Code must appear top to bottom
on the right-hand column.
17. Click on the Address 2: Street 1 field. To change the address field
label to eliminate the “Address 2:” designation, click Change
Properties. In the Label field, remove the “Address2:” portion of the
label. Click OK. Repeat for the other address fields.
Types of Views
There are three primary types of views: public, system, and personal. Only the
public and system views can be customized using the Microsoft Dynamics CRM
customization tools.
• Public views. These are the views that are provided with the
application, as well as custom views an organization creates. For
each entity, you can define one of its public views as the default
view for that entity. The default view is displayed when a user
selects that entity in the navigation bar of the application.
• System views. There are four additional system-defined views for
each entity. These system views are used in unique situations within
the application:
– Associated view
– Advanced Find view
– Lookup view
– Quick Find view
• Personal views. Each user can create his or her own queries using
the Advanced Find tool. These can be “one-time” queries that the
user does not save, or they can be saved as one of the user's personal
views. Saving an Advanced Find query as a personal view allows the
user to access the view at any time in the future.
Users can also share their personal views with other users. Using the
Advanced Find tool to create personal views is covered in the
Applications in Microsoft Dynamics CRM training offering.
System Views
The four system views described earlier are unique to each entity. These views
are provided as part of the application, and each is designed for use in a specific
situation. Because these are not public views, they are not displayed in an entity's
View menu. Each of the four system views is discussed below.
Associated View
An entity's associated view can be seen when you observe related entities. In
other words, this is the view of an entity that is displayed from within another
entity.
For example, if you open an Opportunity record, the application allows you to
view the Associated views for Activities, Quotes, Orders, and Invoices that are
associated with that Opportunity record. If you select Activities, the system
displays the Activity associated view. This displays all Activities associated with
that Opportunity. If you select Invoices, the system displays the Invoice
associated view. This displays all Invoices related to that Opportunity.
There is only one associated view for each entity. In the previous example, the
Invoice associated view that is displayed for a given Opportunity is the same
Invoice associated view displayed for a given Order or a given Quote. The figure
shows the Invoice's Associated view.
The Advanced Find view represents the information displayed by default for an
entity when a user creates an Advanced Find query. Although an end-user can
customize the view used during the Advanced Find operation, the default view
used as the starting point for the advanced find is the Advanced Find view
discussed here.
The user interface for customizing the Advanced Find view is similar to the user
interface for modifying any other view, with one exception. For custom public
views that you create, you must define the filter criteria associated with the view
that makes it unique (for example, all Western Region Accounts). However,
because the filter criteria for Advanced Find queries is defined by end-users at
the time they perform the search, the Advanced Find view does not include pre-
defined filter criteria like public views.
Lookup View
A Lookup view is displayed after you click a lookup button to search for all
records for a given entity. You can add additional columns to the lookup view to
quickly find data that can differentiate similar records. For example, when
creating a new Opportunity record, you can click a lookup button to select the
Currency associated with that particular opportunity. This opens a Look Up
Records dialog box that displays the Currency Lookup view.
The figure shows the Account lookup view. When customizing the Lookup view
for an entity, you can define the columns to be returned, the sorting criteria, and
the Find Columns. Find Columns assist users in locating the records using the
search criteria window. This topic is covered later in this lesson during the Find
Columns discussion.
When using the quick find feature for an entity, the results are displayed in the
entity's Quick Find view. In the View menu, this is referred to as “Search
Results.” When customizing this view, you can define the columns to be
returned, the sorting criteria, and the Find Columns.
• View Properties. Each view for an entity must have a unique name.
You can also include a description for the view.
• Filter Criteria. Each View has filter criteria defined. This filter
definition uses the same user interface as the Advanced Find tool.
The entity attributes used in the filter criteria do not need to be
included in the results of the view. For example, if you have a view
called “Inactive Accounts” there is no need to include the Status
attribute in the view because by definition the state attribute value
must always be “inactive.”
• Columns. You can define which columns are displayed in the view.
This is typically the most common customization made to existing
views. You can also define the column position and width.
• Find Columns. For Quick Find and Lookup views, you can specify
which columns in the view must be used when searching the records
to be displayed. This is a valuable feature that can easily be
overlooked because there is no visual cue for the user to let him or
her know which fields are searchable. For example, when searching
for accounts users can employ the following default searchable
fields: Account Name, Account Number, and Email. But if users also
want to apply the Account telephone number or city name, those
fields can be added as Find Columns in the Account Quick Find
view. Note: The Find Columns do not need to be attribute columns
that are included in the view.
• Sorting. Any column in a view can be set with a default sort criteria.
Users, in turn, can re-sort the data by clicking on the heading of any
column.
View Customization
This lesson examines the procedures involved in adding a new view and
customizing an existing view, including the system-defined views discussed
earlier.
To add a new view or customize an existing view, you must first navigate to the
Forms and Views page for the entity being customized. You can then request a
new view, or open an existing view.
If the entity to which the view pertains is the related entity in a 1-to-
Many relationship, then you can also select the primary entity in that
relationship from the Record Type drop-down list in the Add
Columns dialog box. All of the attributes for that primary entity will
be displayed for you to select as well. For example, an Opportunity
view can be modified to display the telephone number of the
associated customer account.
• Change Properties. This option allows you to change the width of a
column. Click on the heading of the column that you want to
customize. This selects the column and displays a green box around
the column. In the Change Column Properties dialog box, select the
width of the column in pixels from the options provided.
• Remove. This option allows you to remove a column from the view.
Click on the column heading to select the column, then click
Remove.
• Move a Column. Click on a column to select it, then click the green
right or left arrow to move the column to a different location.
Only the public views are eligible to be set as the default view. On the Forms and
Views list for an entity, the Type column identifies the type of each view. The
existing default view is assigned the type “Default Public View”. The four
system views (Associated, Advanced Find, Lookup, and Quick Find) cannot be
set as the default view for the entity.
If an entity has a “My <entity name>” view (such as My Accounts), then this
view is typically set as the application's default view for that entity. However, by
performing the following steps, you can change an entity's default view:
1. In the Forms and Views list for an entity, select the Public view you
want to set as the default.
2. On the Actions toolbar, click More Actions, and then click Set
Default.
3. Click Save or Save and Close on the Entity form.
Scenario
Goal Description
Adventure Works has requested that you make the following view
customizations for the Account entity:
• Customize the Lookup View. Include City in the Find Columns for
the Account Lookup.
• Customize the Quick Find View. Include the City field from the
account's address along with the account's telephone number as
search fields for the Quick Find view
Step by Step
Each of these steps begins on the Forms and Views list for Accounts. To locate
this form, click Settings, click Customization, click Customize Entities,
double-click Account, and then click Forms and Views.
2. Click Add columns and select the following attributes from the
Account entity:
a. Account Number
b. Primary Contact
c. Main Phone
3. Click OK.
4. Position the Account Number column to the left by selecting it (if it
is not already selected) and using the green Left arrow to move it.
5. Click Edit Filter Criteria, then click Select and enter the following
search criteria:
a. Related : Cases (Customer)
b. Status = Active
6. Click OK.
7. Save and Close the New: View window.
8. Save and Close the Account's Forms and Views.
9. Publish the customizations to the Account entity.
10. Confirm that view is available in the View menu for Accounts.
The members of Adventure Works’ project team wants to understand the extent
to which Microsoft Dynamics CRM views can be used and customized. Once
they understand the concept of views, they will be able to inform you about the
views they want created or changed in order to make the system easier to use.
They want to watch you make the changes so they can learn how to maintain
views on their own.
You decide to start with the Account entity to explain to the project team how
views are used and can be customized.
Goal Description
Since the customer has not yet seen the extent to which Microsoft Dynamics
CRM views can be used and customized, you start the exercise with a
demonstration of Account views.
What basic features of CRM views do you decide to show the customer?
Based on your demonstration, Adventure Works’ project team asks you to make
the following changes to Account views. You make these changes while the team
members observe the customization process.
• Create a new public view with the title “Active Customers”. The
view should have the following columns (in this order):
– Account Name
– Primary Contact
– Job Title (Primary Contact)
– Address 1: City
– Owner
– Relationship Type
• Add Job Title and Role columns to the Contact's Associated View.
Change the following properties for this view:
– The column order left to right must be Full Name, Job Title,
Role, and Business Phone
– Job Title must have a width of 150px
Challenge Yourself
Based on the instructions in the Goal Description, perform the following steps to
complete this lab:
You can either publish and test the changes that you make following each step, or
complete all of the changes first, then publish and test the changes at one time.
1. Create a new public view titled Active Customers that has the
properties defined in the Goal Description.
2. Publish and test the new functionality.
1. Create a new Advanced Find query to display all Accounts with the
following properties:
a. Status = Active and Credit Hold = Yes
b. Add the column “Credit Limit” and display it to the right of the
Account Name.
2. Save this query as a personal Account view with the name “Accounts
on Credit Hold”.
3. Publish and test the new functionality. Verify that this view appears
in the Account View menu under the My Views section. Verify that
the Relationship Type field that was added in the prior step to the
Account's Advanced Find view appears.
Step by Step
Perform the following steps to complete this lab:
In the Account entity, make the following changes to the Active Accounts view:
5. Click OK.
6. To remove the Main Phone column, click on its column heading,
then click Remove. Click OK to confirm the deletion.
7. Click Add Columns to add the Primary Contact’s Job Title as a
“related column”. Display this field to the immediate right of the
Primary Contact column.
8. In the Record Type field at the top of the Add Columns dialog box,
select Primary Contact (Contact).
9. In the list of Primary Contact attributes, select Job Title and click
OK.
10. Select the Job Title (Primary Contact) column heading to select it.
Click the green left arrow as needed to move the column to the
immediate right of the Primary Contact column.
11. With the Job Title (Primary Contact) heading still selected, click
Change Properties.
12. Select 150px as the column width. Click OK.
13. Click Save and Close on the Active Accounts view.
14. Click Save and Close on the Account's Forms and Views.
15. Because Account is already selected on the Customize Entities list,
click Publish to publish all Account customizations.
16. Test the change by opening an existing account. If the Primary
Contact field is empty, click the lookup button on the Primary
Contact field.
17. Click New and create a new contact. Enter the contact's name and
primary job title. Click Save and Close.
18. On the Accounts view, select Active Accounts from the View menu.
19. Verify the primary contact and his or her job title is displayed in the
Active Accounts view.
Create a new public view titled Active Customers with the properties defined in
the Goal Description.
Set the default view for Accounts to be Active Accounts instead of My Active
Accounts.
Create a new Advanced Find query to display all accounts on credit hold.
Summary
One of the strengths of Microsoft Dynamics CRM is its built-in customization
tool that allows organizations to tailor the application's user interface to meet its
business requirements. This training examined how to customize the Microsoft
Dynamics CRM user interface using this tool. Included in this discussion were
lessons on how to customize the following areas:
• Forms. Forms are used to enter and update data. When customizing
forms, this training examined how to customize the form
components, including tabs, sections within a tab, and fields within a
section.
• Views. This training examined how to customize public views and
several system views, including the Associated View, Advanced
Find View, Lookup View, and Quick Find View.
• Preview forms. Microsoft Dynamics CRM uses Preview forms to
display additional data for each record without actually opening the
record. This training examined how to customize the fields displayed
within a Preview form.
3. Which of the following is a difference between the Variable Field Width and
the Fixed Field Width Section Layout options?
( ) The Fixed Field Width option lets you control the height of ntext and
IFrame fields
( ) The Variable Field Width option lets you have three columns in a section
( ) The Variable Field Width option allows ntext and IFrame elements to
expand to fill available space
( ) None of the above.
5. How can you control the tab order of fields in the form?
( ) Arrange them with the default tab order: Top to bottom, left column, and
then right column within each section.
( ) Arrange them with the default tab order: Left to right across each row.
( ) Set the TabIndex value in the Attribute definition.
( ) Modify the .aspx page to set the TabIndex property for the field.
7. Users want to be able to search for a record using a custom attribute. How
can you make this happen? Choose the best answer.
( ) Save an Advanced Find query using that attribute as a filter criteria and
share the query with every user.
( ) Create a custom application to prompt the user to enter the criteria for a
search.
( ) Add the attribute as a column displayed in the view.
( ) Add the attribute as a Find Column on the entity's Quick Find view.
1.
2.
3.
Solutions
Test Your Knowledge
1. Bob and Lisa are both in the Microsoft Dynamics CRM System
Administrators role. Bob developed some customizations to the Task entity
and saved the changes. Later, Lisa views the Task entity in the
Customizations area. Will she see the changes Bob made?
(•) Yes. She will see the customizations because they were saved
( ) No. She will not see the customizations because they were not published
( ) No. She will not see the customizations because she does not have
privileges to view them
( ) Yes. She will see the customizations but will not be able to make changes
until they are published
3. Which of the following is a difference between the Variable Field Width and
the Fixed Field Width Section Layout options?
( ) The Fixed Field Width option lets you control the height of ntext and
IFrame fields
( ) The Variable Field Width option lets you have three columns in a section
(•) The Variable Field Width option allows ntext and IFrame elements to
expand to fill available space
( ) None of the above.
5. How can you control the tab order of fields in the form?
(•) Arrange them with the default tab order: Top to bottom, left column, and
then right column within each section.
( ) Arrange them with the default tab order: Left to right across each row.
( ) Set the TabIndex value in the Attribute definition.
( ) Modify the .aspx page to set the TabIndex property for the field.
7. Users want to be able to search for a record using a custom attribute. How
can you make this happen? Choose the best answer.
( ) Save an Advanced Find query using that attribute as a filter criteria and
share the query with every user.
( ) Create a custom application to prompt the user to enter the criteria for a
search.
( ) Add the attribute as a column displayed in the view.
(•) Add the attribute as a Find Column on the entity's Quick Find view.
field onto the form that is already defined in the database •Changing or
(such as changing from one column to two, or the number of rows in a multi-
line text field) •Creating a new section •Moving a section within the tab or to
What is your response to Adventure Works, and how can you accommodate their
request?
MODEL ANSWER - You cannot change the layout of the section from one
column to two. Once a section is added to a form, you cannot change its
layout. To accommodate their request, you will have to delete the section,
then add it back to the tab. When you add the section, you would configure
its layout for two columns. Each line in the section could then hold two
Adventure Works previously developed their own sales force automation system.
Because of their experience in developing this legacy system, they have asked for
the following user interface customizations to the Contact form:
After studying their request, you realize the requested changes are not part of the
standard customization toolkit and are both unsupported and not recommended.
How do you explain the advantages and constraints of the Microsoft Dynamics
CRM user interface design to the customer?
development
views and other available public views - Filtering data - Sorting columns -
Quick Find views - Look Up views - Advanced find and saving personal
views - Changing existing views including adding columns and changing sort
Introduction
Microsoft Dynamics CRM allows you to create new entities and attributes
through the application's built-in customization tools. Adding custom entities and
attributes greatly extends your ability to make Microsoft Dynamics CRM support
the business processes for a wide range of organizations. This can be done
quickly and inexpensively because no programming is required.
Customization Concepts
The terms “Table” and “Column” (or “Field”) are oftentimes used in reference to
data that is processed within business applications. However, because Microsoft
Dynamics CRM's foundation is built upon the use of XML, the following terms
are used:
NOTE: The important structures in Microsoft Dynamics CRM are found in the
Microsoft Dynamics CRM platform. The platform is defined in XML, so XML
terms are used when referencing database schema elements.
Entity Types
Microsoft Dynamics CRM allows you to work with the following types of
entities:
Attributes
Each entity has a number of attributes. In a database, an attribute represents a
particular column within a table. When attributes are presented within a form for
end-users to update, they are referred to as fields.
WARNING: Custom attributes do not work with the Mail Merge feature in
Microsoft Dynamics CRM for Microsoft Office Outlook. The suggested work-
around is to export the results of a view or Advanced Find query containing the
custom attribute data into Microsoft Excel. A Mail Merge can then be prepared
using that document as a data source.
Customizing Attributes
You have two options if Microsoft Dynamics CRM does not have a field that can
be used to fit a specific purpose required by your organization:
After creating a new attribute, you must expose it on the entity's form to make the
attribute available for use on views, reports, and workflow rules. A custom
attribute can be deleted if you later decide that it is no longer needed.
Adding a custom attribute is easy. But consider if any of the existing attributes
that have not been revealed on the entity's form can be used first before creating a
new attribute. The space available to add attributes to entities is not unlimited.
The following figure describes the number of bytes used for each attribute data
type.
NOTE: Each attribute with a Money data type uses 8 bytes. However, when an
attribute with a Money data type is added, a corresponding Base Currency
attribute is automatically added by the system. Therefore, every Money attribute
actually consumes 16 bytes, which consists of the attribute plus its base
currency.
If you decide to add a custom attribute to an entity, you can determine if there is
space available for the attribute in the entity's extension table by running this
Transact-SQL query on the <organization>_CRM database.
Alternatively, you can determine the number of bytes already used by custom
attributes for an entity by running this Transact-SQL query on the
<organization>_CRM database:
NOTE: Some of the attribute type options can be modified after creation in the
Attribute window. The exception is the bit attribute types, which are set through
the form editor.
Some system attribute types cannot be manually added. However, they may be
automatically created as a by-product from when you create a new entity or
relationship. For example, an entity Lookup field can be created at the time you
create a relationship (relationships are covered later in this training). The attribute
types that you cannot manually add include:
• Status
• State
• Primarykey
• Owner
• Lookup
The default schema name prefix is “new.” The prefix and the entity or attribute
name is separated by an underscore, resulting in a default prefix of “new_”
NOTE: You can set the value of this prefix in the System Settings. Click
Settings, then Administration, then System Settings. Select the Customization
tab to locate the Schema Name Prefix field. Configuring this field along with
all other System Settings was covered in the training titled Configuring
Organization Settings.
The value of this prefix can be changed at any time. This gives you the ability to
organize the attributes for a specific project by changing the prefix to a value
representative of the project. This can include custom projects you and/or your
staff complete in-house, as well as custom projects completed by consultants off-
site and imported into your deployment.
Attribute Properties
The figure titled “Primary Attribute Properties” describes the properties available
when creating or editing an attribute. Those items marked with an asterisk cannot
be modified on default attributes or after a custom attribute has been created. The
exception to this is the format for the bit attribute type which is set using the
Form Editor field properties. This is examined later in the training.
NOTE: You cannot change the schema name or type of an attribute after it has
been saved.
WARNING: When a custom attribute is deleted, all data stored in that column
of the physical database table in the attribute is irretrievably lost.
If a custom attribute that you want to delete has been referenced by another
object, then all references must be removed before the attribute can be deleted.
The figure titled Reference Error when Deleting an Attribute is an example of an
error message received when attempting to delete an attribute that is still used on
another object.
Perform the following steps to delete a custom attribute from an existing entity:
Scenario
Adventure Works Cycle wants to track the relative difficulty of Tasks that are
assigned to users in Microsoft Dynamics CRM. By analyzing this performance
data, they hope to focus their efforts on process improvements that allow them to
better serve their customers.
Goal Description
As Adventure Works’ implementation consultant, you have been asked to create
a custom attribute on the Task entity that allows end-users to track the difficulty
of each assigned task. The goals of this project include:
Step by Step
Step 1: Set the Schema Name Prefix
Prior to adding a custom attribute, verify that the prefix that will be assigned to
schema name matches your business requirements. For the purposes of this
demonstration, the prefix “test” will be used.
Perform the following steps to add the custom attribute to the Task entity:
After adding a picklist attribute, you must then assign each of the possible values
for the picklist field. Perform the following steps to add the Difficulty picklist
attribute values from the table displayed in the Goal Description titled “Difficulty
Picklist Attribute Values.”
1. With the New Attribute form still open, perform the following steps
to add values to the picklist attribute:
a. Click Add.
b. Enter the Label value that corresponds to the numeric value.
c. Click OK.
NOTE: Before saving the attribute, observe the formats and properties
available for each type of attribute. Notice the options available for each data
type.
Once the attribute has been added to the schema for the target entity, you must
then expose the attribute on the entity's form. This enables the attribute so that it
is available for use throughout the rest of the application.
Prior to saving the change that you made to the form, you should preview the
change to verify that it appears and functions properly.
1. Perform the steps that were covered in the prior training titled
Customizing Forms and Views on how to preview customizations to
the Create form.
2. Select the Difficulty picklist field and verify that the picklist values
appear in the proper order. Also verify that “Moderate” is displayed
as the default value.
3. Save and Close the Task form.
4. Because you customized the Task form, you must Publish the
changes that you made to the Task entity.
5. Test the change by adding a Task Activity record for an Account and
setting the Difficulty value.
You are in a CRM design review meeting with members of the Customer Service
team. Stefan Del Marco, the Customer Service Manager, discusses a potential
customization to the database schema. Stefan notes that his department's policy
for cases related to service contracts is based on the following service levels
which the customer can purchase:
Stefan notes that the Microsoft Dynamics CRM Case form already has a service
level field that is related to the service contract. However, the form lacks the
ability to track the length of time (in hours) that it takes the Customer Service
Representative to return the customer's call.
Goal Description
Stefan has requested that you add a new Response Time attribute to the Case
entity and Case form. He further requested that the Response Time field be
displayed on the Case Preview pane.
Furthermore, because Adventure Works’ customers with Gold service levels are
typically their most valuable customers, Stefan has asked you to create a new
view that displays the Cases with Gold level service plans that did not meet the
one hour or less response time. Stefan will use this view to identify the customers
that he needs to contact due to Adventure Works’ poor service performance.
• Add a new Case entity attribute that has the following properties:
– Display name = Response Time
– Schema Name = new_ResponseTime
– Requirement Level = No Constraint
• Add the Response Time attribute to the Case form. Add the field to
the Assignment Information section of the General tab. Change the
label of the field to display “Response Time (hours)”.
• Add the Response Time attribute to the Case Preview pane. Display
it directly below the Service Level field.
• Create a new Case view with the following properties:
– View name: Unachieved Gold Level Responses
– Filter criteria: Service level = Gold, and Response Time > 1.0.
– Display columns:
• Case Number
• Response Time
• Severity
• Owner
• Responsible Contact
– Sort by Response Time in descending order
• To test the customizations, open two cases, change their service level
to Gold and enter response times greater than 1.0 for each case.
Update a third case by changing its service level to Gold, but enter a
response time of .5 for this case. Verify that the response times
appear in the cases’ preview pane and that the new view displays the
proper records and in the correct order. Also verify that the third case
does not appear in the view.
Challenge Yourself
Based on the instructions in the Goal Description, perform the following steps to
complete this lab:
1. Create a new attribute in the Case entity with the properties defined
in the Goal Description.
2. Add the field to the Case form and customize its appearance
according to the Goal Description.
3. Create a new Case view with the properties defined in the Goal
Description. Publish your changes.
4. To test the results, change two existing cases to Gold service levels
and enter values greater than 1.0 as the response times. Make a third
case a Gold service level, but enter .5 as its response time.
5. Verify that the response times appear in each case's preview pane.
6. Verify that the Unachieved Gold Level Responses view displays the
proper cases and in the correct sort order. Verify that the third case
with a response time of .5 does not appear.
Perform the following steps to add the Response Time attribute to the Case
entity:
1. Navigate to Customize Entities and open the Case entity. Open the
list of Case attributes.
2. Create a new attribute and enter the following properties:
• Display name = Response Time
• Schema Name = new_ResponseTime
• Requirement Level = No Constraint
• Description = Time in hours it takes for a Customer Service
Representative to return the customer's call
• Type = float
• Default the remaining fields
Perform the following steps to add the Response Time to the Case form:
1. Add the Response Time attribute to the Case form. Add the field to
the Assignment Information section of the General tab.
2. Change the label of the field to display Response Time (hours).
As a best practice, verify the changes that you made to the form by using the
Preview menu option.
Perform the following steps to add the Response Time to the Case Preview pane:
Create a new Case view that displays the cases for Gold level customers that did
not meet the one hour or less response time rule. The view must have the
following properties:
• Display columns:
– Case Number
– Response Time
– Severity
– Owner
– Responsible Contact
1. To test the new view, open an existing Case, change its Service
Level to Gold and enter a value greater than 1.0 in the Response
Time field. Repeat this step with a second case.
2. Verify that the response times appear in each case's preview pane.
3. Open a third case, change the Service Level to Gold, but this time
enter .5 as the Response Time.
4. Navigate to Cases and select the Unachieved Gold Level Responses
view. Verify that the two cases you updated appear, and that they are
displayed in the proper sort order. Verify that the third Gold Level
case with a response time of .5 does not appear in the view.
Step by Step
Perform the following steps to complete this lab:
Perform the following steps to add the Response Time attribute to the Case
entity:
Perform the following steps to add the Response Time to the Case form:
1. If the Case entity form is not open, then open it now. Click Forms
and Views. Double-click Form.
2. Click Add Fields. Select the Response Time field, and add it to the
Assignment Information section of the General tab. Click OK.
3. Select the Response Time field if it is not already selected. Click
Change Properties.
4. On the Display tab, change the value of the Label field to Response
Time (hours). Click OK.
5. Click Save.
6. As a best practice, verify the changes that you made to the form by
using the Preview menu option. Click Preview on the menu bar.
Select Create form. Verify the changes appear as they should. Close
the preview form.
7. Click Save and Close.
8. Click Actions on the menu bar, and then click Publish.
Perform the following steps to add the Response Time to the Case Preview pane:
1. If the Case Forms and Views window is not open, then open it now.
Double-click Preview.
2. Click Add Fields. Add the Response Time field to the preview pane.
Click OK.
3. Use the green arrows to move the Response Time field directly
below the Service Level field.
4. Click Save and Close.
5. Click Actions, then click Publish.
6. Click Save and Close.
Perform the following steps to create a new view that displays the cases for Gold
level customers that did not meet the one hour or less response time rule:
1. If the Case Forms and Views window is not open, then open it now.
Click New on the Actions toolbar.
2. In the Provide Information for this View dialog box, enter
Unachieved Gold Level Responses as the name of the view. Click
OK.
3. Click Add Columns, select the following columns, then click OK:
a. Case Number
b. Response Time
c. Severity
d. Owner
e. Responsible Contact
14. Click Save and Close on the Case's Forms and Views.
15. Because Case is already selected on the Customize Entities list, click
Publish to publish all Case customizations.
Perform the following steps to publish the customizations and test the results:
NOTE: The schema name is prefixed by the value defined in the System
Settings’ Customization tab. The default prefix setting is “new_”. You can
change the prefix at any time and it can be any alphanumeric value except
“MSCRM.”
• Areas showing this Entity. This parameter allows you to select the
areas in which the entity must appear within the Navigation Pane.
The following options are available:
– Workplace
– Sales
– Marketing
– Customer Service
– Settings
Relationship section
Once these steps are completed, you can then configure the custom entity by
configuring its attributes, icons, form, views, relationships, mappings, and
messages. Unlike the custom entity itself, these objects must be published once
they have been configured.
The final step in the entity creation process includes defining the security
permissions to access the entity. You must add the appropriate privileges to each
security role that requires access to the entity. Updating custom entities within
security roles is examined in the next section.
Before users are able to work with the custom entity, their appropriate security
roles need to be modified to set the access levels for the specific privileges
pertaining to the entity. If you want to implement an entity for a specific
Business Unit, you must create one or more custom security roles in that
Business Unit that allow users to access the entity. These custom roles must then
be assigned to the appropriate user accounts.
For more information on configuring security roles, refer to the training titled
Configuring Security.
Entity Icons
Microsoft Dynamics CRM assigns every custom entity the same generic icon. If
you want to customize the application by displaying a unique icon for a custom
entity, you can upload graphic files to replace the default icons.
The following types of icons can be customized for each custom entity:
• Icon in Web application. This icon is visible within views for the
custom entity. The icon must be:
– 16x16 pixels in size
– In .gif format
• Icon in Entity Forms. This icon is visible on the entity's form. The
icon must be:
– 66x48 pixels in size
– In .gif format
NOTE: All image files cannot be larger than 10 KB in size, and they must have
transparency for best results.
1. In the Customize Entities pane, select the custom entity, click More
Actions on the Actions toolbar, and then click Update Icons.
2. In the Icon in Web application section, click Browse and select the
icon.
3. In the Shortcut icon in Microsoft Dynamics CRM client for
Outlook section, click Browse and select the icon.
4. Click OK. The Unpublished Icon is updated and is displayed for the
unpublished entity. When you publish customizations, the Published
Icon is automatically updated to your new icon.
Any entity that is referenced by another entity cannot be deleted until the
references to it are removed. For example, if your custom entity is the primary
entity in a relationship, the related entity will have a Relationship Attribute that
may be displayed as a lookup field on the related entity form. Your custom entity
can only be deleted after the lookup field is removed from the related entity form
and the related entity is published.
Scenario
Adventure Works Cycle sells their products through a network of resellers. These
resellers place orders to Adventure Works Cycle on behalf of their customers.
Adventure Works Cycle fulfills the orders and provides service after the sale.
Because of the 1-to-Many relationship between Resellers and Accounts,
Adventure Works has decided to create a custom “Reseller” entity to separate the
resellers from their Customer records.
The Reseller entity will be associated with several other system and custom
entities, but the first step is to create the entity.
Goal Description
The Reseller entity will be created according to the specification in the table
titled Reseller Entity Specification.
The Reseller entity will have the additional attributes described in the table titled
Reseller Entity Attributes.
Step by Step
Perform the following steps to create a new entity and add entity attributes.
In the previous demonstration, the prefix for new entities and attributes was
changed to ‘test’. Adventure Works has requested that for this project the prefix
be changed back to ‘new’.
1. Click the Attributes side tab to view the attributes for the entity.
2. For each of the Attributes in the next table
3. Click New.
a. Enter the Attribute information.
b. Click Save and Close.
1. Because changes were made to the Reseller's form and views, you
need to publish the Reseller customizations.
2. View the Resellers entity from the Sales area.
3. Create a new Reseller record.
You explain that CRM can be used for event management by simply adding a
new custom entity to the Microsoft Dynamics CRM platform. You suggest the
entity be named “Events”, and explain how it can be customized with required
fields, it can use the same customization tools as the rest of Microsoft Dynamics
CRM, and it can even be linked to other CRM “people” entities such as Leads
and Contacts. The customer likes your approach for creating a custom entity and
provides you with a list of fields they want included.
Goal Description
Adventure Works has submitted the following list of information that must be
tracked for each event. Accept all default properties for each attribute except for
those mentioned below:
• Update the Active Event view to include the columns: Start date,
Location, and Owner. The columns should appear in the following
sequence: Name, Location, Start Date, Owner, and Created On.
Expand the width of the Start Date and Time column to 125px.
• Import a new graphic file to replace the default custom entity icon
for the Event entity. The graphic files are located in the following
folder:
C:\Class Materials\Customization\Ch.7
• Update the Marketing Manager role to provide full permissions for
this custom entity. Update the Marketing Representative role to
provide Organization Read access only for the Event entity.
• Test the functionality of Events.
– Log on as Patricia San Juan (username = patricia; password =
Pa$$w0rd), who is assigned the Marketing Manager role. Verify
that Patricia can access and update the Events entity. Create two
event records.
– Log on as Gail Erickson (username = gail; password =
Pa$$w0rd), who is assigned the Marketing Representative role.
Verify that Gail can view the events that Patricia just created.
Also verify that Gail cannot create or update an event.
Challenge Yourself
Based on the instructions in the Goal Description, perform the following steps to
complete this lab:
Create a custom entity named “Event” that has the properties outlined in the Goal
Description.
Add the custom attributes specified in the Goal Description to the Event entity.
1. For the Event entity, select Attributes and create a new attribute.
2. In the New Attribute form, enter Start Date and Time as the
Display Name. Enter the remaining fields as specified in the Goal
Description.
3. Save the record and open a new one. Repeat for each attribute listed
in the Goal Description. Apply the specific properties for each
attribute as defined in the list.
Update the Active Events view to include the columns Start date, Location, and
Owner. Update the view based on the instruction in the Goal Description.
1. In the Event's Forms and Views, open the Active Events view.
2. Add the following fields to the view: Location, Owner, and Start
Date and Time. Click OK.
3. Using the green arrows, rearrange the columns in the following
sequence: Name, Location, Start Date, Owner, Created On.
4. Change the width of the Start Date and Time column to 125px.
5. Save the view.
6. Publish the Event entity.
Import a new graphic file to replace the default custom entity icon for the Event
entity. Publish customizations for the Event entity.
1. In the Customize Entities pane, select the Event entity and click
More Actions on the Actions toolbar. Click Update Icons.
2. For each icon type, browse to the folder location specified in the
Goal Description and select the corresponding icon.
3. Publish the Event entity.
Step by Step
Perform the following steps to complete this lab:
Create a custom entity named “Event” that has the properties outlined in the Goal
Description.
Add the custom attributes specified in the Goal Description to the Event entity.
1. The Event entity should be open after saving it in the prior step.
2. In the Details pane, click Attributes.
3. Click New on the Action toolbar.
4. In the New Attribute form, enter Start Date and Time as the
Display Name.
5. Tab into the Name field. Note how the schema name is pre-filled
with new_startdateandtime. Do not change this default schema name.
6. In the Requirement Level field, select Business Required.
7. In the Type field, select datetime.
8. In the Format field, select Date and Time.
9. Click Save and New.
10. Repeat for each attribute listed in the Goal Description. Apply the
specific properties for each attribute as defined in the list. Click Save
and Close following the final attribute.
1. The Event entity form will still be open after closing the final
attribute window. If the Event entity form is not open, then open it
now.
2. Click Forms and Views.
3. Double-click Form.
4. Add each of the new attributes to the General tab.
5. Use the green arrows in the Common Tasks pane to rearrange the
fields to match the form layout displayed in the Goal Description.
6. Click Save.
7. On the menu bar, click Preview, then click Create Form to preview
the changes.
8. If the customizations are correct, close the Create Form, and then
click Save and Close.
9. Click Actions on the menu bar, then click Publish.
Update the Active Events view to include the columns Start date, Location, and
Owner. Update the view based on the instruction in the Goal Description.
1. The Event entity should be open after saving it in the prior step.
2. In the Details pane, click Forms and Views.
3. Double click the Active Events view to open it.
Import a new graphic file to replace the default custom entity icon for the Event
entity. Publish customizations for the Event entity.
1. In the Customize Entities pane, select the Event entity and click
More Actions on the Actions toolbar. Click Update Icons.
2. In the Select New Icons dialog box, specify the icon file for three of
the icon types. For each icon, click Browse, navigate to the folder
specified in the Goal Description, and select the corresponding icon
file (based on the icon size). Click OK.
3. On the Customize Entities pane, select the Event entity and click
Publish on the Action toolbar.
Summary
This training introduced customizing the Microsoft Dynamics CRM schema by
customizing system and custom entities. Custom entities are a powerful feature
that allows a person without programming skills to build entirely new
functionality into Microsoft Dynamics CRM. This capability demonstrates the
design focus of affordable adaptability and provides alternatives to purchasing
additional systems, developing extensions or overloading existing entities.
2. The Organization wants to use a custom icon for the Account entity. Is it
possible to do this in a supported way? Choose the best answer.
( ) Yes. While viewing the Account entity, on the Actions menu select
"Update Icons..."
( ) No. The image is embedded in a .dll file
( ) No. Modifying system icons is not supported.
( ) None of the above.
3. Which of the following is not true when you create a new custom entity?
( ) Several relationships are created with the User entity.
( ) A new filtered view is created in SQL Server
( ) All users can immediately begin to use the new entity.
( ) There is no need to publish custom entities.
5. Microsoft Dynamics CRM allows you to work with which types of entities?
(Select all that apply.)
( ) System
( ) Native
( ) Custom
( ) Customizable
1.
2.
3.
Solutions
Test Your Knowledge
1. When discussing Microsoft Dynamics CRM entities, what kind of ownership
does the Product entity represent?
( ) user-owned
(•) organization-owned
( ) customer-owned
( ) business unit-owned
2. The Organization wants to use a custom icon for the Account entity. Is it
possible to do this in a supported way? Choose the best answer.
( ) Yes. While viewing the Account entity, on the Actions menu select
"Update Icons..."
( ) No. The image is embedded in a .dll file
(•) No. Modifying system icons is not supported.
( ) None of the above.
3. Which of the following is not true when you create a new custom entity?
( ) Several relationships are created with the User entity.
( ) A new filtered view is created in SQL Server
(•) All users can immediately begin to use the new entity.
( ) There is no need to publish custom entities.
MODEL ANSWER - This “tags” the entities and attributes to tie them to the
5. Microsoft Dynamics CRM allows you to work with which types of entities?
(Select all that apply.)
(√) System
( ) Native
(√) Custom
(√) Customizable
Introduction
The most critical element in planning a custom entity is understanding the
relationships that link entities together. Entity relationships represent how entities
are related to each other within the Microsoft Dynamics CRM platform. The
Microsoft Dynamics CRM customization tools make it easy to create custom
entities with no programming experience, but the concepts behind establishing
the relationships must be understood if the custom and system entities are to
work together.
Your custom entities are more useful if you relate them to other entities in a
similar way. And although some of the system entities already have relationships,
you can create additional relationships that have not been defined out-of-the-box.
You can also change the behavior of these relationships.
NOTE: See the Microsoft Dynamics CRM SDK for APIs that allow you to
determine if an entity is available for a given relationship type.
1-to-Many Relationships
1-to-Many relationships (1:N) are relationships between a primary entity and a
related entity. In other words, a given primary entity record can be linked to
multiple records within the related entity. The relationship is maintained by a
relationship attribute that is automatically stored by the platform on each related
entity record.
You can create a new 1:N relationship from either the primary or related entity.
The terminology used when creating this type of relationship depends on if you
are creating the relationship from the related entity or the primary entity.
From a technical database standpoint, there is no difference between 1:N and N:1
relationships. The difference is really from a terminology perspective. In both
cases, the primary entity is the “1” and the related entity is the “Many”.
For example, an organization creates a custom Reseller entity for tracking the
reseller who sells their products to each Account. This is a typical 1:N
relationship; that is, each reseller sells to multiple accounts, but any given
account only has one reseller that sells to it.
• If you create this relationship from the Reseller entity, you create a
1:N relationship.
• If you create this relationship from the Account entity, you create a
N:1 relationship.
Technically, the 1:N relationship is the only relationship created between the two
entities. However, the terminology used to describe the relationship from a user
interface standpoint depends upon which entity is the focal point of the
discussion.
Viewing the custom entity shows all Contacts associated with that
group and allows easy creation of new Contacts associated with that
group. However, this can only allow a single relationship to be
established, so the custom primary entity must represent something
that the related entity has an exclusive relationship with.
• 1 to Many, Custom to Custom. You can create relationships
between your custom entities. However, only one relationship can be
a parental relationship.
• 1 to Many, Custom to Activity/Note. This common relationship can
be created automatically when you select to have Notes and
Activities associated with a custom entity. You can only create this
relationship when the entity is created.
Many-to-Many Relationships
Many-to-Many (N:N) relationships can be created in Microsoft Dynamics CRM
using any combination of eligible system and custom entities. Not every system
entity can be included in a N:N relationship. Therefore, to create a N:N
relationship, both entities must be eligible for N:N relationships.
There are two ways in which you can create a N:N relationship in Microsoft
Dynamics CRM. Each of the following methods offers its own unique benefits:
The intersect entity is created by the platform at the time the entity relationship is
defined. Users merely provide the names of the related entities and the table
relationship is built for them by the platform. Because the intersect entity is
“hidden” from implementers:
Create, update, and delete permissions for the intersect entity are controlled by
the related entity's Append and Append To privileges. There are no privileges
associated directly with the intersect entity.
The benefit of creating a N:N relationship in this manner is that you can also add
custom attributes on the intersect entity. In a native N:N relationship, the
intersect entity is hidden from the customizer and custom attributes cannot be
maintained on this entity.
For the system customizer, the decision as to which type of N:N relationship to
create must be based on whether the organization requires tracking of
information related to the intersect entity.
EXAMPLE: Adventure Works Cycle creates a custom entity called Event that is
used to track marketing events. They also want to associate their Contacts with
Events. They want the ability for each Contact to be associated to multiple
Events, and for each Event to have associated multiple Contacts.
In addition, they want to track specific registration information for each
Contact associated with an Event. Tracking this registration information is a
key requirement for their organization; therefore, Adventure Works has decided
to manually create this N:N relationship. Adventure Works accomplishes this by
creating a custom entity called Registration. This entity acts as the intersect
entity in their manually created N:N relationship.
From within the Registration entity, Adventure Works creates a new N:1
relationship to Contact. From still within the Registration entity, Adventure
Works creates a second N:1 relationship to Event.
By using the Registration entity as a de-facto intersect entity, Adventure Works
is able to track registration information related to both Events and Contacts
(for example, the contact’s registration status for an event, who took their
registration information, how they registered, if they have any special
requirements at the event, and so on). Creating two N:1 relationships that share
a common intersect entity in this manner effectively becomes a N:N
relationship.
Self-Referential Relationships
A self-referential relationship is a relationship from one entity to itself. Self-
referential relationships are frequently used to create parenting hierarchies.
Examples of self-referential relationships include:
Relationship Behavior refers to the actions that are performed on related entities
when actions are performed on the primary entity. For example, when re-
assigning an account to a new sales representative, you must determine if you
want:
The following figure describes the actions that affect 1:N relationship behavior.
Cascading Rules
For each action affected by the relationship, the rules may be applied separately
or as a group according to some pre-defined types of behavior. These rules are
said to “cascade” down the relationship, affecting not only the primary entity but
also each of its related entities.
Types of Behavior
Typically, you do not have to set the cascading rule for each of the actions
defined in a 1:N relationship. Microsoft Dynamics CRM provides a number of
pre-defined types of behavior. When selecting a pre-defined type of behavior, the
appropriate cascading rules are set for you. The figure titled Pre-defined Types of
Behavior describes these behavior types.
You can use the Configurable Cascading type to set the behavior for each type of
action. The primary entity is considered a “parent” of the related entity when any
of the actions use anything other than the “Cascade None” cascading rule.
Use the following guidelines to determine when to use each behavior type:
At this point, the selected 1:N, N;1, or N:N relationship form is returned. The
following lessons examine the properties you define when creating an entity
relationship. Some of the properties are dependent upon if you create a 1:N or
N:N relationship. Other properties are common to both relationship types.
Relationship Behavior
• Entity Name. This field is prefilled and disabled for the Current
Entity, which is the entity from which the N:N Relationship option
was selected. For the Other Entity, select the entity to which the
relationship applies.
Relationship Definition
• Name. This is the schema name for the relationship intersect entity.
Deleting Relationships
Relationships can be deleted in two ways.
Deleting the relationship permanently removes the data that described the
relationship. This includes the following for each relationship type:
Scenario
Adventure Works Cycle sells their products through a network of resellers. These
resellers place orders to Adventure Works Cycle on behalf of their customers.
Adventure Works Cycle fulfills the orders and provides service after the sale.
Because of the 1-to-Many relationship between Resellers and Accounts, you
created a custom “Reseller” entity in the prior demonstration that separates the
resellers from their Customer records. Now that the Reseller entity has been
created, your next step is to create the 1:N relationship with the Account entity.
Goal Description
The goal of this demonstration is to create a 1:N custom-to-system relationship
with the Reseller as the primary entity and Account as the related entity. This
relationship must be a referential relationship. The only cascading action is that
the link on the Account must be removed if the related Reseller is deleted.
Step by Step
Perform the following steps to create a new 1:N relationship, expose the
relationship attribute on the related entity form, and test the relationship:
• Relationship Attribute:
– Display Name = Reseller
– Type = lookup
– Name = new_ResellerID
– Requirement Level = No Constraint
– Description = The reseller who serves the account
Navigation Pane for Primary Entity
• Relationship Behavior
– Type of Behavior = Referential
– Assign = Cascade None
– Reparent = Cascade None
– Share = Cascade None
– Delete = Remove Link
– Unshare = Cascade None
– Merge = Cascade None
1. From the Navigation Pane, click Sales, and then click Account.
2. Click the Active Accounts view.
3. Open an account record and associate it with a reseller.
4. Open the reseller and confirm that the account is available from the
Accounts Associated View.
5. Create a new account from the Accounts Associated View. Notice
that the reseller is pre-populated.
This lab is dependent upon completion of the previous lab (Creating a Custom
Event Entity).
Scenario
Adventure Works Cycle likes their new entity for coordination of Events. Using
a single application, CRM users can now manage customers and events.
You explain that it will not be a problem for Microsoft Dynamics CRM to deliver
this functionality, which is known effectively as a many-to-many relationship;
that is, many Contacts associated with many Events.
Goal Description
During your planning session, Adventure Works Cycle tells you they want to
track the following registration information for each Contact associated with an
Event:
Adventure Works also wanted to add a field to store who recorded the
registration information and the date the Contact was registered. However, you
noted that this information is already being tracked. How is this information
tracked in the Registration entity?
Perform the following steps to test this functionality once the customizations
have been applied:
• Create a sample Event.
• Create a new Contact or open an existing Contact and set its VIP
contact code to Yes. Save the contact, and then click on Registration.
Create a new Registration record. Use the Event lookup to find and
select your new Event, and fill in the other fields.
• Register another contact for the same event. Do not make this a VIP
contact.
• Each Contact’s registration information can be viewed either from
the Event or the registered Contact.
• If the Event is deleted, all the event’s registration records are also
deleted (parental relationship).
• Create several other sample Events. Register VIP contacts for some
of the events, but leave one or two events without any contacts or
with contacts that are not VIPs.
• Test the new VIP Event Registrations view. This should be the
default view for Registrations. Verify the appropriate contacts are
displayed.
Challenge Yourself
Based on the instructions in the Goal Description, perform the following steps to
complete this lab:
Create a custom entity named “Registration” that has the properties outlined in
the Goal Description.
1. With the entity page still open for the Registration entity, create a
N:1 Relationship.
2. The Primary Entity will be Contact, and the Type of Behavior must
be Referential.
1. With the entity page still open for the Registration entity, create a
N:1 Relationships in the Details pane.
2. The Primary Entity field will be Event, and the Type of Behavior
field must be Parental.
Add the additional Registration attributes based on the instructions in the Goal
Description. The Display Name for each attribute will match its database schema
name.
1. The Registration entity window should still be open after you saved
the second N:1 relationship in the prior step.
2. Select Create a Registration Status attribute. This will be a picklist.
Add the picklist values specified in the Goal Description.
3. Create a Registration Method attribute. This will also be a picklist.
Add the picklist values from the values specified in the Goal
Description.
4. Create a Special Requirements attribute. This will be an ntext field.
5. Create a Paid To Date attribute. This will be a money field.
Update the form for the Registration entity based on the instructions in the Goal
Description.
1. The Registration entity window should still be open after you saved
the last attribute in the prior step.
2. Open the registration's Form.
3. Add the following fields: Contact, Created By, Created On, Event,
Modified By, Modified On, Paid to Date, Registration Method,
Registration Status, and Special Requirements.
4. Remove the Name field.
5. Select the Special Requirements field and change its properties. In
the Formatting tab, change the Number of Rows to 3.
6. Use the green arrows to rearrange the fields as you feel they should
appear. The only stipulation from Adventure Works is that the Event
and Contact fields appear on the first row.
7. Preview the Create Form to verify the form appears as it should.
8. Save the changes and publish the customizations.
Update the Associated View on the Registration entity based on the instructions
in the Goal Description.
1. The Registration Forms and Views window should still be open after
you saved the form in the prior step.
2. Open the Registration Associated View.
3. Remove the Name column.
4. Add the following columns: Contact, Event, and Registration Status.
5. Use the green arrows to position the Contact and Event columns to
the left most position on the line.
6. Change the width of the Contact column to 150px. Repeat for the
Event column.
7. Save the changes.
8. Repeat these steps for the Active Registrations view.
9. Publish the customizations.
Create a new view for the Registration entity titled VIP Event
Registrations.
1. Create an Event.
2. Open an existing Contact and set its VIP contact code to Yes. Save
the contact, and then create a new Registration record for the contact.
Use the Event lookup to find and select your new Event, and fill in
the other fields with data of your choice.
3. Open another contact and register him or her for the same event. Do
not make this a VIP contact.
4. Create several other sample Events. Register VIP contacts for some
of the events, but leave one or two events without any contacts or
with contacts that are not VIPs.
5. From the Sales menu, select Registrations. The VIP Event
Registration view should be displayed as the default view. Verify the
appropriate Contacts are displayed.
6. From the Sales menu, select Events. Each of the events that you
created should be displayed.
7. Open the first event record that you created, and select Registrations.
This displays the Registration Associated View that you modified
earlier. The contacts that you registered for the event should be
displayed.
8. To test the parental relationship between Events and Registrations,
delete this first event that you created.
9. From the Sales menu, select Registrations. Select the Active
Registrations view. No registration records should exist for the event
that you deleted.
Step by Step
Perform the following steps to complete this lab:
Create a custom entity named “Registration” that has the properties outlined in
the Goal Description.
9. Select the option to create a relationship with Notes, but not with
Activities.
10. Select the Sales display area.
11. Click the Primary Attribute tab.
12. In the Requirement Level field, select No Constraint.
13. Click Save. This leaves the Entity page open for the new
Registration entity.
1. With the entity page still open for the Registration entity, click N:1
Relationships in the Details pane.
2. On the N:1 Relationships page, click New Many-to-1 Relationship.
3. In the Primary Entity field, select Contact from the drop down list.
This automatically fills in the schema Name for this relationship.
4. In the Relationship Attribute section, enter Contact as the Display
Name. When you tab out of this field, the schema name is
automatically created for you.
5. Do not change any of the default values for the remaining fields. The
Type of Behavior defaults to Referential, which was the last
requirement in the Goal Description.
6. Click Save and Close.
1. With the entity page still open for the Registration entity, click N:1
Relationships in the Details pane.
2. On the N:1 Relationships page, click New Many-to-1 Relationship.
3. In the Primary Entity field, select Event from the drop down list.
This automatically fills in the schema Name for this relationship.
4. In the Relationship Attribute section, enter Event as the Display
Name. When you tab out of this field, the schema name is
automatically created for you.
5. In the Type of Behavior field, select Parental.
6. Click Save and Close.
Add the additional Registration attributes based on the instructions in the Goal
Description.
1. The Registration entity window should still be open after you saved
the second N:1 relationship in the prior step.
2. In the Details pane, click Attributes.
3. On the Attributes window, click New.
4. Create a Registration Status attribute. In the Display Name field,
enter Registration Status.
Update the form for the Registration entity based on the instructions in the Goal
Description.
1. The Registration entity window should still be open after you saved
the last attribute in the prior step.
2. In the Details pane, click Forms and Views.
3. Double-click on the Form.
4. Click Add Fields.
5. Select the following fields: Contact, Created By, Created On,
Event, Modified By, Modified On, Paid to Date, Registration
Method, Registration Status, and Special Requirements. Click
OK.
6. Select the Name field and click Remove. Click OK to confirm the
removal.
7. Select the Special Requirements field and click Change
Properties. Click the Formatting tab and change the Number of
Rows to 3. Click OK.
8. Use the green arrows to rearrange the fields as you feel they should
appear. The only stipulation from Adventure Works is that the Event
and Contact fields appear on the first row.
9. Click Preview on the menu. Click Create Form. Close the Preview
form.
10. Click Save and Close.
11. On the Registration entity window, click Actions on the menu and
click Publish.
1. The Registration Forms and Views window should still be open after
you saved the form in the prior step.
2. Double-click Registration Associated View.
3. Select the Name column and click Remove. Click OK to confirm
the removal.
4. Click Add Columns. Select the Contact, Event, and Registration
Status. Click OK.
5. Use the green arrows to position the Contact and Event columns to
the left most position on the line.
6. Select the Contact column and click Change Properties. Select
150px and click OK. Repeat for the Event column.
7. Click Save and Close.
8. Repeat these steps for the Active Registrations view.
9. Leave the Forms and Views window open in order to complete the
next set of steps.
Create a new Registration view titled VIP Event Registrations. Make this
the default Registration view.
12. Click Enter Value. Click on the Ellipsis button. Select Active and
click the >> arrow to move the value to the Selected Values
column. Click OK.
13. Hold your mouse over the new Select field and click the drop
down arrow. In the Related entities list, click Contact.
14. Under the Contact row, hold your mouse over the Select field and
click the drop down arrow. Select the VIP contact field.
15. Click Enter Value. Click on the Ellipsis button. Select Yes and
click the >> arrow to move the value to the Selected Values
column. Click OK.
16. Click OK to close the Edit Filter Criteria window.
17. Click Configure Sorting.
18. Select the Event column and click OK (ascending is the default
sort order).
19. Click Save and Close.
20. On the Registration Forms and Views window, select the VIP
Event Registrations view that you just created.
21. Click More Actions on the Action toolbar and click Set Default.
22. Click Save and Close on the Registration Forms and Views
window.
23. On the Customize Entities window, the Registration entity is
already selected. Click Publish on the Action toolbar.
1. Create an event. From the Navigation Pane, click Sales, then click
Events.
2. Click New. Fill in information for an event of your choice. Click
Save and Close.
3. From the Sales menu, click Contacts. Open an existing contact
record.
4. Click on the Details tab and click Yes for the VIP contact field.
Click Save.
5. From within the Contact record, click Registrations in the Details
Pane. Click New Registration on the Action toolbar.
6. Click the lookup icon for the Events field. In the Look Up Records
dialog box, select the event that you just created. Click OK.
7. Fill in the remaining fields on the Registration form. Click Save and
Close.
8. Open another contact record and register him or her for the same
event. Do not make this a VIP contact.
9. Create several other sample Events. Register VIP contacts for some
of the events, but leave one or two events without any contacts or
with contacts that are not VIPs.
10. From the Sales menu, click Registrations. The new VIP Event
Registrations view should be displayed as the default view for
Registrations. Verify the appropriate contacts are displayed.
11. From the Sales menu, click Events. Each of the events that you
created should be displayed.
12. Open the first Event record that you created. In the Details
pane, select Registrations. This displays the Registration Associated
View that you modified earlier. The contacts that you registered for
the event should be displayed. Click Save and Close.
13. To test the parental relationship between Events and Registrations,
select this first Event that you created and click the Delete icon on
the Action toolbar. Click OK to confirm the deletion.
14. From the Sales menu, click Registrations. Click the View drop
down arrow and select the Active Registrations view. No
registration records should exist for the event that you deleted.
After reviewing the existing Account schema, you realize that a picklist attribute
already exists called ‘Relationship Type’. While you could add an extra picklist
value called ‘Distributor’, this prohibits Adventure Works from modeling the
situation where a Distributor can also be a Customer.
You also discover that distributors are assigned geographic regions as their
territories. Therefore, you suggest adding a new custom entity titled Sales
Region. A distributor can cover multiple regions, and a region can have multiple
distributors. Each Sales Region has some information that needs to be tracked
separately, such as regulations, dates, fees, contacts, description, notes, and
activities. However, because no additional information needs to be tracked
regarding the relationship between Accounts and Sales Regions, you suggest to
the planning team that this is an excellent opportunity to create a native N:N
relationship using the system customization tools.
Although Microsoft Dynamics CRM has an existing entity called ‘Territory’ that
is already on the Account entity, Adventure Works want to differentiate between
Territory and Sales Region. “Territory” will be used by the inside sales team to
define their geographic regions, and “Sales Region” will be used to define the
geographic territory assigned to a Distributor.
Goal Description
In your planning sessions with Adventure Works, you have outlined the
following changes that must be made to satisfy their business requirements:
• Add the Regulation Details attribute to the preview form and change
it to display in two columns instead of one.
• Publish all the entities that were changed.
• To test this functionality, create some Sales Regions and make some
assignments.
Challenge Yourself
Based on the instructions in the Goal Description, perform the following steps to
complete this lab:
1. In Sales Region's Forms and Views window, open the Sales Region
Form.
2. Add the following fields to the form: Application Fee, Created By,
Created On, Description, Modified By, Modified On, Regional
Chairman, Regulation Details, and Renewal Date.
3. Change the formatting property of the Regulation Details field to
Two columns.
4. Use the green arrows to rearrange the fields to your satisfaction.
5. Save the form.
1. In Sales Region's Forms and Views window, open the Active Sales
Regions view.
2. Add the following columns to the view: Owner, Regional Chairman,
and Renewal Date.
3. Remove the Created On column.
4. Change the column width of the Name column to 200px.
5. Change the column width of the Regional Chairman column to
125px.
6. Save the view.
7. Open the Sales Region Preview form.
8. Add the Regulation Details field to the form, then change its
formatting property to Two columns.
9. Save the view, then save Sales Region Forms and Views.
10. Publish all customizations.
1. Navigate to Sales and then Sales Regions. If Sales Regions does not
appear in the Sales menu, close Internet Explorer and then re-open it.
Navigate back to Sales, and the Sales Regions should appear.
2. Create a new sales region titled Western Region.
3. Set the Regional Chairman to Alan Waxman.
4. Save the record.
5. Add three existing Accounts for this Sales Region.
6. Save the region, then create a new sales region titled Eastern Region.
7. For the Regional Chairman, create a new Contact record with
your name as the contact name. Enter Boston as the City.
8. Search for your name in the Look Up Records dialog box. Select
your contact record when it appears.
9. Save the Sales Region form.
10. Add an Account to the region. In the Look Up dialog box, search all
accounts and select several that should be assigned to this region.
11. Save the region.
12. Navigate back to Sales, and then Accounts.
13. Open an account that you previously assigned to a sales region.
14. Select the Sales Regions assigned to the account to view the account
that you previously assigned.
Step by Step
Perform the following steps to complete this lab.
1. The Account Forms and Views window should still be open after
publishing the Account in the prior step.
2. Click New.
3. In the Provide Information for this View dialog box, enter Active
Distributors Only as the view name. Click OK.
4. Click Edit Filter Criteria.
5. Hold your mouse over the Select link and click the drop down arrow.
Select Status Reason.
6. Hold your mouse over the Enter Value link and click the Ellipsis
button. Select Active and click the >> arrow to move the value to
the Selected Values column. Click OK.
7. Hold your mouse over the Select link and click the drop down arrow.
Select Relationship Type.
8. Hold your mouse over the Enter Value link and click the Ellipsis
button. Select Customer and click the >> arrow to move the value
to the Selected Values column. Click OK.
9. Hold your mouse over the Select link and click the drop down arrow.
Select Distributor.
10. Hold your mouse over the Enter Value link and click the Ellipsis
button. Select Yes and click the >> arrow to move the value to the
Selected Values column. Click OK.
11. Click OK.
12. Click Add Columns.
13. Select the Address 1:City and Owner fields. Click OK.
14. Click Save and Close.
15. Click Save and Close on the Forms and Views window.
16. The Account entity is already selected on the Customize Entities
window. Select Publish from the Actions toolbar.
1. From the Navigation Pane, click Sales, and then click Accounts.
2. Double-click Bike Products and Accessories to open it.
3. Click the Relationship Type drop down arrow and select Customer.
4. Click Yes on the Distributor field.
1. The Sales Region entity window should still be open following the
last attribute that you added in the prior step.
2. Click N:N Relationships in the Details Pane.
3. Click New Many-to-Many Relationship.
4. For the Current Entity, select Use Plural Name as the Display
Option and accept the default value of Details as the Display Area.
5. For the Other Entity, click the drop down arrow for the Entity Name
and select Account.
6. Select Use Plural Name as the Display Option and accept the
default value of Details as the Display Area.
7. Accept the default values for the remaining fields. Click Save and
Close.
1. The Sales Region entity window should still be open following the
N:N relationship you created in the prior step.
2. Click N:1 Relationships in the Details Pane.
3. Click New Many-to-1 Relationship.
4. In the Primary Entity field, select Contact from the drop down list.
5. In the Relationship Attribute section, enter Regional Chairman as
the Display Name.
6. In the Relationship Behavior section, select Referential as the Type
of Behavior.
7. Accept all other default values, including Use Plural Name as the
Display Option, and Details as the Display Area.
8. Click Save and Close.
1. The Sales Region entity window should still be open following the
N:1 relationship you created in the prior step.
2. Click Forms and Views in the Details Pane.
3. Double-click Form to open the Sales Region form.
4. Click Add Fields.
5. In the Add Fields dialog box, select the following fields:
Application Fee, Created By, Created On, Description, Modified
By, Modified On, Regional Chairman, Regulation Details, and
Renewal Date. Click OK.
6. Select the Regulation Details field and click Change Properties.
7. Select the Formatting tab and select the Two columns option. Click
OK.
8. Use the green arrows to rearrange the fields to your satisfaction.
9. Click Save and Close.
1. The Sales Region's Forms and Views window should still be open
after updating the form in the prior step.
2. Double-click the Active Sales Regions view to open it.
3. Click Add Columns.
4. In the Add Columns dialog box, select Owner, Regional Chairman,
and Renewal Date. Click OK.
5. Select the Created On column and click Remove. Click OK to
confirm the deletion.
6. Select the Name column and click Change Properties. Change the
column width to 200px. Click OK.
7. Select the Regional Chairman column and click Change
Properties. Change the column width to 125px. Click OK.
8. Click Save and Close.
9. Double-click Preview to open the Sales Region's Preview form.
10. Click Add Fields.
11. In the Add Fields dialog box, select Regulation Details and click
OK.
12. Select the Regulation Details field and click Change Properties.
13. Select the Formatting tab and select Two columns. Click OK.
14. Click Save and Close.
15. Click Save and Close on the Sales Region Forms and Views
window.
16. On the Customize Entities window, click More Actions and click
Publish All Customizations.
1. From the Navigation Pane, click Sales, and then click Sales Regions.
If Sales Regions does not appear in the Sales menu, close Internet
Explorer and then re-open it. Navigate back to Sales, and the Sales
Regions should appear.
2. Click New.
3. Enter Western Region as the Sales Region Name.
4. Click on the lookup icon for the Regional Chairman field. In the
Look Up Records dialog box, select Alan Waxman. Click OK.
5. Click Save (not Save and Close)on the Sales Region form.
6. Click Accounts in the Details pane.
7. Click Add Existing Account.
8. In the Look Up Records dialog box, click the Search icon to display
all Accounts.
9. Select an account and click the >> arrow to move it to the Selected
Records column. Repeat this step for several additional accounts.
Click OK.
10. Click Save and New.
11. Enter Eastern Region as the Sales Region Name.
12. Click on the lookup icon for the Regional Chairman field. In the
Look Up Records dialog box, select New.
13. Create a new Contact record. Enter your name in the contact name
fields, enter Boston as the City, and click Save and Close.
14. In the Look Up Records dialog box, enter your name in the Search
field at the top of the form and click the Search icon. Your contact
record should appear. Click OK.
15. Click Save (not Save and Close)on the Sales Region form.
16. Click Accounts in the Details pane.
17. Click Add Existing Account.
18. In the Look Up Records dialog box, click the Search icon to display
all Accounts.
19. Select an account and click the >> arrow to move it to the Selected
Records column. Repeat this step for several additional accounts.
Click OK.
20. Click Save and Close.
21. From the Navigation Pane, click Sales, and then click Accounts.
22. Double-click an Account that you previously assigned to a sales
region.
23. In the Details pane, click Sales Regions. The sales region to which
the account was assigned should be displayed.
Entity Mapping
Entity mapping facilitates data entry when creating new records that are related
to a parent record. When a form for new record that is not associated with a
parent record is opened, all the fields in the form are blank. If there are any
required relational constraints to another entity, those fields must be manually
filled in before the record can be saved. This is why it is usually easier for the
user to add new records from the Parent record.
For example, when an opportunity is created from within an existing account, the
Potential Customer and Price List fields are pre-populated with the account's
information because a mapping exists between Account and Opportunity. The
mapping pre-populates defined fields in a new record with information from the
parent object. Users can overwrite any of the mapped values before saving the
record.
Microsoft Dynamics CRM allows the mapping of one source attribute to many
attributes in the target entity. For example, address fields in an Account can be
mapped to both the Billing Address and the Shipping Address fields on an Order.
Limitations of Mapping
The following limitations are associated with attribute mapping:
Finally, it is not necessary to explicitly map the Owner field. The application will
automatically map this attribute.
Mapping Picklists
If both attributes are picklists, special consideration must be given to their
corresponding value mappings. Microsoft Dynamics CRM automatically assigns
an index value to each picklist entry. The index value assigned to each entry
cannot be changed. When a picklist entry is deleted, the assigned index value
associated with that entry cannot be reused.
In each attribute, the picklist entry has a corresponding text display value. When
picklists are mapped, the index value of each picklist entry is transferred to the
target record, regardless if they share the same display value, or if the value of
the parent attribute is valid in the target picklist. If you map picklist values, you
must manually confirm that the values and display values of the two fields match.
In the figure titled Mapping Non-Equivalent Picklists, the picklist attributes from
Attribute A can be mapped to Attribute B. But because the index values and
descriptions are not identical, the mapping can cause inaccurate or bad data to be
entered into Attribute B. For example, if the Attribute A value for “Cold” was
mapped to Picklist Attribute B, the index value “4” is displayed because there is
no corresponding display value.
This feature is provided as a convenience when there are a large number of fields
to map and they share the same naming conventions. Rather than manually
mapping each attribute, they can be automatically mapped. Any unwanted
mappings can then be removed.
NOTE: Care must be taken when using this feature. The convenience it
provides applies to a specific situation and it will override any existing
mappings.
Add a Mapping
Perform the following steps to map attributes between two entities:
Scenario
Adventure Works Cycle wants to streamline data entry by using mapping. They
have identified that most Accounts associated with a Retailer are in the same
Postal Code as the reseller. If the Postal Code value of the Reseller were copied
to any new account record created from it, the user does not need to enter that
data.
Goal Description
The goal of this demonstration is to map the Postal Code field from the Reseller
entity to the Postal Code field on the Account entity.
Step by Step
Perform the following steps to create and test a new mapping:
Step 2: Test
1. Open a Reseller record that has data in the postal code field.
2. Click the Accounts side tab.
3. Click New Account from the Accounts Associated View.
4. Note that the Account Zip/Postal Code field has the value from the
Reseller Postal Code field.
Adventure Works Cycle likes the fact that in Microsoft Dynamics CRM, many
fields in Leads are copied to Accounts, Contacts, and Opportunities when a lead
is converted to each of these entities. However, Adventure Works wants to
change and expand the list of Industries, and have the correct values appear in
Accounts when the Lead is converted. The company also wants to create some
new fields in Leads for tracking prospect interests, and have them appear in
Contacts when the Lead is converted.
Goal Description
Adventure Works Cycle informs you that they want to add the industries of
Manufacturing, Leisure & Travel, and Healthcare, and eliminate the industry
listed as SIG Affiliations. They also want to track a person’s interests in Racing
and Fitness.
• For changing the Industries, make the same changes to the Industries
picklist in both Leads and Accounts.
• For tracking interests, create several new attributes in Leads for the
interests listed above. Each interest must have a format type of bit.
Place these attributes on the form using a checkbox format type and
repeat the process for Contacts.
• Find the 1:N relationship from Lead to Contact. Add mappings for
these two interest fields. When a contact is created from a lead, the
values in these two fields on the Lead record will be stored in the
Contact record.
• To test this functionality, create a new Lead that incorporates one of
these Industries and several of the Interests, and then convert the
Lead to an Account and Contact to verify that the values carry
forward to the new entities.
Challenge Yourself
Based on the instructions in the Goal Description, perform the following steps to
complete this lab:
Adventure Works Cycle wants to add the industries of Manufacturing, Leisure &
Travel, and Healthcare, and eliminate the industry listed as SIG Affiliations.
Create attributes in Leads for tracking a person’s interests in Racing and Fitness.
Each interest must have a format type of bit. Place these attributes on the form
using a checkbox format type and repeat the process for Contacts.
Find the 1:N relationship from Lead to Contact. Add mappings for these two
interest fields. In the Lead to Account relationship, the industrycode field is
already mapped between the two entities.
To test this functionality, create a new Lead that incorporates one of the new
Industry values and one or both of the Interests. Then convert the Lead to an
Account and Contact to verify that the values carry forward to the new entities.
Step by Step
Perform the following steps to complete this lab:
Adventure Works Cycle wants to add the industries of Manufacturing, Leisure &
Travel, and Healthcare, and eliminate the industry listed as SIG Affiliations.
Create attributes in Leads for tracking a person’s interests in Racing and Fitness.
Each interest must have a format type of bit. Place these attributes on the form
using a checkbox format type and repeat the process for Contacts.
6. Enter Fitness as the Display Name. Set the Type drop down arrow
and select bit. The Default Value is No.
7. Click Save and Close.
8. Click Forms and Views.
9. Double-click Form.
10. On the General tab, select the Contact Information section.
11. Click Add Fields.
12. Select the Racing and Fitness attributes that you just created. The
Details tab and Company Information section should prefilled as the
location. Click OK.
13. Select the Fitness field and click Change Properties.
14. Change the Label from Fitness to Interest in Fitness. Click the
Formatting tab. In the Control Formatting field, click the drop down
arrow and select Check box. Click OK. Repeat for the Racing field.
15. Click Preview on the menu bar to preview your changes. Close the
preview, then click Save and Close on the form.
16. Click Save and Close to close the entity.
17. Repeat these steps for the Contact entity. Add the Fitness and
Racing attributes, then expose them on the Contact form in the
Professional Information section of the Details tab.
18. On the Customize Entities window, publish the customizations for
both entities by clicking More Actions, and then clicking Publish
All Customizations.
Find the 1:N relationship from Lead to Contact. Add mappings for these two
interest fields. In the Lead to Account relationship, the industrycode field is
already mapped between the two entities.
To test this functionality, create a new Lead that incorporates one of the new
Industry values and one or both of the Interests. Then convert the Lead to an
Account and Contact to verify that the values carry forward to the new entities.
1. From the Navigation Pane, click Sales, and then click Lead.
2. Double-click Brian Johnson.
3. Select the Details tab.
4. Select Interest in Fitness.
5. In the Industry field, select Manufacturing.
6. Click Save (not Save and Close).
7. Click Convert Lead.
8. In the Convert Lead dialog box, select Account and Contact. Click
OK.
9. Click Close.
10. From the Sales menu, click Contacts.
11. Double-click Brian Johnson.
12. Select the Details tab. The Interest in Fitness checkbox should be
checked.
13. Close the Contact.
14. From the Sales menu, click Accounts.
15. Double-click Extras Sporting Goods, which is the company name
that was on Brian Johnson's Lead.
16. Select the Details tab. The Industry field should be set to
Manufacturing.
Scenario
Adventure Works Cycle wants to track some of the internal departments within
their Accounts. They want to know who the Primary Contact is within each
department and which Contacts are associated with that department. Adventure
Works also wants to maintain a current description of the department's address
and a description of the department's function.
• Department Attribute
• Department Picklist Attribute
• Departments as Accounts
Upon further examination, the project team rejected each of these proposed
solutions. They based their decisions on the following criteria:
Goal Description
During your planning meetings with the Sales Management team, you have
agreed upon making the following changes.
Department Entity
Create a new Department entity with the properties shown in the following
figure:
Add the attributes shown in the following figure to the Department entity:
Create Relationships
Expose the new Department attributes on the Department form. Then add the
Account column to the Department Lookup View as both a View column and a
Find column.
In the Contact entity, replace the text Department field with the lookup
Department field. Because the Department ID is a required field, Adventure
Works wants it located on the General tab. In the Contact Lookup view, add
Parent Customer to the Find Columns.
Create Mappings
• address1_line1 → new_street1
• address1_city → new_city
• address1_postalcode → new_postalcode
• new_street1 → address1_line1
• new_city → address1_city
• new_postalcode → address1_postalcode
For the Sales Manager role, assign Organization access to all privileges for the
Department custom entity.
For the Salesperson role, apply the customizations to the Department entity as
shown in the following figure:
Challenge Yourself
Use the information in the Scenario and Goal Description to complete these
steps:
4. Save and Close the Relationship and then the Contact entity
5. Click Save and Close to close the Relationship.
6. Click Save and Close to close the Contact entity.
NOTE: Instead of navigating from Department to Contact, you could have also
created this relationship by remaining within the Department entity and
creating a N:1 Relationship with Contact.
Expose the new Department attributes on the Department form. Then add the
Account column to the Department Lookup View as both a View column and a
Find column.
In the Contact entity, replace the text Department field with the lookup
Department field. In the Contact Lookup view, add Parent Customer to the Find
Columns.
For the Sales Manager role, assign Organization access level to the Delete
privilege for the Department custom entity. For the Salesperson role, apply the
customizations to the Department custom entity that are displayed in the Goal
Description.
Step by Step
Perform the following steps to complete this lab:
1. The Department entity should still be open after the prior step.
2. Click Attributes in the Details pane.
3. There are five attributes to enter for the Department entity. The
values to enter for each attribute are displayed in the Goal
Description in the figure titled Department Entity Attributes. Repeat
the following steps for each attribute.
4. Click New.
5. Enter the attribute values.
6. Click Save and New (click Save and Close following the last
attribute, then click Save and Close to close the Department entity).
NOTE: Instead of navigating from Department to Contact, you could have also
created this relationship by remaining within the Department entity and creating
a N:1 Relationship with Contact.
Expose the new Department attributes on the Department form. Then add the
Account column to the Department Lookup View as both a View column and a
Find column.
In the Contact entity, replace the text Department field with the lookup
Department field. In the Contact Lookup view, add Parent Customer to the Find
Columns.
For the Sales Manager role, assign Organization access level to the Delete
privilege for the Department custom entity. For the Salesperson role, apply the
customizations to the Department custom entity that are displayed in the Goal
Description.
Summary
This training introduced entity relationships and the relationship types supported
by Microsoft Dynamics CRM. From a broad perspective, the two types of
supported relationships are one-to-many (1:N) and many-to-many (N:N). N:1
relationships are simply 1:N relationships created from the perspective of the
related entity. Within this framework, 1:N and N:N relationships can be created
between almost any combination of custom and system entities.
This training also examined entity mappings, and how this feature is designed to
reduce the data entry load on users that create new records related to a parent
record. Attributes from a source entity can be mapped to attributes on a target
entity either manually or automatically. During the actual data entry process,
end-users can override any of the system-created mappings.
2. The organization wants to link all Opportunities to the User entity to create a
new lookup field called Sales Manager. Can this be done?
( ) Yes. Create a new Many-to-1 Relationship from the Opportunity using
referential relationship and expose the lookup field on the Opportunity
form.
( ) No. You cannot create a new relationship between system entities.
( ) Yes. Create a new 1-to-Many relationship from the User employing a
referential relationship. Make the relationship attribute a required field.
( ) No. You cannot create a new relationship between the Organization-
owned User entity and the User-owned Opportunity entity.
3. You are viewing relationships for the Account entity. You create a new 1:N
relationship with a custom entity. Which of the following scenarios is true as
a result of this relationship?
( ) A new lookup field will be created on the custom entity form so that the
Account can be related to it.
( ) A new relationship attribute will be added to the custom entity.
( ) A new lookup field will be added to the Account form to add it to the
custom entity.
( ) A new relationship attribute will be added to the Account
4. What steps must you first perform before you can delete a relationship?
5. You modify the 1:N relationship between a Custom entity and Opportunity
where the Custom entity is the primary entity. You set the type of behavior to
referential, restrict delete. Which of the following is true?
( ) Custom entity records cannot be deleted.
( ) Opportunities related to the custom entity records cannot be deleted.
( ) Custom entity records related to deactivated opportunities can be deleted
( ) Custom entity records related to opportunities cannot be deleted.
6. What must you do before you can delete a custom entity or a custom 1:N
relationship?
( ) Remove the lookup field for the relationship attribute in the primary entity
form and publish the primary entity.
( ) Truncate the SQL Server table that stores data for the entity you want to
delete.
( ) Remove the lookup field for the relationship attribute in the related entity
form and publish the related entity.
( ) Publish the custom entity.
10. When would you typically assign a Parental behavior type to a 1:N
relationship?
1.
2.
3.
Solutions
Test Your Knowledge
1. The organization where you are implementing Microsoft Dynamics CRM
uses the concept of a project to group their work. One approach they
considered involved creating a Project entity with a Parental relationship for
all Cases. They felt this would allow them to use the Case entity to track the
work related to the Project. After further analysis, the company realized it
could not pursue this approach. What was the reason that forced this
decision?
2. The organization wants to link all Opportunities to the User entity to create a
new lookup field called Sales Manager. Can this be done?
(•) Yes. Create a new Many-to-1 Relationship from the Opportunity using
referential relationship and expose the lookup field on the Opportunity
form.
( ) No. You cannot create a new relationship between system entities.
( ) Yes. Create a new 1-to-Many relationship from the User employing a
referential relationship. Make the relationship attribute a required field.
( ) No. You cannot create a new relationship between the Organization-
owned User entity and the User-owned Opportunity entity.
3. You are viewing relationships for the Account entity. You create a new 1:N
relationship with a custom entity. Which of the following scenarios is true as
a result of this relationship?
( ) A new lookup field will be created on the custom entity form so that the
Account can be related to it.
(•) A new relationship attribute will be added to the custom entity.
( ) A new lookup field will be added to the Account form to add it to the
custom entity.
( ) A new relationship attribute will be added to the Account
4. What steps must you first perform before you can delete a relationship?
MODEL ANSWER - You must remove all references to attributes from the
5. You modify the 1:N relationship between a Custom entity and Opportunity
where the Custom entity is the primary entity. You set the type of behavior to
referential, restrict delete. Which of the following is true?
( ) Custom entity records cannot be deleted.
( ) Opportunities related to the custom entity records cannot be deleted.
( ) Custom entity records related to deactivated opportunities can be deleted
(•) Custom entity records related to opportunities cannot be deleted.
6. What must you do before you can delete a custom entity or a custom 1:N
relationship?
( ) Remove the lookup field for the relationship attribute in the primary entity
form and publish the primary entity.
( ) Truncate the SQL Server table that stores data for the entity you want to
delete.
(•) Remove the lookup field for the relationship attribute in the related entity
form and publish the related entity.
( ) Publish the custom entity.
MODEL ANSWER - The owner does not have the necessary privilege to
10. When would you typically assign a Parental behavior type to a 1:N
relationship?
hierarchy of related records, and the related records depend on the primary
record is the person who recorded the information. - The “created on” date is
the date the Contact was registered; that is, the date on which the
MODEL ANSWER - The problem with using a text attribute is that there is
no control over what the user might enter in that field. This makes it difficult
to be updated.
impossible to capture the unique names that each department might choose to
use.
Works Cycle wants to track all interactions with their accounts on a single
account record.
Introduction
This training examines the final two elements related to customizing entities -
renaming a customizable entity and, in a multilingual deployment, translating
customized labels into the required languages.
Many times organization use terminology that is different from that presented in
Microsoft Dynamics CRM. In order to customize the UI experience so that the
application uses terminology requested by the organization, organizations can
rename customizable entities to match their terminology. As you will see in the
training, the process of renaming a customizable entity is quite involved. Make
sure that you pay particular attention to each step in process so that all UI
components are renamed.
• Entity Name
• Entity Form Labels
• Entity View Names
• Entity Attribute Display Names
• System Messages
• Online Help Content
• Reports
Step 2: Edit Entity Forms and Views to Display the New Entity Names
Step 3: Change Attribute Display Names for the Entity that is Renamed
Use Customize Entities tool to change attribute display names associated with
renamed entity. This will update any other parts of the application that uses these
attributes, such as View headings.
Use the Customize Entities tool to customize messages and strings associated
with the renamed entity.
NOTE: The name of the entity in the Navigation Pane may not respond to the
changes because the information in the SiteMap is cached on the browser.
Users may need to exit and then re-enter the application (or press F5) to see the
changes.
Step 6: Edit affected Help content to Display the New Entity Name
Manually edit entity names in Help content and re-deploy the Help content. For
more information on this refer to the topic Customizing Online Help in the Client
Programming Guide of the Microsoft Dynamics CRM SDK.
Manually modify entity names in reports and re-deploy the modified reports.
Perform the following steps to edit the messages displayed for an entity:
4. For each message you want to change, double-click the message, and
then in the Custom Display String box, enter the new message.
5. In the message form, click Save and Close.
6. In the entity form, click Save.
7. Publish your customizations when complete.
The Microsoft Dynamics CRM online Help can be customized to meet the needs
of the deployment. Two common reasons to modify the Online help include:
All of the online Help content is available in HTML files that can be customized
and extended. Depending on the degree of modification, customizing the online
Help may require an in-depth understanding of the online Help structure.
The advantages to extending the online Help over developing a new Web site for
Microsoft Dynamics CRM users are that it:
Extending the online Help also offers several disadvantages that have to be
weighed against the advantages of modifying the Help files. These disadvantages
include:
Some of the steps in this process are time consuming to perform completely.
Therefore, this lab only performs a set of selected tasks necessary to illustrate the
process.
Scenario
Adventure Works Cycle has decided to use the term “Incident” rather than
“Case” throughout their Customer Service organization. As their implementation
consultant, you have been asked to apply this change throughout Adventure
Works Microsoft Dynamics CRM deployment.
These changes will be made on a development server so they can be exported and
applied to Adventure Works’ production server.
Goal Description
During your planning meetings with the Customer Service team, you have
agreed upon making the following changes:
• Changing the Case entity name, form, views and messages to use
"Incident" rather than Case.
• Exporting the customized Incident entity to the following file:
• Changing the Online Help files to use the term "Incident" rather than
"Case."
Challenge Yourself
Use the information in the Scenario and Goal Description to complete these
steps:
Export your current Case entity customizations. Save your Case entity
customizations to the file and location specified in the Goal Description.
On the Case entity information Area, change the Name and Plural Name to
“Incident” and “Incidents” respectively.
In the Forms and Views area, change the name of each of the views to replace
“Case” with “Incident” and “Cases” with “Incidents”
NOTE: You do not need to change them all for the purpose of this Lab. Change
as many view names as you need to understand the process.
Open the Case Form and modify the following field labels
• Case Origin
• Case Type
In Attributes, Modify the Display Name for the appropriate attributes to replace
“Case” with “Incident.”
NOTE: You do not need to change all of the messages for the purpose of this
lab. Change as many as you need to understand the process.
Publish the Case entity. Then open a Case to confirm that the changes you have
made have been applied.
NOTE: You may need to refresh your browser by pressing F5 to see changes in
the Navigation pane.
Once you have confirmed you changes are working correctly, export your
customized “Incident” entity to the file and location specified in the Goal
Description.
NOTE: For the purpose of this lab, modifications will be made to only one of
the online Help files.
Click Help on this page while viewing the Case form and note the information.
Then navigate to where the Help files are located at:
C:\Inetpub\wwwroot\Microsoft CRM\Help\1033\OP\Content.
Edit the original file using Notepad (or Visual Studio if you prefer). Replace for
every instance of the word “Case” that is used as content text and replace it with
“Incident.”
NOTE: The goal is to replace every instance of content text that uses “Case”
with “Incident.” But the word “Case” is used in the DHTML properties of the
documents to point to other documents. Replacing every instance will break
these links. Each instance should be examined before replacing the text.
Save the modified file back into the folder listed above and overwrite the existing
file. Finish by testing the page. At first, you may not see the change because it
has been cached. You may need to press F5 to see the changes.
Step by Step
Perform the following steps to complete this lab:
For any of the attributes that have Case in its Display Name, modify the Display
Name to replace “Case” with “Incident”.
1. With the Forms and Views window still open, click Attributes in the
Details pane.
2. Click on the Display Name column heading to sort the attributes in
Display Name sequence. This will help to quickly locate any
attributes with Case in the display name.
3. In an actual production environment, you would change the display
name for any attribute with Case in the display name. For the
purposes of this exercise, change the display name for the following
attributes: Case, Case Number, Case Origin, Case Stage, and Case
Type.
Use the Customize Entities tool to customize messages and strings associated
with the renamed entity.
1. With the Forms and Views window still open, click Messages in the
Details pane.
2. In an actual production environment, you would change the display
name for any message and string with Case in the default or Custom
display string. For the purposes of this exercise, change the display
name for the first three messages.
3. Double-click the message you want to change.
4. Change the message in the Custom Display String to reflect the
new name.
5. Click Save and Close.
6. Repeat these steps for the messages that need to be changed.
7. When all messages are complete, click Save and Close to close the
entity window.
NOTE: You may need to refresh your browser by pressing F5 to see changes in
the Navigation pane.
3. Once you have confirmed you changes are working correctly, export
your customized “Incident” entity. From the Navigation pane, click
Settings, click Customization, and then click Export
Customizations.
4. On the Export Customizations view, select the Incident entity, and
then click Export Selected Customizations on the Action toolbar.
Click OK to acknowledge the message in the dialog box.
5. In the File Download window, click Save.
6. In the Save As window, select the location and name of the export
file. For this exercise, use the location and file name specified in the
Goal Description.
7. Click Save.
8. When the download is complete, click Close.
1. From the Navigation pane, click Service, and then click Incidents.
2. Click New to open an Incident form.
3. Click the Help drop down, and then click Help on this page.
4. Open Windows Explorer, and then navigate to where the Help files
are located at: C:\Inetpub\wwwroot\Microsoft
CRM\Help\1033\OP\content
5. This particular help file is titled: ui_cs_Case_list.htm.
6. Edit the original file using Notepad (or Visual Studio if you prefer).
7. Replace every instance of the word “case” that is used as content text
and replace it with “Incident.”
8. Save the modified file back to its original location in the folder listed
above and overwrite the existing file. Finish by testing the page. At
first, you may not see the change because it has been cached. You
may need to press F5 to see the changes.
NOTE: Our goal is to replace every instance of content text that uses “Case”
with “Incident.” But the word “case” is used in the DHTML properties of the
documents to point to other documents. Replacing every instance will break
these links. Each instance should be examined before replacing the text.
Because the base language and MUI language packs apply to the out-of-the-box
UI components, how are customizations translated so that end-users can view
customized entities and attributes in the language of their choice? The answer to
that question is topic of this training discussion.
• Entities
• Attributes
• Picklist values
• Messages
• Forms
• Views
EXAMPLE: Sean has installed two additional MUI language packs on his
Microsoft Dynamics CRM system. He has customized the system and must add
labels for his new customizations. Sean exports the translations to a Microsoft
Office Excel 2003 XML file. He then sends the file to a vendor who adds the
translated versions of each exported label. Sean then imports the updated file
back in to his Microsoft Dynamics CRM installation and publishes all
customizations.
The menu options for exporting and importing customized labels for translation
is located on the Settings > Customization page. The options are titled Export
Labels for Translation and Import Labels for Translation, respectively. You can
only export and import labels for translations when active MUI language packs
have been installed on the system.
When you select the Export option, you are immediately prompted to download a
Microsoft Excel XML file. The default name for the file is
CrmTranslations.XML.
After the exported labels have been translated, the export file must be imported
back into the system. Selecting the Import Labels for Translation menu option
initiates an import process similar to the one used to import customizations.
The Excel worksheet that is created by the export process contains the following
three tabs:
In the Display Strings tab and Localized Labels tab, the base language is
displayed first, followed by each MUI language in alphabetical order.
This data is stored in both the Display Strings and Localized Label tabs.
Summary
This training focused on the key two areas of customizing the end-users’ user
interface (UI) experience - renaming a customizable entity and, in a multilingual
deployment, translating customized labels into the required languages.
2. When changing the name of a customizable entity, what at are some of the
additional areas that cannot to be changed?
3. Once changes to the entity name have been published, the Name of the entity
in the Navigation Pane may not respond to the changes. Why might this
occur, and what is the solution?
4. If the MUI language packs include translations for all the system's UI
components, why must labels be translated?
1.
2.
3.
Solutions
Test Your Knowledge
1. When changing the name of a customizable entity, what at are some of the
additional areas that need to be changed?
Entity Form Labels - Entity View Names - Entity Attribute Display Names -
2. When changing the name of a customizable entity, what at are some of the
additional areas that cannot to be changed?
error messages and messages that are displayed in Trace or the Event Log.
These messages cannot be edited. Add Users Wizard for adding multiple
users at one time. The strings in this wizard cannot be edited. Environment
3. Once changes to the entity name have been published, the Name of the entity
in the Navigation Pane may not respond to the changes. Why might this
occur, and what is the solution?
cached on the browser. Users may need to exit and then re-enter the
4. If the MUI language packs include translations for all the system's UI
components, why must labels be translated?
base language. If users have implemented MUI language packs, the labels
each installed MUI language so that all UI components are in the same
language.
Introduction
Microsoft Dynamics CRM provides the flexibility needed so that a business of
any size can create a deployment model that closely mirrors its actual
organizational structure. Once the initial organization has been installed and
configured, larger enterprises may decide that adding additional business units
into the existing organization does not serve the long-term needs of the business.
This may result in the need to create multiple organizations within one Microsoft
Dynamics CRM installation. This training examines how the application supports
this multi-tenancy model.
This training also examines the tools that are available in Microsoft Dynamics
CRM's Deployment Manager utility. Deployment Manager is a Microsoft
Management Console (MMC) snap-in that system administrators and
implementers use to administer and customize Microsoft Dynamics CRM.
Because it is located on the Microsoft CRM Server, Deployment Manager is
typically restricted to CRM system administrators or implementers who have
access to the server. Deployment Manager provides access to the following
configuration tools:
• Deployment Administrators
• Organizations
• Servers
• Licenses
The result of this design is that a collective set of Microsoft CRM servers can
together service multiple Microsoft Dynamics CRM organizations. This provides
the following advantages to multi-tenant customers:
NOTE: The components in a block of servers are unique to each data center or
corporate deployment. A block of servers includes a select number of servers in
prescribed roles that are capable of servicing a predetermined number of
organizations and therefore a predetermined number of total users for that
deployment. For example, an enterprise may determine that a block of servers
consisting of two CRM Application Servers, one CRM Platform Server, one
CRM Asynchronous Server, and one CRM Reporting Server can satisfactorily
service two organizations with a maximum of 200 users. An advantage of multi-
tenancy is that a block of servers is no longer restricted to serving one
organization.
Configuration Database
One of the key components in the multi-tenancy design is the addition of a new,
site-wide configuration database. All organization-wide settings from the local
registry, the IIS metabase, and all other server dependent locations are located
here. The name of this database is MSCRM_CONFIG.
Note in this figure there are two organization databases - one for Adventure
Works Cycle and another for Northwind Traders. There is one Report Server
database and one CRM Configuration database serving both organizations.
For organizations that upgrade from Microsoft Dynamics CRM 3.0, the
application's registry and IIS metabase settings are migrated away from the
Microsoft CRM Server in the 3.0 deployment to the new configuration database
in the 4.0 installation. This enables the physical Microsoft CRM Servers to be
stateless and remappable from one organization to another. This means that a
Microsoft CRM Server is no longer tied or restricted to a given organization, but
rather, can now be configured to service multiple CRM organizations.
Once the organizations are defined for a business, administrators can perform the
following organization maintenance on the Microsoft CRM servers:
Adding new organizations and maintaining the information for each organization
is performed through Deployment Manager's Organizations tool.
Perform the following steps to create a new organization using the Deployment
Manager's Organizations tool:
1. On your desktop, click the Start menu, click All Programs, click
the Microsoft Dynamics CRM program group, then click
Deployment Manager.
2. Click on the Organizations folder to view the existing
organizations.
3. To add a new organization, either right click on the Organizations
folder and select New Organization, or click Action on the menu bar
and select New Organization.
4. In the New Organization Wizard, on the Specify the Organization
Name window, enter the Organization name. The name cannot
include blank spaces or any unsupported characters.
5. When you tab out of the Organization name field, the same name is
prefilled in the Friendly name field. Change this value if required.
Note: You can add blank spaces back in to the Friendly name if
necessary. For example, if adding an organization record for
Northwind Traders, the organization name might be
“NorthwindTraders”, but the Friendly name could be “Northwind
Traders”.
6. The ISO currency code field specifies the base currency for the new
organization. Click the Browse button and select the new
organization's base currency. Click OK.
7. The Currency name and Currency symbol are prefilled based on the
selected base currency. Click Next.
8. On the Help Us Improve the Customer Experience window, select
whether this organization is willing to participate in the Customer
Experience Improvement program. Click Next.
9. On the Select SQL Server window, select from the drop down list the
Microsoft SQL Server that contains the CRM database. Click Next.
10. On the Specify Reporting Services Server window, the report server
URL is prefilled for you. Change this value if necessary. Click Next.
11. On the System Requirements window, review the results of the
verification tasks. If any errors occur, click Details for more
information. If necessary, click Back to correct any previously
entered information. If no errors occurred, click Next.
12. On the Ready to Create window, verify the organization information.
If anything requires change, click Back to correct the information. If
all the information is correct, click Create.
13. Click Finish once the New Organization is successfully created.
14. The new organization will appear in the Organizations folder.
There are two ways in which you can add additional organizations to your
existing Microsoft Dynamics CRM deployment. The first method is by adding a
new organization through the New Organization Wizard that was discussed in the
prior lesson. The second method involves moving an existing organization and its
Microsoft CRM database from one Microsoft Dynamics CRM installation to
another. This is accomplished through the Import Organization option in the
Deployment Manager's Organizations tool.
• Users
• Client computers
• The Organizational Unit
• Security groups
The Import Organization Wizard provides the following functionality with regard
to the import process:
• After Microsoft CRM users are mapped from the source installation
to the new installation, the Import Organization Wizard updates all
primary and foreign keys in the imported Microsoft Dynamics CRM
database so that these primary and foreign keys use the correct
GUIDs for users in the new installation.
Mapping Users
When you run the Import Organization wizard, you must select on the User
Mapping page the method to be used to map Microsoft Dynamics CRM users
from the existing organization to the new organization. The mapping options
include:
On the Edit User Mappings page, you can manually map users and adjust the
automatically mapped users from the imported organization to the new
organization.
Importing Reports
During the import process, the Import Organization Wizard does not prompt you
for information related to the existing organization's reports. This does not mean
that all reports created for the existing organization are lost when it is imported
into the new installation. On the contrary, the reports are imported along with the
existing organization's CRM data because the .rdl files for the existing reports are
stored in the organization's CRM database. Following the import, whenever a
report is accessed for the first time by a user, the report is copied from the CRM
database to the Reporting Services database.
Similar logic applies for users of the Microsoft Dynamics CRM for Outlook with
Offline Access. Each user:
Scenario
Just as they have done with their bicycle operation, Adventure Works plans to
use Microsoft Dynamics CRM as their business application software platform for
driving sales for their new organization. In order to achieve economies of scale,
Adventure Works has decided to run the deployments of both Microsoft
Dynamics CRM organizations on their existing Microsoft CRM Server.
Adventure Works has asked you to create the new organization on their existing
Microsoft CRM Server, as well as build the initial organizational hierarchy.
Goal Description
Adventure Works has asked you to create a second organization running
Microsoft Dynamics CRM on their existing Microsoft CRM Server. Begin by
using the Organizations tool in Deployment Manager to create a new Microsoft
Dynamics CRM organization titled Northwind Traders.
• Name = NorthwindTraders.
• Display name = Northwind Traders (note the space)
• Base currency = Canadian Dollars
• SQL Server = London
• SQL Reporting Services Server URL = http://london/reportserver
• This organization will be deployed on Adventure Works’ existing
London server, alongside their Adventure Works Cycle organization.
Challenge Yourself
Perform the following steps to complete this lab:
Step by Step
Perform the following steps to complete this lab:
1. On your desktop, click the Start menu, click All Programs, click
the Microsoft Dynamics CRM program group, then click
Deployment Manager.
2. Click on the Organizations folder to view the existing
organizations.
3. To add a new organization, either right click on the Organizations
folder and select New Organization, or click Action on the menu
bar and select New Organization.
4. In the New Organization Wizard, on the Specify the Organization
Name window, enter the Organization Display name. Use the value
defined in the Goal Description.
5. When you tab out of the Organization name field, the same name is
prefilled in the name field. Change this value if required.
6. The ISO currency code field specifies the base currency for the new
organization. Click the Browse button and select the new
organization's base currency. Click OK.
7. The Currency name and Currency symbol are prefilled based on the
selected base currency. Click Next.
8. On the Help Us Improve the Customer Experience window, select
whether this organization is willing to participate in the Customer
Experience Improvement program. Click Next.
9. On the Select SQL Server window, select from the drop down list the
Microsoft SQL Server that contains the CRM database. Click Next.
10. On the Specify Reporting Services Server window, enter the value
from the Goal Description. Change this value if necessary. Click
Next.
11. On the System Requirements window, review the results of the
verification tasks. If any errors occur, click Details for more
information. If necessary, click Back to correct any previously
entered information. If no errors occurred, click Next.
To run Deployment Manager, you must have the Deployment Administrator role.
During Microsoft Dynamics CRM Server Setup, the user running the Setup is
automatically added as a member of this role and can grant Deployment
Administrator membership to other users found in Active Directory.
3. In the Select User dialog box, type the name of the user that you
want to add. Click Check Names, and then click OK. Note: The user
must exist in Active Directory.
Organizations tool
The following tasks can be performed in the Deployment Manager's
Organizations tool:
If either of these scenarios occur, you must use the Import option within the
Organizations tool to connect the Microsoft CRM Server to the restored CRM
database. If multiple CRM databases existed on the original SQL Server, then the
Import Organization option must be run against each restored CRM database.
EXAMPLE: The SQL Server machine that contains Adventure Works Cycle's
CRM database has been experiencing problems and must be replaced. The
administrator must restore the databases to another SQL server and update
Microsoft Dynamics CRM to point to the new SQL Server.
In the event of a SQL Server failure, you must restore the CRM databases from
your most recent backup and re-associate the restored databases with the
Microsoft CRM Servers.
This begins by verifying the new SQL Server is in the same domain as the
Microsoft CRM Server(s). The same server name and disk structure should be
used. If you must change either of these, additional steps are required to properly
restore the SQL Server. See Microsoft SQL Server 2005 documentation for
details on restoring SQL Server.
Before performing the organization import, you should verify whether the correct
SQL Logins exist in the new SQL Server instance. In the Security node of
Microsoft SQL Server Management Studio, verify the following logins exist and
add any that are missing:
• SQLAccessGroup
• PrivReportingGroup
• ReportingGroup
If you have multiple Microsoft CRM Servers running on your network and you
want to take one offline, use the Server Manager tool to disable the server.
Conversely, you can enable a server to bring a previously disabled server back
online.
Perform the following steps to change the status of a Microsoft CRM Server:
1. From the desktop, click Start, click the Microsoft Dynamics CRM
program group, then click Deployment Manager.
2. In Deployment Manager, click on the Servers folder.
3. Right click on the server whose status you want to change.
4. Select either Enable or Disable.
The License Code page is used for adding new server and client licenses and
upgrading trial licenses. The guidelines for this page include:
• After entering each license key, you should click Add to validate the
key.
• A server license key will have zero (0) user licenses.
• If your organization purchases additional user licenses, you can enter
one or more client license keys.
• Each validated server and client license key is displayed on the page,
together with the license count associated with the key.
• A validated key can be deleted from the page.
Summary
This training reviewed the ability in Microsoft Dynamics CRM to maintain
multiple CRM deployments on a single Microsoft CRM server. This allows
businesses that have installed the Enterprise Edition to achieve economies of
scale with regard to hardware expenses for each additional organization. This is a
critical step toward reducing total cost of ownership for customers who
implement Microsoft Dynamics CRM across multiple organizations.
3. Which of the following are key functionality of the Server Manager? Mark
all that apply. (Select all that apply.)
( ) Takes Microsoft CRM Servers online and offline.
( ) Restores crashed SQL databases to their most recent backup.
( ) Display connection information relating to the Microsoft CRM Server.
( ) Set the Reporting Server URL.
4. What are some of the reasons why you would disable an organization? Mark
all that apply. (Select all that apply.)
( ) You plan to delete the organization.
( ) You plan to edit the organization's properties.
( ) You plan to delete the organization's Microsoft CRM Server.
( ) An organization's CRM database has to be moved from one SQL Server to
another.
5. All organization-wide settings from the local registry, the IIS metabase, and
all other server dependent locations are located in which database?
( ) CRM database
( ) Metadata database
( ) Configuration database
( ) Reporting Services database
1.
2.
3.
Solutions
Test Your Knowledge
1. What are some of the functions performed by the New Organization Wizard?
creates a new CRM database for the organization. - It registers the new
creates the root business unit for the organization (using the organization's
name).
3. Which of the following are key functionality of the Server Manager? Mark
all that apply. (Select all that apply.)
(√) Takes Microsoft CRM Servers online and offline.
( ) Restores crashed SQL databases to their most recent backup.
(√) Display connection information relating to the Microsoft CRM Server.
( ) Set the Reporting Server URL.
4. What are some of the reasons why you would disable an organization? Mark
all that apply. (Select all that apply.)
(√) You plan to delete the organization.
(√) You plan to edit the organization's properties.
( ) You plan to delete the organization's Microsoft CRM Server.
(√) An organization's CRM database has to be moved from one SQL Server
to another.
5. All organization-wide settings from the local registry, the IIS metabase, and
all other server dependent locations are located in which database?
( ) CRM database
( ) Metadata database
(•) Configuration database
( ) Reporting Services database
Introduction
The purpose of this training is to introduce you to a variety of advanced
customization features that are available with Microsoft Dynamics CRM.
Specifically, this training introduces you to application event programming,
client extensions, and workflow. Because this training is not intended for
developers, it simply introduces these topics by limiting its scope to the
following:
This training also focuses on how client-side code is used with the available
Form and Field events in Microsoft Dynamics CRM. The training also discusses
how client-side code can be used to manipulate the behavior of the Microsoft
Dynamics CRM application. Implementation of client-side code is also possible
through some application integration features, including buttons and menu items.
The ability to integrate Microsoft Dynamics CRM with other web applications
allows you to consolidate related applications into a single, easily navigable
portal for employees. The tools included for Microsoft Dynamics CRM to be
integrated into other applications are designed for use by ISVs, implementation
consultants, developers, and customers.
Introduction to Workflow
Microsoft Dynamics CRM Workflow is a powerful tool that can help business
managers define, automate, and enforce specific business rules, policies, and
procedures. One of the primary goals of implementing Workflow rules is to
simplify and streamline current business processes so that businesses become
more efficient in their day-to-day operations.
Workflow enables actions to occur without direct interaction by the users, based
on rules set up by the business. Workflow rules are triggered by events within
Microsoft Dynamics CRM when specific actions are performed and specified
conditions are met. Some of the key features of Microsoft Dynamics CRM
Workflow include:
• A record is created
• A record's status is changed
• A record is assigned
• A record's attributes are changed
• A record is deleted
For example, a workflow can be created that runs if a contact record is created,
updated, or deleted. Also, the list of triggering events can be changed after the
workflow is created.
The scope options that can be assigned to a workflow are identical to the access
levels that can be assigned to privileges in security roles. When you create a
workflow, you can assign one of the following scopes to the workflow rule:
• User
• Business unit
• Parent: child business units
• Organization
Workflow Stages
Stages enable users to encapsulate and label segments of a workflow. This is
useful for defining and monitoring the parts of a complex process, such as sales
or service. In Microsoft Dynamics CRM, support for stages has been enhanced to
allow:
Stages must not be confused with workflow steps. Steps are the individual
actions that comprise a workflow. Stages are top-level containers that organize
and label one or more steps. Steps, however, cannot contain stages.
Users must provide a description for each stage, whereas descriptions for steps
are optional. This is because stage descriptions appear in the user interface when
a user checks on the status of a workflow that contains them.
Charlie, a company CEO, wants to make sure that he always has access to a
current view of the sales pipeline. He also wants to have a view that breaks the
sales process into a series of stages, including:
• How much of the sales process has been completed, either in terms
of elapsed time or the probability of sale.
• Completed and uncompleted activities that comprise the current
stage
• How much time remains in the current stage
Keeping these objectives in mind, Charlie wants the following sales process to be
implemented:
In case the opportunity is lost at any point in the process, the salesperson closes
the opportunity as lost. That pushes the opportunity out of the sales process,
which in turn causes the workflow to end.
Scenario
When a new contact is created, management wants to ensure that the person who
created the contact record in Microsoft Dynamics CRM is reminded to call the
contact and introduce himself or herself to the contact. This telephone call must
take place within five days of the creation of the contact record.
Goal Description
Create a phone call activity for a new contact.
Step by Step
Step 1 – Creating the rule
3. Click OK.
4. In the workflow properties section, record the following properties
a. Apply to: Organization
b. Publish as: Workflow
c. Triggering Event: Create
d. Accept all other default values
5. Click on ‘Select this row and click Add Step’ and click Add Step.
6. Select Create Record.
7. In the drop-down, select Phone Call.
8. Click Set Properties. The Create Phone Call page appears.
9. Type ‘Welcome Phone Call’ in the Subject field.
10. Click into the Sender field. In the Form Assistant pane, select Owner
(User) in the first ‘Look For’ picklist, and select User in the second
‘Look For’ picklist. Still in the Form Assistant pane, click Add, and
then click OK.
11. Use the process in the previous step to populate the following fields
a. Phone Number: with the Contact’s Business phone number.
b. Recipient: with the Contact’s Full Name – this displays as
‘Contact(Contact)’.
c. Regarding: with the Contact’s Full Name – this displays as
‘Contact(Contact)’.
12. Click in the Due field. In the Form Assistant pane, select 5 in the
Days picklist, and After in the picklist below it. Ensure that Contact
is selected in the first ‘Look For’ picklist, and then select Created On
in the second ‘Look For’ picklist. Still in the Form Assistant pane,
click Add, and then click OK.
13. Click Save and Close to close the ‘Create Phone Call’ page.
14. In the Workflow: Create welcome phone call page, click Publish,
and then click OK to confirm publication of the workflow, and click
Close to close the workflow page
When discussing client-side code, the “client” in question is the user's machine.
Including business logic on the client helps minimize these issues by using the
resources of the client machine. Another advantage of client-side code is that the
processing is immediate, resulting in better performance. Because of this, client-
side code is commonly used to respond to user actions, validating data, and
manipulating the user interface based on user actions.
Events
Microsoft Dynamics CRM allows custom programming logic to be applied when
specific events occur within the application. When the user performs an action
resulting in the execution of one of these events, the custom programming logic
tied to the event is designed to interact with the Microsoft Dynamics CRM web
form. The web form, in turn, is displayed in either the browser window or
another web application or web service.
The following table outlines the events available on each form in Microsoft
Dynamics CRM. These events are on either the Form or Field level events.
Instead, Microsoft Dynamics CRM provides areas to enter client-side code for
specific events. This allows the code to be stored with the application metadata
so that it can be easily transported. This provides the following advantages:
NOTE: JScript is the name for the Microsoft implementation of the scripting
language that is also known as JavaScript and ECMAScript. VBAScript cannot
be used in Microsoft Dynamics CRM client-side customizations.
• Data validation
• Extending functionality
Data Validation
Microsoft Dynamics CRM is designed to leave organizations with a lot of
flexibility for data validation. Many applications include built-in capabilities to
perform data validation. Unfortunately, these built-in capabilities often restrict
deployment to a specific method of validation that might be a poor fit for a
particular deployment. Not providing a built-in method allows easier integration
with whatever validation is a best fit for the organization.
• Dynamic Picklist
• Phone Number formatting
For this to work, the specific category picklist needs to react to options chosen in
the larger category picklist so that only valid options are available. For validity
purposes, it is necessary that every possible option in the specific category
picklist be included as an option in the picklist attribute. Making the specific
category picklist responsive to changes in the larger category picklist is a process
of dynamically adding or removing available options.
Formatting telephone numbers makes them easier for people to read. The
telephone number (425) 555-1234 is much easier to read than 4255551234. But
the exact formatting to apply varies internationally and depends on the number of
characters found in the telephone number. But this is a problem that many web
developers have addressed by evaluating patterns in numbers so that the correct
formatting can be applied. The OnChange event of a telephone number field
provides the mechanism to perform the formatting.
When users are working with contacts for a particular account, they often need to
create a new contact that works at the same company. Normally, a user navigates
to the Account record and chooses to add a related Contact. The mapping from
the Account to the Contact populates any fields that are normally expected to be
the same, such as the address information.
However, users may expect or desire something that does not require them to
navigate to the Account record. The ability to clone a contact directly from the
Contact form provides a simpler approach and less training. This is achieved by
adding a custom button that takes values from the current form and opens a new
Contact form with the data pre-populated. All the user needs to do is add the data
unique to that contact - such as name, telephone number and e-mail address - and
then click Save.
The Clone contact feature is a good example of a solution that appears to offer
some strong advantages while at the same time introducing several
disadvantages. For example, the process of requiring users to go to the account
before adding a new contact related to that account provides them with the
opportunity to confirm that the contact they are adding does not already exist in
the system. Introducing a way for users to quickly add contacts without this
check increases the possibility for duplicate contact records to be added. The best
practice in this situation is to always consider the possible disadvantages before
implementing a new customization.
Scenario
You have asked a developer to create a set of customizations. You need to import
and test the customizations to confirm that they conform to the specification you
provided the developer.
Goal Description
There are three different customizations:
Dynamic Picklists
Two new fields, Call Type and Call Description, are used to classify calls. Call
Type is a picklist that includes options to describe the purpose of the call. The
value ‘Other’ is provided if none of the options apply.
When ‘Other’ is selected, the Call Description field is enabled. If Call Type =
‘Other’ and the Call Description field does not contain data, the user cannot save
the record until data is provided in the Call Description. A message is displayed
to the user explaining what he or she must do when this occurs.
Entity: Account
A custom field called Sub-Industry is activated when the Industry value is set to
“Accounting” or “Consulting.”’ This allows for the selection of valid values for
each industry.
Entity: Account
The following rules are applied to the telephone number fields on the form:
• For every telephone number field on the form, if the first character is
a plus sign (+), the number is assumed to be international and will
not be formatted.
• If the number starts with a “1”, it will not be formatted.
• If the number has ten characters, it will be modified to be formatted
like this (###) ###-####, where the pound (#) symbol represents a
number.
• If an “x” character is included after the tenth character, it will be
formatted as an extension. For example: (###) ###-#### x####
Step by Step
Step 1: Import the Customizations
1. Open a phone call record and confirm the behavior found in the goal
description for the Call Type and Call Description fields.
2. Open an Account and confirm the behavior found in the Goal
Description for the Industry and Sub-Industry fields. These can be
found on the Details tab.
• Using the OnLoad Event. This event occurs after the form has
loaded; therefore, it cannot prevent the window from loading. The
OnLoad event is valuable because it can:
– Apply logic about how the form must be displayed
– Set certain fields to read-only or business required
• Using the OnSave Event. This event does not correspond to the
standard OnSubmit event exposed by DHTML. It is started when a
user presses the Save or Save and Close button on the form. The
event is started whether the data in the form has been modified or
not.
6. On the Details tab, select the Event is enabled check box to enable
the event, and in the text box, enter the body of the script that you
want to use when the selected event is run.
7. On the Dependencies tab, in the Available Fields list, select any
fields you have used in scripts, and then click >> to move the
selected fields to the Dependent fields list.
8. Before saving the form, test your script in the three modes a form
can be used: Create, Update, and Read-only:
a. On the Preview menu, click Create Form, Update Form, or
Read-Only Form.
b. If you have added an onLoad event for the form, when you open
the form in each mode, verify that your event executed as
expected.
c. If you have added an onSave event for the form, for create and
update modes, on the Form toolbar, click Simulate Form Save
to see if the event executes as expected.
d. Click Close on the File menu to close the Preview form.
Each field in Microsoft Dynamics CRM supports the OnChange event. The code
is run when the value has changed and the focus has been lost. Focus exists when
the field is active; it is lost when you tab or use your mouse to enter data in a
different field.
After the code has been executed, the data in the field is re-validated. This means
you cannot make your code change the value of a field to an invalid value.
Perform the following steps to enter client-side code for a Field event:
Scenario
You are developing client-side code for Microsoft Dynamics CRM events using
the Account entity. You want to confirm your ability to reference a number of
form and field values.
Goal Description
The goal of this demonstration is to:
• Display a message showing the form and field values for a number
of Microsoft Dynamics CRM Account fields
• Change these form and field values
C:\Class Materials\Customization\Ch.11
• No validation of code
• Enable Event
• Dependencies
No Validation of Code
Microsoft Dynamics CRM does not perform any validation of the JScript code
you enter for an event. Also be aware that JScript is case sensitive. Therefore, if
the code you enter uses the wrong case or has a syntax error, an error appears on
the page when the event is triggered.
When a syntax error occurs, you will see a small alert icon in the bottom left
corner of the frame. If you click the icon to view more details, you will typically
see the following message: “Problems with this Web Page might prevent it from
being displayed properly or functioning properly.”
As a best practice, store your scripts in a separate location in case you want to re-
apply them or reference them.
Enable Event
You must enable the event by checking the Event Enabled check box. When
developers first begin to use the Event Detail properties window it is not unusual
for them to forget this step. The code associated with an event will not be
triggered if this check box is left blank.
Dependencies
If the code you enter references a field in the form, removal of that field causes
your code to break. Adding fields to the list of dependant fields prevents you or
another person from breaking the code by removing the field. However, there is
no actual dependency with respect to the code itself. Failure to list the dependant
field does not affect the code you write.
Scripts created for custom buttons and menu items may also reference form
fields. There is a Non-Event Dependencies tab on the Form that is not
associated with any event. This is where dependencies created by scripts that are
not associated with an event can be entered. Creating custom buttons and menu
items is covered later in this training.
Scenario
The Vice President of Sales at Adventure Works Cycle has asked for a warning
to be given when an Account is opened if the Account has the Credit Hold field
set to ‘Yes’. In addition, to prevent accidental changes to Account names, he has
asked that a warning message be displayed when an account name is changed.
Finally, he wants an informational message to be displayed when an Account is
saved.
Goal Description
You want to display a message when the following events occurs.
• When the Account form loads, a dialog box with the message “This
Account is on Credit Hold” must appear if the account's Credit Hold
field is set to ‘Yes’.
• When the account is saved, a dialog box with the message “The
Account is saving” appears.
• When the value of the Account Name is changed, a dialog box with
the message “The Account Name has changed” appears.
Step by Step
Step 1: Configure the OnLoad Event
if (CreditOnHold == true)
NOTE: Type the code exactly as it appears. JScript is case sensitive and there
is no validation of the code.
1. Select the OnSave event from the Events tab and click Edit.
2. Enter the following code in the function OnSave() area:
Introduction to IFrames
The term IFrame refers to “Inline Frame”. An IFrame allows you to display the
web page of another application within a Microsoft Dynamics CRM form. The
figure shows an Internet Explorer window. Inside the window three frames are
presented inside a frameset. An IFrame is included inside the Main Frame.
IFrame Usage
You can use an IFrame for a variety of purposes, such as displaying:
By default, Microsoft Dynamics CRM does not allow this type of cross frame
scripting. However, if you feel you need this type of interaction, and that you can
trust the site on the other domain, then you can choose to allow this type of
transaction.
The DHTML Object Model uses the document.domain property to enforce this
restriction. Only pages with identical domain properties are allowed free
interaction.
With the default restrictions in place, scripts that attempt to access parts of the
object model to which they do not have access are blocked with a “permission
denied” error. With restricted interactions turned on, a user can view a static
HTML page on another domain, but any capabilities of that site beyond simple
display of HTML will not work. Frames, style sheets, and any interactive
elements will not work.
• Internet
• Intranet
• Trusted Sites
• Restricted Sites
Within each of these security zones is a setting called “Launching programs and
files in an IFrame”. This option controls if users can launch programs and files
from an IFrame element (containing a directory or folder reference) in Web
pages within the zone. This option has the following settings:
Passing Parameters
Each Microsoft Dynamics CRM entity has a corresponding object type. For
example: Account = 1, Contact=2. Each record also has a globally unique
identifier (GUID). When you create an IFrame, you can indicate if it needs to
pass these parameters to the target URL. This will cause these parameters to be
added to the URL.
Dynamic IFrame
In addition to passing parameters, there are two other ways that an IFrame can be
dynamic:
• Change the src attribute. The src attribute is used to set or retrieve
a URL to be loaded by an IFrame.
• Reference Form Field values. Another way to make an IFrame
dynamic is to pull the form values from the crmForm. A script in the
target of the IFrame can access objects in the parent.
Scenario
Adventure Works Cycle wants to display the Account’s web site in an IFrame on
the Account form. If the account’s web site URL is not known, Adventure Works
Cycle wants the IFrame to display a static page.
An IFrame will be added to a new section in a new tab on the Account form.
Step by Step
Step 1: Open the Account Form
Step 4: Preview
Confirm that the page loads and the NoSite page is displayed.
1. Click Save.
2. Click Actions, then click Publish.
3. Click Save and Close.
1. Open one of the following accounts: ‘A Bike Store’, ‘Cash and Carry
Bicycles’, or ‘Bike Universe’.
2. Confirm that the No Web site page is displayed in the IFrame.
3. Open one of the other accounts listed above.
4. Confirm that the No web site page is displayed in the IFrame on this
account.
Scenario
Adventure Works Cycle wants to allow users to view an account's website within
Microsoft Dynamics CRM if that account has a web site URL in Microsoft
Dynamics CRM. The previous demonstration showed how to create an IFrame.
This demonstration shows how to make the content of the IFrame dynamic.
Use the URL stored in the Account Web Site field to display the Account's web
site in an IFrame in a tab on the Account Form. The OnLoad event will load the
URL from the Account Web Site field to be the target of the IFrame.
Step by Step
Step 1: Open the Account Form
1. Click Form Properties, select the OnLoad event and click Edit.
2. Below any existing code, paste the code found in the following file:
C:\Class Materials\Customization\Ch.11\SetAccountURL.txt.
1. Open one of the following accounts: ‘A Bike Store’, ‘Cash and Carry
Bicycles’, or ‘Bike Universe’.
2. Confirm that the web site page for that account is displayed in the
IFrame.
3. Open one of the other accounts in this list.
4. Confirm that the No web site page is displayed in the IFrame on this
account.
Each entity in Microsoft Dynamics CRM has a unique Object Type Code and a
web page that is used to edit the record. This table lists selected entities with their
URL extension and Object Type Code. The URL begins with http://<server
name>.
NOTE: You can find the Object type code for any entity by referencing the entity
definition from the metadata browser for the first (default) organization at
http://<server name>/sdk/list.aspx. You can access the different organization
metadata browsers by going to http://<servername>/<orgname>/sdk/list.aspx.
You can view the URL in the address bar of any record if Microsoft Dynamics
CRM is not running in Application mode; you can configure this in the System
Settings. If your deployment is in Application mode, you can either click F11 or
use Ctrl+N to open a new Internet Explorer window that will show the address
bar.
• Create new records. You can create new Microsoft Dynamics CRM
records from within another application by creating a link or opening
a window to the URL of the entity's form.
• Access existing records. You can use the same page to open an
existing record if you include a reference to the GUID for the record.
This is usually done by programmatically generating an HTML page
that concatenates the entity's URL with Microsoft Dynamics CRM
GUID values stored in another application.
• Copy and Send Shortcuts. For many entities you can copy and send
the URL of the entity's form by performing the ‘Copy Shortcut’ and
‘Send Shortcut’ actions from within Microsoft Dynamics CRM
application. These are available through the More Actions menu.
• HTML Link. This approach opens a new window with the Internet
Explorer Menu, address bar, and any other items the user typically
has visible in Internet Explorer.
• Window.open() method. A better approach is to use a script that
uses the window.open() method and attach it to a button or any other
object the user can click. This allows you control over how the
window opens, including the size, position, and if the menu bars are
displayed.
Scenario
The Vice President of Sales is concerned that his sales team are not entering
Leads into Microsoft Dynamics CRM and would like to raise an Announcement
to highlight this.
Goal Description
Create a new Announcement which provides a hyperlink to a Microsoft
Dynamics CRM form.
Step by Step
Step 1: Create a new Announcement
ISV.config is not a file that you can manipulate and save. Because the ISV.config
information is generated from the metadata, you must export the ISV.config
configuration just as you would any customizations that you want to move from
one deployment to another. However, in this case you will export the ISV.config
parameters, customize them, and then import them back into the application. The
following steps must be performed to customize the ISV.config:
NOTE: When you use Notepad to open an XML document that has been
exported from Microsoft Dynamics CRM, it will not be formatted for
readability. Visual Studio allows you to apply formatting by using
Ctrl+K,Ctrl+D. With Microsoft Office Expression Web use the Reformat XML
(Alt+M) button from the XML View Toolbar.
As a best practice, you should back up the ISV.config that you export from
Microsoft Dynamics CRM before customizing it. This allows you to re-import
the backed up copy in case of errors. The import tool performs validations on the
ISV.config, but it is still possible that some errors could cause problems.
Because the ISV.config controls the Navigation Pane of the application, an error
in the ISV.config could cause the Navigation Pane to be unusable. In that case,
you will need to type the URL to the Import customization window. That URL
is: http://<server name>/tools/systemcustomization/
importcustomizations/importcustomizations.aspx.
NOTE: You can include the <orgname> after the <servername> bit to go to
the import screen for any particular organization’s import screen.
The field titled “Select the clients that will display custom buttons and menu
items configured in ISV.Config.” allows you to select any combination of the
following client options:
• Web
• Outlook Workstation Client
• Outlook Laptop Client
NOTE: Because the access rights and privileges a user enjoys are the union of
all the security roles they belong to, you can create a specialized role that only
grants ISV Extensions privilege. To control access to ISV extensions on an
individual basis, remove the ISV Extensions privilege from other roles and
assign this role to selected users along with their regular security role(s).
Perform the following steps to set the ISV Extensions privilege on a security
role:
Scenario
Adventure Works Cycle has asked you to create some additional functionality for
Microsoft Dynamics CRM utilizing the Call Timer tool. You will need to follow
the developer's instructions to enable these customizations.
Call Timer
Call Timer allows a user to launch a window that contains a timer. This timer lets
the caller keep track of how long they are on the telephone and update the
duration field in Microsoft Dynamics CRM when they are done.
A custom button called Time this call is displayed on the Phone Call Menu bar.
When the Time this call button is pressed, it opens a page called Timer.htm.
When the user presses Start the timer will begin.
When the phone call is over, the user can press OK and the time will be added to
the Duration field, rounded to the nearest minute.
Step 2: Add the Developer's Files as a Virtual Directory for the Microsoft
Dynamics CRM Web Site
C:\Class Materials\Customization\Ch.11\CallTimer
8. Click the box next to Run scripts (such as ASP), and then click
Next.
9. Click Finish.
10. In Internet Information Services (IIS) Manager, right-click on the
server name, then click All Tasks, and then click on Restart IIS.
11. Click OK on the confirmation dialog.
12. Wait until IIS restarts before beginning Step 3.
For the purpose of this course you do not need to give users the ISV Extensions
Privilege. Because you are logged in as a user with the System Administrator
role, you will be able to view the custom buttons.
• Application Level
• Detail Level
• Entity Grid Level
Application Level
There are two places you can add buttons or menus at the application level using
ISV.Config:
These integration points are available in both the Web interface and the
Microsoft Dynamics CRM for Microsoft Office Outlook.
Detail Level
There are three places you can add menus, buttons, or navigation items at the
detail level using ISV.Config:
• Form menu bar. Add menus to the left of the Help menu.
• Form toolbar. Add buttons to the toolbar.
• Form navigation pane. Add navigation items in the Detail Form
navigation pane on the left.
Detail level integration points exist for virtually every entity that has a detail
screen. This includes custom entities.
• Entity Grid buttons. These buttons appear to the left of the More
Actions menu.
• Entity Grid Action Menu. Additional items can appear to in the
More Actions menu. The More Actions menu supports sub-menus.
Scenario
While developing customizations for the Account entity, you get tired of
navigating to the Account Entity Customization screen. To make this navigation
a little faster while you develop customizations, you create a button from the
Account form to take you directly to the Account Entity Customization window.
After you finish your customizations, you must remove the button so it will not
be accessible to users.
Goal Description
This demonstration has two goals:
• Familiarize you with the structure of the isv.config and the default
sample customizations.
• Create a custom button to launch the Account Entity Customization
window from the Account Form
Step by Step
Step 1: Enable Customizations
http://crm/AdventureWorksCycle/Tools/SystemCustomization/Entiti
es/manageEntity.aspx?entityId={70816501-EDB9-4740-A16C-
6A5EFBC05D84}
(http://crm/AdventureWorksCycle/Tools/SystemCustomization/Entit
ies/manageEntity.aspx?entityId={70816501-EDB9-4740-A16C-
6A5EFBC05D84})NOTE: The GUID for your deployment will be
unique. You cannot use the one in the sample above.
3. Copy this URL and paste it into Notepad. You will need it in the next
step.
In this step you use the approach of copying an existing XML element from your
isv.config customization file, pasting it into a different location, and modifying
the attributes.
FORMAT IN BOX
<Button Icon=“/_imgs/ico_18_debug.gif”
Url=“http://www.microsoft.com” PassParams=“1” WinParams=“”
WinMode=“1”>
<Titles>
</Titles>
<ToolTips>
</ToolTips>
</Button>
NOTE: It can be difficult to edit a very long line of text. You can add carriage
returns after each attribute to make editing easier. XML ignores this type of
formatting.
Introduction to SiteMap
It is possible to achieve granular oversight of the controls placed in the
Navigation Pane by modifying the SiteMap entity.
The following are examples of how you can customize the Navigation Pane by
customizing the SiteMap:
When you add a custom entity, you can configure where it appears in the
Navigation Pane. The Go To menu and User Settings for the Start Page of the
web client can also be customized to reflect the navigation areas and sub-areas
defined in the SiteMap. This information is stored in the application metadata.
SiteMap combines the information in the metadata to generate the Navigation
Pane.
When you add new entities to the metadata, the order in which they are displayed
is the order in which they were entered. However, you can override this default
placement by customizing the SiteMap and specifying the exact location of the
entities.
NOTE: The SiteMap only defines the Application Navigation Pane. The form
for each entity also has a similar navigation pane, but this is defined in the
ISV.Config.
• Sales
• Marketing
• Customer Service
• Scheduling
All of these groups and profiles are customizable through the SiteMap. You can
add, remove, modify, and rename profiles to best meet the needs of the CRM
users.
The Areas, Workplace Groups, and Sub-Areas defined in the SiteMap are also
reflected in the Outlook folder hierarchy under the Microsoft Dynamics CRM
folder. Note that Microsoft Dynamics CRM for Outlook represents the folders
alphabetically, and the order defined in the SiteMap does not apply.
NOTE: When you use Notepad to open an XML document that has been
exported from Microsoft Dynamics CRM, it will not be formatted for
readability. Visual Studio allows you to apply formatting by using
Ctrl+K,Ctrl+D. With Microsoft Office FrontPage use the Reformat XML
(Alt+M) button from the XML View Toolbar.
Because the SiteMap controls the Navigation Pane of the application, an error in
the SiteMap can cause the Navigation Pane to be unusable. In that case, you will
need to type the URL to the Import customization window. That URL is:
http://<server name>/tools/systemcustomization/
importcustomizations/importcustomizations.aspx.
NOTE: As with the earlier comment about the metadata browser, you can
include the <orgname> after the <servername> bit to go to the import screen
for any particular organization’s import screen.
SiteMap Structure
The following figure displays the structure of the SiteMap.
Each element in SiteMap has attributes to control the behavior and appearance of
the element. SiteMap has five different elements:
• SiteMap
• Area
• Group
• Sub-area
• Privilege
SiteMap
SiteMap is the root node for the SiteMap. The SiteMap element appears as
follows in the XML:
Area
The Area controls the individual panes found in the Navigation pane. The Sales
Area element appears as follows in the XML:
The following figure shows six areas displayed in the Navigation pane of the
Web application.
New areas can be added or existing areas can be removed. However, removing
the Settings area is not recommended; instead, use permissions to control access
to the Settings area. You can override the default labels by using the Title
attribute to specify the Label value you want. You can change the Icon to point to
a different image and can specify how different groups are displayed within the
area.
Group
Groups organize elements in the workplace area of the navigation pane. For
example, the Sales group includes the Leads, Opportunities, Quotes, Orders, and
Invoices. The Sales Group element appears as follows in the XML:
The following figure shows how the Sales group appears in the Navigation Pane.
Groups are used to aggregate Sub-Areas and can be shown or hidden as defined
by the Area. Additionally, groups defined within the Workplace Area can be
marked as a user selectable profile.
Sub-area
Sub-areas represent the items in the Navigation pane that show new content in
the main frame of the application. The Knowledge Base Sub-Area element
appears as follows in the XML:
The following figure shows what the Knowledge Base Sub-area looks like in the
Navigation Pane of the Web application.
Scenario
Adventure Works Cycle wants to modify the way that information is organized in
the Navigation pane. They have a group that focuses on service scheduling and
another group that provides technical support. They want to separate these areas
from the Service area.
Goal Description
Scheduling Area
A new area called Scheduling will be displayed beneath the current Service area.
The Scheduling area will display the Service calendar and a link to the Services
Management area which is normally found under the Service module.
Support Area
The Service area will be renamed Support to match the terminology used at
Adventure Works Cycle. The Service Scheduling sub-area will be removed from
this area.
Step by Step
Step 1: Export and Backup the SiteMap
1. Open the New SiteMap.xml file that you just imported using
Internet Explorer.
2. Note the changes that were made to create new areas.
SDK Components
There are three parts to the SDK:
If the information you need is not in the SDK, it is generally not supported. For
example, the SDK does not include information about how to access the inner
workings of Microsoft Dynamics CRM for Outlook or the Microsoft Dynamics
CRM Web application.
The Microsoft Dynamics CRM Plug-in model allows both Pre and
Post-Plug-ins. Pre-Plug-in code is run before an operation occurs,
whereas Post-Plug-in code is run after an operation has been
completed. Plug-in components can be written in any .NET
compliant language such as C# and VB.NET. Component assemblies
are defined in an XML based configuration file on the Microsoft
Dynamics CRM server. This configuration file determines which
methods are tied to which entity events.
• Metadata Service. Because of Microsoft Dynamics CRM's ability to
be extended, the entities and attributes available at each deployment
might be different. The Metadata Service provides the ability for a
developer to read the current definition of the platform metadata.
This information is usually cached and referenced in code.
• Workflow .NET Assemblies. The Server Programming Guide
contains details about how to create and configure .NET assemblies
for Workflow.
ISV Solutions
Many Independent Software Vendors (ISVs) have developed solutions that
extend Microsoft Dynamics CRM. ISV solutions can be found at the following
locations:
Summary
This training described Microsoft Dynamics CRM features that enable
application integration. There will be times when the basic customization
features may not be enough to meet a particular requirement, or when other
applications simply need to be made more easily accessible from within
Microsoft Dynamics CRM.
ISVs provide a variety of add-on products for Microsoft Dynamics CRM. These
products will use the application integration features with their solutions;
however, you do not need to be an ISV to use them. You may need to work with
a developer to create a solution that you will manually integrate with Microsoft
Dynamics CRM using these features. Knowledge of how these features are
integrated can help you troubleshoot problems that may arise and help you
provide greater value to the organizations where you customize Microsoft
Dynamics CRM.
2. You want to include logic that will check existing values in a form and
perform a calculation in another field. The information in the fields may
change due to actions taken in Workflow. What event should you use to
include this logic?
( ) Field OnChange Event
( ) Form OnSave Event
( ) Form OnChange Event
( ) Form OnLoad event
3. You want to include logic that will respond to user input to a particular field.
When the value in the field is modified, a calculation will need to be
performed to update another field. What event should you use to include this
logic?
( ) Field OnChange Event
( ) Form OnSave Event
( ) Form OnChange Event
( ) Form OnLoad event
4. You have some validation logic that you want to apply. This logic will make
sure that information has been provided in all the fields that require it. The
fields that may require data change, so they have not been set as "Business
Required." What event should you use to include this logic?
( ) Field OnChange Event
( ) Form OnSave Event
( ) Form OnChange Event
( ) Form OnLoad event
5. You are working with a developer who is new to Microsoft Dynamics CRM
and have explained how to include client-side code. This developer feels that
this process is will hinder his work and strongly recommends modifying the
.aspx pages so that he can link to .js files where he can develop his
customizations in the manner he is accustomed. Other than the fact that this
is not supported, why should he not do this? Choose all that apply. (Select all
that apply.)
( ) The customizations will be overwritten during an upgrade or if Microsoft
Dynamics CRM needs to be re-installed.
( ) It will not be possible to export or import the customizations.
( ) The customizations will not work for Microsoft Dynamics CRM for
Outlook when it is offline.
( ) It will not work.
7. You add code to an event, but when you test it in the preview window,
nothing happens. What is the likely reasons for this?
( ) You forgot to enable the event.
( ) There is a syntax error in your code.
( ) You have not published your form customizations.
( ) You have not saved your form customizations.
1.
2.
3.
Solutions
Test Your Knowledge
1. When is client-side code better than workflow? Choose all that apply. (Select
all that apply.)
( ) When the same logic needs to be applied regardless of where the
transaction originates.
(√) When the logic depends on user actions.
( ) When logic needs to be implemented by someone who is not a developer.
(√) When latency is unacceptable
2. You want to include logic that will check existing values in a form and
perform a calculation in another field. The information in the fields may
change due to actions taken in Workflow. What event should you use to
include this logic?
( ) Field OnChange Event
( ) Form OnSave Event
( ) Form OnChange Event
(•) Form OnLoad event
3. You want to include logic that will respond to user input to a particular field.
When the value in the field is modified, a calculation will need to be
performed to update another field. What event should you use to include this
logic?
(•) Field OnChange Event
( ) Form OnSave Event
( ) Form OnChange Event
( ) Form OnLoad event
4. You have some validation logic that you want to apply. This logic will make
sure that information has been provided in all the fields that require it. The
fields that may require data change, so they have not been set as "Business
Required." What event should you use to include this logic?
( ) Field OnChange Event
(•) Form OnSave Event
( ) Form OnChange Event
( ) Form OnLoad event
5. You are working with a developer who is new to Microsoft Dynamics CRM
and have explained how to include client-side code. This developer feels that
this process is will hinder his work and strongly recommends modifying the
.aspx pages so that he can link to .js files where he can develop his
customizations in the manner he is accustomed. Other than the fact that this
is not supported, why should he not do this? Choose all that apply. (Select all
that apply.)
(√) The customizations will be overwritten during an upgrade or if Microsoft
Dynamics CRM needs to be re-installed.
(√) It will not be possible to export or import the customizations.
(√) The customizations will not work for Microsoft Dynamics CRM for
Outlook when it is offline.
( ) It will not work.
7. You add code to an event, but when you test it in the preview window,
nothing happens. What is the likely reasons for this?
(•) You forgot to enable the event.
( ) There is a syntax error in your code.
( ) You have not published your form customizations.
( ) You have not saved your form customizations.
Privilege:
Entity: Read
Publish customizations Security roles: Customizations that change the schema
System Administrator must be published. The Publish
System Customizer Customizations privilege is separate from
other customization privileges because it
Privilege: Publish Customizations allows user-interface elements to be
customized by several people but
published only by someone who has
reviewed the customizations.
Customize entities Security roles:
These privileges allow you to change the
System Administrator
Display Name of the entity. Modification
System Customizer
of the entity attributes, form, views, or
messages require additional privileges.
Privileges:
Entity: Read Editing entity messages requires the
Entity: Write privilege:
Form: Organization Write.
Create custom entities Security roles: These privileges allow you to create a
System Administrator custom entity. Modification of the entity
System Customizer attributes, form, views, or messages
require additional privileges.
Privileges:
Entity: Read
Entity: Create
Entity: Write
A-1
Microsoft Official Training Materials for Microsoft Dynamics ™
Your use of this content is subject to your current services agreement
Customization and Configuration in Microsoft Dynamics™ CRM 4.0
Modify entity attributes Security roles: These privileges allow for modification of
System Administrator existing entity attributes only. Creation
System Customizer of new attributes requires additional
privileges.
Privileges:
Entity: Read
Attribute: Read
Attribute: Write
Privileges:
Entity: Read
Form: Write
A-3
Microsoft Official Training Materials for Microsoft Dynamics ™
Your use of this content is subject to your current services agreement
Customization and Configuration in Microsoft Dynamics™ CRM 4.0
Privileges:
Entity: Read
View: Write
Create system views Security roles:
The View: Read privilege is set to
System Administrator
Organization and cannot be changed.
System Customizer
CEO-Business Manager
Customer Service Manager
Marketing Professional
Marketing Manager
Vice President of Marketing
Sales Manager
Vice President of Sales
Privileges:
Entity: Read
View: Write
View: Create
Delete system views Security roles:
The View: Read privilege is set to
System Administrator
Organization and cannot be changed.
System Customizer
CEO-Business Manager
Customer Service Manager
Marketing Manager
Vice President of Marketing
Sales Manager
Vice President of Sales
Privileges:
Entity: Read
View: Delete
Privileges:
Entity: Read
Entity: Write
Form: Write
Download Web Services Description Security roles: The entity Read privilege is necessary
Language files System Administrator only to gain access to the URLs in the
System Customizer customization area. It is not necessary to
download the Web Services Description
Privilege: Entity: Read Language files.
A-5
Microsoft Official Training Materials for Microsoft Dynamics ™
Your use of this content is subject to your current services agreement
Customization and Configuration in Microsoft Dynamics™ CRM 4.0
INDEX