PowerApps In SharePoint Online

Here, I will be discussing the features provided by PowerApps and how we can utilize them and customize based on our requirement. 
 
Intoduction

PowerApps is a software to build custom business applications without the knowledge of app development or custom coding. It is included in most Office 365 subscription plans and is yet another feature of Office 365, just like OneDrive, Planner, and others.

PowerApps is independent of SharePoint, however, is tightly integrated with it, being part of the Office 365 suite. While PowerApps is designed to work with a number of different sources, like external databases, you can also easily connect PowerApps to any SharePoint list, library or OneDrive, which allows you to store and retrieve information without a need to know databases or SQL.
 
As we can see that when we create a list, we get options to customize in PowerApps as:
SharePoint 

When we click on "Create an app", it will create new PowerApps, which will run independently outside of SharePoint context. But it will be using SharePoint list/library internally which was configured at the time of app creation.

But when we click on "Customize form", it will customize the default list view form of SharePoint like view/edit/new form. So any changes on one form will be visible to all three forms.

So you can click on "Customize forms" if you want to change look and feel of the form but if you want to make some logic/condition which will trigger some event, you need to create an app in PowerApps.

Steps to create PowerApps
  1. Click on create an app, provide app name and click Ok, it will navigate you to PowerApps studio. I have used Demo as my app name.

  2. As it opens PowerApps studio, we are presented with 3 options on the left side as by default and our dashboard will display the record from the list we configured PowerApps.

    SharePoint

    However, we can add multiple screens based on our condition.
For demo purpose, I will be adding new screen which will be redirected based on columns value. 

Scenario

I have kept the Status column in my list which contains Approved, Pending and Complete as their value. Now, I want that if the request is in a complete stage, it should be redirected to view page only else it should be redirected to Edit page.

Step 1

Click on New Screen from the top left screen and rename as ViewOnly.
SharePoint 

Step 2

Click on Connect to data, give the URL of your SharePoint site, and select the list. 

Step 3

Select ViewOnly from the left panel and from top, select Insert > Forms > Display.
 
SharePoint

As you can see we have by default all columns coming from the list, but we can uncheck columns under Fields in right panel if we do not want those fields to be displayed on our page.

Step 4

Select FormViewer1 under ViewOnly and from the top drop-down, select "Item" and type "BrowseGallery1.Selected" in the textbox next to fx. It will bring records from the list and bind it with controls on the page.

Step 5

Select BrowseScreen1 and select arrow icon on the dashboard and type in the textbox next to fx button as below.
  1. Select(Parent);  
  2. If(ComplainStatus.Value = "Completed", Navigate(ViewOnly, ScreenTransition.Cover), Navigate(BrowseScreen1, ScreenTransition.Cover), Navigate(BrowseScreen1, ScreenTransition.Cover))  
SharePoint

Click Save and publish. It will be saved to the list and once we click on the view arrow mark on the dashboard, it will redirect us to ViewOnly page if the status is completed; else, it will be navigated on default edit page based on a Status column value.

That's it. Please provide your feedback.