Happy holidays everyone!

In celebration for another great year working with Dynamics CRM. I would like to offer everyone a discount on all new product purchases. 

From now until December 31st, 2014, enjoy 25% off of any of our productivity products for Dynamics CRM.

 

Check them out:

Transformer! upgrades your JavaScript from the Dynamics CRM 4.0 object model to a more supported 2011+ object model.

 

SnapShot! is the ultimate documentation tool for your Dynamics CRM organization.

 

Explorer! helps you answer questions about your Dynamics CRM data including:  “Do I really show my users the data they need to see” and “Are my forms properly designed, showing the most important information first?”

 

Thanks again for a great year and may you and yours have a happy and safe holiday season.

Thanks, Mitch

A new version of SnapShot! for Dynamics CRM is now available.  See the product page for more information.

 

Enhancements

The following enhancements have been made:

 

Security Privilege Raw Data Report

The Raw Security report now includes the entity name which should better allow you to filter the data to examine the data that is being report back from Dynamics CRM.

 

Empty JavaScript Event Handlers

This may be an edge-case for most people, but for some it might be fairly useful.  Here is the scenario:

You are upgrading your Dynamics CRM system from CRM 2011 to CRM 2013 or 2015 and you have a lot of JavaScript still in the Dynamics CRM 4.0 object model.  That means that you cannot upgrade to CRM 2013 because it will not pass the pre-upgrade checks.

You need to verify the physical upgrade process in your test environment to make sure that everything will work in production, but you have not fully completed the JavaScript upgrade. ( Something that Transformer! is really go at.)

This new feature will create empty JavaScript functions for each Event Handler found on a form.  This allows you to temporarily replace the actual web resources with a web resource consisting of these empty functions, commonly called “stubs.”

This will allow you to verify the upgrade process because you have removed all of the CRM 4.0 JavaScript, and since the functions actually exist within the web resources, your forms will function as they always have and you will not receive “object not found” messages as you would see had you just removed the contents of the web resource entirely. (which is the other option).

 

 

Issues Corrected

The user-security report was not always reporting the correct information in the Custom Entities section, so I spent some type to track down the issue and correct the report. While I was in that area, I also enhanced the report to make it better resemble the Security Role display. The entities are now sorted alphabetically and when no security privilege is found, the white circle is displayed.

image

Here is the detail of that error:

Some plug-ins or custom workflow activities in your system appear to be using the Microsoft CRM 4.0 SDK. Use of the Microsoft CRM 4.0 SDK is not supported in this release. For information about how to upgrade custom code, refer to the Microsoft Dynamics CRM 2011 SDK topic "Upgrade Your Code from Microsoft Dynamics CRM 4.0 to Microsoft Dynamics CRM".
We have detected the presence of legacy component(s) during upgrade, these components are not supported in Dynamics CRM 2013. Please refer to upgrade log file C:\Users\crmadmin\AppData\Roaming\Microsoft\MSCRM\Logs\LegacyFeatureCheck.xml for more information.

When you look at that XML file you will see the following:

<DeploymentVerificationResults xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Result>
    <OrganizationName>***Deployment***</OrganizationName>
    <OrganizationId>00000000-0000-0000-0000-000000000000</OrganizationId>
    <Issues>0</Issues>
    <Results>
      <VerificationResult>
        <Severity>Info</Severity>
        <Component>General</Component>
        <ComponentId>00000000-0000-0000-0000-000000000000</ComponentId>
        <Message>Checking for the ISV folder when running on the web server.</Message>
      </VerificationResult>
    </Results>
  </Result>
  <Result>
    <OrganizationName>TestOrg</OrganizationName>
    <OrganizationUniqueName>TestOrg</OrganizationUniqueName>
    <OrganizationId>00000000-0000-0000-0000-000000000000</OrganizationId>
    <Issues>4</Issues>
    <Results>
      <VerificationResult>
        <Severity>Info</Severity>
        <Component>General</Component>
        <ComponentId>00000000-0000-0000-0000-000000000000</ComponentId>
        <Message>Checking for Microsoft Dynamics CRM 4.0 plug-ins</Message>
      </VerificationResult>
      <VerificationResult>
        <Severity>Info</Severity>
        <Component>PluginAssembly</Component>
        <ComponentId>6674346c-b91b-4083-9867-47ca9b0b0dd7</ComponentId>
        <Message>Name: MainPlugin, Version: 1.0.0.0, Length: 21164, Location: 
                 Database, Is V4: True.</Message>
      </VerificationResult>
      <VerificationResult>
        <Severity>Warning</Severity>
        <Component>PluginAssembly</Component>
        <ComponentId>6674346c-b91b-4083-9867-47ca9b0b0dd7</ComponentId>
        <Message>Assembly "MainPlugin" with version '1.0.0.0' 
                 references the CRM 4.0 SDK.</Message>
      </VerificationResult>
      <VerificationResult>
        <Severity>Info</Severity>
        <Component>PluginAssembly</Component>
        <ComponentId>28c70061-56d3-4ec3-a62d-8fb83743a1b3</ComponentId>
        <Message>Name: ISV.MSCrm.Tools.Plugin.Crm40, Version: 7.0.0.0, Length: 98304, 
                 Location: Database, Is V4: True.</Message>
      </VerificationResult>
      <VerificationResult>
        <Severity>Warning</Severity>
        <Component>PluginAssembly</Component>
        <ComponentId>28c70061-56d3-4ec3-a62d-8fb83743a1b3</ComponentId>
        <Message>Assembly "ISV.MSCrm.Tools.Plugin.Crm40" with version '7.0.0.0' 
                 references the CRM 4.0 SDK.</Message>
      </VerificationResult>
      <VerificationResult>
        <Severity>Error</Severity>
        <Component>Plugin</Component>
        <ComponentId>41d526ec-0be1-4b46-84a9-695cc10ff248</ComponentId>
        <Message>'ISV.MSCrm.Tools.Plugin.Crm40.EntityConversionMonitor' 
                  registered for 'Create' of 'quote' appears to be using CRM 4.0 SDK.</Message>
      </VerificationResult>
      <VerificationResult>
        <Severity>Error</Severity>
        <Component>Plugin</Component>
        <ComponentId>41d526ec-0be1-4b46-84a9-695cc10ff248</ComponentId>
        <Message>'ISV.MSCrm.Tools.Plugin.Crm40.EntityConversionMonitor' 
                  registered for 'Create' of 'salesorder' appears to be using CRM 4.0 SDK.</Message>
      </VerificationResult>
      <VerificationResult>
        <Severity>Info</Severity>
        <Component>General</Component>
        <ComponentId>00000000-0000-0000-0000-000000000000</ComponentId>
        <Message>Checking for web resources accessing the 2007 web service endpoint</Message>
      </VerificationResult>
      <VerificationResult>
        <Severity>Info</Severity>
        <Component>WebResource</Component>
        <ComponentId>00000000-0000-0000-0000-000000000000</ComponentId>
        <Message>Checking 55 web resources</Message>
      </VerificationResult>
      <VerificationResult>
        <Severity>Info</Severity>
        <Component>WebResource</Component>
        <ComponentId>00000000-0000-0000-0000-000000000000</ComponentId>
        <Message>Did not find any web resources that contain calls to 
                 the 2007 web service endpoint</Message>
      </VerificationResult>
    </Results>
  </Result>
</DeploymentVerificationResults>

 

What you have in this list is the results of a series of tests performed by the validation process.  These tests check various components, such as plugins and web resources, for code that would cause a problem with a function Dynamics CRM 2013 system.

The Severity of the result will dictate if it passes or fails.  Here are the options:

Info is just an FYI message.

Warning contains warning information about a potential problem.  It is not enough to stop the upgrade, but it is something that needs to be reviewed and addressed.

Error conditions will actually cause the validation process to fail and keep you from performing the upgrade.

 

As you can see within the XML, the Error condition exists because one of the plugins is using the Dynamics CRM 4.0 endpoint (what they refer to as the 2007 endpoint).

The solution, in this case, was to remove the plugin assembly and associated steps from the database before proceeding with the upgrade.  That was fine in this case since it was a third-party plugin that we are upgrading anyway.  But, had it been a plugin that was actually used in production, it would have to be written.

The Dynamics CRM team has added YouTube and a Facebook app to their growing list of social and community sites.

You can access the YouTube page here:

https://www.youtube.com/user/msdyncomm/DynamicsCRM

The Facebook App can be accessed directly at:

https://apps.facebook.com/microsoftdynamics/

 

Twenty-One Lessons in Twenty-One Days

xRM Coaches

 

I have conducted a lot of training over the past two years but found that I was always missing connections to new students, mostly due to scheduling conflicts or just by them having too busy a schedule to take off work for a couple of days.

Even after I moved most of my training to the half-day model, I still had people who had interest, but no time.

That led me to explorations of other training solutions, one of which is a series of self-study courses I call Twenty-One Squared.

 

The Twenty-One Squared Concept

I wanted to break things into bite-sized chunks of content that anyone could consume in their own time, at their own pace, while also enabling them to get fairly immersed in a topic.

Each lesson is designed to take between 15 and 60 minutes to complete, depending on the subject matter.

These will be hands-on exercises where you not just read about what to do, you actually do it.  Much like the design of my instructor-led courses.

 

Topic Areas

I am working through the final processes of the following topic areas:

  • Dynamics CRM Administration
  • Introduction to Dynamics CRM JavaScript
  • Advanced Dynamics CRM JavaScript
  • Introduction to Dynamics CRM .NET Development

 

Training Format

Each course consists of a training and exercise guide and each lesson is mostly self-contained, though some lessons build on previous topic areas and concepts.

Additional supporting materials are provided as is needed by the course.

 

Need Additional Information?

If you would like to sign up to be notified as the courses become available, the please complete the following survey:

http://www.xrmcoaches.com/21-squared-training-survey

My goal is to make these available in the next few weeks, depending on availability and interest.

 

Please let me know if you have any other comments or thoughts on the concept or the materials.

My Dynamics CRM JavaScript converter, Transformer!, has been updated to version 2.9.

Visit the Transformer! product page for more information about the product and the conversion process or download the documentation.

 

In This Update:

We have added several additional JavaScript object model conversions:

document.getElementById("tab1Tab")
converts to:  Xrm.Page.ui.tabs.get(1)

document.all.crmFormSubmitId.value
convets to: Xrm.Page.data.entity.getId()

crmForm.all.name.parentElement.parentElement.parentElement.style.display="block";
converts to:  Xrm.Page.getControl("name").getParent().setVisible(true);

crmForm.all.name.parentNode.parentNode.parentNode.parentNode.style.display = "none";
converts to:  Xrm.Page.getControl("name").getParent().setVisible(false);

 

As always, if you find something that did not convert in the way you expected, please let me know so I can perform an investigation and hopefully reach a solution.

I have been working on several upgrade scenarios lately and have decided to offer a new license for my documentation utility, SnapShot! for Dynamics CRM.

SnapShot! is designed to give you a complete snapshot of your Dynamics CRM organization.  Since things change over time, it is normally licensed on an annual basic

But what if you only need to run it once?  That is the question I have always asked myself.  So…

 

Announcing the 7-Day SnapShot! License

This is mainly geared toward situations where you just need to run SnapShot! one time and will not need to use it again for that organization.  This can happen in an upgrade situation, or maybe when you are trying to get a feel for the current state of an organization, etc.

Regardless of the requirements, I hope you find the new license type useful.

 

Visit the SnapShot! product page for more information.

If you are looking to get started with Dynamics CRM 2013 development, and are looking for an instructor-led, hands-on workshop, then let me introduce you to: Extending Dynamics CRM 2013.

 

When:

Monday, December 8th through Friday, December 12th.

Class will run between 4 and 6 hours per day, depending on the content for that day.

Where:

This is a Internet-based workshop with each student having their own virtual environment for the duration of the course.

How Much:

$1,695 per student with a discount available for multiple students.

Eventbrite - Extending Dynamics CRM 2013 (December)

 
What:

Day 1: Introduction to Dynamics CRM Development

The first day we will cover the basics of Dynamics CRM development including:

  • Dynamics CRM Architecture
  • Extensibility points
  • Working with the CRM SDK including:
    • Creating, retrieving, Deleting and Updating data
    • Executing requests
    • Generating early-bound classes using the CrmSvcUtil application

Day 2: CRM Query Strategies

On day two we will be working with the various data retrieval technologies built into the Dynamics CRM SDK.

  • QueryExpression
  • QueryByAttribute
  • FetchXml

Day 3: Plugins and Custom Workflow Activities

Day three will be filled by developing plugins and custom workflow activities.

Day 4: JavaScript

Day four will shift to the client where we will work with:

  • The Dynamics CRM 2013 JavaScript object model
  • The XrmSvcToolkit

Day 5: User Experience Customizations

The final day will be focused on:

  • Editing the SiteMap
  • Editing the Ribbon
  • Working with Solutions          

 

Requirements:

1. It is assumed that you already know and have used Dynamics CRM 2011 or 2013.  ( this is not an introduction to Dynamics CRM class so you will need to understand how the product works. ).

2, This is a class for developers, which means you need to know how to use Visual Studio, .NET and JavaScript.

3. You must be prepared to learn. This is a hands-on class and you need to be prepared and willing to do a lot of development work.

4. You need to be willing to have fun.  Having fun makes the class better for everyone.

 

If you have any questions, then please let me know.

Most of the Dynamics CRM developers I know use C# as their programming language of choice but VB.NET is an alternative.

If you have a few minutes, please vote in the poll (located on the right-side of my main blog page).

A pre-release of the Dynamics CRM 2015 SDK is now available. This SDK has a version number of 7.0.a and you may download it here:

http://www.microsoft.com/en-us/download/details.aspx?id=44567

 

What’s New

After you download and install the SDK, open the help file and navigate to this topic:

What's new for developers

Developers will be able to leverage the following enhancements and new capabilities in this release:

  • Product catalog enhancements
  • Use hierarchical data
  • Apply hierarchical security models
  • Use calculated and rollup attributes created in Dynamics CRM
  • Write form scripts that interact with business process flows
  • Use field-level security with system entities
  • Create business rules instead of writing code
  • Add custom help content
  • Use two-factor authentication
  • New messages in the Organization web service
  • New messages in the Deployment web service
  • New entities
  • New privileges
  • New NuGet packages

As you can see, lots and lots of information for us to dig through.

As always, the Dynamics CRM SDK and Documentation team is producing great content and keeping us all in the loop on the new stuff.

Sign up for our new KnowledgeBits service and get news, tips and tricks and more, delivered straight to your inbox.