Welcome to my CRM Blog

Welcome to my new redesigned Dynamics CRM Blog.  My intention is to keep this more up to date than I previously had.

Hopefully this site will become a useful source of information regarding Microsoft Dynamics CRM

Chat Bots – Part Two

Part two of my Chat Bot series expands a little on the original blog post.  Again, this post is more of a demonstration than a how-to as there are plenty of articles on the Web on how to develop Chat Bots using the Microsoft Framework.

To see it in action, click on the chat area at the bottom of the screen and start typing.  If you need help, just type help to see a couple of sample commands.  The new feature in the Bot is that you can now report an abandoned vehicle.  Why, I hear you ask.  Well, in my line of work, reporting a dead animal, reporting dog poo, and reporting an abandoned vehicle is the very key to my day-to-day work (and other things)!  I kid you not 🙂

Continue reading “Chat Bots – Part Two”

Chat Bots – Part One

One of the new technologies that I have seen a lot of lately in the news, and tech blogs about Dynamics is the idea of using Chat Bots to improve customer service and to reduce the pressure on customer service front line staff.

I thought I would give them a go and see how they are created.

This post is primarily about my findings on how easy it was to create one, but is by no means a how to guide as there are plenty of resources on the internet.

Continue reading “Chat Bots – Part One”

LinqPad Utilities for Microsoft Dynamics – New Release

Today I have just released the first official version of my LinqPad Utilities for Microsoft Dynamics plugin library.

I use this tool in my everyday life working with CRM and its gradually grown in to a fully fledged tool.

It allows you to configure a number of reusable CRM Connection Strings to connect to Microsoft Dynamics (all versions) and has a number of useful utilities for working with Dynamics.

Feel free to download and try it.

LinqPad Utilities for Microsoft Dynamics

To begin with, you will need LinqPad (which is free, but you can also purchase a license) from the following site.

https://www.linqpad.net/

 

Dynamics CRM Utilities for Visual Studio

I have decided to release a small utility that I developed and have been using for a long time when developing Web Resources for CRM within Visual Studio.

It allows you to publish Web Resources to CRM straight from within CRM, and if you attach it to a Keyboard Shortcut, means you can publish it with a press of a key as soon as you have finished editing it.

It allows you to edit JS, HTML, XML and images as part of a Visual Studio Solution.  It saves your connection string locally within a project, and remembers which files relate to which CRM Web Resources.  It also allows you to run FetchXML queries, and you can save your queries as part of your Project.

It can be downloaded from here, and full instructions on how to use it are also available.

CRM Utilities for Visual Studio

There are two versions, one for Visual Studio 2017 and one that is compatible with Visual Studio 2013 and 2015.

Creating Web Resources using Dynamics CRM Themes

Very often there is a requirement to create Web Resources to be used in Dynamics CRM that provide some form of user interface.  Sometimes it may just be to display some data that you otherwise could not display using QuickView Forms, sometimes its to provide some buttons to trigger integrations that need to be on a Dashboard.

I have seen instances where the standard Windows Grey buttons are used, and also seen Web Resources that are graphically styled like they have come straight out of the Web 2.0 UI style guide.  These often look inconsistent with how Dynamics CRM looks, and can either be distracting, or look like a dog’s dinner.

Often, most good CRM developers will create a standard style sheet, upload it to their solution, and reference it from any Web Resource that needs it.  I would say that this is still a good thing to do, but I wanted to enhance it a bit so that a UI provided by a Web Resource would blend in with CRM without any additional work.  This has especially become crucial when a lot of companies will brand their Sandbox environments different to their Production environments (sometimes using garish colour schemes) to instantly alert their users as to which environment they are on.  CRM provides Custom Themes for this task, and although they are still quite limited, I wanted to be able to tap in to this feature.

Changing the colour scheme of CRM

So, I had the idea of creating a mechanism that would automatically retrieve the Theme and style up any User Interface elements using those settings.

Continue reading “Creating Web Resources using Dynamics CRM Themes”

Adding Icons and Tooltips to a subgrid column

Over the years I have seen many unsupported solutions for getting nice little icons in a sub grid.  Often, this requirement stems from needing some form of traffic light display, and has only been possible by some sort of unsupported customizations where you can manipulate the DOM.

Now, with Dynamics 365 (December 2016 Update) for both online and on premise, you can do this in a very easy way by following the guide linked at the bottom of this post.

Here is my experience with it so far.

Continue reading “Adding Icons and Tooltips to a subgrid column”

FormXML solution layering

When working with Managed Solutions, and layering them on top of each other, be mindful of one very important fact.

If you include an entity in a solution, that is also present in another solution, then the most recent solution to be installed in a system will take precedent over others when it comes to certain things such as entity forms.

For example, if you have solution A containing entity 1 and install it managed onto a server, and then later install solution B which also contains entity 1, then it’s solution B’s customisations that will be applied. If you later edit entity 1’s form within solution A and try and install it onto the server containing both solutions, the form customisations will not take.

You must always try and ensure, where possible, that each entity only exists in one solution. This would not apply if you were always going to be providing both solutions as a pair to be installed.

To safeguard, always attempt to create a new form in each solution so that customisations are carried out in each solutions specific form, and always try to avoid accidentally including entities in solutions where they don’t need to be as you can’t always roll them back due to dependancies.

Good news is that with CRM 2016, you can include only the bits you need in a solution making it easier to avoid these kind of layering issues.