I did a blog post a few weeks ago discussing the new Dynamics 365 for Enterprise (D365E) exams that have been steadily coming out since the start of the year. At the time, I mused that there may be more to expect in the future exam-wise:

I would hope that these exams are a stop-gap for a completely new range of exams that will be released in the future, that place the D365E application front and centre with the other much-loved favourites in the Microsoft “family”.

At the time of writing this, I had very much intended “future” to be a long time away – certainly 2018 at the earliest. With this being said, it was therefore incredibly surprising/pleasing to find out earlier this week of the introduction of two new certification types for D365E: The Microsoft Dynamics 365 MCSA and the Business Applications MCSE:

Big thanks to CRM trainer extraordinaire, Julian Sharp, for posting about the release and bringing it to everyone’s attention. AX fans can also rejoice, as an MCSA has also been released that covers the new version of this application, rebranded as Dynamics 365 for Operations. Previously, AX was in the same boat as Dynamics CRM in being restricted to Specialist-level exams only.

How To Get the New Certifications

Both the MCSA and MCSE are designed to fit around the current exam lists that have been released for Dynamics 365, specifically all of the ones that I have looked at previously on the blog. This means that, in practice, there is nothing additional or special that you need to prepare for; and, to be honest with you, CRM exam veterans should find little difficulty in obtaining the certifications. Here’s why, as I summarise what you need to do get each respective certification:

So it might very well be the case that, if you have passed any or all of the above exams already, then there will be something new and shiny on your exam transcript from Microsoft 🙂

How the certifications stack up against other MCSA’s/MCSE’s

Looking at how the MCSA compares with some of the other ones out there, there is definitely less exam content that you need to thoroughly learn before sitting the exams. That being said, the Dynamics 365 MCSA is very much geared to the types of skills that are measured as part of other MCSA’s – namely, how to setup the application in question and how to manage it. It is only when you start to get into the upper echelons of the MCSE that you start to see specialisation in specific application areas. This is similar to how SQL Server Reporting Services is treated, as there is very little exam material covering this at SQL Server MCSA level. For D365E, this is a very good approach to take, as a lot of the information that you will need to learn as part of customizing CRM/D365E in the past is instantly applicable to the Sales/Case Management exams, and even gives you a head-start in making assumptions about how these system entities operate.

When I look at the requirements needed for the MCSE, I can’t help but feel that the exam requirements are somewhat simple (without wanting to be too glib, given that I have yet to sit either exam!). Having said that, it does seem that the requirements for MCSE’s have been relaxed across the board and the re-certification requirements have also been overhauled to take into account the increased frequency of releases across the Microsoft range of products.

Why their introduction is so important

The success of D365E and, indeed, the entire rebranding of the range of Dynamics applications depends solely on how the range of applications are perceived within the range of other products in the “Microsoft family”. If there is an imbalance at all anywhere in the chain, then customers who are evaluating the product are not going to take a second look at it. Because, let’s face it – if the organisation that is selling the product does not seem to care about it, why should you?

I think back to a recent evaluation that I did of an anti-virus and device endpoint encryption product from one of the largest computer technology companies in the world. The product in question was acquired a few years back by the company and, when evaluating it, it was indeed an excellent and perhaps greatly innovative solution to have in place within an organisation. Our interest was killed quickly by the following factors:

  • It took weeks to arrange a demo. As we found out after the fact, the demo request went through the corporate maze, as no one could figure out who was responsible for carrying out pre-sales demos.
  • After the demo was scheduled and completed, attempting to obtain pricing information was nigh on impossible; again, it went through the corporate maze and we gave up in the end due to the delay.
  • The product itself was not mentioned in great detail on the organisation’s website, only a token page or 2 outlining what it is and what it does (in a very poor manner)

All of the above stems from the fact the organisation was not actively behind the product at every single opportunity; even a weakness in one of these areas could make or break the success of a product when presented to potential customers.

Education and certification is an important element of this, as organisations can take comfort that a product has a range of effective and recognisable certifications that demonstrate an individuals or organisations competency in delivering solutions utilising it. From a Microsoft standpoint, the MCSA and MCSE are the gold standard of accreditations. If a Microsoft product does not have a corresponding MCSA at the very least, you can bet that it is not a great product or has not been given the love and attention needed to bring it to the forefront as part of potential sales opportunities. Now that we finally have MCSA and MCSE qualifications for D365E, we can now start to say definitively that this is the time for Dynamics 365. No longer is the product just the black horse contender for CRM/ERP king amongst the likes of SalesForce and Oracle; it is an established presence and very much here to stay.

The ability to modify the values within Option Set fields on a Dynamics CRM/Dynamics 365 for Enterprise (D365E) form is, depending on your business scenario, one of the best reasons to learn how to write basic JScript form functions. Microsoft makes available 3 methods via the Xrm.Page.ui control (which can be handily shortcutted to Xrm.Page.getControl):

  • addOption – Lets you add a new Option Set value, with the ability to optionally specify its position within the index.
  • clearOptions – Removes all options from an Option Set field.
  • removeOption – Allows you to remove a specific Option Set field value.

With these options at your disposal, you can begin to leverage functionality to accommodate the following business logic:

  • Only allow an Option Set to be populated with values (either all or just specific ones) once information has been entered into other fields.
  • Dynamically change the options available for selection, based on information entered within the primary entity form, or even a related one.

Now the key takeaway with all of this is that, ultimately, your code cannot do anything that would make the “base” Option Set collection invalid. For example – let’s assume you have a field called Fruit with the Option Set values of Apple, Pear and Apricot. If you then tried to introduce the value Banana on the form level, your code will more than likely error when saving the record.

From a CRM/D365E point of view, there are two additional field types which are also technically classed as Option Sets, thereby allowing you to utilise the above methods with them – the Status and Status Reason fields. If you look closely at the Status Reason field within the Customizations area of the application, you can see why: just like option sets, you specify a label and underlying value for it, that is dictated by your solution publisher:

The only difference worth noting is that, unlike normal Option Set fields, you have no choice when it comes to which underlying value is used. If your organisation is prone to changing Status Reason values often for an entity, you may begin to notice large gaps in Option Set values over time; annoying, but I can understand why it’s in place.

All of the above code examples should be sufficient for common scenarios, such as when you want to remove single option set values or are interacting with the Status Reason field on the main part of the form. What I wanted to do as part of today’s blog post is highlight two non-standard scenarios for the above and illustrate a solution for each – which, when brought together, demonstrate an example I was recently involved in developing a solution for.

The Problem

The business in question was using an entity across multiple parts of their business. On the entity, there was then a flag field to indicate which side of the business the entity record belonged to. This would then assist when running reports and, when coupled with Business Unit segregation for the records, ensured that colleagues in the business only saw records that they needed to as part of their day-to-day usage of the application.

Because the entity was shared, fields within the entities – such as Status Reason – were also shared and, by implication, contained values that were only relevant to a specific part of the business. We were therefore tasked with finding a solution to ensure that the Status Reason value list was modified for each person to reflect the record type they were working with. Colleagues primarily worked within the Web Application and the Status Reason field was on each form, within the Header area.

Solution #1: Efficiently Removing Multiple Option Set Values

When we take a look at the code examples, we are given pretty much everything we need to start implementing a solution. So if we assume that our Status Reason field contains 15 values, 10 of which we want to remove, we may be tricked into writing the following code and doing the good ol’ copy & paste:

Xrm.Page.getControl('statuscode').removeOption(100000000);
Xrm.Page.getControl('statuscode').removeOption(100000001);
Xrm.Page.getControl('statuscode').removeOption(100000002);
Xrm.Page.getControl('statuscode').removeOption(100000003);
Xrm.Page.getControl('statuscode').removeOption(100000004);
Xrm.Page.getControl('statuscode').removeOption(100000005);
Xrm.Page.getControl('statuscode').removeOption(100000006);
Xrm.Page.getControl('statuscode').removeOption(100000007);
Xrm.Page.getControl('statuscode').removeOption(100000008);
Xrm.Page.getControl('statuscode').removeOption(100000009);

Now, this code will work fine and can be pretty clearly deciphered. The problem lies in the number of lines it is expressed in (thereby increasing load times/processing time when CRM is processing your function). We can get round this by thinking back to Programming 101 and making the correct assumption that JScript has the ability to loop through similar commands – in this case, via the for Loop. By introducing an array into the mix as well, we can then express our code much more simply:

var statusCodes = [100000000, 100000001, 100000002, 100000003, 100000004,
                   100000005, 100000006, 100000007, 100000008, 100000009];
                   
    for (index = 0; index < statusCodes.length; ++index) {

        Xrm.Page.getControl('statuscode').removeOption(statusCodes[index]);

    }

Solution #2: Working with Header Controls A.K.A. Why I Hate ‘Object reference not set to an instance of an object’ Errors

I perhaps should have prefaced the above when I said ‘Now this code will work fine’. 🙂 Going back to the task at hand, when I attempted to deploy a version of the above code into the target environment, I immediately got the dreaded error message referenced above. This is generally the hallmark error to steer you towards checking your code for any typos, as the error message is basically telling you it can’t find the thing you are asking it to – in this case, the field statuscode.

After triple-checking the exact spelling of statuscode and making sure the field was on the form, I did some further diving into Developer Tools with the form loaded to figure out just what the hell was going wrong. When performing a search for the statuscode field on the DOM Explorer, I noticed that I got a few hits for statuscode – but that it was prefaced with the value header_. I followed this up with some further research online, which confirmed that, if fields in the Header need to be referenced, then they should be prefaced with header_. So our for Loop example would need to look as follows instead:

    for (index = 0; index < statusCodes.length; ++index) {

        Xrm.Page.getControl('header_statuscode').removeOption(statusCodes[index]);

    }

Bringing it All Together

After encapsulating all of the above into a single function, removeStatusCodes(), we can then call the following snippet as part of an OnLoad function to hide our Status Reason values if the flag field is set to the correct value:

if (Xrm.Page.getAttribute('new_myflagfield').getValue() == "100000000") {
                                                           
        removeStatusCodes();
    }

This will then work as intended and ensure that end-users only see the Status Reason values that directly concern them; no doubt assisting greatly in making the system as streamlined as possible to use and to avoid any potential for data-entry problems further down the line.

Perhaps one of the best pieces of news arising from the detail behind the Dynamics 365 for Enterprise (D365E) announcement was the introduction of a number of freebies that are included as part of any subscription. Previously, under CRM Online licensing, you would have to purchase a number of Professional licenses before getting any free items. Now, regardless of the number of user licenses in your subscription, new and existing customers get all of the following at no additional charge:

  • 10GB of total database storage across all of your instances (Production/Sandbox)
  • Free Sandbox instance
  • Free Portal
  • Add-on services, such as Microsoft Flow and Project Online.

Given that the monthly cost for most of the above previously amounted to a significant figure in the hundreds of £’s, it is good to now see that arguably essential subscription elements (for example, Sandbox instances, to ensure a separate development/testing environment for customisations) are included at no additional charge. The question of whether or not this is value for money, however, is something that will likely depend on the size of your D365E deployment and the number/type of user licenses involved.

With this in mind, there is doubtless a high amount of impetus to encourage organisations who are currently on Dynamics CRM 2016 Update 1 or earlier and/or are still on the “old” Office 365 SKUs for CRM Online to start migrating across to one of the new plans – either Enterprise Plan 1, Dynamics 365 for Sales/Field Service etc. or Team Members. Organisations who are still on CRM Online plans can choose to either upgrade now or when their plan retires, in addition being able to take advantage of transition upgrade pricing. In some cases, this can amount to an average reduction in monthly prices of up to 20%. Therefore, if you are currently paying for excess storage at £7.50 per GB per month, additional sandbox instances at £113.10 per month and a Portal instance at a whopping £377 per month, then there may be a good business case for not waiting until renewal and to upgrade straight away to the new D365E SKU’s.

This was certainly the case with an organisation I was working with previously. The deployment was rather small in nature, approximately 60-70 users in total. The majority of licenses were allocated towards Basic and Essential license types. As such, the organisation was unable to benefit from the previous offer of a free sandbox instance with 25 CRM Professional licenses and additional, free database storage with more Professional users; meaning that they had to buy 2 additional sandbox instances and a large amount of additional storage to cover their requirements as part of the solution. The organisation was, therefore, an excellent candidate to transition across their CRM Online Professional to Plan 1 Enterprise license types.

With the above TechnNet article open and during an appropriate out of hours timeslot, I was then tasked with carrying out the license migration. I was relieved that the process went largely to plan, with no major hiccups. I was able to confirm successfully that the free sandbox instance appeared within the Dynamics 365 Administration centre after purchasing the new plans and did not vanish when cancelling the CRM Online Professional subscription. However, the same could not be said for the free storage. In the past, myself and colleagues have observed that purchasing additional storage can take some time to appear on the Dynamics 365 Administration Centre – sometimes up to an hour or more. After noting no change in the storage count after waiting this long, it definitely looked as if something had gone wrong as part of the upgrade. : /

After temporarily adding on some additional storage to cover the amount that we expected to gain as part of the transition and waiting until the next weekday, I opened a support ticket with Microsoft to clarify the situation regarding the additional 5GB of free storage we were expecting to receive and to determine whether something had in fact gone wrong. In good time, I was duly informed the following by a Microsoft support representative:

We informed you that “to get 5gb free storage for their organisation, update of CRM organisation to 8.2 is recommended and you will receive this free storage whenever your organization will be updated”.

At this juncture, it should be noted that one crucial piece of information has been left out as part of the above 🙂 All of the organisations CRM instances were at version 8.1. According to the above then, one (or all) of the organisations Dynamics CRM 2016 Update 1 instances need to be upgraded to D365E to take advantage of the free storage offer.

Since the above incident, we have scheduled in all of the organisations instances to be upgraded to 8.2 i.e. to D365E. I will report back after this upgrade has been completed to confirm the presence (or lack thereof) of the additional 5GB storage. Why the scepticism? I find it rather strange that you have to upgrade all of your instances to the latest version to take advantage of the new storage offer. I was always under the impression that the storage “layer” of your CRM/D365E instances are separate from the instances themselves. This being the case, I had therefore assumed that the SKU change would have been the flag to tell Administration Centre to add on an additional 5GB storage. This would appear to be how the additional Sandbox instance worked because, as demonstrated above, the free instance updated into Administration Centre without issue. The world of CRM/D365E can always throw up interesting and bizarre behaviours, so I won’t rule anything out at this stage. Stay tuned…

UPDATE (28/03/2017): Well, I can confirm that the support engineer is correct and at least one of your instances as part of your subscription needs to be running 8.2 for the free additional storage to appear on the portal. So if you have a spare instance and are itching to get your hands on additional database space, then I would recommend that you reset one of your spare sandbox instances to the latest version via the Administration Centre.

In the world of Dynamics CRM/Dynamics 365 for Enterprise (D365E), the start of the year generally means the introduction of new exams in line with the latest version of the product. 2017 is no exception to this rule and, at the time of writing, there are 4 new D365E exams that you can start to get your teeth into:

Microsoft appears to be drip feeding the current wave of exams this time around: the first exam to popup was MB2-716 at the start of February, with the remaining exams cropping up over the last week or so. What’s also worth noting is that the current exam list for D365E is only viewable via the US Microsoft Learning site; if you are UK based like me, then the current Dynamics certification page makes no mention of the new exams…yet. I seem to remember this being a problem last year as well and, like back then, you can still book your exam and sit it in your country of choice by simply going through the US Microsoft Learning Website.

Exams present a good opportunity to re-familiarise yourself with areas of a particular product that you have not had much exposure to previously, as well as introducing you to anything new that has been introduced over the past year. In this week’s blog post, I will take a closer look at the new exams and the differences that new and previous candidates should make note of before preparing to revise.

Customer Organizational Structure: What It Is and Why You Shouldn’t Worry

Both the MB20715 and MB2-717 dedicate a significant percentage of exam performance on a candidate’s ability to ‘Create a Customer Organizational Structure‘. Exam veterans may initially be put off by this terminology, as it is not something that has ever been referenced previously. Upon closer inspection of both exams, the skills measured differs, compounding any potential confusion. Fortunately, the top-level terminology is more confusing than what is underneath. To simplify things for those who may be still scratching their heads, here is a breakdown for each exam of what you will need to focus on:

  • MB2-715
    • Support the Microsoft Dynamics 365 client environment: This covers things such as knowing which browsers are compatible with D365E, which mobile devices/operating systems that the mobile app support and also minimum software/hardware requirements for the D365E App for Outlook (Note: this is NOT the same as the Dynamics 365 for Outlook).
    • Deploy Microsoft Dynamics: This will likely cover what license types are available, what permissions they grant across the application and also what features you get as part of a subscription. For example, remember that subscriptions now include a free sandbox and 10GB database storage.
    • Import Data into the Microsoft Dynamics 365 Environment: This will cover the Data Import Wizard and all its subtle nuances, as well as the new Data Loader service (surprising, given that it is still in preview apparently).
    • Manage the Microsoft Dynamics 365 Environment: This is likely to cover all of the Office 365 “soft skills” that are required as part of managing D365E Online and, rather interestingly, Single Sign-On (SSO) via Active Directory Federation Services (ADFS) – something that has only ever come up as part of On-Premise exams previously.
  • MB2-717
    • Manage Customer Records: This will include topics covering your “basic” record types and how they behave (Accounts, Contacts etc.), as well as having to demonstrate knowledge of Business Units and how to structure the application to match a business hierarchy.
    • Manage the Sales Process: This will cover your full sales qualification process – Lead to Opportunity to Quote to Order to Invoice – and how these record types interact, the unique behaviours of each and potentially some stuff covering Business Process Flows.
    • Manage Customer Communication: Same as the above, this will be focused towards knowledge of Opportunity and Lead records. There may also be a sneaky question or 2 about Social Engagement chucked in, based on the terminology used.
    • Manage sales literature and competitors: This will include working with document templates, the Competitor record type and potentially some questions regarding Connections and Connection Roles.

So on balance, nothing too scary as part of the above for those who have sat previous exams. That’s why it’s always important to dig deeper behind a headline to get the true story underneath!

And It’s Goodnight From Me: Saying Farewell to the On-Premise Exam

One notable absentee from the list of new exams is the On-Premise Installation exam. The previous exam for 2016, MB2-711, demonstrates a candidate’s proficiency in installing and administrating the On-Premise version of Dynamics 2016; something which, based solely on my own experience managing an on-premise lab environment, is no small feat. Now it very much looks if this exam has gone the way of the Dodo. As highlighted by legendary CRM/D365E MVP Mark Smith, there is currently no content on the Dynamics Learning Portal/Imagine Academy that covers On-Premise installation of D365E.

Although the retirement of this exam type (if true) does come with some drawbacks for those who may be tasked with supporting on-premise versions of the application in the near future, it is perhaps not surprising. The key thing that Microsoft have been trying to highlight as part of the D365E release is the clear benefit of the cloud version of the product over its companion, self-hosted versions. This is why Microsoft have been offering incentivised upgrade pathways, sprinkled with a generous helping of price reductions, to motivate organisations to move to the Online version of the product. Whilst On-Premise D365E will continue to have a role to play in the months and years ahead – which is why Microsoft offer Dual Use Rights with online subscriptions (see below) – its role will be relegated to merely providing organisations with an offline mechanism for deploying development/test environments within their own infrastructure.

Excerpt from the Dynamics 365 Enterprise Edition Licensing Guide. Click on the image to download the full guide.

With regards to some of the topic areas covered by the former On-Premise Installation exam – such as Server-Side-Synchronisation and CRM for Outlook – you can be assured/annoyed at the fact that these topics are picked up within the new MB2-715 exam instead. So don’t take these subjects too lightly when revising 🙂

Missed Opportunities

As we welcome the new exams and what they can offer, they also present an opportunity to evaluate what is missing and what could be improved upon in the future. With this in mind, here are a few things that are a shame to be have been missed as part of this wave of exam releases:

  • With the retirement of MB2-701: Extending Microsoft Dynamics CRM 2013 at the end of the last year, the death knell was signalled for Developer CRM/D365E certifications. With no current exam on the horizon to replace MB2-701, this presents a major missed opportunity. Familiar readers of the blog will know that I have railed against this in the past, chiefly for the reason is that it creates a lack of incentivisation for existing functional CRM consultants or developers new to the product to take a dive and learn what is possible via the platform through coding. I hope that this is eventually addressed and that we see an Extending Dynamics 365 exam or similar released in future.
  • I did a post last year discussing the possible imminence of a CRM Portal exam, based on evidence garnered from the Adxstudio website. CRM Portals is such a huge product in of itself, that presents its own unique blend of learning curves and challenges when coming from a purely CRM-focused background. Having an exam dedicated solely to this presents, in my view, the surest way pathway for those interested in implementing the product as part of future projects to get running with it. This being the case, it is a shame that a Portal Exam has not yet been included as part of the above list.
  • I did hear some rumours last year that Microsoft was planning on “resetting” the current state of affairs regarding CRM/D365E exams and their status within the Microsoft certification hierarchy. Unlike the “big hitters” in the Microsoft range of products, such as Azure and Office 365, which have MCSA/MCSE level qualifications, CRM/D365E have continually been relegated to Microsoft Specialist level for each of the exams passed; something which, I have to admit, does not look as snazzy on your C.V. 🙁 I was hoping that with the love and attention shown to CRM last year as part of the D365E rebranding, that we would see a brand new D365E MCSA released. Perhaps this may happen in the future, as I believe this is one of the ways that Microsoft can clearly signal the importance of D365E moving forward.

Conclusions or Wot I Think

I have yet to sit any of the new exams, although it is something that I am tentatively planning for over the next couple of months. It will be interesting to see how the experience differs compared to previous exams, if at all. Despite the rebranding, the content of these exams feels to be very safe on balance; i.e. the structure is largely identical compared to their equivalent 2016 version, with some slight peppering of new content to cover some of the muted new features within the product. Some new features appear to have been left out altogether – for example, there is no specific mention of some of the new Process updates or even the new built-in Sitemap editor. I would hope that these exams are a stop-gap for a completely new range of exams that will be released in the future, that place the D365E application front and centre with the other much-loved favourites in the Microsoft “family.” This would also have the added benefit of providing candidates with the opportunity to more clearly specialise within non-traditional areas of the application.