What is PowerApps?

It is a service offered by Microsoft where you can build or use custom business apps that connects your data and work to the web and mobile devices without the expense of having to purchase custom software and the time that it takes for its development.

How it works:

No coding experience is required, it is a drag and drop that uses expressions for logic and working with your data. Your data is the core of your apps and is stored in what is called a ‘data source’. Your data can be local to an app (local data source) or stored in a cloud service (connected data source). You bring that ‘data source’ into the application by creating what is called a ‘connection’. The connection uses what is called a ‘connector’ to be able to talk to that data.

There are two types of connectors:

  • Standard: prebuilt connectors that PowerApps offers for supported data sources
  • Custom: custom built connectors for data sources that are not standard

PowerApps has the ability to integrate your data from a variety of sources using connectors that are available for many popular services as well as some on-premises data sources, like SharePoint, SQL Server, Office 365, Twitter, and more. Some connectors are Premium connectors that require that you hold a PowerApps Plan 1 or Plan 2 in order to use.

Some of the more popular standard connectors are:

Common Data Services                                               Office 365 Outlook

SharePoint                                                                     Excel

SQL Server                                                                     One Drive

Dynamics 365                                                               Dropbox

Office 365 Users

Connectors work with tabular data sources and function-based data sources, however, the behavior is different depending on the type of data source and how the data is returned. Tabular data sources are returned as a table while function-based data sources are returned by calling on specific functions from the underlying service.

Apps can be created from a template, your existing data, or you can create it from scratch. Designs include canvas apps and model-driven apps.

  • You can create different environments for your apps. An environment is a space that holds your apps. Each environment is created under an Azure AD tenant and can only be accessed by the users that belong to that tenant. Environments are bound to geographical locations and the apps are routed to the datacenters in that location. Any items created are also bound to the environments location. Each user under the PowerApps P2 plan can have 2 Production and 2 Test environments. The first app I created is in the Default Environment.

FIG 1

 

  • The second one is created in a new environment I named Senior Capstone.

FIG 2

FIG 3

NOTE: For the type you will notice it is listed as a Trial. The reason is I added the Common Data Service as one of my connections when I started the creation of my 2nd app, and because I do not have permissions or the organization does not have the proper license to use this, I signed up for the 30 day trial to continue. I did not end up using the Common Data Service for my app, but I did check it out. It basically is a common data storage for the organizations database that will be shared using common field and entity names.

Why Separate Environments?

Having separate environments may be useful when you have apps that have different roles or security requirements from other apps or ones that will be targeting a whole different audience. For example, you may want to separate your test and production apps from each other, or you may want to separate apps according to specific teams or departments. It is like a container where you can separate data and apps specific to an organization’s needs.

The apps you create within a certain environment only have permission to connect to the data sources, gateways, flows, and Common Data Services databases that also exist in that same environment. However, you can migrate resources between environments through what is called Packaging.

You can control the security of the database using roles and permissions set for that database in that environment. Data policies can also be set to protect against data loss.

There are two built in permission roles:

Environment Admin role: can perform ALL administrative actions; no limits on the number of environments

Environment Maker role: can create resources including apps, connections, custom connectors, gateways, and flows; they can also share and distribute the apps they build; this is the role, by default, that a new user is placed in under the default environment

My Project using PowerApps

#1 PowerApps called Service Desk-Phone App-Senior Capstone Project – SMCC Default Environment

I will create two apps. The first one I created I used a template offered through PowerApps for IT Service Desk work orders. I created this in my SMCC default environment.

 ♦      Signed into PowerApps using my SMCC credentials, from the Home page, I chose to use the ‘Service Desk’ template to explore my first app. As you can see, this app will be accessible on both mobile phones and desktops via browser or by downloading PowerApps from the Microsoft Store. Not all templates are available for both mobile and desktops.

FIG 1

 

♦     You will see that you can start creating an app that is blank or one that pulls data in from your data source and attempts to organize it for you. This is the one I chose for my second app. You see here this is only available for mobile devices. If you choose to start from a blank canvas, you will have the option to choose to create a gallery or a form as a starting point helper, or you can just skip this if you want to build this from nothing!

FIG 2

     Back to the Service Desk template: Select the ‘Service Desk’ as your template and select ‘Make this app’. Here is the ‘mobile view’ of this app.

FIG 3

♦     Here is the ‘Desktop’ view of this app.

FIG 4

     You have the option at the start of the screen to take a quick tour of PowerApps Studio or Preview how the app will work.

FIG 5

     To create your own version of this app, you want to click ‘Make my own app’ in the upper yellow bar displayed at the top and connect to a data storage, like One Drive. You will see there is no data being displayed right now in the app as we have not chosen where to store the data tables for this app. You will choose where your data gets stored in the next step.

FIG 6

     A pop up window will open and ask where you want to store the data for your app. Your data needs to be stored somewhere in the cloud in order to be accessed by the app. You will recall, this is what is called a ‘connected data source’. I chose OneDrive for Business, but you will see you have other options of cloud storage sites to choose from.

FIG 7

     Lets go check out where the data is being held. To get to your ‘One Drive’ from the PowerApps home page, click the down arrow on the left side next to ‘PowerApps’ and choose ‘One Drive’. Your one drive will open up in a new tab.

FIG 8

     Here you will see that the PowerApps created a folder in my OneDrive for Business that is connected to my SMCC Office 365 account as a student, and put an excel spreadsheet template into it. This shows as shared, but by default it is Private starting out. I have already created the app and shared these folders.

FIG 9

     Here is the folder within the PowerApps folder that was created and name ‘Templates’.

FIG 10

     You will see that there are 7 sheets of data within this template being used for the app data.

FIG 11

Note: For the most part I left the template as it was and used it as a guide to help me build my second app. There are tons of documentation in PowerApps that walk you through step by step how to manipulate your app and change how your data is displayed.

     I did however, decide to add a few more ‘Attendants’ to the data sheet, and decided I wanted a drop down menu as well in the ‘Assigned To’ cell. Below is the Attendant list and the last 4 entries I added. I just added ‘Denali’ so powerapps has not yet assigned its ID to the new entry. It takes a while for all the data to update and show on the apps. I found it to be quite slow.

FIG 12

     So now lets jump to the app that I have already set up. It is listed on my home page under ‘Recent Apps’. To open up and work on my app, I will click the edit button within the app icon.

FIG 13

 

     This template has a home page (IT Help Desk), tickets page, ticket detail page, filter page, status page, assign page, create page, area page, and a priority page.

FIG 14

     I have made a few changes to this template. I changed the home page name to IT Help Desk. This is easy enough. There are several places where you can edit this text box. You can edit the name in the function bar between the quotes, or just by double clicking in the IT Help Desk text box and typing. You can also rename it using the menu to the right and entering the new name in the Text under the Properties tab. There are many different properties you can set using the right menu. To the left is a menu that displays all the screens your app has. Wherever you click on your app, the related control will be highlighted and displayed in this left bar. This was very useful for me while I was trying to learn and understand how to create the screens and how the data was displayed or accessed.

FIG 15

     Lets take a deeper look at how to tell a screen what data to display. Under the home page screen, the larger lower section is the gallery. You can see under Data to the right, it is connected to the TicketTypes excel sheet. You point the screen to the data sheet that you want to pull info from.

FIG 16

     Here is the sheet called ‘TicketTypes’ where the data is being pulled from.

FIG 17

   So how does it know what to filter and show for information? PowerApps uses ‘if’ and ‘switch’ functions. ‘If’ functions test conditions until a true value is found. The most common syntax for the ‘if’ function is If( Condition, ThenResult, DefaultResult ). The ‘if’ function can be used to evaluate a single condition or multiple conditions that are unrelated. ‘Switches’ evaluate formulas until a matching value that you specify is found. The syntax for ‘switch’ is Switch( Formula, Match1, Result1 [, Match2, Result2, … [, DefaultResult ] ] ).

FIG 18

     Here is a copy of the functions using ‘if’ statements listed in the ‘All Tickets’ control that apply to all the controls on this page.

If(ThisItem.TicketTypes=“All tickets”,Navigate(TicketsPage,ScreenTransition.Fade,{type:“All”}),

If(ThisItem.TicketTypes=“New tickets”,Navigate(TicketsPage,ScreenTransition.Fade,{type:“New”}),

If(ThisItem.TicketTypes=“Tickets in progress”,Navigate(TicketsPage,ScreenTransition.Fade,{type:“In progress”}),

If(ThisItem.TicketTypes=“Tickets closed”,Navigate(TicketsPage,ScreenTransition.Fade,{type:“Closed”}),

If(ThisItem.TicketTypes=“Tickets on hold”,Navigate(TicketsPage,ScreenTransition.Fade,{type:“On hold”}))))));

If(ThisItem.TicketTypes=“Tickets older than 3 days”,Navigate(TicketsPage,ScreenTransition.Fade,{datetype:Text(DateAdd(Today(), -3)),type:“Tickets older than 3 days”}),

If(ThisItem.TicketTypes=“Tickets closed today”,Navigate(TicketsPage,ScreenTransition.Fade,{datetype:Text(Today()),type:“Tickets closed today”}),

If(ThisItem.TicketTypes=“Tickets opened today”,Navigate(TicketsPage,ScreenTransition.Fade,{datetype:Text(Today()),type:“Tickets opened today”}))))

 

♦    You can also set rules that apply to the controls that will automatically modify the app to the specified criteria you set. For example, you can tell the control to show list items in a certain color based on their status. I would have liked to set up a High Priority control box that filtered tickets based on those that were High Priorities, however, I have run out of time. I would have also liked to make the High Priority tickets show up with red text whenever they were part of a result and displayed.

FIG 19

     This template did not come with the option to assign someone to a new ticket when creating it. So I am going to add a drop down menu that will pull the data from the ‘Attendants’ sheet and allow me to assign someone to a ticket.

FIG 20

NOTE: I have removed the prior ‘Assigned to’ drop down box shown in earlier images in order to re-create it here for you.

     Once I select ‘Drop down’, the drop down box appears on the screen at the top. I will move it down to where I want it below Description.

FIG 21

     I will now add a text ‘label’ box and name it ‘Assign To’.

FIG 22

     You will see there is a number one currently in the drop down box. The box is pointing to sample data so I have to tell it where to get its data from. I will click into the box, then on the right hand side I will type in ‘Attendants’ under the DATA section in the Items box. You can also just type this into the function bar above. Attendants shows as green which tells me this is a valid name.

FIG 23

     Next, under DATA value I will put “Name” in quotes to specify the column of data I want to retrieve. I now have my list of attendant names displaying with a scroll bar so that I may choose to Assign someone to a ticket. This is also the place where I added 4 new names to the table.

FIG 24

NOTE: You must remember to save and publish your work when you are done! PowerApps saves versions of your apps so that you may go back if needed. You can save a version without making it LIVE, so if you are ready to make it LIVE then you must publish it.

     I had an IT friend here at SMCC test this app out for me. I added his name to the ‘Attendants’ list as Tom M and asked him to download PowerApps, log in with his SMCC credentials, and create a new ticket. I asked that he make sure he could see the ‘Assign To’ drop down list and asked that he assign this ticket to himself. It was a success. Tom added an extra ticket that I am just now seeing…. a Visit request to the IT Department, and he assigned it to me. So I know the newly added names to the ‘Attendant’ table are displaying for him as well.

FIG 25

     In order to be able to share this app with people in the organization, I had to share the app and also share the folders in my One Drive. You will also need to share your data source as well as the app. You can choose to share with specific people in the organization, or all users in the organization. Under the details tab you have Owner information, Connections this app is using, Flows if you have them, the web link address to you PowerApp, and who your sharing information.

FIG 26

     Under the share tab is where you specify individuals or user groups to share with. In small print below, it does state that you will have to share access to any services this app is connected to as well. I did not see this so it failed to allow others to see any data within the app, however, they could see the app and attempt to view it, but then got an error. I figured it out on my own that I may have to share access to my One Drive files. Makes sense.

FIG 27

     Here is a view of the different published versions of this app. I did do an update to the PowerApps back in the beginning when it came out, so that is why you see the change in the release version. You will see the most recent is LIVE but that isn’t the case automatically, you need to make sure you save your work and then until you publish it, the newest changes are not live.

FIG 28

     Here are the apps analytics. It gives details on how many individual users have opened your app, and what device platforms were used as well as active users and daily active users.

FIG 29

How could this be helpful to the IT Department of an organization?

In my experience as a Work Study student in SMCC’s IT Department, I can personally say why I feel that an app like this could come in real handy and be useful for several reasons. One is that I found printing out work orders to take with me ‘on the road’ was quite a hassle and a waste of paper. I needed the printouts because one, my memory is horrible, and two, it provided a place I could make notes on to later add to the work order. Another reason is that while this didn’t happen a lot, it did happen to me a few times during hectic times, and that is that I would go take care of a problem and come back and find out someone went out right behind me to take care of the same problem. Part of this confusion was due to NOT assigning any specific person to work orders anymore unless it was a pre-approved long term project, with the idea they would get done faster and not overlooked because someone’s name was tagged to it. The other major problem is the discipline it takes to faithfully remember to add notes and resolutions and close out work orders in a timely manner. Often times it is hectic and busy in the IT Department and work orders either do not get closed out or updated at all, or they aren’t done before someone sets out to complete it. Notes and resolutions are very important and after a long hectic day it can be hard to remember what those are for each job. This app provides real time instant availability of all the details of the work orders and the ability to add notes and update info, as well as closing out the work order immediately upon completion. The IT Department here on campus does not use such an app, but I feel it would be an amazing tool to utilize! The Track It software that the school uses does offer a mobile app that is not being utilized.


#2 PowerApps called Service Tracker created in New Environment named Senior Capstone

♦     Now onto the second PowerApps I created using my own data. The second one I created I used a blank template and connected the app to existing data, an excel spreadsheet that I created and uploaded to One Drive for business. This one is geared towards a small business like my own. I created what I would like to have while out on the road for quick info on customers that included prior problems and service dates, as well as the ability to enter quick notes for new or existing records. I also added a customer contact list so I have addresses and phone numbers as well.

     Each app starts out with 3 basic screens unless you are starting with a blank one. It starts with a browse screen, detail screen, and an edit screen. I created a 2nd browse, detail, and edit screen as I wanted to pull more data in from a 2nd excel spreadsheet that contained my customer contact information.

FIG 30

     Here is my Home screen. I renamed the default name of BrowseScreen1 to ‘Home Screen’ by just double clicking in the title. I have 3 excel data sheets made up, but have only utilized two. I named this screen ‘Service Calls’ and it displays a history of all prior service calls by Customer name, the date of service, and the problem.

FIG 31

     This screen points to my data sheet named service.xlsx.

FIG 32

     I am unsure why it is listed as Table1 but when I search for a data source, I see all three tables that I created under the PowerApps folder named appropriately, I select the services.xlsx sheet, and then within that sheet it is listed as Table1. Here you will also see that I only selected 3 fields to be shown on this screen. The Problem, Date of Service, and the Customers Name. This is all I want on the initial screen. More details will be displayed when the arrow next to the Customer is clicked.

FIG 33

     Next is the Details screen, after clicking the arrow button next to the customer’s name. Here you see that all 5 fields are displayed. I could choose to show less but to me a detail page includes all the info. You can adjust the amount of columns the information is displayed in as well as what layout you would like to have. There is to many words to do more than 1 column and have it display correctly in the mobile view.

FIG 34

     Here is the ‘Horizontal’ view. I prefer the vertical view.

FIG 35

     Next is the Edit Screen where data can be edited or a new form can be filled out for services.

FIG 36

     So those are the 3 default screens created by PowerApps using my own data. Next I created another screen that will display the contact information of my customers. I felt it made sense to have quick and easy access to this information while out on the road. You will see I connected this screen to a different table that I named tblCustomers.xlsx. Again, PowerApps named this table within this sheet as Table1_1.

FIG 37

     I then created a detailed screen and set the arrow to connect to the same table showing more details that include the customer’s address as well. This would obviously be handy out on the road if I was having trouble remembering exactly where this customer was located. I chose not to include the customer id field as it is not necessary for my needs here.

FIG 38

     Next I created the Edit screen so that I could add a new customer’s contact info or edit an existing one.

FIG 39

     Now I need a way to access the Customer Contact information from the first Home screen, so I added the ‘People’ icon and set it to Navigate Screen 2 on select. The ‘none’ is for the transition style.

FIG 40

     I then decided I wanted a way to get back to the ‘Home Screen’ from the Contact Info page so I added a Home icon and set it to Navigate back to the Home Screen.

FIG 41

     Then I needed to set the ‘Back Arrow’ to go back to the Contact info home page and not the Home gallery page, as this made the most sense to me. So I set it to Navigate to the ‘BrowseGallery2’ screen. I also added a Home button here as I like the ease of one click access to all the data.

FIG 42

NOTE:    I decided to mess with the page transition a little and chose ‘Uncover’ instead of none. It causes the window to slide vertically to the screen I specified.

Video clip

Screen transition-Uncover-2

How is this helpful to me as a single business owner?

A mobile app like this would allow me to have instant access to past service problems and resolutions which could be beneficial in diagnosing new problems that arise. It’s a nice quick way to refresh past services before addressing another issue. This app also gives me customer addresses and contact information at my fingertips so I know where I am headed and can give the customer a call if needed.

I would like to incorporate mileage and service income and expenses into this app as well.

Some annoyances I found:

  1. If you make use of several powerApps, once you open one up you cannot close and go back to the front page to open another one without closing out of  the PowerApps app altogether and going back in.
  2. PowerApps is a little slow to update the app on your phone to reflect the changes made.

PowerApps Plans and Pricing

PowerApps Community Plan:

FREE! Where you can learn and build your skills on PowerApps; designed for single use without sharing ability; includes functionalities such as Premium connectors, use of the Common Data Service, and custom connections; a full featured environment for development

PowerApps for Office 365 and Dynamics 365:

PowerApps is included in select Office 365 and Dynamic 365 plans;

PowerApps Plan 1 (Business Users):

includes all features included with Office 365 and Dynamic plan plus more for $7 PER USER a month; Free trial offered

PowerApps Plan 2 (For App makers and Admins):

includes all features of Plan 1 and more for $40 PER USER a month; also offers a 30 day free trial

Some key features, use of connectors, and capacity limits for file and data storage using the Common Data Service, and the amount of flow runs per month per user are dependent on subscription type.

Test these apps out!!

Try this app out now by going to the App Store or Google Play Store and download PowerApps by Microsoft. Once installed, log in using your SMCC credentials. You may need to click the link that says show all? You should then see the apps I have created and be able to open and add info.

Create a New Ticket on the Service Desk App and Fill in your name in the ‘Created by’ Field. I will refresh the web page and show the change live.

Close out of PowerApps altogether, and open up Service Tracker. Go to the Contacts and add just your name. Click the check mark on the top bar when done.

 

Created by Christine Dunnells  2018

 

Cites Visited:

AFTOwen. “Use a Sample App (Quickstart) – PowerApps.” Use a Sample App (Quickstart) – PowerApps | Microsoft Docs, docs.microsoft.com/en-us/powerapps/maker/canvas-apps/open-and-run-a-sample-app.

“Choose the Right Plans for Your Team.” Pricing – PowerApps, powerapps.microsoft.com/en-us/pricing/.

karthik-1. “Create a Rule – PowerApps.” Create a Rule – PowerApps | Microsoft Docs, docs.microsoft.com/en-us/powerapps/maker/canvas-apps/working-with-rules.

gregli-msft. “If and Switch Functions – PowerApps.” If and Switch Functions – PowerApps | Microsoft Docs, docs.microsoft.com/en-us/powerapps/maker/canvas-apps/functions/function-if.

Linhtranms. “Working with Environments – PowerApps.” Working with Environments – PowerApps | Microsoft Docs, docs.microsoft.com/en-us/powerapps/maker/canvas-apps/working-with-environments.

AFTOwen. “Add a Screen and Navigate between Screens – PowerApps.” PowerApps | Microsoft Docs, docs.microsoft.com/en-us/powerapps/maker/canvas-apps/add-screen-context-variables.

AFTOwen. “What Are Canvas Apps? – PowerApps.” What Are Canvas Apps? – PowerApps | Microsoft Docs, docs.microsoft.com/en-us/powerapps/maker/canvas-apps/getting-started.

Mattp123. “Overview of Building a Model-Driven App with PowerApps – PowerApps.” With PowerApps – PowerApps | Microsoft Docs, docs.microsoft.com/en-us/powerapps/maker/model-driven-apps/model-driven-app-overview.

Clwesene. “What Is Common Data Service for Apps? – PowerApps.” PowerApps | Microsoft Docs, docs.microsoft.com/en-us/powerapps/maker/common-data-service/data-platform-intro.

RobertBruckner. “Common Data Model Overview – PowerApps.” PowerApps | Microsoft Docs, docs.microsoft.com/en-us/powerapps/common-data-model/overview.