By Hameer Khawaja
Hameer has been working in the field of IT since 2003. Over the years he has helped many clients yield successful business outcomes using technologies such as Microsoft SharePoint, Microsoft Dynamics CRM, Microsoft .NET and Microsoft SQL Server. He currently holds many industry certifications including AIIM - Certified Information Professional.
Apple's app store inspired the masses and became an ecosystem for useful applications largely targeted towards solving everyday problems. Microsoft, holding the largest share in desktop operating system, introduced Windows Store with the ambition that it will become the go-to platform for Applications intended to deliver business outcomes. This idea didn't fly as much primarily due to two reasons:
- Application development for Windows Store required a skilled programmer.
- Businesses did not want to publish their private applications to a public App Store.
Businesses needed a platform which technology savvy staff from their existing workforce can learn from and use for creating useful applications that support their operations. All of that plus isolation and security to ensure company's applications and precious data isn't available to any Tom, Dick or Harry. Not unless these three work for your company of course :).
It's worth mentioning here that the kind of applications we are talking about are the ones that generally do not fit into the category targeting larger business outcomes, e.g. customer relationship management, document management or financial planning etc. The apps in perspective are the ones targeting a relatively smaller domain, like expense claims, travel requests, office supply requests etc. Businesses that generally use Microsoft products have been using different methods to create such applications such as custom developed applications, InfoPath Forms (mostly with SharePoint) and SharePoint web parts are just a few examples. All of these technologies present challenges in one form or another for non-developers.
Microsoft has finally come up with a unified approach to developing such applications using PowerApps.
"PowerApps is a service for building and using custom business apps that connect to your data and work across the web and mobile - without the time and expense of custom software development."
With PowerApps, Microsoft is trying to handover the otherwise tedious task of creating an application to the tech savvy business people with little or no programming knowledge. Though not 100% there yet, it has a good foundation to march towards that goal.
Here's how it works. Office 365 now has yet another Tile popped up by the name PowerApps.
You will see it when you login to https://portal.office.com using your office 365 account.
Clicking on the tile takes you to the PowerApps site within office 365. This is where the action begins.
To have a feel for how the App building process looks like, let's attempt to solve a real world problem using an app.
In the real world there is a small company that needs to manage the refill of office supplies when they have or are about to run out. The company wants its staff to flag it. It has to be a simple process, one that can be completed quickly on the spot. For instance, you are in the kitchen and spot good old Matt tearing up the last sheet of paper towel. Now if you are like me, your mobile is normally glued to your palm when you move around the office. You would quickly open the app and click a button which will flag that the next store run should include paper towels. Nick, as tech savvy as he is, refers to the same app while shopping for supplies and voila - paper towels have been flagged. It works just like a handy shopping list.
Let's get building.
DEFINING the Data Structure
Before we start the app build, we need to think about where we will store the data for the app. Data in this case is the list of office supplies each with a flag specifying a refill. In essence we are talking about the data in following format.
One option for such data storage is available in the form of newly introduced Microsoft Common Data Service.
"The Common Data Service is a secure business data platform built into PowerApps. It comes with hundreds of standard business entities already defined, which means that now all your apps can share the same definition of “customer,” “product,” “lead,” and more."
What's even better, is that you can create your own custom entities i.e. a data structure designed to store your data. This is precisely what we are going to do in this case.
Let's go-ahead and click the PowerApps Tile that we saw earlier. Alternatively, we can login to https://web.powerapps.com using your office 365 account.
Depending on your subscription and whether a common data service environment has been setup for you, you will click on the Entities link under Common Data Service heading on the left hand side. Note that setting up common data service environment is a simple guided process when you browse the PowerAps site for the first time.
On PowerApps website, you will be presented with the page below:
To create a new entity i.e. a data structure to store office supplies data, click on the "New entity" link on the top right hand corner.
Enter the details for the entity, "My Supplies" in this case and click Next.
Click the "Add field" button on the top right hand corner to add new fields to store data.
Add the fields, "Item Name" (Text) and "Is Finished" (Boolean - Yes/No) and click Create.
Once the entity has been saved, you will be taken to the main entity list page where you can search for your entity for coming back to it.
Search "My Supplies" in the search box.
Clicking on the entity should take you to the entity's detail page. Make sure it looks like the following page:
Now we need to enter data for our office supplies.
Click on the "Open Excel" link at the top which will open an Excel file connected to the "My Supplies" entry.
Note that there is an Excel Add-In which loads with the Excel file. This Add-In will present a section on the right hand side of Excel.
You can enter new rows by clicking the "New" button from the section.
Ensure the data is entered in the following form and click "Publish" from the right hand pane to upload the data with "My Supplies" entity.
If you go back to the entity page and click on the "Data" tab, you will see that the data has actually been uploaded.
Now for creating the actual app which will use the data from the common data service.
Creating an App is as simple as clicking the new button at the bottom of the main page of PowerApps site.
Click the button and you are presented with a dialogue asking if you want to build the app using "PowerApps Studio for Windows" or "PowerApps Studio for web". Go-ahead and click on the "PowerApps Studio for Windows" button.
Next screen will be Windows Store asking you to install PowerApps.
This will install PowerApps Desktop client on your PC. Power Apps Desktop client helps you build as well as run applications (built with PowerApps).
Open PowerApps desktop client after the install and click "New" from left hand navigation.
The application will ask you about the sort of App you want to create. In our case, we are building an app working with data from Common Data Service, so naturally we should choose the first option as shown below:
Next screen asks you to choose Common Data Service connection as well as the entity to be used.
Go-ahead and choose "My Supplies" entity that you created earlier.
This is when PowerApps does its magic and you are presented with an App connected to the entity and with pre-built screens.
There are three types of screens created by default:
- Browse Screen: Displays the list of all items and a search box to find a specific item.
- Detail Screen: Displays the details of a single item. In our case it should show the "Item Name" and "Is Finished" fields from the "My Supplies" Entity.
- Edit Screen: This is to edit a single item from the entity.
I think we all agree that the default "Browse Screen" doesn't look the greatest. This is because the fields chosen to be displayed are not the ones we would hope to see. So, lets change that.
Click on the Layouts button in the ribbon and choose the option, "Browse Items, One Line Description".
This will display one line per item on the screen.
Now let's select one of the text boxes on the screen to see which field is connected to it.
You may find that it’s connected to CreatedByUser field which is one of the default fields.
We can change the field the text box is connected to by selecting a different field from the dropdown on the right hand side.
We choose "Item Name" in this case.
Now, click on the play button on top to preview the App with the changed settings. Note that play button is to test the functionality of the app before publishing it out to a wider audience.
That's better. We can see the listing of all items by name.
Click on the arrow on right of Tissue Paper and you'll see the "Details Screen".
Well how did clicking on the arrow present the "Details Screen"? There should be some wizardry behind the scenes.
Let's look at that to understand how basic logic like this works in PowerApps.
- Stop the preview and click on the Browse Screen from left hand side.
- Then, select one of the arrows on the screen.
- Click on the "Advanced" tab on the right hand side section and examine the OnSelect property.
- You would notice that there is an Excel like formula telling the app to navigate to "DetailsScreen1".
Most logic in PowerApps works in this way and the formulas can be learned and used just like Excel.
Now to save the app before we share it with everyone in the organisation.
Click on File-->Save as option and specify a name like "My Supplies App".
Be sure to choose the option of "The Cloud" as we are trying to publish the app to a wider audience.
Saved notification appears on the screen confirming the operation was successful.
Publish the App
We have done all the work needed to build a simple office supplies app.
Now to publish the app to your colleagues.
Login to PowerApps main page again and you will find your newly saved app on top.
Click on the app and you'll be presented with the "App settings" page.
Click "Share" from the left navigation and you'll have the option to share it with entire organisation or specific colleagues.
We intend to share it with entire organisation so we'll select "Share with org" option.
Now the "My Supplies" app should be available to everybody in your organisation provided they install the PowerApps on their phone.
I installed the app from Android Store on my phone as can be seen below:
Once I open the app, I can see the "My Supplies" app available to be used.
Now you would ask, do I need to always open PowerApps first to use my app?
You certainly don't have to. You can click on the ellipses next to the app and choose the "Pin to Home" option.
This will make "My Supplies" app available directly on your phone's home screen.
Now I have flagged everything as finished using the app and am waiting for Nick to do his next store run.
We have now seen how easy it is to create a simple app without using any code or requiring IT support. We have barely touched the tip of an iceberg and there is so much more that PowerApps has to offer. It is certainly on its way to empowering business users to be self-sufficient when it comes to building applications which directly or indirectly support their roles and responsibilities.
Imagine a world where an expense request application is a DIY project of an accountant in the Finance department and a leave request application is with the lady from HR. These are the people who know their business first hand and the liberty of creating apps to support what they do without needing IT is an amazing journey of empowerment which leads not just to saved time and money but also to increased job-satisfaction.
It's certainly the delegation of power to you.