In anticipation of the Spring Wave release of CRM (which I am really excited about), I have been doing some research into ADXstudio and CRM Portals. As you may already know, Microsoft bought ADXstudio last year and aims to tightly integrate the product under new branding, as an add-on for existing CRM Online customers and a volume license product for on-premise CRM deployments. CRM Portals are shortly going to become more and more relevant in the months ahead, to the point of which they will be crucial for any serious CRM developer/consultant; my principal aim of the above is to get a flavour relating to the products background and Microsoft’s long term direction resulting from the acquisition.

Whilst reading the Microsoft Acquisition FAQ on the Adxstudio website, I stumbled upon this rather interesting Q&A:

9. Are there plans for an Adxstudio certification program?

Adxstudio certification will be a module that CRM Partners will certify on as part as an all-inclusive Dynamics Service Certification (Target launch July 2016)

Although vague in nature, there is enough detail there for us to assume that there will be some changes to the existing exams currently covering the CRM product this year – either modifications to an existing exam, an exam overhaul/replacement or even a brand new exam altogether. Here’s why I think it is incredibly likely to expect at least 1 new CRM exam before the end of the summer, and why this is, arguably, a good thing:

  • I don’t speak with much authority on this first point unfortunately, but taking a cursory glance over the ADXStudio product suggests that there is a lot to learn and cover in order to implement and maintain a portal for your CRM instance. I therefore think it would prove difficult to incorporate the entire lifecycle of CRM Portals as part of an existing exam; indeed, the trend seems to suggest a move towards more specialised exams, given that the MB2-704 exam was, effectively, split into 2 new exams as part of the CRM 2016 release. Having a singular exam that does not distract itself with the breadth of other features within CRM would seem to be the best approach to ensure that professionals fully understand how to use the product.
  • Having a dedicated exam, plus an accompanying Microsoft Learning course, for CRM Portals makes sense as it not necessarily a foregone conclusion that everything will currently be using ADXstudio as part of their CRM deployment. Granted, it has been incredibly popular amongst CRM Partners across the globe. But it is still likely that most CRM professionals would have only at least heard of ADXstudio previously, having no direct experience using the product. By putting in place an exam and Microsoft Learning course for the product, Microsoft will enable those people to dive into the product quickly and effectively and, by association, drive sales of the product in the years ahead.
  • Microsoft have recently announced a price hike for all Microsoft Certification exams, which is expected to take effect for any exam booked globally after June 30th. It might just be a coincidence, but I can see the sense of holding off on releasing any significant new exams until the price hike takes effect. It’s just good business after all 🙂
  • To the chagrin of some within the CRM Community, there has been no new updated exam to replace the MB2-701 Extending Microsoft Dynamics CRM 2013 (although, strangely, updated Microsoft curriculum was released to Microsoft training providers for CRM 2015). This is something which I have been hotly anticipating myself for the past 6 months, given the number of changes involved as part of 2015’s Update 1. One would hope that, in line with Spring Wave release, an Extending Microsoft Dynamics CRM 2016 exam hits in the near future, so that CRM developers can demonstrate their competencies in the latest release(s) of CRM.

Perhaps I am being overly hopeful in anticipating a new exam; it could just be that the existing MB2-714 exam is simply updated to incorporate new content relating to CRM Portal. I think this could be a damaging oversight though, and could have long-term implications in regards to driving adoption of the product. It is incredibly important (one would assume) that Microsoft is able to record as many CRM Portal subscription add-on/volume license purchases, as quickly as possible, for the new product; putting out an olive branch to those within the CRM community who have not yet taken the dive with ADXStudio is an important consideration that can only help achieve the assumed aims of Microsoft’s acquisition last year.

I recently took the plunge and bought an annual Visual Studio Professional subscription. I was already aware that organisations could purchase these subscriptions through a volume license agreement, and also knew about some of the benefits available as part of a subscription. As I begin to immerse myself more and more with Dynamics CRM and how the platform integrates with an increasing array of different Microsoft products, I thought having a subscription would be a good way to keep continually up to date with what is happening in the world of Microsoft. I’ve spent a couple of weeks now utilising the various benefits on offer as part of a subscription, and I am now fairly convinced that anyone who considers themselves to be a serious Microsoft professional should have a subscription, either on an individual basis or through the company they work with. Here’s just a few of the things that I have found beneficial about having a subscription, and why each one makes an important difference:

Azure Credits

Azure, I hope, needs no introduction for those who are currently working within the cloud space. I have been pushing myself towards fully understanding everything that Azure can offer, as the Dynamics CRM product is increasingly starting to offer various types of add-on/integrations with the platform (in particular, machine learning, which is something I am very interested in at the moment). The nice thing about having an (annual) Visual Studio Professional subscription is that you get £35 ($50) worth of Azure credits each month that you can use however you wish. The amount may not seem to be much, but with this you could very easily pay for a development virtual machine, a 250GB SQL database or multiple Basic 2GB SQL databases. Or alternatively, you can use the credit to help subsidise some of the more expensive of the previous options to help create your own personal Azure workbench, website etc. It’s looking more and more likely that CRM professionals will need to have a solid grasp of the Azure platform, what it can offer and how it relates to CRM in the months ahead;  having these free credits gives you an excellent excuse to dive straight in.

Free Dev Software

Perhaps one of the major selling points of a subscription is access to development use only versions of Windows, SQL Server and other Microsoft products. Thanks to the license keys and software on offer, I have been able to successfully setup up my own development server “farm” through the use of Hyper-V – in the process, learning more about the setup and administration of Windows Server 2012 R2, Active Directory and the many other server roles that are required as part of a domain deployment. This is invaluable experience that is almost impossible to replicate via book reading, watching videos online etc. and I would encourage both individuals and organisations to make the appropriate investment in a dedicated development/test environment as an absolute minimum requirement if you are intending to offer some kind of IT provision. One drawback is that the really good software (*coughDynamicsCRMServercough*) is sadly not available as part of the Professional subscription. To get your hands on this, then you would need to look at purchasing an Enterprise subscription, which currently knocks in at a whopping £1,832.09 ($2,999). This is clearly a deliberate choice on behalf of Microsoft, given that you have the likes of enterprise-grade applications like Exchange and SharePoint up for grabs.

Training Courses

One of the surprise benefits I found of having a subscription is access to the Imagine Academy e-learning site. Imagine Academy is geared towards usage by higher education providers as a supplement to any academic courses they may be offering instruction in and gives you access to online versions of most (not all, by the looks of it) of the official courses on offer by Microsoft for Windows, SQL Server, Dynamics and Azure. The courses are a mixture of module-based videos, with some multiple choice knowledge checks and interactive demonstrations (depending on the course you are working through). Whilst I will be quick to admit that these courses are no real substitute for their paid versions within a classroom/lab environment, I have been able to successfully use the courses on offer as a useful revision tool to recently pass the MB2-714 – Microsoft Dynamics CRM 2016 Customer Service exam, something which I was dreading as a result of the splitting out of these exams as part CRM 2016.

Xamarin

Along with some of the other high profile acquisitions made within the last 12 months by Microsoft, it was announced earlier this year that Xamarin had now joined this list as well. As Microsoft begin to take a much more agnostic approach when it comes to which platforms their key applications can run on, the acquisition of Xamarin cements this further by encouraging C# developers to begin to modify their applications so that they can be run on iOS, OS X and Android, without the hassle or effort you would typically expect. Whilst Xamarin is available without the need to purchase a Visual Studio subscription, what you do get is access to some of the “getting started” resources as part of Xamarin University, in order to help developers get to grips with everything the platform has to offer. What’s also good with Xamarin is that you can download it for OS X and write C# code from there; something which I am still trying to get my head around and not something you would have expected to say 10 years ago! I am really interested by the potential that Xamarin has in helping to increase application portability, using a programming language that I have found to be incredibly versatile to help deploy apps onto my preferred mobile operating system, iOS.

Does anyone else have a list of what they think are the best benefits of a subscription, or general feedback on their Visual Studio subscription? Let me know in the comments below!

The introduction of Excel Online within Dynamics CRM was one of those big, exciting moments within the applications history. For Excel heads globally, it provides a familiar interface in which CRM data can be consumed and modified, without need to take data completely off CRM in the process. It is also a feature that can easily be used by CRM Administrators in order to perform quick changes to CRM data. It’s also one of the benefits of using CRM Online over On-Premise, and probably something I should of included as part of my previous analysis on the subject.

As great as the feature is, like anything with CRM, it is subject to occasional issues in practice; particularly if you use bespoke security roles as opposed to the “out of the box” ones provided by Microsoft. We encountered an issue recently where one of our colleagues had a problem importing modified data from Excel Online back into CRM. Our colleague had no problem opening the data in Excel Online, with the problem only surfacing when they clicked the Save Changes to CRM button. The rather lovely looking error message looked something like this:

Unhandled Exception: System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]: Principal user (Id=0c6ff908-a6c9-e511-8144-c4346bac5e0c, type=8) is missing prvReadImportFile privilege (Id=fe46d775-ca5c-4a09-af93-99a133455306)Detail:

<OrganizationServiceFault xmlns:i=”http://www.w3.org/2001/XMLSchema-instance” xmlns=”http://schemas.microsoft.com/xrm/2011/Contracts”>

<ErrorCode>-2147220960</ErrorCode>

<ErrorDetails xmlns:d2p1=”http://schemas.datacontract.org/2004/07/System.Collections.Generic” />

<Message>Principal user (Id=0c6ff908-a6c9-e511-8144-c4346bac5e0c, type=8) is missing prvReadImportFile privilege (Id=fe46d775-ca5c-4a09-af93-99a133455306)</Message>

<Timestamp></Timestamp>

<InnerFault i:nil=”true” />

<TraceText i:nil=”true” />

</OrganizationServiceFault>

When approaching any type of error message for the first time, it can be quite daunting figuring out what it is saying. Fortunately, in this case, there is only one line we really need to be concerned about, which is the <Message>…</Message>. To translate to plain English, this line:

<Message>Principal user (Id=0c6ff908-a6c9-e511-8144-c4346bac5e0c, type=8) is missing prvReadImportFile privilege (Id=fe46d775-ca5c-4a09-af93-99a133455306)</Message>

Means:

I cannot complete this action for Joe Bloggs, because they are missing the Import Source File Read privilege!

(Note: To help translate the above, I made use of the Security role UI to privilege mapping table on MSDN – a handy link to have in your browser favourites)

Giving the user just this privilege did not resolve the issue, producing a completely different error message in the process. Rather then spend an inordinate amount of time replicating the action over and over again, we did a quick Google search to see if there if we could find a list of the minimum level of permissions required in order to complete We were directed towards this forum post, with an answer from CRM MVP Jason Lattimer on what permissions were required in order to resolve the error message:

Required permissions:

* Data Import (all)
* Data Map (all)
* Import Source File (all)
* Web Wizard (all)
* Web Wizard Access Privilege (all)
* Wizard Page (all)

Problem solved you’d think? Well, unfortunately, in this case not. Although at first we thought that things were working fine, as no error message cropped up. When we then monitored the data import job in background, however, it was stuck at Parsing. At this point, we were really beginning to struggle to think of how to resolve the problem. It was at that point we rather desperately took a look at other, successfully completed, System Jobs to see if there was anything obvious we could observe. We noticed that successfully completed Data Import jobs had 3 System Job Tasks associated with them, whereas our stuck had only 1. At this stage, we asked: Could we be missing privileges on the System Job entity? And, lo and behold, when we took a look at the users security role, there were no privileges configured for System Jobs. After a bit more trial and error, adding permissions one by one onto this role, we saw that the Data Import job ran successfully!

So just to confirm for those who may encounter the same problem in future, the full list of permissions required to get Excel Online Data Import working successfully are the ones highlighted above and the following additional privileges too:

Customization Tab

System Job

Create: Business Unit Level

Read: Business Unit Level

Write: Business Unit Level

Append: Business Unit Level

Append To: Business Unit Level

Assign: Business Unit Level

e.g.

SystemJobMinimumPrivileges

What this problem (and the solution) I think demonstrates is the best way in which to approach day-to-day problems that may crop up within CRM:

  • It is reasonable to assume from the outset that the problem is due to a lack of security permissions problems; try not to over complicate matters early on by assuming it could be something completely different. For example, if the task or action that you are trying to perform CRM can be performed using an account/security role with greater permissions, then this will tell you straight away what the problem is.
  • Having good “under the hood” knowledge of CRM is always helpful in a scenario like this, but this may not always be possible for those of you work with CRM sparingly. To help you in this scenario, we can refer to some of the fantastic resources online by the CRM community. Ben Hosking has a great blog post on the importance of thinking in entities when it comes to working within CRM, something which I think applies great in this particular example. By understanding that the System Job is a system entity, we can logically assume that it has its own set of required permissions.
  • In diagnosing the issue in this case, we were able to refer to some of the previous System Jobs records in the system. As part of this, we observed that a System Job that completed successfully had 3 job records related to it. This immediately told us that there was something wrong with the users access to the entity in question (going back to the above, System Job is, after all, a system Entity). Sometimes, being able to understand the difference between an action, when it works and doesn’t work, can give you the information you need to make the logical next step jump on what to investigate further.
  • And, last but not least, access to and the ability to use a search engine is always very helpful 🙂

CRM2016Update1

It was a very nice post-bank holiday treat in the UK to be treated to news on Tuesday morning that the CRM 2016 Spring Wave has now been released, and can now be accessed as part of a Sandbox Reset or a new CRM Online Trial. 🙂 Microsoft will be targeting organisation updates on Office 365 tenants starting from the 1st week of June, and it’s a better time then ever to upgrade to CRM 2016 if you are still using 2013/2015 within your Online environment.

So what can we look forward to as part of the new release? I have taken a look at what’s new (both obvious and under the hood), and have highlighted the 5 new features that I am most looking forward to as part of the new release:

Characteristics

I’ve been getting myself more and more familiar with the service side of CRM (partly for exam preparation, and also because the new interactive service hub looks really cool!) and I have been impressed with the breadth of options that are available within CRM for service management, scheduling and resource management. One thing that is lacking though is some easy method of recording detailed information regarding a particular resource. For example, if you have a Network Engineer that you need to schedule out for a site visit and you need to ensure that he has a particular certification or qualification in order to complete the job, there is no (easy) way to record this against the resource in CRM.

I am therefore pleased to see that new entities called Characteristics Bookable Resource Characteristics have been added as part of this CRM release, with the following descriptions:

Characteristic – Represents the skills, education, and certifications of resources.

Bookable Resource Characteristic – Associates resources with their characteristics and specifies the proficiency level of a resource for that characteristic.

The entity has fields that records a Characteristic Type and Rating Value, which would seem to be perfect for scenarios similar to the example provided above.

Unfortunately, after digging around in a trial version of the Spring Wave update, I cannot seem to find any obvious means of accessing these entities via the user interface. I assumed that you would be able to add this information from the User form, but no dice. Perhaps this entity has been added in preparation for the next big release of CRM, but there is nothing (in theory) stopping system customisers from exposing this entity manually themselves and start using it. If anyone else manages to find this within CRM, please let me know in the comments below!

Email Signatures

Buried within the What’s New announcement page for the release, is the following small, but potentially significant, new feature announcement:

Save time on your email correspondence and add a professional touch by adding an email signature. Use a default signature for everyday replies and new email messages, and then create other signatures for those special cases. You can also assign a default signature to a queue. When you change the From field from a user to a queue, the default signature changes automatically.

This has been one of my major headaches in attempting maintain consistent email signatures between our Outlook and CRM clients. The problem is compounded somewhat by the fact that the Email Template functionality does not offer a HTML editor. You therefore have to go through a number of different hoops in order to replicate this within CRM, and even then it doesn’t look 100% perfect when compared to our Outlook signatures. If there is therefore a better way of managing this in CRM moving forward, then I am very interested in finding out more.

One problem I’ve noticed straight away though – similar to Characteristics, there doesn’t appear to be any way to access this through the CRM interface! There is a new entity in the system called Email Signature though, which can be accessed via Advanced Find, but looks as if its not something that can be used yet. A real shame, as I was looking forward to seeing this in action.

Guided Help

Eagle eyed CRM users will immediately spot, when first logging into the new CRM update, that the help button looks distinctly different on the top right corner of the screen:

GuidedTours3

The new release introduces the Guided Help feature, which aims to offer more detailed, context sensitive information for users who need help within CRM. Clicking the above button will pop open a sidebar on the left of the screen, that changes depending on where you within CRM:

GuidedTours1

Then, by clicking one of the green links that are listed (again, these change depending on where you are within CRM), you will then be given a tour of how to complete a specific action, such as creating a Lead record:

GuidedTours2

Rather then attempt to poorly emulate some of the existing information available online for this new feature, the video below provides a great summary of what Guided Tours is capable of:

I am really excited to see how this feature develops over the time, and hope that eventually you have the option to create your own guided tours that can then be tailored specifically to individual CRM systems. This feature is also a great example of how Microsoft is leveraging some of the benefits and features of the Azure platform to deliver better services to their online customers.

Feedback

Within previous versions of CRM, there was no out of the box way of recording post-sale information in regards to Products that are setup on the system. I would say that pretty much all businesses are not just concerned with how well their products sell, but also want to drill-down further and get feedback directly from their customers on a Product that has been sold to them.

Now, in the Spring Wave release, the existing Feedback entity (previously used for Knowledgebase Articles) has been extended for use by other entities. To enable for your system/custom entities, all you need to do is tick the Feedback option within the Entity Definition page:

CRM_Feedback

Just to advise you, once it has been enabled for an entity, it cannot be disabled. Once enabled, you can then access it from the entity record page:

CRM_Feedback2

So now, system customisers can modify their CRM systems in order to enable Product feedback and feedback for any type of record. For example, you could configure Feedback for the Competitors entity as well, in order to allow sales users to capture feedback when speaking to potential customers about a supplier they are currently using.

CRM Portals

One of Microsoft’s most high-profile acquisitions last year was ADX Studio, a company that provides customer portal solutions for CRM – the great benefit being that you don’t need to be an ASP.NET whiz in order to setup highly functional, attractive portal systems that feed data into and out of CRM. Starting from the 2016 Spring Wave, Microsoft are starting to more tightly integrate the product with CRM, to the extent that portals will now be manageable from within CRM itself and integrated as part of the Office 365 subscription plans, effectively becoming an add-on product that can be purchased from the portal. Organisations who are considering to use ADX Studio may be advised to wait to see what happens with this, as it is likely that Microsoft may introduce price breaks on the product in order to entice CRM Online uses to try the product. In the meantime, trial ADXStudio account are still available on their website for those who are curious. I am hoping to start getting to grips with the product within the months ahead, so expect a blog post or two on the subject in future.

What are you most excited about as part of the Spring Wave release? Let me know in the comments below.

When I first started looking more closely at some of the new features within Dynamics CRM 2016, my initial thoughts was this was that this was a release for the fans (i.e. CRM Administrators, Customisers & Developers). Putting aside some of the big headline grabbing features such as the Interactive Service Hub and Word Templates, there looks to be a lot of subtle changes underneath the hood which those who work with CRM on a daily basis will be jumping for joy at.

One of the fundamental concepts that needs to be grasped as part of any CRM development work is Solutions. This includes understanding the differences between managed/unmanaged solution files, how to export/import solutions between different environments and how managed/unmanaged customisations are handled by CRM. There are many debates and discussions online regarding the subject, but the general rule of thumb is to use unmanaged solutions for the majority of your customisations, and only use managed solutions for when you are an ISV developing a bespoke solution to performs a specific function and/or links in with a separate application.

One of my personal bugbears regarding Solutions is the time and effort involved as part of doing an update. If, for example, you have just one Solution file for your entire businesses CRM customisations, then over time pushing out a solution update into your Production environment can take up to 30 minutes or more to complete – even if your update only contains, for example, a field name change! This can make pushing out hot-fixes or urgent updates more time-consuming and lead to delays in addressing problems within a live production system.

Whilst doing some digging around within CRM 2016, I was very excited to see the following 2 new buttons on the Solutions page:

CRM2016SolutionChanges_1

 

 

Could it be that we now have a better and more efficient way of pushing out small parts of our CRM customisations and urgent hot-fixes? Before we take a look at how these buttons work in practice, it is useful to first explain what each one does in more detail:

Clone a Patch

Clone a Patch creates a patch of your main solution, which can contain a selection of CRM customisations that you wish to export from the system. A solution can have multiple patch solutions. One thing to point out is that you must manually add the components you wish to include as part of your patch solution into the Patch solution file. When, for example, you add in the Entity which you wish to include in the patch, you can specify individual entity forms, views, charts etc. that you want to include, something which I really like:

CRM2016SolutionChanges_6

Whilst there is at least one patch of a solution present in your CRM system, you will not be able to edit the main solution file. CRM presents you with a yellow banner message to inform you of this when you enter the CRM Solution in question:

CRM2016SolutionChanges_5

 

In order for the solution to become available for customisation again, you will need to either a) delete all patch solution files that derive from the main solution or b) use the Clone Solution button, which will be explained in more detail next.

Clone Solution

Clone Solution enables you to quickly combine together a solution and all of its descendant patches back into one solution file. Say for example, you have 1 Main Solution file and 3 Patch Solutions from the Main Solution. Clicking the Clone Solution button will combine all of these together again as part of 1 solution file. As a result, this will then allow you to customise the main solution file again without any issues.

So how does this work in practice then? Let’s find out:

To start of with, here is a custom entity within a new solution file. Nothing has been customised for this entity at this stage:

CRM2016SolutionChanges_2

This is then exported out of the system as a solution file and imported into our target environment. Next, let’s say we want to add a newly created field to our entity as well as making some other changes as well within the main solution. These are in an incomplete stage, so therefore we just want to export our new field only as a patch solution for now.

On the Solutions page, we select our Main solution file and press the Clone a Patch button. We are greeted with a screen similar to the below where we can specify a few optional details, before then confirming:

CRM2016SolutionChanges_3 CRM2016SolutionChanges_4

Next, we then have to go into our Patch Solution and add in the elements that we wish to push out as part of a patch. In this case, we want to add a new field to our Test Entity. We therefore go into a Patch Solution file and go to Add Existing… in order to add in our Test Entity. You will be greeted with the Entity Assets window above and, in this example, we want to include all assets so we just press Finish to add this in.

Now we want to add in our new field:

CRM2016SolutionChanges_10

CRM2016SolutionChanges_9

As above, this is then imported into our target CRM environment, as you would do normally for any other solution file. It even looks the same!

CRM2016SolutionChanges_13 CRM2016SolutionChanges_14

 

Now, lets say we want to pull together all of our other changes as part of a traditional solution update. We also want to rename our Testing Field as follows:
CRM2016SolutionChanges_12

We select our Solution file and click on the Clone Solution button. At this stage, we can modify the display name of the Solution and also specify a new version:

CRM2016SolutionChanges_11

When we click Save, the patch solution file will vanish from our solution file, replaced by our one solution file which can now be edited and exported accordingly.

And that’s it! It takes a while to get your head around, particularly if you have been used to working with Solutions in previous versions of CRM, and I think it will take a while before this starts to become widely used (to be honest, I have not yet used it as part of some of the recent solution updates I have had to do 😳). Still, it is good to know that for those who are just coming into CRM Administration/Development, you can get to grips with this feature straight away without having to concern yourself too greatly with the “old” method. Just don’t be surprised if you hear from CRM veterans something like “Back in my day, we just had Solution updates – and we were lucky to have them!”

Let me know in the comments below if you have started to use Solution Patches yourself within your CRM 2016 environment.