Gotcha: SharePoint List and Virtual Table Provider

You can hook up a SharePoint list to a Dataverse environment using Virtual Tables, and without using any code. The documentation on how to do this is at https://learn.microsoft.com/en-us/power-apps/maker/data-platform/create-virtual-tables-using-connectors

However, the doc page misses two key things when it comes to transporting this table via solution.

If the ID on the target environment’s SharePoint List is different you would get this error, which basically says that the list is not found on the SharePoint site. You of course have to create different lists if you need different SharePoint sites for DEV, TEST, UAT and PROD. It is also not possible to create a SharePoint List with a specific ID.

Screenshot of SharePoint List not found error

First one is, after the solution is imported you’ll have to update it to point to the correct SharePoint site.

Screenshot of virtual table datasource

The column to update is Dataset value.

Screenshot of virtual connector datasource record

Next, you’ll have to update the SharePoint List ID. Unfortunately, you cannot edit this in the modern solution experience. It shows up as read-only.

Screenshot of Client virtual table in solution

The only way you can update this without code is to use the classic solution experience.

Screenshot of Dynamics 365 Settings area that shows menu "Customize the System"
Screenshot of Client table in Default solution

You can get the List ID from the List settings.

Screenshot of SharePoint site showing lists

The List ID is in the URL.

Screenshot of Clients list in SharePoint

If everything is setup properly you would see the SharePoint List’s content in your Model Driven App.

Screenshot of Client table in Power Apps Model Driven App

This workaround unfortunately creates an unmanaged layer on the target environment, but until Microsoft releases something to fix the fundamental issue, this seems to be the only way to transport solution with Virtual Tables pointing to a SharePoint List.

Leave a comment