Solutions in CRM 2011

One of the common problems using previous versions of Dynamics CRM was managing the various customisations throughout a project, particularly when thinking of developing reusable sets of customisations that could be deployed to multiple CRM Solutions.

The only method we had was to use a different customisation prefix (from the default new_) for different sets of customisations to manage the different fields and entities we may have wanted to re-use, followed by careful version management for exporting certain entities into separate XML files which could then be imported into other solutions as bite-size components.  This could be done with enough attention and common sense, but made installing, and particularly uninstalling, reusable components into CRM deployments difficult.

CRM 2011 aims to resolve this problem through the use of Solutions that act to group different sets of customisations into individual components which can then be added or removed to a deployment of CRM 2011 through the customisation area.  This article aims to detail an overview of Solutions in CRM 2011 and a basic example of how these could be used.

Defining a new Solution in CRM 2011

Our initial step is to browse to the Solutions section within the Settings area of 2011.

image

The Customisation area of the Settings section in 2011

Here we can see the list of Solutions present in this deployment of CRM 2011, for most deployments this will initially be blank – however we can create a new Solution here that we can use to group new Attributes or Entities we want to add to CRM as a distinct unit.

image

The Solutions area of CRM 2011

We can then provide the Solution a Name, Publisher, Configuration Page and Version.

Display Name The real-world name for the Solution, with the Logical Name defaulting from this.
Name The Logical or behind-the-scenes Name for the Solution.
Publisher The Publisher defines who is authoring and distributing the CRM 2011 Solution.  Initially each CRM 2011 Deployment defaults to a specific publisher for that Deployment, but this can be amended to define a specific Publisher record and description about the Publisher.
Configuration Page Links to a Web Resource which will act as the Configuration Page for this Solution, such that the Solution has an area for Administrative Users of the Solution to detail any Settings or Connections that may be required for the Solution.
Version The Version Number given for the Solution, useful when releasing different versions of the same Solution to Customers or Clients.
image

Creating a new Solution in CRM 2011

After defining the Solution, we can then add new Attributes, Entities and other customisation areas to the deployment of CRM 2011 as part of the new Solution.

Adding Content to the Solution

Once the Solution has been added to CRM we can add different customisations, or components, as parts of the new solution:

image

Adding a new Entity Component to the Solution

Taking an example of a possible Solution format we could use, we could envisage the scenario where a business runs a number of Hotel Properties; each of which collects information about the standard of the Hotel and feedback on the level of service provided by the staff in the form of a Customer Questionnaire.  This feedback is then collected in the form of a simple Spreadsheet with one row per Questionnaire, as shown below:

image

Example Spreadsheet data to import into the solution

To visualise this scenario, we could create the following customisations as part of a new  2011 Solution to address these requirements:

  • A Custom Option Set for describing the result of a Service Questionnaire Tick between Excellent, Good, Satisfactory and Poor.
  • An additional CSQ Entity to represent a returned Questionnaire.
  • An additional Property Entity to represent the property or location that a returned questionnaire refers to.
  • Additional fields on the CSQ Entity for different ranking scores: Availability, Competence, Attention to Requirements and Overall Impression – each using the Custom Option Set defined.
  • Additional fields on the CSQ Entity to describe the Date that the Questionnaire was returned.
  • Additional N:1 relationship between the CSQ Entity and the Property entity to describe which returned questionnaires relate to which location.
  • Additional N:1 relationship between the CSQ Entity and the Customer who returned the questionnaire. (potentially blank if the Customer completed the Questionnaire anonymously)

This list of customisations then fulfils our basic requirement to record these Feedback Questionnaires in CRM 2011 – we can then create a Datamap to meet the requirement to import the Questionnaire raw data into CRM without the need for manual entry:

image

Configuring the Data Map to import the Spreadsheet CSQ data into CRM 2011 CSQ records

The Data Import alongside the Solution Customisations then gives us a workable solution to the requirements to import and record the Questionnaire information in CRM 2011.

image

The Questionnaire information in CRM 2011 as per the Solution Customisation and the imported data.

Using this example of a developed solution, we can then think about how we can Export, Import or Remove this Solution from our CRM 2011 Deployment.

Exporting a Solution as XML

From here we can then decide how the Solution can be used outside this deployment of CRM 2011, similar in respects to how we could export/import XML files when using CRM 3 or 4, but instead of exporting or importing whole deployments or individual entities here we can export just the solution we have developed itself.

image

Exporting the XML for the Solution.

Here we can export the XML describing the Solution we have created, either encompassing all aspects of the solution’s customisations or simply certain types of customisation or configuration for the solution.

image

Choosing which aspects of System Customisation or Configuration to export as XML from the selected Solution.

The next step is either we want to export the Solution XML as a Managed or Unmanaged package which determines how the Solution can be used when imported into a CRM 2011 Deployment.

image

Choosing whether to export the Solution XML as a Managed Solution or an Unmanaged Solution.

Once we finished the Export Solution Wizard, the XML file can then be downloaded and saved for future use either as a Managed Solution or an Unmanaged Solution.

Managed Solutions vs Unmanaged Solutions

The concept of Managed Solutions and Unmanged Solutions is a new option in CRM 2011 to allow us to export our Solution as either a set of flexible customisations that can be further changed or customised in the future when imported into other CRM 2011 Deployments, or as a set of fixed customisations that can only be customised to an extent controlled by the Solution’s original author.

  Unmanaged Solution Managed Solution
Can be Deleted By removing each Component individually. Removing the Solution will automatically remove all the Components involved.
Can be Customised Components can be customised. Components can only be customised accordingly to predefined Managed Properties.
Can be Exported Can be exported to XML files as either a Managed or Unmanaged Solution Cannot be exported

Therefore when authoring a new Solution, each area of customisation involved in a CRM 2011 Solution will have an option to alter the Managed Properties for that component:

image

Control which aspects of an entity in the solution can be changed or customised after importing the solution as part of a Managed Solution.

This set of Managed Properties then affects the level of customisation or changes that can be made to the Solution when imported into a CRM 2011 Deployment as a Managed Solution.

Removing a Solution

The useful aspect about grouping sets of customisations as a Managed Solution is that the Solution can be removed from a CRM 2011 Deployment as a single action.  (whereas Unmanaged Solutions or Customisations in CRM 3 or 4 would need to be deleted component by component)

image

Removing a Managed Solution from CRM 2011 to also remove all the Customisation Components involved with the Solution.

Now when browse to the Service area of our CRM 2011 Deployment – both the CSQ and Properties entities have been removed, as both of these Entity Components were part of the Managed Solution that has been removed/uninstalled.

Solution Development

This process of development, export and then import gives us a Solution Development Lifecycle when using CRM 2011 that is similar to the traditional Software Development Lifecycle for developing custom applications – when we can think of the Unmanaged Solution XML as the core Code or Script, and the Managed Solution XML as the compiled production Code.

Development   Test Production
Unmanaged Solution   Imported as a Managed Solution Imported as a Managed Solution
Constructed by Development Team Exported as a Managed Solution Tested as a Managed Solution by the Testing Team Used in Production

Downloadable Examples

The following two ZIP file downloads contain the XML for the Solution outlined in this post, both as a Managed version of the Solution and the Unmanaged version.

Unmanaged Solution XML Managed Solution XML

Conclusion

This concept of Solutions goes a long way to resolve the problems that we encountered when building reusable sets of customisation in CRM 3 and 4 – allowing us to use and release almost ‘drag-and-drop’ extensions that we can add or remove into our CRM 2011 Deployments as managed extensions.

As Consultants and Developers, this gives us a more manageable method of releasing and installing Future Phase Releases or Issue Resolution Releases to our Customers; more generally this can also allow Dynamics Partners and Professionals to offer their solutions as new extended areas of functionality for general release via the Dynamics Marketplace built into the Settings area of CRM 2011.

image

Dynamics Marketplace area within CRM 2011.

image

An example of a Dynamics CRM Solution or Project for download through the Dynamics Marketplace – built into the Microsoft PinPoint system for managing Partner Releases

Further information about PinPoint can be found here.

Advertisements
This entry was posted in Consultancy, CRM 2011, Customisation and tagged , . Bookmark the permalink.

3 Responses to Solutions in CRM 2011

  1. Pingback: Security Roles and Privileges in CRM 2011 – New Features « Nishant Rana's Weblog

  2. kotireddy555 says:

    Hi ,
    Nice Article.
    Question : i have one problem after exporting into test env , on Entity the attributes are displaying twice. any idea …
    Thanks in Advance.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s