SlideShare a Scribd company logo
1 of 29
PowerApps – the good, bad
and ugly
Chris O’Brien
The concept
QUICKLY AND EASILY CREATE APPS WHICH
PARTICULARLY SUITABLE FOR
Use Excel-like formulas – not code
To do Formula
“Next” button to change screen Navigate(MyScreen, ScreenTransition.Fade)
Add item to SharePoint list Patch(MySharePointList, Defaults(MySharePointList),
{
FirstName:TextInput1.Text,
LastName:TextInput2.Text
}
)
Add record to local collection
(cache)
ClearCollect(
SelectedProducts,
{
ID: ProductID,
Name: ”XT1000”
}
)
Not required
The mobile experience
PowerApps app must be installed
from App Store
Apps appear within PowerApps app
Two main approaches
Customise a
SharePoint list Create standalone
PowerApp
Customising SP forms vs. standalone
Customised SP forms:
Other considerations:
Demo
PowerApps on a list
Standalone PowerApps
Start from data
Start from template
Start from blank
Start from your data
Start from template
Sample app – leave
requests
The scenario
POC for airline pilots (leave requests)
Flying a plane is the perfect
time!
Offline support
Ability to connect to on-premises
data
Demo
Leave Requests PowerApp
Implementing the PowerApp
Key findings
Some surprises
Functions for SharePoint data
Patch
• Add list item
Collect
• Fetch list item
Update
• Update list item
Delete
• Remove
Multi-page forms
Person/Group fields
Taxonomy fields
Implementing offline support
Pattern
On-premises data gateway
Considerations
Working with data
Connection is hit when:
Data-related functions:
Connection (e.g.
a database)
Data source
(e.g. a table)
Using a Gallery control for navigation
Complex at first
The pattern
Tips – key PowerApps functions
To do Use
Set a global variable available across all screens Set()
Set a context variable in a single screen UpdateContext()
Change screen Navigate(), Back()
Save a local record (e.g. for offline) Collect(), ClearCollect(), SaveData()
Open a web address/app Launch()
Get data on current user User()
150+ functions in total. See:
https://docs.microsoft.com/en-
us/powerapps/formula-reference
Tips
Get used to:
Lots of fiddly work to generate PATCH command 
Adding a “debug screen” with labels showing variables etc
General weirdness with variables
Variables and If statements
NOT: OnLoad - If (X) { Label1.Visible = true } else { Label1.Visible = false }
INSTEAD: Label1.Visible = if (X, false, true)
Conditional display
Add a “rule” to control, use panel to configure what properties which should be set (e.g. Visible = false)
Tips – SharePoint fields
To do Use
Update a choice/lookup from a
dropdown
Paternity_LengthOfPaternityLeave: {
'@odata.type':"#Microsoft.Azure.Connectors.
SharePoint.SPListExpandedReference",
Value: ddlPaternityLeaveDuration.Selected.Value,
Id: 1
}
Update a person field currentUser: {
'@odata.type':"#Microsoft.Azure.Connectors.
SharePoint.SPListExpandedUser",
Claims:"i:0#.f|membership|" & Lower(User().Email),
Email:User().Email,
JobTitle:".",
Picture:"."
}
PowerApps
- the good
PowerApps
- the bad
PowerApps
- the ugly
Takeaways
PowerApps can be VERY transformative for an org with lots of forms/processes
Very easy to get apps onto mobile devices
But, some pain for the implementer! Often
beyond the average power user
1
2
3
“Simple” requirements can sometimes be
difficult to implement
4
Thank you 
Any questions?
www.sharepointnutsandbolts.com
@ChrisO_Brien

More Related Content

What's hot

WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
Fabio Franzini
 
Office 2013 loves web developers slide
Office 2013 loves web developers   slideOffice 2013 loves web developers   slide
Office 2013 loves web developers slide
Fabio Franzini
 
Oracle application express ppt
Oracle application express pptOracle application express ppt
Oracle application express ppt
Abhinaw Kumar
 

What's hot (20)

Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...
 
5 x HTML5 worth using in APEX (5)
5 x HTML5 worth using in APEX (5)5 x HTML5 worth using in APEX (5)
5 x HTML5 worth using in APEX (5)
 
Building productivity solutions with Microsoft Graph
Building productivity solutions with Microsoft GraphBuilding productivity solutions with Microsoft Graph
Building productivity solutions with Microsoft Graph
 
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...
 
Chris O'Brien - Introduction to the SharePoint Framework for developers
Chris O'Brien - Introduction to the SharePoint Framework for developersChris O'Brien - Introduction to the SharePoint Framework for developers
Chris O'Brien - Introduction to the SharePoint Framework for developers
 
Browser Developer Tools
Browser Developer ToolsBrowser Developer Tools
Browser Developer Tools
 
Application Lifecycle Management for Office 365 development
Application Lifecycle Management for Office 365 developmentApplication Lifecycle Management for Office 365 development
Application Lifecycle Management for Office 365 development
 
ECS19 Bert Jansen - Modernizing your existing sites
ECS19 Bert Jansen - Modernizing your existing sitesECS19 Bert Jansen - Modernizing your existing sites
ECS19 Bert Jansen - Modernizing your existing sites
 
Integration of APEX and Oracle Forms
Integration of APEX and Oracle FormsIntegration of APEX and Oracle Forms
Integration of APEX and Oracle Forms
 
Do's and don'ts for Office 365 development
Do's and don'ts for Office 365 developmentDo's and don'ts for Office 365 development
Do's and don'ts for Office 365 development
 
O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...
O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...
O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
 
Unity Connect Haarlem 2016 - The Lay of the Land of Client-Side Development c...
Unity Connect Haarlem 2016 - The Lay of the Land of Client-Side Development c...Unity Connect Haarlem 2016 - The Lay of the Land of Client-Side Development c...
Unity Connect Haarlem 2016 - The Lay of the Land of Client-Side Development c...
 
Office 2013 loves web developers slide
Office 2013 loves web developers   slideOffice 2013 loves web developers   slide
Office 2013 loves web developers slide
 
Application express
Application expressApplication express
Application express
 
Oracle application express ppt
Oracle application express pptOracle application express ppt
Oracle application express ppt
 
ECS 19 - Chris O'Brien - The hit list - Office 365 dev techniques you should ...
ECS 19 - Chris O'Brien - The hit list - Office 365 dev techniques you should ...ECS 19 - Chris O'Brien - The hit list - Office 365 dev techniques you should ...
ECS 19 - Chris O'Brien - The hit list - Office 365 dev techniques you should ...
 
Introduction to Adobe Flex - Zaloni
Introduction to Adobe Flex - ZaloniIntroduction to Adobe Flex - Zaloni
Introduction to Adobe Flex - Zaloni
 
[Patel] SPFx: An ISV Insight into latest Microsoft's customization model
[Patel] SPFx: An ISV Insight into latest Microsoft's customization model[Patel] SPFx: An ISV Insight into latest Microsoft's customization model
[Patel] SPFx: An ISV Insight into latest Microsoft's customization model
 
Building Cool apps with flex
Building Cool apps with flexBuilding Cool apps with flex
Building Cool apps with flex
 

Similar to COB - PowerApps - the good, the bad and the ugly - early 2018

SharePoint 2010 Application Development Overview
SharePoint 2010 Application Development OverviewSharePoint 2010 Application Development Overview
SharePoint 2010 Application Development Overview
Rob Windsor
 
...and thus your forms automagically disappeared
...and thus your forms automagically disappeared...and thus your forms automagically disappeared
...and thus your forms automagically disappeared
Luc Bors
 

Similar to COB - PowerApps - the good, the bad and the ugly - early 2018 (20)

3 Mobile App Dev Problems - Monospace
3 Mobile App Dev Problems - Monospace3 Mobile App Dev Problems - Monospace
3 Mobile App Dev Problems - Monospace
 
SPS Stockholm: PowerApps Jumpstart
SPS Stockholm: PowerApps JumpstartSPS Stockholm: PowerApps Jumpstart
SPS Stockholm: PowerApps Jumpstart
 
XPages Workshop: Concepts And Exercises
XPages Workshop:   Concepts And ExercisesXPages Workshop:   Concepts And Exercises
XPages Workshop: Concepts And Exercises
 
Having Fun Building Web Applications (Day 2 slides)
Having Fun Building Web Applications (Day 2 slides)Having Fun Building Web Applications (Day 2 slides)
Having Fun Building Web Applications (Day 2 slides)
 
Intro to Application Express
Intro to Application ExpressIntro to Application Express
Intro to Application Express
 
Asp.net tips
Asp.net tipsAsp.net tips
Asp.net tips
 
Building Workflow Applications Through the Web
Building Workflow Applications Through the WebBuilding Workflow Applications Through the Web
Building Workflow Applications Through the Web
 
Basic of Oracle Application
Basic of Oracle ApplicationBasic of Oracle Application
Basic of Oracle Application
 
Basic of oracle application Login steps
Basic of oracle application Login stepsBasic of oracle application Login steps
Basic of oracle application Login steps
 
Ext Js
Ext JsExt Js
Ext Js
 
Windows 8 BootCamp
Windows 8 BootCampWindows 8 BootCamp
Windows 8 BootCamp
 
Declarative UIs with Jetpack Compose
Declarative UIs with Jetpack ComposeDeclarative UIs with Jetpack Compose
Declarative UIs with Jetpack Compose
 
Power Apps Component Framework - Dynamics Power! 365 Paris 2019
Power Apps Component Framework - Dynamics Power! 365 Paris 2019  Power Apps Component Framework - Dynamics Power! 365 Paris 2019
Power Apps Component Framework - Dynamics Power! 365 Paris 2019
 
SharePoint 2010 Application Development Overview
SharePoint 2010 Application Development OverviewSharePoint 2010 Application Development Overview
SharePoint 2010 Application Development Overview
 
Sencha Touch basic concepts, pros and cons
Sencha Touch basic concepts, pros and consSencha Touch basic concepts, pros and cons
Sencha Touch basic concepts, pros and cons
 
Intro to Talend Open Studio for Data Integration
Intro to Talend Open Studio for Data IntegrationIntro to Talend Open Studio for Data Integration
Intro to Talend Open Studio for Data Integration
 
PowerApps
PowerAppsPowerApps
PowerApps
 
Designing the Call of Cthulhu app with Google App Engine
Designing the Call of Cthulhu app with Google App EngineDesigning the Call of Cthulhu app with Google App Engine
Designing the Call of Cthulhu app with Google App Engine
 
...and thus your forms automagically disappeared
...and thus your forms automagically disappeared...and thus your forms automagically disappeared
...and thus your forms automagically disappeared
 
New World Of SharePoint 2010 Administration Oleson
New World Of SharePoint 2010 Administration OlesonNew World Of SharePoint 2010 Administration Oleson
New World Of SharePoint 2010 Administration Oleson
 

More from Chris O'Brien

More from Chris O'Brien (14)

Chris OBrien - Azure DevOps for managing work
Chris OBrien - Azure DevOps for managing workChris OBrien - Azure DevOps for managing work
Chris OBrien - Azure DevOps for managing work
 
Chris O'Brien - Ignite 2019 announcements and selected roadmaps
Chris O'Brien - Ignite 2019 announcements and selected roadmapsChris O'Brien - Ignite 2019 announcements and selected roadmaps
Chris O'Brien - Ignite 2019 announcements and selected roadmaps
 
Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)
Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)
Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)
 
Deep dive into SharePoint 2013 hosted apps - Chris OBrien
Deep dive into SharePoint 2013 hosted apps - Chris OBrienDeep dive into SharePoint 2013 hosted apps - Chris OBrien
Deep dive into SharePoint 2013 hosted apps - Chris OBrien
 
Customizing the SharePoint 2013 user interface with JavaScript - Chris OBrien
Customizing the SharePoint 2013 user interface with JavaScript - Chris OBrienCustomizing the SharePoint 2013 user interface with JavaScript - Chris OBrien
Customizing the SharePoint 2013 user interface with JavaScript - Chris OBrien
 
SP2013 for Developers - Chris O'Brien
SP2013 for Developers - Chris O'BrienSP2013 for Developers - Chris O'Brien
SP2013 for Developers - Chris O'Brien
 
Getting to grips with SharePoint 2013 apps - Chris O'Brien
Getting to grips with SharePoint 2013 apps - Chris O'BrienGetting to grips with SharePoint 2013 apps - Chris O'Brien
Getting to grips with SharePoint 2013 apps - Chris O'Brien
 
SharePoint Ribbon Deep Dive
SharePoint Ribbon Deep DiveSharePoint Ribbon Deep Dive
SharePoint Ribbon Deep Dive
 
Automated Builds And UI Testing in SharePoint 2010 Development
Automated Builds And UI Testing in SharePoint 2010 DevelopmentAutomated Builds And UI Testing in SharePoint 2010 Development
Automated Builds And UI Testing in SharePoint 2010 Development
 
Optimizing SharePoint 2010 Internet Sites
Optimizing SharePoint 2010 Internet SitesOptimizing SharePoint 2010 Internet Sites
Optimizing SharePoint 2010 Internet Sites
 
Managing the SharePoint 2010 Application Lifecycle - Part 2
Managing the SharePoint 2010 Application Lifecycle - Part 2Managing the SharePoint 2010 Application Lifecycle - Part 2
Managing the SharePoint 2010 Application Lifecycle - Part 2
 
Managing the SharePoint 2010 Application Lifecycle - Part 1
Managing the SharePoint 2010 Application Lifecycle - Part 1Managing the SharePoint 2010 Application Lifecycle - Part 1
Managing the SharePoint 2010 Application Lifecycle - Part 1
 
SharePoint workflow deep-dive
SharePoint workflow deep-dive SharePoint workflow deep-dive
SharePoint workflow deep-dive
 
SharePoint Web Content Management - Lessons Learnt/top 5 tips
SharePoint Web Content Management - Lessons Learnt/top 5 tipsSharePoint Web Content Management - Lessons Learnt/top 5 tips
SharePoint Web Content Management - Lessons Learnt/top 5 tips
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 

COB - PowerApps - the good, the bad and the ugly - early 2018

  • 1. PowerApps – the good, bad and ugly Chris O’Brien
  • 2. The concept QUICKLY AND EASILY CREATE APPS WHICH PARTICULARLY SUITABLE FOR
  • 3. Use Excel-like formulas – not code To do Formula “Next” button to change screen Navigate(MyScreen, ScreenTransition.Fade) Add item to SharePoint list Patch(MySharePointList, Defaults(MySharePointList), { FirstName:TextInput1.Text, LastName:TextInput2.Text } ) Add record to local collection (cache) ClearCollect( SelectedProducts, { ID: ProductID, Name: ”XT1000” } )
  • 5.
  • 6. The mobile experience PowerApps app must be installed from App Store Apps appear within PowerApps app
  • 7. Two main approaches Customise a SharePoint list Create standalone PowerApp
  • 8. Customising SP forms vs. standalone Customised SP forms: Other considerations:
  • 10. Standalone PowerApps Start from data Start from template Start from blank
  • 13. Sample app – leave requests
  • 14. The scenario POC for airline pilots (leave requests) Flying a plane is the perfect time! Offline support Ability to connect to on-premises data
  • 16. Implementing the PowerApp Key findings Some surprises
  • 17. Functions for SharePoint data Patch • Add list item Collect • Fetch list item Update • Update list item Delete • Remove Multi-page forms Person/Group fields Taxonomy fields
  • 20. Working with data Connection is hit when: Data-related functions: Connection (e.g. a database) Data source (e.g. a table)
  • 21. Using a Gallery control for navigation Complex at first The pattern
  • 22. Tips – key PowerApps functions To do Use Set a global variable available across all screens Set() Set a context variable in a single screen UpdateContext() Change screen Navigate(), Back() Save a local record (e.g. for offline) Collect(), ClearCollect(), SaveData() Open a web address/app Launch() Get data on current user User() 150+ functions in total. See: https://docs.microsoft.com/en- us/powerapps/formula-reference
  • 23. Tips Get used to: Lots of fiddly work to generate PATCH command  Adding a “debug screen” with labels showing variables etc General weirdness with variables Variables and If statements NOT: OnLoad - If (X) { Label1.Visible = true } else { Label1.Visible = false } INSTEAD: Label1.Visible = if (X, false, true) Conditional display Add a “rule” to control, use panel to configure what properties which should be set (e.g. Visible = false)
  • 24. Tips – SharePoint fields To do Use Update a choice/lookup from a dropdown Paternity_LengthOfPaternityLeave: { '@odata.type':"#Microsoft.Azure.Connectors. SharePoint.SPListExpandedReference", Value: ddlPaternityLeaveDuration.Selected.Value, Id: 1 } Update a person field currentUser: { '@odata.type':"#Microsoft.Azure.Connectors. SharePoint.SPListExpandedUser", Claims:"i:0#.f|membership|" & Lower(User().Email), Email:User().Email, JobTitle:".", Picture:"." }
  • 28. Takeaways PowerApps can be VERY transformative for an org with lots of forms/processes Very easy to get apps onto mobile devices But, some pain for the implementer! Often beyond the average power user 1 2 3 “Simple” requirements can sometimes be difficult to implement 4
  • 29. Thank you  Any questions? www.sharepointnutsandbolts.com @ChrisO_Brien