Sunday, January 14, 2018

How to: Use cascading drop-down lists in PowerApps

Hi all,

Using cascading dropdown, users can easily fill the forms by selecting drop-down values dependent on values from another dropdown list.

For e.g.   you can select a country as dropdown and depend on the country value you will filter all states which are selected from the specific country. Using this approach, the process becomes quicker and easier for the end user.

You can perform the same in PowerApps very easily.

Here are the steps:
  1. Data Sources:

    You need to use 2 lists to achieve this functionality and use a lookup field.
    1st is our main Issue List called IssueLog and another list is Zones lists  as shown:

    Issue Log Data Structure

    Issue Log Data 

    Zone Data Structure 

    Zone Data 

    2. To add a cascading drop down functionality, we need to add a connection to Zone list.

    and connect to another list

    and connect to Zone list.

    3. Add Custom Card.

    Click on EditForm, and you can see Issue Log Data.
    In the Fields panel, click on the ellipsis (…) and click on the “Add a custom card” as shown:


    4. Adding Dropdown lists

    In this custom data card, add two drop-down lists within this data card.

    >> Rename to ddlZones
    >> Rename to ddlSubcodes

    5. For the Zone drop-down list, set the Item properties to Distinct(Zones, Title)

    6. For the SubZone drop-down list, set the Item properties to Filter(Zones, Title= ddlZones.Selected.Value).SubCode 

    7. Test the Cascading Dropdown lists.

    I hope it this post helped you.

Sunday, January 7, 2018

How to: Use variables in PowerApps.

Hi All, 
I am testing how could I perform the sort functionality    in MY CUSTOM APP which is readily available on SharePoint Online. 

PowerApps team already defines some variables specially for SharePoint integration. PowerApps has an amazing documentation about understanding variables.

Let’s dissect how the sorting functions for SharePoint App.

Open PowerApps Studio, click on New >> SharePoint > choose Phone Layout.

Choose a Phone layout as shown:

If you click on the sort icon, there is OnSelect property with formula UpdateContext({SortDescending1: !SortDescending1}) which already defines.

Navigate to File >> Variables. You can see a Boolean variable called SortDescending1

where this variable is used.

You can simulate in your own custom app.

Step1: Create an App

Create a new PowerApps studio by navigating to New >> choose Blank app and choose Phone Layout.

You create a sample excel sheet as our data source.  In the New connection >> Add static data to your app and locate your Excel sheet. 

Step2: Choose a data source.

You create a sample excel sheet as our data source.  In the New connection >> Add static data to your app and locate your Excel sheet


Step3: From Insert tab, click on Gallery Control. Also add Sort Icon from the Icons control.

Step4: Click on Sort Icon

Use the formula in the formula bar as shown
UpdateContext({MySortOrder: !MySortOrder})

Step5: New Variable

Now, you can view a new variable in the Variable section of PowerApps Studio.

Step6: Gallery’s Items Property

You need to set this formula in the Item’s property as follows:
SortByColumns(Search(SpecialistAllocation,txtSearch.Text,"Title"),"Title", If(MySortOrder, SortOrder.Descending, SortOrder.Ascending))

Step7: Test

You can click on Preview and test the Sort functionality

I hope this post helped you!

Monday, January 1, 2018

How to: Create an Expense claim end-to-end solution using PowerApps on SharePoint Online.

Hi All,

I am working on PowerApps for couple of days and specifically for SharePoint Online. I have worked with other 3rd party Forms and Workflows for more than a year. But learning new tools and techniques are always beneficial for customers who do not want to shell out a fortune for 3rd party apps or have lower budget for designing business applications.

So why you care for PowerApps?

 In short, it turns your business solutions with ease, and business SOFTWARE need NOT to be hard. We can work anywhere, anytime and on any device.  Furthermore, there is no business app that is “complete”. Thus, customer have only two options either BUY or BUILD.

But what about we EXTEND the stuff that we ALREADY use? A lot of custom solutions by partners are around Microsoft applications such as Excel, Visual Basic, Access, SharePoint, InfoPath to fill the gap. But it poses a big challenge and they are

·         Not Cloud-first.
·         Not addressable for multiple devices i.e. cross-platform
·         Not CONNECTED to our other data sources.
·         Not Centrally manageable.
·         At end, we need to engage a developer to write custom code.

PowerApps addresses these challenges. Below are the benefits

1.       Easy Authoring

Provides a truly WYSIWYG designer with complete control over user experience. 

Creates app logic with familiar Excel-like expressions.

Mash up data from multiple sources right at the app level.


Common data service (CDS)
provides a rich platform and standard model that gets creators instantly productive.

CDC connects to Dynamics 365, Office 365, Flow, Power BI natively and many connectors/gateways. We have option development extensibility as well.

            Has around 160+ connected data sources.

           Add custom connectors and on-premises sources. 

3.       Cross Platform

We can publish apps instantly iOS, Android,Windows, and the web.

Sharing apps is like sharing documents.

Manage across environments.


4.       Enterprise Ready

Centrally view app telemetry and manage apps

Able to set DLP policy on data and connectors.

Compliance with 13+ standards including HIPAA, EU Model Clauses and SOC

5.       Pro Developers and integration    

Build apps that go beyond that you get in the box.

Build reusable custom app components and connectors.

Leverage full power of azure capabilities. 


Eventually, we get highly scalable platform. If the problem gets more complex, solution gets more complex, we don’t need to reach to developer.


 This blog post is about a typical custom app for Expense Claim and data source is SharePoint Online. We could have different flavors such as vacation requests, travel requests or sales order-line items etc.

 We will see the topics such as Gallery, Forms, DataTable, conditional formatting, and REPEATING DATA ENTRIES
Developing PowerApps for SharePoint
We can customize PowerApps leveraging two options: 

a) SharePoint list embedded forms

Recently (Q4 2017) PowerApps team has added customization forms option in the SharePoint List as follow:


When you create an item, you can customize form

You can also navigate to List Settings >> Form Settings

>> It has to be noted that at this point of time (31 Dec 2017), there is NO mobile PowerApps available via SharePoint customized form.

>> You cannot import / export SharePoint customized forms from one environment to another.  

So, you have to create a separate custom app for mobile phone via Create an app option for the mobile phone.

Embedded forms are special kind of PowerApps and its directly tied to the SharePoint list.  PowerApps Controls have simple types such as buttons, drop down, date picker etc.  and also have complex types such as choice, people picker, lookups etc.  

b) Create an app

In this option, you can create a custom PowerApps app and can be used for mobile devices. In this example, we will create a PowerApps desktop client to build this Expense claim form.

During developing the PowerApps desktop client, I found that its much slower its browsers based counterpart ( )


We will have two custom lists.

i) One list will record all the Expense items such as Purpose, Amount, Start and End date, Approver etc.

ii) Second list will have Expense Details with Expense title as a lookup field

Develop Expense Claim App via PowerApps Desktop client.

·         Create a New >> Tablet Layout via PowerApps Desktop client

·         On the PowerApps designing canvas, click on the connect to data.  New Data panel will show up. Click on “New connection” and choose your data source. In our example, its SharePoint Online. Select your Microsoft/Office 365 account.


·         You need to specific SharePoint URL:


·         You can search and select for Expense lists and click on Connect

·         Now, both the lists are connected to our data source. You can have as many lists in the solution.

·         Blank vertical from Gallery 

Gallery control  is PowerApps control that helps in editing the template, shows multiple records of data source and each record can contain multiple controls.  

·         Name and Save the app

·         Create a rectangle (Icons) from the insert ribbon.

·         Drag and drop label on the rectangle and color the label white.  

·         Connect the data, select the Expense list 

As layout is Blank, we can choose “Title, subtitle, and body


·         Gallery throws a bunch of defaults. We can easily choose correct values from the Expense list which we can change easily:

·         Click on Gallery and you can view the Pencil icon. Under layout, you can alter which field you like to display:


·         We make title as first entry in our form:

·         In the Body section we want to display “ApprovalStatus” which is part of Expense list. But, in the PowerApps, you can’t see the Approval Status. The reason is that Approval Status is a choice field and a complex type in the context of PowerApps. 

So, we have to manually type formula use Value as shown below

·         We can also append $ value, the same as we did in excel.

·         We also apply border and color for our gallery.

·         We can perform a search by applying filter for our Expense list and bind to our gallery control. To do so, we create text box, add search icon and in the formula, add this formula  to our gallery

  Note:  Please always give meaningful and descriptive name of the PowerApps controls.

·         Let’s Preview our search by clicking on “Play” icon

and our search results are coming through nicely.



·         DataTable Control

Shows data set information in a tabular view. You customize column width, header text, color. Currently it has read only view.

Click on the Data table from Insert tab.  The Data table will display Data panel as well.

·         From the Data panel, select the Expense Details list

·         Select the fields that you want to display in the DataTable.


All the selected columns are now available in our DataTable

However, we are getting all the entries from Expense Details in this DataTable.
Now, we need to filter only for specific entries from the Expense list only such as Australia Visit, Personal Overseas Trip etc.

To achieve this, we need to follow steps
·         Click on “>” and set the Visible property to ThisItem.IsSelected

·         Click on the “ExpenseDetailsDataTable1” and apply following filter Filter(ExpenseDetails, ExpenseDetails.Value = ExpenseGallery1.Selected.Title)

Now, we are able to get each expense item expense individually from the Expense Details list.
We have completed master details scenarios.

·         We will add a pie chart for each expense item. Copy and Paste rectangle and change the background

·         Pie Chart shows some sample data. We can attach our Expense information to this pie chart. Click on the “ExpensePieChart” and  in the formula bar set this value ShowColumns(ExpenseDetails, "Category", "Amount")

But this pie chart shows all the expense for each expense item. We need to filter for each expense item for pie chart.

·         For “ExpenseDetailsDataTable” copy the formula Filter(ExpenseDetails, ExpenseDetails.Value = ExpenseGallery1.Selected.Title) and place to our pie chart ShowColumns(Filter(ExpenseDetails, ExpenseDetails.Value = ExpenseGallery1.Selected.Title), "Category", "Amount")

Let’s Preview this

It’s pretty fast and snappy.

·         We can add some labels near pie chart.


·         View, Edit, Create new record for a Data Source. The type is set using FormMode.   Item property shows the specific record of the data source. Magic happens when you set Form.Item = Gallery.Selected

·         We rename our first screen to HomeScreen and add a PLUS icon

·         Next, we add a new screen by clicking on New Screen and choose blank screen

name it to NewScreen

·         From Insert tab go to Forms >> Edit Form option and from the Data panel select the Expense list.

·         Check ONLY necessary columns from the Expense list. 

·         Rearrange the columns by choosing 4 layouts by checking Snap to columns


·         Copy the Rectangle that we create in HomeScreen and paste to NewScreen and change label to New Expense.

·         Next, we add a button “Add New Expense” button, and form should submit in the Formula bar: SubmitForm(ExpenseForm)  


·         Navigate to the HomeScreen, click on the + icon and in the formula bar add these functions:

·         In new form, we should be adding multiple entries for user to fill in. This Expense information will be captured in the Expense Details list.

We add a DataTable to achieve that. We already created a DataTable in the HomeScreen. So, we can simply copy and paste that DataTable to our ExpenseForm in the New Screen.


  But this the old formula which we copied from HomeScreen DataTable. We need to fill other formula as shown:

·         Add more Edit Form below our DataTable and bind to Expense Details list

Bind only necessary columns that needs to be displayed. 

·         Copy and Paste “Add New Details” below Edit Form. Name the buttons “Add New” and “Done

·         For the Add New button, we will add following formulas

Refresh function gets the latest copy of the data source.  

·         For the Add Expense Details, we will add following formulas

·         For the Done button, we will simply navigate to the HomeScreen

·         Set the Item property

We need to set the Item property for the Expense Form.

·         Verify if user has submitted the New Screen

·         Verify if the form is Edit mode or View mode

·         Test the App

Add new expense by clicking “+” icon and append multiple entries as shown:

We can view the entry at Home Screen.


·         We can use Color property to control the text color control and use Fill property for fill color.

We can also set one or more conditions based on state of the app or control or variable.  

I hope this blog post helped. 


2.       Formulas Reference  

3.       Tables and Records

4.       Gallery Control

5.       DataTable Control

6.       Refresh Function


How to: Use cascading drop-down lists in PowerApps

Hi all, Using cascading dropdown, users can easily fill the forms by selecting drop-down values dependent on values from another dro...