cancel
Showing results for 
Search instead for 
Did you mean: 

How-to update a SharePoint location field from PowerApps (using Flow)

Not to long ago, Microsoft introduced the column type “Location” in SharePoint Online. This is a great addition for business solutions. From a PowerApps perspective, the usefulness is limited to showing data (Country/Region, State, City, Postal Code and Street).

So is it not possible at all to update a location field from PowerApps?

It is: Flow to the rescue!

There is a restriction though: The locations should be known beforehand, but this restriction still allows for a lot of usefulness. You can select a value for an entity (For example: A building) and when saving your item, this value is transformed to a location value in the location field. There must be a entity-location value mapping available for this to work though. This could be hardcoded in Flow but a much better approach is to use a SharePoint list for this.

So how can Flow help? The “Update item” action will not allow you to update a location field. No worries, Flow has a swiss army knife action called “Send an HTTP request to SharePoint” with which you can use REST to update a list item.

When a location is saved, the settings are saved internally in a JSON format like:

{"LocationSource":"Bing","LocationUri":"https://www.bingapis.com/api/v6/addresses/...%3d?setLang=nl-NL","UniqueId":"https://www.bingapis.com/api/v6/addresses/..%3d?setLang=nl-NL","DisplayName":"Lange Dreef 17, 4131 NJ  Vianen","Address":{"Street":"Lange Dreef 17","City":"Vianen","State":"Utrecht","CountryOrRegion":"Nederland","PostalCode":"4131 NJ"},"Coordinates":{"Latitude":51.98469161987305,"Longitude":5.105350017547607}}

The example above is the HQ location for my new employer “Sogeti – The Netherlands”  and I replaced two long strings with “…”. The JSON values can be retrieved using PowerShell or via the url “…/_api/web/lists/getbytitle(‘Locations’)/items”. My SharePoint list is called “Locations”. The field name is “Location”.

Flow collects the right value for the location field based on the value of the entity and then updates the item’s location field using the action “Send an HTTP request to SharePoint”.

Using REST is not really “Citizen developer” stuff, but if you have a bit more experience/affinity with technology, you should be able to find enough info to get it to work. below I presented a screenshot which works for me.

2019-01-29_B.PNG

Comments

Wow! Thanks so much. We're not updating a location field from powerapps, but our users wanted to update the field using Lat/Long and not addresses. We were able to modify the payload to pass in two "Lat"/'Long" number columns without providing a street address. latlonglocation.png

 

{"__metadata": { "type": "SP.Data.TestListItem" },'testcolumn':'{"LocationSource":"Bing","LocationUri":"https://www.bingapis.com/api/v6/addresses/...%3d?setLang=en-US","UniqueId":"https://www.bingapis.com/api/v6/addresses/..%3d?setLang=en-US","DisplayName":"@{triggerBody()?['Title']}","Coordinates":{"Latitude":@{triggerBody()?['Lat']},"Longitude":@{triggerBody()?['Long']}}}'}

 

Meet Our Blog Authors
  • PowerApps Community Mentor 2018, Practicing surgeon and former Professor of Surgery, University of Illinois, Chicago.
  • I am the Owner/Principal Architect at Don't Pa..Panic Consulting. I've been working in the information technology industry for over 30 years, and have played key roles in several enterprise SharePoint architectural design review, Intranet deployment, application development, and migration projects. I've been a Microsoft Most Valuable Professional (MVP) 12 consecutive years and am also a Microsoft Certified SharePoint Masters (MCSM) since 2013.
  • My name is Timothy Shaw and I create digital solutions using the Power Platform, Office 365, and Azure SQL and handle the IT for a small company in the energy sector. When not building the future :), I enjoy playing guitar, good (or really bad!) sci-fi, Xbox therapy, and hanging with my wife and son. Twitter: @ShortForTim