Find datasource dependencies in CI-D

Find datasource dependencies in CI-D

When working in CI-D and replacing a datasource with another, for example replacing Power Query Datasource with Delta, then finding any dependencies for this is important. This is a tip that I got from Microsoft Fast Track Architect Ashwini Puranik, so credit should go to her. You can use the API testing functionality that is part of CI-D to query the ListAllMeasuresMetadata. Keep on reading to get some more details.

As the general recommendation for CI-D is to move to Delta-based data sources from Power Query due to performance. However, doing this shift will require you to reroute all dependencies to the new table before you can remove the data source.

Below is a way to find the dependencies based on Measures and Segments defined in CI-D.

Start by going into the API testing tool that is available for CI-D using the Permissions-area and the tab “API”.

Choose the only available API, Customer insights – v1.

Now search for ListAll and select “ListAllMeasuresMetadata”.

This will show a more detailed description of the endpoint. Now click “Try it!” in the green button on the right hand side.

This will show a panel on the right hand side where you have to input some required data.
For an easy test, just select “implicit” in the Authroization drop down and put the instanceid into the field for it. In case you don’t know where to find the instanceid, you can grab it from the URL when you are using CI-D using the normal UI as it is the only guid in the URL.

That is all that is required, so scroll down to the bottom and press “Send”

You will now see a long text (json) which is the response from the api call. You can use the built in search in the browser to find all occurances of a datasource. You can use either the Display name or the schema name as both are in the JSON. As you can see below, the Measure “Total unique clicks last month” is one of the measures that has a dependency on the Datasource named “FreshRelevanceAZblob_FreshrelevanceAZBlobInbox”.

Now there are a few options, either remove the measure. This is a good option if you want to fix this quickly or the measure isn’t being used, if it is used there can on the other hand be many dependencies on the measure making it a lot more complex to remove. The other option is hence to just change all dependencies in it to another (Delta) datasource. You will then have to refresh the data source to remove the dependency fully. You can rerun the query by resending it using the button at the very end.

Once you have removed all dependencies on the data source from measures, there might still be dependencies from segments. You can use a similar method as above, but the endpoint you want to use in this case is “ListAllSegments”.

You can still have dependencies left on the datasource, for instance from things externally using the table from the CI-D API. This doesn’t actually block you from removing the data source but whatever you are doing externally will stop working once you have removed the data source. Naturally.

I hope this has helped and thanks a lot to Microsoft Fast Track Architect Ashwini Puranik for pointing me in this direction.

Unable to delete table due to entityanalyticsconfig

Unable to delete table due to entityanalyticsconfig

Working on a new environment recently I had to remove a few tables. However, after removing all normal dependencies, it complained finally about a dependency to the table: entityanalyticsconfig. Never heard about it. After some googling on Microsoft Learn I found that it is about the sync to datalake, which was funny as we hadn’t set up any sync. I think it might be the new Microsoft Fabric sync from Dataverse that might be causing this. It might be switched on by default in the case that you have change tracking switched on.

Also I couldn’t find it in advanced find (the old or new one) but with https://fetchxmlbuilder.com/ in XrmToolBox I was able to find it and also the rows that were associated with it. So, I created FetchXml for these specific rows, used the tool Bulk Delete Tool (no not Bulk Delete Manager, which I made) by Andy Popkin and simply ran the delete for these specific rows. This allowed me to remove the dependency and then remove the tables.

I hope this will help you too!

Finding URL to dependencies on installed managed solutions

Finding URL to dependencies on installed managed solutions

Uninstalling a managed solution? (ie Deleting it) Getting a bad error message saying you can´t? (Cannot Delete Component) And you don’t know how to find what the dependencies are for the solution? So did I. And perhaps you, as I, did not notice the small link in the dialog which says “Details” that takes you directly to the “Dependencies” page.

Click this to go see the dependencies for the solution,
or follow the instructions below to manually generate an URL 

So, if you did miss that, or for some other reason want to know how to get to the dependency page of a solution, read on.

I found this blog article: https://www.interactivewebs.com/blog/index.php/crm-2015/crm-2015-2013-find-dependencies-for-managed-solution/

which described how to find the dependencies in a nice way in a CRM 2013/2015 on-prem environment where you have access to the database. But I was using Dynamics 365 (8.2) so that was no option.

The one part you cannot do in an online instance, in that article is to open the SQL database, in case you tried. So the trick was to find some other way to find the guid of the managed solution and it is of course quite simple, just right click it and select “Email a link” and your favorite email editor will open with the guid shown and you just have to know which part to cut, see the picture below:

Cut the guid between the %7b abd %7d which are the { and the }

Then just follow the instructions from the blog above and insert the guid into the url provided:

https://YOUR CRM URL/tools/dependency/dependencyviewdialog.aspx?objectid=GUID&objecttype=7100&operationtype=dependenciesforuninstall

Replacing “YOUR CRM URL” with the url to your D365 and GUID with the guid above.

That got me to this page, which after some de-privatization looks like a document from the Swedish tax authorities:

Thanks again to InteractiveWebs for the original article.

Gustaf Westerlund
MVP, Founder and CTO at CRM-konsulterna AB
www.crmkonsulterna.se