Today is a day for Pride. I feel proud today as the course I have laboured on for almost 12 months has nearly 2000 students.
I’m proud that I even started a Power Apps course on a platform that means a great deal to me, I mean, like what right do I even have to teach people? I’m proud of the fact that I spent 6 weeks considering the structure before recording a single video and then started creating a course that stretches out to 250+ lessons, and then gave it away for free.
My amazing and committed students
Most of all though I am proud of the all the students that have decided that they want to take the time to learn their craft properly.
I’m thankful too!
As well as that I am thankful to every person that has signed up for the course and to those that have provided me with counsel to make it the best that it can be.
I’m also thankful to my wife and family for putting up with me making my recordings and turning off the boiler so that the sound wasn’t disturbed (and then wondering why there was no hot water)
Motivation
I started out with a simple idea, that I might be able to create something of use to someone, some individual person who wanted to do more for themselves and their organisation. I still believe that if it is worth a single person travelling through the course, then it is worth 10,000 following the same path.
Students Young and Old(er)
This is very much the beginning for so many people, from those that start aged 6 using http://www.PowerApps4Kids.com through to those that are 60 and beyond. This is Paul Burns talking to Dona Sarkar at Ignite 2021 about his app he created to help him to write again after a stroke – the sky really is the limit.
You can rebuild a 3 Screen Power App in about 3 minutes with 1 click. But how would you build it from scratch? I this video we take a simple spreadsheet, upload it to sharepoint and build out the app from scratch. It’s easy, but not as easy as you think 🙂
Today’s learning on Patch is to demonstrate that sometimes we don’t have to use Patch at all, and that Forms can be created in a way that gives the control of positioning the objects, but “performance” of submitting of forms
This is the last day in the series on Patch, so I’ve provided links to all the sessions down below.
An Alternative to Patch
The technique is relatively straightforward to execute.
Create all your controls, text inputs etc and place them wherever you wish onto the canvas
Create a form tied to your data source
Connect the outputs of your controls on your canvas to your form inputs so that the default is the value in your forms
Create a button on your canvas
In the OnSelect of the button use the following formula
NewForm(Form1);SubmitForm(Form1)
You can now hide the form.
There are some points to note from this technique:-
You would need to put a little more effort into your “on canvas” controls to ensure that if you had a gallery their defaults would be correctly set. This is no different to what would be the case with the experience when patching
Troubleshooting submission issues is easier than with Patch
You have more options around controlling the behaviour of the input s
How to get to the course content
Check out this post to confirm how to sign up for the course.
Today’s learning on Patch is important as it relates to using a Patch statement to create multiple items. This is a MAJOR difference between Forms and Patch as Forms cannot perform this operation.
Structure for Patching to a Multiple items using Power Fx
The basic structure for patching multiple items is as follows – where CityXL is a data source within our app, and Cities is a table within Dataverse (Common Data Service). In this case the field names are completely aligned between the spreadsheet table field and the database fields, which is why they repeat themselves :-
The Mars Rover “Perseverence” landed on Mars on 18th February 2021 and in the live session coming up we’re going to use Power Platform tech to create a slideshow of images to music.
Build from Blank
We going to build an app from blank which will allow us to create a cool slideshow to music, all about the Mars Rover. Â If you have teams you can do all the things we cover whilst we are together During the session we will – Create a Team – Create a data table – Create a Power App – Create a Cloud Flow – Populate a table using audiene submissions in Microsoft Forms
Power FX has been around for longer than you think. Since Canvas Apps were first introduced in 2016, it has been possible to create them using the in built expression language. Everyone creating them learned the language simply by investigating the functionality, referring to the Microsoft Documentation and the various YouTube channels, Courses and Blogs that sprung up on the back of it.
At that time Power Automate was called Flow, Power Virtual Agents didn’t exists and Power BI was still in it’s infancy.
What’s different now and why is it important?
The expression language now has been given a name, and the name is Power FX. This is important among other things because content will be a little easier to find, but also because of what it means for the plaform. The future of Power FX is that wherever there exists a part of the Power Platform that doesn’t already have a native language then Power FX will become the go-to language of choice.
What this fundamentally means is that learning this language will become essential to learning the Power Platform.
Power FX is a Part of the Power Platform
The video version of Events
If you’re into videos, as I am then you may wish to take a look at this as I’ll take you through the same guide, only you don’t have to do quite so much reading!
Learn more about Power FX here!
Closely Related to Excel
The structure of the way in which you work with functions in Power FX is very similar to the way in which you would work with excel. Let’s take a basic If statement in both languages.
Excel:-
=IF(B3="Apples",1,2)
Power Apps:-
if(myDropdown.Selected.Value = "Apples",1,2)
As you can see from a structure perspective there is very little difference between the two of them. In the first instance in Excel we look at cell B3 and if it contains the word “Apples” then we will return a 1, otherwise it’s a 2.
In PowerApps, we’re doing something similar, only we are looking at the selected item in a dropdown. In this case if it reads “Apples” then a 1 is returned, otherwise a 2 will be returned.
As well as the above the ideas around working with text is very similar
Excel:-
="Hello " & "World" returns Hello World
Power FX
"Hello " & "World" returns Hello World
If you look for the functions around text they are almost identical.
No compiling required
There are lots of reasons why Excel is successful, and one of them is because there is no “compile” operation. You enter the formula and then you get an immediate response. Power FX is the same, and this is great as if you make a mistake you get to find out about it straight away.
In the case of Power FX you’ll also have the ability to navigate directly to the error that you’ve made.
Declarative Logic
The concept of declarative Logic and no compiling are closely linked – when you want to find out why an object is of a certain color, or has a particular piece of text showing all you need to do is to go to the object itself, find the relevant property and this will tell you.
Imperative Logic
It is the Imperative Logic in Power Apps and Power FX that really makes it special – essentially this means that we can click on a button and tell it to do something. Examples of Imperative functions are:-
Navigate – to move between screens
Reset – to reset a control
Refresh – to refresh a data source
Collect – to push data into an in memory table
SubmitForm – to submit a form
Patch – to send data to a data source
Dot notation
The dot notation allows us to navigate through the properties of an object. This could be as simple as
Button1.Fill
Which returns to us a color property, which we might want to use elsewhere. But we can extract many many propertties from our objects, and these depend on the object themselves.
Here are some more examples
Gallery1.Selected – returns an entire record
Gallery1.Selected.Title – returns the value in the Title field
TextBox1.Text – returns the text entered into a text box, and this is important as if we wish to make use of it in a patch statement to create a new record then this is the expression that we would need.
Coming to the Power Platform
This is the really BIG news. Power FX won’t be residing only in Power Apps for much longer and the intention of Microsoft is for it to fill areas of the Power Platform where the language is less well developed. At this stage we’re aware that it will be coming to :-
Dynamics/Dataverse calculated columns
Power Virtual Agents
Power Automate
Portals
Other languages remain
There are other languages in the Power Platform ecosystem and these are likely to remain as they are. These are
DAX – Data Analysis Expressions used in Power BI
M, or Power Query – Used for Extract Transform and Load activities
How to Learn More
Aside from going through Microsoft Documentation, the Microsoft Announcement and the various YouTube channels you can dive into this free course. If you already know Power Apps that just fine – you can head to the Module on Objects, or Functions. Roughly 150 of the 200 demos build from blank and have a Power FX element to them.
We’re now in the watch this space moment and we’ll get more details on how this will roll out. I would expect that the programme in total will be measured in years, however we may see some changes inthe coming months. Overall the message is this – If you want to be successful with the Power Platform then Power FX needs to be in your kitbag.