PowerApps: Admin Center, Environments, and Data Policies –First Look

A few new features have been added (or are in the process of being added) to PowerApps for us to review. These pieces are capabilities administrators and governance folks will be happy to see once flushed out.

Admin Center

The Admin Center is available in the settings dropdown and allows you to manage both Environments and Data Policies.


Once in the Admin Center, the view defaults to Environments.


I created a Demo Area environment just to have another one listed for now. There’s certainly seems to be room for more controls here, so we’ll see what else gets added eventually. Smile 

Note: Navigation is a bit odd right now. It appears the only way back to the PowerApps page from the Admin Center is by using the waffle control – which opens a new tab. Being able to click on ‘PowerApps’ in the top might be useful and more consistent with how SharePoint in O365 works.

Now that we have the Admin Center to launch from, let’s take a look at what’s in it.


Environments available to you are visible in the upper right in a dropdown. As an Admin I can see the default environment and a new one I created. The dropdown control will switch you between environments while working in the PowerApps interface. If you’re browsing around and it seems like apps or connections are missing you’ll need to remember which environment they belong to.


Note: Switching environments brings you back to the Home page for that environment. I haven’t decided if I’m a fan of that or not… it might be nice to be able to stay on the Connections or Apps page and switch between environments within those pages quickly.

Environments are managed in the Admin Center (see screenshots above or below).

Note: Creating a new environment differed a little from the initial PowerApps post in that I didn’t see any controls for a Database.


Once you’ve created a new environment it shows up in the list:


Selecting an environment drops you into the environment details page which defaults to the Security groups. This is another page that looks ripe for enhancements. We’ll see what else eventually gets built here. Will there be a need to add additional roles? What’s the reason for the additional left-ish nav control that currently only lists ‘Environment Roles’?


Digging a level deeper we can add users to a group. As the person who created the environment I’m automatically added to the Admin group. ‘Details’ here shows the name and description of the security group – which are currently not editable.


‘Details’ for the environment shows just that. But also nothing that appears to be editable at present.


I’d hope to eventually see a way to edit the name of an environment, if nothing else. Also missing is a way to *delete* environments. I expect the default to be locked up, but it seems logical to be able to remove the others. Maybe name changes and deletes will be available via PowerShell or via some other method. 

Data Policies

Also in the Admin Center is management of Data Policies. Data Policies allow administrators to control which data and connectors can coexist in which environments. This functionality still needs some clarification. Hopefully it’ll be cleared up as documentation is released. 


When adding or editing a policy, there are two configuration pages here: Choosing the environment – ‘Applies to’ and choosing how data groups are used within those environments – ‘Data Groups’.

Something that didn’t immediately jump out to me is the Policy Name editing, available at the top of the page.


Note: It might be nice to add a ‘Description’ or ‘Notes’ field here as well. Otherwise folks are going to need to use longer, more descriptive policy names. Time will tell.

Choosing environment seems pretty straightforward. You’ll be able to set specific policies for each environment and/or broader rules to multiple environments at the same time. 


Note: One thing I saw that was a bit wonky was after selecting ‘Apply to ALL environments’ and saving the setting actually changed to ‘Apply to Only selected environments’ with both environments checked. So, functionally was ultimately the same – but a bit confusing from a user experience perspective.

The Data groups page is a bit more confusing. (the ‘Learn more’ link doesn’t currently work) If I interpret this correctly you are defining which connections or services are allowed by the apps in the environment.


Note: Hopefully verbiage can be made consistent if that is the case… it might be confusing to use both ‘connections’ and ‘services’ when talking about the same thing – though it does seem pretty intuitive. I’m just getting nitpicky here…  

Best Practices

At this point, TBD (To Be Determined). It’s too early to tell, but these are the kinds of controls that IT Pros and/or governance folks are pretty happy to see.

  • Use descriptive names for data policies
  • Should you create Dev, Test, Stage, Prod environments?
  • Should environments be created per team, group, department, etc.…

As it has with the unofficial SharePoint motto “It Depends”, I’m sure there will be conversations about these going forward. Smile 

Notes and Feedback

First off, PowerApps is still in Preview and features are still in the process of being rolled out and refined – so nothing to gripe about. Just some findings. I happen to think PowerApps is going to be a pretty spectacular product… just to be clear. Smile 

  • There doesn’t appear to be any visibility into which environment you’re in when working in the PowerApps Studios – either Windows version or web version.
  • When in a non-default environment and attempting to create a new app, the new app will be created in the default environment. Again, both Windows and web version of Studio.
  • I was able to copy a sample app into a new environment. After opening it in Studio I’ve had inconsistent experience with the app staying in the new environment or being automatically moved to the default environment.
  • I still need to get a better understanding of the Data Policy functionality, but after creating a policy with SharePoint in Business data and Twitter in No Business data I was still able to create an app using both connections in it. I’m not sure where the policy is blocking at this point (more research needed).


  • Original New Feature blog post:
  • [TBD] No reference pages in the Learn section just yet. Hopefully these will be available soon. There are some ‘Learn more’ links within the interface that currently don’t go anywhere or go to general Microsoft.com pages.

PowerApps: Environments


New from Microsoft this week: PowerApps Environments.

The quick and short story is that environments will be another taxonomy-element-like container.

  • In SharePoint we have:  Site Collections –> Webs –> List and Libraries.
  • In PowerApps we’ll have:  Environments –> Apps, Flows, and Common Data Service databases.

As with site collections in SharePoint, Environments will be the containers with ‘high fences’ between them. All part of the same tenant (or ‘server farm’ in legacy SharePoint-speak). Environments will give us a convenient way to group and isolate objects – for management, permissions, and Dev/Test/Prod scenarios.

Also in the blog post comments: There is an announcement coming soon regarding GA (General availability) timeline – getting past ‘preview’ stage). Smile Woo hoo!


Environments have a few roles defined.

  • Environment Admins will operate much like tenant or server admins in that they can create environments and manage the settings and policies for them.
  • Environment Makers are somewhat analogous to Site Collection Administrators or Site Designers. They’ll be able to create new apps, connections, etc. and assign permissions to users of those apps.

PowerApps Admin Center

A new feature to PowerApps for managing environments and more. More to come on the details of this one, but I expect it’ll be a blend of what we’ve seen with other O365 Admin controls and/or similar to what we’ve seen with ‘site settings’ in SharePoint in the past. 

What’s next?



No new links available yet in the Learn section, but I expect them to be available soon…

JSLink – Filter on a Lookup Column with CSR

Lookup columns are both useful and a little odd in how they’re implemented in SharePoint list views. I wrote a bit about this in a previous post and showed one example on how to deal with Lookup column content. This post shows an alternative – and possibly more useful approach.

We’ll change the default link in the lookup field to a link that filters the current list by the lookup field value.  Yes, users can also use the filter built into the column header – this is just another way to implement it. I also think this is a bit more intuitive for users.

At the end of the day, this is just another example of custom link ‘building’ with CSR.
Sample File: CSR_LookupSelfFilter.js

Key lines:

With ‘Theme’ being the internal name of the Lookup field that we’re filtering on. Fairly straightforward.

The full list:

After clicking ‘Technics’:

Now we also need to add a ‘reset’ link to the web part so that users can get back to the default view. Otherwise, they could get stuck in a dead end after selecting a filter value. There are all kinds of ways to implement this, for simplicity’s sake we just updated the title text and link. 



Obviously you don’t *actually* have to change the text of the web part header – just the URL. Smile But again, it seems like better UX.

Hope this is useful.

JS Link and CSR Page

SharePoint Fest–Seattle 2016

The SPFest folks once again put on a wonderful show last week in Seattle. Big thanks to everyone involved!

Just a quick follow-up with session links to slide decks:

DEV103 – Client-Side Rendering for SharePoint: From Intro to Practical Application

  • SPFest Link
  • You can find lots of JS Link and CSR links on this page.
  • My Link
  • New post with updated script for Lookup link to filtered views (Updated: Link)

PWR202 – Designing and Building User-Friendly vs. SharePoint-User-Friendly Solutions
(previously listed as ‘DEV202’)

  • SPFest Link
  • Did you attend this session? Do you have an idea for a better title for the session?
  • My Link – Added a slide with screenshot on hiding lists with SharePoint Designer
  • Keep an eye out for new posts on PowerApps extensions to the scenario (I will add links)

I love hearing feedback so feel free to email or use the comment section. Thanks!

See you in Chicago!

PowerApps and SharePoint – Filtering the List View

*Disclaimer* – This post based on Preview version of PowerApps. I’ll make every effort to update with any changes and verify when PowerApps is released. 

One of the powerful features in PowerApps for SharePoint users is the ability to create an app from a SharePoint list. When using this feature, PowerApps creates three screens for us to start with: A Browse screen, a View screen, and a New/Edit Item screen.  

The Browse screen contains a Gallery control – which displays the contents of a list. By default it shows ALL items in a list. This might be fine for some business needs – especially with the inclusion of the search functionality also built into the default screen. Some use cases however may look for a filtered view of a list. 

The Short Version

The browse screen is set up to show all items, as well as take input from the search box. I’m going to change the list to display all items where the Request Type is a certain value.

  1. Select the Gallery on the browse page 
  2. Change the Items formula from search-based to filter-based:
    SortByColumns(Search(‘Service Requests‘, TextSearchBox1_1.Text, “Comments”, “Notes”, “Title”, “Title”), “Comments”, If(SortDescending1, Descending, Ascending))
    SortByColumns(Filter(‘Service Requests’, ReqType.Value=”PEBKaC”), “Comments”, If(SortDescending1, Descending, Ascending))
  3. Items displayed on the screen should now be filtered by the Request Type.


  • Similar to other methods in SharePoint (like CSR with JSLink) the field names seem to be using the internal name of the field. Above, when accessing the Request Type we needed to use ‘ReqType’.


Getting Started with PowerApps (Preview) for SharePoint Users

Notes and Setting Context

PowerApps is a new product/service offering from Microsoft for building business solutions that connect data from a variety of services and locations – including SharePoint Online. It is targeted at ‘power users’ – which is a somewhat broad and undefined group of users. It’s safe to say that not all SharePoint users will be able to build solutions in PowerApps intuitively as it does require a different skill set – but it is not coding.

  • PowerApps are available through an Office 365 account for users within your organization. Apps are not public-facing. You’re not creating a stand-alone app that anyone can download and run. It will only work for your tenant. The app owner determines who has access to the app: it could be a list of individuals or the whole organization.
  • PowerApps is not a replacement for InfoPath… yet. It certainly has potential. Yes, it has forms – but it’s not going to be on par with what InfoPath had to offer in terms of complexity for now.
  • PowerApps was not developed exclusively for SharePoint – so don’t expect a SharePoint-only kind of focus from the product. It integrates with a LOT more platforms and services. SharePoint is one of them and it already does do some cool stuff for the SharePoint platform.
  • PowerApps is targeted at the mobile platform – specifically phone and tablet devices, but it will be surfaced in the browser as well. The mobile client lists out apps that the user has access to. Apps can also be pinned to the desktop of your device rather than having to open the PowerApps app first.
  • Within SharePoint, PowerApps will soon have a presence within the new ‘modern’ SharePoint lists and libraries – more to come on that soon.
  • PowerApps is built on Azure. So it’s cloud-based. PowerApps Studio is a local tool, but connects to PowerApps Portal – which is a cloud service and relies on the cloud for Connections.
  • Connections’ and ‘Gateways’ are how you get access to services and data. Which ones are available will be determined by licensing… which is still TBD. While currently in Preview mode, we have access to all available connectors.
  • PowerApps is part of a broader effort targeting power users – so check out the other tools and capabilities as well.
    Start here: https://businessplatform.microsoft.com
    And here: https://powerusers.microsoft.com/
  • If you are or were an Excel or Access ‘guru’ building complex formulas, spreadsheets, and/or Access solutions, you’ll probably be pretty confortable digging into PowerApps (and Flow).
  • The documentation is fantastic for this point in a new product release. Seriously I can’t give enough kudos to the team putting this stuff together.

Where To Start

  1. Check out the tutorial found here:
  2. Go to https://powerapps.microsoft.com and log in with an account you use with Office 365.

Where To Go Next

Honestly, just dig in. It’s pretty easy. There definitely is a learning curve the deeper you get. But you’ll see a bunch of cool capabilities just by clicking around. You can have a mobile powerapp running on a SharePoint Online list going in minutes.

I’m putting my links and resources here: http://www.idubbs.com/blog/powerapps-and-flows/
So, without repeating all those links in this post, just check it out. Smile

PowerApps Preview – SharePoint Field Work-Arounds

*Disclaimer* – This post based on Preview version of PowerApps. I’ll make every effort to update with any changes and verify when PowerApps is released.

The following is a discrepancy happening in the Preview mode that will likely be resolved in the release version. Until then, something to mention so others don’t get frustrated when working with PowerApps during the Preview stage.

When looking at the columns in my SharePoint list, I have the following:

Figure 1

Now, I create a PowerApp based on the same list. BrowseScreen gives me four controls/fields on my card by default.

Figure 2

When using the dropdown values for the controls, I get the following:

Figure 3

Which is *not* the same as my list of fields. It looks like I’m missing:

  • ReqType (choice)
  • AssignedTo (Person)
  • CreatedBy (Person)
  • ModifiedBy (Person)
  • Status (choice)
  • Priority (choice)
  • Dept (Lookup)
  • Dept:ID (Lookup – additional field)

The missing fields are Choice, People, and Lookup fields. All of these fields are a bit more complicated behind the scenes. Thankfully we can still get to the data but we need to be a little more deliberate about it.

Note: ID comes as a bonus and IS available for selection. While ID is not shown in SharePoint’s List Settings we know we can get access to it in views. It’s a column that’s just behind the scenes sometimes in SharePoint.

As shown in Figure 2 above, PowerApps provides an easy way to select a control on the card and select which field it should represent. You can also use the Text property directly – either in the top property control or on the Advanced panel (select the View tab, then click on ‘Advanced’).

Figure 4

In the formula box for the property, delete the field name (‘Comments’). With the cursor after the period, the dropdown suggestion should now show all available fields – including our missing fields.


  • SharePoint’s CreatedBy is shown as ‘Author’.
  • SharePoint’s ModifiedBy is shown as ‘Editor’.


‘ThisItem’ is not needed in this example. You can type the field name directly. However, if you want to see a list of the fields available, you can use ‘ThisItem.’ in the formula.

Select ‘Editor’. Your formula now shows ‘ThisItem.Editor’, but the field is showing an error.

Figure 5 – ‘Attention needed’ in the Advanced panel

Figure 6 – ‘Attention needed’ in the form designer

As the message indicates, we need a text value to display, rather than what is essentially a person object. After ‘ThisItem.Editor’ add another period to see additional options – and select DisplayName. This provides what we’re likely looking for.

Figure 7

Figure 8

Choice fields work with:

Lookup fields work with:

If additional fields are selected for display (a field setting in SharePoint), they may show up as:
Ex. ThisItem.Dept:ID.Value

Currently seeing what should be Dept:ID showing up as:
Dept_x003a_ID – I’m guessing this will be updated before release as well.

People fields have a list of values available:

  • Department
  • DisplayName
  • Email
  • JobTitle
  • Picture

All in all, this issue doesn’t stop us from building what we’re trying to build, but it is an inconsistency in the UX and can be confusing or frustrating to folks during the learning curve.

Please – Let me know if you see something different so we can keep this info current.


MNSPUG July 2016 – PowerApps and Flow

Raymond and I did a presentation at the July 13th Minnesota SharePoint User Group a few weeks ago: Microsoft PowerApps and Flow: Overview and Integration Points with SharePoint. We had a nice crowd of 70-80 folks between the people in the room and folks that participated online.

Links to the presentation slides and recording (TBD) can be found on the MNSPUG site.

NOTE: In our slides we mention the connector for Office 365 Video. Right now there is an issue with that connector working with the current version of PowerApps. This is a known issue and Microsoft is working to resolve it.

Microsoft is generating a LOT of interest in these two new technologies – both still in Preview (now, and when the presentation was given). With the Ignite conference coming up this Fall, I’d be surprised if there isn’t more to see by conference time – between polishing the release version, adding new features, and potentially releasing one or both of the products. Stay tuned.

*Disclaimer* – This post based on Preview version of PowerApps. I’ll make every effort to update with any changes and verify when PowerApps is released.

PowerApps – Conditional Formatting

*Disclaimer* – This post based on Preview version of PowerApps. I’ll make every effort to update with any changes and verify when PowerApps is released. 

So far, I’m LOVING the potential that PowerApps brings to the table for power users. Coming from the SharePoint side of the world, lots of folks are going to be interested in how conditional formatting works within PowerApps. Here is one example – I’m sure there will be more.

The formatting is implemented using a formula on the Color property of the control.
If the value being checked is ‘High’, then make the Color red. If not, then make the color Black.

I have a Display form.
The ‘Priority’ field that I’m checking the value of is on card: DataCard6

With this information, I can change any of the Color properties for other controls to:
If(DataCard6.Default.Value=”High”, Red, Black)

Note: for the card of the Priority field, I can alternatively use the following:
If(Parent.Default.Value=”High”, Red, Black)

On the Browse screen, we access the data a little differently, so it looks like this:
If(Priority.Value=”High”, Red, Black)

Regarding multiple values, like typical KPI (key performance indicator) examples – Red, Yellow, Green for example – you need to nest the formula logic like this:
If(ReqType.Value=”Type1″, Red, If(ReqType.Value=”Type2″, Yellow, If(ReqType.Value=”Type3″, Green, Black)))

(Yellow, by the way, looks terrible on a white background. 🙂 )

Think of it as an ElseIf kind of construct by filling in the ElseResult (as mentioned in the IF reference below).

It’s a bit of a learning curve for PowerApps with all the new terms, different ways of referencing data, etc. but Microsoft has done a great job with initial documentation, examples, etc. Some of the links below will get you started poking around.

Getting started with formulas (PowerApps Reference)
If function in PowerApps (PowerApps Reference)
Understand data forms (PowerApps Reference)

7/22/16 – Updated to include example for multiple values in the If logic.

Blog finally moved…

For anyone that’s attended my sessions (SharePoint Saturday, SPFest, etc…) for the last few months I’ve given you a heads up that my blog has been in flux for a little while now as it needed to be moved. Well, I think it’s finally set now.

IF you see any ‘wonkiness’ – please let me know. All the posts, images, links, links to posts, etc. should be the same. If you see otherwise or can’t get to something you could before – please let me know. Hopefully we’re in a place where stability should be greatly improved.