So this is an introduction to power apps So what we're going to look at over the next 15 minutes. We're going to have a little look at the infrastructure the platform. I'm going to describe how it works, a little bit and we're going to do lots of demos. Please bear in mind that these are live demos on the interwebs so things probably can and will go wrong. I have of course, sacrificed their laptop to the.
The demo gods, so hopefully, they will take that and it'll be fine. So just a little bit about me valenty slide. I'm a principal consultant for a company called Koios. You can probably see by branding on literally everything I'm wearing a known ID by data platform power apps bit of everything.
Log we're trying to workout thinks my fifth or 6 bits. I've done. This videos on bitch, you can see me on stage in various places jumping around onstage like an excited puppy in a orange polo shirt for you ever want to go and look at any of that my blog and all that sort of stuff there as well So what we
Is kind of just an over of power apps? What it is? What it does we have a quick look at the platform and it's a purely sort of web based platform back in the day when I first started writing this. It did have a desktop development environment and it has gone away and that's good 'cause. It did just need to die. It was horrible the web environment version is.
We then going to look at building our first app building apps in power apps is stupidly quick really useful. It'll even do it for you in a lot of cases, which is quite nice and will look at kind of going through there will also have a quick look at the formula language, so power apps is a little bit like who uses power BI.
Dax as well, yeah, cool, it looks a little like dax, yeah, so the way that Microsoft is going with the thing is, they realize that pretty much the entire world that works with data uses excel. Hey guys, just just put that down and come over here and go come up here. A minute and what they're doing with all the news all the languages is basically trying to make them look like Excel formulas.
The access code, but Hey, just look at this and I will look it. Looks like XL isn't that lovely and that's kind of what they're doing with it. So it looks a lot like that look like Excel Formulas, which is good in some ways and really bad in others, and will kind of look at it when we come to it, and then we're going to have a look at this thing called delegation. Now, perhaps is a moog.
Platform is designed for mobile we had tablets phones. You can absolutely ruin. The web and we're going to be doing today and in juices can view it in the web, but primarily it was designed and architected to be used in mobile, so there's this concept of delegation and a sort of a row limit an and I will talk about that it sounds worse than it is.
With it and at the very end of the session. I'm going to talk about things you probably shouldn't try and do with power apps now when I first started using power apps that had been in GA about week and it was like, yeah, you just going to build a really basic application 5 screens. You know create read up search. Update deleted like great went into it 35 screens later and a lot more gray hairs in my beard.
Realize it probably should have beena.net forms app. Yeah, it's really good at doing simple application stuff. But there is a point at which your eyes, you, either hate yourself for it needs to bea.net app essentially and that's what we're going to talk about at the end of the session as well. Alright so I have been has been leveled at me that I am quite fast.
Try and slow down but if I'm going to quickly just wave at me, I will slow down if you got any questions wave at me and we'll kind of go from there Alright, So what is power app so as I said it's a simple sort of powerful creation tool. It's designed for mobile it's designed to have XL like fun.
Um and you've got kind of 2 screen real estate. You can build it and you can build it in tablet mode and you can build it in phone mode and you actually build the applications in those 2 modes. It connects it all kinds of stuff. It's got these native connectors to connect to you can there'll native in the tooling.
Build your own connectors if there are native ones that you want you can build your own. APIs for those and it's cloud based here organisations so it is a little bit of a limitation. But at the moment. The apps cannot be shared externally unless someone it can be validated against your internal Active Directory, Microsoft.
Stuff OK, but that's in a nutshell that's what it is as I said it's this very similar model to power be. I know what I mean by that is, is that the formula languages are nice. It's very web based you'll probably see some similarities in the interface in the portal as you will to power.com it's got a very.
Asian cycle so just to give you an idea when I first at first. I'd working with this. They didn't have data tables. There was no data table component. You had to have a gallery that you set to vertically repeating and switch the lines right down has data tables. Now they're not brilliant. But there so but the written release cycles really quick, yeah, sort of monthly I think the same.
And it's getting better all the time to say. When I first started working with it was really, really raw really twitchy, but had loads of buckets and buckets of potential like power be. I was couple years ago, yeah anet. It's pretty good now and it's getting better. All the time OK, so this first thing I want to talk about is environment, so empowered by you have these concepts.
They are essentially just a logical separation for content so apps connections flow. 'cause you can there's native integration for Ms flow in this as well, and they all live in these environments think of them like workspaces in power be. I familiar with that. Yeah, that is different environments, so they can be used for things like maybe you want did.
Texts maybe you want an area for different business units or you want. Dev and prod you can kind of use them to separate how out however you like OK, so you need a plan to license for creating environment, so power be. I come up to be like wow, perhaps comes with.
Different licenses essentially going to plan one and a plan 2. You do get essentially? What is a plan one license included in most Office 365 skews most dynamics skews as well plan to licenses. I think you have to be on something that E 5 to get those that's included in a few different Hyatt.
Can pay for them yourself that I think it's about $40 a month roughly for a plan to license and there are some things that you can only do with planter licenses. It's a small list of things. But if you're using it in anger, alot, you probably will need at least one person with a plan to license so yeah, creating environments is won.
You can only have 2 production and to only 2 called to trial environments. So kind of. They are what they say on the tin right. You can create trial environment after while it expire you can have 2 of those, and you can have 2 production environments. I'm not sure if this is entirely sure. Still, I couldn't find where you can do it. But certainly when I wrote this slide. You couldn't delete environments. So you have to make really, really sure you wanted.
Because there was no way of getting rid of them, they come with 2 rolls of an admin. Anna content creator role for the for the environment very much like workspaces. Yeah, there's this thing called the common data service. An unknown and another name to Microsoft person described it to me as access for dummies.
OK, so just a really high overview of the environments. So let's have a quick look at the portal shall we say, powerapps.com is where you go.
And when you kind of get into it. This is sort of what it looks like. Oh, no, I currently you're not looking at that. That's useful. Let me just close that there we go.
That one there, yeah, cool so this is the power apps portal so you log in with your Office 365 sort of log in or your active directory email. Normally, sit down the left hand side here. You've got a few different tabs home learn apps create data business law.
And on this front page. You've got you can kind of actually just dive in and start creating applications. So just to start with will look at the app section. So these are apps that already exist so if you get any of your apps here there any apps you built there be saved here now an app here isn't necessarily live OK that's quite?
Again, when I first started working with this, you had an application. You share the application with your end users if you then went in and edited the application and all the editing is done live essentially if you went in edited that place and saved it that save got pushed out to the end user. Yeah, that was insane. These days you can save and publish the 2 separate things, yeah, because uh?
That's kind of a basic requirement of software development right. So yeah, you've got the applications. They saved here they might not be published with anyone.
They're all stored in this tenant and there in this, this environment, so if you look at the top here. We've got the you get default environments. This is our default code environment and the consultant assist app is actually an app that I built internally for Kobo and I'll show you guys that later and then at the top I can click this drop this down and I've got my own little play environment.
Which I've created so I can build other bits and bobs simply because I don't have full permissions in the Cario environment. 'cause I wouldn't want them, Yeah 'cause, you don't want people, creating test stuff in your default environment. Necessarily, yeah, so that's why I've got another environment in there, so from he created.
Rap-up that up, you got the little drop down here and there are kind of 2 different types of apps so you've got canvas app, which is just kind of default app. If you like and then you've got model driven and that's based off of the common data service so the thing with a common data service. The nice thing is, you can say right. I want to create a table call.
Employee for example, and in that employee table, you can create kind of field sets. So you create your fields for for an employee and then in that table you create like a field setting you might say that I'd know first name last name salary something else is the default field set developer then comes in and builds a nap.
Employee table by default power apps will put that default field set on the screen for them, which is quite nice. Another thing that common data service does is that it will let you create kind of verified filter you. There's like an email field or an email data type that you can put on a field so it only accept valid email address is same for phone numbers bits and bobs like.
It is really nice. If you want end users to interact with data or to developers for end user developers if power users to build their own apps and you want to be able to control with the kind of data structures that they're working with. But yeah, that's that's the 2 different types of apps essentially the model driven is driven from the common data service.
So underneath here, we've got the kind of create so we go back to this kind of main screen where we could create apps and there's a couple of different these and I'll go through some of this stuff later. I just want to give you an overview of feel of the environment to start with and then under here. We've got data. So this is the common data so this covers the common data service and he connections.
Kind of thing if you familiar power. BI gateways, yeah, or is your data gateways. If you people similar similar concept right if you want to work with your on premises data. You got have a gateway so that those are manage their you've got your connections that you've got created any custom connections business logic is essentially Ms flow.
So you can create a mess flows and trigger them for within power apps and pass things in-n-out as well, which is quite nice. And I'll show you actually what I did in the Coyoacan. Certain app is we, we have to take pictures of all receipts for expenses. So I've got the app. Let's you take a picture then compresses that picture and with flow copies, it and lands in our one.
She's quite nice, yeah, so you I'm passing the images of that as a blob interflow purses, it through and lands in in OneDrive. It all in sort one little flow, which is quite nice. And I'll show you that a bit later. So if we look at let's look at connections, so these are some of the connections we got set.
So I've got SQL server ones. Some text analytic ones. I was playing with, we got a common data service connection and then. Some other SQL server connections have also got my OneDrive. So some of these connections are actually really cool. In that if for example, in that in that example of where you would take a picture of your receipts and obviously.
To your OneDrive right, not a common one. So when you create the application. You can tell it that these are kind of personalized connections and the first time you ever load. The app on your phone or tablet or the screen. It will ask you to enter your credentials for that service. So then it's connecting to your version of that service, yeah, so the same again.
And I have it connecting to outlook to look at our calendars and again. You want it to look at your outlook. Not someone else is so you have to provide it with your login details so that it's customized an individual to you and you only do that, once and it still securely and all that jazz, but then it's authenticating against you, but also you can absolutely have it with centralized credentials.
Example that's just got some SQL login that I stored against it, so that you don't have to authenticate against the database yourselves. Yeah, it's just a kind of a service account type situation. That kind of makes sense. There's any questions around any of that sort of stuff, so far. No cool so you're either really getting it or really confused hope it's the first one.
So that's kind of just a high level overview of the environment, so let's just jump back into the PowerPoint for a bit will be bouncing in-n-out so don't worry, it's likely death by PowerPoint promise so as I said, you can get data from pretty much everywhere. There's a little bit of a thing in that it has to be read write for the Mo.
So any data source that you connect to have to be read right so you can't have views or stored procedures in SQL has to be tables. You can create your custom data sources, so you create your kind of your own. API and then you rap it in users a swagger rapper and there's it's fairly document.
To do that, so if there isn't a kind of pre canned data source that you want that you need to use for the data source. You need then you can absolutely write your own. As I said some authenticated pass through and some asked you to look in yourself and as I said earlier. The datasets and data sources live in the environment, so they are specific to an environment.
And my default cover environment. The data sources present in there will not be available in my randori environment and so on. And so forth, but all data sources present in all environments will be available to all applications in those environments. So if I create SQL server connectivity in my randori environment, then any application. I create in my randori environment will have access to that connection OK.
Potentially, where you need to do that kind of logical separation of entities that for different applications like OK. So yeah, let's go to look at the sort of types of data sources that we can work with and again. I don't like PowerPoint getting me early there so.
At least once upgrade before I get a new connection.
These are all the types of ones I can create now think that Bing maps is cool share point. I mean, there's you can see this is a big old list. Yeah, I'll see. I'm going to go through them all but there are quite a few as you can see it's it's quite extensive list. Now you see some of these. I've got a little premium marker against them basically that means if you don't have a?
Can't use them so anything with a premium marker against it, you have to have a plan to license to use anything that doesn't premium. Everyone can use OK. From there, so that's in that game. One of the other restrictions of the plan. One and plan to licenses but there are loads there, you know plenty time I never.
She in bed power apps in power be. I so you can actually use a power app to write back to a power. We report you can have embedded so if you've got like I don't know support and it shows a bunch of data sales figures that you can embed a power app that connects up to the same data set and they can look at it go actually know that sales figures wrong, then go in edit it push it and it.
Back into the power rifle, she's quite nice. You can also embed pabiona power app. So you kind of power. BI power app section where he kind of tearing them is a little limited in terms of embedding a power behind power up. You can only in bed tiles from a dashboard at the moment but again that will improve and expand upon.
Any questions on that stuff.
Yeah, so the question was if there isn't a pre kind. Connection is going to cut your own absolutely as I said earlier. You can create your own API. You rap it in us where you put a swagger wrapper around it and then hosted in Azure or something like that, and away you go anymore anymore, cool good so yeah, that's
The connections there are lots, so yeah, just have a play with them really.
So the next thing I'll talk about is the common data service so this is the kind of online version of access. Essentially, it's really good as I say if you don't want to bother spending up SQL DB and the reason this existed essentially this is a power users tool.
How uses don't necessarily are going to know how to spend up a SQL DB? Maybe they don't want to store stuff in it, so they just want a data system there and this will absolutely do that for them. So it's a It's kind of an online version of access. It let's you define sort of field. You can say this filter drop down and it can only ever have these values in it.
Pre validate phone numbers and email addresses. That kind of stuff you can define field groups, which is I said, You should say right This Is This is the default field group fairly on then wants to create an inter update or read screen on this table or this entity. Then they get this default field group slapped on the application for them automatically and you create others so.
Right so you can actually create foreign Keys as well so relationships between the entities. You can also create it from data. So you can point database for example, and import that whole database into the common data service. Again, I slept. Another restriction is you have to apply through license to do this seeing a common theme again generally I wouldn't.
There so I don't use it that much is useful for some things but SQL DB you know excel share point all those kind of things are probably going to be most common places to go so let's just have a quick look at it. It's just tab. No, I've gotta hit a scape and then tab so down here we've got entity.
It's not going to do this is yeah, other permissions credit and that's ever look. If I've got one in this so I've just switched environment have dropped on to my randori. This actually popped up yesterday there. There's a new version of the common data services and it's telling me I need to update it. But I as I was delivering a session on it, the next day, I didn't feel that brave so you.
That will do that at some point if I go to entities here, so these are actually what I've done is imported. There was back in the day and then if you still a thing. There was a standardized one of these you can import so I've imported it. So we got all these different entities are basically just tables, but they've gotta categories you can see a type.
In account for example, we can jump in there, we can then see the fields type. The data type of the field. If it's a required field. If it's searchable will that kind of good stuff, so I can click into that and I can actually see all the properties there, so it's a pick list. The Scripps Pipe is required, it's not searchable.
Etc. So we've kind of got all of this stuff built in here we got any keys. So there's a primary key defined in it, which is great any relationship. So other tables that joins 2, so whether it's a look up so it's a look up for all of these in here. We've got the field groups. So we've got kind of these default so default create so that.
Notes if we if it let me that's brilliant resolution that is down there. If you can see that little bit at the bottom that is a list of all the fields. I think this is probably a replication of casting onto a weird screen, but you can see, there's the list of fields and some of them are checked in and some of them aren't an essential.
That are included in this field group and then this is the default create so whenever you set up a create screen on the account entity and the common data service. It will put with these fields on the screen for you automatically which is alright it's nice.
And then you can have a little look see at the data. I don't know if there is any in this one server little look probably not.
Now is not so but you get the idea so there an again, you can export the data. You can import data. You could even hump out the template if you create a template. You can send it someone else they can import it into their own common data service if they want as well over here. We gotta pick lists so these are some of the predefined pre camping. List that you can set as fields or data types in you?
So is the account status, Picklist and here's the 2 data types for it, yeah, so those are the 2 values that you can put in that field and then if you use that as a data type for a field you can only ever put those 2 values in it, so it really enforces data integrity if you are using the CDs, yeah, so it's kind of a high level overview.
Makes sense. Yeah, it was alright doesn't. It's pretty cool as you say you know just approach with caution.
So that's the common data service.
Let's just get through that.
So building our first app so it's really weird. Resolution isn't it so apps can be built into a phone or tablets or web mode, they can be generated from data, which I will show you how to do in a second. We can also generate these templates. There's these template applications. They good for learning there are even some template application.
Then you can do and I'll show you those so it's good for learning the platform. Generally speaking, they're probably not good for a live production thing, but it's good to understand how they make it will hang together from education perspective. You create apps from scratch and a blank canvas like you would any other sort of development environment so.
So I'm jump out here.
Let's jump back into here, so I'll go to apps and I'll create an app.
Here so do here, yeah, let's do it here, so in fact, what I do is I go home.
And actually what I'm going to do is start from data so at what I can do is I can get it to create me a basic crud applications. Everyone overcrowd means create read upset update. Delete yeah, get it to create me a credit application over any data source just by pointing it at the data source, which is pretty cool. So I'm going to click start from data this is.
Which means it's not going to relax on the common data service going to create?
So it's going to fire up the power apps of editor window here. I could click it. Only one of these data sources, but actually there's 1 on the end here that I know. I want so it would jump down into here OK, so first of all I'm going to create a connection to the data source. So I've got an Excel spreadsheet in my OneDrive that I want to use so I click on my OneDrive.
Often connect I'll scroll down to my parents folder and as a financial samples. This is a file that Microsoft put out for power. BI training but useful for this as well. So I clicked on that and that's now presenting me. The financials table tab in that spreadsheet or click connect now, what that's going to go off and do that is actually going to create me an application.
Me a view and search screen create and edit screen Anna. Delete screen OK, so this is the developer environment. Let me F 11 that is that any better a little bit so this is the development environment at the moment. We're in kind of developer view. But we can absolutely run. It so if I just run. This this is how the application look. Now, this is info.
The bear in mind, I've not done anything to this everyone agreed. You just see me no smoke and mirrors, yeah, nothing. I'm just leaves 'cause. They pulled up. You can see this is a crud application. So I can search so I could say. I want to search for government yeah, and you can see it's starting to cut that list down. Yeah, or I want ENT.
Yeah, so could search which is nice once and it will search in all the fields. If there's if there's 1 of these one to look at then I can just click the little arrow that would jump into a detailed screen so details screen. All the fields in that data source. I can delete it by clicking on the little trash can or I can click on the pencil and edit.
Now I can edit those values, yeah, it's just a basic crud application is detected that it's even texting that's a date type and put a date and date and time components over the top of it. She's pretty smart. I can absolutely edit. This so I can say this is 10 and then click the tick.
And that's that's now push that back to the app and you can see. Now this compounds 10, yeah, so that's the edits view and again if I want to create a new one. I just hit the little plus and again. I've got a new screen and I can add new record and let's you loaded with just point out the data source. It's nice right. The amount of times that how many people would if that, it was a thing your life would have been so much better.
That, he would be in for Maine. Yeah, the amount to settle in ABI environment. We feel that we've got this manually maintain spreadsheet that Bob in finance fills in and most of the time he doesn't break it. Yeah, most of the time it's fine. Can you import that and can Bob edit it and you know can it be real time and all that sort of stuff.
Just given this some point, a SQL database table or even that spreadsheet and just tell Bob to leave it. The hell alone. Right and so done with just a just put in application. So it's pretty smart. Yeah, just pointed data source, which this basic crud application. Any questions around that pretty cool, there, so we're here.
Open environment a little bit jumping ahead of myself a little bit, but all good. So this is our kind of our canvas here that we've got the application on you can see we've got kind of a text box at the top here, so you see at the top you got this formula by this and this is where the code lives as I said it's very much like Excel formulas.
If I click on the little check box here, so he's got the submit form function so there's this concept of a form. This screen is set up as a form is set up as a as a and in certain edit form. I think it is, and it's just let you submit form. This form and it will post all those updates for you automatically back to that table, which is quite.
You can see down the right inside here. We've got all the source data properties of color formatting. All that sort of stuff if you want to see a few more these options. We can go into advance and actually see them. Broken down a bit like a properties window. Visual Studio anyone else could developers, yeah, so this is your properties window, yeah, with all of your very.
It looks like someone's trying to break into the side of the room. Yeah, oh down the right inside here and that's all editable configurable as you like OK, one little weird thing.
The power apps doesn't have that many of bent. It's not really an event driven thing. It does have an event so if you look in the top left hand corner here. The thing I've got selected in the Dropdown says on select and that is an event. It's a property. We literally there's kind of 2 events in the whole platform. There's unselect and on changed and maybe.
It's kind of there's not really that many events and the reason for that is that everything is live all the time so if you want something to dynamically change. You have to set that property to what they call a my brain is gone. It's basically a variable is going to come to Maine. But you said it to the value of a variable you then and then to change the.
The value of that property you change the value of the variable rather than changing the property itself and then that flashes through. But everything is live all the time that's good in some ways bad numbers. If you got an application at 25 screens and you're using one variable in all 25 screens and you change that value in one place it all 25 screens gotta. Refresh and do they work again? So I get a bit grindy?
Leave when you editing it in development, yeah, so at the moment. There's I mean. You can't see any data in there, because this is an edit form, but if you just had a basic data table and you're in edit view the data is there is live so you gotta be careful about the connectivity and the way you work with it. There's a few things that need need modifying but it's getting better all the time.
Any kind of questions on that stuff, so far hi.
Like a label or something? Yeah.
Yeah, so you would sit there like if you wanted to do in a like a label. You could go up so sorry. The question was can you create kind of dynamic calculated columns in the app and absolutely you can so like if I wanted to change the label of financials. I could sort of do here add a bit of text and then add the value of sales field.
That I've got a reference from the car definitely it'll be once the failed code.
So it says card sales data card 2 OK.
So sales.
That car 2 dot display field or display value sorry I think.
One of these.
Try let's try it destroyed a field. Yeah, they go so that's kind of stuck there. If I run that then but you see what I mean, right, I can you can tag values in from the fields there's nothing in there at the moment but you get the idea you can take that easy and work it out dynamically and actually you can post that back as well. If you want to back to the database.
So, like yeah, so let me I'll do is I'll jump back into the story anymore questions before I move on.
Yeah.
Absolutely yes, there's a GPS component built in so you can actually see where they are returns and that's what I'm doing a minute of throw up like a another blank screen or truck. Some components on a more ever play with it. You can also access the camera as well. Yes, you have the camera take pictures and lots of cool stuff, yeah, so let's jump back into.
PowerPoint for second.
So so bill first that will go back there, so just a quick overview of the formula language, so as I said it's XL like formulas and it's kind of designed to kind of behave like that, so there's a good feature. The sort of the documentation on it's much better now when I.
Even the documentation kind of are so it's much better now filled in excel like formulas. They said there aren't that many events, but they do have these things called rules and I'll show you that in secondary century what you do is you set up a rule that says when this thing happens. Put this application in this state, So what you do is you created.
Bookmarks power be. I yeah, very much like bookmarks. In Perry, OK, so you say you create your create state that says this labels blue and this box is over here and this thing is invisible and then you say right when this thing happens implement this rule so put this application in this state so when the when the?
Fox goes over 10 implement rule. XY Z, which puts that label to blue and close that box up and hides that one, yeah, so you sort of set these predefined states and trigger them based on rules and that's kind of the extension to the the events essentially 'cause. There aren't that many events. But yeah, so that's that's there, whatever look at that in A.
Um collections in context that was the one so context. That's the name of the variable sorry so you have 2 types of internal data structures in power apps. You have a collection in the context. If I said variant array who would know what that meant couple of people so essentially.
Action is A is a very array now, what I mean by that is. It's a list of things that can also contain other things, so collection could just be a table of strings or coupled with a couple of columns. In it or it could be a list of values one of them could be a string one of them could be a collection, which then has other things in it, so you.
Things yeah, so in old school programmer lingo. It's a variant array is just array. List the table. A collection of stuff. Those are persistent across the whole application. So it's good for moving data between screens or having persistent data across all your screens. Contexts are local variables, so that.
Just a string or in or die or whatever and noise are specific to the screen. Specific not Pacifica. That's an ocean specific to the screen, and they are. They leave that screen. But you can pass them between the screens. So there's an option when you navigate to another page to pass it in a variable and then you can grab that on the other end and use it.
In an example of an apple bill. I use that to pass through a user ID to propagate security through the app. So when you clicked into the next green. It passed through user ID and moved it through, but you can use if anything like so there's lots of ways of working with data. Now, we saw that kind of pre canned form. Those edit and update and delete.
Things you can use I find them a little twitchy. I don't. I like control control freak. So I like to know what's going on So what I would normally do is actually deal with the data myself using Patch or update or update if this kind of lots of ways to get to the same end result. But essentially these let you edit or update or delete the data for their.
Location you have the drop down box in the top left hand corner, which is the property and then you have the little formula bar so let's just jump into one more thing. So this is a genuine example of one formula. I wrote in the application to get it to do with thing so you can nest it.
And essentially what it does is it reads from the inside out. So it does. The thing on the inside first and then does the next thing outside it and next thing I saw it and then basically you get the end result? Is everything compiled from the inside out that looks horrible. Yeah, don't do that to yourself.
Do that it's a bit nicer to read, yeah, so that's it's a multi statement formula, yeah, so you can have multiple statements in that same formula. I believe this was an on click event or an on selected event. Sorry so I'm saying some values and variables. I'm then doing settings.
Context doing some other stuff but that looks a bit nicer to read write so shift and enter as your friend don't don't do that top ones yourself. 'cause I did that to start with again. You couldn't do shift into when I first started working with it, but you can now so yeah, don't do. The top one 'cause trying to try to find a bug in that is not fun. That's why I have several gray.
Trying to find bugs in that sort of stuff. So yeah, shifted enters your friend so let's let's jump back into the environment. Let's go and create a don't care about blurry things that's going to create a new app and let's just do blank were doing tablet layout.
Carpet layers essentially what you'd use if you had if you wanted, it into the web want to get more screen real estate and you get a bit more. A little bit more real estate here. Yeah, that's obviously not what you work with when you're sort of running it. That's what you see full screen. Yeah, because its development of all the other stuff around the outside of it.
So development really easy. Just go to insert Gophone components so there is a data table is not great 'cause. It only shows data and you can't embed other components in it, so you can't put buttons in the Rose and you can't put like nice things like Dropdown lists and all those kind of things just text essentially.
If you want all that noise rich functionality and use a gallery and set it to vertically repeat in gallery so appear gallery vertical. So now I've got my gallery and then what you do is you sort of make the each of the things a little skinnier. Thusly then you can have a row and you can add more columns into it and you.
You can embed other components in it, and that kind of stuff and it's actually really nice because every row has a context. So you can do with this stop if you do this dot and then reference field name or this dot and get the whole row context and all that kind of stuff. So it's contextual once you're in a row. So if you are put in code on a button in that row you can reference that role or any element of that row.
That's that's quite nice, yeah, we had a question about GPS didn't we there was a location. I think it might not be a component. It might actually be a function thinking about it, but let's stick a button on.
Down here and I believe so you see at the top here, we got unselect so that is our event. I think that is the only event that we've got for a button which is useful so you don't have like a button up button down or that kind of nice stuff. So we go to a button and I believe there's a I could get location or something along those lines.
Vacation dot long that yeah, so that we use the GPS. The application has to be approved. Obviously, to use those elements of your phone. But you can get along. That's in the attitude and all that kind of nice stuff. So yeah, we yeah, we've seen it used it. I haven't actually said. We have done it sales. But I've seen it used where there's a there's a sample app on the mark.
For a guy to fill up vending machines and he kind of follows his route around and all that kind of nice stuff. So yeah, that's that's 1 way of doing it. So let's let's go back. Let's just jump up here. If 11 back a second what I want to show you is the consultant just to give you an idea.
She can do so I'm going to show you this concern assist. Hopefully this still works. I haven't open this up in a little while so this is an application that I built for the cocio team, so this is like a pop up screen again. This was done with the states this is showing height state and let's just let's you save your home address but will just obviously save it here so.
Yeah, so I so this is our kind of our homepage. For our app. We I've also there is no concept of animation in power apps at the moment but you can make it work with a timer. Yeah, anyone that's used to do, I used. I love this and when I first. I work with that loved it, because it reminded me when I first started writing software.
Right back in the LV be days when they weren't nice things like animation. The execute on timer left equals left plus one. And all that kind of stuff and it really gave me that old school development 5. So I was probably geeking out. I mean, other than losing all their hair and gaining gray hairs. It was kind of quiet nice and reminiscent of that all kind of development environment, so there's not you know, even if they run.
The functionality you can make this stuff work, so I also create a calendar review. So there aren't there isn't a calendar component. That's a gallery with conditional formatting conditionally hidden pictures or that goes with that is actually my calendar. My outlook calendar and I can see if there's a star in there.
Why she likes chargeable work for Maine so I've got a little thing that looks at my calendar look for any appointments looks for a specific word cozar booking system puts an appointment in my calendar with specific format text. So I could go and look for that. And if there is one of those in there, I know I've got charge work that day and I can I? Can I can kind of click between these different ones. So we've got the different sorts selected thing?
I can search for a given client or project at the top and that will take me to it or I can view the detail of sort of things I click. View detail in this one then takes me into this screen, which is then AA more detailed breakdown of my calendar. So I met sequel bits. Yeah, today, I can click on here this will pop open tray.
Sing my things went out, but this is hooked up to the Bing maps API and I can give it up from a 2 so if I go from reading and I go through where I will. Manchester me feel around for minute. Manchester and then click recalculate so that's the Bing the Bing API.
And it's told me that traveling from Manchester to go is 197 miles. Take me 205 minutes because there's like traffic and I can expense that French and 77 pounds. Well, yeah, so yeah. That's again. That's all built off the Bing maps API, connector that I've connected to in here.
And I can even view the route so this pops open Google Maps for me and actually shows me. The map in Google Maps. So I know what the roots going to be lucky if I want to drive.
Bottle pop it open on the phone. Yes, it don't know sort of magic here, there, we go let the little Google Maps says I should do.
I can even view nearby hotels. Seattle open Google Maps again and show me all the hotels around where I've told I'm going, yeah, so it's not popping up hotels and should be there on Google Maps, which is quite nice. This is all just a custom stuff. I've built in yeah. It's nothing massively groundbreaking. But it's quite a nice thing to be able to do, yeah, so that's that.
Is the little location button so I could say use my location never got it. That's actually filled in for me using the location component know she's quite nice, yeah, so that's that's kind of that screen and then the final one is the sort of expense part so this is the camera. So I don't, it might not be able to see my camera. It's ever look.
No, but I can basically tap here.
Should it might not work if the cameras, not working but essentially it creates a collection of pictures and then I can save them all up to my OneDrive using Ms flow from there, so let me show you that, so we've got business logic here and then flows.
So I've got 2 flows in here when when this finally loads. So I've got XP can expect many so XP will export one picture so you can export picture individually or get expect many which will do all of them. I've collected so if I go and look at X pick this opens up Ms flow.
We can edit it.
And it literally goes takes the output from power apps, which is the blob of the image does a little bit of conversion to change it into an actual picture that I can save in in OneDrive and then actually creates the file in OneDrive and that's just one flow. So I've taken a picture grabbed it landed in OneDrive pretty cool. Yeah, it's quite nice thing to be able.
Didn't take me that long I mean, I built I built that whole application in 2 or 3 days. Maybe and to end with a bit of bug testing as well. So it did not take all that time until so yeah. That's kind of power apps in a nutshell really. Let me just jump back in here. I don't think there's.
Yeah, so the other thing I wanted to talk about it got about 5 minutes. So it's going to be quick, but there is this thing called delegation as I said power apps is a mobile platform and the So what they've tried to do is essentially say you do not want your mobile phone processing. A terabyte of data right or thousands of records of data, it's a mobile phone is not really designed for it so.
Who is create the system called delegation of? What that does it says right? You want to go and look at this table with a million records in it, and you want only records where the colors blue and you only want records where the month is January. Now I don't really want to have to do that in the application, so try and pass with that logic down to the data tier delegated.
The data test that delegation So what it does is it basically tries to pass that down to the data tier data does the work gives you the result back brilliant idea in theory in execution. Not so great, so essentially? What happens is that not all data sources are not all data sources support delegation so if you get it.
What it does it goes off tries to get all the data and load it into your app, however you're only allowed 500 records in your app by default. There is a setting an experimental setup that 2000 but if that data sources got more than 500,000 records. It doesn't pull them in and usefully it doesn't really tell you about.
He did when I first day working with it. It's a bit more verbose. Now it gives you a little warning icon. So yeah, that is doesn't support delegation. You stuff straight away. Even if the data source does support delegation. There, a bunch of function that do not support that again. So things like group by doesn't support delegation so if you do a group by.
So formula breaks the whole formula, so as to try to suck it will end in group within the application. If there's more than 2000 rows well. Guess what I'll pull in 2000 group those and give you the result and I might tell you about it if I'm feeling lucky so it is a bit of a pfaff so be really wary of delegation when you're working with applications. There is a work around.
Revised in the 10th hour before delivering a nap the state if the data source supports delegation. But a bunch of stuff. You want to do to it doesn't there is this work around on my blog essentially involves sucking the data into collections. 500 records at a time and then you can do whatever you like with it. Obviously, a certain point, the device starts to slow down.
But it does work, so yeah, there is a work around have a look just get it. If you Google 500 limit power apps. You'll find me. I'm actually on the first page on Google for that. So yeah, that is that is a thing and then just finally as I said there is absolutely a tipping point where unless you absolutely hate yourself, you should say I could.
Let's make ita.net application and you will find these yourselves, but essentially there's no net. There's no animation. All data sources have to be read and write delegation. Obviously, an issue as well, potentially the events are limited. But it's kind of a pro and a con you can kind of deal with these things.
And the other thing the other real big things you cannot share the applications to anyone outside your organization. They have to be either in your organizational. Federative your organization, so they can authenticate likely word with Office 365 or Azure AD, so that is kind of meh. Unfortunately, that is time if you have any questions just come if I.
Around I'll stick here for a little bit other that thanks for coming guys. Oh, and you have a good time.