Are we allowed to use Power BI Embedded within Dynamics CRM? I’m puzzled!

At this moment I’m doing some research to embed Power BI embedded within CRM. I can hear many of you think “Why bother dude, just use Power BI in your Enterprise 1 plan”.

For large enterprises this is in general financially not a problem. However when you enter the SMB market (and in this market the adaption of Dynamics CRM is growing) every penny counts. And I was wondering if there is some room to save money.

When you look at the Power BI Embedded site, the first thing you notice is the slogan “With Power BI Embedded, you can integrate Power BI reports right into your web or mobile applications.”

Heh, that sounds interesting. Actually Dynamics CRM is a web application. In that regard we should be able to use it.


Continue reading

#CRMVisualSchema – part 7: Stuck on a new diagram rendering mode…

The last months I’ve been working on the Entity Relation Diagram Creator plug-in for the XRM ToolBox. At this moment the plug-in is functioning well and some new ideas start to cross my mind. E.g. a much more advanced way of creating an initial layout of the entities within a solution.

The entity layouting algorythm has had a couple of iterations. Going from a simple grid based layout in which the grid row height is determined by the largest entity, to a flexible grid based layout in which the grid row height is variable per column of expanded and collapsed entities.


For smaller solutions the layouting is fine, however if you generate an Entity Relation Diagram for large solutions such as the “Default Solution”, you end up with a grid of hundreds of entities.
From there on it can be hard to drag the entities to an easy to handle layout.

Then the following idea popped up, what if during the initial generation of the Entity Relation Diagram I determine what the hotspots are in the diagram. And then create a layout based on the hotspots.

A hotspot is in my eyes an entity that has relationships with many other entities. Based on the number of inter entity relationships, I can create an ordered list from hotspot to cold, from there on I could render a grid layout like the example below.


However I forsee the following problems when it comes to related entities that are used in multiple hotspots:

  • How do I place them on the canvas?
    Should I place the related entities in such a way that the relationship connections are as efficient as possible?
  • Do I need to duplicate them per hotspot?
    When duplicate the related entities per hotspot, a number of functional areas will appear on the diagram. However the number of entities to render might grow exponentially.
  • Do I need a new rendering mode in which I render a diagram per hotspot?
  • Do I need a rendering mode in which I just render the hotspot entities?
    In this mode I show only the hotspot entities related in some way to each other.

As you can see a lot of questions that need to be answered. Can you help me? What should I do?

For now I’m stuck…Your ideas are more than welcome!

#CRMVisualSchema – part 6: XrmToolBox development pitfalls and tricks

It has been almost two weeks since I released the Entity Relation Diagram Creator for XrmToolBox.  Over 10.000 people already downloaded the plug-in, and I received a fair deal of suggestions to improve the tool. In the weeks to come, my mission will be to process these suggestions (some very wild ideas popped up *yay*).

In the previous article I promised that I would share a number of pitfalls that I encountered while developing the plug-in. In this article I’ll describe what I encountered and I’ll give you some tips which will streamline your development efforts.

Continue reading

#CRMVisualSchema – part 5: Launch of the plug-in for XrmToolBox

Almost 2 months after I started this series of articles, I’m proud to announce that the 1.0 version of the Entity Relation Diagram Creator plug-in is downloadable through the XrmToolBox Plugin Store.


The purpose of the Entity Relation Diagram Creator plug-in is to create a visual image representing an Entity Relation Diagram. The image can be used within your architectural, technical, functional and user documentation.

Continue reading

#CRMVisualSchema – part 4: Some steady progress

It has been a couple of weeks since I wrote the last update on the XRMToolbox plug-in I’m developing: The Entity Relation Diagram Creator.
This is going to be a tool in which you can generate nice visual representations of the entity schema in CRM solutions.

Things have been pretty hectic last weeks and development is consuming a large part of my spare time. But –  and I’m proud to say it –  the project is coming along quite nicely.


What I’ve achieved till sofar is that I’m able to generate every entity schema imaginable within Dynamics CRM. The default schema is rendered within a couple of minutes, resulting in a big pile of entities and relations… *yike*.

The schemas that are rendered can be used for multiple audiences, e.g.

  • For Business Analysts
    A high level schema displaying friendly entity names.
  • For Consultants
    Schemas containing friendly entity names and attribute names. Displaying customized fields only.
  • For Developers
    Hardcore technical schemas that display logical names, field types, and relationship names.

And all kinds of combinations not mentioned .

Entities can be displayed collapsed or in its full glory. Relationships can be highlighted. Entities and relationships can be removed from the schema. Schemas can be saved under different names.
This allows you to build a repository of entity schemas that you can use for documentation purposes within your projects. Once the entities are dragged into the correct position, you can take a picture of it for your documentation.


Right now I’m working towards the release of version, I just want to do some cosmetic stuff and add some more cool features. To name a few:

  • the ability to remove relationships without affecting related entities.
  • prevent relationships from being drawn on top of an entity.
  • the possibility to drag relationships to be displayed better.

In the next article I’ll inform you about some pitfalls I ran into during development and I will describe publishing process with regard to XrmToolBox.

For now, stay tuned…

(your patience will be rewarded)

#CRMVisualSchema – part 3: Getting started with plugin development for XrmToolBox

In the previous article, I managed to cram the visual schema designer functionality into a single dll. So far I have implemented the following functionality:

  • Get a list of solutions from CRM
    I only get the solutions that are visisble (those are the solutions you normally see within CRM). I’m considering an option to show all solutions, I have to test first if this is a safe to do.
  • Get all entities from the schema
    Per entity I can filter out the custom fields (those are the fields starting with the publisher id). I intend to implement an option in which you can choose between all fields, publisher’s fields, all custom fields.
  • Get all relations within the solution
    I want to implement an option to show the relationship id’s and in case of a many-to-many the name of the relation.
  • Save option to save the diagram
    In the diagram you can remove entities and relations. This way you can make partial diagrams to highlight an aspect of the system you are designing/implementing.
  • Zoom functionality
    Zoom in, zoom out, by dragging a slider.

What I need to do is to transform my C# dll project into a XrmToolbox plugin project. For this subject I contacted the XrmToolBox gurus @TanguyTOUZARD (Tanguy Touzard), @rappen (Jonas Rapp) and of course @crmconsultants (Raz Dynamics). They provided me with some very helpful information on where to start.

Continue reading

#CRMVisualSchema – part 2: Entity schema up-and-running

At this moment I’m making some nice progress on visualizing an entity model. In the comment section of my previous article Stefan (*kudos*) pointed me on some alternatives, some of them depend either on Visual Studio or Microsoft Visio. My goal is to create a plugin for XrmToolbox, that can be used free of charge.


What have I realized till sofar:

  • Stripped all bloat from the NClass library and rewired it
    The library now fits into a single assembly; containing all application logic required to display the entity schema.
  • Created a test application in which I can load and save entity schemas
    When the schema is reloaded the saved layout is restored.
  • Ensured that entity schema can be saved as a PNG image as well
    This image can be used in design documents or in general documentation.

Furthermore I’ve been working on figuring out how the XML in which the Visual Schema is serialized is set up.

Continue reading

#CRMVisualSchema – part 1: intro

Last summer I was approached by the EMEA recruitment office from Salesforce; if I was interested to join them as a Technical Solution Architect.
I was suprised because I didn’t have any experience and no track record in Salesforce.
Nevertheless they got my full attention. I made it through all telephonic interviewing rounds (speaking with a variety of people). Once I managed to pass the telephonic interviews, I was invited to do a panel interview.

In order to survive the panel interview you have to prepare a case. In this case you have to play the role of a Salesforce employee, presenting a technical solution that will help the customer to run his business.
In the preparation for this panel interview I was granted a full blown Salesforce demo environment, which I could use to do my preparation.

I really got a chance to take a good look at Salesforce, and one thing I’m a bit jealous of is the Schema Builder. In the Schema Builder you can draw your entity model and the relations between the entities.

Giving you a good visual insight in the entity schema of your solution.


The Schema Builder idea has been haunting me since that time…

Continue reading

Workaround for ADFS issues for external Dynamics CRM url in IFD

Last week we were setting up an on-premise Dynamics CRM 2016 at one of our clients. The server had to be configured to accept internal and external clients in order to be able to work with mobile CRM clients. The client already had an ADFS 2.2 server running on a Windows 2012R2 server.

Once we installed CRM, it was time to setup IFD (Internet Facing Deployment) and the trust relationship with the ADFS server. On the internet there are quite a few very solid articles on performing this job, e.g.

We followed the exact steps as desribed in the articles. And then the moment came we had to test our configuration.

Test 1. Use the internal address

In our browser we entered the internal url for the organisation:
Rightaway we were presented with the ADFS login page (single sign on) and we were able to login and connect to CRM.

So far so good!


Continue reading

Our organization is relocating

A lot has happened since I wrote my last article in which I discussed the dodgy unpredictable performance of the Dynamics CRM online environment of one of our clients.
I didn’t expect to receive that amount of private messages from other European CRM online users facing the same problems. In one of the reactions someone stated that the situation on CRM4 has become worse over time.

But as always there is nothing that beats some good Britisch humour: “The joke in the office today was that we will have ‘Publishing Customisation’ carved on our grave stones!” * ouch *


I guess we were lucky that Microsoft admitted that more customers were facing similar performance problems, our CRM organization was granted a relocation. Instead of running in the Dublin datacenter we were relocated to the Amsterdam datacenter.

Since that moment we are experiencing a much higher bandwidth and screens open at a constant fast rate (comparable with CRM on-premise).

Although I’m glad that we are having good performance, it makes me a bit angry as well. We have been working on this performance case for almost two months and in every teleconference we heard the same questions and answers over and over:

  • Did you follow Microsoft’s best practices?
  • Do you have customisations?
  • Provide us with Fiddler data
  • Provide us with the information from the Diagnostics page
  • Make screencasts
  • We don’t know anything about a performance issue…

In our case we also set up an on-premise environment in which we tested with the same amount of data, with the same customisations in place. In the on-premise environment we had a good and stable performance (average loading time of a page 2–3 seconds).

With this ammonition Microsoft couldn’t do anything else than relocate our organization; we had proven that the solution we implemented performed rock solid, we had provided network performance data in which we proved that the connection between our client and AMS-IX was good.

This makes me wonder; what is going on with the Dublin datacenter? Are there simply too many organizations running on the available hardware? Are some servers having configuration problems? Are there internal networking issues?  I guess we never don’t know.

What I learned from this case, was that Microsoft support is hard to work with. Every person you speak is friendly, patient and polite, but for some reason they don’t help you that much. The further you go in the process, the more evidence you have to provide. Making it almost a fulltime job.

What I would love to see, is that Microsoft would provide us with some tools, running in the background, gathering all the data support would need. That way, Microsoft really would help its customers and it would make the process shorter and far more pleasant.