Dynamics 365 Version 9.0 Business Edition and more

Dynamics 365 Version 9.0 Business Edition and more

Version 9.0 is soon here and it is set to be the largest release ever from Microsoft. The biggest news on my horizon is the relase of the all new Business Edition of Dynamics 365 (BE). This will be an interesting new product and I’d thought I’d write a few lines about it just to clear some things up based on my understanding of the product.

Note that these are my thoughts, they are based on what I have heard and what information I believe is in the public domain (non-NDA). If you know that anything is wrong or have something to add, please leave a comment and I will try to fix it as soon as possible. Due to the high level of spamming I have to use moderation on all comments.

Is it xRM?
Yes, it is going to be based on the xRM platform but it will be using the all new and shiny “Unified Experience” UI which is probably going to be great in many aspects, looks great and everything but also will probably have a glitch or two as it is just coming out the factory doors.

Ok, so can I customize it?
Yes, to some extent you will be able to. It will have specific limits that set it distinctly appart from Enterprise Edition (EE). As of now Microsoft have not been very specific on the details but they have said that the limits will be on:

  • The amount of users in the system
  • Number of custom entities
  • Max amount of GB of usage on disk
I am an ISV developer. Will my ISV 3:rd party addon work with BE?
As far as I understood Microsoft, they will limit ISV addons to only be able to work with the OOB entities in BE. As creating entities in the “normal” CRM/EE has almost no cost, almost all ISV solutions I have seen have at least one custom entity, if not to contain customizations. So, my answer would not be a blanket “no” but a probable, “no”. If your addon isn’t too advanced, you could probably rewrite it to make it work, but with larger addons like for instance ClickDimensions or Resco, I don’t see how that would be possible.

Can I use a sandbox with BE?
No. No non-production instance will be included in the price and as far as I understood, you won’t even be able to buy a non-production or even production instance of BE.
Can I upgrade from BE to EE?
Yes. As it is based on the same xRM framework this will totally be doable on a theoretical plane. However, I don’t know how this will work on a short term basis if, for instance, you start with a BE in Nov 2017 and in Dec 2017 decide that it was too limiting too you and you want to upgrade to EE. The reason for my hesitation in this is that BE will be based on Unified Experience and EE will not at the time of release of 9.0. I would, however, expect 9.0 to catch up further on the line and after it has been upgraded to Unified Experience, then an upgrade of an instance from BE to EE should be no problem.
I bought the interim EE offer for BE pricing level, will I be able to downgrade to BE?
This is a tricky one. First of all Microsoft has not made any public statement on this that I am aware of in either one or the other direction. However, I do think that the key here lies in the level of customizations that you have done to you system. If your EE system falls with the limits of # of users, # of entities and # of GB that is set by MSFT, and also not having any ISV addons not allowed according to BE and any other limitations that Microsoft might come to set before the General Availability (GA) of BE then I think you have a very good chance of being able to downgrade. However, just as I mentioned above in the ISV section, the limitations might be too limiting and creating a lot of entities and adding ISV addons both free and purchased might make it hard to move to BE.
Can I use the Marketing App of BE in EE?
This is a really interesting case, as this is an area where the BE will have a featureset that exceeds EE, at least at the time when it is delivered. In the big overview of all Dynamics 365 Apps (for example the one above) – the Marketing Automation slot is filled by Adobe Marketing. However, for the BE there is a Marketing App which has been created from the bottom up by Microsoft on the xRM platform. Do note that for those of you who were unfortunate to have chosen Microsoft Dynamics Marketing, that product has been discontinued, so that is as of the General Availability of Dynamics 365 (dec 2016) you should really start thinking of moving away from it.
However, the new and shiny Marketing App for BE is strickly speaking only for BE for the time being. I think that the feature set it has is perceived to be too small for the Enterprise segment, although I can perceive many customers using the Enterprise edition that would probably be more than happy with it.
As for the future for the Marketing App in EE only Microsoft knows what they have planned and if I knew I couldn’t have written anything here either. What we know is that they have invested quite a lot of money in building some Marketing Automation features for the BE which is only aimed at the lower end of the customer segment. I would find it noteworthy if they did not leverage that investment in some way in the Enterprise segment as well. However, building a Marketing Automation solution that can match other Enterprise Marketing Automation systems is not something that even Microsoft can do at the flick of the hand, so I would not expect this to show up for at least a year or two. And it might of course be that they will slowly evolve the BE Marketing App until it is fit to grow into the larger Enterprise segment by just turning some switches, but I guess only the future will show.
As of now, Adobe is the preferred partner for Marketing, something I personally would like to see more detail to. What does it acutally mean? Seems there is some integration engine but no availble whitepapers to dowload that describes what it does. http://www.adobe.com/enterprise/microsoft-partnership/digital-foundation-azure.html 
If Microsoft are investing in building their own EE Marketing Automation App, which does not seem very far fetched althought it might take some time, you might need to take this into consideration if you are considering investing in a new Marketing Automation system for your organization and you are already running Dynamics 365.
If you have any other questions on Dynamice 365 Business Edition, please ask them in the comment. Not sure I can answer, but I can try!
By the way, my blog was awarded the 78:th best CRM blog of all in the world in all CRM categories. Hence the new shiny logo to the right. That was worth some celebration!

Gustaf Westerlund
MVP, Founder and CTO at CRM-konsulterna AB

Some interesting questions on xRM functionality

I have received a few questions from one of the readers of this blog and I will answer them bellow:

I am currently working on a project which is planning to use CRM 2011 as a development platform for migrating an existing  vertical specific LOB application.  As the existing application has a large and complicated database, I am trying to better understand how CRM 2011 can use external data, hence the following questions:
          Can CRM 2011 use external data assuming it is exposed as an OData feed?

Yes and no. CRM 2011 cannot using some simple mode of configuration connect to an OData feed but there are numerous customizations that can be done using techniques such as javascript, mash-ups, SilverLight, XSLT or ASP.NET that can be used to work with the Odata feed. When I work with my clients, I usually try to understand what they are trying to achieve to be able to recommend a technique that fits their requirements.

          Will CRM allow creation of Metadata for external Odata?

Yes, as mentioned above the different customization points allow for different ways of communicating and working with external data and metadata such as OData. There are no built in methods that automatically will connect OData to CRM (as I know of anyway).

          Can CRM security model be used for external Odata?

The CRM security model is rather complex as it incorporates several concepts at the same time;

o   Security roles
o   Organizational context with ownership of objects based on this and in conjunction with the roles.
o   Sharing privileges to individual users and/or teams

This results in the fact that it is rather complex to replicate the privileges for a certain object to a related object in another system. It can be done, but requires in-depth knowledge of the CRM security model and the API:s as all data related to this can be accessed from the API.

As an example of the complexity, let’s say that you have users A, B and C. User A belongs to division inner sales, user B to division outer sales and user C to division service. All have the same role that only allows access to the accounts within the same division. The account “Vodaphone” is owned by A and A creates a new team to which he shares the rights to view the account “Vodaphone”. He then adds B to this team while creating it. Some time later he adds C to this team as well and shares read-write access directly to B as well.

This is an example that despite the fact that they all have the same roles would involve a lot of setting access rights in the external system since the adding of team members to teams indirectly sets their rights. It is not impossible to implement but quite complex and does require a considerable amount of effort. For an experienced CRM developer, probably not less than 200 hours.

When discussing issues like this with my clients, I, as I usually do, try to understand their core needs and motives so that I can suggest a good-enough solution that will give them the best bang of the buck.

          Does CRM allow the use of external Odata in native forms or custom Silverlight UI has to be developed?

No. Fields (previously called attributes) are directly connected to the database and there is no support for virtual attributes that will retrieve data from an external source.

Integrations to external systems, using any data source, for instance OData, can of course be created that will transfer data to CRM. Data could for instance be periodically sent or sent when there is an update if the external system allows that kind of triggering.

It is also possible to jack into the retrieve or retrieve multiple events that occur when CRM tries to retrieve data so that CRM could pull data from the external data source when data is retrieved. I would not recommend this though since these events occur a lot and it would probably affect performance badly. It is also supported to fetch data directly from the database views using SQL and that would bypass this logic making this data incorrect. This would also cause some problems with working with CRM offline.

The solution you are hinting at using Silverlight is of course also an option but would be similar to some mash-up integration that could also be created using ASP.NET or javascript.

It would sometimes also be an option to create specific reports in CRM that connect to external data sources and integrate the CRM data with the external data in this manner. This method is preferable when using data warehousing or when there are heavy performance issues, as these reports can be cached and scheduled.

Without knowing more about the specific requirements, I would hence recommend some kind of periodic or live integration that transfers the required data to CRM in read-only fields as this would be most in line with how CRM works and would enable all built in features that CRM has to work with this data. It would also be best from a performance perspective and could be scaled if needed.

          Can external Odata be used in Workflow activities?

Yes, custom workflows activities can be created in all versions of Microsoft Dynamics CRM 2011 except CRM Online where the same logic can be created with some work-around effort using plugins instead. These custom workflow activities are created using the .NET framework typically in C# and can hence easily use any available datasource, like Odata.

On a related front, does CRM allow complicated (i.e. highly normalized and multi-level) data hierarchies to be implemented  natively?  If so, is there a performance penalty?  Would we be better off using this data as an external OData feed or bringing it internal to CRM?

No, CRM does not support some of the more complex OO concepts like interfaces and inheritance. As this is something many of us in the CRM community are looking for and it would also be a great addition to the xRM concept so I am certain it is on Microsoft’s list of features they are trying to implement. How far up, I cannot say.

This is usually not a major issue for me when I work with my clients and I have created very complex verticalizations, for instance for the Telco industry which implement a highly normalized and multi-level information model called SID, in CRM. What you need to do is make it a bit more flat and more concrete which you more or less have to do anyway if you want to make the system usable. It is of course important to be well aware of the simplifications you are making but I do not imagine that any usable system possibly could implement the entire SID information model without simplification and still make the system usable and with any reasonable budget. The abstract class “Party” for instance is just too abstract to be of any real use, but it is of course useful to know that contact, account, competitor, lead, system user etc. do share some information. The implementation would however have benefited from one or two inheritances or interfaces.

If the data should be kept in or outside the system is not easy to answer without deeper knowledge of what you are trying to implement. If you keep it mostly outside, you would have to define a very strict line at which information is kept inside or outside of CRM. Do not, however, underestimate the power of the xRM platform, it is often advantageous to implement large or all parts of the LOB application inside CRM/xRM since you get so much functionality for free when doing this.

In general I would need deeper domain knowledge to be able to give you more direct recommendations and I do not think that this is the forum for that kind of discussion as that requires a dialog and would probably best be done in workshops.

I do like the fact that you sent me these questions as I think they are very relevant when looking at the system from an xRM perspective and put the finger on some of the issues that Microsoft have to improve in the system. If there are other readers out there, if you have questions, please send them to me and I will try to answer them on this blog.

Gustaf Westerlund
CEO, Chief Architect and co-Founder at CRM-konsulterna AB

Create replacement entities

Sometimes, using a standard entity like product or invoice might not be the most optimal choice. Often due to the fact that there is quite a lot of business logic built into these entities. Therefore it is somtimes better to create you own entity instead. However, if you try to create a new entity with the name “Product” you will notice that it cannot be done since there already is an entity with that displayname.

The solution is quite simple, change the displayname of the built in product to “Old product” and remove all rights for all users to it and it will disapear for all normal users. You can then create your new entity with the displayname “Product”.

Gustaf Westerlund
Microsoft Dynamics CRM Architect