Model Driven Power Apps Beginner Tutorial [Full Course] 2024 Edition

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hello and welcome to my complete course on how to build a model driven power app this is the amount of information I would normally cover in a full day of training so you are getting enormous value watching this for free on YouTube there are some supplementary materials if you'd like follow the links in the description here if you'd like to get those I am going to show you how to build a model driven app end to endend our scenario here is building out an app that can manage a recruitment process if you've watched my previous full course on model driven apps this is a whole different scenario with some different components I didn't cover there all fully updated so you'll find additional learning here and additional skills to practice if you're new if you haven't come across my tutorials or my other course before welcome I'm very glad you found me either way if you find this valuable and I really really hope you do CU you're going to learn how to build an app end to end here please give this video a like that's the thing that really helps it reach the most people and I would really like to help more people learn about how to work with model driven power apps and how to build them and if you feel so inclined please give it a share among your community of people who you think might also benefit from this so let's get started with a demonstration here of what the app is that we're going to build and why would you choose a model driven app in the first place so here's my opening welcome screen what we've got here is an application that can manage a recruitment process from end to end I've got a number of things on the screen here which we'll come back to this is a custom screen that we can put together just to give give it a bit of a printy pretty front face although I'm not actually winning any Design Awards here but we have a navigation menu down the left hand side that navigates you through all of the different tables in the app and so a core concept of what we're doing with model driven apps is actually building out something that is a database of some kind with tables and different table relationships in it the app we're building out here is relatively straightforward with just three tables but the the concept here is that you can build this out to be an enterprise-wide application you can use this to build Mission critical applications it's something where back in the day people might have used access as a database to do something like this this is way more sophisticated maybe people are building apps using SQL tables those kinds of things as well so this is a complete system that allows you to build out your data model with no code you do not have to be an expert in databases to be able to do this and the front-end user inter that goes on it all in one thing now this is a premium capability within the power apps platform you will need every license sorry you will need every user to have a premium license so you've got to be thinking about use cases here that actually have high value in managing an endtoend business process and where your data needs to be stored in a secure scalable way you're looking at applications here where you might have thousands tens of thousands of rows dozens hundreds of tables with different relationships automated processes needing to be able to have different security roles to give different users in your organization access to what they can do in the app think about things like CRM applications or customer service applications things that you might use to manage a whole permit application process a grants management process or for instance here a human resources process these are Big applications substantial applications with a lot of security data and process in them if that's the way you're thinking you're in the right place for model driven apps so what we're doing here is managing a list of active roles of jobs that we're recruiting for so we've got these roles in the application we've also got a database of contacts in here all the details are fake these are not real people not giving away anyone's real information all of these people who have applied for jobs or put in applications of some kind and then we've also got applications in here if I go into one of these you'll see that there's relationships going on between these tables so an application here is an application for a role and that if I click through will open up let's do that that opens up the actual rooll and from the role I can see any related applications this is a on to many relationship one role can have many applications associated ated with it the application also has a candidate and if I click through to the candidate here is my person who's applied for the role and we've got all of their details there we can navigate back again we've also got here a business process flow across the top which is guiding you into to end through the different steps and stages that have to happen we're going to go through screening into viws reference checks right through to making an offer so we've got three tables here one contact one person could apply for many roles a role is going to have many applications and the application is the part where we're going to manage that endtoend process all the way through we've also got a co-pilot on the side because it's 2024 and it's Microsoft of course we've got a co-pilot on the side that's going to allow us to ask questions about our data and work through all of those things in natural language but we will come back to that all right what I'm going to do here now is take you through how to build this application from end to end I am actually recording this video in real time I'm not even going to pause or stop for any of the spinning wheels cuz I want you to be able to work through this with me and learn how to build the app I'll put chapters everywhere here so that you can jump ahead to what you need to do and then you can pause or go back over things if you like don't forget in the link here there's some extra materials that you might want to get and give this video a like if you're going to find Value in it let me show you first what you need in order to sign up to get started with this which the easiest way to do this is a power apps developer plan now if you've already got access at work to a power apps environment that has data verse in it you're good you can skip this chapter but you might want to watch this just in case you can build for free and you can learn for free by going to this link here and signing up for a power apps developer plan now this is very easy all you need to do is click on the start free button you can pop your email address in there and click Start free so let's do that agree to the terms and conditions and start free and that will navigate you through into the power apps maker experience takes a couple of seconds I think it brings up another screen where it might ask for your contact details which you can just skip over if you don't want to do that it brings you up into this maker experience where you have got an environment at the top here that is just for you this will deploy an enir environment that has data verse in it which is what you need in order to be able to build out the application please make sure that you are sitting in something here that says something like this with your name and not the one that says default you will not be able to do the whole tutorial if you are in default just check that you've got this right if you're using your work environment you should have an environment that looks like this and if you click on tables on the side here you should be able to see a whole bunch of tables in there that way you know you've got data verse and you're good to go there is one more thing that we need to do before we get going with everything bear with me it will be worth it we need to put some settings in place for this environment to make sure that you're going to get some of the really cool new features that just make this app amazing so what you need to do is go to another tab in your browser and you're going to go to this website address here aka.ms P Pac which is short for Power Platform admin Center you get a lovely welcome message here and we will just zoom this screen up a little bit more you're going to click on environments over there on the left hand side you'll see I've got quite a few things going on here uh to make this work click into the environment that you just created that you're working with and then click through to settings and there are two lots of settings we're going to work with here this is partly around enabling some of the new things with co-pilot and also setting up some of the search functionality that I highly recommend you definitely want so we're going to click through here into product firstly go into behavior and you're going to set this to the release channel here says semiannual Channel by default we're going to choose the monthly channel and click save I'll just explain that while that's going on that basically means that for this environment as Microsoft is releasing new features and pushing things through you're going to get those updates much sooner in a real production environment once you've got this app being used by lots and lots of people in in your organization you might not want to be doing that but for Learning and experimenting you absolutely definitely do want to get your hands on those things so navigate back in that breadcrumb trail we'll see this type of experience as we go all the way through of being able to navigate along here and again click into product in this time you're going to click on features and there are two different things we're going to do here inside the co-pilot features here this one is you're going to choose allow users to anal data using an AI power to chat experience we want to switch that one to on that's the thing that will enable the co-pilot that we saw earlier inside the application and you definitely also want to toggle this one on here data ver search make sure that that is on that's going to give you an experience where you can do Global search across everything in your app scroll all the way down you'll see there's a lot of other features but that's a whole other world of things that I'm not going to go into right now and click save on that one and then once that is saved you have done all of your settings see I told you it wasn't too pain oh no I tell a lie there is one more sorry we're going to go back in here there is something else we want to do here which is set up your auditing because your app can actually have automatic audit loggings timestamps of who changed what and when which is a really useful thing to be able to do so in audit and logs we're going to go into audit settings click on start auditing and save and now now you're done with the settings I'm just going to check my notes here and make sure that we've got this right this time features and settings yes okay now we're going to get right into it and start with building out our tables in dataverse so you need to navigate back to make. Power apps.com if you get lost at any point or if I say Return To Your solution this is the site you want to be at make. Power apps.com always make sure that you've got that environment selected at the top here first thing we're going to do is navigate through to Solutions on the side a solution is basically a bucket a folder if you like where you are going to put everything that you build into there so that you can package it up and move it around so in a real world scenario with model driven apps remember we're building out things that are really Enterprise wide critical applications here you would be going through development user acceptance testing and production and this is how you can move your application around also while you're building it just gives you that visibility and Clarity of what you're working with and you'll see as we go through this all those pieces being built out in that solution now that's a lot but it's actually really easy to do new solution you're going to give your solution a name here which is Recruitment and we're going to select a publisher here you're just going to for now select the CDs default publisher you can if you like I won't do this it's not important enough for the tutorial we're doing here you can click new publisher create one with your name and choose your own prefix if you want to do that you don't have to this is good enough for where we need to be right now and then just click create give that a second with the wheel just spinning and then that will come up on the screen here where now we've got our solution there's nothing going on this will look quite different by the time we're finished because I've got my solution here and down the side here all the different components at the moment I have no apps no flows no tables that will not be true by the time we're done we're building here a database on Microsoft dataverse and dataverse is the heart of model driven apps if you're building a model driven app that is where you're going to be building all of your tables and relationships and structuring out that data relationship so the first thing we're going to build here is this table around the roles that we're looking to hire for including all of the different columns that we want on that table so we've got a Rolls table that includes what department it's in who it reports to what the status of the role is so let's close that down come back into the maker experience here and inside my solution I'm going to come in here and say I want to create a new table and then we just need to give it a name so we're going to call this one not Rose roll roll and you'll see it gives it a plural name automatically you can correct that if it's not quite right and we also want to select on enable attachments now there are some Advanced options that we want to enable here as well so the creating of a table you can just give it a name and move on but we are going going to check some of these Advanced options cuz we'll pick these things up later as we build out the application so what we want to do here is click on some of these things the first one is track changes which is that auditing capability that we uh put in before as well as the audit changes to the data we want to leverage the quick create form if available that will make more sense when we come back to it and we also want it to appear in search results make sure you've got those four boxes tick and C save so now what happens is this opens the home navigation if you like for this table so I'm still inside my solution which is what's going on over here but now there's a table in here called roll when we come back and finish this that will up the count to one and the table itself has got a bunch of different things so we've got columns that we can create so that those are the things like the reports to and the department and and the level of the job or whatever else we want to be doing and then forms and views that allow us to build out the user experience so let me jump back into my application before this is a view a view is a grid or a list of rows if I go in and open one of these things this part on the screen here is called a form this is where we've got that view of a single I use the word view to explain form but it's where we've got that it's still the right word we've got that view that enables us to see all of the specific things about this one particular record in the database so that allows us here to create forms and Views we're not going to worry about charts and dashboards in this course we're really going to focus on columns forms and Views and also relationships between the tables so these are the core components so let's start building out the table columns as a starting point we can click here what is going on here you didn't see me do all that did you so the thing with data verse is that when you create a table it does all this what I like to call scaffolding that goes with it so it's got all of these things in here that are managing the auditing and security and you do not have to build those yourself this is what we start to mean by low code and not having to really understand databases in order to be able to do this if you've got your relationships a lot of this stuff is done for you so we just go new table rooll and it does all of this created by created on Modified by modified on who the owner is which is going to manage the security which we're going to get to right at the end around who can read write edit delete the rows in the table even write down to individual columns on the table the status we can have things that are active or inactive so there's a lot of sophisticated database functionality going on in here that you just didn't have to build it's just done for you if you've worked with SQL or something like that you'd be used to having to build all of this stuff out you don't have to do that so we're going to now add the columns that we want to add and I'm just going to sort of follow along on my notes here to make sure that I get all of the things in the right in the right way so the first thing that we're going to do is to add a column for the department so we're managing recruitment across a whole organization here so we're going to call this one department and then you can choose what type of data it is so as we go through this course in these three tables I've designed it a little bit that you're going to get a decent idea of some of the most commonly used data types but you've got all of these things here we can have text which goes into just sing line of text through to Rich Text formatting and special text properties that have things like email and phone number qualities that you can use we can create numbers generally speaking for most business applications whole numbers or decimals but some other sophisticated things there as well dates and times we will certainly be coming back to lookups work with seeing the relationships between tables we'll come back to that and for now we are going to create a choice so a choice is a drop- Down list of options where you want to be able to say we want someone to choose from the sales marketing customer service department not just type in whatever they want now it recommends here that you sync this with a global Choice usually you would do that I'm going to do a little bit of a shortcut here to make it a bit simpler and in the next part when we create the next table we are going to come back to this the thought process here is going to be am I going to use this Choice again so on my table of roles I've got a list of the Departments and if I want to use that on another table somewhere in my application or even if I think I might you should choose yes here because then you can reuse it you won't have to do the work again and you can also map those values across different tables if you want to do that I'm going to do that one a little bit later but for now I'm just going to choose no and we'll create the table here so what we need to do here is put in some options for the choices each one has a label which is the piece that's visible to the user on the front and a value this is the technical schema value that sits underneath you don't need to do anything with that just know that it's there it's got like a unique technical value schem of value sitting underneath it sometimes that gets used in some of the automations and things that we're going to look at later but just leave that as it is so go through and do these choices and if you're following along do the same choices that I'm using here because if you grab the spreadsheets that I put in the GitHub repo that's linked in the description I've given you some spreadsheets that you'll be able to use to import data later which makes your app look much better if you use the same values that I'm using here you'll find that process a whole lot easier sales marketing now I've got to get it right myself otherwise I'm going to be in trouble when we get to that point sales marketing Finance operations and customer service okay and you'll see here that you can move things up and down we can choose colors we are going to come back to that or not going to do that here but if you like to choose colors um by all means that won't affect anything else later it'll just make your app more colorful so go ahead and do that if you feel so inclined all right uh we're going to click save so we've just set up our first column there's a lot of talk there but there wasn't a whole lot of work work so in the roll table we've selected created a new column and it's just popped up in there which is the um which is the department now you notice I didn't put in a column for the rle name which is like sales manager account manager or whatever because the other thing that the system has already done for me is given me a primary name the primary name is something that you want to use wisely that's the thing that's essentially your heading it's like the title of the the record or the row so that in this case the name of the job rooll you might want to use it including an ID number we'll have a look at that as we go through and the implications of that um but that's that's where the the name is there so I don't have to do that so I've got the name and the department I'm now going to create another Choice column which is the roll status now if you want to put in a status for something in your application which is what I'm doing here my roll status is that the roll is either opened or filled it's a good idea to not just call it status because out of the box I'll just cancel out of that for a second here yes I want to close that you'll see that there's already a status field in there that's the one that's used to make a record active or inactive inactive is like a soft delete so you don't want to use the try not to name it the same as something that's out of the box it's just going to cause confusion later so this one is actually the the role status which is my particular way of um of of putting the status in that's not the way the system status works you can put descriptions in here about your intent of how to use these it helps if other people are collaborating with you on building the app or if you come back into it later so this one is also a choice and this time I am also going to say that we don't want to sync this with anything else and I'm going to change my options here let's just close that down into open and filled now this time I am going to choose a color I would highly recommend here that you choose colors that are pastel light colors because what happens when we see them in the application in the end if I go back to it here in the rolls you will see that shows up in the application in the view over the top of the words and if you choose something that's really very bright it gets a little bit harder to read so you'll see I'm picking similar colors here also going with something that should be uh good for accessibility by not using uh red and green together so we're going to go with a bit of an amber color in there fulfilled there we go and then I can just click save you'll notice there there was a default choice you could choose so if you wanted to say every time a roll is added the fa is that it's open you could set that there that would make some sense so that's something else that you can do all right we're going to put in another column here and this is going to be the first of our lookups or relationships that we've got happening in here so I'm going to put in a column called reports to now this is going to look up to the hiring manager and the concept of a look up here is that it's like a little magnifying glass again let me let me bring this one up and uh and show it to you in the application if I come in here here and say Here's my account manager role the reports to this is the lookup Behavior here it's like a little magnifying glass and this allows me to search for and find other people in the system or other records in the system in this case what we're going to do is use the entra ID forly known as Azure active directory this is actually because it's Microsoft thing it's actually connected to your Microsoft 365 all of the users that are in there in that whole thing that's called entra ID which is what manages all of your users in there so let's just close this so what we want to do is create this column that's called a lookup column which does that type of behavior and we are going to look up to a related table now you can if you want use the contact table in here you could look up to you can do this however you want if you wanted to create a custom table for managers or something in this scenario though in a real world scenario you most like likely to do this this would actually connect to that person's record in entra ID and then if you wanted to be sending notification emails updates and things like that it's actually got all of that detail that's in your as your active directory enter ID with their email and contact details and Reporting hierarchy so it can tap into all of those things so it's a really useful thing that you can do in there and I don't have to build that table out now in creating that lookup that's also created a relationship between the two tables we'll come back to that shortly and you'll see that it's also going to be putting that into my solution so you'll see here I've got two tables in my solution now because by creating that lookup it's actually brought it into the solution let's go and have a look now at the rest of what's going on so if I go back a navigation menu this is how we do this when we talk about the breadcrumb trail there we're going to go back into the roll we're going to create forms and Views but let's have a look at the relationships that are there and again wait what we didn't create we didn't create all of those things this is that same stuff that happens when we build a table is that when we enable the table to say that we want it to have activities associated with it you get a whole lot of other things in there we'll see that shortly but even without that we've got a whole lot of things in here that are relationships to the user table in the system so all of the logged in users because that'll allow us to track who created it who modified it who the owner is you start to see why this is not the same as building something in Excel or even SharePoint this is very rich in its security and auditing and tracking capability and we're going to be able to control right down to the last column who can do what with what so this is part of what you're getting when you're paying that premium to work with a data verse database application rather than putting things in spreadsheets and SharePoint lists so let's go back actually I didn't show you the thing I came here to show you let's go back into the relationships so we've got created by Modified by all of these things but we should be able to see here's reports too and this is a relationship a many toone relationship with the micro Microsoft entra ID so there's a core concept of datab Base relationships here one to many or many to one they're actually the same thing depending on which table has the perspective on the situation so this one is set up in that there are going to be many roles that can be pointing to one reporting manager because a manager could have many roles reporting to it so that's that idea back and forth you can also create many to many relationships that's a whole other C of worms that we're not going to get into here so we're going to focus on the one to many and the many to one uh for this course so let's navigate back to the role and now what we're going to do is build out those forms and Views those experiences that are now the user interface experiences that sit over the top of this so the first thing we're going to do here is click on edit to create a view and this is a little bit of a shortcut that can help you with sort of putting all of the things that you've just created in there at once so I'm going to click here to see all of the columns and you'll see there's a lot of those I don't want to call them junk columns because they're highly valuable but from a front-end user point of view we don't need to see all of that stuff so let's select all to unselect all of them and then what we want to put in here is just the things we want to be able to see in the Upp application so the name the title of the job uh we are also going to not check on roll this one here is actually an ID column that will give you um the the sort of unique ID which we we don't necessarily want to do in there so we're going to put in just the name and then we'll scroll down to we also want the department the owner who it reports to and the role status so those are all of the things that we clicked on in there love and then if we go back into here what we get is an option that shortcuts things a little bit with putting them on the forms and Views which is this thing here that's called update forms and Views now you might get them pre-populated in in there if they're not already which is what I've got here just Dro down and the ones we've just selected there are all there so we can now just click select all click kind of back into this part to to apply that and then we're going to click update and what that's done is put those things on the form and the views I'll show you what that means and then when we do the next table we're going to do it the manual way just so that you know what you can do if you want to be able to do that stuff yourself um okay this is an error I haven't seen before but I did say I was going to do this in real time including all of the errors it just says doing the update button is going to work again there we go all good just read what's on the screen sometimes you get those little glitchy things so that's all done so if I go into my form here and let's have a look at the form that's called main I'll come back to that in a moment what those things mean this is this display so let me show you the final experience of where we're going with this so this is where I look at the role we're going to build out the bottom part a little bit later so we're just doing the top part at the moment where I've got the name owner Department reports to and roll status so that should come up here here we go name owner Department reports to roll status you can drag these things up and down we're going to do a proper form design uh in the next section so don't worry about that too much now these different types of forms the main form is that one that is the main form there are other things here with quick views and cards which we will have a little bit of a look at the quick view later but the card we're not going to worry about that that's not used so much the other thing we've got here is the views and so this has updated a bunch of views in particular the active roles view so again let's just go in and have a look at where we're headed with that so if we come back here this is our active rolls view which gives us the columns that we've got in here so if I close that down again we'll give this a second to load up you'll see that we've got those in there as well so we've got name created on Department owner reports to roll status and we can change those things around if we want to let's make one change here so you can see how this works if I want to take this one and move it around I can just grab that and drag it across to the end so I've changed the order of things there and then we've got options at the top here I'm going to click save and publish so we've got two concepts going on all the way through here the first one is that we save changes publishing kind of pushes them through to be live at this stage that's a little bit meaningless because we haven't actually published an app yet but I've just kind of got to the hab you could just click save at that point but I've just got into the habit of save and publish it's the the way that you're most likely to do it as you start building things out now we can also create filtered views this is a view of all of the active roles like all of the things that we've got in progress at the moment and active in this state means this idea again let me go back to the application here that they're actually not necessarily like they are still filled but we haven't deactivated them so let's say I take something like this one here the system actually allows you to this is outof thebox stuff to say I want to deactivate a certain role and then that means that that one is now sort of it's almost like you're hiding it away in your archive it's like an archive type functionality it's not deleted but it's also sort of off the main part of things and filtered out of a lot of things you can automate that process as well if you want so this notion of active is all of the things we still want to see in front of us but let's say you wanted to be able to filter this so for instance I only want to see all of the open rolls I don't want to see those ones that have got the filled status in there so we can do that here so what we're going to do is say let's do a save as and call this one open rolls if I can type and click save and then what we're going to do is put that filter on it because that is basically a view and this is a very Excel like concept now that we're going to filter by the roll status so we can click on that I am going to filter by equals and you can see you've got a whole bunch of other things you can play around with here as well we want it to be equals open once you've done that you just have to sort of Click just sort of back outside there and then click apply and now we've got that now I've got no data in my system or in my app yet at the moment if you've got data in your app and you're fiddling with things later you'll actually see preview of things here that helps you validate and see what you're doing but for now we've just got a blank uh blank database save and publish that one as well so now I've created two these are called system views and I can choose who in the application has permission to use which views we'll see a little bit later the user can sort of set up their own views as they're using the application but that creates that experience in in the app where we can switch back and forth here between active roles and open roles and as you're designing out your application you want to think about what views you want to be able to use we are actually when we create this custom page also going to use this open rolls view on the front screen there when we come back to it we'll give that a second to load up the speed of this is not indicative of what you might experience in a real scenario I'm in a developer environment developer environments don't get the fastest speed on things plus I'm running my video editing software over the top of running this with my window open with my instructions on the side I've got a lot of things going on here the video editing software does uh video recording software does tend to to sort of slow the pace down a bit so all good so now we want to come back and use this navigation here to navigate back and we have got our rolls and we're going to navigate back into the roll table so the next thing we're going to do here is set up which columns we want to enable for search so this actually impacts a couple of things let's take a look back in the app again here the co-pilot search if we want to be able to do things in here so for instance we can say things like how many rolls are filled and it will actually be able to find that because we've got that data in the system and there's also a search at the top here that allows you to search for things and find things in the system including using uh fuzzy logic so let's say I wanted to search for an account manager and I didn't spell it correctly I can type in account uh and then it will actually find those things so you don't want everything in the database to be indexed for the search because that affects the performance of all of the things plus you'll get irrelevant search results so you actually have control over what you put into the search so that's what we're going to do here so the way that you find and set up your search is to go back into your views and you want to work with the view that's called the quick find active view so what this does is sets up the sort of the results screen from the sort of an old school search experience that we're actually not using much anymore but you'll see here that you've actually got the edit find table columns and this allows you to choose which columns you want enabled for that search so I don't necessarily we might want created on because that's you know we want to search for when things were created I want my department in there there the name what else do I want the reports to and the role status and click apply and that's all done and again save and publish when that's finished so from there we'll wait for that to happen we're going to navigate back into the solution you've created your first table I've given you a lot of other explanations around dataverse and relationships and auditing and and security and things in there as well so we're going to pick up the pace a little bit now and create another table with with a little bit less explanation so hopefully that's all been useful again please give this video a like if you're getting something out of it and help me to get it out to more people to share the love and skill of building model driven apps so what we want to do now is go back up the breadcrumb trail a step further into tables here and what we're going to do is create a table that is using is for the application so that thing where we're saying here's an application someone submitted an application and it's going to have relationships to the role and also to the contacts which are the people who are playing now I haven't created the contacts table yet have I you'll see what happens here we've actually got let me show you if I go I'm going to just navigate back out of all of this into the main area here and go into tables dataverse actually comes with a stack of outof thee boox tables for things you might use commonly we've got account contact for a lot of other things in there as well so the contact table is already in here cuz all almost every application you're going to have people or organizations of some kind so unless there's a good reason not to the core people that you're working with in the application or the organizations you're working within the application there is a whole lot of stuff in here already hundreds of different columns you don't have to use all of these but like all of this work is done for you you don't need to create it yourself so for the people who are are going to be applying for the jobs I'm going to use that contact table now to get back to where I was solution recruitment and this is now the top level of my solution so I am going to create a new table and this one is going to be called application plural name applications I want to enable attachments and we're also going to go in here and have a look at some of these Advanced options again and I'm going to choose the same ones plus another one that we did before so we want to track changes audit changes to the data leverage the quick create form if available we also want this one to appear in search results which we did before and I don't think we did this one before we want this one to be available when we're creating a new activity that is going to enable a whole lot of other out of thebox things which I'll show you in a moment there's a lot that comes with this that's just there for you like all of these common things that we don't have to set up clicking that little box is going to set up a timeline and the ability to have emails phone calls tasks notes all of that stuff just with a one little check box there so make sure you've got that one that's really cool and then we're going to click save and so now what we're going to do is create the columns that we want on the application table so I can go into columns which is what I did before if you prefer you can go new column from there same same so what we want to do here is actually sorry we're going to cancel out of that I'm going to go back into this thing because we're going to make a change to an existing column so remember I was telling you earlier that the primary name column is like your heading so if I go back into my application for the role this makes a whole lot of sense because this is the main thing you click through see how it's like the heading here if you do any kind of lookup if I'm on an application and I want to look up that relationship to the account manager to the role the thing that you're going to see there is that primary name column so you need to be careful about what you're doing with that now for a job role or a person for the person it's the full name by default for the role the name of the role makes enormous sense but for an application it still has to have a header a title of some kind this primary name of some kind you don't necessarily want it to be populating with things like you could have it being um Account Manager application for Maria Rodriguez or whatever it is but honestly having some kind of reference number here and this is an auto number number makes more sense plus I wanted to show you how to do the auto number cuz it's a good thing to know how to do so what we're going to do here you can't get rid of the primary name column you have to have one but here are the flexible options you've got with it so you could change what it's called so this one is called name I'm going to change it to be called application number or you could call it application reference or something if you wanted to the data type I don't have all the options here it has to either be just a single line of plain text but I do have another option here to say I want this to be an auto number and you'll see that some new things pop up on the screen when that happens so it's going to be either a date prefix number or a string prefix number I'm going to go with the string prefix number my prefix is going to be a and then I want four digits and you can make that more or less if you want and the value is 1,000 so let's say I wanted this to be three digits you'll see that you get the um you get the preview if you change it in there but I'm going to say I want a minimum of four and I want to start from there but you can play around with those options and have it do what you want the other thing you want to do here if you're doing an auto number is change this so that it's not business required business required makes it a mandatory field it means that if you create an application you won't be able to actually create it until that's filled in because it's data validation rules are enabled in in that in that option to say something's business required so any of the columns you're creating you want to put in business business required if it's mandatory if you if you actually want to do that whereas business recommended or optional you won't have to put it in and that also means that when the record is saved that will do the auto number in the background so if you're doing this Auto number make sure you change that value as well and then we're going to click save in there we are now going to add some date columns here because the application process comes with a bunch of dates of things that we're tracking that end to-end process of what's happening so I'm going to create a column here called screening call date the first time we call up and sort of check if the person's in the right zone for the role so that is going to be a date and time column and I don't necessarily need a time stamp on that I just want to know what date it happened so I can choose that the format will just be a date only and click save we're also going to put in an interview start time and end time you may not need the end time but I want to show you cool things so we're going to put in interview start time this one is also going to be a date and time and I do want a date and time because for an interview I want to know what time they're coming in for the interview that's actually kind of important so let's click save there and then I'm going to put in the interview end time mostly because I want to show you that you can put in Formula columns here so if you are familiar with power effects good luck to you cuz you've got some skills here that you're going to use again if you're not Don't Panic it's all good so this is also a date and time so we could leave that blank but in fact instead of making it a date and time column I'm going to come down here and say this is a Formula column and the formula the format of the formula is going to be actually no sorry we're not going to do that yet we're going to put the formula in first and then come back to it so the way we're going to do this I'm going to type it out to show you and this is where with power effects you need to just be learning power effects honestly things like Microsoft copilot chat gbt are very good for looking up formulas heaps of community things around but if you want to add something to a date and if you know Excel this you'll get a bit of a leg up here it's not exactly the same as Excel but as you start typing things you'll find things in here so the thing that I want is called Date ad now even if I didn't know that I've put in data even if I put in date you'll start to see options you could calculate the difference between dates or we're going to add dates to something so we're going to go date add open your parentheses there to get some more clues so you can see here's my formula the date and the number of units so we are going to start with the interview start time comma and now the number of units I'm going to put in 60 minutes so I'm going to put in 60 comma and then if I start typing in minutes you'll see that we've got time unit minutes and that's it I'll leave that on the screen there a second so that you can copy that but you'll see as you start to type these things out the formula has quite a lot of built-in help to make it easy for you to get to that result and you'll see there I tried to do the format before but I didn't need to format date and time excellent and now we can just click save we are now going to do a global choice so something that we're going to use more than once in the application so we're going to come in here now and choose a column called inter interview outcome so this is going to be did we succeed or not with the interview but we're also going to use this Choice somewhere else when we do reference checks so this one is going to be a choice and I'm going to stick with the yes recommended for the global Choice here so we need to choose a new choice so you need to set up the choice and then you need to put that Global Choice into this particular choice column so this choice is going to be called outcome because we're going to use this for reference checks as well as interviews so the labels here we are going to call this one what have we got here this is going to be successful and another new choice is [Music] unsucessful all good don't worry about the value same concept we talked about before give this some nice colors again if you want remember to choose nice sort of pastel colors so that it becomes easy to see um we're going to kind of go with pink and blue this time because why not and we'll click save on that now remember we haven't finished we went I need a choice column I want to create a global choice now we're going to link those two things up again so when need to sync this choice and if you just start typing outcome you'll see it there and now we've got those things together and we've got our column created we're going to go through this again for the next one you'll see we don't have to do that setting up of the choices every single time if we set it up as a global choice so what I want to do now is set up something called comments so we might want to have comments about what's happened with the interview and this one instead of a single line of text I'm going to come into my text field here and choose Rich Text which allows us to put some things in there that we can do bold and highlighting and italics and colors and cool things like that click through into your Advanced options here your default maximum character count is 100 characters which isn't really going to be enough let's set that to the maximum of 4,000 and we're going to click on that one to save that one as well now we're going to move on so we're sort of going through the process here of setting up for the application all of the stuff about an interview we've got a place to say when the interview was whether it was successful or not what the outcome of the interview was and uh what what the comments were so now we're going to put in some things around reference checking as well just give this a second to catch up with me sometimes I can talk for as long as it sometimes I can talk for as long as it goes and sometimes it takes a second there we go so now we're going to put in uh the display name here is going to be reference reference check required and this is another different type of data which is again a type of choice but it's a special type of choice it's just a yes or a no I don't have to set those things up this you can use for any kind of binary true false yes no any of those things be aware that this one has to have a default choice so if you want blank yes or no you have to do it the way that I just showed you because you can have a blank option whereas this is just yes or no so reference check required we're going to say the default is that no it's not but we'll put in some conditional branching later that says if a certain thing is true then you want to be able to to add that in so you could put colors in here if you like I'm just going to keep going with that and now we want to put in the reference check date and the reference check outcome so we'll come in here reference oops reference check date again we move fairly quickly on this one because we've done this before that's a date and time don't really care about the time date only all good and now the reference check outcome I can use the same outcome that we had before reference Che check outcome and this is going to be data type choice I want to sync it with a global choice and I don't have to create it anymore cuz remember I created it before if I just start to type sync this Choice with outcome if I hover over that it gives me a little preview make sure I'm choosing the right one and we're done so that's that concept of the global Choice it's a bit confusing the first time you have to click around but then when you want to come back and use that one again you saw how easy that was what else do I need ah whether or not we made an offer last one so we're going to say offer made question mark and this is going to be a choice which is a yes or no and that's done all right so that's quite a lot we've set up on that application table there what we've also got if we come into the application table and have a look at the relationships as I said earlier because I set up that piece where we wanted to enable it for activities there's a heap of things here look at this regarding email fax does anyone does anyone still send faxes it's still in there phone call task appointment recurring appointment note so there's a bunch of things in there we'll have a look at the Timeline you can remove the ones you don't want but just by clicking that one box all of those features and relationships have been set up without needing to do anything else you can't undo that though so you going think carefully about whether you want that in there you can come back and add it later you can't undo it so let's do a little bit more on the relationships here and I'm going to create relationships so we've got this application needs to have a relationship with both the applicant the candidate and the job and they are the same thing where you've got one role can have many applications one person can have many applications or from the point of view of here it's a many toone relationship there are two ways that we can create that relationship I'm going to show you both of them they will both result in exactly the same thing I prefer the second one but if you prefer this one and this probably depends on whether you come from a database way of thinking or a low code kind of way of building applications so we're going to do it the kind of database way first so what we're going to do here is come back into this application and we're going to say I'm going to create a new relationship and this is a many toone relationship many applications mapping to one one roll so we can choose the related table here you can just actually type it in helps if you spell it correctly choose oops choose the r let's just scroll down and find it okay and you'll see that's done a bunch of other things it's created a lookup column for me with a name and a schema name it's telling me asking me whether or not it's op optional or not or required and whether it's searchable and there's a bunch of other options there but we're just going to say done I'm worrying too much about making things mandatory but that option to set things as business required is always there as part of what you can design in your application so that's done if I come back into my columns now we will see that on the application table there is a lookup column to roll remember how we created a lookup before so that's one way of doing it create the relationship the lookup is created for you I'm going to do it for the contact now but I'm going to do it the other way around this is how my brain likes to think about it cuz I'm it's a little bit easier if you're not used to dealing with the relationships if I come back into my application here and go into the I've gone into my application to look at an application into my app I just zoom this up a bit this role is a lookup so if you're thinking about it more from that sort of user experience point of view the I'm going to do the candidate this time so the candidate I want to on my application table add a lookup to a candidate so we're going to do it that way new column candid did it and that is a lookup to which related table and this is the contact table I'm using that contact table that is out of the box let me try and get that right click on the right thing and click save now that's going to do a couple of things that's created the lookup for me and it's also if we look over here did you see that rewind a bit if you missed it that went from 3 to 4 and it added contact it's actually added that into my solution for me because I've grabbed that pulled it in that's it I don't have to actually do anything else with creating the contact table you can go in and edit the layout of it add extra pieces you want using all the same skills we seen here but I'm not going to do that we don't need to do that to uh to build the app that we want to do here and so as a result of that if I go back to my application table click on relationships here you will also see that we have candidate and that's the same thing we created earlier but did it the other way around so you do you next thing we're going to do is to build out those forms and Views so we saw a little bit earlier with the roll that we could sort of just grab all of the things and put them on there but with this one we actually want a much sort of more sophisticated layout with these things so let me show you how we put together something that looks like this where we've got the three columns and we've also got a tab in here for interview to put that information in so we're going to actually do some design work on the form now so the the first thing we're going to do is go back into the application table and we're going to set up the view so that we can see the the grid of applications we've got the active applications in there already so because I didn't go through that other process of update forms and Views you can do that if you like sometimes I find that easier sometimes I prefer to do it this way what you can do is actually just choose the columns you want from down here and put them on The View you don't you can drag and drop you don't even need to drag and drop so let's get these in order if I click them in the order I want is really easy so we're just going to go candidate interview start time interview outcome and offer made not bad hey and then I don't really want created on so I can remove that job done save and published this is the easiest part honestly creating views and you can drag and drop and move the things around and add the filters and do whatever else you want in there change the column widths I tend not to worry about the widths it's a responsive application in the end out of the box so it will usually sort itself out with the with the column wids you really don't need to be doing much there so the other thing I want to do though is sort this in order by the interview start time so we'll come in here and say I actually want this one to be older to newer so that when we're looking at the applications it's going to be sorted in order so that we see the people who are being interviewed coming up first as good a way as any and again if I've made a change I can just click save and publish and go back to that we also need to set up our columns for search again so we'll go back into here and remember that is the quick find view where we can do that down the bottom here edit the find table columns and we want to add a few other things in here so we've got the application number let's also grab the candidate comments created on so this is different from what we see interview outcome start time offer made oops offer made roll screening call date that'll do now I've just realized that I've made a mistake here because I've got interview start time and interview date time I think that was the one was meant to be interview end time so let's pretend I did that on purpose to show you how to fix something we'll do that save and publish that one so it's good if you notice your mistakes before you've gone too much further we'll just go back and change the display name of that if I wanted to be really fussy about it I could delete it and change the schema name and and do all of those things but uh we'll just make sure that the display name makes sense so let's come back into the application table here into our columns interview date time laser laser laser interview end time oops interview end time and and we'll just save that all good I haven't actually kind of put it in the application or done anything too much yet so I've corrected that one before we've gone too much further let's create the form now so if we go back into application and click on forms this is this nice sort of three column layout that we're going to be able to uh to work with so again we want to work with the main form make sure that you're clicking on the one that's called main form and we've got a few different concepts here around components tabs sections columns we'll go through all of the the thing here first thing I want you to do depending on the size of your screen at the bottom here responsive I want you to choose desktop because for me that sort of gives the full screen layout of what I want to do and then depending on what you're working on you can zoom up or down here to sort of get the the detail that you need now if you're familiar with canvas apps this is not the same thing this is not down to the last pixel of what you can do this is all built with components on the screen so we can choose different tabs and layouts and columns but you can't go oh I just want to make that box like one pixel wider it's it's not that kind of design this is a component driven design when we get to custom Pages at the end you'll be in your happy world of being able to get down to the last pixel but this is not the moment for that what you want to do first is click on the whole form so you watch as we go this sort of magenta colored outline shows you where you are this is me clicking on the whole form if I click here I'm clicked on a section so you'll see it tells me I'm going to section whereas here I'm on a whole tab so just watch where you're clicking if you get unexpected results so the first thing we want to do here is change this whole tab to have three columns so we're going to change the layout here to three columns and then see now I've got three sections across the screen now what I can do is change the properties of this one here so this one is called a section so we click in there and that one is now highlighted let's give that one a different name so instead of calling it General let's call that one summary we also need to give it a schema name there so we'll just call that summary and see how hide label is checked can't see it uncheck that right there we go so now what we want to do is bring some other things in here so we're going to come over now if I've got this selected we just drag that and put it where we want it so I can just drag that and put it in between the application number and the owner and there's the roll in there next thing I'm going to do is make the candidate in the middle section so if you can see what I'm doing here if I go back to my finished app see what I've done summary application number role owner candidate we're going to put that in there this is very like what you see is what you get it's very much the same as you're designing it out you're really getting a sense of what it looks like so now what we're going to do here is come in and call this one candidate that one's already displayed so I don't need to uh change it again what did I do wrong there no we just clicked away so we've got the candidate and now what I want to do is drag the candidate across hot tip for you here you don't even have to drag if you don't want to put it in a particular position like I just did with that one highlighted click on candidate and it will just pop up in there which sometimes is a little bit easier than dragging things around over in the final section here we want to add our timeline which is that control that allows us to bring in all of those notes and things like that so again let's let's go back to the app this is the timeline control I can add appointments emails phone calls Tasks and notes so as the application process is going through I might say you know we made a phone call to the applicant on this date or a task is to send them a job description or a signing someone else to do the reference check or whatever it is so all of those things are there that will natively connect with your exchange Outlook out of the box because Microsoft so let's uh let's close that so what we can do here is come in and we want to bring the timeline here that's a component so on the side here this leftand menu this is my table columns that I've created if I click on this little I don't know window jigsaw kind of piece I've got components which shows me all of the different things that I can drag in so what I want here is the one called timeline so let's just take that one across into the section there and then that's the timeline there it's got its own nice heading I don't need this other one so we're going to click outside of the component into the section and hide that label and now we've got our three columns all set up in there so the next thing we want to do is clean up the timeline so depending on how your environment was set up if you deployed sample apps or there's sample apps and data in there you might have a bit of a mess here which is what I've got so we're going to come into the timeline and you'll see there's a bunch of things in here appointment fact letter so some of them are already unchecked fax and letter so we've got appointment email phone call recurring appointment social activity is something that we don't even really use in the system anymore so if there's anything you don't want you just check it and un enable those things task invite Redemption is a portals related thing that we're not working with here portal comment the same we don't need that in there donation is part of a sample app which we're not using here it's a fundraising sort of sample application uh that's pretty much it so just clean that up get rid of the things that you don't want that are that are sitting in there and then the next thing we're going to do is to add another tab into the form so if I come back into my app again you've got the general tab which is what we've been working on and I've also got an interview tab which is a two column tab that has a couple of details about the interview start time and comments with that rich text box so let's just scroll back over here so we can see what we're doing if you come back into this components menu what we want to do is create a two column tab so Watch What Happens here when I click on on that it's going to pop up with new tab we click on new tab let's give this a name interview oops give this a name called interview all right and then on this section what we're going to do is call this one details and I want to bring in the interview start time and the interview outcome here so if I go back to my table columns on that leftand navigation menu and again with this one selected I can make it easier for myself by just clicking on interview start time interview outcome you'll see I fixed up the end time that that's coming through correctly now and then this one we want to change this label to be comments and I am going to find my comments again select where I want it to go make it easy for yourself and click on that one in there so then what we can do here is change the properties of this one a little bit because I want this nice layout where I've actually got as much space as possible for my comments so you'll see what I've got here I've just got comments in the heading and I don't need the label sitting off to the left as well that's just annoying so if I come in here and say hide label that gives me more space for that and then you've got the option as well to play around you get 50/50 with your column widths but if you wanted to you could change that to be more Less on the screen so let's say maybe I want that one to be 30 and this one to be 70 so again I don't need that much space for the the interview start time in the outcome and I've giving myself some more space for the comments all right that is form design so while that's saving and Publishing we've been through there how to create a whole tab how to create columns on the tab how to work with sections naming new sections bringing those table columns in moving things around in the layout you can drag and drop to your Arts content here and sort of make some really nicely designed things this is where you know some people are talking about with model driven apps it's like oh they're not beautiful look I think beauty is in the eye of the beholder to be honest I mean yes we're not dragging and dropping every little thing on the screen but this is such a really nice just clean simple interface and it really took very very little time to build any of that we're just going to drop that into this application and and it's going to be good to go what have we got left to do that's all of our tables now so we've got our table that we've brought in to put the people in we've got our table to store all of the roles we've got this application table with the relationships between those things let's go back into the solution the next thing we're going to do is create that business process flow so this is the process across the top here and this has actually got some branching logic in it so what we've got here is a screening call date so let's say we're coming in here and the that was the date of the screening call we move to the next stage so we've got screening interview and offer by the way the co-pilot on the side here if you want to get a bit more screen real estate you can open or close that interview start time so let's schedule an interview in for next week at uh maybe not 800 a.m. in the morning maybe 11:00 a.m. and then what we can do is say is a reference check required or not so there's some decision process perhaps on the level of the job you could have other automations and rules that help automatically set that but Watch What Happens to my business process flow when I choose yes did we see that pops up with reference check so it brings up a whole other stage to work with so we're going to build out this piece now so to do that we will go back to our solution back to the top level of the solution and from here we're going to say that we want a new Automation and it's actually a process business process flow now this is going to need a name so we're going to call this one recruitment Pro process oh let's spell it correctly you can update that before you've saved it and this is going to work on the application table so you can start typing it to find it and put it in there and click create please make sure that you have got popups enabled there's a couple of places in here where it will open a new browser window so for instance popup blocked right if you've got this problem enable it better if you've done that before so if you do get into that situation I'll show you what to do if you've being smart enough and you had your pop-ups enabled before you'll just go straight through to this part so we're just going to click done in here uh and I am going to need to find my process there so you give it a second it's actually sort of initiated it and created it so give it a second to come up if I click on that it will now just open that in the other window now there's nothing to say here other than that this is an old part of the user interface it's slow it's a bit clunky I've been hoping for ages that this might get an overhaul but it is what it is itun well you're just going to have to kind of uh roll with the fact that it's not as nice to use as as some of the other pieces so essentially we have stages which are those dots along the top the stages of the process and then steps which are the pieces that sit underneath that so we click on the first one here which is the stage that we've been given and what we want to do is change the name so we'll change this to screening now this is where you get caught out so you've got to do this every time this is not how a modern user interface works and why we get caught you need to click this apply button every time you make a change I'm enough said so now what we need to do is open up the details and say underneath the application so again I'm just going to go back to the app so you can see what we're doing here underneath the one that's called screening these are the stages so screening interview reference check offer underneath screening we're going to put in the screening call date under interview we're going to put all these things in so this is the part that we're building out here so the data step here we click here don't do the name first come in and choose screening call date because see it automatically updates that you are good as long as you do what click apply when I do this stuff in person there's always a point where someone hasn't clicked apply for something and I do it myself so hopefully hopefully we'll get it right here so now what we need to do is get the next stage so this is the properties of that there's another little option here called components let's grab that stage drag it over to where you can see that button highlighted that one's highlighted now so this one is going to be called the interview stage apply and we're going to add a few different data steps into here so let's open the details of this one click on the first data step and we are going to put in the field called reference check required apply oh I missed it thought I was too busy looking at the looking at my notes to see what comes next we're also going to bring in another component here stage and we're going to call this one offer and apply and this one will have in it more details so this one is going to have whether or not there was an offer made and we'll click apply there now I've missed a few things in the interview stage let's just come back to this so we'll come down here so we had the reference check required we also want to to bring in the interview outcome and the interview start time so no drama what we want to do is go back to components and click on data step or you'll notice if you come over here no we can't do it from there we click on components and bring the data step so there you go see the little pluses that come up so I can put things above or below that so let's put this one above that that is going to be the interview start time and then components I was too busy explaining apply and missed a couple of things here so interview start time and then we want the interview outcome apply okay so now we're good so we've got our screening interview and offer stages all ready to go now the next thing we want to do is to add that conditional Branch where we wanted the reference check build out your main flow first and then come back and put that conditional branch in there so what we do is come to the components grab this condition and we want to drag that between the interview and offer stages so you're going to drag it until that little piece is brighter and now we've got that condition in there condition is highlighted we're going to call the condition reference check now importantly whatever you want the condition to be branched on needs to be something that sits in the stage before it so this one we put in reference check required yes or no in that one so now that's available to us so we can come in here and choose reference check required and we want to say if reference check required equals yes then we will get to the next stage what next stage I might ask you it's not there yet don't panic we're going to click apply you need at this point to save and when I click save Watch What Happens so saving kind of activates the conditional logic I did say this is an old user interface and it is what it is that will then activate the the piece that gives you the branching logic so now if we come along here you've got a little sort of diagram there but we can go along and you'll see that it's put in a new stage of the conditional branching so this new stage is going to be called what did we call this one reference check apply and then what we want to do is add in the details here so the data step here is going to be the reference check date apply that components and drag another data step in here and the reference check outcome and one final apply for good measure how did you go just just double check before you go any further that you've got all the right names of things that you're not still sitting with something that's called news stage that's a really easy step to miss so I'm just going to double check my work here we've got screening interview reference check offer all good let's save that one and then what it will do is check that it's all valid so you'll get like a little sort of validation successful lovely and the last thing we need to do is activate you'll get a message here that asks you to confirm now depending on how lucky I am this is either going to work or not this is a known issue so don't panic if this happens to you this should take about 30 seconds hands off keyboards here I'm going to let this actually happen or not in real time about 30 seconds later this should disappear and then you will see ah here we go now I've got the thing I've kind of shown you the error without even meaning to if this happens I would suggest clicking wait once if it happens more than once don't sit here waiting forever for this this whole process takes about 30 seconds in the background but sometimes it's worked but the message just hasn't cleared properly so I reckon I'm almost at the point that I'm going to give up on it okay so we're just going to click wait on that oh there we go we clicked wait so that worked what I was going to do then if it didn't come up just refresh the screen you'll know if it's worked don't worry too much about the confirmation messages if this now says deactivate instead of activate you're good to go if it still says activate click it again and do it again but you should be fine now remember this popped up in a new tab when I had to set my popups so let's just close that and it comes back here currently editing a business process flow and we just say done and we're ready to go and you'll see that the process is now sitting as part of your solution all right what's next now what we want to do just this is a little optional thing just for tidiness and completeness of the solution this actually creates another related table that you don't really need to know about but if you want to be able to bring this solution across in in a proper real world scenario into a test and development environment you're going to want want to bring that across otherwise you'll have to pick that up later so what we want to do is to say that we're going to add an existing table and the table will have the same name as the process that you just created so if you just type in um recruitment recruitment process there we go there's a table that's there we just click that click next include all objects which basically means all of the pieces associated with that whatever they are let's bring them in and you'll see there we've got another table so just be aware there if you are doing any editing that you want to edit your process you don't actually need to do anything with the table we're just bringing that in for completeness of that whole solution all right we are done with kind of building out the stuff let's hit publish all customizations and the next thing we're going to do is bring this into a model driven app now the building of the model driven app is actually really easy because we've built the tables we've built the business process flow the forms and the views and all of those components the model driven app is actually just bringing all of those things together so while that's waiting to publish it can take a minute or so let's have a look here all of the stuff the other stuff you see in here the welcome page we are going to come back to a little bit later in the course here but all of this other stuff around let's say I come into the roles here the fact that we've got a search bar at the top the parts where we've got all of these different menu items let's just zoom this up a little bit so things like you know settings the co-pilot in here all of this show chart new delete refresh visualize and power bi import from Excel we're going to use that one in a moment too you don't have to build any of that when we go new model driven app it does all of that and then all we do is pull these pieces in so this is where we've done all this work but this comes together really really quickly the app itself is actually the easiest part of all of this so let's do this new app model driven app and we are going to give it a name did I go too fast then in my excitement no there we go okay we're going to call this one recruitment app and click create and then what we need to do is to bring basically just the data tables in here a lot of the other things will just come across at the same time as we do this because they're all associated with each other so all we need to do is come in here and say we want to add pages we're going to start by bringing in the data verse tables so let's click next and we want to bring in the tables application contact and roll so you can search for them or you can just scroll down and find them so let's go Application contact that's where we're putting our people and roll see how many out of the box tables are in here there's a lot of depth in here if you really want to get into this stuff and you know it's it's cool there's there's a lot of complexity and depth that you can pull in here uh we want to leave sh in navigation cuz we want those things to be in the navigation and click add to see what's happened here this starts to look like the app all of these things I didn't build them they're all just there so now we've got applications contacts and rolls new group we got a little bit of tidying up to do so let's just tidy up the navigation menu here what you want to do if I want to reorder things so let's say I want it rolls at the Top This is a little bit clunky but you just have to come in here and say move up and do this again move up and so now it's in the right the right spot let's give this one A different icon so you'll see what happens the contacts isn't outof thebox table it's got a nice little icon for a person but roles and applications get these sort of little clipboard generic icons if you've created a lot of custom tables that doesn't look so nice in the application so with rolls selected what we can do over here where it says icon default icon drop down and say use a web resource now you can actually bring your own icons and things in here I'm just going to keep this fairly easy and uh and use this with some of the ones that are already here so you can browse around I'm there's one here that's called email template high contrast which looks like I don't know something that sort of makes sense to me for a rle so we'll click that and you won't see it there straight away Don't Panic it's it is going to it is going to come in so now what we're going to do is do the same thing for applications so let's click on applications you'll notice this came up with something different on the side here so to get back to where we were if you just click settings you get the same thing and again I'm going to use a web resource there and I'm I'm going to search for one that's called analysis job. SVG there we go that'll do so we've brought in two different things there once that's published and played we'll be able to see those uh come up in the application it just looks little things it makes it look a whole lot better new group we can't have new group so let's click over here and give this a name let's call this recruitment so you can actually if you have an application that has lots of different sections you can arrange your tables into these sort of sections and subsections and give them different columns this one isn't a navigation point it's just a a grouping and you have to have some tables underneath it but you could have different levels of of groups in the navigation menu if you wanted to Mark around with that one more setting we need to fix and this is something that sometimes can mess up the search bar at the top depending on when you're watching this you may or may not still need to do this but let's uh just go through this now so we're going to go into settings features and then wait for this to come come up we'll scroll down there's one in here that's called enable offline classic no and click save that actually at the moment seems to be stopping the the global search bar from working so for now if um if you want to follow along with what I'm doing and get that Global search bar working that's a safe option just to make sure that that one is Switched Off hopefully that won't always be the case all right so we have built theel model driven app I didn't time how long that took and honestly I think I spent more time explaining it to you than doing it when I'm doing this part it's like a 5-minute job so save we' got three stages here save publish play we've already published all of the other customizations all of the tables and things this actually has brought in all of those views I will actually just show you that before we hit play so if you want a choice about what's in here if I go into rolls view you'll see here these are the rule the rules the roles that have come in so active rols there's always active and inactive out of the box open rolls is that other one that we created the rolls form is the one that we created so you can see it there so if you've built out a whole lot of different forms and Views and things you'll see them here you'll notice this one looks like it's three even though we created it three across that's because this is a fully responsive app so you'll see at the bottom here it says responsive if I just choose this to be desktop that's what we were looking at before so all of that is ready to go we already published so let's play this thing and see what we've got now first thing that's going to happen is we're going to have this beautiful fully functional application with no data in it CU we haven't actually put any data in the system so I'm going to show you how you can add Rose records in here manually and then you can grab the spreadsheets out of the link that I've given you in the description so that you can upload some stuff and learn how to import data and also have a nicely populated app without having to do a whole lot of data entry but um go ahead and and do what whatever you like so first thing I'm going to do we're just going to pop co-pilot off to the side for now because I want a bit more space for what I'm doing here and we're going to bring that back a little bit later so the first thing I can do here is to let me show you how we create things so let's talk around the app we've demonstrated a little bit already search bar at the top there's my navigation down the side that's the view that I created so plus new will bring up my form to do the data entry in it so let's call this one let's create something for a a sales manager this is where you can get a feel for the user interface that you built the owner is Me by default you don't always necessarily need to show that stuff in there but we've got that sitting there and that's you know good to go department sales reports to this is a lookup now depending on how your environment is set up if it's a developer environment you might not have anyone else in your environment other users are set up in the Microsoft 365 admin Center so if you've got a trial if you've got like a Microsoft 365 trial environment you can go into that portal and just add users in there and give them licenses Honestly though just put yourself if if you've just sort of working on your own and you don't have any other options in there and we're going to choose that the role status is open good now normally I would save and close but I'm just going to click save to show you what happens because remember I said the primary name comes up as the heading so once it's saved now we've got that in there so there's our sales manager and then this one allows you to navigate back and look at this now I've got some data in my app a couple of other things here with your settings so this is actually uh clearly I'm I'm I'm very dedicated it's actually not 6:37 a.m. where I am so we can come in here and click on personalization settings and this is something that you can do from each user so the data is all sort of stored in UTC format but different users can see it in their own time zone so you'll see it's in GMT which is not where I am I am in fact in the future in canra Melbourne Sydney when I do this I also usually prefer to switch away from English United States and choose English Australia that will change my date and form time at I'm just going to leave it as United States cuz most of you watching are from there and so I'm going to leave it in your format with the month day year even though many of the rest of us do it the other way around so we're good so now you'll see that's actually the real time and date that I'm recording this which I mean it's 4:37 p.m. on a Saturday that's much better than 6:30 a.m. on a Saturday isn't it all right so let's have a look at the other two tables that are in here let's click on the contacts table next depending on what you've done you might have a lot of contacts in here or not just go in and check active contacts there's actually a bunch in there that sort of came with the sample data so that's a sort of different view on the system that you can play around with some of those people in there regardless of whether you've got that or not let's just play with the contact table so this is the outof the-box one that we didn't make any any changes to let's put in a person here so we'll call this person uh so you see this is mandatory actually let me show you what happens if I try to save and the mandatory field isn't filled it actually won't let you do that so you can set up your own data validation in there let's just give this a obviously fake email address and a business phone number that's also just obviously fake and save that and again you could do save and close but I want you to see what happens it will put in the person's name first name last name as the as the sort of the header the title and now let's do an application so we can see the relationship between these things so let's say we have a new application remember the application number is going to be Auto number so we don't need to fill that in but I'm going to look up and say that we've got an application from David for the role of the sales manager and save that now the time line see how it says almost there you actually have to do that save in order to then be able to work with any other related records so all of the things in the timeline here we could come in and say you know I made a phone call to him on this date to sort of say uh so we call this one um salary expectations or something perhaps we're doing some kind of initial screening call and we can save that one in there and that's going to show up in the timeline so we'll see some other things come up in the timeline later but those are all related records one application can have many tasks many phone calls many notes if you add things in here like a note you'll actually get like a time and date stamp on the note this is Rich text as well so this is a complete way of tracking everything that's going on this whole thing is fully responsive as I've mentioned a couple of times if I boosted up another level look at that fits the timeline if you sort of go ridiculous it'll get to you know that point if you are working on a massive model you can bring it right down and fit a whole lot on the screen I'm sort of working slightly bigger than normal here just so that it's a little bit easier to see on the screen so we have now got some data in our system we've created a role we've created an application we've created a contact let's go and test this business process flow so we've got the screening interview offer let's do the screening so let's say we did that screening call on Friday and we're going to go to the next stage we're going to schedule an interview for next Wednesday at 12:00 p.m. and Watch What Happens here if we say reference check required the same thing we saw earlier and this next stage moves it along so you can start to do sort of visibility and pipeline reporting and things on this this is one where we're going through a certain process so the idea of this is that it allows the user to follow a certain path of steps and stages they should follow but if you're a manager overseeing this process it gives you visibility on where things are up to you'll see it's also timing how long it's been at each stage so you can get a sense of where you might be getting blocking things in the in the process as well so it's designed to give you that guided consistency and Reporting mechanism on what you're doing let's bring some more data into the app now what I want to do and it's important that you start from the table you're importing the data into so what we're going to do is import roles then we're going to import contacts and then we're going to import applications linked to rolls and contact so you'll see how that works so you need to start by being on the table that you want to import into and then there's an option in the toolbar here if you can't see at the three dots because I'm zoomed up a bit I'm just going to zoom down so you can see there is import from Excel it's there but let's keep it sort of at this higher Zoom so it's easier to see so if you can't see it we go here we go import from Excel don't click on that just yet there another step we want to go another layer and choose import from CSV so make sure you've done that rather than clicking on import from Excel grab those files from the GitHub repo that is linked in there we're going to say choose file and then upload that rolls. CSV from your documents there and let's click on next and then what this is going to do is go through a process of importing and mapping things we don't want to allow duplicates we can click on review mapping here and this is now going to show us what's in that spreadsheet now I've made this nice and simple because I've used the same titles in the spreadsheet as what we've got in the database here so let's just take a look at the spreadsheet you'll see that I've got name Department roll status I've used exactly the same column headings in my spreadsheet as I've used in the column table names in the app that's going to make it easier if you haven't done that it's not the end of the world it just means you won't get this automatic mapping so then you come along here and choose what goes where and do that mapping for you so we've got name the things that are these you'll see this is a mandatory field I have to have that one optional field so these are the things that are the option set or choices if I click on that little sort of set of choices icon you'll see that it's mapping them all across and once again if you typed those values when we set up the Departments exactly as I did you'll have a nice easy experience here if you didn't just choose the right ones and click okay same with the roll status that should be fine and just click okay there if in the real world you wanted to be importing this kind of stuff on the regular you can actually give it a name and save it and use it over again finish import now this is an optional step that you can click track progress I'm going to do this here because I think it is actually useful to see what's going on this will help you to see the import working in the background and going through the processes and see whether you've got any successes or failures coming through everything else is gone at a speed that I've been able to talk to and this is going to go slow and I did promise you we would do this one in real time so we'll have a little chat this is my uh co-pilot drink bottle it's bright and fabulous and I love it how are we doing are you enjoying building a model driven app I I hope you are I hope this is starting to make sense and come through for you I feel like maybe the uh this this one isn't going to load let's uh let's just try that and click done we'll do it for the next one let's give this a refresh and see if it's actually worked because those rolls should have come through by now there we go it has actually worked you don't have to do the tracking we'll do the tracking next time so there we go we've got all of those things in there I imported 50 and there's one row left I am showing you some things that can go slightly Ary in real life let's do the contacts now and see if we have better luck visualizing it so click on the table that I want to work with we are going to come in here import from Excel extra button there import from CSV choose our file let's grab the contacts CSV click next and review the mapping again and this one is going to have so we've got last name to last name business phone email first name all nice and clear finish import let's see if we can track progress this time and click okay please work I'm going to have to be patient maybe I will do a little bit of an edit here or not let's see how we go all right that doesn't seem to want to come up for some reason so let me just show you what it looks like this is not something you have to do but it's interesting to see so what we've got here is my imports and you'll see the ones I've done sort of in my other previous system this is the one that I've just started so we've got total process 0000 0 if I give this a refresh you'll see there we go we've got 50 being processed you probably shouldn't just sit and click and hit the refresh button over and over again it doesn't make it go any faster so but it changes status here so we've gone from preparing to importing and now it's completed with 50 successes you'll see we've got some other things in here where I've done this in the past with errors so this is your import log don't know why it's not working here but it actually doesn't matter we don't need to click through to that every time it is in fact working if I just refresh the app so we've now done an import of roles and an import of contacts let's now do the final step and this is the most fun one where we're going to import applications because we're going to connect them so if you want to do any kind of import where you are actually bringing in related tables make sure you've got those other ones in there first and then bring in the one that needs to be related to the ones that are already in there so again click on the table you're importing to import from Excel import from CSV choose the file we're going to choose the application CSV now let me bring this one up for you in Excel so that we can see what it's doing because this is the sort of concept that I want you to get around here so what we've got is the role and the role name is going to be an exact match to something that's already in there now it's risky doing this with free text but I've got nice clean data you know real world scenario you probably want to got some sort of ID the candidate however I haven't got the person name I've actually just got their email that's important so I've got my applications let's click next review the mapping and this one now has got candidate is a candidate lookup we're coming back there the interview outcome so this has got these pieces that we saw before where successful unsuccessful and I've got some blanks in there because we don't have all of the results coming through on this yet so that just won't map to anything that's okay offer made yes no or blank that's okay as well the roll is actually a lookup to the role name and so what it does remember we talked about the primary name before and how important that was when you're doing that lookup it wants to match against the primary name for my roles that's fine cuz I put those names in there that are unique but remember with the candidate I use the email address not the person's name so this is something you can do if you've got something that's more of a unique identifier first name last name not likely to be a unique identifier let close cross that one out and then let's start typing email find the email and then we're good we click okay so what I've done now is I've got an import that is going to map the role to the primary name the name of the role and map the candidate to the email address on the candidate so if you're doing this kind of thing I'm not even going to try and track progress this time we'll just click done and wait for it to come through so if you're doing something like this week you want to be mapping and importing those things just make sure that you've got something that's unique that it can make that relationship with the related table in the data that you're importing and then point it to that column it doesn't have to be the primary name column even though that's what it will do by default and then we'll give this a second it usually takes a minute or so we'll see all of those applications come through and I will check where we're going to go next while we're waiting for that to happen navigate back all right let's um H come on impatient impatient impatient there we go so it's in progress now cuz that's seven and I think I had more than seven so there's 22 and I think that's about all I had so there you go so there's our view that has the application number the candidate the interview start time sorted by most recent like oldest to latest so you'll see we've got some of those in there it's coming up with these ones blank so that's also drawing my attention to things there that might need um those things in there is there an offer made we might want to bring the the role name in there as well so we can play around with that in fact let's do that so if you notice something in your app that you've missed so I've clearly missed in here in my applications I want to see which role it is in this view so let's go back into the solution we'll go back into my application view active applications we have got in here the roll so if I just grab roll let's drag and drop this one and I can put it where I want it to be so I now want the application number in the roll let's kind of drag and drop that a little bit to make it fit save and publish I don't have to go back and change the app or do anything else you can do something like that if you want to put it into the app and make a change so any of those forms or views you want to make a change you can just do that we'll come back in here give it a refresh at the browser level if you want to pick up those changes it can take a minute or so or not see some things are with me in the speed and now I've got that in there so it's actually quite easy if you are working on this and you start to visualize it on the screen and you miss something or you add something later to go back and and change that you can also play around with the views so just because we've got this done by interview start time you can actually sort that the other way around we can do this kind of filter by let's only filter by the ones that were successful and apply that or sort from older to newer again remove the filter and then the individual user can actually do things themselves so let's come back into the rolles view for instance we gave them the active roles and also the open rols but let's say I wanted something different here as a user I can come in and say I want to edit the columns I actually don't want to see the reports to or the created on I can remove those things or I could add something else in there so let's say I wanted to I didn't really give myself much else to work with here let's say I wanted to put in created by or something like that and click apply then this is now going to give me that view that I want and then I can come in here and say I want to save that as a new view obviously as a user if I've got permission to do that so people can actually do that sort of thingss those sort of things themselves with the sorting and filtering and creating new views which is a very Excel like way of doing things incidentally also export to excel is an option single click and that will download a spread sheet let's take another look at our co-pilot now that we've got more to work with in here so co-pilot can do things where it helps you find information in the app you can search for things in natural language it's actually also very good at being able to sort of add up things or find things for you so we might want to say I think I said before something like how many roles do we have but let's try something like this how many roles do we have in the sales department because this is not something that's sort of not easily visible on The View and this will come in and find those things have a bit of a play around with some questions here that you can think of how many roles are filled which department has the most roles this is fast evolving stuff so you'll sometimes find that you'll get answers sometimes that won't be quite the expected results but this is a really really cool use of AI that allows you to do this natural language searching and finding information on all of those things that we put into the dataverse index as we were setting up we put in those search columns those things are there and the co-pilot is aware of those things this is a really cool space to watch early days but uh make sure you have a play around with this so where we're at now honestly is your core application you're good to go you've got all the pieces but let's step it up a couple of levels with some of the sort of more intermediate things you can do to just really bring out more value from the app especially where you're working with these relational tables and databases to give you more visibility of things so I'm going to go back into my solution and navigate back up here and the first thing we're going to do is to create what's called quick create form which makes it easy for the user to do let's have a look at what a quick create form looks like something like this so from inside the app you could say I just want to create an application and then that will just pop up with an experience on the side here so rather than sort of having to navigate around we can just come in here and say quick create application and then it will give us that data entry experience where I can say let's look up a roll put that in in let's look up the candidate and and just do that in there so we will uh discard the changes there we'll go back into the maker experience and make one of those so on application what I want to do here is to choose a new form and this is called a quick create form when we first set up the table we said leverage quick create form if available that means I can do this if you didn't do that then it means that you've missed that step and it will be gr out so go back and and do that so what we've got here quick create application this is like a miniature version of the form so I can click on this first section here and we can bring in the columns we want so let's say I want the role the candidate the interview start time and then I can click on this whole first section here let's click on the section and hide the label cuz new section isn't very useful to me and I don't need one there you actually can't get rid of these sections on here you just want to hide them if you don't want other sections on your quick create form just get rid of them in there and then you can save and publish that form so that's an experience that will allow you to just do that sort of quick and easy data entry for any table if you want to go ahead and do that on some of the other tables to get some extra practice pause the video and come back when you've done that so the next thing we're going to do here is create a quick view form this is the most confusing terminology that we've got in here but this is something that allows you to see what's going on with let's cancel out of that where I go into my application and I have for instance this one here and I've got my candidate with that lookup but this is actually going to show those details from that related table so from here I can see things this is read only but I've got that information on the screen so that's called a quick view form as opposed to a quick create form which is what we did here so in order to do that I want a quick view form for the contact because we're bringing in pieces for the contact so you start with the thing you're trying to display so we'll go back to the tables click on contact here and what I want to do is go new form quick view form it's because it's got View and form in the one place that it's confusing so again this is the same concept now as creating uh a view uh is creating a form so what we want to do again we can have sections in here if you don't want the label on that let's just uh get rid of that and we want to bring in so this is a lot of like this is the contact table out of the box there a lot going on here so it's probably easier just to start typing so you want to find the first name column and you want to find the last name so you'll see I can just sort of type them in here to make it easier to find them and just click on what I want and let's say there are some other things that we want to see here that we are bringing across actually I think I wanted the business phone in there let's get rid of that so if you do something you don't want just click on delete and that's probably enough in there so we can save and publish that one and now we've got that so that's the first part of it so the first thing you need to do is create that quick view form on the table that's going to be displayed and then we need to put it on the application table connected to that lookup so that it knows where it's going so once that's saved and published we will go back in the navigation back to our tables in the breadcrumb trail here and into the application table the application form and you'll see the quick create form we created there is already there so we want to go into the main form and then that middle column on the form which is where we put the candidate we're going to bring that component in so I'm going to click on that section and then we come across here actually sorry what I want to do make it a bit easier let's click on the lookup it's a bit of a shortcut here come into the components and what we want is a display component and there are lots of components here like many more things than I can show you in uh in what we're doing with this course but click around have a look at what else is there we're going to bring in a quick view so if I click on that you'll see that because I've already selected candidate it already knows that's the lookup and then which one do I want I'm just working with the contact quick for quick view form which is the one that I just created I think let's do that you can have different versions of this to use in your application and different places so there it is first name last name business phone that comes up with exactly what I wanted it to be save and publish and that's now going to come up on my application there is one other little sort of clever trick that's worth knowing about which is working with a lookup a lookup view so if I come back into my application here and if I'm coming in and having a look at this rle let's sort of get rid of this if I do this lookup what happens is in here by default you will actually get if you start to sort of try to type something you'll get the name of the role you'll see I've got the department there I've configured that otherwise what you'll get is the primary name and the created on which honestly isn't always the most useful thing so if you want to choose what shows up here and you can have sort of three things you have the primary name and two other things that can make it a whole lot easier to work with that is on the that's on the roll we go back to the tables and into the roll here and that is a view and that is called the lookup view so if we go into the lookup view when you create the table all of these views are just done for you like we didn't have to create all of those things but you can come in and change it so you'll see by default you've got the name and created on I don't want created on but I want the department and maybe the reports too so you can have up to three in there if you put more in there you just won't see them but that will give you a much nicer experience with the lookup so we will save and publish that one as well now the other thing I really want to show you this is a really cool component is the idea of what's called a sub grid this allows you to see in that relationship where you've got one to many all of the related records so if I come back here into my roles and you might have noticed in my app my demo app here that there's some color going on that you haven't seen in your app we are going to come to that shortly so if I click on the account manager R see how we've got here's the account manager and here are the related applications this piece here is called a subgrid this is allowing you to see the related records and this is a really cool thing that that just the benefit of having that database relationship setup that you really want to take advantage of so this one is going to be on my rooll I want to add a sub grid showing applications so in my rle form main form we're going to open that one up again and I'm going to add another section to bring that in now I'm just going to use the active applications view but you could configure a special view with particular columns you want to see there so all the skills you've learned so far you could just go save as and create another another view and do that if you want so I'm just going to keep it nice and simple here what we're going to do is come in here into the components menu where you can click on components there I want a one column section so this is a section I'm going to add another one column section and that will come in into the form here we will call this one applications and then clicking in here we're going to come over to the side and this is a grid this is a sub grid an editable sub grid will allow you to kind of make changes in line if that's something you want to do but this is just a display element you have to say show related records honestly I don't know why you wouldn't want to show related records but make sure you check that you'll have a much easier experience so we want to see the related records and this is giving me the options of what's related to roll so there's a bunch of sort of system things in here but applications is actually what I wanted and then there's my active applications view if you've created another view for this you can do that as as well and we will click done that will come up now the subgrid itself kind of has its own name this new SG control blah blah blah no one ever wants that you could have like another little subheading there or you can just hide that if you prefer the heading to be in the section up to you save and publish how's our app looking now we've got a few other things going on that are starting to bring it a little bit more to life and do some uh do some fancy things so that's quick uh quick view forms quick create forms look up views and subgrids so those are all kind of like next level things that are just going to really make your app absolutely shine let's go back now did I save and publish I think I saved and publish uh we'll come back into the app let's give it a refresh and check out these experiences let's have a look in particular at the roles and the applications to get those things working the piece here where you can do that quick create that's come up nice and fast I have actually seen that sometimes just takes a few minutes but there we go I could quick create an application and now if I look up the rle that part hasn't come through yet with the um with my lookup view maybe I didn't publish that one so you can come in here and say Here's my account manager look at that now I've got all of my applications sitting in there and I can go in and have a look at an application and there we go there's the information about the person that's sitting in there so those things make a huge difference those four sort of components to really make your app much more useful because you can see all of the related information about what's going on without so many clicks but you want the color don't you we want to get these colorful things in here so let's go and bring that in as well so we're going to come in back into the solution we go back into here and we need to bring in What's called the power apps grid control so this is going to be we first want it on the successful and unsuccessful on the applications and I also want it on the rolls so this is done at a table level so we're going to come into the roll the way you get to it is to go into a view and just pick the active roles view it doesn't really matter you just sort of pick one of the views and then you've got this option up here called components add a component and you want to choose powerups grid control but it's not there so you can actually get more components and there's a whole bunch of other things that are just not there so scroll down and find the power apps grid control and add that in you'll find that's in there for other things you want to do now let's click on that and so now there's a lot of options in here of ways that you can configure and change that grid that you might like to play around with but mostly now what we want to do is to say so this one is this is on the roll and remember back in my demo app here I had that experience on the roll where we could do this sort of opening it up that's not a good example here opening it up and seeing the related applications so that's what this part is doing here is I want to say uh when I click away it gets a bit upset with me let's discard this and do this again add the power apps grid control so the child items what I want to do is to say I want to see the related applications I clicked away too fast then come back applications which view do I want to see again if I've got something different and then what is the parent ID back the other way so related back to Applications the lookup column was called roll from the application we look up to the roll go down there's a bunch of other things here that you can do with filtering sorting grouping a aggregation that you can have a play around with you want but what we want here is enable option set colors yes we definitely want the Colors Let's click done on that save on that and save and publish on that and let's see what happens now back to my app refresh it at the browser level and look at that now I've got my status coming up in a nice colorful situation I can open account manager and those colors are there too so this is back to those colors that we chose at the start hope you took the advice to use nice pastel colors that make it clear so that's what you can do with that and have a play around with some of those options there now if you really want to level up your app and you want to start getting into some Custom Design maybe you've got canvas app skills or you want to start bringing specific pixels and images and things onto the screen you can do that with what's called a custom page I'm going to take you through how to build this one here this is a fairly straightforward example because I'm assuming that not everyone is coming to this with the skills of building canvas apps but if you have those skills you're going to be able to do great things here so this is essentially something where we've got a label on the screen I can make that whatever size I want I've sort of done a bit of a oversized font just to sort of prove a point here this is actually a list this is actually one of the same things that's in the app so I can click through to here and that will navigate me through into that R so we've got some functional navigation happening there we've also got the image on there and in the GitHub repo that's linked below I've put some images in there if you would like to use any of those as well as these pieces here that are buttons that allow you to navigate around the app so we're going to go back into the solution again as we always do let's go to all here now this is really important thing if you are a canvas apps person and even if you're not just to understand the concept that power apps allows you to create different kinds of apps what we're building here is a model driven app a canvas app is a standalone app connected to any data source where you can drag and drop everything on the screen what we're building here is something that kind of sits in between it's actually called a custom page so we start with new app page don't click canvas app here that's a different standard Lo piece there are options for bringing those things in here but if you want this sort of easy integrated experience of bringing it in you need to start with a custom page the custom page doesn't have as much functionality at the moment as a full canvas app so depending on what you're doing you might want to choose one or the other too much for this course I just really want to show you how you can build a basic custom page and then please go ahead and make beautiful designs make more beautiful things than the one I'm showing you here and then share it with me share it on social or wherever you want to do because honestly the beauty of the canvas app design not the reason you're going to ever watch me there are people better at this than I am so what we do here we're going to start with a template Let's uh sort of scroll this up a little bit I'm going to start with layout and then you've got a bunch of cool layouts and responsive layouts and things we can use here I'm going to use this one that's actually just a really super simple one called tutorial that gives me a starting point of a template that has a blank on one side and an image on the other because you know why not but I'm going to get rid of a whole lot of stuff because I'm actually not building out a tutorial but if you did want to build a tutorial as a custom page this is how you could do it I am actually going to come in here and on the screen here the only things I want to have left are the rectangle text and the tutorial image so all of these other things I'm just going to click on these things and make a bit of a Mess by clicking the delete key and getting rid of all of them and now I've just got tutorial image and rectangle box left of course an error because I've deleted a dependency of some kind but don't worry about that we're going to say edit in the formula bar and just delete that formula and look at that now I've got um basically a nice template that I want to work with so the first thing I'm going to do is bring an image in here so we go over to the navigation here into the section that says media I want to add media and upload something so grab an image from the files this is the one that I'm going to use which is uh sort of nice little welcome I'm building this page out that looks like it's all very power apps themed but if you want to add more color there's some other choices in there as well I've added my image and now what I need to do the the canvas apps piece of the custom Pages piece here is quite different from what we've been doing where you've got many more properties and controls to work with so I am selected here on if I pop this out a little bit actually we want to see the tree view I'm selected on tutorial image that's what I've got here and then there's a bunch of properties about what this image can do and there's so much you can get into here what I want to do though the formula for the image just needs to be the name of the image I just uploaded which was called Welcome something so if I just start typing it welcome power apps color ah there it is all right so far so good so now what we want to do is deal with this pale blue background because that's not a good situation even with my Poe design eye I can see that so let's click on that component so always click on the component and then work with the formula so what we've got here is properties so you can see there's a color property there that has a formula if I click on that it'll pop up in here and this is showing you that it's a color fade against that color I am going to give you the rgba for the powerups color that I'm working with here let me just copy paste paste this across we'll put it on the screen you can choose whatever you like but that's the formula you're going to need if you want to have this exact color the 30% here is the fade rate if I make that higher the thing will fade down more if I make it less it will fade up it'll be darker so you choose whatever you like there or pick a different color if you want it to be something different so now we've got our image and our background color we will add a greeting for the user so we're going to work in this section now I am going to come back to this little icon here which is my insert menu that allows me to insert different components and I want to insert a label so this label can have a formula in it or it can just have a name in it so I have this one that is a welcome formula that brings in the name of the user it knows who I am as the logged in user so the text of this formula you can just have a word with quotes around it I'll show you one of those in a moment or we can get rid of that and put a formula here so again I'll leave this on the screen so you can copy it welcome space user full name and you can see it's got that in there and now I can mck around with my font size with my any of these other things I want so let's sort of bring this out a little bit more and there we go it's welcoming me to my app let's grab another label in here you'll see it just puts it over the same spot this one is going to be a heading for the open rolls so this one we're just going to put text in here we don't need a formula you can change it here or up in the formula bar there I am going to just put in open rolls and that's nice let's make that one a little bit bigger maybe make that 15 and again you can this is where we're Pixel Perfect now I can drag this wherever I want on the screen and put it exactly where I want I could also make this one you know bold or whatever whatever I like to sort of bring it out so just play around with some of the formatting there as you like it I am now going to add a gallery which is that vertical list of the rolls that we saw in there so back over on this part of the screen let's grab a vertical gallery and you'll see it just kind of plunks it in a weird spot but that's okay and I'm going to search for my rolls table in Microsoft data verse you'll see this is where I could actually bring in data from other data sources to display that in my model driven app so you might want to have like a news feed or I don't know something from another system that you can bring in there so that's an option as well I going to just choose this one for now and then let's grab this and while it's bringing the right data in move it around and sort of move the layout so that it fits I'm going to put a couple of buttons underneath the gallery so let's uh bring that let's bring that up a little bit there it's not ready for that yet so it's still loading I'm trying to do too many things too quickly at once we'll give it a second to to come up there we go please wait please wait I get a bit impatient all right so now we've got our data in there you can you know sort of scroll this so that it fits fits quite nicely but you'll see it's bringing in roles with the name and the created on date which I don't really want so over here we can choose something different so I'm actually going to say I can choose my view because I've got this as a custom page and directly connected to that dataverse table these are the roles that I chose before and remember we created an open rolls view so that's now going to apply that filter that I made earlier and then I can also come in here and choose something so instead of having those things there let's change as a starting point the layout instead of image title subtitle cuz there's no images with this I just want title and subtitle so that's going to clean it up a little bit and then I can come in here and say What fields do I want so this item name as the starting point is fine but I don't really want created on I want Department look at that that's looking a whole lot better so now what I can do is change the color of some of these things so if I come in and click this little icon now I can format what's in there and if I click on that heading you can come in here and change the color of that font choose whatever you like custom but if you want to play along at home with the same color that's the hex code that's in there and see how it's changed so now we've got that all lined up and then the other thing I want to do is bring in a little sort of navigation Arrow to encourage people to see that they can click through so again if I click on my gallery click on the the pencil icon that goes in you're basically just doing it looks like you're editing the first row but it actually flows all the way through we saw that with the color change what I want to do now is bring in an icon so there's a bunch of icons in here so let's scroll down and find the one that is called right and it'll just pop it in in a weird color in a weird location don't worry about that drag and drop that to where you want it to be and they'll all follow along if you want to make it a little bit smaller we can do that or a little bit bigger you can sort of fiddle around with uh there we go that'll do and then what we can do is also give that another color so I'll give you another sort of hex color code in my color scheme here you'll see that's blue at the moment we'll go in here and put that one in and we're getting a nice pink color is it all too pink I don't know I quite like making it look like it fits the theme but uh you know you do you so then what we can do is say what I want is for when somebody chooses is that icon so again let's go back into the the gallery and click on that that should navigate them to that record remember that was a navigation piece that we're allowed to do in there so on select is what happens when they click on that and we actually want to change this formula here so let's get rid of that formula and there's again when we looked at Power FX formulas before this is a whole other world of learning and language but you can follow along with what I'm doing here when it's selected I want to navigate and what I want to navigate to is the item that's been selected in the gallery so if I come back here into my tree view you'll see these are the names of the things this thing's just called Gallery one you can actually give it a more sensible name than that if you like but I'm I'm being a bit lazy here so what we want to do is to say navigate to Gallery 1 and it's highlighted it and I want to navigate to the selected item in that gallery and close the parenthesis there so now I've got a formula where that's going to create that navigation experience I'm going to put a couple of buttons here at the bottom to be able to sort of navigate to the different tables in the system so to do that let's make sure I'm sort of clicked out of the gallery now I can come back into my insert menu or you can use insert from the top here and I want to insert a button again kind of in the wrong spot I'm just drag that down let's make it a little bit bigger and then I want this button to be the applications so we can come in here and just change the text so we'll go applications and I would like that to be a different color and a different font so let's make that a bit of a bigger font size to make it a little bit easier to see let's grab that same hex color that we were using before so we can come in here and I want to actually change the fill color so the colors here that is the text color and that is the fill color of the button you'll notice you can also change the hover and the Pressed color I'll just do this one for now so let's come in and put that one in so we've got another nice pink button in there and what I want to happen is when this one is clicked on it will navigate to the applications table actually one more thing border radius make that 10 that gives it slightly sort of rounded Corners which is quite nice when we click on this button I want it to navigate to the applications table so the way we do that with the buttons selected is to come in here and the property so this is just all these different properties all these things you can do we actually want to choose the on Select Property on select of that button what should we do this is navigate again it's one of the most useful things you can learn in this part of it we want to navigate where do we want to navigate we actually want to navigate to the name of the table now again because I've created it as a custom page and not a standalone canvas app it's ready to rock and roll with that thing without any effort at all so I'm going to just type in applications and it should find ah I've missed a step my bad all right let's get rid of that we need to add the tables in there first so let's come back into the section over here called Data at the moment my app only knows about roles we need to add a couple more things so we need to add in the applications table and I'm also going to add another button for the interviews which we haven't done done yet but this is just appointments we're just going to use outof thee box appointments because you know that's in the platform so why not so we'll wait for that one to come up and then we can probably add it while we're waiting I'm also going to add appointments from Microsoft datae as well so we'll wait for those things to come through and then we'll have more success with the navigation on the button because uh it knows about that table and when I'm looking for a formula it will be able to do it so on select now for our button we're going to say navigate open the bracket applications there we go that's a whole lot better and close the bracket lovely let's duplicate that button so we can do another one so instead of having to do all that again I can just right click on that copy right click again and paste and move that along a little bit change the name of this one to in interviews we're going to change the on Select Property this one to go to the right table so we'll come back here and say on select we're going to navigate to now the interviews we're actually using appointments we've just given it a different name but that's where we want it to go and do I have another color for you do I what of course I do let's grab another one here and choose this custom put that one in there and we are on theme so now that's it it's a nice simple sort of opening page play around with this if you've got the canvas app skills you know do some fancier things but that should give you a sense of the kinds of things you can do here which is enough for now let's click on Save we give this one a name we're going to call this welcome page and save it and then we just need to wait till that's finished bit patient Lisa and then we need to publish it so as you're going through this you'll see we're going to bring this into our model driven app so this ort of a couple of steps to this we publish the page and then you need to bring it into the model driven app and publish the app so if you do want to come back and make changes to this later you're going to need to navigate back through the main menu into the pages and make the changes and publish and then republish so you just need to be aware of that sort of publishing cycle if you like of those things and then the last thing we need to do is bring it into the model driven app so we'll navigate over here into apps open the recruitment app and we just need to bring that page in so what we did earlier when we built the app was bringing in pages that were actually dataverse tables now we're bringing in an actual actual page so we click on new here we are going to choose custom page and click next use an existing custom page notice you can actually create one from here if you prefer we're going to choose that welcome page and make sure we show it in the navigation and click add and from there we want to push it up the navigation so we will click here and move move up move up move up to get it up to the top and now what we need to do is save publish and play so there's always these two layers of saving and Publishing when you're working with a custom page you need to save and publish it in that canvas where you were working bring it in here save and publish it if you do need to make changes you do need to go through that again so you will need to make the changes to the custom page publish them there bring them in here actually the page would already be in here and you'd need to publish it again so we've done our first page there save publish are we excited about how this is going to look if you get any error messages that come up in this process that says you know warning you sometimes it comes up on the screen with a big like warning your app needs to be republished that's just all the things I was talking about that will go away once you've done this process and you're good to go give it another second here and then we should be able to play it and we are nearly done we're also going to talk about security roles before we finish cuz that's a really important part of what we can do with model driven apps as well don't forget if you've come this far give me a comment I know a lot of people will watch the whole thing all the way through uh but give us a bit of a shout out if you've come right through to the custom Page's end of things especially if you've done it all in one sitting well done I've had a couple of breaks in in recording it we will click play and see what we have got now in our wonderful beautiful custom page so now I've got all of these buttons here that I can navigate around to my applications page and I can go back and scroll through all of those things I can jump straight into the account manager so this can serve as a really good overview navigation welcome tutorial as heaps of things you can do with this so the last thing I need to show you really important thing is around security roles and how you're going to share this app so we go back into the Power Platform admin Center the core part of sharing an app and making it available with model driven apps right back where we started is around the dataverse tables the security model who has access to what so this isn't just about sharing an app this is actually about giving people roll access to what they can do what they can read write edit delete in the app so this is really important aka.ms ppac right back to where we started if we go into environments choose the environment that you've been working with let's just zoom the screen up a bit so it's a bit easier to see we're going to go into settings and this time we're not just doing all the feature switches we did earlier we are actually going in here to users and permissions security roles now out of the box this comes with a stack of different security roles but when you have made custom tables you want to be able to assign the right security roles to those things so there are out of the box security rolls in here that you can work with one of the things that's good to do is to take one of those and duplicate it and use that as something that you can do for your app we will give different users different roles so for this recruitment app for inance you might have a uh a user a manager user who can perhaps create a role or edit a role but maybe only someone with a human resources role could do the application process so you can set up all of those kinds of things to control exactly who can do what so these are the ones we've got out of the box let's take a look at this one here called basic user this is the basic security role you actually Can't customize this one but you'll see the Privileges here about being able to create read write and do all sorts of things not just with the tables but all of the other kinds of functions that go with the app let's make a copy of this security role so we'll call this one recruitment basic role and this might be the Baseline level of the role that we give to people to be able to access tables but then you want to build out other security roles if you want to make that more complex just be careful that when you're assigning people multiple roles that it changes the privilege they've got there's a whole world of complexity here I want at least get you across the basics of setting up a security role and sharing it with the users but what we're going to do here once this recruitment basic role comes up is go in and put in those custom tables that we've created to make sure someone has access to them because that's core to how we actually go about sharing the role so now we are still stuck in the basic user role let's navigate back to security roles find the one we just created here which is the recruitment basic rle and now what we want to do do is have a look in here at the different permissions so I don't need to change anything about the business management the business process flows we've got in here the core records so those are the various sort of core tables so for instance contact you might want to say who can change things in here so user privilege means just the individual user my records that I own so remember whenever we're looking in the tables in the database it's like owner Lisa Crosby that means I could create read write delete write is edit a pend and a pend to is things like where we've got related records and can we add related records assign or share with other users so this gets quite comprehensive here so for instance I might say that I can create things but I want to be able to allow this role to see everything all of the contacts in the organization they should be able to see them but they should only be allowed to edit the ones they've created or maybe they can only edit the ones in their own business unit so you've got this hierarchical security model that's around saying you've got individual users and users belong to business units and then there's a parent child hierarchy that goes on there and that sets all of these permissions so the delete permission could be none you're not allowed to delete anything and then once you've got that duplicate role set up what you want to do is go in and make sure you've given permission to the tables and the business process flows that you created so you can come in here and type application to find that application table come through there and then set those create read write delete permissions the same as we did before perhaps you want them all to be at the organization level or whatever things you want to do and repeat the same thing for the business process flow and the roles once you're done with that you click on Save and close and then the next step is to assign those security roles to the users so we're going to come back in here into the users and permissions and select users and this is where we add those security roles and this is what's going to give them access to the app so we come in here from each user you choose manage security roles and this will give you the roles that are available so if I come down here I should be able to find my recruitment basic role maybe we don't want system administrator or whatever it is you can see you can add in any combination of all of these things system admin will basically give the person access to everything in the system so if this was a basic user you'd just give them that role and that will give them access to the things that we have just provided and you go through and do that for the rest of your users now if your demo environment your trial environment doesn't have other users in there again just sort of click on your own user that you've set up for yourself and you should be able to at least click through and go through and understand what has to happen there one final step then which is that we need to put that security r roll back into the solution and Associate it with the app so we're going to come back into our solution here we go to the top level here and we're going to add an existing security roll find that security roll so that one was called recruitment I think yes recruitment basic roll add that one in and so that's also part of the whole solution when we bring this across to different environments we want that to be part of it and so then the one final part now is to share this app with the people who have that security role so we're going to go back into our apps check the three dots here and click share and now what we can do is choose to share to the apps now I'm in a developer environment it has sharing permissions you obviously won't get that in a a real scenario but we're going to say the recruitment app and then we manage which security roles the app will use so the whole process here is you're setting up a security role the role has permissions for all the tables and functions you give that security role to a person and then you also say that security role applies to this app and then that combination of things sets up all the access it's all very comprehensive in how these things come together so we can come down here now and choose another role I wish this one was in alphabetical order it always takes me a bit to find it there we go recruitment basic role and I can click share and then that will mean now that anyone who has that role will get that as a final stage then you really want to give them the URL for the actual app itself so you can just come in here and grab that and copy paste and send that through to someone that's it thank you so much for watching thank you so much if you've got this far like share subscribe all of those things and have a look at the other videos here that can take you another level further in things that you can do to help your understanding of model driven apps as always thank you so much for watching and thank you for your support
Info
Channel: Lisa Crosbie
Views: 25,251
Rating: undefined out of 5
Keywords: model driven power apps, power apps model driven app, power apps, powerapps, model driven power apps, model driven powerapps, model driven powerapps tutorial, power platform model driven apps, learn powerapps, powerapps tutorial for beginners, microsoft power apps, model driven apps, model driven app example, model driven app, powerapps model driven apps, what is model driven app?, how to create model driven powerapps, microsoft dataverse, dataverse, learnwithlisa
Id: HrILchHvMUA
Channel Id: undefined
Length: 141min 17sec (8477 seconds)
Published: Mon Apr 29 2024
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.