With the massive rise in Microsoft Teams usage in the past year, Microsoft are really investing in making it the market leader for productivity. New features were deployed rapidly to help organizations deal with enforced remote working scenarios and they are still being released at an amazing pace.
One of the more exciting features that was announced earlier this year and is currently in Preview is Project Oakdale. Project Oakdale is a cool sounding name and all but what actually is it? Well, it essentially brings the power of the Power Platform directly into Microsoft Teams! It does this by facilitating (within the Teams interface) the building of extremely flexible low/no-code solutions leveraging the Common Data Service, allowing for the use of relational data storage in our Teams Apps.
Let’s take a look at how we can put all of this into use. First, from our Teams Client, we add and open the PowerApps Teams app. Once open, we can create an app in a Team as below. There are also some premade apps and lots of learning material to go through if needed.
We can choose which Team to add a PowerApp to:
Once added, if this is the first App in the Team, it will take a moment to set up the back end environment to host our App.
When our environment is ready, we can start building our app. The first thing we will see is a familiar new, empty app. So let’s start by creating a table to store our data. Do this by clicking the “Create new table” button on the left pane.
I want to create an app that tracks internal training courses that the members of the Teams apply for so let’s create a table called “Training Course” and add a plural name of “Training Courses”.
Now that we have our table created, let’s populate it with some training courses available to our users, adding some details that we want to store for each. Let’s add in Course ID as an auto number to use as a unique identifier so we can associate the applications to courses. We’ll also add in a few courses that are available.
For this app I’m going to add a second table to store user applications to training.
Next, we’ll set up a relationship between the two tables. Navigate to the PowerApps tile, open the “Build” tab and select “See all”.
Now select “Tables” and view the “Relationships” tab of the ‘Application’ table and we can add the CourseID attribute that we created on the “Training Courses” table in a Many-to-One relationship with the “Training Course” table. Don’t forget to ‘save table’ after adding.
Now let’s add a frontend for our users as we would in PowerApps. and finish out the app. I won’t go through creating the app in detail as that’s another discussion.
When the frontend and any logic is up to date we can publish the app to the Team easily by clicking the ‘Publish to Team’ button. This will allow all members of the Team, including guests (Subject to licensing), to see and use the app!
We pick a channel to add the app to and hit Save and we’re done.
Now when our users access the Team, they’ll see the app we have published and can use the app in the Teams context without being granted specific permissions.
While this is an extremely basic app, the advanced features of the Power Platform including Flows and chatbots are available to publish to a Team in the same manner.
This is a massive step for low/no-code app development and for Teams itself. For more information on Project Oakdale and what it can do, see the below links.