Virtual Tables in Microsoft Dataverse for Teams
Playing around with virtual tables made me aware, that this technology is amazing to integrate foreign data into Dataverse. But what is with Dataverse for Microsoft Teams? Can I also setup virtual tables in these environments?
Furthermore, setting up virtual tables in Dataverse for Microsoft Teams seems impossible. This is because, you have no option to access the Advanced Setup like in a real Dataverse:
Yes, this is because the Advanced Setup is based on the classic CRM interface. And as everyone knows, the classic CRM interface or UI is not available in Dataverse for Teams. This is also the case with Model Driven Apps, for example.
In other words, this sounds like a new challenge to me. So let’s do something obviously impossible…
Creating Dataverse for Teams
Firstly, I need a Dataverse for Microsoft Teams and creating a new Dataverse for Teams is an easy task. I navigate to my MS Team and start creating a new power App:
Behind the scenes, Microsoft starts creating my new Dataverse for Teams instance. I can verify this in my Power Platform Admin Center. Here you see my successfully created new environment.
But where is my environment in https://make.powerapps.com/? I don’t see my Microsoft Teams Dataverse environment:
Let me change my perspective and navigate to https://make.powerautomate.com/. Here are more environments visible including my Dataverse for Teams environments:
But – here is no way to navigate to my Advanced Settings like initially described:
Yes, this is Dataverse for Teams with a reduced functionality. In other words, the classic user interface is not available to me. Darn!
Virtual Tables in Dataverse for Teams
What’s with virtual tables? Are the tables also not available? Let me navigate from the Power Automate UI to my tables and have a closer look, what’s in Dataverse for Teams:
Surprise! This link opens my Power Apps UI with all my tables:
Much better, there are virtual tables! I can filter for virtual table and I find existing virtual tables.
That’s great, the technology Virtual Tables is available in Dataverse for Teams! Much better, there is a very interesting table for me OData v4 Data Sources:
In conclusion, I can setup also my Virtual Entity Data Sources. (read more here: AWS Data as Virtual Tables in Dataverse)
Note: Configuration data of Virtual Entity Data Sources from the “reel” Dataverse can be found in Dataverse for Microsoft Teams as OData v4 Data Sources.
Creating a Virtual Tables in Dataverse for Teams
Unfortunately, this is obviously impossible. I can create a new table in Dataverse for Teams, but I can’t change the Table Type to Virtual. Here on the left side you can see Dataverse for Teams and on the right side the real Dataverse:
However, I have seen virtual tables in my dataverse for teams. This means that it must be possible to create virtual tables! What about if I just create my virtual tables in Dataverse and…
Importing Virtual Tables in Dataverse for Teams
Right, I can use a Solution in Dataverse, where I add or create my Virtual Tables. I can also transport my virtual tables within my solution together with other components.
I create a small solution based on components my previous blog post (AWS DynamoDB as Virtual Table with CRUD in Dataverse). Therefore, I add my table AWS Product Categories and my canvas app AWS Data Catalog:
In addition, I must ensure that I add all required objects to my solution:
As result, also my Virtual Table Data Source is added to my solution:
Now I’m read to export my solution:
Afterwards, I navigate to my Solution in Dataverse for Teams:
Remember, you can use https://make.powerautomate.com/ to navigate to your environment. Another option is to enter the following URL in your browser and replace <ENVIRONMENT-ID> with your Dataverse for Teams environment Id from your admin center:
Finally, my import dialog opens, I select my managed solution package, and I start the import:
Well, my solution import worked but I got this notification:
Ok… my import says:
Solution “AWSVirtualTables_1_0_0_1_managed.zip” imported successfully with warnings: Data Source secrets are not included in solutions. You’ll need to edit your data sources to add secrets back following solution import.
In other words I must configure my Virtual Table Data Source stored in table OData v4 Data Source.
Configure Virtual Table Data Sources in Dataverse for Teams
I guess, for this I have two options. One is to navigate directly to my table OData v4 Data Source:
After navigation to my OData v4 Data Source table, the designer opens. Here, I make all needed columns visible to configure my data source. These are per example my parameter1name and parameter1value:
I enter my X-API-Key as parameter1value and the recode starts saving afterwards:
Let’s check the result. Wow, looks great:
Setup OData v4 Data Source as Flow
My second option is, to include a flow into my solution which update my OData v4 Data Source. In my opinion, this isn’t a bad idea because a user could trigger this flow also from a canvas app.
I create a flow with a parameter for my X-API-Key (paramater1value). Furthermore, I setup a variable with my Data Source Name:
Finally, I Update the Virtual Entity Data Source (OData v4 Data Source in Dataverse for Teams) in my target environment. Furthermore, I use my created flow in my canvas app to set up the X-API-Key:
As next step, I import my new solution again into my Microsoft Teams Dataverse environment:
Last but not least, I open my imported canvas app in my Microsoft Teams environment:
Furthermore, I publish my app:
… in my channel MS Teams next to my General tab:
As result, my canvas app appears in Microsoft Teams. You see also, my AWS Product Category list is empty. For that reason, I navigate in my app to my settings screen by clicking the previously added icon:
Here in my setup screen, I’m able to insert my X-API-Key for my Virtual Data Source:
After saving, my Power Automate Flow starts and update my table OData v4 Data Source. Now my virtual table can use its data source and show my external AWS records in my Dataverse for Microsoft Teams:
First of all, good news – Dataverse for Teams supports Virtual Tables. This is in my opinion amazing!
I showed you, how I add a virtual table in order to access external data in a Dataverse for Teams environment. I did this by creating a solution and adding my virtual table. In addition, I included also its virtual table data source. Furthermore, I added my canvas app which give my Microsoft Teams users access to the data in my virtual table.
Then, I showed you two ways to configured my virtual table data source in Dataverse for Teams. One option was to change the configuration data directly in the tabe OData v4 Data Source. For my second option I used a Power Automate Flow as part of my solution and canvas app. Both worked well.
Of course, you might think that this was only possible through a couple of tricks. However, it worked and this opens up new possibilities for Microsoft Teams and Power Apps. Just think about the different licensing model between Dataverse and Dataverse for Teams…