Creating a New area in CRM 2015 – By Hand

Emphasis on the “By Hand”.  I’d previously blogged about how to modify the Site Map in Dynamics365 with some of the new  ribbon editing features very reminiscent of Ribbon Bench (here for reference Site Maps and Custom Entities – Oh My!) – but recently had the pleasure of having to do this in 2015, with no tools.

The modification of the XML customizations.xml file itself wasn’t too bad on it’s own, where things really became complicated was when I wanted to add an image to my area.

Modifying the Customizations.xml File

To create your new Groups and Areas – check out this post that does a great job of walking you through how to export, modify and import the XML file (along with screenshots).

Adding an Image to your Area

Now where things went

Read More

Creating a custom Tab in VSTO

If you haven’t used VSTO, it’s the framework for developing Office Integrations.  Yes, people are still developing Office plugins, although Flow is coming on strong, there is still a need for organizations to have components directly embedded in their primary applications of choice.

If you’re looking to get started on building your own Tab in Office you can do this very easily by adding a Ribbon.xml file to your VSTO project with the following syntax.

<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="" onLoad="Ribbon_Load">
 <!--<tab idMso="TabMail">-->
 <tab id="tabForgotten" label="Coder">
 <group id="MyGroup" label="Content">
 <button id="btnGo" label="Connect" 
 screentip="Go" onAction="OnConnectClicked"
 supertip="Go to start."/>

Once you’ve added that snippet, simply navigate back to your main AddIn.cs file and instantiate your ribbon.

protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
return new SuperRibbon();

Compile and run (in this example, I created an Outlook VSTO plugin) and you

Read More

Change Tracking in Dynamics365

In Dynamics 2015 Update 1, a small update was released that you might have missed called Change Tracking.  This feature is implemented via the CRM SDK and let’s developers query for changes to the system, supplying a watermark (the token) from the last fetch to start retrieving from in the next fetch.

In terms of data retrieval, this is a big feature as no longer do you need to add fields into Dynamics to store this information and instead can leverage the platform as is to return this data and keep track of it for you.

For this post, I used the code from MSDN, modifying it slightly.

Enabling Change Tracking

Change Tracking is enabled on a per-entity basis – another great idea as it enforces the notion of “only use what you

Read More

Site Maps and Custom Entities – Oh My!

You can now create your own groups and areas in Dynamics365 giving you further customization over your user’s experience in the application when accessing your custom entities.

I recently got a chance to play with this and was really impressed with it’s simplicity.

Note: This does not replace the security permissions to your entities which must be in place alongside these changes which are User Interface only.

You can see from my screenshot that you can add new areas (in my case “Custom”), new groups (in my case “My Goodies”) and then Subareas (in my case I dropped in a new custom entity but there are other options here too.

tools.PNGRead More

Using Dynamics365 as a Queue for Data Synchronization

Over the years, I’ve migrated a lot of data from on-premise systems into Dynamics365 (whether they be existing CRM system, homegrown solutions or off the shelf packages).  I’ve used a number of third-party tools to accomplish these tasks (Scribe and Kingsway) but have also written my own when the need arose.

On a recent project, faced with yet more synchronization requests and the need for more infrastructure to manage changes, mediate conflicts, prevent ping-ponging data writes, etc, etc.  I started to change my thinking from being able to have everything on-premise (i.e., the ability to queue up new Virtual Images and tons of server space et al) to think of how I solve this problem if all I had was Dynamics365 and the server I am moving data from.


Read More