Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Building a Teams Power App Using a Custom Connector Part 3: Editing Data and Writing Back to the App

0.00/5 (No votes)
29 Jul 2021 1  
In this article we learn how to edit data in your Power App and write it back to the app, helping your organization’s teams quickly and easily manage events with consistent information.
Here display the meeting information from Meetup.com to users in our Teams group, enable them to rate the meetings, and update that information.

This third and final article in our Teams + Power Apps series improves our Teams Power App. In the first article, we created a simple Power App in Teams and connected it to a table with manually inputted data. In the second article, we wrote a Power Automate Flow to pull a list of meetings from Meetup.com into our Teams app.

So far, our Teams Power App tracks meetings from the .NET Foundation’s meetup site. The app pulls future meeting data into our Teams Dataverse and into the MeetingLists table. It then displays meeting information to our Teams users, like this:

In this article, we’ll modify the Power App to add meeting ratings, then return that rating information. We’ll also clean up the original meeting app’s display and add a few tricks.

Enhancing the Power App

To enhance our Power App, we’ll now add a rating field to the MeetingList table. It will get this rating from another table.

We’ll start by adding a "Rating" field and cleaning up the original table display. To add a table field using the Power App editor in Teams, we go to the data icon, click MeetingLists, click the ellipsis to display the popup menu, and select Edit data.

Next, we click + Add column and make a new Number field with a range of 0 to 5.

Next, we add a new table, MeetingRatings. This table has fields to name the rating, identify the meeting in MeetingLists, provide a numerical rating, and write a comment. In the data area, we click + Add data at the top, then Create new table.

We now create a new table and name it "MeetingRatings."

When we create a table, it adds a required Name field which we cannot delete. We can rename it, however, and we’ll use it to contain a title for the rating. We rename the column by clicking the down arrow to the right of where the column name is currently "Name":

We can use the plus sign to the right to create more columns, or we can click + Add Column at the top. We do this to add the following columns:

  • "Meetup" of type lookup with lookup "Meetings List"
  • "Rating" of type number with a range from 0 to 5 (see advanced options)
  • "Comment" of type text with a length of 1,000

Our table looks like this:

Now we can go back to the data icon, see the table, right-click to Edit Data, and add a row of data. For example, when we click on the Meetup field, it displays a list of meetings. Note there can be a short delay while the app fetches the list.

We’ve added a row for the demo:

Next, we add a new blank screen and rename it "Ratings." However, we can rename it and click on the blank canvas to add data and select the MeetingRatings table. Optionally, we can add additional formatting.

Note that Power Apps doesn’t add the Meetup field automatically. We need to edit the form and add that field.

Now we can save the form and preview it. We can click the one record we have to see the rating or add a new record.

Also, note that the rating must be an integer.

We can edit the record by clicking the pencil icon in the upper right corner. If, for example, we enter an illegal value for a rating, automatic validation gives us an error message, and we will not be able to save the record (by clicking the checkmark icon in the upper right corner).

Note that the Power App website offers some additional functions to the Teams Power App. For example, we can delete a table. To open the Power Automate website, click Power Automate in Teams and click the small globe icon in the upper right corner.

Also note, we should check that we are in the right environment (displayed on the upper right side). If we click on the team name, we may see multiple environments. The correct environment has the same name as the team where we are creating the Power App.

For example, if we remove a table from Power Automate, we still have to remove it from the data section of our Power App.

Creating an Update Rating Flow

Next, we’ll bring it all together by making a new flow that updates the ratings and writes them to the meetings table. We’ll use a simple flow that assumes one rating per meeting to avoid more complicated loops and fetch XML aggregates.

First, we go to our flows, click + New flow, and select Automated cloud flow. We’ll get a Build an automated cloud flow dialog box. Name it something like "Meeting Rating Updater."

For a trigger, we search for "Dataverse" and select When a row is added, modified or deleted, then click Create. If you have problems getting the flow to work, you can use a manual trigger to shorten the debug cycle.

For now, we’ll only set the trigger’s required fields for simplicity. We can also filter by a specific column. Let’s set ours up to create, update, or delete a row in the MeetingRatings table.

To keep this simple, and because we only have one rating per meeting at this point, we’ll go through the MeetingRatings table and update the corresponding meeting in MeetingLists. It would be more appropriate to collect all the ratings for an event then calculate an average. However, aggregates are a more complex Power Automate Flow task, and it’s beyond the scope of this article.

Finally, we’ll loop through all the meeting ratings and update the corresponding meetings list entry. The previous step passes a list of ratings as the value. We identify MeetingLists as the table and Meetup (Value) as the Row ID. In Dataverse, unique identifiers and GUIDs are primary keys.

Note that we rename each step to make a bit more sense.

Now we can save the flow and automatically run the Flow Checker to display any errors or warnings. Flow Checker does suggest adding a filter on Get Meeting Ratings to limit the rows as we would do in any usual database project. We skip that step here for simplicity.

Testing the Rating Function

At this point, we can test our new app function by editing a row in the MeetingRatings table. We can use automatic, too. It uses a recent trigger. Here, we update both rows in the MeetingRatings table, then monitor the flow to ensure it runs successfully.

To do this, we click data, open the MeetingsRatings table, and click Edit data using the default view. We also add the Rating column to the default view so we can easily modify the rating column.

We change the ratings to 1 and 2, respectively, and monitor the flow. After a few minutes, the trigger should kick in and report: "Succeeded." Note that you may require a few iterations of this, as you can see below:

When we click on the Start column in any row, Power Automate displays the run results and provides more information to fix issues, if required.

Next, when we look at the default view of the MeetingLists table (with the added Rating column), we can see that the ratings are updated.

Now we can publish the MeetingRatings app into our Teams team and change a rating there. Then, we can open the MeetingList app and, after a few minutes, see the results of those changes.

Summary

In this article series, we created a simple Teams Power Apps tool to read meeting information from Meetup.com, display that information to users in our Teams group, enable them to rate the meetings, and update that information. Our organization’s group members can now more easily manage meeting information in the same location as their other productivity tools.

Power Apps and Power Automate in Microsoft Teams bring a vast array of possibilities to a domain expert using no-code tools to write applications and make them available to everyone on the team. These tools are evolving with frequent improvements and enhancements to enable Teams users to create and use a wider variety of features.

Throughout this article series, we have explored just how easy it is to create helpful productivity tools in Teams. You can expand on our simple app with your own enhancements or create something brand new to help your team or other users boost their productivity. Learn more about Power Apps for Teams and start building your unique app today.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here