cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Advocate I
Advocate I

Data load for Dataverse for Teams tables

Can someone suggest some solutions for loading data into my Dataverse for Teams application? I've setup tables and have hundreds of records to add, but the only method I see is manually typing in the data.

 

Do we have to create some Power Automate to pick up data in a CSV or Excel file and add it to the tables? Or is there some better way?

 

Thanks for your ideas.


Geoff

2 ACCEPTED SOLUTIONS

Accepted Solutions
Advocate I
Advocate I

I had to build a Power Automate flow. 

There is no "upsert" CDS function, so I had to create a flow that looks at an Excel table and cycles through the records, for each row it queries the database to see if the record alread exists. If so, then update. If not, then insert. 

This is so incredibly complicated for a tool that Microsoft is trying to put into the hands of the user! It took a few hours to learn how to put it all together correctly, and changes to the data are a pain. Tell me that any of my users would be able to do this, even with guidance. 

 

Setup your import file:

  1. Create an Excel file in Teams. Save the file in a channel.
  2. Add columns and data
  3. Format as a table
  4. Name the table the name of your table to help keep it straight.

Import data via Excel in Dataverse for Teams:

  1. Open Power Apps in Teams
  2. Click the Build tab.
  3. Select your team and click See all in the Built by this team panel.
  4. Click the Flows page on the left and then click New.
  5. Create a new flow, from manual trigger.
  6. Add a step - Excel: List rows present in a table 
    1. Point the step to the sharepoint site for the team
    2. Point the Document library to the library in the team
    3. Choose the file. I called mine "data load".
    4. Select the table that was named above.
  7. Add a step - Apply to each
    1. Output from this step is the Excel value
  8. Add a step inside the apply to each - CDS List records. Look for an existing record with the filter.
    1. Set the Entity name to the name of the Dataverse table
    2. Show advanced options
    3. Set Filter query to be the key column of the table, equal to, and set to column from your Excel table.  The name of the column in the Dataverse table is not the same as the description. Open the table to see all the columns with the actual column name. My "Name" column was actually named "cre4f_name".  "eq" mean equals. And then surround the Excel field from the previous step with single tick marks.  The result looks like this:
    4. Query:  cre4f_name eq '[xl]Name'
  9. Add a step inside the apply to each - Condition
    1. Set the condition to be an expression.  Check the length of the output to see if a record came back from the query. "List_records" below is the name of the previous step, with the space replaced by an underscore.
    2. Expression:  length(outputs('List_records')?['body/value'])
  1. Add a step to the Yes condition.
    1. Update a record 2
    2. Set Item ID to Previous CDS entity (My table is called Member)
    3. Set the new values for the fields. I updated Email, first name, last name, phone.  
    4. I had to use a formula to setup dates properly. "If the Join date field isn't empty, then set the join date to start of day(join date).
if(equals(empty(items('Apply_to_each')?['Join Date']),bool('True')),null,startOfDay(items('Apply_to_each')?['Join Date']))
 
 
Add another step to the no condition.
Create a new record. Entity is the CDS members.
Set the key.
Update all the fields as above.
 
 
Test. Fix. Repeat until it actually works.
 
1.png2.png3.png4.png5.png

View solution in original post

Hello @Geoff_Olives,

I'm sure you've seen this post already, but just in case anyone lands here, Microsoft have now provided functionality to import/edit data into Dataverse for Teams via Excel.

Here's the blog post.

Here's the Microsoft Docs.

Thanks,

Garry

View solution in original post

6 REPLIES 6
Super User
Super User

Hi @Geoff_Olives ,

 

I’m haven’t tried this scenario yet but it looks like you will have to build a Power Automate Flow at this stage based on the documentation.

 

https://docs.microsoft.com/en-us/powerapps/teams/data-platform-faqs#how-do-users-import-data-into-ta...

 

security.

How do users import data into tables in Dataverse for Teams?

Makers have the opportunity to bring in data through both the apps they develop as well as via connectors in Power Apps and Power Automate.

Super User II
Super User II

Hi @Geoff_Olives,

Haven't tried this either, but Dataflows might work with the CSV or Excel connector:

https://docs.microsoft.com/en-us/powerapps/maker/common-data-service/create-and-use-dataflows 

 

EDIT: might not be possible after all following this threadhttps://docs.microsoft.com/en-us/powerapps/teams/data-platform-compare#business-intelligence-and-pro...

 

Cheers

Advocate I
Advocate I

I had to build a Power Automate flow. 

There is no "upsert" CDS function, so I had to create a flow that looks at an Excel table and cycles through the records, for each row it queries the database to see if the record alread exists. If so, then update. If not, then insert. 

This is so incredibly complicated for a tool that Microsoft is trying to put into the hands of the user! It took a few hours to learn how to put it all together correctly, and changes to the data are a pain. Tell me that any of my users would be able to do this, even with guidance. 

 

Setup your import file:

  1. Create an Excel file in Teams. Save the file in a channel.
  2. Add columns and data
  3. Format as a table
  4. Name the table the name of your table to help keep it straight.

Import data via Excel in Dataverse for Teams:

  1. Open Power Apps in Teams
  2. Click the Build tab.
  3. Select your team and click See all in the Built by this team panel.
  4. Click the Flows page on the left and then click New.
  5. Create a new flow, from manual trigger.
  6. Add a step - Excel: List rows present in a table 
    1. Point the step to the sharepoint site for the team
    2. Point the Document library to the library in the team
    3. Choose the file. I called mine "data load".
    4. Select the table that was named above.
  7. Add a step - Apply to each
    1. Output from this step is the Excel value
  8. Add a step inside the apply to each - CDS List records. Look for an existing record with the filter.
    1. Set the Entity name to the name of the Dataverse table
    2. Show advanced options
    3. Set Filter query to be the key column of the table, equal to, and set to column from your Excel table.  The name of the column in the Dataverse table is not the same as the description. Open the table to see all the columns with the actual column name. My "Name" column was actually named "cre4f_name".  "eq" mean equals. And then surround the Excel field from the previous step with single tick marks.  The result looks like this:
    4. Query:  cre4f_name eq '[xl]Name'
  9. Add a step inside the apply to each - Condition
    1. Set the condition to be an expression.  Check the length of the output to see if a record came back from the query. "List_records" below is the name of the previous step, with the space replaced by an underscore.
    2. Expression:  length(outputs('List_records')?['body/value'])
  1. Add a step to the Yes condition.
    1. Update a record 2
    2. Set Item ID to Previous CDS entity (My table is called Member)
    3. Set the new values for the fields. I updated Email, first name, last name, phone.  
    4. I had to use a formula to setup dates properly. "If the Join date field isn't empty, then set the join date to start of day(join date).
if(equals(empty(items('Apply_to_each')?['Join Date']),bool('True')),null,startOfDay(items('Apply_to_each')?['Join Date']))
 
 
Add another step to the no condition.
Create a new record. Entity is the CDS members.
Set the key.
Update all the fields as above.
 
 
Test. Fix. Repeat until it actually works.
 
1.png2.png3.png4.png5.png

View solution in original post

Super User II
Super User II

Yep, there might be a learning curve at first but from a developer/citizen developer perspective promise that you'll get the hang of it quickly. Also, note the Dataverse for Teams just came come out so we should expect a lot of features and enhancements in the next waves...

Unfortunately there isn't an upsert function with the connector but there's is with the SDK.

You should submit that idea at (if it doesn't already exists): https://powerusers.microsoft.com/t5/Power-Apps-Ideas/idb-p/PowerAppsIdeas

Cheers

Hello @Geoff_Olives,

I'm sure you've seen this post already, but just in case anyone lands here, Microsoft have now provided functionality to import/edit data into Dataverse for Teams via Excel.

Here's the blog post.

Here's the Microsoft Docs.

Thanks,

Garry

View solution in original post

I had not, but this will be awesome. I'll have to check it out.

 

Helpful resources

Announcements
New Badges

New Solution Badges!

Check out our new profile badges recognizing authored solutions!

New Power Super Users

Congratulations!

We are excited to announce the Power Apps Super Users!

Power Apps Community Call

Power Apps Community Call: February

Did you miss the call? Check out the Power Apps Community Call here.

Microsoft Ignite

Microsoft Ignite

Join digitally, March 2–4, 2021 to explore new tech that's ready to implement. Experience the keynote in mixed reality through AltspaceVR!

Users online (25,389)