Sonoma Partners Microsoft CRM and Salesforce Blog

CRM 2011 - DocumentBody Fetch XML Bug

The other day, we ran into an issue when trying to retrieve an image attachment from a note.  We were retrieving the documentbody from the annotation entity and showing the image but it would only partially display.  The Fetch XML was similar to the following:

<fetch mapping="logical" distinct="true">
    <entity name="annotation">
        <attribute name="documentbody" />
            <condition attribute="annotationid" operator="eq" value="{DA43C8AD-4CC9-E211-B4E9-5C260AFC36D8}" />

Since we had another annotation query that was retrieving the image just fine, my co-worker, BJ Dibbern, compared the two queries and discovered one small difference.  The query above had the distinct attribute set to true, which was not necessary for this particular query.  Once the distinct=”true” was removed, then the full image displayed!

Below are the results of the same fetch xml query, the first one is with distinct set to true while the other one is false.  As you can see, the two results are completely different as the first result cuts off the documentbody in the middle.


We are submitting this interesting bug to Microsoft Support but hopefully it can save someone a lot of troubleshooting effort in the meantime!

Topics: Microsoft Dynamics CRM Microsoft Dynamics CRM 2011

CRM Solution Lifecycle Management White Paper Summary

The white paper ALM for Microsoft Dynamics CRM 2011: CRM Solution Lifecycle Management was released last Friday.  This white paper is 76 pages of very detailed information on best practices and direction for the whole solution lifecycle.  It is an invaluable read and highly recommended as it touches on an array of topics from requirements gathering, development techniques, version control, daily builds, testing and deployment.

    1. Hotfix Process

    2. A variety of hotfix types are discussed, including the deletion of solution components.  If you are a solution customizer or developer then you understand the pain in having to delete a component from a solution that has been already deployed. The white paper solves this problem with a complex solution called the “Shared Publisher Technique” on page 13 that is worth checking out.

    1. Solution Architecture

    2. Guidance is provided on three types of solution architecture:

  • One CRM Solution for One Production Deployment
  • One CRM Solution for Multiple Regional Deployments
  • Multi-Solution Environment

A scenario is provided for each type of architecture to help understand which type should be used.  The white paper also goes into detail on versioning, deployment and patching for each type of solution architecture.  All of this is good information for CRM implementation teams who haven’t ran into these specific scenarios before.

Version Control

In this section, different techniques are discussed on how to control, track, and manage changes to the source code files which are shown in the diagram below.  Using TFS, specific individual changes can be tied to work items or bugs which proves to be extremely helpful for the development process.


Solutions can be stored as a single file or multiple unpacked files.  The advantages and disadvantages of each approach are carefully detailed as well as scenarios for managed vs. unmanaged solutions.

Personally, I recommend using a Visual Studio solution to develop and keep track of all your CRM solution’s web resources as well as TFS, Subversion or a similar tool to version your solution components.  Also recommended is the CRM Solution Manager for Visual Studio which allows you to easily create, edit, and publish your files to CRM as web resources.  This helps maintain the same structure that you have created within Visual Studio.


The whole build process is detailed out including check-in policies and gated builds to help ensure code quality.  It talks about how continuous integration builds can be used to deny check-ins until the build completes successfully which is a big part in ensuring each check-in doesn’t have any breaking changes. 

Probably my favorite section in the whole white paper is about developer environments.  Recommendations are given on different options of setting up the environments, from isolated CRM instances per developer to sharing an instance for all developers.

The following is a well laid out diagram on an enterprise development scenario with a centrally prepared development environment show on page 38.  This approach is highly recommended for enterprise scenarios with several developers.  More in depth information can be found on pages 38 and 39 as well as Appendix F.


I highly recommend isolated dev environments for each developer if you will have multiple developers working on the same CRM organization.  It is much easier for developers to debug plug-ins in an isolated environment so they are not stepping on each other’s toes.  Web resource changes made by developers can then be merged into source control and the latest can be pushed to the master development org.


In this section, best practices are recommended for the best ways to find defects as early as possible.  Tests should be created for each user story.  Ideally the tests are automated and ran each night.  The paper also recommends a test plan to define testing scenarios as well as to help measure testing progress.

The authors go very in-depth on setting up testing automation, testing tools, how to manage the testing lifecycle and a big variety of testing scenarios.  In my opinion, all of these testing techniques should be used to ensure code quality and a successful deployment.

Diagram from page 41 - Running tests by using environments from Microsoft Test Manager



Two types of deployment are described, manual development deployment and automatic deployment.  Microsoft makes it easy for automatic deployment with the concept of solutions but sometimes there are external components that need to be deployed as well, such as a nightly task.  These components should be deployed automatically where possible to save time and money.  The white paper lists out different tools that can be used for automatic deployment.

The white paper then finishes with a multitude of detailed concepts and methodologies in the appendices.  In my opinion, this is a must read for all teams implementing a CRM solution.  It’ll help plan out your design and architecture for all aspects of the lifecycle to ensure a time and cost friendly implementation that is scalable and easy to maintain for the future.

Topics: Microsoft Dynamics CRM Microsoft Dynamics CRM 2011

Know Your Enemy: Boosting Your Competitive Intelligence

Today's guest blogger is Jacob Cynamon-Murphy, a Sales Engineer at Sonoma Partners

Though we may not be fighting a war each day that we are out selling, competition certainly is fierce in most industries, so I'll paraphrase Sun Tzu by saying, "If you know your [competition] and know yourself, you can win a hundred [customers] without a single loss."  Across CRM implementations, I've found that the Competitor entity is one of the least-utilized of the core entities.  With the goal of making it a more significant player in your sales arsenal, I beefed up the entity and made a managed solution for Dynamics CRM 2011 that can turn the Competitor entity into a more valuable resource in your sales efforts.


What is in the solution?

  • The Competitor entity is now firmly in the 21st century - I've added three new URL fields that can offer quick access from the Competitor record to your competition's Facebook, Twitter and LinkedIn pages.
  • In case you (or another solution you deployed) have made updates to the native Competitor form, I created a new form named "Competitor Plus".  This new form includes a tab containing the three new social media fields.  By default, this form is enabled for all roles and shows as the first role-based form for the Competitor entity; you can modify these settings to meet your users' needs.
  • I created four new Connection roles - Former Customer, Current Customer, Former Vendor and Current Vendor.  The "Customer" roles can be linked to Account and Contact records; the "Vendor" roles can be linked to Competitor records.  Additionally, Former Customer and Former Vendor are linked, as are Current Customer and Current Vendor.


How do I deploy the solution?

  • Download the Competitor Plus managed solution.
  • Within your CRM system, navigate to Settings | Solutions.
  • Click the Import button at the top of the Solutions grid.
  • Navigate to the location of the managed solution (where you downloaded or saved the file) and select the solution.
  • Complete the import wizard.


How do I use the Competitor enhancements?

  • When creating or editing Competitor records, you can populate the social media fields to add shortcuts to your competitors' pages; this will make it easier for your users to quickly find out how the competition is engaging with customers.
  • You can also leverage the new connection roles.  Opportunity natively has a N:1 relationship with Competitor, but Account and Contact do not.  For long-running relationships, these additional connection roles can provide you with visibility to current competitive relationships as well as past relationships.
    • On a Competitor record, navigate to the Connections subgrid in the left-navigation.
    • Click on the Connect button (by default, 2nd in from left).
    • In the Connect To tab, select an Account or Contact in the Name field.
    • Next, select either Former Customer or Current Customer in the As this role field.
    • Optionally, you can expand the Details tab and set the Start Date and/or End Date fields.
    • Click on the Save & Close button.
    • Users can navigate to this subgrid to quickly review current and former relationships that the competitor has had with customers and prospects.



What's next?

I'm intending this solution to be a starting point for much-needed Competitor enhancements.  If you like what you see and want to suggest additional changes, send me a Tweet (@jcynamon) or email me (jcynamon AT sonomapartners DOT com).  Additionally, I have a Microsoft Connect suggestion to create a new field type to make the social media URLs (and other common URL fields) more user-friendly - please vote it up at

Topics: Microsoft Dynamics CRM Microsoft Dynamics CRM 2011 to be Retired in Early June

We’ve been notified through the Microsoft MVP channel that the Microsoft Windows Live ID team will be shutting down the endpoint in early June.  This endpoint was never meant to be a production endpoint, and apparently there aren’t a lot of people hitting this endpoint, so shutting it down should cause minimal issues.  However, there is still some traffic hitting this endpoint therefore it appears as if some Dynamics CRM customers CRM Online organizations are still using it.

If your solution is hitting this endpoint, the fix is simple.  You just need to update your code to hit instead.  Simply pointing to this new endpoint should be all you need to do.

In order to avoid having any down time or issues with your code, we recommend you look at your solutions to see if you’re using the endpoint, and make the change to immediately.

Topics: Microsoft Dynamics CRM Microsoft Dynamics CRM 2011

Site Map Error Troubleshooting

A co-worker ran into this pesky Site Map error the other day after importing and publishing customizations into a new organization. 


Unfortunately the ability to download the log file was disabled and the CRM trace was of no help.  Since we knew the Site Map was the culprit, we opened up the XML and began to review it.  After scanning the XML we discovered a privilege requirement for an entity that was no longer being used and the entity has been removed from the main solution, therefore the new organization doesn't contain this entity. 


Once this privilege was removed and the Site Map imported back into the organization, we were error free!

Hopefully this can save someone from a lot of troubleshooting time if you run into a similar error.

Topics: Microsoft Dynamics CRM Microsoft Dynamics CRM 2011

DefenseReady Daily Standup Released to the Win 8 App Store!

We are excited to announce the release of the DefenseReady Daily Standup app on the Windows 8 App Store!

DefenseReady is a Dynamics CRM solution built by Permuta Technologies, Inc. that provides DoD and DHS organizations out-of-the-box mission-enabling solutions for Force Readiness, Mission Execution and Training Management.  Developed jointly by Sonoma Partners and Permuta, the Daily Standup app provides military commanders and leadership real-time insight into PERSTEMPO and strength levels throughout their organizations.  The app will be available for free to users of DefenseReady.

The app also has a built-in Demo Mode so even if you are not currently a DefenseReady customer, you can still check it out!



The Daily Standup app will default to the PERSTEMPO view.  PERSTEMPO stands for Personnel Tempo which is the amount of days a troop has been away from home.  A column will be displayed for every child unit of the selected unit as well as the individuals for the selected unit.  Four ranges of PERSTEMPO are used to visualize the breakdown of each unit and individual.  A unit column can then be selected to drill into that unit and see its child units and individuals. 



The strength view displays how many positions are needed and how many are filled.  This helps monitor if the organization is under or over staffed.  The Strength view is shown by Rank or by Skill and each one is represented by a bullet chart.  The gray background bard represents the number of positions needed while the solid blue bar indicates the number of occupied positions.  The light gray bar indicates a 25% overage range.  The value and percentage to the right of the chart show the amount of occupied positions.



The map view uses Bing Maps to display where troops are currently located as well a past and future locations.  The map will group the troops by location and display the number of troops in that location.  The Projection slider can be used to visualize troop locations in the past or future.

Follow-up List


The follow-up list can be displayed from the application bar.  The list will display any open waivers or tasks.  Waivers are used to get approval from a superior to go ahead and deploy a troop that has a high PERSTEMPO score.  Tasks can be used to flag a certain individual or a unit and take any notes which will be sent to the DefenseReady system.

I highly recommend checking out this app to see the ease of use and the power of DefenseReady.  It also displays the great potential of mobility with Dynamics CRM.  If your organization is looking to bring a powerful new app to the Windows 8 store, let Sonoma Partners help.  Contact us at

For more information about DefenseReady or to schedule a demo, contact

Topics: Microsoft Dynamics CRM Microsoft Dynamics CRM 2011