Power Apps Model Driven Apps FULL COURSE for Beginners

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hello and welcome this video is a complete course in how to build a model driven app and when I say a complete course this is the amount of content I would usually cover in a full day of training so lots here I've arranged this all in a single video with chapters so that you can jump in and out if you don't want to do it all in one sitting or skip ahead if there are some basic concepts you already know but what we're going to do over the course of this video is build out a complete asset management app and along the way you're going to learn the skills you need to apply that to build your own model driven app for your business use case I'm providing this completely for free because I know so many people are interested in building model driven apps and I would like this to reach as many people as possible to get on board with this so if you do find Value in this video please give it a like please share and help me to get this out to as many people as possible model driven apps are part of the Microsoft Power Platform and it's one of the types of power apps that you can build and here is the use case for it I need a database form my business it's a database application so the reason you would look for a model driven app as a solution to your business problem is where you don't have a data source or you don't have a data source perhaps you're using Excel or SharePoint a bit beyond their limits it's not serving you well anymore so what we're going to do here is build out a database application using Microsoft dataverse which is the database platform that sits right at the heart of Power Platform it does a number of things here we're going to be able to easily shape our data and as we go through this tutorial you'll see building out data tables and building relationships between them we also have the ability to have business process and logic and you'll see that we can automate things and take users on a guided step-by-step process through what it is that we need them to do there's complex security so we'll have a look at some of the security modeling available and how we can give different permissions to different kinds of users and that can go right down to the level of individual columns on individual tables if you need to it's also scalable and has a lot of storage this goes to terabytes of data these types of apps are used by some of the world's largest organizations so you're not going to cap out with this in the way that you would using something like SharePoint as a data source and you can also connect other applications we'll have a look at how you can bring power bi reports into your app you can also build out a whole lot of other connected pieces here connecting to other data sources with Integrations and things if you need to do that a little Beyond this tutorial though so then what is a model driven app in relation to all of that it starts with Microsoft database that is your data source for a model driven app the model driven app is essentially the front user interface that sits on top of your Microsoft dataverse database that you're going to put together we build that user interface with no code this is all drag and drop click and point stuff so the real thought process here is in what are your data tables and how are they coming together but the interface itself comes together really quite easily it's all component driven we put all the different pieces on the screen where we want them we're working with an editor that shows us the end result a wysiwyg editor what you see is what you get and the whole thing is fully responsive and fully accessible and connected to the other Microsoft 365 tools like the ability to export to Excel and track emails in the timeline and so on without you having to build any of that so we'll see how all of that comes together some example use cases of why you would use a model driven app things like managing your customer data so for instance you've got your accounts and contacts and you need to keep track of the activities you're doing a very basic CRM type use case onboarding employees where you're going through a process and you want to track the steps and stages in that process and keep a record of what's done and where and you might want to automate some tasks and things of that you could manage your complaints or ideas process all the way through to turning that into projects and tracking what's going on there or managing an inspection process where people need to keep track of what's happening with checking up on things mission critical databases this is where we see the use case for this so if you're working on something that is absolutely key to your organization this is the platform solution that can work for you because it is this Rich complex secure database capability underneath if you have a mission critical spreadsheet this is the moment to consider using this and you can actually add power pages as well here to put that data accessible out to your customers so if you're doing something like grants management or permit applications or customer service ticketing and so on you can use it for that this is the app that we're going to build throughout this course it's an asset management app this is designed for a scenario where the organization needs to manage assets we've got laptops phones things like that that get allocated out to the employees we need to check the condition of them before they get allocated out we need to know what's available we need to be able to allocate them out to the employees get approval if there's some exception to what they're getting and be able to manage that end-to-end process of when they were allocated when we're expecting them to come back and when they actually did come back so we're going to build all of this out data tables that relate to each other as well as that end-to-end business process automation what we've got in the model driven app itself here down the side is the left-hand navigation menu you can go into the recently used items so if you're coming back into it to use something that you've used frequently that makes it nice and easy easy or you can pin records that you want to come back to over and over again navigation here back to our dashboards we'll talk about that in a moment they're sitting right in the middle of the screen here's our list of employees our list of assets and the list of asset allocations there's a toolbar across the top watch this change as we click around the app because you'll see a lot of cool commands that are in there all of this stuff is just built with the model driven app you don't have to do it by hand there's a search at the top this is using a search across the whole dataverse database underneath so that you can search by keyword bit of fuzzy logic in there that makes it very easy to find what you're looking for so in the middle here we have a dashboard this is showing us a list of our available assets we've also got a chart on the side here which is showing us the assets by their status what's available and what's already allocated as well as a list at the bottom here of the allocations that are in progress and where they're up to and I can click through on all of these things to check out what's going on let's have a look first at our list of employees so I can click on the site here and that will navigate me through you'll see this bar at the top has changed we've got some settings in here that allow you to do things like export to excel visualize things in power bi all of that's built into the app and this is called a view where we've got columns and we can sort and filter by those columns which I'll show you in a moment let's click through and have a look at Sandra here this is a form so we're going to configure this we've got sections on the form so we've got a section here at the top for her contact information another section here for the address timeline in the middle which is allowing us to track all of the activities emails tasks phone calls and things that we've sent and engaged with her as well as some other information here this is a link through to another person in the database who is her line manager we've got a profile picture for her and then we've also got a tab here which allows us to see the assets that have been allocated to her so we can see that we've got a laptop with Chas an allocation date and a return due date which is three years from the date that it was allocated I can click straight through to that actually to have a look at what's going on there and this is a screen where we've got a business process flow across the top so this is our asset allocation screen that's showing us a process of something's been requested approved we've done some kind of check on it and it's been allocated it out but what this is bringing together and this is where we've got these data tables related to each other is the name of the employee we've got a link to the line manager who made the request this is a link to the particular asset that's been allocated and we can see on the side here that we've got visibility of those things so the employee is Sandra and here is visibility this is read only can't click on it of her and this is the asset and that is the details about the asset in there I'm going to take you through how we create this end-to-end process and build it I'm also going to show you in a minute the experience for the user of doing it let's have a look at one final thing before we do that which is the asset itself so we've got this ability here to see all the details about the asset you can put a longer description in here I haven't put too much into that as well as the allocation so we can track for this particular asset what's happened to it over time so I hope you can see as I'm clicking around here how this is a truly relational database and quite different from something you might work with on a spreadsheet or on a SharePoint list from each of these things we can see what's going on from inside the contact I've got what assets have been allocated and where are those things up to from the asset itself I can see the history of allocations and then we can bring these things together in an allocation process so let's have a look at creating one of these from scratch let's say that Sandra also needs a phone we can go into the list of assets here and I can sort and filter and see what's available this is showing me a list of all of the active Assets in the system I can also switch the view to see a list of the available assets because some of them might have already been allocated to somebody else then I can go in here and narrow this down so we're going to filter this by equals phone because we only want to see those things and you can imagine if this is more comprehensive you can filter by you know very long lists of data here and we might want to say newer to older so let's say we're picking up the newest item first we are going to issue her we have a look at what the options are and based on you know what's going on for her role we're going to issue her with this iPhone 14 so we can go in and have a look at all of that information there from here I can actually create that asset allocation if that all looks good so we'll go in here and create this so this is going to be a phone for Sandra kellett we look up that employee so this is connecting it to that other record in the system and I can start typing her and pop her in there and then the allocation date will put in as today and save and close that now that's created that record I can go in and click through and here is my allocation record exactly the same as what we're looking at before but you'll see in this case that the process hasn't been started yet we can go in and see who it was requested by so in this case it was requested by her line manager and here's the process across the top so we're going from that request so we've got who it's requested by what the asset is and whether it's outside the policy or not let's say we've requested something outside the policy she wasn't actually entitled to a phone quite this good but we're making an exception I want you to watch what happens here two things will happen when I toggle this switch from no to yes so you ready oh did you spot it what did you spot I'm going to give you another chance there there we go you should have seen two things approval popped up in the process bar and reason popped up here with a red asterisk which means it's mandatory let's see that again so what we're doing here is applying some business rules to make sure that something has to happen so we're saying Yep this is outside the policy um and we're going to say exception requested by a manager or something like that whatever the reason but we have to put the reason in and then what happens is we've got this approval stage that wasn't in the process before we move it through to the next stage this is triggering something in power automate to run an approval flow so we're going to click on that to run the flow we'll give it a second to come up here and I'm doing this in real time here we go so we're going to say yes let's run that flow so that needs to go to the manager to approve and what happens is the manager will get a notification in Microsoft teams to approve that particular thing let's bring that one across here so we've got Dan here this approval has come through there we go exception requested by manager so we've got that coming through that's going to Dan who made that request and he can say yep that's fine all good and approve that request all right let's uh Pop Dan back over to the side here we'll give this record a refresh and then we can see that that approval status has come through as approved so we're good to go to the next stage here we have an asset check and we need to make sure that the asset is in satisfactory condition so we've actually got another table here that's doing that so we've got our asset checks here so someone would be responsible for doing this check we're going to go phone asset check the check is on the allocation rather than the return so we might want to be checking it as it's being allocated out as well as when it's being returned the date is today that we're checking it um great condition long battery life and so on now this is actually rich text this is something else you can do in here so we could go through and make this bold we can put highlights in here so you've got this ability to do all sorts of things like that check result is that it is satisfactory and we have a little rating element in there as well we can save and close that and that's created a related record in here so so far we've got our person we've got an asset this process is bringing them both together and then there's another related piece of that which is the checking process and now that's sitting in there so in this whole asset allocation process we might have different checks along the way the check when it was allocated out and the check when it was returned and we've got that complete record of that stored here so asset check is done we can say that that's satisfactory we can automate that I'll show you another example of the automation of that here's the allocation date that's been filled in as we've done all of those processes so now what I'm going to do is Click through into the asset itself and we'll see that the allocation status here has changed to allocated where it was available before if I go back to my main dashboard here you'll see that chart has changed as well that was a one and a six before so one more asset has been allocated so that's our end-to-end application with some Automation and business process flow that we're going to go through in this course you'll also see in here I've got a sample power bi dashboard so I'll show you how you can bring a more sophisticated dashboard in here as well if you want to do different things with power bi all right are you excited to build this I'm excited to show you how to build this let's go to get the most out of this course you're really going to want to follow along Hands-On if you've already got an account set up with premium powerapps capability good to go skip ahead to the next chapter if you don't best thing you can do if you've got a work or school account is to sign up for a power apps developer plan I'll show you that and then I'll show you another alternative if you don't have a work or school account so if you do have that work or school account go to this site here for powerapps developer plan click on get started free this is a premium license that won't expire this is the best way to do it if you can all you need to do is put in your work or school email address there It'll recognize that you already have other Microsoft 365 services and so on that are provided there you just need to go in and choose your country I'm all the way up at the top of the list here in Australia uh there we go all right uh put in a phone number it needs to be a real phone number because it is actually going to send you an SMS or call you to check that confirm all my details yes thanks I would like to get started and then that will redirect you into your powerapps maker portal now you'll find this has created an environment we're going to talk about environments which is in your name and that's where you'll work so if you switch across into that one there select it from the list then you'll find you've now got this premium power apps capability the way you know this has worked is that you will see that you've got dataverse tables so if you go across here into database and tables you'll see a bunch of the standard tables are there and all of that capabilities ready to go if you're working in an environment where you don't have that you're going to need it now if you don't have a work or school account and you come through the powerapps developer plan you're going to have a problem like this if you're working with something like a Gmail address um it's going to say no that's a personal email address you can't use it so in that case what we're going to do is sign up for an Office 365 trial account now this one will have a limited time I'll also pop a link here for the Microsoft 360 5 developer plan which gives you longer it's a bit more of a sign up process if you want to pursue that but this is the quickest and easiest way to get started for now so you're going in here you're going to sign up for a free one month trial again you just pop all of your details in here with a real phone number because it will check up on you put in your name or the company name it doesn't really matter and again choose your country from the list now the next thing you're going to need to do here is choose what your domain name is so be prepared to think of something here that's going to be unique to you that you can remember so when we get through to the next step sends you the verification code as you would expect you've probably done this many times before you'll get that verification code and have to put that in are all good verified well legit and so here we go now we have to put this domain name in so I've put peter123. on microsoft.com when you put that in it'll tell you if it's already used so you just have to go for something a little more unique than that uh generally it's not too hard to come up with something unique if you use some numbers or your name or whatever password for the admin account and you're all signed up so this is now giving you that Office 365 E3 account you can get started and from there you can now go back and use that email address so let's just copy that from there there we go grab that go back into the power apps for developers because now this counts as a work email address so we can go back here into your work email address paste that in next and it is good to go because it's accepting that so I said this will expire after 30 days but at least it gives you a free way to get started you don't have to put credit card details or anything in there and same experience then it'll allow you to click through set up your country phone number and so on and it'll take you straight through to that power apps page where you can get started so let's just go through that get started here there's my user id make sure you copy and paste that keep it somewhere safe because it's not something you're necessarily going to remember and again we are going through into the powerapps experience here don't worry about your contact information you can put all of that in or you can just skip out of that if you prefer not to do it it just gives you that information it'll provide some sort of extra support and help along the way skip through these things if you get those there and again at the top here in the environment we're going to go contoso and if you don't see your new environment straight away because it sometimes does take a couple of minutes give the screen a refresh or like a control F5 to do a hard refresh you'll see that one there with your name select it and once again we've got that dataverse capability so you'll know you've got this sorted out if you're going in there and you've got the database tables and you're good to go all right so one way or another you've got a trail setup and we're ready to begin building our app to get started navigate in your browser to make.powerups.com this is where the whole build experience is going to happen you don't need to download any software or anything it's all built online here two Core Concepts to get you started one is environments and one is Solutions and these are the things that allow you to build all of the assets have them together and put the security and permissions that you need around them which we'll come back to later in the course so top right of the screen here we have the environment switcher so the environment is where we can actually create different environments for different purposes so you might have something where you're developing an app and then you push it through into testing and production if you're working in a larger organization you might have different environments for different types of users and different types of apps because you can have different people with different levels of permissions in each of those environments so you'll have some people who are working on developing apps and then perhaps the majority of the organization in the production environment so that's the concept of an environment for what we're doing now chances are you won't have a long list of things like I've got here you'll have something that says default and then perhaps the one that you created earlier with your name do not build a model driven app in the default environment you won't be able to do it you do need an environment that you've created so in that previous section where we signed up for a developer plan you'll have that environment or whatever other environment you've got I've got one here called Asset Management if you've got the ability to create your own environments you can go ahead and do that otherwise just use that one with the developer plan step one also make sure if you're coming back to this switch there because it will come back to the default environment every time and then you won't be able to find anything so always check am I in the right environment okay next thing we need to do is create what's called a solution so I'm going to navigate over here and a solution is the this is not a very technical term now but a bucket where we're going to put all of our Assets in so as we start to build our data tables and those business process flows and all the different logic we're grouping it together and this allows you to move your build assets across different environments so again in that real life scenario you would be developing in a developer environment you create a solution and you're packaging it up it's like a zip file if you imagine that you can take across to different environments so we always want to be building inside a solution it gives you visibility of what changes you've made and what assets you've built just to give a little bit of an idea of where we're heading this is the solution the finished solution you'll have by the end of the course so I've got an asset management solution and I've got a bunch of different things in here you can see I've got tables processes security roles and so on don't be scared off by this a lot of these things just kind of get added as we build it out but you'll see I've got a big collection here of a whole lot of different things that make up my model driven app so when you first come into Solutions there's a bunch of sort of default things here which is just the Baseline of dataverse and and the capability that we've got so we go into here and say let's create a new solution I'm going to call this Asset Management and we need to select a publisher here now again in a real life scenario you can have a publisher that is you know your name or your organization's name let's go ahead and do that there's a couple of options in here that you can just choose the the default but we'll go in here and I'm going to give myself a name as the publisher here this will need to have a display name and a schema name so the schema name you'll want to have sort of no spaces in it and then the prefix I can put in here two to eight characters long so I'm just going to put in my initials in there but you can do whatever you want so organizationally you might set up a publisher that is more like your actual organization name if you've got a team of developers working so you know go with whatever whatever makes the most sense to you in there once that new publisher is created then we can select it from the list so I'm going to choose myself there as the publisher version it's the first version of my app I don't need to do anything else there and create and now I have got my solution so throughout not this course whenever we start to create new assets we're always going to start in the solution and we're going to be bringing in a combination of standard things that already exist in the platform and creating new ones but this is our starting point and you'll see we've got nothing in there but we're going to always navigate back to here to bring those things in Microsoft dataverse comes with a bunch of standard tables out of the box so you don't have to create everything from scratch when you're building your model driven app I'm just going to show you this in my environment here for Asset Management if I click on dataverse and tables these are the standard tables that are provided for me so you'll see I've got tables for account address appointment various other things here contact it is worth getting familiar with those out of the box tables because you don't want to rebuild something that already exists these are very very rich so for instance contact is something that many apps are going to use you've got people involved or accounts involved where you've got a scenario where you've got organizations and people who work for them if I click through into that that table and this is starting to navigate you around the experience that we're going to have here we've got the the table properties we've got the different columns that are available in the table so these are the attributes or Fields so you'll see for a contact we've got things like the address already in there and and like three addresses already in there um their birthday the company phone number a whole bunch of stuff about permissions for contacting them first name and so on so this is a very very rich table you don't have to use this at all you don't have to use all of it and you can actually modify it and do other things to it that you want to be doing navigation around here breadcrumb Trail we're going to go back into that contact again and we're going to come to this as we work through building the app but this is where we can build out those forms and Views that we saw in the earlier demo as well as the more sophisticated things like charts and dashboards and so on so as I said lots of default tables in here especially account contact all of the things related to different types of activities emails tasks and fun ankles and stuff don't go creating any of that you've got all of that there and you can just use it and modify it as you want so the first thing we're going to do is bring that contact table in because we're going to use that to be the place where we're putting the information about our employees so I've got my blank solution here and the first thing I'm going to do is to bring that existing table in so from here I'm going to say add existing and you can see as you start to you know look around here and it's worth sort of poking around a bit there are lots of different components we can use in our app you'll start to get a sense of how sophisticated it is so I'm going to add an existing table I can search here I can just type in contact at the top and find that table let's select that and select next and now it's asking do I want to bring existing objects in so if I include all objects it will bring into my solution all of the columns and forms and Views and stuff which is a lot for the contact table with your solution you only want to bring in the things that you're actually working on you don't want to bring the whole lot in because part of the thing with the solution is just seeing the pieces that you've been working on so I'm actually not going to bring in all of the different things I could select particular things to bring in but I just want to bring in that table as a starting point so I'm going to click add in there and we will give that a moment to there we go so now within my Asset Management I've got the contact table and I'm going to be working on that I'm going to modify that because we want to bring in some information around the employee and sort of change things around a little bit from the standard contact table so I'm going to open that I'm going to click on columns here to go through and see what the columns are and add some new columns so what you'll see unlike when I showed you the full thing before there's no columns here that's because when I added it into the solution I just brought the table I didn't bring all of the other bits and pieces so it doesn't mean there's no columns there I just didn't bring them in so now what I'm going to do is add some Columns of my own and we're going to show lots of examples as we work through the course because this concept of building out tables we'll build some from scratch but we're adding these fields attributes columns you know they're called columns in here but it's the same thing so for a contact a first name is a column so what we're going to do here is add some columns in here to bring in the line manager and the profile picture so if I go back to my original app this is what I'm doing here some of these components are all standard first name last name email address and the timeline is already there but I'm bringing in this additional piece here of looking up to an additional person in the system who is the line manager and also bringing that profile picture in there so that's what we're doing at this point so we're going to create a column here which is called line manager and each time you create a column you're going to choose the data type and we will do an example of as many as we can fit in for this course so you can see here we can choose for something to be a single line of text we've got numbers dates and times and various things in here what I'm creating here is a lookup which is that experience of saying I want to connect this to another record in the system this actually creates a relationship in the database between the tables now in this case my related table is contact I'm actually creating a lookup between a contact and another contact so that's something that we can do so the line manager here is and this experience of the lookup the experience in the app is this little magnifying glass and the live link to that other record incidentally when you hover over it all of that stuff that just happens by the way we don't even have to build that part so what I'm going to do here is choose that and save that and that is done the next thing I'm going to do is create another column for that profile picture so we'll just give this a second to save and there it is another new column here so this one is going to be the profile picture so you can have image columns I'm using it for a profile picture here but this is actually also useful if you want to do something that is used for say you've the assets that I've got in here if you wanted to take a photo of the laptop or whatever and save it in there you could do that so it's an image and that's pretty much it we're just going to save that and so each time you create these columns in the system you'll see them get added into the solution so now we've got the asset management solution my table contact table and here are the columns that I've added in here and you'll see as I start to add these in that prefix for my publisher is in there as well so it's all identifying that it's me who's built these things inside that solution all right now what I'm going to do is create a form for my contacts so this is the concept of a form this is what we're seeing on the screen here when I open one of those records what I'm seeing on the screen here is called a form so we'll go back into here and we navigate back down the breadcrumb hierarchy back to that contact table in there and I'm going to go into forms here and create a new form I don't want to use one of the standard ones that comes with contact I want to put things where I want to put them so I can go in here and say let's create a new form we're going to come to these other types of forms a little bit later in the course the main form is the main form when you open a row or record in the system so this is a wysiwyg editor what you see is what you get you'll see as I start to build this out that it looks like the back end of exactly what we're having a look at before when I create a new form from an existing table like a contact it comes with some stuff already there so you'll see I've already got contact information timeline various other things if we've created a table from scratch the behavior is a little bit different so a lot of these pieces are already on the screen because I'm working with the existing out of the box contact table so some of the work is done for me first thing I'm going to do is change the display name on the side here so we're going to call this one employee because that's what we're using it for now just to navigate you around we've got a lot of properties on the side here so as we click and point we're going to change the properties over here we've got all of the different columns on the side here but there's also a navigation menu here that allows us to switch between components which we're going to build on the form and the columns that we're going to bring and drag in as well as some other things that are more advanced that we'll get to there as well first thing I'm going to do is get rid of some of the standard stuff so if I scroll down a little bit here you'll see that there's a map functionality in there I'm just going to click on that whole section and delete it or I can use the delete key on my keyboard because I don't want to use the maps in in this particular scenario so we get rid of it and then what I want to do is to add another section in here so you'll see we've got and you can actually Zoom right up here if you want to get a closer look at that you'll see we've got sort of the first name last name and so on and all of the addresses in there what I want to do is separate that out so you can see I've got contact information this is called a section that white box and I want a different section here for the address because I think that's a little bit clearer so in my components menu over the side here I can work on the components menu I want to add a one column section so if I click on that you'll see it will add it below where I was just working so it's a little bit sort of off the bottom of the screen there so I can scroll back out if I um if I needed to you know if I can't see it properly on this screen so once I've clicked on that then what I want to do is go over to the properties part on the right hand side here I'm going to change the label there to address I quite like to use all caps for those for those headings all right scroll down a bit and we can see it and then what I want to do is to move the address columns into there now this is a bit of a special property the address if I click on it it's all together so this is something that this is sort of all treated as one thing you can bring them across as separate pieces if you want to but I'm going to take that and drag it down there so the address is a special it's like a composite set of things you'll find for most other things like if I worked with email for instance I'm just dragging and dropping one thing at a time so now I've got my address in a whole separate section I can get rid of some things I don't want here so fax I don't know about you no one really uses facts anymore as far as I can tell let's get rid of that and account name here which is a look up to an organization because we're treating this as a list of employees I don't want to use that so again I'm just going to delete that so we've got a good starting point here what else do I want to do I'm going to add another section in here for the employee information so this is going to sit over on that right hand column there we're going to create something else so I'm going to create a another one column section again it'll drop it in sort of so watch where your cursor is because it drops it in wherever it is so I'm going to take that I'm going to drag it up here this one is sort of a standard out of the box thing that comes with the contact form that I don't want Let's uh let's get rid of that so we've got our new section here and I'm going to call this one employee information okay and then we're going to drag and drop some things in here so let's just you can collapse that out so that you can see more of what's going on so I want to bring the job title and the department in here so there's job title so you can see I can just grab that and drag it across to there and the department as well Department isn't on the form so let's bring in columns that are not yet on the form so I'm going to go over here into this section and we've got all of these things here now if you're working on a table that doesn't have much you're fine but there's too many things to to search for here so what I'm going to do is just search for departments so I can find it there it is grab that and drag and drop it in there and then I also want to bring in the line manager and the profile ones that I've just used so we'll get rid of that search let's search for line manager there we go bring that one in there and also the profile picture and bring that across to there all right looking good now if I wanted to change the widths of some of these things because it feels to me a bit like that's a bit squished up now let's bring our properties back out again here click on the entire tab here so this is the summary Tab and what I'm going to do here is we can see the formatting of the layer out has three columns 33 42 25 let's even that up a little bit here so we're just going to go 33 33 33 and that feels like a much better adjustment so we can just change those column widths there all right let's save that and then what we want to do is change the form settings so that it's at the top of the list so the experience here if I go back into my app is that you can actually have multiple forms so you can have there's the original contact form employee form so depending on what you're doing if it's something more complex you might want different groups of users to see different pieces of information so the system does allow you to have that and apply security and permissions or even for the same group of users to be able to see um you know different versions you might want them to switch across and see it in different ways so what we want to do here once that's saved is go into the form settings to set the order so that this one will be the default this is the one we want to come up at the top so if we go in here and go to form order then we've got our contact employee and information employee is the one I've just created so I'm going to just grab that drag it to the top of the list and save and publish and that means now that when I'm working in my app that's the one that will come up first unless I do something more complex with different users having different ability to see the different forms but by default that's going to come back up to the top all right we've finished making our form we'll just give that a second to save and publish and then we're going to go back to our solution and create some other pieces around the contact so back and sometimes you have to press that back button a second time let's yeah usually you have to press it twice to get back into your solution from the form for some reason so that's navigated us back to our form and you'll see because we're building from within the solution as we create all of these different you know build assets they just get added to the solution so you'll see now with my table contact forms there's the employee form that I just created navigate back up once they're in the breadcrumb trail and we've got all of the properties and things here as well so now what we're going to do is create a view which is the experience again if I go back to my app here and click on this this is the view which is the column setup that we see and you can put whatever columns you want in here you can also have different views as we saw in the demo where we looked at the assets or the active assets so I'm going to create a new view in here actually sorry what we're going to do is add an existing view so I'm going to bring in the existed the existing active contacts view because that's one that's sort of close enough to what I want we're going to build out some more sophisticated views for the other things so we're just going to add that one in there and go in and change some of the things about it so this is one that's got us a starting point here as I click through this is a really nice easy interface here we've got the full name email company name business phone let's change that around a little bit because we want to see the job title so full name and email is fine let's get rid of company name so we can just go in there and delete again we can remove that and I'm going to bring in the Departments so there it is there and I can just click on that and it'll put it on the right hand end and also what else did we want in here the job title and bring that in now it might make more sense to have job title before department so I can just grab that and put it in the right order let's expand those columns a little bit so that we've got a bit more width on those things we can do some more sophisticated things with filtering and sorting views which again we will do later in the course save that now just on the save publish thing saving is kind of the familiar concept right you're saving as you go publish we're going to save Until the End say publish it at the end publishing kind of pushes it live so that you can start to see it but you don't need to publish all the way through we're going to build a whole lot of stuff save it and then when we're ready to start testing then we publish it and push it live so we are going to come back to publish all right let's go back and back into the solution now and I think we're done with the contact table so back to the contact table there we're actually going to go through now and create a whole new table from scratch so far what we've done is modify an existing table I'm going to back right up the hierarchy here to my table tables and instead of what we did before which is AD existing we're going to add a new table and we're going to create that table which is for the assets the list of the phones and the and the laptops and things so new table the display name of this table is asset and the plural name is assets and so we've got Advanced options in here so there's lots of things in here that you can start to enable so enable attachments we might want to have some kind of I don't know warranty document or whatever within the advanced options we've got a bunch of other things in here around ownership and so on we can bring in an image here so this is about having a an icon on the side so you'll see I've got like a little barcode image in there these are just SVG or PNG files 16 by 16 pixels there's plenty of them online or you can kind of you know grab a screenshot of something from an icon in PowerPoint or however you want to create them so that you can have those in there rather than just having a default icon so what we'll do here is go in and create a new table image so I'm going to go and say let's create a new it's called a web resource and then I just go in and choose the image that I want so I'm going to choose that from my desktop here I've got something called asset icon so that's coming I'm going to give it a display name so you can see there there's the asset icon PNG image I'm going to give it a display name of asset icon the name here it's all in lowercase it's a PNG format and that's it so that's now saved in there and I can use that as the icon for my table all right some other things in here so we want to go through some of these other Advanced options and see what else we want so we want to make this an option when we're setting up SharePoint document management because we want to be able to store attachments there are lots of other things you can do here it won't go super deep into this but as you go more into your experience of building model driven apps there's lots of other bits and pieces that can be done here for instance appear in search results let's select that one as well because we might want this one to be something that you can search as you as you're looking for assets in the database all right save now I want you to watch what happens because what I've done is created a new table all I've done so far is give it a name and a an icon so that we've got something in there but as we save this it will add it into the solution but what it's doing is creating a whole lot of stuff around the security and the auditing of the table so as soon as this is created you're going to see and hear things like a whole lot of columns that you'll see I didn't actually do created by created on Modified by modified on owner all of those kinds of things and a primary key and a primary name and all of those things are already sorted out for you so here's my asset table let's go in and have a look at the list of columns and you'll see what I mean and you know I'm recording this in real time look at all of this stuff that's that's done so there's a whole lot of things in here there's our primary name column there is actually also a good a unique ID that you don't see here that's that's doing that so you don't have to sort any of those things out that's all done so this is all that scaffolding that allows you to have the security and um and you know ownership and auditing and all of those kinds of things you don't have to explicitly build it just by saying new table sorted so now you just focus on creating the columns that you want to see at the front end of things so what I'm going to do first the primary name column is what happens when we go in here so for instance the primary name of a person is the primary name if I go back into my Asset Management here you'll see that it's I'm using like an ID number here as the as the primary name so the primary name is what happens it sits at the top here so think of this as you're deciding what to do with your primary name every table record has to have a primary name it can either be like I said when it's a person it's easy but if it's an asset like this it's what's it's like the heading if you think of it as the heading for the record so that can be words or in this case it makes more sense for that to be a a number so what I'm going to do you can actually change it it doesn't have to be called name I'm going to choose this one and change it to asset ID and then your choices for the primary name column you can either have plain text or you can have an auto number and for me I just want this to be an auto number I don't want to kind of give it a another name we can have it with a prefix and number of digits you've got a bunch of different options in here so what we're going to do here is set it up so that we've got the the asset ID what did we choose so we've got something like AST for asset and a number that starts there so you'll see if I put in that prefix AST maximum four digits and it's giving you a preview of that so you could start with you know more digits or a different seed value or whatever but that's that's good enough so we're going to save that and that's my primary column already sorted out in there now what I'm going to do is add in the asset name itself so you'll see that what I've got here is a like a sort of a name but I'm not using that as the primary name so we're going to put that one in there new column this one is called asset name and this one is a single line of text what you can do here is go down into the advanced options and you'll see you've got a maximum character count now chances are the asset name isn't going to go over 100 characters but if you think it might you can extend that out a little bit to um to make sure that you've got enough enough room in there next up we're going to create the description column so you'll see I've got a bunch of text in there this one we do want to allow more text and we're going to do something a bit different I'm going to create a new column which is a description and this time instead of a single line of text I'm going to go along here and you can see I've got different options where what I want to choose here is actually a text area we're going to use Rich text again later you saw the Rich Text Editor in the demo a text area allows you to have sort of something like this that say multiple lines of text that you want to be working with whereas the Rich Text Editor also gives you all those ability to do you know bold underline and so on so I'm just going to show you a couple of examples of different things so we've got that text area in there always go into the advanced options for the text area because a maximum character count of um 100 doesn't make a lot of sense we're going to set this to 4000 which is actually the maximum little trick here if you can't remember what the maximum is just put in something ridiculous and it will prompt you so there we go 4000 is the maximum size for the text area now I need a few other things in here we've got the serial number so the serial number here is a text again so wrong screen there we're going to go new column and this one is called a serial number just be aware when you're choosing between text and numbers even though this is called a serial number it's definitely a single line of text and not a number only use a number if you want it to behave as a number so if you're going to you know add something up or if it genuinely is a number if it is a piece of text that's called a number like a serial number that's not actually behaving as a number it's actually just a string of of text that happen to be numbers so just get that distinction clear in your head as you're doing those things we also have the acquisition date when did we acquire um acquisition date when did we acquire the asset and this one is going to be a date and time and we've got the format Choice here of date and time or date only date only makes a whole lot more sense therefore the acquisition date we have the purchase value how much was it so this could be a number we've actually got a special option in here so let's call this one purchase value a special option in here called currency and if you're using currency we're not going to build it in this app but it allows for currency conversions so you'll see when you create this one when it comes up we'll just scroll down because you can see all these things as I'm adding them in they're coming in here that ever as I have a look at this purchase value you'll see here we've got the base and the main currency so that's allowing it to do some more sophisticated things if something if that's something that you want to do next thing we've got is the asset type so you'll see here this is a drop down list of choices so I'm going to go in here I'm going to create a new column called asset type and this one is a choice and then we have the option to say do we want to synchronize this with a global Choice yes recommended or no so this is something we'll show you a little bit later where you're using a choice in multiple places something like an approval or if something's satisfactory or unsatisfactory if you want to use the options over and over again you can have them as a global choice for now I'm just going to use this one as a local Choice it's a little bit simpler to set up but I will show you the other example as we work through the course so my choice is here I'm just going to go with phone and lap top and other equipment so obviously in a real world scenario you could have that notice here that this is giving it a schema value so as we create the database we're putting in the front-facing names of everything but we're also getting this kind of um numeric unique number underneath everything sometimes when you create a flow in power automate to automate off this you might need to come back and reference those numbers so just be aware that that site that's where they are you can also put in colors for the different things here and there are some display elements that allow you to see those for this one I'm not going to worry about that you've also got the option of a default Choice it doesn't make any sense here because you're not defaulting to any one thing so we're not going to choose anything there all right and that is it for our asset table in terms of creating the actual table itself with the columns so then what we need to do is to create this form again when I click through I want the elements on the screen so that I can see where they are navigate back one level up the breadcrumb trail there into asset and then what we do is go into this section here to say forms and we're going to create a new form of type main form this is now just a matter of dragging things into the um into the into the sections on the screen so give it a second to load up and as we go through we'll do some different examples of things that have multiple tabs and things that have multiple columns and things this one what we're doing this is a two column layout so what we want to do with this first section here and you sort of have to just watch where you're clicking right so as I go along see I've clicked on that's the actual table column that is now the whole section so you can see where that highlight is going so as I've got that now I can go over into the formatting here and I want to set that to be a two column format you don't see it straight away because there's nothing in that column I'm also going to grab the owner here and bring it up if I drag it there's a header at the top so we can have things in that header so that sort of shows you up here we've got an allocation status and the owner up in the header there so we can bring these things in so now we've got our asset ID we are going to bring in the asset name now I can just click on that and it will start to bring it across but because of that two column layout I actually want it to be there instead so it's probably easier to drag and drop I'm going to bring the serial number in here the asset type and the acquisition date purchase value and then I'm going to bring my description over into that right hand column and then with that selected so that just the description is selected not the whole piece I can go along here and say let's give that a little bit more height so you'll see as I expand that out that it's taking up more space on the form so let's sort of make it so that it's roughly even with the other side all right we're going to save that and I've realized that we forgot to add something so this is a good real life scenario because you will actually come across this what I also want here is this allocation status where we have the option to say it's available allocated or withdrawn so if you do forget to do that we can go back here and create another form field from within here if it's a simple type but if it's a choice we actually need to go back into the editor where we were before so we just go back a level again double click on that to take you back to the solution so let's create this this other the acquisition where we called it the allocation status in here so here's my asset table I am going to go back into my columns add a new column and this one is called allocation status this is also a choice and this is something where I might want to use this somewhere else so let's go ahead and make this a global choice so we're creating a new choice so this is where we've gone this is a choice column but now I'm going away and creating my choices as a global set that I can reuse against it sort of takes you through a couple of layers here so this one is going to be called allocation status and the labels here we've got available allocated and withdrawn all right we can save that and now the column on this particular table we want to use that one that we just created which is that allocation status and in this case it does make sense to have a default status because when we first add an asset into the system it's available we're sort of logging them as they come in so you want it to be available so that makes sense to do that so we're going to save that and then we can go back and add it onto our form in the header so again we will navigate back to the asset table find that form that we're just working on so navigate through to forms and asset main form and give it a second to come up so I've got my columns here it's not I don't really need to search because it's a nice small list so I'm going to grab allocation status bring that up into the header and then I can change the order of that around in the header you can fit four columns in in that header um visible at the same time so you want to be selective about how you use that and we will save that okay next thing we're going to do is create a view for our asset table so that is what we're doing here when we're looking at the asset columns along the side here where we're putting those things in that's called a view so we navigate back to the solution like I said a double click then that was actually a much better way to do it um back into the asset breadcrumb Trail and this time we're going to create a view and there's already created when I created the table it's actually created these views for me automatically active assets Advanced fine and so on these are used in other parts of the system but when it's creating that default view which is pretty much puts the primary name and the created on so it's actually not a particularly useful view so what we want to do is go in and change that so let's bring the things in that are useful for us here so we're going to bring in the uh let's bring in so we've got the asset ID we'll bring in the asset name so again I can just click on that too to bring it in serial number acquisition date type what do we call that asset type and the allocation status and I actually really don't care about created on so I can remove that and then we can start to move those columns around so that there's enough space for everything all right so that's going to be our main view of the asset so we're going to save that one and then what we're going to do is create another version of that view because you saw here earlier we have the active assets but I can go in and change that to be available assets because I just want to see the ones that are actually available by by status so we can go in here save as and then give this another name so we're going to call this one available assets and save that and now we apply a filter so you could of course filter it yourself but where you've got this idea of you know you can have alternate views and you want to find the right balance here of not going completely overboard by creating every possible filter that anyone could ever want but you could go in here and and have some views that make it easier for the users so for instance in my case here seeing all the available assets and then being able to very easily see the available just the available assets versus all of them is a pretty common thing that people might want to do and they use that in fact if they the person using this really just wanted to see available assets you know all the time they can actually go in here and set that as their default view from a user point of view so you're sort of giving them some nice options there to to work with so this is my available assets I need to put in a filter so what we do is we go across to the allocation status column here I am going to filter by and we want that to be equals available and apply all right so that's a filtered view you can actually sort by different things so this one I've got sorted in order by the asset ID but if I wanted to sort by serial number then I could choose that to sort in alphabetical or reverse alphabetical order same with dates if I wanted to sort it that way so you choose what the default sorting is in the default filtering is and you've got all of those options there to play around with as much as you would like that will do for what we need to do here so let's save that one and double click on back there to get back to our solution and now we are ready to create the next table which is the asset allocation including a relationship between these two tables so familiar process now we've done this before navigate back to tables and we're going to create a new table and this one is called asset allocation and again let's have a look at some of the options that we've got available to us here firstly we're going to choose a table image and this time I'm just going to choose one that's already there there's a bunch of things in there so we looked before about how to bring in our own custom icon but there's one in here that is pretty good that's called analysis result that's this one here which has got a little check box on that will do and then what we want to do is Select another option here so if we're going to go down here we're going to choose this option called Leverage quick create form if available a quick create form is where we can from one Relic from one record create another related record out of it so we did like new asset allocation from the asset if we do that that's going to enable something else so you want to do that one here so that we can do this and then we also want to make this table an option when creating a new activity what that does is allows you to track things like emails and appointments and so so for this one which is our asset allocation there might be some case where we want to track a timeline basically enables that timeline for the table so we might you know like on the contact have emails and and things back and forth we might want to track different things in that allocation process so selecting that allows you to um to do that now notice here options marked with the little one can't be turned off if enabled so this is an irreversible decision you can come back and add it later if you didn't do it but once I've done that that's already done and that's going to set up that capability of the timeline I can't undo it I'll show you sort of what happens and why that is um now so we save that and all good that's going to create that table for us and again it's creating all of that scaffolding but it's doing some additional things here because I chose that enable for activities it's actually also creating relationships for me with all of the out of the box stuff with things like emails tasks phone calls all of those things so if I go in here to columns we'll see the same kind of thing that we saw earlier with all of these different things created but if I go back up a level here and also have a look at relationships you'll see that it's created a bunch of relationships to related tables um like and they're all here under this regarding section where we've got things like activities teams chats appointments emails letters phone calls so if you select that box that's what it's doing which is also why you can't just kind of switch it off again so um very powerful but think carefully about whether that's something that you uh you really want to use in there all right so now what we're going to do is create some columns for this table so let's go through this process again and we'll see some different types of columns being added in here we have got our asset so the first thing we want to do is when we're looking at this asset allocation let's just go in and sort of get a handle on on what it is we're creating here we'll go and have a look at this phone for Sandra that we created earlier this is what's on the screen here we're going to come back and do these pieces later that show you the details but essentially here we've got the primary name which is that heading at the top we've got a lookup to who is the person the contact also who was it requested by and which asset is it as well as this yes no toggle for the policy some text here and some dates and things in there so we're going to go through all this now I'm teaching you this I've pre-planned all of this stuff and I'm teaching you how to do the drag and drop if you're doing this in real life there's a bit of work in and honestly some good thinking work in designing your data tables and things beforehand don't underestimate that don't just kind of come in and start dragging dropping things around you do want to plan out what data tables do I have what information do I want collect have a little diagram of how they relate to each other this is the execution of that but you do need to do that thought process in there as well I've done that for you here so what we've got now is uh we want to create the asset lookup so that's you know which which asset are we allocating data type there is a lookup and in this case we are looking up to the related table that we just created which is the asset so we save that we're going to create another lookup to the employee and also to the um to the requested by so let's do those next so this one is going to be the employee that is a lookup to the contact table now I'm actually creating database relationships here when I created from a lookup from the asset allocation to the asset I've created a lookup field which is an easy way to do it but I'm actually creating a database relationship and we'll have a look at what that's done in the end but I find this kind of an easier way easier way to do it because I'm like when I'm on the screen I need to look up to that other table and that is creating that many to one relationship so where am I up to we needed to also create a lookup to the requested by which is a lookup to the contact table again so you'll see here I'm actually creating multiple lookups to the same table because I want to have different contacts linked in different in different roles in there I'll just give that one a capital letter and save that we have got an allocation date give it a second a new column allocation date is a date and time format date only save now we're going to create a formula field a calculation in here so what happens in the asset allocation is that when we have that allocation date this return due date which is locked is automatically calculating three years ahead so we're anticipating that it's going to be three years ahead now you can get more sophisticated with this you could have if it's the type if it's a type of you know laptop is three years but a phone might be two years so you can actually get very very sophisticated but we'll keep it simple here for the concept so we're going to create a new column here which is called return due date and instead of making this one a date we're actually going to go in and choose a formula column now this uses Power FX if you have built other things canvas apps and other things in Power Platform you're likely going to be familiar with this this is an expression language a bit like an Excel formula that allows you to Define what you want that behavior to be and thankfully it gives us a little bit of help along the way here now there is a full documentation online for all of the different formulas and things it's similar to excel but not exactly the same but the formula that we want to use here and again this is something that you can just find by searching online or you sort of learn these things as you go think about how you learn to excel formulas you didn't wake up one day and just know them all or maybe you digested a book depending on how old you are but generally you just kind of find these things and as you go so the one that we want here the formula is called Date add and even as I start to type it even if I didn't know I'm doing something related to a date I can find this date ad um in here now as I do do this you'll see that it starts to give me some help along the way so as I open my bracket here it's giving me a little bit like Excel date ad what's the date and how many units so the date that I'm adding and it's also prompting me to go here are the dates that you've got available for you so what I'm looking at is the allocation date which actually isn't what I want there so I'm just going to start typing there we go there's my allocation date and then I have to put in a comma and then I want it to be three years so I'm going to put in three for the number of years and then the what type of you know it's years here so it's actually prompting me time unit years and I can choose that and close that bracket done you'll get an error if it's wrong don't want you to worry too much about power effects there's a whole other kind of learning you can do around that but just to know that within your model driven app you can bring that formula language in here to do these kinds of calculations and then the format in the end here it's pretty it's worked out that this has to be a date and time format I want it to be just in date only and I can save that one in there okay next thing we want to do is the outside policy yes or no so this is a bit of a different type of column as well this is a a toggle binary thing so the difference between a choice where we're doing things like you know choose the type where we had phone or laptop and whatever that's a list of choices where you can have nothing as the default a yes no is a binary thing yes no true false those kinds of things there's no sort of zero option if you like it's just the two binary options so that's what we're doing here is it inside the policy or not and you the default has to be yes or no so let's add that one in here so this one is called outside policy question mark and the type here is a choice yes or no and it will say you know what is your default choice is no because we're hoping it's not outside the policy most of the time so that makes some sense next up we've got a reason for what's going on so that's this one here and we're going to come back and apply this logic you see where that was sort of going you know yes or no and that comes in so we're going to do that later we'll pop in the reason here so a new column and this one is that text area again because we want that to be multiple lines and again in the advanced options let's give that sort of plenty of space for a for an explanation as to why you are going outside of the policy um we have the approval status so up here in the form in the approval here we have this approval status of approved or rejected again I'm not using a binary one here because I don't want one of those to be the default I want it to be blank and then to have um to have those two options in there so this one is called approval status this is definitely something that I might want to use in other areas of the system so this is a choice and I want this one to be definitely a global choice so we're going to call this one approval status and my choices are approved and rejected this is one where we might want a color to to go with it so um you know mindful not everyone will be able to access those colors we've still got the labels on the screen there but that's something that can add an additional visual indicator within the app so then we can go in and say yes we're going to sync that choice so we'll go in here and sync this Choice with privile status default Choice none we don't want a default choice so we're going to save that and then we're also going to put in an allocation check so this is about the quality check is it satisfactory or unsatisfactory we also want that to be something that we can use more than once so this is our allocation check this is a choice and we want to sync this with a global Choice again we're going to go in here we'll call this one allocation check because we're going to use this in in different ways satisfactory and unsatisfactory save that link it back up to the allocation check notify Choice there save that and I think we are good so we've created a lot of stuff this one's got a lot going on I want to show you what's going on with the relationships here because we saw before that we've got a bunch of relationships related to all those activities but if I go back here into my asset allocation table and have a look at relationships you'll see that we have got them created in here with different related tables so here we go we've got a relationship with the asset table which is a many-to-one relationship so this is this is really core to what we're doing with the data and the dataverse tables going on in here is creating these relationships so we are saying in a many to one or a one-to-many relationship these are the same things you know back and forth so we've got this many to one relationship with the asset so that basically means from the point of view of the asset allocation you can look up and choose one asset but the other way around one asset can have many allocations associated with it because this asset can be allocated multiple times it's allocated to someone that person leaves we get it back we allocate it to someone else so we're going to have multiple allocations for the one asset one to many but from the point of view back here this is the other way around linking back to one so that's the concept of the one to many and the many to one um the other thing that you can do in here is to create those relationships from here so I've actually created them by doing that lookup in there but if you wanted to do it another way if you kind of want to explicitly create the relationship you can go in and create those relationships you've also got the option to create a many-to-many in there as well um that's where you know you want that you want to be able to see those sort of lists both ways so that's something that you can do so depending on where you are if I hadn't already created that lookup to asset I could say I want to create a mini to one relationship to the asset table in here and then it would create that it would give it a lookup column name it's telling me it already exists because I already created it so if you create the relationship in this way it creates a lookup column for you I find it's easier just conceptually to create the lookup column and then the relationship part is taken care of so you'll see of all of those other ones we've got in here if I look at the related table sort A to Z in here then we've got you know I created two different contact lookups one for employee and one for requested by and you'll see they have a different sort of relationship name in there so that it's pointing to separate two separate ways to that contact table for me to create those links now we need to create a view for the asset allocation we're not going to create the form just yet because we're going to bring these elements in in one of the later modules a little bit more advanced so we'll go back into our asset allocation we're nearly there with the table creation this is like a core thing right we are creating these data tables and creating all the relationships between them at this stage we're still just working in dataverse the model driven app part kind of sits on on top of this later let's go into views here and so now what we're going to do is go into that active asset allocations view which is the default one that's been created when we set up the table and I'm going to bring in all of the other things that I want to have in there so the first thing again I don't really want create it on so we're going to remove that and we can keep this nice and easy by just kind of clicking and bringing them across in here so I'm just going to click on employee asset allocation date allocation check return due date return actual date I didn't create return actual date we'll go back and do that and then we can put in the column widths in here as well to bring all of those things together let's save that go back this is very real to be honest when you are creating when you are creating things forgetting to uh to add a column along the way is uh is is a thing that happens then also as you'll see not terribly hard to fix if you create a column in the wrong data type and you notice it here delete it immediately before you start adding it to forms and things otherwise I do have another video in my playlist on on how you have to unpick that which isn't a terrible lot of fun so we want to put in the return actual day so we did our calculation I got very excited about doing the calculation before and forgot to put in the actual date so the return estimated date like when we expect it to come back in is actually done in there as a calculation but the actual date is something that you just put in at the time so we'll do that and we'll go back and add it into the view so let's go back into our asset um asset allocation and the view here and we do need this column in here because we're going to filter by this one because what we want for our active asset allocations is the ones that are sort of still in progress so they've been allocated and not returned yet so if I put my return actual date in there then what we want to do is to say once we've got a return actual date once someone's actually entered that in there we want it to drop off this list so this is where we can use filters really well to go in and say let's filter by and say that this one does not contain data so if we scroll all the way down we get that so you'll see with the date filter you've got a lot of before or after this date but what I want to do is to say that it does not contain data so we're only going to see things in that active allocations list where that is still blank as soon as somebody fills something in to say this has been returned it's not an active asset allocation anymore it's a completed one and so it drops off the list clever huh let's save that one would have been more clever if I remember to add the column in the first place but there you go and back to the solution now one more table bear with me we're almost through this part which is the asset check table so this is where within here we've got a list of asset checks so that we can go through and put those things in and we're going to do some pretty cool stuff in here with some ratings and things I want to give you as much variety as I can in the different types of things that you can create in terms of columns in here so we go back to our tables I am going to create again actually sorry back one level up into the into to the solution no we can't do that let's just go back to all there if you get stuck anywhere with the navigation let's just click on all so now we're back to that top level of our solution look how many things we've got in here now by the way a whole lot of things so we've got these tables the choices there's my web resource for the icon that I did so see how it starts to to build up one more table so we're going to go in here and we're going to create this one called asset check in this case we're going to go into the advanced options and I'm going to bring in another web resource here so I'm going to choose an image from my desktop which is a check icon I've just created one in there so I'm going to call this one check icon give it a schema name which is basically the same but with no spaces in it it's in PNG format save that and that's brought across into there all right and again we want to leverage the quick create form so that we can easily create these from other records and save that we've got a few columns to add in here and a form and a view and then we are done with this module and then we're going to start doing some of the more advanced stuff of quick create and quick view forms which are which are fun to play with and start to really flesh out all these things I think all of this is fun to play with though so hopefully you do too what have we got now so we've got our asset check we need to create a bunch of columns in here so I'm going to show you some different things we haven't covered before and by the end of this table you've got a pretty good sense of all of the different things we can do so this one is an asset allocation so again we're creating a look up here because we want to go this check is related to which asset allocation so that is a lookup to the asset sometimes you can type it in and sometimes it's easier just to um to scroll through see I'm just getting I'm typing a bit too fast there so let's just slide that down asset allocation also while I'm recording it it does sort of work at a slightly slower speed that I'm used to so um bear with me rename the owner so now what we're going to do is use a column that's already in there for something else so we've got this owner column in here every time in this case I'm going to assume the person creating the record and owning the record of the check is actually the person who's responsible for doing it the owner but what we want to do is change the name of this to be checked by so you can actually rename things that are already there use those out of the box pieces as much as you can rather than creating additional things that you don't need we're also going to put in a checked date and this one is going to be a date and time and let's leave this one as a date and time because we might want a date and time stamp of when that happens we are going to put in the notes which is the the rich text in here so if we go in and have a look at where we're headed with this this has got this Rich Text piece where we can put in um you know a whole lot of extra things so let's add a new sorry wrong piece new column which is notes and this one is going to be text Rich text format save that now I didn't expand the number of characters so if you've forgotten to do that you can always go back in and do it so I'm going to go back in and here's my notes column and advanced options maximum character count four thousand again and then I want to put in a check type is this on allocation or return so we're going to put in a new column here which is the check type we'll make this one just a local choice so I'm going to go in here and choose choice and a sync with global choice no we just want to make this local so we're going to call this one that's either being done on allocation or re turn of those things no default choice in um in this case then we're going to put in the check results so here we've got this thing of what type of check is it and then what is the check result now remember we created satisfactory and unsatisfactory earlier as a global choice so this is where we've got that benefit of being able to use that again so I can go in here and click on new column and we'll call this one check results so it's the same option set that we had earlier so I'm going to go choice and choose yes I'm syncing with a global choice so I don't have to create it this time I've already got it and I called that one allocation check so you'll see it previewed there as satisfactory or unsatisfactory so don't have to recreate that so that's that benefit of creating it as a global choice if you want to be able to use something else somewhere else and then we have one last piece here which is the rating which is a whole number this is the first time we've used a number so we can go in here you've got different types of numbers that you can choose from um so we're going to just leave it as a whole number you can actually have like decimals and and things in there as well but this is just a one to five if you go into the advanced options here you can choose now you know we don't want anyone putting in a rating of negative two billion whatever it is so the minimum value here is is one and the maximum value here is five so that will also kind of control that data entry experience so you can do that's always worth clicking into that advanced options there's often a lot of other stuff going on in there that's all our columns that we need to create in there we are now going to create a form and a view for that table so let's go back to that table and then go into the forms section and this time we're going to create a new form so you'll see it's got these ones called information that are in there I tend to find it easier to start with a blank one sometimes it sort of just put some random stuff on there so we're just gonna I'm gonna start with a new blank form here we want to call this one so this is the asset check main form is what name it gives it that's fine I want to set the formatting here to be two columns so again this piece at the top select it so that that whole piece that whole section is created and the formatting there is two columns same as what we did before you don't see it straight away so then what we want to do is in the left hand column we're going to go in and uncheck the hide Label Box so if I click on this see there's a hide label we do that and then we've got that bit at the top there that has General I'm going to change that to be summary again in cups so that's there so that hide label is something that allows you to show or hide what's going on in there so I'm going to bring in we've got the name in there I'm going to bring in what we're doing here we've got name asset allocation and so on so and you'll see that's changed to checkbox checked by that's the owner because we changed the name of it so I want name asset allocation checked by and chest checked date so we've got the name there there's my asset allocation checked date checked by check to date check type as well in there under the asset allocation so let's bring that in there and then on the right hand side on the other column we're going to have another section here so in fact what I want to do is not just make this thing because this has got the summary you can see how these are two different sections I don't just want two columns in the one section so what I'm going to do is select the whole tab here so this is a section just the difference between things if I click further out in the screen see how my purple box has gone all the way around that's the whole tab so just if I if I'm on the section and it's two columns that's what we did before one wide section with two columns in it if I click on the whole tab now I want to change this formatting to be two columns so now I've got that there and in fact I accidentally before change this to two columns I want to just change that back to be one column so that takes up the full width of itself and now I've got another new section here so we want to call this one asset check so again I'm going to that this label here asset check and that shows up and then I want to bring my notes across into that section and give this one there we go that's starting to expand out now that notes with the label on the side there is kind of I mean that's that's fine if you want to do that but if you don't want to do that you can hide the label and then that rich text will take all of that up because it might be obvious that that's the the notes so you can do whatever you like with that and then what we want to do is add the rating so let's bring the rating over into here and we want to give this this little five star thing because at the moment that's just a number you can enter the number so down the bottom here under components I can scroll down and I can choose to add a component and there's a bunch of things in here that we can choose from because it's a number it gives me star rating as an option um the maximum value is five it's picked that up all good and so that will now become there we go star rating and then I wanted to bring the check result in there as well so we'll drag and drop hooray I remembered to create remember to create all the columns for this one save all right we're good so just remember the difference between sections and tabs and where you're clicking on the form because you've got all these options and things and you know being really kind of careful about where you're clicking and what you intend in there and then one last piece for this module and then you can take a break and we're going to come back and have a look at how to do some of the other more advanced pieces so what we're going to do here is just create that view for the asset check so um let's break the back button again there to get back into the solution we'll give it a second you how are you going creating lots of tables um creating lots of tables in there so you do it is a little bit with that form you do have to sometimes press that button a couple of times to uh to get back to the solution right here we go so back into my asset check table and my views and active asset check views and so now what we're going to do is bring in something a little bit more advanced here actually again don't really care for the created on but if we have a look at this asset check view in here so if I go back to the asset allocation in here you'll see that when we're looking at this view we're actually seeing some related things so because the asset check itself is related back to that allocation process but we also want to bring in some of the things related to the original um the original person too so let's just go back in here so we're going to say we're going to bring in the asset allocation so which allocation process are we working in when we create this check then we want to bring in the check type checked by the check results and the checked date let's save that and we'll go back to our solution and that ends that whole first module we've created all the tables that we need we've created most of the views and the forms we need we do still have one more form to create which is our asset allocation table because this has got some more sophisticated stuff going on with it here so next module we're going to go ahead and do those things let's create some different types of forms now and this is where we're really going to level up we've done all the basics of creating our tables and forms and Views but let's do some clever things this one here is called a quick view form this allows you to have a related record like this I've got our employees and it gives you a quick view of the things that are related to that same here we've got the asset and the quick view of some of those attributes so that's a quick view form the quick create form is what we see when we are for instance on the asset and we want to create a related asset allocation so this ability to go plus new asset allocation and it pops up on the side here with this quick create experience so when we created those tables we were selecting a box that says leverage for quick create if available you need to do that in order to create the quick create form let's go ahead and do those things so the first thing we're going to do is that quick create form for the asset allocation exactly what I just showed you so within my solution I've navigated back here to tables I'm going to go into the asset allocation table and now when I go into my forms and choose new form I can choose quick create form if that is grayed out it means you didn't when you created the table you forgot to check that box let me just show you in case you come across this in your real life scenario if you want to go back and change anything properties in that asset allocation table the properties you've got all of the properties here you can go down here and deal with that so you can see that that's checked there you've got those other things and as we said earlier there are certain things you can't undo but you can go back and sort that out if you need to but we did the right thing so new form quick create form this is the same experience as what we have used before for creating a form but you'll notice it's a narrow because it just pops up on the right hand side of the screen you'll also notice there are some other things that we can't do in here so this is not the complete editing experience but it's it's the same concept so it comes with three sections in here so we're going to go into the first section here and we're going to bring in name employee so let's bring and again I can just click on those things to bring them in we've got the name the employee the asset the allocation date and then I want to hide the label because in this case I don't really conceptually have different sections that I'm thinking about when I do this so we're just going to hide that label and then I don't want these other sections on the form here as well so rather than deleting them because you'll see I can't actually delete them we just say height label and again hide label and that means that we just don't see them on the form and that's it for a quick create so you're just bringing in the things that when you want to create it and you'll see when you work with it if I create it from the asset I create the asset allocation it already brings across that related asset for me and I just fill in those other things so again that's just part of that functionality I don't have to do anything to make that happen so we'll go back to the solution and now what we're going to do is create these oh double click again to get back now what we're going to do is create this thing that I keep pointing out to you because I love it so much is these quick view forms so this is a quick view for the contact and this is a quick view for the asset so back to our tables and we're going to go into the contact table to create that first and I can say forms let me show you another way here you can also do it from here so you can go new form so same thing you start to sort of see different ways of getting to things this one is a quick view form I do find the name of this hard to remember because it's a it's a form not a view but anyway so now we've got this here again same kind of experience but with some limited options so what we want to do here give it a name first so we're going to call this one the employee quick view form and then we want to drag the columns in to that section so we've got the full name now this is with the contact here we've got all of these different things that have come in here you can drag in first name and last name but you'll see that um it's actually going to show that way anyway so full name just kind of shortcuts to to bring that in this is another one of those composite Fields like we saw with a dress before if there's nothing in middle name it will just be hidden but you can equally bring in first name last name if you if you prefer to do that so we've got the full name and we want the job title much easier to search when there's a lot of columns going on and the department and you'll see as I bring these in they're all coming in as read-only even though like normally if you wanted to make something read only on a form incidentally you can do that here but these are all read-only by definition the quick view form is for viewing you're not um you're not editing it so they all come across as um as that now again I don't want new section at the top so we highlight that whole section I'm just going to hide that label in there and we're going to bring the heading in in the section on the main form otherwise I could have a heading in there which is the piece that I am not doing so safe and then one more here which is to create that same thing for the asset table so we'll just give that a second to come back up back up to the asset table I'm going to do the same thing here which is a new quick view form so we'll do it the way I was doing before new quick view form see how quick create is greater because I didn't enable that for this table and this one again we're just going to bring those things across so we want in here the asset ID the asset name the asset type acquisition date purchase value serial number and grab that hide the label again and save so nice and easy Once you know how to create forms creating quick view forms and creating quick create forms exactly the same thing you just can't do as many things with different sections and columns and stuff on the screen so it's a little bit limited most important thing is just that you know that those are things that you can do and and how to use them because it really adds additional life and elements to your app that make that user experience so much better now what we can do is go ahead and create this form and bring all these things together so we're going to go back into the solution and create that asset allocation form so back to the tables and I'm working in my asset allocation table and I'm going to create a new form main form new form main form Australian if you don't click on it right the first time it doesn't work all right so this is going to come up we asset allocation main form is fine as a name first thing I want to do is drag the owner here up into the header so that we can bring it in there and then I'm going to get this whole tab here so this whole General tab so click there and we're going to make the layout two columns so that we've got you see how there's the Divide down the middle there so we've got those two columns on the form there we're going to select this section and change the label so again that's not the section that's the data column click a bit outside it change the label here in caps to summary and make sure that we can see it and I'm going to bring in the employee so we've got the name of the thing we've got the employee we have got the requested by didn't mean to bring that one in employee I said yeah just delete if you bring in something you didn't mean to do name employee requested by asset outside policy and reason now you'll see we're going to do the logic in a minute of this yes or no but you do need to if you want it to be showing and hiding on the form you do need to put it there in the first place and then we're going to put a rule of business rule in place to to get the show Hive thing to work I want that one to take up maybe a couple of rows because we really want people to be generous with their reason we also want to use a toggle here so like we did earlier with the five stars for the rating if I go on to this and click components so any of these things if you click on it you can see different components that are available so with the yes no column we've got that toggle component available and this also allows you to make a distinction because you can view your model driven app on a mobile or tablet device that's fully responsive so you might want different Behavior there I'm going to leave it to be the toggle on all of those things gonna add another section now so we've got this section on the form and I want to add another section below it so again choosing the thing where you want to put it below is usually good you can add a component from the top here as well so that will you know that will switch you back to that menu I want to add a one column section so there it is there we are going to give that the name dates and checks and the label is already unhidden when it's a new one so that's okay and from there I am going to bring in so we click back into the table columns just the distinction between columns formatting columns and table columns and the columns in the columns uh we're going to bring in allocation date so we can drag and drop that one in there if you click on it'll go wherever you're selected so just make sure you select it in the right click in the right spot now that I'm there I can just kind of add some others allocation date allocation check return due date return actual date and we're good all right let's go over to this other column on the side here and we are going to change this label to be employee details and this one is we're going to bring in that quick create form so if I go back to my not quick create form quick view form quick view form so I'm going to go over here and have a look under under the um the menu here for some of these other elements so so far we've just been working with these layouts of columns and we're going to come to tabs when we look at sub grids subgrids are coming up in the next little while but we've got all these other things that we can bring in and this is actually going to be a display component so there are various other things you can play with honestly there's so much more than we can we can get to even in a complete course like this so I'm going to bring in a quick view so when I choose that it's going to say where do we want to choose this from and it allows me to choose from any of the lookups here now there's more here than you might think asset employee we created but all of these other things remember in the scaffolding created by created on those are all lookups to users in the system including the owner and so on so in this case this is a look up to to the employee and yep there we go and then we want to choose which one we want so that is the employee quick view form so there are some out of the box ones with contact when you're using one of those out of the box tables like contact you'll find there's a lot more going on in there than for the tables you've created yourself done and let's watch it appear oh no see I put it in the wrong place I wasn't clicked in the right place no drama grab it drag it into the correct spot all right now what we want to do let's click on that and add another new component here which is a another section below that so again let's put it in the right place where I was below you can drag the sections around the forms if you need to as well and this one is going to be asset details all right let's see if I can get in the right place this time click on it first then I'm going to add a quick view it's the same thing the lookup this time is the asset and I've got my asset quick view form you'll see there's only one there because that's the one that I've done myself and boom how good is that right and that's all in there let's uh let's save that and we are good to go so we can go back to our solution and then in the next module we're going to do that logic which is around showing and hiding pieces on the phone another level up here we're going to have a look at business rules so you can use business rules in your model driven app to do things like we're about to do here show or hide one of those columns on the form based on something else that's going on you can also make it mandatory or not so we're going to do both of those things there's a few other little tricks with business rules but essentially we're setting a business rule here that is going to change what we see on the form and also to make that mandatory if the rule is true so back in my solution and my table we've got business rules here you can actually get to it from inside the form designer as well on the very left hand navigation menu look for this little icon there don't have any business rules yet we're going to say add new business rule now you might need to uh he or something here this is taking us back into an older part of the user interface I'm actually going to let this go in real time here so that you can see that if this is a bit slow for you to load it's not just you sometimes if this spins forever and you get tired of waiting for it you want to you want to just kind of quit out of it so I'm hoping at some point we'll be able to do this in the new user interface but at the time of recording here which is November 22 we're still switching back to the old user interface for this and it is a little bit slow so this is essentially going to be a series of sort of branching conditional logic if this is true then do this if this is false then do that and and so on and we can start to build out those things all right come on business rule designer let's let's get cracking here I did promise I would do this in real time and I'm starting to regret it that I'm not using the magic of video editing here to uh to speed things along um I hope you're enjoying this so far don't forget to give this a like if you're getting value out of it share it with people uh it is a very long kind of course but I wanted to give you the complete package all in one go all right this is about the point where I start to get a bit impatient with it I'm just going to kind of click on that and refresh and sometimes that can speed up the process a bit you'll notice there we go that's opened it up in a new tab so when we're done with this we can close down that tab so first thing we do is have a condition here actually sorry first thing we do is want to give it a name it's not really obvious but right at the top here see there's a little drop down arrow because leaving something called new business rule is really not helpful at all so what we want to do here is change this to be this is a rule for when something is outside the policy so we're going to call this the outside policy business rule and then we can close that back up again now you'll see it doesn't change straight away when we get to the end to save it'll pick up that name so don't don't panic at this point so we're going to go into the condition here so condition is this true you can see we've got a true path of the tick or a cross path with the false there so new condition and if it's true so first thing we're going to do is give this condition a name you're going to make sure you name everything along the way because it's going to make it a whole lot easier to do all of the things as you go along so this one is going to be outside policy and what we're looking for is on the asset allocation entity or table so entity is the old word for table so we're still kind of going back into some old language here the entity and field is the old word for column so there it is there outside policy equals yes so if it is outside the policy we want them to provide a reason and they must provide a reason so we want that to be visible and mandatory apply when we get to business process flows it's a very similar kind of designer we have to click apply each time and make sure it's there we go to our component and these are the things we can do so you can actually put in sort of a recommendation you can show an error message set the default value lock or unlock things I tend to use the set business required and set visibility more than these other things so these are the two we're going to do here so if it is outside the policy first thing we want to do is set the visibility so that you can see it so we're going to say make reason visible and again on that table we are looking for reason and visibility is yes apply right I want to do one more thing which is to make it mandatory because you're not getting away it's not providing a reason let's drag that across here we are going to say set reason to required and in this business required reason oops not requested by reason is business required apply good you always want to do the no path because you want to allow for the fact that people might toggle the switch on and off and you need it to work if you don't sort of mirror it back the other way you can get into some logic problems if somebody behaves in a way that users do with your app so it's just always good to kind of set it so that whichever way it goes it's going to be fine so we just want to do the opposite here for the if the outside policy is not yes in other words if it's it's on the no toggle we're going to go and again set visibility so when it's on no we want to say make reason not visible we go in and find reason and visible no apply and then back to our components again set business required and this is really important let me do it and I'll explain why set reason to not required if you miss this step not business required apply think about the logic if someone says switch it on it's visible and required if it's hidden but they've switched it on switch it off again what you end up with is a really terrible user experience where the field is required and they can't see it and can't get to it so just make sure if you're doing something that's conditionally required that you you have the opposite so that it's it's not required as well and then once we are done we can save and so once you save you'll see that it picks up that name that I gave it earlier and then we have to do a validation and actually I don't know if you saw it but it came up with a validation successful so there is a validate button but the save is doing the validate at the same time so you don't actually need to do that but then the last step is if we have to activate it and again cup of tea time sometimes this can take a couple of minutes so you do have to activate this you also then if you want to edit it later if you come back in to edit your business rule you will have to deactivate it in order to edit it and then save and reactivate it the other thing while it's ticking away that I didn't point out there is that you've got this scope up here so this is actually applying to this table in any circumstance if I create multiple forms or other experiences for the user this will always apply otherwise you can choose that scope to be just narrowed down to one particular form if you want to do that all right this module takes a bit longer in in real time than it does you know the actual kind of dragging and dropping of all of the things there are um uh you know easier than waiting for this to happen again I'm gonna do this in real time because I want you to see the real experience so that you know it's not just you that thing of sometimes having to refresh the window or sometimes it gets a little bit stuck you will know it's done even if this message doesn't sort of appear you'll know it's done because this status will change from activate to deactivate so I'm just going to give it another 10 seconds or so we'll see what comes up you can also create sort of multiple branches here so I've sort of got one condition and um and those things happening but you can sort of have another nested condition in your business logic so whatever you want to be doing there if you want to go if that was not true maybe then you wanted to show something else so I've just got a very simple kind of on off situation but you can get more complex with the business logic than that all right again tired of waiting so let's um let's give this a refresh and see if I can speed it along a little bit Now activate again sometimes you'll get better luck the second time around um I'm not gonna lie to you but there we go so this is what you should see for some reason I find that doing the refresh just sort of pushes it through so please don't sit and wait for longer than I just did like I've had people who'll sit for half an hour waiting for it don't do that give it a minute or so be reasonable refresh and then you can get that better experience once it says deactivate here don't click that um then it's worked now this was a whole new tab that had opened in the browser so just close that tab down go back into your solution and you'll get this creating a new business rule and you say done and then you'll see it appear there that's the end of our business rules section now we're going to go ahead and create subgrids and put those as tabs on the form subgrids are a really really important feature in model driven apps this was I was clicking around before this is where in that one-to-many relationship or a many-to-many relationship you get visibility from wherever you are of the related tables and what's going on so within my asset allocation here I've got the list of related asset checks this is a subgrid if I go back to my employee so go back over here let me just show you the search actually while I'm at it if I go in and kind of Search for Sandra we can go straight to her record so you don't have to navigate around all the time I have a subgrid of asset allocations so this is something that I would encourage you to use it certainly makes that app experience you know much better if you don't do that if you've got a one-to-many relationship like one employee can have many asset allocations you will always find it in the related menu so if you go in here you will see all of the things that are related so we've got this related asset allocations in here but this is giving us this view of you know we've got a phone and set it's not very useful right compared to having a nice tab with it there and those things just sitting there with the columns set up and also this experience of this nice quick create form from there so I'd really encourage you to do this so I'm going to go back here into my solution and let's do this so the first thing we're going to do is to create that asset checks subgrid that goes on asset allocation so what we're doing when we create this is actually creating a view to use in the subgrid so you can just use the standard active view but think about whether or not you've got sort of repetition of those things you don't want to necessarily if I'm looking at asset allocations and I'm using the standard asset allocations view the standard asset allocations view has the name of the employee in it so you don't necessarily when you're looking at the employee you need to see the employee's name over and over again so you can just grab that view and put it in and we will do a couple of examples of that but it's good to think through again all these little things make a difference to that great user experience of your app and it does take time but you know you want Happy users and a good app then it's it's worth it I think so I'm going to go back into my asset allocation form and first thing I'm going to do is just use the standard one so for asset allocation to see the list of checks that's standard listed that standard view for checks is fine I'm not sort of doing too much repetition in this I'm happy with that so I'm going to go back into my form and edit that form and add that subgrid so there's my asset allocation main form and what I'm doing here is adding it in if I go back in and show you what it looks like here I'm adding it in this is called a tab so you can I'll show you a little bit later we can actually just add it as another section on the form but in this case I want to add it as a separate tab so the decision about that design is how much is on the form I tend to try to not have too much vertical scrolling if you're asking people to scroll down and down and down that's not such a good user experience I think having less on the screen and More in tabs is easier for the navigation but you've got to kind of use common sense and play around with it a bit and see what works for you so let's go into the components and what I'm going to do here is add a one column Tab and watch it pop up here between General and related it's very helpfully named new tab click on that Tab and let's give it a name here we're going to call this one asset checks and then we've got a section in here and I'm going to change the label of that section again I like cups for the section s and now I'm going to bring in my sub grid so this is my element on the side here so again click in the place where you want it to go go over into my grid and I'm bringing in a subgrid editable grid incidentally allows you to kind of inline edit things so that's another option if you wanted to do that I'm going to just choose a regular subgrid here and the first thing we want to do is to say just show me the related records I don't want to see you can I don't know why you would you can bring in a subgrid that shows you everything in that list but generally the way that I'm using it here show me the asset checks related to this allocation just show me those things so now I can go through and we've got all of the related tables remember for asset allocation we did allow for being able to bring activities in which I haven't actually used here in the end but that's why there's so many in there I am looking for my asset checks and the brackets is the name of the lookup so that's what's going on there that'll be a bit more obvious when we see one that has more than once and then which view do I want to use I've really only got that one view so we click done and boom there it is now it very helpfully puts this label new SG control you can choose where you want your label I'm putting it at the top of the section which is here which is a bit more of a prominent label but you can use that label in there as well so again depending on your formatting you've got choices but please don't leave it with new SG control hide it or rename it so that's good and we're going to save that one and so now what we're going to do is a similar process which is to create the asset allocations for an employee but we're going to create a view specifically for the subgrid so we don't have that situation I was just describing where we see the person's name repeated over and over again in that list so let's go back and I want this time to go into the contact table actually sorry no before I go into the contact table I want to go into the asset allocation table so again I'm in this asset allocation table but I want a view specifically for let me show you where I'm headed with this it's a bit easier so I'm going to go back into my employees and here's Sandra so I want to see the asset allocations related to that employee but you'll see I don't have Sandra kellett Sandra Cal at Sandra kellett written down there the same way that if I just used this view I would have that so I go back into my asset allocation table and I'm going to create a view and we will take the active asset allocations table because I just want to modify it so I could create a new sorry view I could create a new view here but it's actually a little bit easier to just go save as so I'm going to call this one asset allocations for and oops we don't need caps here for an employee now you can I haven't been doing this much along the way but it's actually good practice to have descriptions of things so this is you to be used as a subgrid on employee so I'm in sort of documenting my intention with this so that we're clear on on why you know that one is in there so now I want to get rid of that employee column in there because we'll give it a second to refresh and make sure I'm not just editing my original viewing getting rid of a column that I wanted in there give it a second there we go so name so employee remove what else do I want in there asset allocation date probably don't need the check we can remove that just sort of simplify it down a bit return due date return actual date that seems fine safe so specific view for a subgrid is something that you should consider doing you don't have to do it all the time but it's a good thing to to consider doing now I'm going to go back to my contact contact table and put that in as a tab on the contact form so once that comes up I'm going to navigate back to tables contact forms so here's my main form that I want to edit so you see there I've got a main form and a quick view form because we built that out and I'm going to add a one column tab so same thing that I just did earlier nothing like repetition to reinforce things I'm going to add a component one column tab so again that's going to pop up there if I want to put it in a different spot I can drag it oops see the red mark came up I want to put it there we go and this one is going to be called asset allocations again I'm going to I'll show you what it looks like to use the we'll hide the label there and I'll use the label oh in fact don't hide the label because it hides that that's a way to hide a section by the way let's not do that just yet let's go into the grid and the sub grid sure related records and now we want the asset allocations for an employee now notice here there's two choices asset allocations employee and asset allocations requested by because the asset allocations has two lookups to the contact remember we've got one of the person who requested it so we might want to bring them both in where we can see for a person which ones did they request and which ones have they been allocated so just be careful that you're choosing the right one if you've done something like that where you're looking up to two different things in this case I'm interested not in what's been requested I'm interested in what assets have been allocated to this employee so we've got that and now I can choose the asset allocations for an employee you'll see in my naming convention there there's some good sense in that let's get rid of the new SG control and call this asset allocations for this employee or something like that and then I'm going to hide in the section I'm going to hide that label you you don't necessarily want two layers of names but just to sort of show you an alternative there of where you can choose to put it brings it a bit closer down to the subgrid and it's a different sort of font so personal preference design choices about what you think is going to work best for you one more thing we're going to do with subgrids is we're going to add the asset allocation subgrid to the asset because I want to see for the asset what is the history and we'll go back here I'll just show you where I'm going with this one so in the assets we had a list of the related allocations so you'll see I've got it here so this is a bit of a different one where I haven't put it in a tab I just wanted to show you that you could do something different because you can actually have that on the main form given how much space is on this form that felt like a sort of a reasonable reasonable Choice there so this time I've already got a view that I'm going to use I'm just going to use a standard asset allocations view so I'm going to go back to my tables and go into the asset so I reckon I've used the word asset a lot of time a lot of times in this video um never mind all right so asset forms and we are going to go into the asset main form and this time instead of creating a tab I'm actually just going to create another section along the bottom so we've got our main section at the top here and I'm going to add a component and I'm going to add a one column section so that will take up the full width of the screen and it's all just one I don't I don't want it divided into columns I want it across there we're going to give this one the label of allocations and bring in Grid sub grid can you do it ahead of me related records asset allocations for that asset there's only one choice there that's nice and simple active asset allocations will be fine there now this one is actually going to bring in the name of the asset if I was being more particular about it I could do it a different way let's get rid of that SG control thing in there now you'll see this is just showing name and created on even though we've done the work of doing something else part of the thing here is that we haven't like published all the changes so don't worry too much about that once it's all published and pushed through you're going to see the right columns and things in there so just yeah don't don't worry too much about that one final thing I want to show you here while we're looking at sort of sub grids and special views and things is that you can create a lookup view So within the asset allocation here let's say I was creating a new asset allocation from scratch this way instead of from the asset I can go in here and say look for asset if I just click on there that's the list of the ID numbers which is not terribly useful but if I click on this lookup I'm getting the lookup view which is actually giving me also the name and if I expand it out a bit a serial number so you can have up to three things sitting in this lookup View and if you choose to do that that can be a useful thing so in my asset table then we're going to go into the views again because this is a special type of use so we've had a look already at lots of special types of forms within the special types of views there are a bunch of them here so we've got the active assets view there's an advanced find view which helps determine you know what's going on with the search and so on but here we go here's the lookup view incidentally the associated view is what you see in the related menu so all of these things allow you to kind of edit them so standardly out of the box it gives you the name created on I still really think created on is almost always not useful so what I wanted here is the asset name so I can bring that in so I've got the ID which is my primary name field the asset name which is in there and then I chose the serial number as well to go in there so I can just do that nice simple little thing to do and that's the lookup view so that when someone's using that lookup experience that just gives them a much easier way to um to see what's going on with all of those things next up we're going to create that guided business process flow that goes across this asset allocation record let's create the business process flow this is this piece that goes across the top let's go back in and have a look at a completed one here request approval asset check remember that approval appears and disappears depending on whether or not it's outside the policy so this is called a business process flow we're going to create that from within the solution here we're going to go back over to this all section here and create a new automation process business process flow let's leave that on the screen for a second new automation process business process flow give it a display name so this is going to be called the asset allocation process gives it a name and which table is it going to work on it's working on the asset allocation table and click create now again new tab old user interface be patient calm take a breath have a break it can take a couple of minutes to load up and again letting this go in real time so that you can see the reality of it the concept of a business process flow is that you are guiding the user through a series of stages and steps from the start to the end of a process so our use case here is that it's an asset allocation process somebody makes a request does it need to be authorized approved or not and we've got that conditional logic going on in there right through to allocating it checking it and returning it in the end so you can see there's a linear process there with some conditional branching I have had people ask me like what's the point of the business process flow and honestly if you can't see the point of the business process flow maybe you don't have the right use case for it it really should be something where you are trying to provide that guidance of that you are through stages you might want to report on or get visibility on where things are up to in certain stages or steps that you want people to follow and make sure that certain things are checked off in the process onboarding process is a classic example of this as well if your use case doesn't fit this then maybe you don't need a business process flow but in this case there's a logical sequence of steps we want people to follow and look I talked for longer than that it took to load up so we're winning asset allocation process the name is at the top here we have a new stage so what we're doing here it's very similar to what we did with the um the designer for the business rules we're going to click on that first stage here change the display name so this first stage is going to be a request display name and you must click apply just keep remembering to click apply at the end of each of these things I can open that out and we will get the details in here and so the data step is basically which columns and again old language here which columns Fields it's easier to choose the field or column and then it will give that step a name so what I want to happen here is to bring in the requested buy so we're going to go down and choose that and see how it names it click apply and then it's there you can add sort of multiple steps under each of these stages so let's add another one in here so we can go back into components drag another step underneath there or above it if you wanted to do that so this one is going to be the asset so at that first request stage we're bringing in who requested it what the asset is apply and then we're also going to have is it outside the policy or not and this is important because we're going to have conditional Logic on the approval coming up based on whether it's outside the policy if you want to use that conditional logic you must have the thing it's conditional on in the step prior to where it is so I'm going to bring that in and we are going to choose outside policy and apply that now we don't put the conditional branch in just yet I'm going to build out the process first without the condition and then show you how to add the condition because you won't always want a condition so let's repeat this for three more stages we'll go back into the component this time we're dragging a stage across there the second stage here is going to be called asset check we have a data step in here which is the allocation check apply next one bring another stage in here this one is going to be the allocate stage and apply I so often forget to click apply which isn't going to kind of remind you over and over again we want the allocation date and the return due date in here so let's choose the allocation date apply and then components bring another data step in here and return due date apply and one more step stage rather one more stage in here which is the return stage uh data step in there that's going to be the actual return date to an actual date apply and another data step which is the actually no we don't need another one in there so if we've made that mistake we can just um delete that step okay each stage must have at least one step under it if you try to save it it won't accept it if you haven't done that so let's save that it will do a validation on Save and make sure that's okay and sort of throw up any errors but it's all good ready to activate but we're not quite ready to activate it yet because we're going to add this conditional branching so what we're going to do is between the request and asset check stages is bring a condition in so let's grab this one here and drag it to be between those two things and the display name here is going to be approval this is very similar to that logic we had before so what are we looking for which column or field are we looking for outside policy now remember even though it's not just limiting the options it has to be in the previous stage if it's not you'll get an error if it's outside the policy then we want to say so we're saying if it's yes outside the policy let's click apply then what we want to do is save at this point and this is a bit tricky so we're bringing the condition in but we need it to Branch we need to add another step in here and the way to get it to do that is to save it so once you've brought that in see how now it's automatically added that in there so it's popped in a new stage on the yes path and on the no path it's going to take us straight back so our original process is still true if it's not outside the policy if it is outside the policy we've now got this new stage here so we're going to click on this one and this one is our approval stage apply and then the details here we're going to bring a data step in here which is that approval status and bring that in okay we're all good let's save that the trick there with that condition is you drag it in and save it and then it sort of automatically puts the pieces in I find that sort of if you're not doing it all the time it's an easy thing to kind of forget the process and again don't wait forever for this to activate this should take 30 seconds to a minute again I'm going to let this go in real time so that you can see what happens if this gets stuck and takes more than that then we refresh the browser and um and we're good should be all right sometimes it's activated and the message gets stuck again this is a fairly common thing that you'll have to waste you'll know it's worked because activate will change to deactivate once it's worked I'll usually give it sort of a couple of goes of the browser prompting me to go are you really sure you want to wait for this long yes all right once that's happened twice then I tend to refresh and just see if it's actually worked or if the things got stuck so let's give that a second and again this is in a new tab so once it's done we're gonna um we're gonna close down the tab but we don't want to do that yet so that's still okay see so I've refreshed it and it's switched to deactivate so what happens is often it's worked but that message gets stuck on the screen so just try that deactivate is showing the process is active and you can be happy and not have to do anything again currently creating a new process that's done so close that browser tab back to the original thing and now I will have a there we go pops up there there's my business process flow that's popped up and you can see the status is on because it's active so we are all good we do have another step that we're going to do later to bring it inside the app but before we do that what we're going to do is create an automated flow so that you can actually trigger an approval and see that working now to create the automated approval flow we're actually going to use power automate which is sort of a sideways product to building model driven apps but I really want you to get the sense of the sort of full Suite of what we can do here so where we're working on dataverse and building this with the Power Platform tools you're not just building a database application in isolation you can do all of this business you know logic and flows and automations and things as well so the approvals thing is using something that's built into the platform which I think is really cool I'm going to show you in a later chapter after we've finished building our app here some other business process automation you can use with flow with your model driven app because I think that really brings it all together So within our solution again we're going to go in here and choose new automation cloudflow instant so cloudflow is going into Power automate to create a workflow there are different types of things we can do scheduled will allow it to just run periodically you might want something that runs overnight every night automated will be based off something that happens based on a a data point being changed and we will build one of those a little bit later but instant is what we want here because this is something that's going to be done by oh icon it's like pressing a button we're going to in that business process flow remember we click a button that says request approval so this flow name is going to be called outside policy approval and we want this to be triggered on when a flowstep is run from a business process flow because we're going to put that back into that business process flow so let's click create there and this is actually now opening power automate inside the powerapps building experience so first thing it's done there is authenticated me as the user for using this in a real world example you would have a service user logged in to create this kind of thing because you don't want it running on an individual person so that's something that you that you can do so if there's an input if you wanted the person when they click on request approval to then have to type something we can do that but we've taken care of that already with the reason inside the form so we don't need to do another thing here when a flowstep is run from a business process flow we're not going to take any other input here we're just going to go in and add a step and we're looking for now this is power automate goes on a trigger and an action so the trigger is I press the button in my business process flow the action is we're going to use the approvals action now there are like 600 odd connectors this is where you can push data out to other systems you can do all sorts of things so lots of possibilities here you don't just have to be working within your model driven app data or things that happen in your model driven app can be pushing out triggering off you can use this to create notifications all sorts of things so what I'm going to do here is use something called approval so this is a built-in capability that's in the platform and we're going to say start and wait for an approval and it's creating that connection to the approvals connection you can have different types of approvals here you can say you know everyone has to approve or the first person approves or you can have custom responses which is more than just because you'll get approved reject is the standard thing but if you want approved pending ask the managing director or whatever you want it to be you can use those custom responses as well I'm just going to go in here and choose first to responds so the title for the approval here is going to be asset allocation outside the policy so this is something that helps you know when the approval comes through and let's just have a look at that because we had that one that came through earlier with Dan you want the thing to have a sensible a sensible names you'll see that we've got like the request title and the status and the created when it comes up so see this is the title asset allocation outside policy and when you go into it it's bringing in this was the piece that came from the reason so you just sort of when you understand where those bits go as we're building this there's the title who is it assigned to now you can use some clever rules you can bring in a connector here for Office 365 and say it's the manager or we could pick up the person who was the manager I'm just going to keep it simple at this point and say do you know what Dan is the person who's in charge of all of the approvals for this so it's just static value so you can do whatever you like in there the details is what comes in in that that piece on there now I do need to do something else in here which is to get the table related to it so what I want to do is to get the reason and if I start trying to type that in here to say find the reason you'll see it doesn't come up so there's another piece I need to do here when the flowstep is run from the business process flow the business process flow is related to that table but it's not that table the reason is on the related table so to get that in there I need to add another stage in here so I'm going to add another action in here and I need to get from dataverse the table related to that business process flow so I'm going to get a row I'm looking for the asset allocation table now this is all stuff that honestly it's a lot of just experience in in learning all of these things a little bit like we were talking about Power FX before of skills of kind of knowing how to navigate flow I've learned a lot of this from watching other people's YouTube videos and reading um questions online and things so approval flows is something that's fairly common you can basically just replicate this but then as you start to expand your knowledge you're sort of building as you go which is the row ID and again this is something you just sort of have to you have to know here it is the table that goes with the business process flow stage so if I go in here I'm looking for a table so it is the BPF flow stage table row ID there just isn't really a better way to explain that than to say that's the one you want there's a lot of other stuff going on in here but essentially you have the asset allocation table you have a business process flow that's related to that when we press a button from that we're saying find the particular row or record from that one where it was pressed and passed that back into here so that it knows which particular one it's coming from so now we're good start and wait for an approval the other thing you want to do here is to name your steps in your flow a bit more sensibly when a flow step is run that part's okay get a row by ID let's rename this to say get the asset allocation so we know what that's doing that's also helpful because when we go down here and say let's pick up the details now do you see these are the these are the things from the asset allocation and you can see that's coming from the flow step called get the asset allocation is bringing in all of those columns that were part of that asset allocation table and I want the reason now I've got it good okay we can put in a link to the item to approve we can bring in some more advanced options in here so things like enabling notifications and and so on but I don't want to do any of that let's just save that for now and you'll see there's an error on the flow Checker here this one is telling you that power automate approvals has not been installed so what happens is the first time you use an approval connector it needs to install a solution in that set of solutions that we had you kind of can't do it in advance and you don't actually have to do anything but it's giving you this warning so what happens is you have to run it for the first time when you run it for the first time that will trigger it to automatically install the solution and that can take 10 15 minutes or so and then it will work so just be aware the first time you do this in an environment you have to wait for that to happen you have to do anything you just need to be aware that it's going to be slow the first time until it installs those pieces and then after that you go you can create all the approval flows you like and it will all be fine so that's what that error is notice there's a difference between an error and a warning a warning isn't stopping you going ahead and error means there's actually something really quite wrong so we are going to now update inside that business process flow we want to set the status to be approved or rejected so we need to add a new step in here and we're going to add a condition branching based on yes or no and then we want the value to be so we've got access now to all of the things that come out of the approval what we want if we type in response the piece that comes out of the approval is the one here that is called responses approver response that's the response from the approver again it's just one of those things this brings in a apply to each because it can happen multiple times um and it's going to make sure that each time that comes in because if the approval is going through more than one person it allows that to come through we're not going to sort of need that too much here but it just it groups it together in that way and it's not causing any harm if that is equal to and so what we want this to be here is approved that's the response that actually comes back so again these are just things to learn as you learn each connector you just sort of learn the particular pieces that go with each connector if it's approved we want to add an action in here which is to update that table that we had earlier with approved so we're going to go again Microsoft dataverse is the table uh the database underneath we are going to update a row so we can go in here now what we've got is we're going to update a row so we're going to call this one we'll rename it we're going to say update to approved and we are updating the asset I should have typed it in we're updating asset allocation which one is it it's the one that we found up the top so remember up here we got the get asset allocation so if we just go into here and start typing in this Dynamic content here it's the asset allocation and we're looking for that unique ID so we're updating that particular record and the thing we want to update here it's just one single thing we want to update which is the approval status we want to change that to be approved so now we want to do the same on the no path and we can make it a little bit easier for ourselves here we can go in here copy to clipboard go over to the other side here to add an action go to my clipboard choose it now we need to rename it a bit here so we can go in here and rename obviously update to rejected and then open it out we've got all those other bits already done for us and go down to approval status is rejected okay save now that warning is still in place so once we trigger that once just remember you'll see the solution deployed and so on so yes that's okay we don't need to do anything with that once it's all sorted out we can click on this back arrow here and that goes back to the solution and then what you'll see is that one is there in the cloud flow so we've now got a cloud flow in our solution starting to flesh out we've got lots of things going on in there so last thing we need to do now is to go back into the business process flow and bring it in so that we've got a button to press and we're good so that is now sitting in processes back in the solution so we click on that we go back into that process again it's going to open the tab and hopefully not take too long to load and we're going to bring what's called a flow step in there so here it is here on this approval step so we've got the details here with that data step in there we're going to go across into components and grab this flow step and bring that in there and then we can select a flow and there it is there outside policy approval apply and we can then update so this one unlike business rules where you have to deactivate you don't actually have to deactivate you can have it remaining activate and just use this update feature which is good because you don't have to go through that whole process of deactivating it so there we go we have now an automated approval flow connected back to the business process flow close that down done and now it is the most exciting part we are going to create a model driven app does it feel like you've already created a model driven app well you haven't yet what you've done is created all of the underlying pieces we've created the components for the app we've done the forms the views we've created the data tables all of that stuff but the actual creation of the app itself is the easiest part and it all comes together beautifully so first thing we need to do let's go back up to the top level of the solution and we are going to publish all customizations so this brings it all together ready so that when we create an app it's going to be ready to to view live so we don't need to publish all the way you'll see again I'm going to let this run in real time you'll see that the publishing process can take 30 seconds or a minute or a couple of minutes depending on how much is in there you don't want to be doing that all the time as long as you're saving everything is fine you can go away come back the next day and you're all good Publishers really sort of pushing it live so that you can start working with it and so the next step that we're going to do here you can see publish all customization succeeded is again within our solution new app model driven app and this is bringing up what is the name of our app so this is going to be our asset management app you can give it a description if you like create okay good we've created an App what we need to do now is bring in the tables that we've been working with and create that navigation menu down the side but that's all there is to creating the app because we've done all the work in dataverse creating all those pieces bringing together the app itself this part that we're doing now with a few clicks is bringing in responsive accessible app with all those buttons across the top and all the structure and everything like that so much of this is done for you just in that action of create a model driven app so what we're going to do here is add pages in so we're going to add in tables that we've just created so we can go next now this is where if you've used your solution uh your publisher code to start so mine was LMC if you remember what yours is if you do that look at that it's actually really easy to find all of the custom tables that I've created so I'm going to go in and check all of those and what I want to do here is uncheck the showing navigation if you check show in navigation it will just build the navigation menu for you with all those things but reordering and grouping them is a bit of a pain I prefer to do the navigation it's called a site map I prefer to do it separately and put things in the order that I want so that's just my recommendation so we're going to do that I also want to find the contact table which is not an LMC table that's just a standard one that was already there so we're going to do that and we are going to click add and then all of these things are added into my app now this is a preview of what the app will look like so you can see my navigation menu starting to form down the side here but because I unchecked that box I didn't put anything in it so there's two steps here the first one is to say hey model driven app these are the tables that are part of your app because you might have within your database environment different app experiences built on top of that dataverse data you might have another app that's just like a list a contact list or something like that so you need to say for this app which tables are part of it so that's my definition there I don't actually want everything in the navigation menu so you'll see the asset check when I go back in here I didn't put the asset check in the navigation menu because I don't need to want people to access it from there it only comes up once you're inside that asset allocation and you're clicking through so you can have that distinction not all of the dataverse tables go into every model driven app and not everything that you add to your app necessarily has to go into the navigation menu so over on the side here we are in the pages what if we added into the app this piece is where we can deal with our navigation so what we've got here navigation bar it's giving us one to start with so this is group one and sub area one can't see it there yet so if we go back and mimic what we've done here I'm going to come back to reporting and dashboards in a later module so we're going to put in organization and employees as the first group so we're going to go over here call this one organization okay so far so good still not appearing on the menu it won't appear until you have a sub area so you can't just have a heading with nothing under it you have to have something in there for my sub area what am I bringing in I want a table which table do I want it's actually the contact table so if I start typing and bring that in that's all look did you see it just happened there now title I don't want it to be called sub area one this first one you just have to do a bit more typing so you can see that that's in there the default icon is fine because the contact table comes with its own icon all right good let's add another group so we've got the asset management group with assets and asset allocations in here so I'm going to go add group this one is called asset allocation no sorry Asset Management Goodness Me Too Many Words Asset Management all right and then I want to add a sub area again be careful of where you've clicked because I'm highlighted on Asset Management I add my sub area that's where it's going to put it select my content type table select my table I want the asset table and it automatically fills the name in when you do it this way add bang it's in there and now I can add another sub area under that again I want another table and I want my asset allocations and I can add that in there as well so you can see that's starting to um build out in there if you want to change the order of anything you can go in here and say move up or move down but this is what I mean about and you can take a whole section and move it up and down as well if I move it up from there it'll go up into the other section or down again this is why I don't add all the tables in I mean for this amount of tables that might have been fine but I find I usually want to put groups and and then move up move up move up if you've got 20 tables in there that would just be tedious beyond belief so I just prefer to do it this way that's our app we're gonna do some more things in the following modules to add some extra things some dashboards play with some settings bring in some business process in business process automation but you've created the app at this point let's do this save and because we've published everything else that's going on we can publish from here are you ready for it and then you can play so this is where we're going to launch the app so it's published we'll get another sort of final preview of it coming through here and play now don't be disappointed that it's blank because we haven't got any data in there yet um so there we go now it doesn't look exactly like my other one just yet but so far so good so a few things to notice because you've seen me build this whole thing did you see me build any of this functionality no create model driven app does all of that all of that is built in for you haven't got my dashboards in there yet we're going to come back to that home recent pinned all of those things are there those icons we created earlier are showing up you didn't see them in the preview but they're working just fine so all of that stuff is just done so what we're going to do let's create some contacts so this is where you go in and you know firstly give yourself a round of applause at this point what we do here is go in and create some data in the app so let's create our contacts in here so let's put Sandra cullet back in so we can go in and um we enter the first name and you can add your friends and family or your real workmates or whatever it is in here I'm just going to kind of make up some stuff we can put in the business phone so this is the experience that the user would have if they were entering so for you as a learner you're just putting in some stuff that's far too many digits for a mobile I'm getting over excited and you can fill in the address and so on we can fill in her job title uh maybe she's in the sales department now the line manager lookup there's no one else in there yet so we could add a new contact from there but we'll just save that when the profile picture comes in so again you can choose your profile picture from in there and we just find you know a picture from from you know download some pictures of people and add them in you can play around with the timeline here as well so we can go in here and add in appointments phone calls activities tasks all of those things so have a bit of a play around do all of that let's go in and create an asset as well so we can go in here and create a new asset we'll give it a name we'll call this one the iPhone 14. uh serial number oopsie I pressed too many keys at once there that is a phone the acquisition date is today purchase value 14.99 and we can put in the description and so on um save it now it's giving me asset ID must be filled in so we've got a problem here because this is a mandatory field except that it's an auto number field so the Auto number field should just be populating itself I shouldn't have to type something in there so this is a problem I'm going to show you how you can fix this because typically when you're building model driven apps you do need to kind of correct things you've done along the way and it's absolutely possible to do that even though we've done you know everything's great once you see it on the screen and start to test that data entry experience you'll notice things that you go no that's not what I intended or whatever so it's absolutely possible to go back and fix things up so let's sort this one out I'm going to go back into my maker experience and back to the solution I need to find that table which is the asset table and find that column because every column in here has an option to say this is mandatory or not we didn't really play with that much earlier but that's something that um that you should be aware of so we'll wait for this to come up I'm going to go back into tables here on the right hand side and I want to go into my asset table and then the columns within that table very loud motorbike going past my house right now just for a bit of background reality and then we want this asset ID so if I click on that you'll see we've got these properties on the side here that are there we go required business required I want to make that optional save and then if I want to see that come through in the app to retest it I do have to publish again because publishing is that thing that pushes it through so we just navigate back to the all there and push that through as publish your customizations what I would typically do when I'm doing this I wouldn't go in and make one change and then publish because the publish thing can take a couple of minutes to to um to go through so you want to test out a few things and make those changes rather than when doing it but you'll see the publish is quite quick when there's only one change that's been published there let's um reload that and when you've got a change that's been taken in generally what you want to do is a hard refresh actually so I'm going to do like a control F5 and actually do that because you can see that was still mandatory so the sort of normal refresh doesn't do it but hopefully there we go the mandatory thing is gone now so let's try this again we're going to say this is an iPhone 14 we are putting in our serial number we've got the asset type as a phone acquisition date is today and the purchase value put in the description as well save and because this is an auto number there we go that's worked now much better all right so go ahead create some people create some Assets in your app you're going to need at least one of each before you create an asset allocation but let's go through and bring in our asset allocation here so now we have gosh business process flow across the top this is going to be a phone for Sandra kellett there we go I've already typed that one before look for the employee and I've only got one in there so that's a bit easy requested buyers not mandatory I don't actually have to fill it in but I could put that one in we're going to grab that asset so you can see those things working in there now let's test if this works we're going to save it first just to um bring that together does my outside policy work if I go yes there we go there's my reason and there's my approval stage what I want to do here is go in and run that approval for the first time so just back to my Solutions here if I navigate back a level two outside of that solution and into all of my solutions for this environment when we started right back at the start of this course we just had those things in there so we've got the default solution there's a bunch of just basic capabilities this is the one I'm building so the first time I run the flow I'm going to do this it's going to prompt me to log in so the experience is a little bit more the first time round and Trigger that and this triggering of the flow is going to prompt it to deploy that solution in the background so again it's asking me that first time to make sure that I'm you know authenticating that you don't get that every time run that and done now this won't happen straight away don't sit here now waiting for that to approve it will be fine after it's done the first time but go away and do some other stuff and we will come back and at some point here once we start you know looking back in the solutions that won't happen straight away but we will start to see the flow Solutions being deployed into this environment whichever user if you've used yourself I used a different user but if you've just used yourself then you will see that flow come through in teams or in Outlook or whatever but generally speaking give it about 15 minutes or so to run through so you have now created a model driven app please go ahead and add some more data in there that's pretty much the the thing but more to come here because we're going to add dashboards I'm going to show you how to bring a power bi in we're going to play around with some settings and also we're going to come back and see that flow working and I'm going to add another business process flow automation so that you can bring that asset when you allocated a date it's going to change the status of it to being allocated instead of available so congratulations you've built your first model driven app and now let's go that next step further and bring some more pieces into it let's have a look at some of the settings that you can work with in the app and first up I'm going to have a look at the system settings so we open a new tab here we're going to browse to AKA dot Ms forward slash PP AC which is the Power Platform admin Center this is where as an admin you can set up different security settings and you've actually got some visibility on your data storage and usage and all sorts of things in here which are a bit beyond what I'm going to get to but once you're in the Power Platform admin Center you want to go to environments you want to choose the environment where you have been building your model driven app which for me is this one here called asset management and I want to enable some things that are going on in here so I'm going to go to settings within that environment and then within the product we've got various things here we're going to come back and have a look at security and permissions in one of the later modules here as well but for now I'm going to go in and have a look at some of the feature switches and these are some of the things that I recommend you turn on this is going to change depending on when you're watching this summer recording November 2022 some of these things might be switched to on by default so what tends to happen is Microsoft will release new features and not have them switched on by default so you have to go in and say yes I'd like that switched on so these are the ones I recommend you have switched on but if you're watching this a year from now maybe some of these are there always just go in and be aware of what features are there and make some decisions about which things are are worth switching on so along the side here we've got various things here embedded content enabling power bi visualizations to be embedded in your app is something that you would likely want to do if you scroll down here to Advanced find options the modern advanced find experience is something you want that actually is already switched on so that's something that's already there collaboration co-presence is actually quite good co-presences the same as when you're working in a Word document and two people editing it at the one that once you see both their faces in the icons at the at the top there same experience as that so you can see straight away if you're in your model driven app and a colleague is on the same screen you can see that they're editing at the same time so that's actually a cool thing to do end users can add and join teams meetings from appointments that's already switched on as well so you create an appointment you can make it a teams meeting so again that native just like connection with the rest of the Microsoft platform co-authoring if you're working with someone else I really like this one as well if you are building with someone else which in a real world scenario you often are if you're editing a form then you can see things going on now I don't know if there's a blip just happened on the side there my approval flow just uh just came through so I'm going to come back to that so then what we've got here is this other piece here which is the dataverse search I always turn that on that is this search bar at the top so this was my original demo app this is the one we just built you'll see it's it's not there so what we want to do I I like that that gives you that Global search capability I think that's already worth um switching on a bunch of other stuff here and as I said this will change but worth having a look at that and worth exploring those things we are good to go we just click save in there now the other type of settings you've got in here are personal settings so if I go back into my app here and into the settings icon you can get into advanced settings which is the older way of getting back into what we just did there personalization settings is for the individual user to set so it's worth understanding what can happen here because there are some important things for the user especially in terms of like date format and number of things on the page and so on so I've worked all along here with my dates in USD date format because that's how it starts out of the box but you can probably tell from my accent I am not in fact in the US I'm in Australia and many of us in all of the other parts of the world like to see the date format in a different way so I'll show you how you can change that as well as setting the right time zone for your app because you don't want things coming up in the time zone that's not right and if you're looking at things with just the you know 2 am all the time when you're not into am that makes no sense this can take a second to come up there we go I said personal options so in the general thing here Time Zone GMT I'm not in GMT I'm in fact living in the future in this Canberra Melbourne Sydney time zone so I'm going to set that I am also going to go into my formats tab here and this is where I can change the format so it's currently in the United States format I'm going to go to English Australia so you'll see there's a range of different countries there this is how we tend to look at the world so I'm going to click OK on that you will also have you know a bunch of other personalization settings in here that you can have a look at as well so it's worth going through those things the other thing I like here set the number of Records shown in a list so if you're working with a long list 50 is often not enough you might want to set that to 250. so those are things that are sort of set in those personal options so then if you've got users in a multinational situation they might want to be seeing the current the uh the date format in a different way or set their time zones and so on that can be done on a per user basis rather than those system settings where you are working on on the things in the in the background then we're good to go so what should happen here my acquisition date there was showing 11 5 which is actually the fifth of November the way I see that on the screen in my part of the world is 511 so let's um let's give that a second and we'll give that a refresh and that should come through uh that will as I said also change all of the the time zones and things in there as well for anything that's a time and and a date so there we go fifth of the 11th I'm much happy with that and uh you know for all of you outside of the US I'm sure you are too all right so that's it for settings let's have a look at how we can bring dashboards in both power bi dashboards and the out of the box dashboards what we're going to do now is build out our model driven app dashboard so the dashboard capability in model driven apps honestly allows you to do this kind of thing you can have views on your dashboard you can have some basic charts and things but if you want to get really sophisticated with visualizations and graphs and stuff you're really going to want to bring power bi in that is the the tool that's available if you want to bring in reports that are drawing from data outside database that's also power bi so I'm going to show you both of those things and how to create this one back to our solution here let's just start give this a refresh and see if our flow has come through for the approvals so we should see that come through now that's been about the right amount of time and if you're watching this whole thing you'll have heard that I heard the thing ping there you go so now you're seeing the solutions we've got Microsoft flow approvals course solution approvals once you see that in there then you know your approval thing's ready to go and that's a one-off thing so we'll come back and and see what's happened there again at the end back into my Asset Management solution for now and what I'm going to do first is create that chart that pie chart that we saw and then I'm going to bring together a dashboard which brings together that chart and some other views into into a single screen so I'm going to create a chart on the asset table so this is the asset manager dashboard this is an asset by allocation status I'm just going to close down the other version of the app so I don't get confused here so I'm going to go into my asset table and from there there is an option to create a chart with charts you can do sort of basic pie charts bar column donut but yeah you you're going to stick with fairly basic charts if you're doing this you'll see you'll see the limitations as we go through here so I'm going to click on charts in here we're going to add a new chart and again this is a bit of a you'll see where it sort of leaps back into the older user interface behind the scenes that is slightly less nice to work with and also slightly less Speedy to work with so we'll bring this up so here's the same pie charts column charts bar charts line donut it's about it really if you want maps and overlaying different tables on each other and different drill down options and so on then you're really going to want to go with power bi for that okay here it is so we have gosh these are the different charts we can use I'm going to choose a pie chart here I'm going to enter the name for the chart which is assets by our location status where do I want to put my field here I want this to be the allocation status and I want to count them so this is a account rather than you can sort of do average Max Min sum or whatever and then my other axis again it's it's the same thing I'm not doing anything sophisticated here this view is not tied to it this is just sort of saying which view do you want to see for preview so that you can sort of see whether or not your chart is is working but we do actually want to run it you know on the dashboard in the active assets view so we'll just give that a second for the preview to come up as I said quite basic that's pretty much what you can do so at the moment in my model driven app I actually only have one asset in there and it only has one status so it's not a very useful preview but it is absolutely fine I will save and close that and done and then we will see the chart appear here so now we create a dashboard which brings the chart and other views and things in here so I'm going to go back into my top level of my solution to uh to to the start and then from the top menu we're going to go new dashboard and you've got some options here two three four color I'm just going to start with a two column dashboard let's give this one a name so this is going to be called the asset manager dashboard when it comes up I get a little impatient with these old the old UI experiences but as I said I just want to um I want to give you the genuine experience here most of the other YouTube tutorials on my channel are very snappily edited to take this stuff out but for a full length thing I want you to get the I want you to get the sort of the real deal and not worry that it's uh that it's you so come on this is also fairly basic we're gonna we're gonna be presented with something that has two columns on the screen you can change the width and you can change the height of the components and the different things that you can bring into the dashboard here you can bring in charts which is what we've just done you can bring in lists so that piece that we're seeing on the dashboard here this is just a list so when we created lists earlier when we're building out our app you might also want to create lists specifically for what you want to see on a dashboard there are some other bits and pieces we can bring in here as well so we'll give this a name asset manager dashboard I want to bring a chart in here so I'm going to click on that little chart icon bring in that one that we just created so we choose the table we choose the chart you can also have different views in here so this one is you know active assets but you can allow the user to sort of switch views to view the chart against different filtered data so that's something you might want to consider in there uh right we have got our asset there it is there and there's the active assets View and the very beautiful chart that's not much going on over here we want to bring a view in so this is going to be my assets and what did we make this one this is my available asset so I'm going to choose a different view here which is the available assets and add that in there now I want what I've done here you'll see that's not a 50 50 split on the screen so we can bring this one in here we go across to the top and decrease the width of that and then we can increase the width of that one and when that happens we just drag this it's a bit fiddly drag that back up to the top you'll see the red line appear there when when that's ready to go all right I also put another thing here which is the active asset allocation so it doesn't all have to be off the one data table so we're going to bring in another view here which is our asset allocations active asset allocations all good and then let's have this one take up the full width of the screen and bump it across the other one drops out there you don't if you've got nothing in it it won't appear on the screen you don't need to worry about that all right save and close so you can see it's fairly basic but it does those straightforward things pretty solidly well now once that's done we can close before we go ahead and we have to add that into the app and we're going to go back and change the site map navigation to include it then I want to show you how you can bring a power bi dashboard in here as well and then we'll add both of them in at the same time so let's grab a new tab here we're going to go to powerbi dot Microsoft dot com and you can start free um I've already got a sign in here but if you click on try free you'll be able to get a 30-day trial so that you can experiment with this as well obviously if you want to use power bi ongoing you will need to buy a license but for learning purposes you can do that I've only got three days left in my trial I've been a bit of work with that quite promptly now all right so what I need to do here is create a power bi report and I'm not going to give you a power bi lesson here what I want to do is show you how you can bring an existing power bi report in so we're just going to work with a sample one because there are some pretty good sample ones here let's just close that notification here so the first thing we need to do is create a workspace this is one from the demo I had earlier but I'm going to create a new one here so I'm going to create a workspace which is something that we're going to use we're going to create a workspace we're going to bring a report into that workspace and then to bring that into model driven apps we link up to the workspace in the report so I'm just going to call this asset it's management dashboard workspace just so that Workshop so that I know because I've got I've got another version here clearly I'm demoing something that I've built in advance um before so I'm just going to make sure that I've got a unique name for it but just call it Asset Management like I've done here so that's uh that's enough so that's basically just like a holding bucket that we can add content into what I'm going to do here is go into add content and because I don't have a report that I've built before I'm going to go into this samples area and the samples here are pretty good so you can pick whichever one you like I'm going to go with the it spend because it's sort of in the zone of of what we're doing so let's grab that one and that comes with a report and a dashboard and a bunch of sample data so that's all all good to go and then I don't need to do anything else from there what I do want to do now is go into the report that was created so we've got a data set which I'm not touching but the report I'm going to go into here actually open it up so that we can see it and then we want to pin it to a dashboard so we've got this idea of dashboards and reports I'm going to bring a dashboard into my model driven app so from here we're going to go in and say pin to a dashboard and then we want to give this dashboard a name it's worth kind of naming this in a sensible way so we're going to call this it spend dashboard all right and we can pin that one in there don't need to do anything else that's all we need to do from Power bi obviously you would need to build the power bi report and connect your data but that's a whole other that's a whole other thing that I'm not going to do now so from here what we're going to do is navigate back to the solution and we can actually close that power bi browser tab from here I'm going to go in and say let's create a new dashboard so this is where we were before but this time I'm choosing power bi embedded so we've got our native model driven apps dashboard this one is going to be called the it spend now this is what it will display as when you bring it into the app so this is called the it spend dashboard and it's a power bi dashboard we just pinned that report into a dashboard I can choose that workspace so it's asking me where did you put it this was the one that I just created and then which power bi dashboard is it it's the it spend dashboard that I just did and we save that so that is now created that as a dashboard so now what I've got is two dashboards here I've got my model driven apps dashboard I've got my power bi dashboard we need to add both of those things back into the app so first of all we are going to publish your customizations so that those dashboards are system we're ready to uh to work with them and then we're going to go back and put them into the app and into the sitemap navigation and then go in and refresh and we'll see some new things happening in our app now since we created it so we're going to go in and see the dashboards we're going to see the new search bar and we're also going to see the flow working because that's happened all right to edit my model driven app I go and find in here now this is starting to see there's a lot and see how all of these other things are being added in here I haven't had to you know a connection reference like it's bringing in a bunch of other dependent stuff as I go along it's it's uh it's actually very clever what I want to do then is go in to find apps because it starts to get to be a bit hard to find things I can go into Apps but also you'll see it here so what it's done is created with the model driven app two components model driven app and sitemap don't click on the sitemap that's going to take you back to an old editing experience and I think you know by now how I feel about old editing experiences you just want to edit the model through an app because now in this modern experience the mo the model driven app includes the sitemap you don't have to go to the Dreadful old sitemap editor what I want to do here is go to the navigation menu on the side I'm going to add a group and this group is going to be called reporting or dashboards or whatever you want to call that so we go over here we're going to call this porting now again the group is not appearing there because there's nothing in it yet but I do want to move it up and move it up so that it's above organization and asset management under that I want to add a sub area and this time I'm not bringing in a table I'm bringing in a dashboard which dashboard am I bringing in we've got system dashboards and power bi dashboards so the first thing is I want my asset manager dashboard so we're going to bring that in that's the model driven app dashboard that I created and there it is we should see our very sophisticated pie chart some of the worst pie chart ever you really have to have some data in your app to see this working properly and then I'm going to add another sub area in here which is another dashboard and this time it is my itspenge dashboard now you don't have to add them all into the navigation menu because you can actually go in there and sort of drop down but depending on what you want to do to make that easier you can bring those in all right looking good let's save that and publish it and now we'll go ahead and play and we'll pick up all of those other things that have happened along the way here we've got a couple more things we're going to do after this we need to get our security modeling in order I'm also going to show you how we can do another kind of Automation in there because I want you to get that sense of how all of this really comes together so let's click play on that and how we're going so far there we go we've got our search bar in there that's a big Improvement so you know with all of my active content contacts in there I can do a search for I can do a search for Sandra and that will come up please do add more stuff in there you'll you'll have a much more fun experience we have got our dashboards so let's have a look here we've got the asset manager dashboard so again not much data in there but as we start to add the data you can see it coming through so all of those things are working my it spend dashboard there's my beautiful Palo bi report and let's also have a look at that flow working now so if I go back into my asset allocation where I triggered that off earlier we can go in here and I'm going to bring across my other user here who receives the request so there we go there's the request that was sent through I didn't add any comments in there we're going to say approve and then we'll get Dan out of the way and at the moment I hadn't filled that in but we should be able to see nevertheless this coming through so we'll just give that a refresh and we should see that approval status come through and then the next time we do one we'll fill it in properly and we'll see it working but you do have to go through that you sort of need to have a test record to um to get that approval stuff deployed in the back end there we go approved all right all good so we're in good shape we've built our model driven app we've added some extra stuff we've played with some of those settings and got some dashboards and things in there next up we are going to have a look at how to do some Automation and then get our security and sharing in order one of the huge benefits of building on this platform so we can do all this amazing stuff with building out the model driven app is that you can get extra Automation and stuff and it's all built in which is why I really want to show you this extra piece here what we want to do is to say when an asset is allocated and we've put in an allocation date then go back to that asset and change the status of it so you'll see here we're going through this process let's assume it's all approved and everything but this is sitting as available but we want to take it off the available list which will also then take it off the available dashboard and so on so this is the kind of thing you can do is to start to to put all of these automations and things in here so let's say you know this is this is done now we're working through that process that's all approved we've done our asset checks soap I won't worry a bit too much about that but let's build an automation before we go any further so back into the solution new automation Cloud flow and this time it's an automated cloudflow so we had an instant one before because we're going to trigger it based on a button press but this is going to be based on when that allocation date when we go yes this allocation date has happened go back and find that related asset and update the date so we're going to go in here and grab a name here so sorry if I grab a name I'm going to go in here and give this flow a name so we'll call this one update asset on allocation and what we want in here is a trigger that is a dataverse trigger and it's going to be based on when a row in dataverse is added modified or deleted create that now there is one more piece of information we're going to need here I'm just going to open another Tab and get make.powerapps.com up again because I need one of the schema names of one of the columns so it's useful if you get this in advance but I'll quite often do it this way of opening another tab so if I go over into let's wait for it for a second because we need to make sure we're in the right environment so if you open up another tab again here it's going to go back to your default environment I'm going to go into my Asset Management environment which is where I have been working I can go just straight into the dataverse table here I'm not editing anything I just want to have a look at something so within the tables if you want to search for something here oh there's my asset table it's it's uh it's nice and easy so what I want to do is get the in fact the asset allocation table the date because we're triggering this based off a change just to that date so I'm going to go in here and view my columns and I want to get this asset allocation date so I can click on that and what I want here I'm going to scroll down go into advanced options I want The Logical name this one here not the schema name of the logical name so just copy that keep it safe on your clipboard all right let me go back into the flow when a row is added modified or deleted what we want this flow is to trigger on when a row is added or modified because it could be something where we're creating this all at once the table is the asset could have typed it would have been quicker but it's an a I thought it would be easier you can see how much is going on behind the scenes in the standard stuff asset allocation the scope we want this to be across the whole business so you can have automation that only applies to certain groups of users or certain certain users so when it's added or modified when this table is added or modified business unit then which columns are modified because we don't want this to run we don't want the flow to run every single time anything is updated on that table I just run unnecessarily here's where we take that precious little bit that we just copied before paste it in there that's the column that is being changed that's it so then what we need to do is to say that's our trigger so when we are going to let's rename this so we're going to say when an asset so we're going to name this to say when an asset location date is signed then what do we want to do so the first thing we want to do because we're going to do something to change the asset is we need to get that asset this is similar to what we did with the approval before the asset allocation date is changed get the related asset from that asset allocation so that's again in dataverse we want to get a row we want to get an asset which asset the one that's related up here so again if we just type it in you'll find there's the asset value it's that one there that you want so it's the asset that's in that related lookup so we can rename this one to say get the related asset all right now we want to update that so we add another new step in dataverse we want to update a row which row we want to update the asset which asset the one from the previous step so from get related asset but if you want to ever find it there it is unique ID but you can just type the name so there it is you always want the one that's the unique identifier asset ID is that Auto number that we had don't use that there is underneath a unique identifier like a 30-something character unique identifier that we haven't seen anywhere and that you didn't need to create but that's the one that uniquely identifies that record that's what you should always be using it's like your primary key if you're familiar with that concept what do we want to update in that we want to update the allocation status to be allocated and that's it not too bad right so you can do these kinds of things to put automation into your application it doesn't just exist in isolation as a database you can do all sorts of things there so we'll wait for that one to save and go back and then we can give that a test run you don't actually need to publish a flow so we should be able to go in here now I would actually just um give the app a refresh just to make sure it's picking up latest things that have come through so we should be able to go in here now and let's say it's past the asset check I'm just gonna I'm just gonna bypass doing the right the right table in there so it'll say that that's satisfactory again you might want to kind of do the similar automation of that there is our allocation date so let's say we're going to allocate it to her on Monday and we save that so that will prompt that change and now if I click through to that asset can take you know 20 seconds or so to run so we'll just give that a refresh haha allocated and now if we go back to our dashboard here we will see because this is our list of available assets it is no longer there and our pie chart is now showing that it's allocated even though there's still only one thing on the pie chart so there you go that's how you can automate some of your business processes last thing now we need to share this app with other people and make sure they've got the right security and permissions and then you've pretty much mastered it all right security this is something that is quite complex within our model driven apps and I'm going to show you the basic concepts so that you've got a handle on it but you can get very granular with security you can set up business units within your organization you can have hierarchies within that you can have different permissions across all of these tables so use case here is is something where you know you're building something for a big scale across the organization and certain group of people should maybe certain group of people are managing the assets here but they shouldn't be able to allocate them or they shouldn't be able to see the employee details so you can actually create different security roles to enable that kind of thing this is one of the big sort of rich areas that you can work with in here so the first thing that we're going to do here is go into back into my main sort of area here and into the apps area and from within apps we can go to here and click share now if you've worked with canvas apps before some of this looks a bit familiar but just it's not quite exactly the same so a couple of Core Concepts here first of all your app itself has to have a security role so this whole thing is based on security rules so we need to say which app sorry which security roles are associated with this app because then you know the app knows here are the security roles that I can allocate out and then we put people into those security roles and that's how that is managed so first of all we're going to have a look at the app and manage which security roles it will use so we can go in here we can see these are the list of security roles so we've got all of these roles that are sitting in here but when I've built a bunch of different tables and things like that I'm actually going to need to manage the security rules to include those because all of these out-of-the-box security roles have no idea about all of the stuff that I've just created so what we want to do from here is go into manage security roles to create one or more security roles specific to this app that can be allocated to the user now I'm just going to do one security role here which is quite basic but in that example before you might have a single security role for a asset administrator who just has access to the asset table and doesn't have access to other things and then you might have one for a manager that has other things just be aware that if you have multiple security roles the permission is additive you you if you stack them on top of each other they get more permissions it doesn't kind of make it less restrictive what you want to do the recommendation here is not to edit the existing security rules what we want to do is save as basically and create a new one so the basic user security role is the one I'm going to start with here because that's a nice easy one to work with so I'm going to go here into more actions and copy that role and we're going to give it a new name so I'm going to call this basic user Asset Management now I'm just going to make my basic users able to do everything um everything in here rather than creating multiple ones but you'll get the concept and you'll see what's possible to do so there it is there basic user asset management and I can click through and open that up and this is going to be this is a bit of a mind-boggling Matrix of permissions that you see on the screen here in understanding what you can do so this is going to bring up that security role let's just maximize this on the screen so that we can see what we're doing but also be aware that it's in a different pop-up experience so we're just going to close this when we're done and what we will see when it comes up is a series of tabs and a series of different tables across the whole of the database environment that we're working with worth noting also that the security roles are particular to the environment at the end we're also going to bring them into the solution so that if you bring that to another solution you're also bringing the definition of that security role across with you so here we have our role name core records are you ready for the Matrix quite what you would expect right so here are the core records so let's have a look at something like contact and we have a row of permissions across here and this is our little key to what these things are doing none selected means no access can't don't won't even know that user with that role logging in won't even know it's there user level permission my records this concept of the owner my records I can do the things business unit is my team sideways parent child manager down and then organization-wide full permission across the database and here are the permissions that you can work with for each of these let's see if we can just zoom this up a little bit more let's look at account because it's easier so we have a Creator permission which means I can create a new record read I can see it right is the edit permission and delete a pen and a pen two are about adding related records so things in the timeline things like those other related records assign it to another user and share access I prefer not to use share share as sort of a I prefer not to use share I'm not going to go too deep into that so we've got all of these things here so let's see what happens at the moment the person with this basic user role can create an account I haven't used a counsel at some I'm just going to use account because it's a bit if pretend it's contact they can create it they can read only their own so if you've got multiple users in there they're only seeing their own they can only edit their own and they can only delete their own if I change this so let's if you click on the you know let's say I wanted them to be able to see all of them in the database but only edit their own then that's what that's done I don't want them to be able to delete at all so I can change that so this is how you can work with those things and this is very granular you can go through and sort of create all those things let's just zoom it back again you've also got within here miscellaneous privileges for things like being able to bulk delete and work with things there's so much here this is like I could probably spend a whole day just on this which I won't we've got these other core things so these are the core records these are some of the things that work across some of the Dynamics applications which you won't have if you're building just a model driven app but the thing you want to go into here is this custom entities custom tables because everything you've just created so if we scroll down here asset asset allocation asset check no permissions at all so you need to go in and apply at least one security role with these permissions easiest way to do this is if I click on the name there it will push it across the whole way so we can say do you know what I've just got a basic scenario here where we're letting everyone come in and do all of those things with our set and our set allocation and asset check perhaps I don't want them to be able to delete so I can do that but you can see how you can fiddle around with it for now I'm just going to create a basic role where everyone has access to those things you also want to make sure that your business process flow has permissions so if we go in here nobody has permission for that either so let's uh just make sure that one's sorted out and then save and close so in a real world scenario you would actually spend a lot of time and a lot of design work on figuring out those security and permissions if you're doing something complex if you're doing a you know single use app for a particular Department then something like I've just done would possibly suffice let's close that Tab and go back to this experience here before we add it into the app let's just cancel out of that we want to go in here and add into our solution an existing security role so the one we've just created there basic user Asset Management add that in go back to the top here and publish all customizations now you can actually create a security role from the pal platform admin Center I tend to do it this way rather than via that share thing and having to go back in and out but where we were before Power Platform admin Center if you go into the settings you'll see here in the users and permissions the ability to click through to security roles there you can also assign security roles to users which we're about to do so that's another way that you can work with it that might feel a little bit more intuitive to manage all right everything in there let's go back now into our app and share we need to assign the security role to the app first so we're going to go through here here it is basic user Asset Management and share so now the app has that security role as part of it and then what we're going to do is add security roles to the users so let's say that Alex Hunter is someone that we want to share this with so we can go in here and make this person the basic user and perhaps not a system administrator and share be aware this doesn't send an email to the person the way it does if you've used canvas apps so what you do need to do is as you're going through and adding those security roles in there once you've got your app here is just grab that URL share that with the user rather than it doesn't sort of automatically go out in your email we are done how are you feeling um that's a lot of information it's all organized here that you can go back and dip in and out so we have built a complete model driven app we've added some Advanced features we've got our security and so on thank you so much for watching especially if you've done all this in one go I chances are you probably haven't please share this with anyone else who you think would benefit from seeing a complete tutorial please subscribe to the channel for every other video on this channel I promise you is ever going to be much shorter than this there's plenty of short form tutorials and things that I'm adding to that all the time thank you to everyone who has supported and subscribed along the way I'm doing this mostly because I've had so much support for the content I just want to give back and I really hope that this has been a valuable and fun experience for you building out your model driven app thank you so much for watching
Info
Channel: Lisa Crosbie
Views: 72,756
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: LIC8DFW8fOE
Channel Id: undefined
Length: 203min 34sec (12214 seconds)
Published: Mon Nov 14 2022
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.