Category Archives: PowerApps

SharePoint [Me] Filter in PowerApps

SharePoint has a couple of built-in filters for column values: [Today] and [Me]. These allow users to filter views by dynamic data. For example you can create a view called AssignedToMe and set a filter like so:

image

Using this approach site admins don’t need to create views specific to each user, but can use the [Me] filter on a single view that applies to each individual user. As a user visits the view, they see only the records that are specific to them.

How does one do this in PowerApps when filtering data? Good question. This came up during our Minnesota SharePoint User Group (MNSPUG) meeting today and good old Brian Caauwe knew the answer: rather than using [Me] we use the User function in PowerApps.

On a gallery or data table object, our Items property might have a formula something like this:

Items = Filter(‘IT Request’, AssignedTo.DisplayName=User().FullName)

Note: When bringing fields over from SharePoint, PowerApps translates the CreatedBy and ModifiedBy fields to something a little different. That might be a little confusing when getting started.

  • CreatedBy –> Author
  • ModifiedBy –> Editor

Good questions from the attendees today and good catch by Brian with the User() answer. Smile 

References

PowerApps: Rules for Conditional Formatting

Well done PowerApps team!! Just days before Ignite they rolled out Rules for Conditional Formatting in PowerApps. You could technically get the same functionality with building out formulas, but the new (experimental) rules bypass this and are MUCH more end-user friendly.

image 

Check out the blog post.

AND take a look at the supporting documentation that’s already released:
Create a rule in PowerApps

image

For those of us coming from a SharePoint background this is creeping closer to functionality that was available back in the days of SharePoint Designer. As soon as a true web part is available to embed a PowerApp in a SharePoint page (hopefully the new “modern” pages) users will be able to replace SharePoint views with robust apps that include conditional formatting and other goodies not currently available in SharePoint alone. 

Exciting stuff and more to come!!

SharePoint Fest – Chicago

Heading to SPFest Chicago in December? I’ll be presenting a few sessions on PowerApps.

PWR104 – PowerApps for SharePoint Users
PWR202 – From SharePoint to PowerApps: Evolution of the ‘Intake Form’ Solution
(Check out the sessions here)

There’s going to be a LOT of great speakers, sponsors, and content. Fresh out of Ignite there will be a lot to talk about.

Interested in attending? Here’s a discount code (click for registration):
SPFestChi17

Hope to see you there!!

Microsoft Ignite 2017 !!

UPDATE: They’ve managed to fix our session overlap – new location and time shown below!
UPDATE: Added links to the Tech Community Discussions for each session. Chime in! 

In a relatively late development, I’ll be attending and speaking at Ignite in Orlando this year! I wasn’t planning on either, so this is exciting. Working on both SharePoint and PowerApps, I’ve got one theater session and will be co-presenting with Cathy Dew on a full breakout session. Links and details below.

Microsoft Ignite in Orlando. Sept. 25 – 29th.

Evolution of the Intake Request Solution from SharePoint to PowerApps
OCCC South – Expo Theater #4
Wednesday @ 1:05 – 1:25
Tech Community Discussion <- Talk to us! 

w/Cathy Dew:
Create Custom forms and digital experiences in SharePoint using Microsoft PowerApps
OCCC W307
Thursday @12:30 – 1:45
Tech Community Discussion <- Talk to us! 

Yes, if you’re looking at the times the two sessions actually overlap right now (fixed!). We’re working on that. Smile with tongue out Worst case I leave Cathy’s session a little before we’re done and RUN to the other building. Let’s hope it doesn’t come to that. Either way we’ll make it work.

SUPER excited to be able to attend and contribute. Hope to see you there!

JS Link – No More HTML in Calculated Field Change

Didn’t see that coming.

More than a few times I’ve had folks bring up solutions using calculated fields to do some of the same things we do with Client-side rendering (CSR) and JS Link in SharePoint. That was fine at the time. Just another way to get to the solution using creative out of the box capabilities – until now.

Microsoft implemented a change yesterday (June 13, 2017) that HTML or script elements in calculated fields would be turned off. Apparently this was an ‘undocumented use’ of the feature. The system is now escaping special characters and replacing the column with a blank in the list view.

Now What?

The short answers – in no particular order:

  1. Client-side rendering via JS Link property of web parts. This only works for Classic mode. If you are using Classic mode, this is likely the ‘best’ short term answer to broken interfaces until a longer-term solution is implemented
  2. Third party products
  3. SPFx Extensions or customization
  4. PowerApps

CSR and JS Link: There are multiple ways to implement JS Link, some via the browser (how I use JS Link) and via deployed coded solutions (Dev only). As mentioned in other responses JS Link does NOT work in the modern experience. It will only work in the Classic mode (as long as it is around). There have been NO dates announced for getting rid of Classic mode at this time. If you choose this direction it’s worth noting that if you’re comfortable writing script in the calculated field you’ll likely be comfortable writing the code needed to get CSR to work. I’ve got plenty of examples in the link included here.

Third party products. I’ve seen folks mention something called Skybow but I’ve never seen or used it. Only mentioning because it was mentioned by someone in the community I trust.

SPFx Extensions and customizations: This is the ‘approved’ development path for deployed solutions. If you are a developer and/or are creating solutions that are used across a broader scope this is likely the path you should go down.

PowerApps: This is likely the long-term replacement for solutions you used HTML or other scripting in your calculated field for (hand slap from English teacher). Embedded integration with SharePoint isn’t there yet (well, it kind of is…), but has been announced. You can start building the views/solutions you need, but they won’t be ‘really’ embedded in SharePoint yet – web parts and/or other tools are coming soon (they’ve been announced).

Note: Much of the attention to PowerApps has been in the area of forms, but views will be a part of the capabilities as well. They’ve already made improvements with introduction of controls like the Data Table control. Check out my posts on PowerApps for SharePoint users, specifically things like ‘List View’ Layouts.

Update

Migration Note: Do not forget to take this into consideration now as something to look at when migrating from an environment where special characters (HTML and scripting) work into an environment (O365, etc.) where they do not. You’ll need a plan to replace or update your field customizations.

Summary

Unfortunately this seems like a pretty sudden change. I certainly had no idea it was coming. For folks that were using this approach there’s a lot of scrambling going on right now dealing with blank columns that weren’t blank a few days ago. Depending on how complex the scripting was, some fixes might be as easy as stripping the HTML and script out and displaying a simple value. More complex solutions are going to take some effort to redo, either with a new approach, new code, or 3rd party software to get the business functionality back.

For simple HTML replacement, JS Link could be an easy switch. If you’ve never used it before check out the Hello World post and then the KPI post. Those will cover a lot and introduce you to the JS Link concept if you need to dig deeper for more complex solutions.

Good luck!

References

PowerApps – No Items to Show

In a previous JS Link / CSR post we covered how to handle what is displayed in a web part when there are no items to show. SharePoint’s default message is an ambiguous:
“There are no items to show in this view of the [listname] list”

Not an awesome user experience. Something a little more contextually relevant might be more helpful to users – either in a simple list view, or in a more complicated solution.

A PowerApps Gallery control isn’t any better – merely showing a blank record. The Data Table control, on the other hand, has a handy ‘NoDataText’ property that can be configured to display a message when the control is empty. 

So, what do we do when using Gallery controls – until a ‘NoDataText’ property is added and/or the Data Table control allows for more configuration options? As is the answer with many things in PowerApps: We use a formula.

Using an appropriate text field control within a Gallery control, we can replace the Text property with a formula like the following:

If(CountRows([_List Name_])=0,”[_Put your message here_]”, ThisItem.Title)

For a SharePoint list named: DefaultList you get the following:

If(CountRows(DefaultList)=0,”Nothing to see here”, ThisItem.Title)

The ‘CountRows’ function as you might guess returns the number of rows in the list.

The ‘If’ function tells the control to set the displayed value of the control to “Nothing to see here” if the condition (there are 0 rows) evaluates to ‘true’. If not, the value of the control is ThisItem.Title – the normal field value we would expect in the control. The text is only displayed when there are no items in the list. 

That’s it. Smile 

References

PowerApps – Data Table Control

PowerApps takes another step in the direction of SharePoint lists. This isn’t intended to be a knock on anything, just an effort to put it into perspective for SharePoint user. With a data table (grid) control PowerApps is able to look a lot like a SharePoint list view.  Smile  PowerApps users now have a control to more rapidly replicate SharePoint view-looking solutions. True, it’s not just SharePoint… but that’s where many users are coming from… and the table/grid layout will be a nice comfort zone for ‘SharePointers’.

If users want to display items from a data source, they have a variety of options in PowerApps – initially centered on the gallery control. The gallery has a LOT of flexibility, allowing users to select gallery templates or build layouts from scratch. Layouts might look like a grid layout, or like a ‘card’ with fields arranged more like the old announcement web part in SharePoint. With this flexibility, however, comes more effort. Not a bad option, just a trade-off. 

The Data Table control has fewer configuration options, but is a big time-saver in that it drops a complete control on the PowerApps screen and allows for a quick configuration to a data source. Fewer options (for now), but quick and easy creation.

Once on a screen, the Data table can be found in the Insert tab: image

Once inserted on a screen, the control needs to connect to data. Clicking on ‘Connect to data’ will allow the user to use existing connections or add a new one. image

In the properties column before connecting to data:
image

Connecting to the SharePoint site, you need to enter the URL of your *site*, not the *list* directly. Once connected to the site you’ll be able to select the list you want.

Once a list is selected, the fields available are displayed. Fields are selected in the order they are to be displayed from left to right. They can be reordered by dragging the columns up and down in the property pane shown here:
image

The screen view and property page with fields selected:
image

As the fields are selected, they show up on the control itself. Boom. That’s it for starters.

The control has a standard collection of basic properties available for configuration, though I expect the options to expand over time. 

Notes

  • CSR – In SharePoint there was no option to configure the text displayed when a web part was empty without getting into some Client-Side Rendering or JS Link customizations. With the Data Grid control there is a “NoDataText” property that takes care of this capability out of the box. Yea!
  • Filtering and Sorting – These aren’t the only other properties of a SharePoint view, but they are the next pieces after choosing the fields to display. See how to use formulas in PowerApps to control the ‘view’ sort and filter options.  
  • Connected controls – The Data table can be connected to another control, like a form where record data can be displayed and edited. Definitely check this one out in the data table control documentation (listed in references below).

Top Wants

This is a great start so I don’t want to appear too negative. I’m a fan of Microsoft’s newish approach to getting new features out and then moving forward with steady improvements over time. With that, here are the top things that came to mind when initially trying the new control:

  • Column widths, row heights, and word wrap – The ability to control the cells a bit more. You can see in the images above how the field widths aren’t acting like you’d hope or assume. The Title field should be bigger and the Priority field should be smaller. It’ll get there.
  • Column formatting, Conditional formatting – Right now the font controls are limited to the headers and the rest of the cells. It will be nice to have column/field level formatting and conditional formatting – one of the most requested and customized features in SharePoint views. 
  • A supported / best practices method for embedding these PowerApps into the SharePoint interface. THAT is how we’ll be able to replace and extend the current SharePoint list view with a PowerApp.

References

PowerApps Community Plan

Now, this is just awesome. In another move to increase user onboarding, Microsoft announced the PowerApps Community plan – free for users to get ramped up on building solutions with PowerApps, Microsoft Flow, and the Common Data Service.

Why is this particularly cool? Users have always been able to sign up for a free trial with their own tenant but that has time limitations. Literally millions of O365 users potentially have access to PowerApps via their organizations, but many of these organizations are hesitant to enable PowerApps in their environments. Regardless of your individual situation, you now have access to a free development environment to not just check out, but dig in and learn one of the most promising tools out there for business solutions.

From a SharePoint user perspective, this is a great way to check out the tool that will both replace InfoPath and extend SharePoint out of box capabilities previously covered by SharePoint Designer, Client-Side Rendering (CSR) and JS Link, and other power user tools. Ramp up on your own and be ready for when your administrator turns PowerApps on in your tenant – OR be the reason they turn it on when you understand it’s capabilities and can demonstrate both your skill and solutions ready for your particular business cases. While SharePoint is, and will continue to be a data source for PowerApps – also check out the Common Data Service. Not all apps should be in SharePoint (really, its not the only tool out there. Smile ).

Be sure to check out the FAQ at the end of the blog post for good info as well. You will be able to transfer apps from your individual environment to another tenant… It’s not a dead-end tenant.

References

  • Sign up for the PowerApps Community Plan
  • Check out the blog post for more details.

Update

Seems worth noting that you create your community account as a part of a business account – which many folks will already have. But not to fear, PowerApps keeps your community account separate from your actual work account by using the same account and password, but creating a new environment. Well done PowerApps Team!

image

  • ‘TrecStone (default)’ is, yep – the default PowerApps environment for my account.
  • ‘Demo Area’ is a separate environment created to try out environment functionality
  • ‘Wes Preston’s Environment’ is my new personal PowerApps Community Plan environment

SharePoint, PowerApps, and List View Permissions

While discussing SharePoint list views during a recent SharePoint 101 session at our local SharePoint User group, the inevitable question about permissions on columns and views came up. Standard answer: ‘No’. Permissions in SharePoint are set at the list level, or the item level. Nothing is available at the column or view level. However

Here are the facts (today – this stuff changes so fast…):

  • Permissions on SharePoint lists are set at the list or item level. There are no SharePoint settings for permissions on a specific view.
  • PowerApps are surfaced in the views dropdown.
  • PowerApps permissions are set at the App level.

Are you there yet? Did you make the connection? Yep. You can have an item in the view dropdown with permissions different than the list itself. You can now have a ‘view’ with its own permissions. PowerApps are even integrated enough to *not* show up in the dropdown if you are a user that doesn’t have permissions to the App.

image

Now, PowerApps are not as simple to create as a SharePoint view, but it is possible. Currently two facts hamper users a little bit here.

  1. The current SharePoint to PowerApps ‘wizard’ only creates a phone layout App. Not something that easily replicates a traditional SharePoint view.
    image
    Don’t get me wrong, this template (wizard) is awesome. it just doesn’t do what we’re talking about (replicate a list view) in this scenario.
  2. PowerApps are not yet embedded in the SharePoint interface – so the user experience is not as smooth as we’d like it to be.

I have to believe that both of these issues are on the roadmap for the PowerApps and SharePoint teams. We’ll just need to wait and see if and when they work their way up the list. Smile

Until these are addressed, you have a few things you can do manually with SharePoint and PowerApps. I’m walking through some of the options and steps with this blog series (References listed below – still have more posts to come…).

As with anything you’re working on in SharePoint or PowerApps, you need to pay attention to permissions levels. Extending SharePoint with PowerApps – while awesome – adds to the details you need to pay attention to. #governance. You might run into something like this:
image

You can also use the ever popular ‘security by obscurity’ approach and remove the PowerApps listing from SharePoint:
image
Although, you don’t actually have to do the ‘obscurity’ approach though since we have the capability of setting appropriate permissions at both the SharePoint and PowerApps levels.

You have options to switch the visibility, permissions, and integration experience in the SharePoint list menu:
image

These are a few of the configuration options. Check them out to see if the integration between SharePoint and PowerApps can meet your particular needs. If it doesn’t now, by bet would be that it will eventually… soon even.

References

Top X Things Needed To Make PowerApps Awesome for SharePoint

While chatting about PowerApps recently, someone told me that I should always know my ‘top x’ things I want fixed, added, changed, etc. I can see where that might be handy to talk about with Microsoft, with other implementers, etc. It’s a quickly changing community and product and hey, they *are* listening. For PowerApps my current focus is on how it integrates with SharePoint. With that in mind, here’s my top 2. I’ll come up with more later. These are the ones I think are *really* important. 

  1. Embedded
  2. Embedded

PowerApps has great potential and already has a running start. But it has to nail the embedded story. If the integration of SharePoint and PowerApps is going to be *really* successful and gain the love of SharePoint users it needs to be easy and seamless. That means when a user selects a PowerApp in SharePoint it’s not going to jump to another application. It needs to run within the SharePoint interface.

So why do I list ‘embedded’ twice? Not because I really, really want it (I do) – but because there are (at least) two distinct embedded use cases:

Embedded Forms

EVERYONE has been talking about forms – which is well and good. They should be talking. They should (and have) been yelling. The gap is obvious and a solution is WAY overdue. With the scheduled end of InfoPath and the rudely unscheduled end of SharePoint Designer’s (SPD) visual designer, users have been left with one of the community’s longest and most obvious gaps. Thanks to third-party offerings (K2, Nintex, etc.) and community-efforts (Stratus Forms, etc.) certain needs have been met, but there are still gaps and it’s been far too long for a Microsoft-sponsored solution for business and power users.

Note: I don’t want this coming off as an anti-Microsoft rant. That is definitely not my intent. There were plenty of reasons for the delay. What they want to do and need to do is not trivial and the standards are extremely high. The integration we’re talking about also requires collaboration (see what I did there?) between two separate, complex, and rapidly changing products and teams. The PowerApps and SharePoint teams are also in different reporting structures within Microsoft. Fortunately both teams understand how important it is to get this particular integration done. The good thing is that there are many indications that this time around they’re going to make it – and maybe even exceed your expectations.

PowerApps needs to be able to replace existing SharePoint forms – the standard New, Edit, and Display forms – as well as add additional forms to a list or library. Form editing needs to be easy and intuitive in terms of which fields are displayed, how fields are laid out and formatted. Beyond that, there are plenty of other features we’d love to see, but the ones listed here are the core. Talk to anyone that’s used InfoPath or SPD and you’ll quickly get a list of wanted features.

We have every indication that Forms and the embedded experience will be addressed. Microsoft has gone as far as announcing that PowerApps IS the replacement for InfoPath. It is important to remember however that the features are coming iteratively, little by little, but continuously. So be patient.

Embedded Views

The embedded story that folks aren’t talking about as much is for Views. SharePoint views have historically been a powerful tool for business users. And while they are powerful out of the box, power users continue to find that they’d like to extend views beyond the out of box capabilities, and extend without involving developers when they are able.

Again, power users were once able to do some limited, yet still extremely useful, view customizations with SPD, but lost that power with the deprecation of the designer view. For the last few years, some customizations were again available using Client-Side Rendering (CSR) and the JS Link property of web parts. While extremely flexible, this approach was beyond most typical business users as it crept into a grey area between out of the box and ‘real’ customization and development. The approach never gained mainstream support or adoption. Now, as O365 continues to mature and lock down features that have the capability to jeopardize platform stability, CSR and JS Link are also going away from fringe power users and exclusively back into the hands of developers (good for the platform, unfortunate for those that were using it). 

Users need a way to get the benefit of SharePoint views, specifically choosing a list of fields, the order of the fields in a grid or spreadsheet format, the filter for the list of items, and how they are sorted. Once those core features are available they’re going to want the ability to customize that view using PowerApps’ ability to change field formats, apply conditional formatting, and other rules.

PowerApps today are surfaced in O365 SharePoint Online via the view dropdown.

image

Selecting one of them initiates the loading of a PowerApp, but only give the user a button to open the PowerApp – opening the client application.

image

Embedding the PowerApp would (hopefully) spin up a PowerApp right in the SharePoint window – just like any other view – rather than having to launch a client application – which is a fairly jarring experience for users.

I think there’s some interest in this use-case in the community, but it’s definitely less discussed than the forms example. I’m not sure what the interest level is, but I imagine anyone that was doing CSR and JS Link work would be interested in it. We’ll just have to wait and see.

#3 – A View Template

OK. So I did think of a third item on my list.

The current SharePoint template for PowerApps starts with a SharePoint list and creates a series of three forms in PowerApps. It would be great is there was a PowerApps template that took the selection a step further – into the current views for a list (or library) – and had a default layout that looks more like a traditional SharePoint view – a table/grid layout. This feature alone would allow SharePoint users to leverage their existing investment in views straight into extending them in the PowerApps interface. 

Summary

PowerApps is a powerful addition to the suite of tools Microsoft is making available for power users – many of which are currently using SharePoint. The PowerApps team wants to see user adoption grow and has a large group of potential users in the existing SharePoint user base – and SharePoint folks are an eager bunch. We’re already intrigued by the potential PowerApps brings to the table. If Microsoft is able to smoothly embed PowerApps into SharePoint (and Teams!) pages, users will be chomping at the bit to use PowerApps (and Flow) even faster than they already are.