You are on page 1of 62

Only so many problems can be solved with

off-the-shelf SaaS
Only so many problems can be solved with
off-the-shelf SaaS

Custom software
development
is time consuming and costly
Only so many problems can be solved with
off-the-shelf SaaS

Custom software
development
is time consuming and costly

Everything else is a
missed opportunity
to optimize.
One connected platform that empowers everyone to innovate
Declarative Logic Imperative Logic Advanced Topics
• Think Excel • Events and State • Connectors
• Controls, Properties, Changes • Flow and Stored
and Formulas • Variables Procedures
• Simple and Compound • Saving Data Changes • OnStart
Data Types • Screen Navigation • Patch
• Data Sources • App From Data • ForAll
• Relational Data • Setting Values • Offline Data
• Simple Master/Detail
Form
• Delegation
• Rules
Think Excel
What if you could build apps
as easily as you build spreadsheets?
What if you could leverage all of
your existing Excel knowledge?
Screen.BackgroundColor = If( IsBlank( Name ), Red, Black )

Sub Button_OnClick
Screen.BackgroundColor = If( IsBlank( Name ), Red, Black )
End Sub
Excel
B1’s cell value depends on A1’s cell value
Automatically recalculated as A1 changes

PowerApps
Label1’s Text property depends on
TextInput1’s Text property
Automatically recalculated as
TextInput1 changes
Excel
Formulas can reference any cell in the
workbook
The entire workbook is recalculating all
the time, even if we can’t see a sheet or
hidden column

PowerApps
Formulas can reference any
control property in the app
The entire app is recalculating all
the time, even if we can’t see a
screen or a control is invisible
 TextInputBox.Default

 TextInputBox.BackgroundColor

 TextInputBox.Text
123.456
“Hello World”
True False
1/12/2017 12:00 PM
1/12/2017

IsBlank
Blank
 { FirstName: “Fred”, LastName: “Jones” }

 Table( { FirstName: “Jane”, LastName: “Doe” },


{ FirstName: “John”, LastName: “Smith” } )
 [ 123, 456, 789 ]
Filter, Search
Sort, SortByColumns
AddColumns, DropColumns, RenameColumns, ShowColumns
GroupBy, Ungroup
Gallery, Display Form Data Table
Edit Form
 EditForm, NewForm, SubmitForm
Collect, Patch, Remove, Update
 SalesOrder.Account.Contact.FullName

 SalesOrder.SalesOrderItems
SalesOrderID AccountContact SalesPersonWorker OrderDate Status
101 { ContactID: 12,
FullName: “Sherlock Holmes” }
{ WorkerID: 44,
Name: “Joe Black” }
1/1/2017 “Shipped”
Today
102 { ContactID: 14, { WorkerID: 44, 1/14/2017 “Placed”
FullName: “Doctor Watson” } Name: “Joe Black” }

Tomorrow
SalesOrderID AccountContact SalesPersonWorker OrderDate Status SalesOrderLIne

101 { ContactID; 12, { WorkerID: 44, 1/1/2017 “Shipped” Product Quantity UnitPrice
FullName: “Sherlock Holmes”, Name: “Joe Black” { Name: “Mag Glass” 2 12
PhoneBusiness: “(206) 321-5422”, Email: “jb@conto.com”, SellingUnitPrice: 12 }
Name: { GivenName: “Sherlock”, BusinessUnit: “C&R”, { Name: “Microphone” 1 30
Surname: “Holmes”, …} SellingUnitPrice: 30 }
MiddleName: “Bruce” }
… }

102 { ContactID: 14, { WorkerID: 44 1/14/2017 “Placed” Product Quantity UnitPrice


FullName: “Doctor Watson”, Name: “Joe Black” { Name: “Aspirin” 1 9
PhoneBusiness: “(206) 321-5421”, Email: “jb@conto.com”, SellingUnitPrice: 10 }
Name: { GivenName: “Doctor”, BusinessUnit: “C&R”, { Name: “Notebook” 1 10
Surname: “Watson”, …} SellingUnitPrice: 12 }
MiddleName: null }
… }
Choices
Understand delegation Delegable data sources
 Button.OnSelect, Screen.OnVisible, App.OnStart,

; ;;
Set

Navigate, UpdateContext

Collect, Clear, ClearCollect, Update, Remove


SaveData, LoadData
Set, UpdateContext, Navigate Collect
Navigate( Screen2, Transition, ContextVariablesToSetOnScreen2 )

Back
Browse Screen Detail Screen Edit Screen
Name P E + < Name 3 $ X Name P

Search

Detail Form Edit Form


Gallery

Account Entity
Browse Screen Detail Screen Edit Screen
Name P E + < Name 3 $ X Name P

Search

Detail Form Edit Form


Gallery

Items

Sort
Account Entity
Filter
Browse Screen Detail Screen Edit Screen
Name P E + < Name 3 $ X Name P

Search

Selected
Item Detail Form Item Edit Form
Gallery

Account Entity
Browse Screen Detail Screen Edit Screen
Name P E + < Name 3 $ X Name P

Search

Detail Form Edit Form


Gallery

Remove Account Entity


SubmitForm
Navigate
Browse Screen Back Detail Screen Navigate Edit Screen
Name P E + < Name 3 $ X Name P

Search Back
Back
Back
Navigate
Detail Form Edit Form
Gallery

Account Entity
Browse Screen Detail Screen Edit Screen
Name P E + < Name 3 $ X Name P

Search
EditForm
NewForm
Detail Form Edit Form
Gallery

Account Entity
7
Data binding is one way – separate in and out
 Default
Text SelectedDate

 Use Reset Default

Default Text
7
Default Text
7

Default
7
Text
OnStart
Patch( DataSource, OriginalRecord, Updates )
Edit Form

Defaults function

 Errors

 Patch( DataSource, Original,


Form1.Updates, Form2.Updates, Form3.Updates )
ForAll( Table, Formula )

Collect

 UpdateContext, ClearCollect, Set


Collect
SaveData
 Doesn’t work when Web Authoring, must use native studio or players

LoadData
 Can do this from OnStart

Connection

Patch
 Can use ForAll to Patch only records that have changed
 IfError( Try, Catch )
 Notify( Message [, Type ] )
ShowError
 Patch
http://powerapps.com

https://docs.microsoft.com/en-us/powerapps

https://powerusers.microsoft.com/t5/PowerApps-Community/ct-
p/PowerApps1
THR2302 Build a full business app in 10 minutes 12:00PM - 12:20PM Expo Hall Theater 1
BRK2420 Streamline business processes with Flow and Office 365 1:00PM - 2:15PM Sheraton Grand Ballrm D
BRK2303 Build and extend applications for Office 365 with PowerApps and Flow 4:30PM - 5:45PM WSCC Room 603

THR2303 Build a workflow in 10 minutes 12:00PM - 12:20PM Expo Hall Theater 1


THR3401 Real-World Solutions with PowerApps: Performance and optimization tips 1:00PM - 1:20PM Expo Hall Theater 2
BRK2302 Automating business processes and approvals with Microsoft Flow 1:15PM - 2:30PM Sheraton Grand Ballrm D
BRK3411 Accelerate your SaaS App development using the Business Application Platform 4:45PM - 6:00PM WSCC Room 603

BRK3404 Deep dive into building apps on Common Data Service for Apps 8:30AM - 9:45AM WSCC Room 620
THR1201 Distribute your apps to millions of users via AppSource 9:30AM - 9:50AM Expo Hall Theater 2
THR3402 Real-World Solutions with PowerApps: Building Composite Controls 10:00AM - 10:20AM Expo Hall Theater 1
THR1202 Deliver a compelling experience on Microsoft AppSource 10:30AM - 10:50AM Expo Hall Theater 2
THR2304 Real-World Solutions with PowerApps: ALM via Microsoft Flow & PowerShell 12:00PM - 12:20PM Expo Hall Theater 1
BRK3405 Developing custom connectors for Microsoft Flow and PowerApps 1:00PM - 2:15PM WSCC Room 603
BRK3403 Extending PowerApps and CDS for Apps with custom controls and server side logic 2:45PM - 4:00PM WSCC Room 620
THR3403 Real-World Solutions with PowerApps: Tips & tricks to manage app complexity 3:00PM - 3:20PM Expo Hall Theater 1
BRK3408 Advanced app building with PowerApps expressions and rules 4:30PM - 5:45PM Sheraton Metro. Ballrm A

You might also like